From e9bb90091e509a5c74de46e82eb9cd97b1a55387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torstein=20H=C3=B8nsi?= Date: Tue, 17 Dec 2024 08:47:32 +0100 Subject: [PATCH] v12.1.0 --- bower.json | 2 +- .../Accessibility/Options/A11yDefaults.js | 2 + es-modules/Core/Color/Color.js | 17 +- es-modules/Core/Renderer/HTML/HTMLElement.js | 4 +- es-modules/Core/Renderer/SVG/SVGElement.js | 4 +- es-modules/Core/Renderer/SVG/SVGLabel.js | 19 +- es-modules/Core/Series/DataLabel.js | 4 +- es-modules/Core/Series/Series.js | 28 +- es-modules/Core/Templating.js | 24 +- es-modules/Core/Time.js | 9 +- es-modules/Core/Utilities.js | 2 +- es-modules/Data/Converters/CSVConverter.js | 1 + es-modules/Data/Converters/DataConverter.js | 31 + .../Data/Converters/GoogleSheetsConverter.js | 1 + .../Data/Converters/HTMLTableConverter.js | 1 + es-modules/Data/Converters/JSONConverter.js | 1 + es-modules/Extensions/Boost/BoostSeries.js | 20 +- .../Extensions/DragPanes/AxisResizer.js | 2 +- .../SeriesLabel/SeriesLabelDefaults.js | 9 +- es-modules/Series/Bubble/BubbleSeries.js | 24 + .../OrganizationSeriesDefaults.js | 4 +- .../Series/Timeline/TimelineSeriesDefaults.js | 4 +- .../Treegraph/TreegraphSeriesDefaults.js | 4 +- es-modules/Series/Treemap/TreemapPoint.js | 9 +- es-modules/Series/Treemap/TreemapSeries.js | 207 +++- .../Series/Treemap/TreemapSeriesDefaults.js | 130 +- .../Stock/Indicators/VBP/VBPIndicator.js | 1 + .../Stock/RangeSelector/RangeSelector.js | 140 ++- .../RangeSelector/RangeSelectorDefaults.js | 14 +- .../masters/indicators/indicators-all.src.js | 4 + es-modules/tsconfig.tsbuildinfo | 2 +- highcharts-3d.js | 4 +- highcharts-3d.src.js | 2 +- highcharts-gantt.js | 10 +- highcharts-gantt.src.js | 281 +++-- highcharts-more.js | 4 +- highcharts-more.src.js | 26 +- highcharts.d.ts | 1043 +++++------------ highcharts.js | 6 +- highcharts.src.d.ts | 1043 +++++------------ highcharts.src.js | 117 +- highmaps.js | 10 +- highmaps.src.js | 147 ++- highstock.js | 10 +- highstock.src.js | 281 +++-- indicators/acceleration-bands.js | 4 +- indicators/acceleration-bands.src.js | 2 +- indicators/accumulation-distribution.js | 4 +- indicators/accumulation-distribution.src.js | 2 +- indicators/ao.js | 4 +- indicators/ao.src.js | 2 +- indicators/apo.js | 4 +- indicators/apo.src.js | 2 +- indicators/aroon-oscillator.js | 4 +- indicators/aroon-oscillator.src.js | 2 +- indicators/aroon.js | 4 +- indicators/aroon.src.js | 2 +- indicators/atr.js | 4 +- indicators/atr.src.js | 2 +- indicators/bollinger-bands.js | 4 +- indicators/bollinger-bands.src.js | 2 +- indicators/cci.js | 4 +- indicators/cci.src.js | 2 +- indicators/chaikin.js | 4 +- indicators/chaikin.src.js | 2 +- indicators/cmf.js | 4 +- indicators/cmf.src.js | 2 +- indicators/cmo.js | 4 +- indicators/cmo.src.js | 2 +- indicators/dema.js | 4 +- indicators/dema.src.js | 2 +- indicators/disparity-index.js | 4 +- indicators/disparity-index.src.js | 2 +- indicators/dmi.js | 4 +- indicators/dmi.src.js | 2 +- indicators/dpo.js | 4 +- indicators/dpo.src.js | 2 +- indicators/ema.js | 2 +- indicators/ichimoku-kinko-hyo.js | 4 +- indicators/ichimoku-kinko-hyo.src.js | 2 +- indicators/indicators-all.js | 4 +- indicators/indicators-all.src.js | 7 +- indicators/indicators.js | 4 +- indicators/indicators.src.js | 2 +- indicators/keltner-channels.js | 4 +- indicators/keltner-channels.src.js | 2 +- indicators/klinger.js | 4 +- indicators/klinger.src.js | 2 +- indicators/macd.js | 4 +- indicators/macd.src.js | 2 +- indicators/mfi.js | 4 +- indicators/mfi.src.js | 2 +- indicators/momentum.js | 4 +- indicators/momentum.src.js | 2 +- indicators/natr.js | 4 +- indicators/natr.src.js | 2 +- indicators/obv.js | 4 +- indicators/obv.src.js | 2 +- indicators/pivot-points.js | 4 +- indicators/pivot-points.src.js | 2 +- indicators/ppo.js | 4 +- indicators/ppo.src.js | 2 +- indicators/price-channel.js | 4 +- indicators/price-channel.src.js | 2 +- indicators/price-envelopes.js | 4 +- indicators/price-envelopes.src.js | 2 +- indicators/psar.js | 4 +- indicators/psar.src.js | 2 +- indicators/regressions.js | 4 +- indicators/regressions.src.js | 2 +- indicators/roc.js | 4 +- indicators/roc.src.js | 2 +- indicators/rsi.js | 4 +- indicators/rsi.src.js | 2 +- indicators/slow-stochastic.js | 4 +- indicators/slow-stochastic.src.js | 2 +- indicators/stochastic.js | 4 +- indicators/stochastic.src.js | 2 +- indicators/supertrend.js | 4 +- indicators/supertrend.src.js | 2 +- indicators/tema.js | 4 +- indicators/tema.src.js | 2 +- indicators/trendline.js | 4 +- indicators/trendline.src.js | 2 +- indicators/trix.js | 4 +- indicators/trix.src.js | 2 +- indicators/volume-by-price.js | 4 +- indicators/volume-by-price.src.js | 3 +- indicators/vwap.js | 4 +- indicators/vwap.src.js | 2 +- indicators/williams-r.js | 4 +- indicators/williams-r.src.js | 2 +- indicators/wma.js | 4 +- indicators/wma.src.js | 2 +- indicators/zigzag.js | 4 +- indicators/zigzag.src.js | 2 +- modules/accessibility.js | 4 +- modules/accessibility.src.js | 4 +- modules/annotations-advanced.js | 6 +- modules/annotations-advanced.src.js | 8 +- modules/annotations.js | 4 +- modules/annotations.src.js | 6 +- modules/arc-diagram.js | 4 +- modules/arc-diagram.src.js | 2 +- modules/arrow-symbols.js | 4 +- modules/arrow-symbols.src.js | 2 +- modules/boost-canvas.js | 4 +- modules/boost-canvas.src.js | 25 +- modules/boost.js | 4 +- modules/boost.src.js | 25 +- modules/broken-axis.js | 4 +- modules/broken-axis.src.js | 2 +- modules/bullet.js | 4 +- modules/bullet.src.js | 2 +- modules/coloraxis.js | 4 +- modules/coloraxis.src.js | 2 +- modules/current-date-indicator.js | 4 +- modules/current-date-indicator.src.js | 2 +- modules/cylinder.js | 4 +- modules/cylinder.src.js | 2 +- modules/data-tools.js | 4 +- modules/data-tools.src.js | 37 +- modules/data.js | 4 +- modules/data.src.js | 2 +- modules/datagrouping.js | 4 +- modules/datagrouping.src.js | 2 +- modules/debugger.js | 4 +- modules/debugger.src.js | 2 +- modules/dependency-wheel.js | 4 +- modules/dependency-wheel.src.js | 2 +- modules/dotplot.js | 4 +- modules/dotplot.src.js | 2 +- modules/drag-panes.js | 4 +- modules/drag-panes.src.js | 4 +- modules/draggable-points.js | 4 +- modules/draggable-points.src.js | 2 +- modules/drilldown.js | 4 +- modules/drilldown.src.js | 2 +- modules/dumbbell.js | 4 +- modules/dumbbell.src.js | 2 +- modules/export-data.js | 4 +- modules/export-data.src.js | 2 +- modules/exporting.js | 4 +- modules/exporting.src.js | 2 +- modules/flowmap.js | 4 +- modules/flowmap.src.js | 2 +- modules/full-screen.js | 4 +- modules/full-screen.src.js | 2 +- modules/funnel.js | 4 +- modules/funnel.src.js | 2 +- modules/funnel3d.js | 4 +- modules/funnel3d.src.js | 2 +- modules/gantt.js | 12 +- modules/gantt.src.js | 162 +-- modules/geoheatmap.js | 4 +- modules/geoheatmap.src.js | 2 +- modules/grid-axis.js | 4 +- modules/grid-axis.src.js | 2 +- modules/heatmap.js | 6 +- modules/heatmap.src.js | 4 +- modules/heikinashi.js | 4 +- modules/heikinashi.src.js | 2 +- modules/histogram-bellcurve.js | 4 +- modules/histogram-bellcurve.src.js | 2 +- modules/hollowcandlestick.js | 4 +- modules/hollowcandlestick.src.js | 2 +- modules/item-series.js | 4 +- modules/item-series.src.js | 2 +- modules/lollipop.js | 4 +- modules/lollipop.src.js | 2 +- modules/map.js | 8 +- modules/map.src.js | 28 +- modules/marker-clusters.js | 4 +- modules/marker-clusters.src.js | 2 +- modules/mouse-wheel-zoom.js | 4 +- modules/mouse-wheel-zoom.src.js | 2 +- modules/navigator.js | 4 +- modules/navigator.src.js | 2 +- modules/networkgraph.js | 4 +- modules/networkgraph.src.js | 2 +- modules/no-data-to-display.js | 4 +- modules/no-data-to-display.src.js | 2 +- modules/offline-exporting.js | 4 +- modules/offline-exporting.src.js | 4 +- modules/organization.js | 4 +- modules/organization.src.js | 6 +- modules/overlapping-datalabels.js | 4 +- modules/overlapping-datalabels.src.js | 2 +- modules/parallel-coordinates.js | 4 +- modules/parallel-coordinates.src.js | 2 +- modules/pareto.js | 4 +- modules/pareto.src.js | 2 +- modules/pathfinder.js | 4 +- modules/pathfinder.src.js | 2 +- modules/pattern-fill.js | 4 +- modules/pattern-fill.src.js | 2 +- modules/pictorial.js | 4 +- modules/pictorial.src.js | 2 +- modules/pointandfigure.js | 4 +- modules/pointandfigure.src.js | 2 +- modules/price-indicator.js | 4 +- modules/price-indicator.src.js | 2 +- modules/pyramid3d.js | 4 +- modules/pyramid3d.src.js | 2 +- modules/renko.js | 4 +- modules/renko.src.js | 2 +- modules/sankey.js | 4 +- modules/sankey.src.js | 2 +- modules/series-label.js | 4 +- modules/series-label.src.js | 11 +- modules/series-on-point.js | 4 +- modules/series-on-point.src.js | 2 +- modules/solid-gauge.js | 4 +- modules/solid-gauge.src.js | 2 +- modules/sonification.js | 4 +- modules/sonification.src.js | 2 +- modules/static-scale.js | 4 +- modules/static-scale.src.js | 2 +- modules/stock-tools.js | 4 +- modules/stock-tools.src.js | 6 +- modules/stock.js | 12 +- modules/stock.src.js | 162 +-- modules/streamgraph.js | 4 +- modules/streamgraph.src.js | 2 +- modules/sunburst.js | 4 +- modules/sunburst.src.js | 352 +++++- modules/textpath.js | 4 +- modules/textpath.src.js | 2 +- modules/tiledwebmap.js | 6 +- modules/tiledwebmap.src.js | 2 +- modules/tilemap.js | 4 +- modules/tilemap.src.js | 2 +- modules/timeline.js | 4 +- modules/timeline.src.js | 6 +- modules/treegraph.js | 4 +- modules/treegraph.src.js | 6 +- modules/treegrid.js | 4 +- modules/treegrid.src.js | 2 +- modules/treemap.js | 4 +- modules/treemap.src.js | 348 +++++- modules/variable-pie.js | 4 +- modules/variable-pie.src.js | 2 +- modules/variwide.js | 4 +- modules/variwide.src.js | 2 +- modules/vector.js | 4 +- modules/vector.src.js | 2 +- modules/venn.js | 4 +- modules/venn.src.js | 2 +- modules/windbarb.js | 4 +- modules/windbarb.src.js | 2 +- modules/wordcloud.js | 4 +- modules/wordcloud.src.js | 2 +- modules/xrange.js | 4 +- modules/xrange.src.js | 2 +- options/treegraph.d.ts | 629 ++++++++-- options/treegraph.src.d.ts | 629 ++++++++-- options/treemap.d.ts | 474 +++++--- options/treemap.src.d.ts | 474 +++++--- options/vbp.d.ts | 2 +- options/vbp.src.d.ts | 2 +- package.json | 2 +- standalone-navigator.js | 6 +- standalone-navigator.src.js | 119 +- themes/avocado.js | 4 +- themes/avocado.src.js | 2 +- themes/brand-dark.js | 4 +- themes/brand-dark.src.js | 2 +- themes/brand-light.js | 4 +- themes/brand-light.src.js | 2 +- themes/dark-blue.js | 4 +- themes/dark-blue.src.js | 2 +- themes/dark-green.js | 4 +- themes/dark-green.src.js | 2 +- themes/dark-unica.js | 4 +- themes/dark-unica.src.js | 2 +- themes/gray.js | 4 +- themes/gray.src.js | 2 +- themes/grid-light.js | 4 +- themes/grid-light.src.js | 2 +- themes/grid.js | 4 +- themes/grid.src.js | 2 +- themes/high-contrast-dark.js | 4 +- themes/high-contrast-dark.src.js | 2 +- themes/high-contrast-light.js | 4 +- themes/high-contrast-light.src.js | 2 +- themes/sand-signika.js | 4 +- themes/sand-signika.src.js | 2 +- themes/skies.js | 4 +- themes/skies.src.js | 2 +- themes/sunset.js | 4 +- themes/sunset.src.js | 2 +- 331 files changed, 4644 insertions(+), 3429 deletions(-) diff --git a/bower.json b/bower.json index 2c76336d63..566b0743a0 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "highcharts", - "version": "12.0.2", + "version": "12.1.0", "main": "highcharts.js", "license": "https://www.highcharts.com/license", "types": "highcharts.d.ts" diff --git a/es-modules/Accessibility/Options/A11yDefaults.js b/es-modules/Accessibility/Options/A11yDefaults.js index a3e8581459..0e5b011b7b 100644 --- a/es-modules/Accessibility/Options/A11yDefaults.js +++ b/es-modules/Accessibility/Options/A11yDefaults.js @@ -266,6 +266,8 @@ const Options = { /** * When a series contains more points than this, we no longer expose * information about individual points to screen readers. + * Note that the keyboard navigation remains functional, but points + * won't have accessible descriptions unless handled separately. * * Set to `false` to disable. * diff --git a/es-modules/Core/Color/Color.js b/es-modules/Core/Color/Color.js index 8dc1e9c239..8f3f7ac4c4 100644 --- a/es-modules/Core/Color/Color.js +++ b/es-modules/Core/Color/Color.js @@ -192,18 +192,11 @@ class Color { } // Check for has alpha, because rgba colors perform worse due to // lack of support in WebKit. - const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1); - return (hasAlpha ? 'rgba(' : 'rgb(') + - Math.round(toRgba[0] + (fromRgba[0] - toRgba[0]) * (1 - pos)) + - ',' + - Math.round(toRgba[1] + (fromRgba[1] - toRgba[1]) * (1 - pos)) + - ',' + - Math.round(toRgba[2] + (fromRgba[2] - toRgba[2]) * (1 - pos)) + - (hasAlpha ? - (',' + - (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))) : - '') + - ')'; + const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1), channel = (to, i) => to + (fromRgba[i] - to) * (1 - pos), rgba = toRgba.slice(0, 3).map(channel).map(Math.round); + if (hasAlpha) { + rgba.push(channel(toRgba[3], 3)); + } + return (hasAlpha ? 'rgba(' : 'rgb(') + rgba.join(',') + ')'; } } /* * diff --git a/es-modules/Core/Renderer/HTML/HTMLElement.js b/es-modules/Core/Renderer/HTML/HTMLElement.js index e1ccad7a27..8ab068941c 100644 --- a/es-modules/Core/Renderer/HTML/HTMLElement.js +++ b/es-modules/Core/Renderer/HTML/HTMLElement.js @@ -251,7 +251,7 @@ class HTMLElement extends SVGElement { textWidth, this.textAlign ].join(','), parentPadding = (this.parentGroup?.padding * -1) || 0; - let baseline, hasBoxWidthChanged = false; + let baseline; // Update textWidth. Use the memoized textPxLength if possible, to // avoid the getTextPxLength function using elem.offsetWidth. // Calling offsetWidth affects rendering time as it forces layout @@ -274,10 +274,8 @@ class HTMLElement extends SVGElement { whiteSpace: whiteSpace || 'normal' // #3331 }); this.oldTextWidth = textWidth; - hasBoxWidthChanged = true; // #8159 } } - this.hasBoxWidthChanged = hasBoxWidthChanged; // #8159 // Do the calculations and DOM access only if properties changed if (currentTextTransform !== this.cTT) { baseline = renderer.fontMetrics(element).b; diff --git a/es-modules/Core/Renderer/SVG/SVGElement.js b/es-modules/Core/Renderer/SVG/SVGElement.js index ac81276017..e74db214a7 100644 --- a/es-modules/Core/Renderer/SVG/SVGElement.js +++ b/es-modules/Core/Renderer/SVG/SVGElement.js @@ -213,7 +213,9 @@ class SVGElement { * @return {Highcharts.SVGElement} Returns the SVGElement for chaining. */ align(alignOptions, alignByTranslate, alignTo, redraw = true) { - const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); + const attribs = { + 'text-align': alignOptions?.align + }, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); // First call on instanciate if (alignOptions) { this.alignOptions = alignOptions; diff --git a/es-modules/Core/Renderer/SVG/SVGLabel.js b/es-modules/Core/Renderer/SVG/SVGLabel.js index a52569847c..0c12677b38 100644 --- a/es-modules/Core/Renderer/SVG/SVGLabel.js +++ b/es-modules/Core/Renderer/SVG/SVGLabel.js @@ -71,6 +71,7 @@ class SVGLabel extends SVGElement { * */ alignSetter(value) { const alignFactor = getAlignFactor(value); + this.textAlign = value; if (alignFactor !== this.alignFactor) { this.alignFactor = alignFactor; // Bounding box exists, means we're dynamically changing @@ -246,6 +247,7 @@ class SVGLabel extends SVGElement { } 'text-alignSetter'(value) { this.textAlign = value; + this.updateTextPadding(); } textSetter(text) { if (typeof text !== 'undefined') { @@ -315,24 +317,19 @@ class SVGLabel extends SVGElement { * is changed. */ updateTextPadding() { - const text = this.text; + const text = this.text, textAlign = text.styles.textAlign || this.textAlign; if (!text.textPath) { this.updateBoxSize(); // Determine y based on the baseline const textY = this.baseline ? 0 : this.baselineOffset, textX = (this.paddingLeft ?? this.padding) + // Compensate for alignment - ((defined(this.widthSetting) && this.bBox) ? - getAlignFactor(this.textAlign) * - (this.widthSetting - this.bBox.width) : - 0); + getAlignFactor(textAlign) * (this.widthSetting ?? this.bBox.width); // Update if anything changed if (textX !== text.x || textY !== text.y) { - text.attr('x', textX); - // #8159 - prevent misplaced data labels in treemap - // (useHTML: true) - if (text.hasBoxWidthChanged) { - this.bBox = text.getBBox(true); - } + text.attr({ + align: textAlign, + x: textX + }); if (typeof textY !== 'undefined') { text.attr('y', textY); } diff --git a/es-modules/Core/Series/DataLabel.js b/es-modules/Core/Series/DataLabel.js index e00c9997a5..72ee0e049c 100644 --- a/es-modules/Core/Series/DataLabel.js +++ b/es-modules/Core/Series/DataLabel.js @@ -110,7 +110,9 @@ var DataLabel; (unrotatedbBox.width - bBox.width); dataLabel.alignAttr.y += getAlignFactor(options.verticalAlign) * (unrotatedbBox.height - bBox.height); - dataLabel[dataLabel.placed ? 'animate' : 'attr']({ + dataLabel.attr({ + 'text-align': dataLabel.alignAttr['text-align'] || 'center' + })[dataLabel.placed ? 'animate' : 'attr']({ x: dataLabel.alignAttr.x + (bBox.width - unrotatedbBox.width) / 2, y: dataLabel.alignAttr.y + diff --git a/es-modules/Core/Series/Series.js b/es-modules/Core/Series/Series.js index 514a21ab2f..70378ce96e 100644 --- a/es-modules/Core/Series/Series.js +++ b/es-modules/Core/Series/Series.js @@ -2394,9 +2394,14 @@ class Series { * @private * @function Highcharts.Series#searchKDTree */ - searchKDTree(point, compareX, e) { + searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator) { const series = this, [kdX, kdY] = this.kdAxisArray, kdComparer = compareX ? 'distX' : 'dist', kdDimensions = (series.options.findNearestPointBy || '') - .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble; + .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble, pointEvaluator = suppliedPointEvaluator || ((p1, p2, comparisonProp) => [ + (p1[comparisonProp] || 0) < (p2[comparisonProp] || 0) ? + p1 : + p2, + false + ]), bSideCheckEvaluator = suppliedBSideCheckEvaluator || ((a, b) => a < b); /** * Set the one and two dimensional distance on the point object. * @private @@ -2411,28 +2416,21 @@ class Series { */ function doSearch(search, tree, depth, dimensions) { const point = tree.point, axis = series.kdAxisArray[depth % dimensions]; - let nPoint1, nPoint2, ret = point; + let ret = point, flip = false; setDistance(search, point); // Pick side based on distance to splitting point const tdist = (search[axis] || 0) - (point[axis] || 0) + (useRadius ? (point.marker?.radius || 0) : 0), sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left'; // End of tree if (tree[sideA]) { - nPoint1 = doSearch(search, tree[sideA], depth + 1, dimensions); - ret = (nPoint1[kdComparer] < - ret[kdComparer] ? - nPoint1 : - point); + [ret, flip] = pointEvaluator(point, doSearch(search, tree[sideA], depth + 1, dimensions), kdComparer); } if (tree[sideB]) { + const sqrtTDist = Math.sqrt(tdist * tdist), retDist = ret[kdComparer]; // Compare distance to current best to splitting point to decide - // whether to check side B or not - if (Math.sqrt(tdist * tdist) < ret[kdComparer]) { - nPoint2 = doSearch(search, tree[sideB], depth + 1, dimensions); - ret = (nPoint2[kdComparer] < - ret[kdComparer] ? - nPoint2 : - ret); + // whether to check side B or no + if (bSideCheckEvaluator(sqrtTDist, retDist, flip)) { + ret = pointEvaluator(ret, doSearch(search, tree[sideB], depth + 1, dimensions), kdComparer)[0]; } } return ret; diff --git a/es-modules/Core/Templating.js b/es-modules/Core/Templating.js index e04ed08d58..56f9959f78 100644 --- a/es-modules/Core/Templating.js +++ b/es-modules/Core/Templating.js @@ -13,7 +13,7 @@ const { defaultOptions, defaultTime } = D; import G from './Globals.js'; const { doc } = G; import U from './Utilities.js'; -const { extend, getNestedProperty, isArray, isNumber, isObject, pick, ucfirst } = U; +const { extend, getNestedProperty, isArray, isNumber, isObject, isString, pick, ucfirst } = U; const helpers = { // Built-in helpers add: (a, b) => a + b, @@ -48,6 +48,8 @@ const numberFormatCache = {}; * Functions * * */ +// Internal convenience function +const isQuotedString = (str) => /^["'].+["']$/.test(str); /** * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a * human readable date string. The format is a subset of the formats for PHP's @@ -125,11 +127,11 @@ function dateFormat(format, timestamp, upperCaseFirst) { * The formatted string. */ function format(str = '', ctx, chart) { - const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu, + const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu, // The sub expression regex is the same as the top expression regex, // but except parens and block helpers (#), and surrounded by parens // instead of curly brackets. - subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || defaultOptions.lang, time = chart && chart.time || defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; + subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || defaultOptions.lang, time = chart && chart.time || defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; /* * Get a literal or variable value inside a template expression. May be * extended with other types like string or null if needed, but keep it @@ -147,7 +149,7 @@ function format(str = '', ctx, chart) { if ((n = Number(key)).toString() === key) { return n; } - if (/^["'].+["']$/.test(key)) { + if (isQuotedString(key)) { return key.slice(1, -1); } // Variables and constants @@ -260,7 +262,8 @@ function format(str = '', ctx, chart) { // Simple variable replacement } else { - const valueAndFormat = expression.split(':'); + const valueAndFormat = isQuotedString(expression) ? + [expression] : expression.split(':'); replacement = resolveProperty(valueAndFormat.shift() || ''); // Format the replacement if (valueAndFormat.length && typeof replacement === 'number') { @@ -273,13 +276,14 @@ function format(str = '', ctx, chart) { } else { replacement = time.dateFormat(segment, replacement); - // Use string literal in order to be preserved in the outer - // expression - if (hasSub) { - replacement = `"${replacement}"`; - } } } + // Use string literal in order to be preserved in the outer + // expression + subRegex.lastIndex = 0; + if (subRegex.test(match.find) && isString(replacement)) { + replacement = `"${replacement}"`; + } } str = str.replace(match.find, pick(replacement, '')); }); diff --git a/es-modules/Core/Time.js b/es-modules/Core/Time.js index 7d95a64424..a9386c41cc 100644 --- a/es-modules/Core/Time.js +++ b/es-modules/Core/Time.js @@ -91,7 +91,9 @@ class Time { * Properties * * */ - this.options = {}; + this.options = { + timezone: 'UTC' + }; this.variableTimezone = false; this.Date = win.Date; this.update(options); @@ -113,12 +115,13 @@ class Time { * */ update(options = {}) { - let timezone = options.timezone ?? 'UTC'; this.dTLCache = {}; this.options = options = merge(true, this.options, options); const { timezoneOffset, useUTC } = options; // Allow using a different Date class this.Date = options.Date || win.Date || Date; + // Assign the time zone. Handle the legacy, deprecated `useUTC` option. + let timezone = options.timezone; if (defined(useUTC)) { timezone = useUTC ? 'UTC' : void 0; } @@ -561,7 +564,7 @@ class Time { } else if (isObject(format)) { const tzHours = (this.getTimezoneOffset(timestamp) || 0) / - (60000 * 60), timeZone = this.options.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; + (60000 * 60), timeZone = this.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; format = prefix + this.dateTimeFormat(extend({ timeZone }, format), timestamp) + suffix; } // Optionally sentence-case the string and return diff --git a/es-modules/Core/Utilities.js b/es-modules/Core/Utilities.js index c9077248fd..b49f64de02 100644 --- a/es-modules/Core/Utilities.js +++ b/es-modules/Core/Utilities.js @@ -1094,7 +1094,7 @@ function getNestedProperty(path, parent) { } return thisProp ?? parent; } - const child = parent[pathElement]; + const child = parent[pathElement.replace(/[\\'"]/g, '')]; // Filter on the child if (!defined(child) || typeof child === 'function' || diff --git a/es-modules/Data/Converters/CSVConverter.js b/es-modules/Data/Converters/CSVConverter.js index 251b0c2cbb..f188e4f19a 100644 --- a/es-modules/Data/Converters/CSVConverter.js +++ b/es-modules/Data/Converters/CSVConverter.js @@ -432,6 +432,7 @@ CSVConverter.defaultOptions = { ...DataConverter.defaultOptions, lineDelimiter: '\n' }; +DataConverter.registerType('CSV', CSVConverter); /* * * * Default Export diff --git a/es-modules/Data/Converters/DataConverter.js b/es-modules/Data/Converters/DataConverter.js index fa2336d867..c3d09cb568 100644 --- a/es-modules/Data/Converters/DataConverter.js +++ b/es-modules/Data/Converters/DataConverter.js @@ -12,6 +12,7 @@ * - Gøran Slettemark * - Torstein Hønsi * - Wojciech Chmiel + * - Jomar Hønsi * * */ 'use strict'; @@ -560,11 +561,41 @@ DataConverter.defaultOptions = { * Declarations * * */ + /* * + * + * Constants + * + * */ + /** + * Registry as a record object with connector names and their class. + */ + DataConverter.types = {}; /* * * * Functions * * */ + /** + * Adds a converter class to the registry. + * + * @private + * + * @param {string} key + * Registry key of the converter class. + * + * @param {DataConverterTypes} DataConverterClass + * Connector class (aka class constructor) to register. + * + * @return {boolean} + * Returns true, if the registration was successful. False is returned, if + * their is already a converter registered with this key. + */ + function registerType(key, DataConverterClass) { + return (!!key && + !DataConverter.types[key] && + !!(DataConverter.types[key] = DataConverterClass)); + } + DataConverter.registerType = registerType; /** * Converts an array of columns to a table instance. Second dimension of the * array are the row cells. diff --git a/es-modules/Data/Converters/GoogleSheetsConverter.js b/es-modules/Data/Converters/GoogleSheetsConverter.js index 6a25e9e2a0..8408eb088d 100644 --- a/es-modules/Data/Converters/GoogleSheetsConverter.js +++ b/es-modules/Data/Converters/GoogleSheetsConverter.js @@ -127,6 +127,7 @@ class GoogleSheetsConverter extends DataConverter { GoogleSheetsConverter.defaultOptions = { ...DataConverter.defaultOptions }; +DataConverter.registerType('GoogleSheets', GoogleSheetsConverter); /* * * * Default Export diff --git a/es-modules/Data/Converters/HTMLTableConverter.js b/es-modules/Data/Converters/HTMLTableConverter.js index 9b4db6b0bc..ec56919da4 100644 --- a/es-modules/Data/Converters/HTMLTableConverter.js +++ b/es-modules/Data/Converters/HTMLTableConverter.js @@ -352,6 +352,7 @@ HTMLTableConverter.defaultOptions = { useRowspanHeaders: true, useMultiLevelHeaders: true }; +DataConverter.registerType('HTMLTable', HTMLTableConverter); /* * * * Default Export diff --git a/es-modules/Data/Converters/JSONConverter.js b/es-modules/Data/Converters/JSONConverter.js index 40cc40ffdc..27bdb881b5 100644 --- a/es-modules/Data/Converters/JSONConverter.js +++ b/es-modules/Data/Converters/JSONConverter.js @@ -173,6 +173,7 @@ JSONConverter.defaultOptions = { data: [], orientation: 'rows' }; +DataConverter.registerType('JSON', JSONConverter); /* * * * Default Export diff --git a/es-modules/Extensions/Boost/BoostSeries.js b/es-modules/Extensions/Boost/BoostSeries.js index ae55e595e9..a29854de3e 100644 --- a/es-modules/Extensions/Boost/BoostSeries.js +++ b/es-modules/Extensions/Boost/BoostSeries.js @@ -547,10 +547,17 @@ function getPoint(series, boostPoint) { if (boostPoint instanceof PointClass) { return boostPoint; } - const xData = ((series.getColumn('x').length ? series.getColumn('x') : void 0) || + const isScatter = series.is('scatter'), xData = ((isScatter && series.getColumn('x', true).length ? + series.getColumn('x', true) : + void 0) || + (series.getColumn('x').length ? series.getColumn('x') : void 0) || seriesOptions.xData || series.getColumn('x', true) || - false), point = new PointClass(series, (isArray(series.options.data) ? series.options.data : [])[boostPoint.i], xData ? xData[boostPoint.i] : void 0); + false), yData = (series.getColumn('y', true) || + seriesOptions.yData || + false), point = new PointClass(series, (isScatter && xData && yData) ? + [xData[boostPoint.i], yData[boostPoint.i]] : + (isArray(series.options.data) ? series.options.data : [])[boostPoint.i], xData ? xData[boostPoint.i] : void 0); point.category = pick(xAxis.categories ? xAxis.categories[point.x] : point.x, // @todo simplify @@ -569,7 +576,6 @@ function getPoint(series, boostPoint) { * @private */ function scatterProcessData(force) { - var _a, _b, _c, _d; const series = this, { options, xAxis, yAxis } = series; // Process only on changes if (!series.isDirty && @@ -636,12 +642,12 @@ function scatterProcessData(force) { } } if (xRangeNeeded) { - (_a = xAxis.options).max ?? (_a.max = xDataMax); - (_b = xAxis.options).min ?? (_b.min = xDataMin); + xAxis.dataMax = Math.max(xDataMax, xAxis.dataMax || 0); + xAxis.dataMin = Math.min(xDataMin, xAxis.dataMin || 0); } if (yRangeNeeded) { - (_c = yAxis.options).max ?? (_c.max = yDataMax); - (_d = yAxis.options).min ?? (_d.min = yDataMin); + yAxis.dataMax = Math.max(yDataMax, yAxis.dataMax || 0); + yAxis.dataMin = Math.min(yDataMin, yAxis.dataMin || 0); } // Set properties as base processData series.cropped = cropped; diff --git a/es-modules/Extensions/DragPanes/AxisResizer.js b/es-modules/Extensions/DragPanes/AxisResizer.js index bc3320538d..aa66603bb0 100644 --- a/es-modules/Extensions/DragPanes/AxisResizer.js +++ b/es-modules/Extensions/DragPanes/AxisResizer.js @@ -214,7 +214,7 @@ class AxisResizer { } top = axis.top; const minLength = Math.round(relativeLength(axisOptions.minLength || NaN, plotHeight)), maxLength = Math.round(relativeLength(axisOptions.maxLength || NaN, plotHeight)); - if (!isFirst) { + if (!isFirst && axesGroup === nextAxes) { // Try to change height first. yDelta could had changed yDelta = chartY - resizer.lastPos; // Normalize height to option limits diff --git a/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js b/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js index 462ce1ae15..9b60787742 100644 --- a/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +++ b/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js @@ -79,7 +79,9 @@ const SeriesLabelDefaults = { * small areas get a smaller font size. The default applies this * effect to area-like series but not line-like series. * - * @type {number|null} + * @sample highcharts/demo/streamgraph + * Min and max font size on a streamgraph + * @type {number|null} */ minFontSize: null, /** @@ -87,7 +89,10 @@ const SeriesLabelDefaults = { * small areas get a smaller font size. The default applies this * effect to area-like series but not line-like series. * - * @type {number|null} + * @sample highcharts/demo/streamgraph + * Min and max font size on a streamgraph + * + * @type {number|null} */ maxFontSize: null, /** diff --git a/es-modules/Series/Bubble/BubbleSeries.js b/es-modules/Series/Bubble/BubbleSeries.js index 135e5f3a4a..f439c0d2da 100644 --- a/es-modules/Series/Bubble/BubbleSeries.js +++ b/es-modules/Series/Bubble/BubbleSeries.js @@ -325,6 +325,30 @@ class BubbleSeries extends ScatterSeries { } } } + /** + * @private + * @function Highcharts.Series#searchKDTree + */ + searchKDTree(point, compareX, e, suppliedPointEvaluator = noop, suppliedBSideCheckEvaluator = noop) { + suppliedPointEvaluator = (p1, p2, comparisonProp) => { + const p1Dist = p1[comparisonProp] || 0; + const p2Dist = p2[comparisonProp] || 0; + let ret, flip = false; + if (p1Dist < 0 && p2Dist < 0) { + ret = (p1Dist - (p1.marker?.radius || 0) >= + p2Dist - (p2.marker?.radius || 0)) ? + p1 : + p2; + flip = true; + } + else { + ret = p1Dist < p2Dist ? p1 : p2; + } + return [ret, flip]; + }; + suppliedBSideCheckEvaluator = (a, b, flip) => !flip && (a > b) || (a < b); + return super.searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator); + } } /* * * diff --git a/es-modules/Series/Organization/OrganizationSeriesDefaults.js b/es-modules/Series/Organization/OrganizationSeriesDefaults.js index 7fa3a45838..0876e78ba8 100644 --- a/es-modules/Series/Organization/OrganizationSeriesDefaults.js +++ b/es-modules/Series/Organization/OrganizationSeriesDefaults.js @@ -209,7 +209,9 @@ const OrganizationSeriesDefaults = { /** @internal */ fontWeight: 'normal', /** @internal */ - fontSize: '0.9em' + fontSize: '0.9em', + /** @internal */ + textAlign: 'left' }, useHTML: true, linkTextPath: { diff --git a/es-modules/Series/Timeline/TimelineSeriesDefaults.js b/es-modules/Series/Timeline/TimelineSeriesDefaults.js index 3099721222..c62cd18879 100644 --- a/es-modules/Series/Timeline/TimelineSeriesDefaults.js +++ b/es-modules/Series/Timeline/TimelineSeriesDefaults.js @@ -150,7 +150,9 @@ const TimelineSeriesDefaults = { /** @internal */ fontWeight: 'normal', /** @internal */ - fontSize: '0.8em' + fontSize: '0.8em', + /** @internal */ + textAlign: 'left' }, /** * Shadow options for the data label. diff --git a/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js b/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js index bbece567b3..5d33b286b7 100644 --- a/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +++ b/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js @@ -32,7 +32,7 @@ * alternateStartingDirection, borderRadius, breadcrumbs, * interactByLeaf, layoutStartingDirection, levelIsConstant, * lineWidth, negativeColor, nodes, sortIndex, zoneAxis, - * zones + * zones, cluster * * @product highcharts * @since 10.3.0 @@ -174,6 +174,7 @@ const TreegraphSeriesDefaults = { fillSpace: false, /** * @extends plotOptions.series.tooltip + * @excluding clusterFormat */ tooltip: { /** @@ -234,6 +235,7 @@ const TreegraphSeriesDefaults = { }, enabled: true, linkFormatter: () => '', + padding: 5, style: { textOverflow: 'none' } diff --git a/es-modules/Series/Treemap/TreemapPoint.js b/es-modules/Series/Treemap/TreemapPoint.js index df973da243..e00b8c58aa 100644 --- a/es-modules/Series/Treemap/TreemapPoint.js +++ b/es-modules/Series/Treemap/TreemapPoint.js @@ -28,6 +28,7 @@ class TreemapPoint extends ScatterPoint { * * */ super(...arguments); + this.groupedPointsAmount = 0; this.shapeType = 'rect'; } /* * @@ -46,11 +47,15 @@ class TreemapPoint extends ScatterPoint { this.node.children.length) { className += ' highcharts-above-level'; } - else if (!this.node.isLeaf && + else if (!this.node.isGroup && + !this.node.isLeaf && + !series.nodeMap[series.rootNode].isGroup && !pick(options.interactByLeaf, !options.allowTraversingTree)) { className += ' highcharts-internal-node-interactive'; } - else if (!this.node.isLeaf) { + else if (!this.node.isGroup && + !this.node.isLeaf && + !series.nodeMap[series.rootNode].isGroup) { className += ' highcharts-internal-node'; } return className; diff --git a/es-modules/Series/Treemap/TreemapSeries.js b/es-modules/Series/Treemap/TreemapSeries.js index 3846f727aa..fa1b7e40eb 100644 --- a/es-modules/Series/Treemap/TreemapSeries.js +++ b/es-modules/Series/Treemap/TreemapSeries.js @@ -26,7 +26,7 @@ import TreemapUtilities from './TreemapUtilities.js'; import TU from '../TreeUtilities.js'; const { getColor, getLevelOptions, updateRootId } = TU; import U from '../../Core/Utilities.js'; -const { addEvent, correctFloat, crisp, defined, error, extend, fireEvent, isArray, isObject, isString, merge, pick, pushUnique, stableSort } = U; +const { addEvent, correctFloat, crisp, defined, error, extend, fireEvent, isArray, isObject, isString, merge, pick, pushUnique, splat, stableSort } = U; /* * * * Constants @@ -183,7 +183,9 @@ class TreemapSeries extends ScatterSeries { x: pX, y: pY, width: pW, - height: pH + height: pH, + direction: 0, + val: 0 }); if (directionChange) { direction = 1 - direction; @@ -220,28 +222,93 @@ class TreemapSeries extends ScatterSeries { * Over the alignment method by setting z index. * @private */ - alignDataLabel(point, dataLabel, labelOptions) { - const style = labelOptions.style; - // #8160: Prevent the label from exceeding the point's - // boundaries in treemaps by applying ellipsis overflow. - // The issue was happening when datalabel's text contained a - // long sequence of characters without a whitespace. - if (style && - !defined(style.textOverflow) && - dataLabel.text && - dataLabel.getBBox().width > (dataLabel.text.textWidth || 0)) { - dataLabel.css({ - textOverflow: 'ellipsis', - // Unit (px) is required when useHTML is true - width: style.width += 'px' - }); - } + alignDataLabel(point, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dataLabel, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + labelOptions) { ColumnSeries.prototype.alignDataLabel.apply(this, arguments); if (point.dataLabel) { // `point.node.zIndex` could be undefined (#6956) point.dataLabel.attr({ zIndex: (point.node.zIndex || 0) + 1 }); } } + applyTreeGrouping() { + const series = this, parentList = series.parentList || {}, { cluster } = series.options, minimumClusterSize = cluster?.minimumClusterSize || 5; + if (cluster?.enabled) { + const parentGroups = {}; + const checkIfHide = (node) => { + if (node?.point?.shapeArgs) { + const { width = 0, height = 0 } = node.point.shapeArgs, area = width * height; + const { pixelWidth = 0, pixelHeight = 0 } = cluster, compareHeight = defined(pixelHeight), thresholdArea = pixelHeight ? + pixelWidth * pixelHeight : + pixelWidth * pixelWidth; + if (width < pixelWidth || + height < (compareHeight ? pixelHeight : pixelWidth) || + area < thresholdArea) { + if (!node.isGroup && defined(node.parent)) { + if (!parentGroups[node.parent]) { + parentGroups[node.parent] = []; + } + parentGroups[node.parent].push(node); + } + } + } + node?.children.forEach((child) => { + checkIfHide(child); + }); + }; + checkIfHide(series.tree); + for (const parent in parentGroups) { + if (parentGroups[parent]) { + if (parentGroups[parent].length > minimumClusterSize) { + parentGroups[parent].forEach((node) => { + const index = parentList[parent].indexOf(node.i); + if (index !== -1) { + parentList[parent].splice(index, 1); + const id = `highcharts-grouped-treemap-points-${node.parent || 'root'}`; + let groupPoint = series.points + .find((p) => p.id === id); + if (!groupPoint) { + const PointClass = series.pointClass, pointIndex = series.points.length; + groupPoint = new PointClass(series, { + className: cluster.className, + color: cluster.color, + id, + index: pointIndex, + isGroup: true, + value: 0 + }); + extend(groupPoint, { + formatPrefix: 'cluster' + }); + series.points.push(groupPoint); + parentList[parent].push(pointIndex); + parentList[id] = []; + } + const amount = groupPoint.groupedPointsAmount + 1, val = series.points[groupPoint.index] + .options.value || 0, name = cluster.name || + `+ ${amount}`; + // Update the point directly in points array to + // prevent wrong instance update + series.points[groupPoint.index] + .groupedPointsAmount = amount; + series.points[groupPoint.index].options.value = + val + (node.point.value || 0); + series.points[groupPoint.index].name = name; + parentList[id].push(node.point.index); + } + }); + } + } + } + series.nodeMap = {}; + series.nodeList = []; + series.parentList = parentList; + const tree = series.buildTree('', -1, 0, series.parentList); + series.translate(tree); + } + } /** * Recursive function which calculates the area for all children of a * node. @@ -256,10 +323,14 @@ class TreemapSeries extends ScatterSeries { * The rectangular area of the parent. */ calculateChildrenAreas(parent, area) { - const series = this, options = series.options, mapOptionsToLevel = series.mapOptionsToLevel, level = mapOptionsToLevel[parent.level + 1], algorithm = pick((series[(level && level.layoutAlgorithm)] && - level.layoutAlgorithm), options.layoutAlgorithm), alternate = options.alternateStartingDirection, + const series = this, options = series.options, mapOptionsToLevel = series.mapOptionsToLevel, level = mapOptionsToLevel[parent.level + 1], algorithm = pick((level?.layoutAlgorithm && + series[level?.layoutAlgorithm] && + level.layoutAlgorithm), series.options.layoutAlgorithm), alternate = options.alternateStartingDirection, // Collect all children which should be included - children = parent.children.filter((n) => !n.ignore); + children = parent.children.filter((n) => parent.isGroup || !n.ignore); + if (!algorithm) { + return; + } let childrenValues = []; if (level && level.layoutStartingDirection) { area.direction = level.layoutStartingDirection === 'vertical' ? @@ -336,15 +407,18 @@ class TreemapSeries extends ScatterSeries { */ drawDataLabels() { const series = this, mapOptionsToLevel = series.mapOptionsToLevel, points = series.points.filter(function (n) { - return n.node.visible; - }); + return n.node.visible || defined(n.dataLabel); + }), padding = splat(series.options.dataLabels || {})[0]?.padding; let options, level; for (const point of points) { level = mapOptionsToLevel[point.node.level]; // Set options to new object to avoid problems with scope options = { style: {} }; // If not a leaf, then label should be disabled as default - if (!point.node.isLeaf) { + if (!point.node.isLeaf && + !point.node.isGroup || + (point.node.isGroup && + point.node.level <= series.nodeMap[series.rootNode].level)) { options.enabled = false; } // If options for level exists, include them as well @@ -352,10 +426,12 @@ class TreemapSeries extends ScatterSeries { options = merge(options, level.dataLabels); series.hasDataLabels = () => true; } - // Set dataLabel width to the width of the point shape. + // Set dataLabel width to the width of the point shape minus the + // padding if (point.shapeArgs) { const css = { - width: `${point.shapeArgs.width || 0}px`, + width: ((point.shapeArgs.width || 0) - + 2 * (options.padding || padding || 0)) + 'px', lineClamp: Math.floor((point.shapeArgs.height || 0) / 16) }; extend(options.style, css); @@ -364,7 +440,7 @@ class TreemapSeries extends ScatterSeries { // Merge custom options with point options point.dlOptions = merge(options, point.options.dataLabels); } - super.drawDataLabels(); + super.drawDataLabels(points); } /** * Override drawPoints @@ -435,7 +511,8 @@ class TreemapSeries extends ScatterSeries { */ drillToByGroup(point) { let drillId = false; - if (!point.node.isLeaf && + if ((!point.node.isLeaf || + point.node.isGroup) && (point.node.level - this.nodeMap[this.rootNode].level) === 1) { drillId = point.id; } @@ -535,10 +612,11 @@ class TreemapSeries extends ScatterSeries { getTree() { const series = this, allIds = this.data.map(function (d) { return d.id; - }), parentList = series.getListOfParents(this.data, allIds); + }); + series.parentList = series.getListOfParents(this.data, allIds); series.nodeMap = {}; series.nodeList = []; - return series.buildTree('', -1, 0, parentList); + return series.buildTree('', -1, 0, series.parentList || {}); } buildTree(id, index, level, list, parent) { const series = this, children = [], point = series.points[index]; @@ -843,16 +921,23 @@ class TreemapSeries extends ScatterSeries { // Sort the children stableSort(children, (a, b) => ((a.sortIndex || 0) - (b.sortIndex || 0))); // Set the values - const val = pick(point && point.options.value, childrenTotal); + let val = pick(point && point.options.value, childrenTotal); if (point) { point.value = val; } + if (point?.isGroup && options.cluster?.reductionFactor) { + val /= options.cluster.reductionFactor; + } + if (tree.parentNode?.point?.isGroup && series.rootNode !== tree.parent) { + tree.visible = false; + } extend(tree, { children: children, childrenTotal: childrenTotal, // Ignore this node if point is not visible ignore: !(pick(point && point.visible, true) && (val > 0)), isLeaf: tree.visible && !childrenTotal, + isGroup: point?.isGroup, levelDynamic: (tree.level - (levelIsConstant ? 0 : nodeRoot.level)), name: pick(point && point.name, ''), sortIndex: pick(point && point.sortIndex, -val), @@ -872,30 +957,41 @@ class TreemapSeries extends ScatterSeries { stripes(parent, children) { return this.algorithmFill(false, parent, children); } - translate() { - const series = this, options = series.options; + translate(tree) { + const series = this, options = series.options, applyGrouping = !tree; let // NOTE: updateRootId modifies series. rootId = updateRootId(series), rootNode, pointValues, seriesArea, val; - // Call prototype function - super.translate(); - // @todo Only if series.isDirtyData is true - const tree = series.tree = series.getTree(); + if (!tree && !rootId.startsWith('highcharts-grouped-treemap-points-')) { + // Group points are removed, but not destroyed during generatePoints + (this.points || []).forEach((point) => { + if (point.isGroup) { + point.destroy(); + } + }); + // Call prototype function + super.translate(); + // @todo Only if series.isDirtyData is true + tree = series.getTree(); + } + // Ensure `tree` and `series.tree` are synchronized + series.tree = tree = tree || series.tree; rootNode = series.nodeMap[rootId]; - if (rootId !== '' && - (!rootNode)) { + if (rootId !== '' && !rootNode) { series.setRootNode('', false); rootId = series.rootNode; rootNode = series.nodeMap[rootId]; } - series.mapOptionsToLevel = getLevelOptions({ - from: rootNode.level + 1, - levels: options.levels, - to: tree.height, - defaults: { - levelIsConstant: series.options.levelIsConstant, - colorByPoint: options.colorByPoint - } - }); + if (!rootNode.point?.isGroup) { + series.mapOptionsToLevel = getLevelOptions({ + from: rootNode.level + 1, + levels: options.levels, + to: tree.height, + defaults: { + levelIsConstant: series.options.levelIsConstant, + colorByPoint: options.colorByPoint + } + }); + } // Parents of the root node is by default visible TreemapUtilities.recursive(series.nodeMap[series.rootNode], (node) => { const p = node.parent; @@ -939,14 +1035,19 @@ class TreemapSeries extends ScatterSeries { } // Update axis extremes according to the root node. if (options.allowTraversingTree) { - val = rootNode.pointValues; - series.xAxis.setExtremes(val.x, val.x + val.width, false); - series.yAxis.setExtremes(val.y, val.y + val.height, false); - series.xAxis.setScale(); - series.yAxis.setScale(); + if (rootNode.pointValues) { + val = rootNode.pointValues; + series.xAxis.setExtremes(val.x, val.x + val.width, false); + series.yAxis.setExtremes(val.y, val.y + val.height, false); + series.xAxis.setScale(); + series.yAxis.setScale(); + } } // Assign values to points. series.setPointValues(); + if (applyGrouping) { + series.applyTreeGrouping(); + } } } /* * diff --git a/es-modules/Series/Treemap/TreemapSeriesDefaults.js b/es-modules/Series/Treemap/TreemapSeriesDefaults.js index 100804dd02..15e91ac286 100644 --- a/es-modules/Series/Treemap/TreemapSeriesDefaults.js +++ b/es-modules/Series/Treemap/TreemapSeriesDefaults.js @@ -26,7 +26,7 @@ const { isString } = U; * Treemap * * @extends plotOptions.scatter - * @excluding cluster, connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker + * @excluding connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker * @product highcharts * @requires modules/treemap * @optionparent plotOptions.treemap @@ -53,6 +53,8 @@ const TreemapSeriesDefaults = { * * @sample {highcharts} highcharts/plotoptions/treemap-allowtraversingtree/ * Enabled + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-traversing/ + * Traversing to Grouped Points node * * @since 7.0.3 * @product highcharts @@ -175,11 +177,28 @@ const TreemapSeriesDefaults = { return name; }, inside: true, - verticalAlign: 'middle' + padding: 2, + verticalAlign: 'middle', + style: { + textOverflow: 'ellipsis' + } }, tooltip: { headerFormat: '', - pointFormat: '{point.name}: {point.value}
' + pointFormat: '{point.name}: {point.value}
', + /** + * The HTML of the grouped point's nodes in the tooltip. Works only for + * Treemap series grouping and analogously to + * [pointFormat](#tooltip.pointFormat). + * + * The grouped nodes point tooltip can be also formatted using + * `tooltip.formatter` callback function and `point.isGroupNode` flag. + * + * @type {string} + * @default '+ {point.groupedPointsAmount} more...' + * @apioption tooltip.clusterFormat + */ + clusterFormat: '+ {point.groupedPointsAmount} more...
' }, /** * Whether to ignore hidden points when the layout algorithm runs. @@ -473,7 +492,110 @@ const TreemapSeriesDefaults = { * * @product highcharts */ - traverseToLeaf: false + traverseToLeaf: false, + /** + * An option to optimize treemap series rendering by grouping smaller leaf + * nodes below a certain square area threshold in pixels. If the square area + * of a point becomes smaller than the specified threshold, determined by + * the `pixelWidth` and/or `pixelHeight` options, then this point is moved + * into one group point per series. + * + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-simple + * Simple demo of Treemap grouping + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-multiple-parents + * Treemap grouping with multiple parents + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-advanced + * Advanced demo of Treemap grouping + * + * @since 12.1.0 + * + * @excluding allowOverlap, animation, dataLabels, drillToCluster, events, + * layoutAlgorithm, marker, states, zones + * + * @product highcharts + */ + cluster: { + /** + * An additional, individual class name for the grouped point's graphic + * representation. + * + * @type string + * @product highcharts + */ + className: void 0, + /** + * Individual color for the grouped point. By default the color is + * pulled from the parent color. + * + * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} + * @product highcharts + */ + color: void 0, + /** + * Enable or disable Treemap grouping. + * + * @type {boolean} + * @since 12.1.0 + * @product highcharts + */ + enabled: false, + /** + * The pixel threshold width of area, which is used in Treemap grouping. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + pixelWidth: void 0, + /** + * The pixel threshold height of area, which is used in Treemap + * grouping. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + pixelHeight: void 0, + /** + * The name of the point of grouped nodes shown in the tooltip, + * dataLabels, etc. By default it is set to '+ n', where n is number of + * grouped points. + * + * @type {string} + * @since 12.1.0 + * @product highcharts + */ + name: void 0, + /** + * A configuration property that specifies the factor by which the value + * and size of a grouped node are reduced. This can be particularly + * useful when a grouped node occupies a disproportionately large + * portion of the graph, ensuring better visual balance and readability. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + reductionFactor: void 0, + /** + * Defines the minimum number of child nodes required to create a group + * of small nodes. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + minimumClusterSize: 5, + layoutAlgorithm: { + distance: 0, + gridSize: 0, + kmeansThreshold: 0 + }, + marker: { + lineWidth: 0, + radius: 0 + } + } }; /** * A `treemap` series. If the [type](#series.treemap.type) option is diff --git a/es-modules/Stock/Indicators/VBP/VBPIndicator.js b/es-modules/Stock/Indicators/VBP/VBPIndicator.js index 9e2d3a12fb..d26cff9011 100644 --- a/es-modules/Stock/Indicators/VBP/VBPIndicator.js +++ b/es-modules/Stock/Indicators/VBP/VBPIndicator.js @@ -535,6 +535,7 @@ VBPIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, { enabled: false }, dataLabels: { + align: 'left', allowOverlap: true, enabled: true, format: 'P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}', diff --git a/es-modules/Stock/RangeSelector/RangeSelector.js b/es-modules/Stock/RangeSelector/RangeSelector.js index 11f74b0969..3093cfc07b 100644 --- a/es-modules/Stock/RangeSelector/RangeSelector.js +++ b/es-modules/Stock/RangeSelector/RangeSelector.js @@ -29,6 +29,7 @@ const { addEvent, createElement, css, defined, destroyObjectProperties, diffObje * @function preferredInputType */ function preferredInputType(format) { + const hasTimeKey = (char) => new RegExp(`%[[a-zA-Z]*${char}`).test(format); const ms = isString(format) ? format.indexOf('%L') !== -1 : // Implemented but not typed as of 2024 @@ -38,11 +39,10 @@ function preferredInputType(format) { } const date = isString(format) ? ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y'] - .some((char) => format.indexOf('%' + char) !== -1) : + .some(hasTimeKey) : format.dateStyle || format.day || format.month || format.year; const time = isString(format) ? - ['H', 'k', 'I', 'l', 'M', 'S'] - .some((char) => format.indexOf('%' + char) !== -1) : + ['H', 'k', 'I', 'l', 'M', 'S'].some(hasTimeKey) : format.timeStyle || format.hour || format.minute || format.second; if (date && time) { return 'datetime-local'; @@ -89,6 +89,16 @@ class RangeSelector { this.isDirty = false; this.buttonOptions = RangeSelector.prototype.defaultButtons; this.initialButtonGroupWidth = 0; + this.maxButtonWidth = () => { + let buttonWidth = 0; + this.buttons.forEach((button) => { + const bBox = button.getBBox(); + if (bBox.width > buttonWidth) { + buttonWidth = bBox.width; + } + }); + return buttonWidth; + }; this.init(chart); } /* * @@ -382,9 +392,15 @@ class RangeSelector { if (selectedIndex !== null) { buttonStates[selectedIndex] = 2; rangeSelector.setSelected(selectedIndex); + if (this.dropdown) { + this.dropdown.selectedIndex = selectedIndex + 1; + } } else { rangeSelector.setSelected(); + if (this.dropdown) { + this.dropdown.selectedIndex = -1; + } if (dropdownLabel) { dropdownLabel.setState(0); dropdownLabel.attr({ @@ -1003,11 +1019,11 @@ class RangeSelector { const { buttonPosition, inputPosition, verticalAlign } = options; // Get the X offset required to avoid overlapping with the exporting // button. This is used both by the buttonGroup and the inputGroup. - const getXOffsetForExportButton = (group, position) => { + const getXOffsetForExportButton = (group, position, rightAligned) => { if (navButtonOptions && this.titleCollision(chart) && verticalAlign === 'top' && - position.align === 'right' && ((position.y - + rightAligned && ((position.y - group.getBBox().height - 12) < ((navButtonOptions.y || 0) + (navButtonOptions.height || 0) + @@ -1036,7 +1052,8 @@ class RangeSelector { } plotLeft -= chart.spacing[3]; // Detect collision between button group and exporting - const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition); + const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); this.alignButtonGroup(xOffsetForExportButton); if (this.buttonGroup?.translateY) { this.dropdownLabel @@ -1048,7 +1065,8 @@ class RangeSelector { let xOffsetForExportButton = 0; if (options.inputEnabled && inputGroup) { // Detect collision between the input group and exporting button - xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition); + xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); if (inputPosition.align === 'left') { translateX = plotLeft; } @@ -1201,16 +1219,35 @@ class RangeSelector { * @param {number} [width] */ alignButtonGroup(xOffsetForExportButton, width) { - const { chart, options, buttonGroup } = this; + const { chart, options, buttonGroup, dropdown, dropdownLabel } = this; const { buttonPosition } = options; const plotLeft = chart.plotLeft - chart.spacing[3]; let translateX = buttonPosition.x - chart.spacing[3]; + let dropdownTranslateX = chart.plotLeft; if (buttonPosition.align === 'right') { translateX += xOffsetForExportButton - plotLeft; // #13014 + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth + + xOffsetForExportButton - + this.maxButtonWidth() - 20; + } } else if (buttonPosition.align === 'center') { translateX -= plotLeft / 2; + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth / 2 - + this.maxButtonWidth(); + } } + if (dropdown) { + css(dropdown, { + left: dropdownTranslateX + 'px', + top: buttonGroup?.translateY + 'px' + }); + } + dropdownLabel?.attr({ + x: dropdownTranslateX + }); if (buttonGroup) { // Align button group buttonGroup.align({ @@ -1264,36 +1301,6 @@ class RangeSelector { handleCollision(xOffsetForExportButton) { const { chart, buttonGroup, inputGroup } = this; const { buttonPosition, dropdown, inputPosition } = this.options; - const maxButtonWidth = () => { - let buttonWidth = 0; - this.buttons.forEach((button) => { - const bBox = button.getBBox(); - if (bBox.width > buttonWidth) { - buttonWidth = bBox.width; - } - }); - return buttonWidth; - }; - const groupsOverlap = (buttonGroupWidth) => { - if (inputGroup?.alignOptions && buttonGroup) { - const inputGroupX = (inputGroup.alignAttr.translateX + - inputGroup.alignOptions.x - - xOffsetForExportButton + - // `getBBox` for detecing left margin - inputGroup.getBBox().x + - // 2px padding to not overlap input and label - 2); - const inputGroupWidth = inputGroup.alignOptions.width || 0; - const buttonGroupX = buttonGroup.alignAttr.translateX + - buttonGroup.getBBox().x; - return (buttonGroupX + buttonGroupWidth > inputGroupX) && - (inputGroupX + inputGroupWidth > buttonGroupX) && - (buttonPosition.y < - (inputPosition.y + - inputGroup.getBBox().height)); - } - return false; - }; const moveInputsDown = () => { if (inputGroup && buttonGroup) { inputGroup.attr({ @@ -1305,47 +1312,43 @@ class RangeSelector { }); } }; - if (buttonGroup) { - if (dropdown === 'always') { - this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - // Move the inputs down if there is still a collision - // after collapsing the buttons - moveInputsDown(); - } - return; - } - if (dropdown === 'never') { - this.expandButtons(); - } - } // Detect collision if (inputGroup && buttonGroup) { - if ((inputPosition.align === buttonPosition.align) || - // 20 is minimal spacing between elements - groupsOverlap(this.initialButtonGroupWidth + 20)) { + if (inputPosition.align === buttonPosition.align) { + moveInputsDown(); + if (this.initialButtonGroupWidth > + chart.plotWidth + xOffsetForExportButton - 20) { + this.collapseButtons(); + } + else { + this.expandButtons(); + } + } + else if (this.initialButtonGroupWidth - + xOffsetForExportButton + + inputGroup.getBBox().width > + chart.plotWidth) { if (dropdown === 'responsive') { this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - moveInputsDown(); - } } else { moveInputsDown(); } } - else if (dropdown === 'responsive') { + else { this.expandButtons(); } } - else if (buttonGroup && dropdown === 'responsive') { - if (this.initialButtonGroupWidth > chart.plotWidth) { + // Forced states + if (buttonGroup) { + if (dropdown === 'always') { this.collapseButtons(); } - else { + if (dropdown === 'never') { this.expandButtons(); } } + this.alignButtonGroup(xOffsetForExportButton); } /** * Collapse the buttons and show the select element. @@ -1388,17 +1391,10 @@ class RangeSelector { * @function Highcharts.RangeSelector#showDropdown */ showDropdown() { - const { buttonGroup, chart, dropdownLabel, dropdown } = this; + const { buttonGroup, dropdownLabel, dropdown } = this; if (buttonGroup && dropdown) { - const { translateX = 0, translateY = 0 } = buttonGroup, left = chart.plotLeft + translateX, top = translateY; - dropdownLabel - .attr({ x: left, y: top }) - .show(); - css(dropdown, { - left: left + 'px', - top: top + 'px', - visibility: 'inherit' - }); + dropdownLabel.show(); + css(dropdown, { visibility: 'inherit' }); this.hasVisibleDropdown = true; } } diff --git a/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js b/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js index a6d1a3229c..aac23e09eb 100644 --- a/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +++ b/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js @@ -440,8 +440,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -481,8 +484,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 diff --git a/es-modules/masters/indicators/indicators-all.src.js b/es-modules/masters/indicators/indicators-all.src.js index 1c0672f31c..ff5d5717ae 100644 --- a/es-modules/masters/indicators/indicators-all.src.js +++ b/es-modules/masters/indicators/indicators-all.src.js @@ -60,4 +60,8 @@ import '../../Stock/Indicators/LinearRegressionAngle/LinearRegressionAngleIndica import '../../Stock/Indicators/ABands/ABandsIndicator.js'; import '../../Stock/Indicators/TrendLine/TrendLineIndicator.js'; import '../../Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js'; +import MultipleLinesComposition from '../../Stock/Indicators/MultipleLinesComposition.js'; +const G = Highcharts; +G.MultipleLinesComposition = + G.MultipleLinesComposition || MultipleLinesComposition; export default Highcharts; diff --git a/es-modules/tsconfig.tsbuildinfo b/es-modules/tsconfig.tsbuildinfo index f9065d6bf2..80b8dc5a05 100644 --- a/es-modules/tsconfig.tsbuildinfo +++ b/es-modules/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../ts/core/axis/tickpositionsarray.d.ts","../../ts/core/axis/timeticksinfoobject.d.ts","../../ts/core/color/colorstring.d.ts","../../ts/core/renderer/alignobject.d.ts","../../ts/core/renderer/positionobject.d.ts","../../ts/core/renderer/sizeobject.d.ts","../../ts/core/renderer/bboxobject.d.ts","../../ts/core/renderer/cssobject.d.ts","../../ts/core/renderer/domelementtype.d.ts","../../ts/core/renderer/fontmetricsobject.d.ts","../../ts/core/renderer/rectangleobject.d.ts","../../ts/core/renderer/shadowoptionsobject.d.ts","../../ts/core/renderer/svg/svgelementlike.d.ts","../../ts/core/renderer/svg/svgpath.d.ts","../../ts/core/eventcallback.d.ts","../../ts/core/renderer/svg/svgrendererlike.d.ts","../../ts/core/renderer/svg/symboloptions.d.ts","../../ts/core/renderer/svg/symboltype.d.ts","../../ts/core/renderer/html/htmlattributes.d.ts","../../ts/core/renderer/html/ast.ts","../../ts/core/renderer/dashstylevalue.d.ts","../../ts/core/formattercallback.d.ts","../../ts/data/dataevent.ts","../../ts/data/modifiers/datamodifierevent.ts","../../ts/data/modifiers/datamodifiertype.d.ts","../../ts/data/modifiers/datamodifieroptions.ts","../../ts/data/modifiers/datamodifier.ts","../../ts/data/datatableoptions.ts","../../ts/data/datatablecore.ts","../../ts/data/datatable.ts","../../ts/core/callback.d.ts","../../ts/core/series/dataextremesobject.d.ts","../../ts/core/series/kdpointsearchobjectlike.d.ts","../../ts/series/line/linepointoptions.d.ts","../../ts/series/scatter/scatterpointoptions.d.ts","../../ts/series/bubble/bubblepointoptions.d.ts","../../ts/core/series/datalabeloptions.d.ts","../../ts/series/line/linepoint.d.ts","../../ts/core/series/statesoptions.d.ts","../../ts/core/series/seriesoptions.d.ts","../../ts/series/spline/splinepointoptions.d.ts","../../ts/series/spline/splinepoint.d.ts","../../ts/series/spline/splineseriesoptions.d.ts","../../ts/core/series/seriestype.d.ts","../../ts/core/series/seriesregistry.ts","../../ts/series/spline/splineseries.ts","../../ts/core/color/palettes.ts","../../ts/series/line/lineseries.ts","../../ts/series/line/lineseriesoptions.d.ts","../../ts/series/scatter/scatterpoint.d.ts","../../ts/series/scatter/scatterseriesdefaults.ts","../../ts/series/scatter/scatterseries.ts","../../ts/core/templating.ts","../../ts/core/animation/fxlike.d.ts","../../ts/core/renderer/html/htmlelement.ts","../../ts/core/animation/fx.ts","../../ts/core/animation/animationutilities.ts","../../ts/core/renderer/rendererutilities.ts","../../ts/core/renderer/rendererregistry.ts","../../ts/core/tooltip.ts","../../ts/core/tooltipoptions.d.ts","../../ts/series/scatter/scatterseriesoptions.d.ts","../../ts/series/bubble/bubbleseriesoptions.d.ts","../../ts/series/bubble/bubblelegenddefaults.ts","../../ts/series/bubble/bubblelegendcomposition.ts","../../ts/series/bubble/bubblepoint.ts","../../ts/series/bubble/bubbleseries.ts","../../ts/core/axis/ticklike.d.ts","../../ts/core/axis/tick.ts","../../ts/core/axis/axislike.d.ts","../../ts/core/legend/legendoptions.d.ts","../../ts/maps/mapnavigationoptions.d.ts","../../ts/extensions/breadcrumbs/breadcrumbsoptions.d.ts","../../ts/core/renderer/svg/svglabel.ts","../../ts/series/treemap/treemappointoptions.d.ts","../../ts/series/treemap/treemapseriesoptions.d.ts","../../ts/extensions/breadcrumbs/breadcrumbsdefaults.ts","../../ts/extensions/breadcrumbs/breadcrumbs.ts","../../ts/series/colormapcomposition.ts","../../ts/series/drawpointutilities.ts","../../ts/series/treemap/treemappoint.ts","../../ts/series/treemap/treemapnode.ts","../../ts/series/treemap/treemapalgorithmgroup.ts","../../ts/series/treemap/treemapseriesdefaults.ts","../../ts/series/treemap/treemaputilities.ts","../../ts/series/column/columnpointoptions.d.ts","../../ts/series/sankey/sankeypointoptions.d.ts","../../ts/series/sankey/sankeypoint.ts","../../ts/series/sankey/sankeydatalabeloptions.d.ts","../../ts/series/column/columnmetricsobject.d.ts","../../ts/series/column/columnpoint.d.ts","../../ts/core/axis/stacking/stackingoptions.d.ts","../../ts/core/axis/stacking/stackingaxis.ts","../../ts/core/axis/stacking/stackitem.ts","../../ts/series/column/columnseriesdefaults.ts","../../ts/series/column/columnseries.ts","../../ts/series/pie/piepointoptions.d.ts","../../ts/series/pie/piepoint.ts","../../ts/core/series/datalabel.ts","../../ts/series/pie/piedatalabeloptions.d.ts","../../ts/series/pie/pieseriesoptions.d.ts","../../ts/series/centeredutilities.ts","../../ts/series/pie/pieseriesdefaults.ts","../../ts/core/renderer/svg/symbols.ts","../../ts/series/pie/pieseries.ts","../../ts/extensions/borderradius.ts","../../ts/series/column/columnseriesoptions.d.ts","../../ts/series/sankey/sankeyseriesoptions.d.ts","../../ts/series/sankey/sankeyseriesdefaults.ts","../../ts/series/sankey/sankeycolumncomposition.ts","../../ts/extensions/textpath.ts","../../ts/series/sankey/sankeyseries.ts","../../ts/series/organization/organizationpointoptions.d.ts","../../ts/series/organization/organizationseriesdefaults.ts","../../ts/series/pathutilities.ts","../../ts/series/organization/organizationseries.ts","../../ts/series/organization/organizationpoint.ts","../../ts/series/organization/organizationdatalabeloptions.d.ts","../../ts/series/organization/organizationseriesoptions.d.ts","../../ts/series/treegraph/treegraphpointoptions.d.ts","../../ts/series/treegraph/treegraphnode.ts","../../ts/series/treegraph/treegraphpoint.ts","../../ts/series/treegraph/treegraphlink.ts","../../ts/series/treegraph/treegraphseriesoptions.d.ts","../../ts/series/treegraph/treegraphlayout.ts","../../ts/series/treegraph/treegraphseriesdefaults.ts","../../ts/series/treegraph/treegraphseries.ts","../../ts/series/treeutilities.ts","../../ts/series/treemap/treemapseries.ts","../../ts/core/axis/color/coloraxiscomposition.ts","../../ts/core/axis/color/coloraxisdefaults.ts","../../ts/core/axis/axiscomposition.d.ts","../../ts/core/axis/color/coloraxislike.ts","../../ts/core/legend/legendsymbol.ts","../../ts/core/axis/color/coloraxis.ts","../../ts/core/legend/legenditem.d.ts","../../ts/series/bubble/bubblelegenditem.ts","../../ts/core/legend/legendlike.d.ts","../../ts/maps/projectiondefinition.d.ts","../../ts/maps/projections/lambertconformalconic.ts","../../ts/maps/projections/equalearth.ts","../../ts/maps/projections/miller.ts","../../ts/maps/projections/orthographic.ts","../../ts/maps/projections/webmercator.ts","../../ts/maps/projections/projectionregistry.ts","../../ts/maps/projectionoptions.d.ts","../../ts/maps/mapviewoptions.d.ts","../../ts/series/map/mappointoptions.d.ts","../../ts/maps/geojson.d.ts","../../ts/core/chart/chartoptions.d.ts","../../ts/core/foundation.ts","../../ts/core/legend/legend.ts","../../ts/extensions/datagrouping/approximationtype.d.ts","../../ts/extensions/datagrouping/datagroupingoptions.d.ts","../../ts/stock/rangeselector/rangeselectoroptions.d.ts","../../ts/stock/rangeselector/rangeselectordefaults.ts","../../ts/stock/rangeselector/rangeselectorcomposition.ts","../../ts/core/axis/navigatoraxiscomposition.ts","../../ts/series/flags/flagspointoptions.d.ts","../../ts/series/flags/flagsseriesoptions.d.ts","../../ts/series/flags/flagspoint.ts","../../ts/series/flags/flagsseriesdefaults.ts","../../ts/series/flags/flagssymbols.ts","../../ts/series/onseriescomposition.ts","../../ts/series/flags/flagsseries.ts","../../ts/core/axis/ordinalaxis.ts","../../ts/stock/rangeselector/rangeselector.ts","../../ts/core/series/serieslike.d.ts","../../ts/core/series/seriesdefaults.ts","../../ts/core/series/series.ts","../../ts/series/nodescomposition.ts","../../ts/core/pointer.ts","../../ts/core/pointerevent.d.ts","../../ts/core/series/pointtype.d.ts","../../ts/core/series/pointoptions.d.ts","../../ts/core/series/pointlike.d.ts","../../ts/core/series/point.ts","../../ts/core/axis/axisoptions.d.ts","../../ts/core/chart/chartlike.d.ts","../../ts/core/chart/chart.ts","../../ts/core/options.d.ts","../../ts/core/chart/chartdefaults.ts","../../ts/core/defaults.ts","../../ts/core/renderer/svg/textbuilder.ts","../../ts/core/renderer/svg/svgrenderer.ts","../../ts/core/renderer/svg/svgelement.ts","../../ts/core/animation/animationoptions.d.ts","../../ts/core/axis/plotlineorband/plotbandoptions.d.ts","../../ts/core/axis/plotlineorband/plotlineoptions.d.ts","../../ts/core/axis/plotlineorband/plotlineorbandaxis.ts","../../ts/core/axis/plotlineorband/plotlineorband.ts","../../ts/core/axis/axisdefaults.ts","../../ts/core/axis/axis.ts","../../ts/core/axis/axistype.d.ts","../../ts/core/utilities.ts","../../ts/core/color/color.ts","../../ts/core/color/gradientcolor.d.ts","../../ts/core/color/colortype.d.ts","../../ts/core/renderer/svg/svgattributes.d.ts","../../ts/core/renderer/svg/buttonthemeobject.d.ts","../../ts/core/globalslike.d.ts","../../ts/core/globals.ts","../../ts/core/time.ts","../../ts/accessibility/a11yi18n.ts","../../ts/accessibility/keyboardnavigationhandler.ts","../../ts/accessibility/utils/eventprovider.ts","../../ts/accessibility/utils/htmlutilities.ts","../../ts/accessibility/utils/chartutilities.ts","../../ts/accessibility/proxyelement.ts","../../ts/accessibility/utils/domelementprovider.ts","../../ts/accessibility/proxyprovider.ts","../../ts/accessibility/accessibilitycomponent.ts","../../ts/accessibility/components/containercomponent.ts","../../ts/accessibility/options/a11yoptions.d.ts","../../ts/accessibility/focusborder.ts","../../ts/extensions/annotations/controllables/controllablelike.d.ts","../../ts/extensions/annotations/controllables/controllabletype.d.ts","../../ts/extensions/annotations/eventemitter.ts","../../ts/extensions/annotations/controlpoint.ts","../../ts/extensions/annotations/controlpointoptions.d.ts","../../ts/extensions/annotations/mockpointoptions.d.ts","../../ts/extensions/annotations/controltargetoptions.d.ts","../../ts/extensions/annotations/controllables/controllableoptions.d.ts","../../ts/extensions/annotations/controllables/controllable.ts","../../ts/extensions/annotations/controltarget.ts","../../ts/extensions/annotations/mockpoint.ts","../../ts/extensions/annotations/annotationseries.d.ts","../../ts/extensions/annotations/types/annotationtype.d.ts","../../ts/extensions/annotations/navigationbindingslike.d.ts","../../ts/extensions/annotations/navigationbindingsoptions.d.ts","../../ts/core/chart/chartnavigationcomposition.ts","../../ts/extensions/exporting/exportingdefaults.ts","../../ts/extensions/exporting/exportingsymbols.ts","../../ts/extensions/exporting/fullscreen.ts","../../ts/core/json.d.ts","../../ts/core/httputilities.ts","../../ts/extensions/regexlimits.ts","../../ts/extensions/exporting/exporting.ts","../../ts/extensions/exporting/exportingoptions.d.ts","../../ts/extensions/exporting/navigationoptions.d.ts","../../ts/shared/baseform.ts","../../ts/extensions/annotations/popup/popupannotations.ts","../../ts/stock/indicators/indicatorlike.d.ts","../../ts/stock/indicators/indicatorvaluesobject.d.ts","../../ts/stock/indicators/sma/smaoptions.d.ts","../../ts/stock/indicators/sma/smapoint.d.ts","../../ts/stock/indicators/sma/smaindicator.ts","../../ts/extensions/annotations/popup/popupindicators.ts","../../ts/extensions/annotations/popup/popuptabs.ts","../../ts/extensions/annotations/popup/popup.ts","../../ts/extensions/annotations/controllables/controllabledefaults.ts","../../ts/extensions/annotations/controllables/controllablepath.ts","../../ts/extensions/annotations/controllables/controllableellipse.ts","../../ts/extensions/annotations/navigationbindingsutilities.ts","../../ts/extensions/annotations/navigationbindingsdefaults.ts","../../ts/extensions/annotations/navigationbindings.ts","../../ts/extensions/annotations/annotationdefaults.ts","../../ts/extensions/annotations/controllables/controllablerect.ts","../../ts/extensions/annotations/controllables/controllablecircle.ts","../../ts/extensions/annotations/controllables/controllablelabel.ts","../../ts/extensions/annotations/controllables/controllableimage.ts","../../ts/extensions/annotations/popup/popupcomposition.ts","../../ts/extensions/annotations/annotation.ts","../../ts/extensions/annotations/annotationoptions.d.ts","../../ts/extensions/annotations/annotationchart.ts","../../ts/accessibility/utils/announcer.ts","../../ts/accessibility/components/annotationsa11y.ts","../../ts/accessibility/components/inforegionscomponent.ts","../../ts/accessibility/components/menucomponent.ts","../../ts/accessibility/keyboardnavigation.ts","../../ts/accessibility/components/legendcomponent.ts","../../ts/stock/navigator/navigatoroptions.d.ts","../../ts/stock/scrollbar/scrollbaroptions.d.ts","../../ts/core/axis/scrollbaraxis.ts","../../ts/stock/scrollbar/scrollbardefaults.ts","../../ts/stock/scrollbar/scrollbar.ts","../../ts/stock/navigator/chartnavigatorcomposition.ts","../../ts/stock/navigator/navigatordefaults.ts","../../ts/stock/navigator/navigatorsymbols.ts","../../ts/stock/utilities/stockutilities.ts","../../ts/stock/navigator/navigatorcomposition.ts","../../ts/stock/navigator/navigator.ts","../../ts/accessibility/components/navigatorcomponent.ts","../../ts/accessibility/components/seriescomponent/seriesdescriber.ts","../../ts/accessibility/components/seriescomponent/newdataannouncer.ts","../../ts/accessibility/components/rangeselectorcomponent.ts","../../ts/accessibility/components/seriescomponent/forcedmarkers.ts","../../ts/core/keyboardevent.d.ts","../../ts/accessibility/components/seriescomponent/serieskeyboardnavigation.ts","../../ts/accessibility/components/seriescomponent/seriescomponent.ts","../../ts/series/map/mapseriesoptions.d.ts","../../ts/series/map/mapseriesdefaults.ts","../../ts/maps/mapviewdefaults.ts","../../ts/series/mappoint/mappointpointoptions.d.ts","../../ts/maps/geojsoncomposition.ts","../../ts/core/geometry/geometryutilities.ts","../../ts/maps/maputilities.ts","../../ts/core/geometry/polygonclip.ts","../../ts/maps/projection.ts","../../ts/maps/mapview.ts","../../ts/series/map/mapseries.ts","../../ts/series/map/mappoint.ts","../../ts/maps/mapnavigationdefaults.ts","../../ts/maps/mapsymbols.ts","../../ts/maps/mapnavigation.ts","../../ts/maps/mappointer.ts","../../ts/core/chart/mapchart.ts","../../ts/accessibility/components/zoomcomponent.ts","../../ts/accessibility/highcontrastmode.ts","../../ts/accessibility/highcontrasttheme.ts","../../ts/accessibility/options/a11ydefaults.ts","../../ts/accessibility/options/langoptions.d.ts","../../ts/accessibility/options/langdefaults.ts","../../ts/accessibility/options/deprecatedoptions.ts","../../ts/accessibility/accessibility.ts","../../ts/core/mspointer.ts","../../ts/core/renderer/position3dobject.d.ts","../../ts/core/math3d.ts","../../ts/core/responsive.ts","../../ts/extensions/pane/paneoptions.d.ts","../../ts/extensions/pane/panecomposition.ts","../../ts/extensions/pane/panedefaults.ts","../../ts/extensions/pane/pane.ts","../../ts/core/axis/radialaxisoptions.d.ts","../../ts/core/axis/radialaxisdefaults.ts","../../ts/core/axis/radialaxis.ts","../../ts/core/axis/axis3doptions.d.ts","../../ts/core/axis/axis3ddefaults.ts","../../ts/core/axis/tick3dcomposition.ts","../../ts/core/axis/axis3dcomposition.ts","../../ts/core/axis/breakobject.d.ts","../../ts/core/axis/brokenaxis.ts","../../ts/core/axis/datetimeaxis.ts","../../ts/core/axis/gridaxis.ts","../../ts/core/axis/logarithmicaxis.ts","../../ts/core/axis/solidgaugeaxis.ts","../../ts/core/axis/waterfallaxis.ts","../../ts/core/axis/zaxis.ts","../../ts/core/axis/color/coloraxisoptions.d.ts","../../ts/gantt/connectorsoptions.d.ts","../../ts/series/gantt/ganttseriesdefaults.ts","../../ts/gantt/pathfinderalgorithms.ts","../../ts/gantt/connection.ts","../../ts/gantt/connectorsdefaults.ts","../../ts/gantt/pathfindercomposition.ts","../../ts/gantt/pathfinder.ts","../../ts/extensions/staticscale.ts","../../ts/series/gantt/ganttseries.ts","../../ts/series/xrange/xrangepointoptions.d.ts","../../ts/series/xrange/xrangepoint.ts","../../ts/series/xrange/xrangeseriesdefaults.ts","../../ts/series/xrange/xrangeseries.ts","../../ts/series/xrange/xrangeseriesoptions.d.ts","../../ts/series/gantt/ganttseriesoptions.d.ts","../../ts/series/gantt/ganttpointoptions.d.ts","../../ts/series/gantt/ganttpoint.ts","../../ts/core/axis/treegrid/treegridoptions.d.ts","../../ts/gantt/tree.ts","../../ts/core/axis/treegrid/treegridtick.ts","../../ts/core/axis/treegrid/treegridaxis.ts","../../ts/core/renderer/svg/svgarc3d.d.ts","../../ts/core/renderer/svg/svgattributes3d.d.ts","../../ts/core/renderer/svg/svgpath3d.d.ts","../../ts/core/renderer/svg/svgcuboid.d.ts","../../ts/core/renderer/svg/svgrenderer3d.ts","../../ts/core/renderer/svg/svgelement3d.ts","../../ts/core/chart/chart3d.ts","../../ts/core/chart/ganttchart.ts","../../ts/core/chart/stockchart.ts","../../ts/core/geometry/circleobject.d.ts","../../ts/core/geometry/geometryobject.d.ts","../../ts/core/geometry/intersectionobject.d.ts","../../ts/core/geometry/circleutilities.ts","../../ts/core/renderer/polygonboxobject.d.ts","../../ts/core/renderer/renderertype.d.ts","../../ts/core/series/dataseriescomposition.ts","../../ts/core/series/dataseriesconverter.ts","../../ts/core/series/series3d.ts","../../ts/data/datacursor.ts","../../ts/data/connectors/dataconnectortype.d.ts","../../ts/data/connectors/dataconnectoroptions.d.ts","../../ts/data/connectors/csvconnectoroptions.d.ts","../../ts/data/connectors/googlesheetsconnectoroptions.d.ts","../../ts/data/connectors/htmltableconnectoroptions.d.ts","../../ts/data/datapooloptions.ts","../../ts/data/converters/jsonconverter.ts","../../ts/data/connectors/jsonconnectoroptions.d.ts","../../ts/data/converters/dataconverter.ts","../../ts/data/connectors/dataconnector.ts","../../ts/data/datapooldefaults.ts","../../ts/data/datapool.ts","../../ts/shared/types.ts","../../ts/data/converters/csvconverter.ts","../../ts/data/connectors/csvconnector.ts","../../ts/data/converters/googlesheetsconverter.ts","../../ts/data/connectors/googlesheetsconnector.ts","../../ts/data/converters/htmltableconverter.ts","../../ts/data/connectors/htmltableconnector.ts","../../ts/data/connectors/jsonconnector.ts","../../ts/data/formula/formulatypes.ts","../../ts/data/formula/formulaparser.ts","../../ts/data/formula/formulaprocessor.ts","../../ts/data/formula/functions/abs.ts","../../ts/data/formula/functions/and.ts","../../ts/data/formula/functions/average.ts","../../ts/data/formula/functions/averagea.ts","../../ts/data/formula/functions/count.ts","../../ts/data/formula/functions/counta.ts","../../ts/data/formula/functions/if.ts","../../ts/data/formula/functions/isna.ts","../../ts/data/formula/functions/max.ts","../../ts/data/formula/functions/median.ts","../../ts/data/formula/functions/min.ts","../../ts/data/formula/functions/mod.ts","../../ts/data/formula/functions/mode.ts","../../ts/data/formula/functions/not.ts","../../ts/data/formula/functions/or.ts","../../ts/data/formula/functions/product.ts","../../ts/data/formula/functions/sum.ts","../../ts/data/formula/functions/xor.ts","../../ts/data/formula/formula.ts","../../ts/data/modifiers/chainmodifieroptions.ts","../../ts/data/modifiers/chainmodifier.ts","../../ts/data/modifiers/invertmodifieroptions.ts","../../ts/data/modifiers/invertmodifier.ts","../../ts/data/modifiers/mathmodifieroptions.ts","../../ts/data/modifiers/mathmodifier.ts","../../ts/data/modifiers/rangemodifieroptions.ts","../../ts/data/modifiers/rangemodifier.ts","../../ts/data/modifiers/sortmodifieroptions.ts","../../ts/data/modifiers/sortmodifier.ts","../../ts/extensions/arrowsymbols.ts","../../ts/series/area/areapointoptions.d.ts","../../ts/series/area/areapoint.d.ts","../../ts/series/area/areaseriesoptions.d.ts","../../ts/series/area/areaseriesdefaults.ts","../../ts/series/area/areaseries.ts","../../ts/extensions/boost/boostoptions.d.ts","../../ts/extensions/boost/wgldrawmode.ts","../../ts/extensions/boost/wgloptions.d.ts","../../ts/extensions/boost/wglshader.ts","../../ts/extensions/boost/wglvertexbuffer.ts","../../ts/extensions/boost/wglrenderer.ts","../../ts/extensions/boost/boosttargetobject.d.ts","../../ts/series/heatmap/heatmappointoptions.d.ts","../../ts/series/heatmap/heatmapseriesoptions.d.ts","../../ts/series/heatmap/heatmappoint.ts","../../ts/series/heatmap/heatmapseriesdefaults.ts","../../ts/series/geoheatmap/geoheatmapseriesoptions.ts","../../ts/series/geoheatmap/geoheatmappointoptions.ts","../../ts/series/geoheatmap/geoheatmappoint.ts","../../ts/series/geoheatmap/geoheatmapseries.ts","../../ts/series/interpolationutilities.ts","../../ts/series/heatmap/heatmapseries.ts","../../ts/extensions/boost/boostables.ts","../../ts/extensions/boost/boostablemap.ts","../../ts/extensions/boost/boostseries.ts","../../ts/extensions/boost/boostchart.ts","../../ts/extensions/boostcanvas.ts","../../ts/extensions/currentdateindication.ts","../../ts/extensions/data.ts","../../ts/extensions/downloadurl.ts","../../ts/extensions/overlappingdatalabels.ts","../../ts/extensions/patternfill.ts","../../ts/extensions/priceindication.ts","../../ts/extensions/scrollableplotarea.ts","../../ts/extensions/annotations/types/basicannotation.ts","../../ts/extensions/annotations/types/crookedline.ts","../../ts/extensions/annotations/types/elliottwave.ts","../../ts/extensions/annotations/types/tunnel.ts","../../ts/extensions/annotations/types/fibonacci.ts","../../ts/extensions/annotations/types/infinityline.ts","../../ts/extensions/annotations/types/fibonaccitimezones.ts","../../ts/extensions/annotations/types/measure.ts","../../ts/extensions/annotations/types/pitchfork.ts","../../ts/extensions/annotations/types/timecycles.ts","../../ts/extensions/annotations/types/verticalline.ts","../../ts/extensions/boost/namedcolors.ts","../../ts/extensions/boost/boost.ts","../../ts/extensions/datagrouping/approximationregistry.ts","../../ts/extensions/datagrouping/approximationdefaults.ts","../../ts/extensions/datagrouping/datagroupingdefaults.ts","../../ts/extensions/datagrouping/datagroupingaxiscomposition.ts","../../ts/extensions/datagrouping/datagroupingseriescomposition.ts","../../ts/extensions/datagrouping/datagrouping.ts","../../ts/extensions/debugger/errormessages.ts","../../ts/extensions/debugger/debugger.ts","../../ts/extensions/dragpanes/axisresizeroptions.d.ts","../../ts/extensions/dragpanes/axisresizerdefaults.ts","../../ts/extensions/dragpanes/axisresizer.ts","../../ts/extensions/dragpanes/dragpanes.ts","../../ts/extensions/draggablepoints/dragdroputilities.ts","../../ts/extensions/draggablepoints/draggablechart.ts","../../ts/series/arearange/arearangepointoptions.d.ts","../../ts/series/arearange/arearangedatalabeloptions.d.ts","../../ts/series/arearange/arearangeseriesoptions.d.ts","../../ts/series/arearange/arearangeseries.ts","../../ts/series/arearange/arearangepoint.ts","../../ts/series/boxplot/boxplotpointoptions.d.ts","../../ts/series/boxplot/boxplotseriesoptions.d.ts","../../ts/series/boxplot/boxplotseriesdefaults.ts","../../ts/series/boxplot/boxplotseries.ts","../../ts/series/boxplot/boxplotpoint.d.ts","../../ts/series/bullet/bulletseriesoptions.d.ts","../../ts/series/bullet/bulletpointoptions.d.ts","../../ts/series/bullet/bulletseriesdefaults.ts","../../ts/series/bullet/bulletseries.ts","../../ts/series/bullet/bulletpoint.ts","../../ts/series/columnrange/columnrangepointoptions.d.ts","../../ts/series/columnrange/columnrangeseriesoptions.d.ts","../../ts/series/columnrange/columnrangeseries.ts","../../ts/series/columnrange/columnrangepoint.ts","../../ts/series/errorbar/errorbarpointoptions.d.ts","../../ts/series/errorbar/errorbarseriesoptions.d.ts","../../ts/series/errorbar/errorbarseriesdefaults.ts","../../ts/series/errorbar/errorbarseries.ts","../../ts/series/errorbar/errorbarpoint.d.ts","../../ts/series/hlc/hlcpointoptions.d.ts","../../ts/series/ohlc/ohlcpointoptions.d.ts","../../ts/series/hlc/hlcpoint.ts","../../ts/series/hlc/hlcseriesdefaults.ts","../../ts/series/hlc/hlcseries.ts","../../ts/series/hlc/hlcseriesoptions.d.ts","../../ts/series/ohlc/ohlcseriesoptions.d.ts","../../ts/series/ohlc/ohlcseriesdefaults.ts","../../ts/series/ohlc/ohlcseries.ts","../../ts/series/ohlc/ohlcpoint.ts","../../ts/series/waterfall/waterfallpointoptions.d.ts","../../ts/series/waterfall/waterfallseriesoptions.d.ts","../../ts/series/waterfall/waterfallseriesdefaults.ts","../../ts/series/waterfall/waterfallseries.ts","../../ts/series/waterfall/waterfallpoint.ts","../../ts/extensions/draggablepoints/dragdropprops.ts","../../ts/extensions/draggablepoints/draggablepoints.ts","../../ts/extensions/draggablepoints/dragdropoptions.d.ts","../../ts/extensions/draggablepoints/dragdropdefaults.ts","../../ts/extensions/drilldown/drilldownoptions.d.ts","../../ts/extensions/drilldown/drilldowndefaults.ts","../../ts/extensions/drilldown/drilldownseries.ts","../../ts/extensions/drilldown/drilldown.ts","../../ts/extensions/exportdata/exportdataoptions.d.ts","../../ts/extensions/exportdata/exportdatadefaults.ts","../../ts/extensions/exportdata/exportdata.ts","../../ts/extensions/markerclusters/markerclusterdebugging.ts","../../ts/extensions/markerclusters/markerclusteroptions.d.ts","../../ts/extensions/markerclusters/markerclusterdefaults.ts","../../ts/series/mappoint/mappointseriesoptions.d.ts","../../ts/series/mappoint/mappointpoint.ts","../../ts/series/mappoint/mappointseriesdefaults.ts","../../ts/series/mappoint/mappointseries.ts","../../ts/extensions/markerclusters/markerclusters.ts","../../ts/extensions/markerclusters/markerclusterscatter.ts","../../ts/extensions/markerclusters/markerclustersymbols.ts","../../ts/extensions/mousewheelzoom/mousewheelzoomoptions.d.ts","../../ts/extensions/mousewheelzoom/mousewheelzoom.ts","../../ts/extensions/nodatatodisplay/nodataoptions.d.ts","../../ts/extensions/nodatatodisplay/nodatadefaults.ts","../../ts/extensions/nodatatodisplay/nodatatodisplay.ts","../../ts/extensions/offlineexporting/offlineexportingdefaults.ts","../../ts/extensions/offlineexporting/offlineexporting.ts","../../ts/extensions/offlineexporting/offlineexportingvendor.d.ts","../../ts/extensions/parallelcoordinates/parallelcoordinatesoptions.d.ts","../../ts/extensions/parallelcoordinates/parallelcoordinatesdefaults.ts","../../ts/extensions/parallelcoordinates/parallelseries.ts","../../ts/extensions/parallelcoordinates/parallelcoordinates.ts","../../ts/extensions/parallelcoordinates/parallelaxis.ts","../../ts/extensions/serieslabel/serieslabeloptions.d.ts","../../ts/extensions/serieslabel/serieslabeldefaults.ts","../../ts/extensions/serieslabel/serieslabelutilities.ts","../../ts/extensions/serieslabel/serieslabel.ts","../../ts/extensions/sonification/synthpatch.ts","../../ts/extensions/sonification/instrumentpresets.ts","../../ts/extensions/sonification/sonificationspeaker.ts","../../ts/extensions/sonification/sonificationinstrument.ts","../../ts/extensions/sonification/timelinechannel.ts","../../ts/extensions/sonification/midi.ts","../../ts/extensions/sonification/sonificationtimeline.ts","../../ts/extensions/sonification/options.ts","../../ts/extensions/sonification/scales.ts","../../ts/extensions/sonification/timelinefromchart.ts","../../ts/extensions/sonification/sonification.ts","../../ts/extensions/themes/avocado.ts","../../ts/extensions/themes/branddark.ts","../../ts/extensions/themes/brandlight.ts","../../ts/extensions/themes/darkblue.ts","../../ts/extensions/themes/darkgreen.ts","../../ts/extensions/themes/darkunica.ts","../../ts/extensions/themes/gray.ts","../../ts/extensions/themes/grid.ts","../../ts/extensions/themes/gridlight.ts","../../ts/extensions/themes/highcontrastdark.ts","../../ts/extensions/themes/highcontrastlight.ts","../../ts/extensions/themes/sandsignika.ts","../../ts/extensions/themes/skies.ts","../../ts/extensions/themes/sunset.ts","../../ts/gantt/legacy.ts","../../ts/maps/providerdefinition.d.ts","../../ts/maps/tilesproviders/esri.ts","../../ts/maps/tilesproviders/limalabs.ts","../../ts/maps/tilesproviders/openstreetmap.ts","../../ts/maps/tilesproviders/stamen.ts","../../ts/maps/tilesproviders/thunderforest.ts","../../ts/maps/tilesproviders/usgs.ts","../../ts/maps/tilesproviders/tilesproviderregistry.ts","../../ts/series/datamodifycomposition.ts","../../ts/series/derivedcomposition.ts","../../ts/series/graphlayoutcomposition.ts","../../ts/series/networkgraph/networkgraphchart.d.ts","../../ts/series/networkgraph/networkgraphseriesdefaults.ts","../../ts/series/packedbubble/packedbubbledatalabeloptions.d.ts","../../ts/series/packedbubble/packedbubblepointoptions.d.ts","../../ts/series/packedbubble/packedbubblepoint.ts","../../ts/series/packedbubble/packedbubblechart.d.ts","../../ts/series/networkgraph/verletintegration.ts","../../ts/series/packedbubble/packedbubbleintegration.ts","../../ts/series/packedbubble/packedbubblelayout.ts","../../ts/series/packedbubble/packedbubbleseriesoptions.d.ts","../../ts/series/packedbubble/packedbubbleseriesdefaults.ts","../../ts/series/packedbubble/packedbubbleseries.ts","../../ts/series/simulationseriesutilities.ts","../../ts/series/networkgraph/networkgraphseries.ts","../../ts/series/networkgraph/networkgraphseriesoptions.d.ts","../../ts/series/networkgraph/networkgraphpointoptions.d.ts","../../ts/series/networkgraph/networkgraphpoint.ts","../../ts/series/networkgraph/eulerintegration.ts","../../ts/series/networkgraph/quadtreenode.ts","../../ts/series/networkgraph/quadtree.ts","../../ts/series/networkgraph/reingoldfruchtermanlayout.ts","../../ts/series/dragnodescomposition.ts","../../ts/series/areasplinerange/areasplinerangepointoptions.d.ts","../../ts/series/areasplinerange/areasplinerangepoint.d.ts","../../ts/series/areaspline/areasplineseriesoptions.d.ts","../../ts/series/areaspline/areasplinepointoptions.d.ts","../../ts/series/areaspline/areasplinepoint.d.ts","../../ts/series/areaspline/areasplineseries.ts","../../ts/series/areasplinerange/areasplinerangeseriesoptions.d.ts","../../ts/series/areasplinerange/areasplinerangeseries.ts","../../ts/series/polarcomposition.ts","../../ts/series/seriesonpointcomposition.ts","../../ts/series/arcdiagram/arcdiagrampointoptions.d.ts","../../ts/series/arcdiagram/arcdiagramseriesoptions.d.ts","../../ts/series/arcdiagram/arcdiagramseriesdefaults.ts","../../ts/series/arcdiagram/arcdiagramseries.ts","../../ts/series/arcdiagram/arcdiagrampoint.ts","../../ts/series/area3d/area3dseries.ts","../../ts/series/arearange/arearangeseriesdefaults.ts","../../ts/series/bar/barpointoptions.d.ts","../../ts/series/bar/barseriesoptions.d.ts","../../ts/series/bar/barseries.ts","../../ts/series/bar/barpoint.d.ts","../../ts/series/bellcurve/bellcurvepointoptions.d.ts","../../ts/series/bellcurve/bellcurveseriesoptions.d.ts","../../ts/series/bellcurve/bellcurveseriesdefaults.ts","../../ts/series/bellcurve/bellcurveseries.ts","../../ts/series/bellcurve/bellcurvepoint.d.ts","../../ts/series/candlestick/candlestickpointoptions.d.ts","../../ts/series/candlestick/candlestickseriesoptions.d.ts","../../ts/series/candlestick/candlestickseriesdefaults.ts","../../ts/series/candlestick/candlestickseries.ts","../../ts/series/candlestick/candlestickpoint.d.ts","../../ts/series/column/columndatalabel.ts","../../ts/series/column3d/column3dcomposition.ts","../../ts/series/columnpyramid/columnpyramidpointoptions.d.ts","../../ts/series/columnpyramid/columnpyramidseriesoptions.d.ts","../../ts/series/columnpyramid/columnpyramidseriesdefaults.ts","../../ts/series/columnpyramid/columnpyramidseries.ts","../../ts/series/columnpyramid/columnpyramidpoint.d.ts","../../ts/series/cylinder/svgelement3dcylinder.ts","../../ts/series/cylinder/cylindercomposition.ts","../../ts/series/cylinder/cylinderpointoptions.d.ts","../../ts/series/cylinder/cylinderseriesoptions.d.ts","../../ts/series/cylinder/cylinderseriesdefaults.ts","../../ts/series/cylinder/cylinderseries.ts","../../ts/series/cylinder/cylinderpoint.ts","../../ts/series/dependencywheel/dependencywheelpointoptions.d.ts","../../ts/series/dependencywheel/dependencywheelseriesoptions.d.ts","../../ts/series/dependencywheel/dependencywheelseriesdefaults.ts","../../ts/series/dependencywheel/dependencywheelseries.ts","../../ts/series/dependencywheel/dependencywheelpoint.ts","../../ts/series/dotplot/dotplotpointoptions.d.ts","../../ts/series/dotplot/dotplotseriesoptions.d.ts","../../ts/series/dotplot/dotplotseriesdefaults.ts","../../ts/series/dotplot/dotplotseries.ts","../../ts/series/dotplot/dotplotpoint.d.ts","../../ts/series/dumbbell/dumbbellpointoptions.d.ts","../../ts/series/dumbbell/dumbbellseriesoptions.d.ts","../../ts/series/lollipop/lollipoppointoptions.d.ts","../../ts/series/lollipop/lollipopseriesoptions.d.ts","../../ts/series/lollipop/lollipopseries.ts","../../ts/series/lollipop/lollipoppoint.ts","../../ts/series/dumbbell/dumbbellseriesdefaults.ts","../../ts/series/dumbbell/dumbbellseries.ts","../../ts/series/dumbbell/dumbbellpoint.ts","../../ts/series/mapline/maplinepointoptions.d.ts","../../ts/series/flowmap/flowmappointoptions.d.ts","../../ts/series/mapline/maplinepoint.d.ts","../../ts/series/mapline/maplineseriesdefaults.ts","../../ts/series/mapline/maplineseries.ts","../../ts/series/mapline/maplineseriesoptions.d.ts","../../ts/series/flowmap/flowmapseriesoptions.d.ts","../../ts/series/flowmap/flowmapseries.ts","../../ts/series/flowmap/flowmappoint.ts","../../ts/series/funnel/funneldatalabeloptions.d.ts","../../ts/series/funnel/funnelpointoptions.d.ts","../../ts/series/funnel/funnelseriesoptions.d.ts","../../ts/series/funnel/funnelseriesdefaults.ts","../../ts/series/funnel/funnelseries.ts","../../ts/series/funnel/funnelpoint.d.ts","../../ts/series/funnel3d/svgelement3dfunnel.ts","../../ts/series/funnel3d/funnel3dcomposition.ts","../../ts/series/funnel3d/funnel3dpointoptions.d.ts","../../ts/series/funnel3d/funnel3dseriesoptions.d.ts","../../ts/series/funnel3d/funnel3dseriesdefaults.ts","../../ts/series/funnel3d/funnel3dseries.ts","../../ts/series/funnel3d/funnel3dpoint.ts","../../ts/series/gauge/gaugepointoptions.d.ts","../../ts/series/gauge/gaugeseriesoptions.d.ts","../../ts/series/gauge/gaugeseries.ts","../../ts/series/gauge/gaugepoint.ts","../../ts/series/heikinashi/heikinashipointoptions.d.ts","../../ts/series/heikinashi/heikinashiseriesoptions.d.ts","../../ts/series/heikinashi/heikinashiseriesdefaults.ts","../../ts/series/heikinashi/heikinashiseries.ts","../../ts/series/heikinashi/heikinashipoint.ts","../../ts/series/histogram/histogrampointoptions.d.ts","../../ts/series/histogram/histogramseriesoptions.d.ts","../../ts/series/histogram/histogramseriesdefaults.ts","../../ts/series/histogram/histogramseries.ts","../../ts/series/histogram/histogrampoint.d.ts","../../ts/series/hollowcandlestick/hollowcandlestickseriesoptions.d.ts","../../ts/series/hollowcandlestick/hollowcandlestickseries.ts","../../ts/series/hollowcandlestick/hollowcandlestickpoint.ts","../../ts/series/hollowcandlestick/hollowcandlestickpointoptions.d.ts","../../ts/series/item/itempointoptions.d.ts","../../ts/series/item/itemseriesoptions.d.ts","../../ts/series/item/itemseriesdefaults.ts","../../ts/series/item/itemseries.ts","../../ts/series/item/itempoint.ts","../../ts/series/mapbubble/mapbubblepoint.ts","../../ts/series/mapbubble/mapbubblepointoptions.d.ts","../../ts/series/mapbubble/mapbubbleseriesoptions.d.ts","../../ts/series/mapbubble/mapbubbleseries.ts","../../ts/series/paretoseries/paretopointoptions.d.ts","../../ts/series/paretoseries/paretoseriesoptions.d.ts","../../ts/series/paretoseries/paretoseriesdefaults.ts","../../ts/series/paretoseries/paretoseries.ts","../../ts/series/paretoseries/paretopoint.d.ts","../../ts/series/pictorial/pictorialpointoptions.d.ts","../../ts/series/pictorial/pictorialseriesoptions.d.ts","../../ts/series/pictorial/pictorialutilities.ts","../../ts/series/pictorial/pictorialseries.ts","../../ts/series/pictorial/pictorialpoint.ts","../../ts/series/pie/piedatalabel.ts","../../ts/series/pie3d/pie3dseries.ts","../../ts/series/pie3d/pie3dpoint.ts","../../ts/series/pointandfigure/pointandfigureseriesoptions.d.ts","../../ts/series/pointandfigure/pointandfigureseriesdefaults.ts","../../ts/series/pointandfigure/pointandfiguresymbols.ts","../../ts/series/pointandfigure/pointandfigureseries.ts","../../ts/series/pointandfigure/pointandfigurepoint.ts","../../ts/series/pointandfigure/pointandfigurepointoptions.d.ts","../../ts/series/polygon/polygonpointoptions.d.ts","../../ts/series/polygon/polygonseriesoptions.d.ts","../../ts/series/polygon/polygonseriesdefaults.ts","../../ts/series/polygon/polygonseries.ts","../../ts/series/polygon/polygonpoint.d.ts","../../ts/series/pyramid/pyramidpointoptions.d.ts","../../ts/series/pyramid/pyramidseriesoptions.d.ts","../../ts/series/pyramid/pyramidseriesdefaults.ts","../../ts/series/pyramid/pyramidseries.ts","../../ts/series/pyramid/pyramidpoint.d.ts","../../ts/series/pyramid3d/pyramid3dpointoptions.d.ts","../../ts/series/pyramid3d/pyramid3dseriesoptions.d.ts","../../ts/series/pyramid3d/pyramid3dseriesdefaults.ts","../../ts/series/pyramid3d/pyramid3dseries.ts","../../ts/series/pyramid3d/pyramid3dpoint.d.ts","../../ts/series/renko/renkopointoptions.d.ts","../../ts/series/renko/renkoseriesoptions.d.ts","../../ts/series/renko/renkoseriesdefaults.ts","../../ts/series/renko/renkoseries.ts","../../ts/series/renko/renkopoint.ts","../../ts/series/scatter3d/scatter3dpointoptions.d.ts","../../ts/series/scatter3d/scatter3dseriesoptions.d.ts","../../ts/series/scatter3d/scatter3dseriesdefaults.ts","../../ts/series/scatter3d/scatter3dseries.ts","../../ts/series/scatter3d/scatter3dpoint.ts","../../ts/series/solidgauge/solidgaugepointoptions.d.ts","../../ts/series/solidgauge/solidgaugeseriesoptions.d.ts","../../ts/series/solidgauge/solidgaugeseriesdefaults.ts","../../ts/series/solidgauge/solidgaugeseries.ts","../../ts/series/solidgauge/solidgaugepoint.d.ts","../../ts/series/streamgraph/streamgraphpointoptions.d.ts","../../ts/series/streamgraph/streamgraphseriesoptions.d.ts","../../ts/series/streamgraph/streamgraphseriesdefaults.ts","../../ts/series/streamgraph/streamgraphseries.ts","../../ts/series/streamgraph/streamgraphpoint.d.ts","../../ts/series/sunburst/sunburstpointoptions.d.ts","../../ts/series/sunburst/sunburstpoint.ts","../../ts/series/sunburst/sunburstutilities.ts","../../ts/series/sunburst/sunburstseriesdefaults.ts","../../ts/series/sunburst/sunburstseries.ts","../../ts/series/sunburst/sunburstseriesoptions.d.ts","../../ts/series/sunburst/sunburstnode.ts","../../ts/series/tiledwebmap/tiledwebmapseriesoptions.d.ts","../../ts/series/tiledwebmap/tiledwebmapseriesdefaults.ts","../../ts/series/tiledwebmap/tiledwebmapseries.ts","../../ts/series/tilemap/tilemappointoptions.d.ts","../../ts/series/tilemap/tilemapseriesoptions.d.ts","../../ts/series/tilemap/tilemapseriesdefaults.ts","../../ts/series/tilemap/tilemapshapes.ts","../../ts/series/tilemap/tilemapseries.ts","../../ts/series/tilemap/tilemappoint.ts","../../ts/series/timeline/timelinepointoptions.d.ts","../../ts/series/timeline/timelineseriesoptions.d.ts","../../ts/series/timeline/timelineseriesdefaults.ts","../../ts/series/timeline/timelineseries.ts","../../ts/series/timeline/timelinepoint.ts","../../ts/series/timeline/timelinedatalabeloptions.d.ts","../../ts/series/variablepie/variablepiepointoptions.d.ts","../../ts/series/variablepie/variablepieseriesoptions.d.ts","../../ts/series/variablepie/variablepieseriesdefaults.ts","../../ts/series/variablepie/variablepieseries.ts","../../ts/series/variablepie/variablepiepoint.d.ts","../../ts/series/variwide/variwidepointoptions.d.ts","../../ts/series/variwide/variwideseriesoptions.d.ts","../../ts/series/variwide/variwideseriesdefaults.ts","../../ts/series/variwide/variwideseries.ts","../../ts/series/variwide/variwidepoint.ts","../../ts/series/variwide/variwidecomposition.ts","../../ts/series/vector/vectorpointoptions.d.ts","../../ts/series/vector/vectorseriesoptions.d.ts","../../ts/series/vector/vectorseriesdefaults.ts","../../ts/series/vector/vectorseries.ts","../../ts/series/vector/vectorpoint.d.ts","../../ts/series/venn/vennpointoptions.d.ts","../../ts/series/venn/vennutils.ts","../../ts/series/venn/vennseriesoptions.d.ts","../../ts/series/venn/vennseriesdefaults.ts","../../ts/series/venn/vennseries.ts","../../ts/series/venn/vennpoint.ts","../../ts/series/windbarb/windbarbpointoptions.d.ts","../../ts/series/windbarb/windbarbseriesoptions.d.ts","../../ts/series/windbarb/windbarbseriesdefaults.ts","../../ts/series/windbarb/windbarbseries.ts","../../ts/series/windbarb/windbarbpoint.ts","../../ts/series/wordcloud/wordcloudpointoptions.d.ts","../../ts/series/wordcloud/wordcloudseriesoptions.d.ts","../../ts/series/wordcloud/wordcloudseriesdefaults.ts","../../ts/series/wordcloud/wordcloudseries.ts","../../ts/series/wordcloud/wordcloudutils.ts","../../ts/series/wordcloud/wordcloudpoint.ts","../../ts/stock/indicators/arrayutilities.ts","../../ts/stock/indicators/multiplelinescomposition.ts","../../ts/stock/indicators/abands/abandsoptions.d.ts","../../ts/stock/indicators/abands/abandspoint.d.ts","../../ts/stock/indicators/abands/abandsindicator.ts","../../ts/stock/indicators/ad/adoptions.d.ts","../../ts/stock/indicators/ad/adpoint.d.ts","../../ts/stock/indicators/ad/adindicator.ts","../../ts/stock/indicators/ao/aooptions.d.ts","../../ts/stock/indicators/ao/aopoint.d.ts","../../ts/stock/indicators/ao/aoindicator.ts","../../ts/stock/indicators/ema/emaoptions.d.ts","../../ts/stock/indicators/apo/apooptions.d.ts","../../ts/stock/indicators/ema/emaindicator.ts","../../ts/stock/indicators/ema/emapoint.d.ts","../../ts/stock/indicators/apo/apopoint.d.ts","../../ts/stock/indicators/apo/apoindicator.ts","../../ts/stock/indicators/atr/atroptions.d.ts","../../ts/stock/indicators/atr/atrpoint.d.ts","../../ts/stock/indicators/atr/atrindicator.ts","../../ts/stock/indicators/aroon/aroonoptions.d.ts","../../ts/stock/indicators/aroon/aroonpoint.d.ts","../../ts/stock/indicators/aroon/aroonindicator.ts","../../ts/stock/indicators/aroonoscillator/aroonoscillatoroptions.d.ts","../../ts/stock/indicators/aroonoscillator/aroonoscillatorpoint.d.ts","../../ts/stock/indicators/aroonoscillator/aroonoscillatorindicator.ts","../../ts/stock/indicators/bb/bboptions.d.ts","../../ts/stock/indicators/bb/bbpoint.d.ts","../../ts/stock/indicators/bb/bbindicator.ts","../../ts/stock/indicators/cci/ccioptions.d.ts","../../ts/stock/indicators/cci/ccipoint.d.ts","../../ts/stock/indicators/cci/cciindicator.ts","../../ts/stock/indicators/cmf/cmfoptions.d.ts","../../ts/stock/indicators/cmf/cmfpoint.d.ts","../../ts/stock/indicators/cmf/cmfindicator.ts","../../ts/stock/indicators/cmo/cmooptions.d.ts","../../ts/stock/indicators/cmo/cmopoint.d.ts","../../ts/stock/indicators/cmo/cmoindicator.ts","../../ts/stock/indicators/chaikin/chaikinoptions.d.ts","../../ts/stock/indicators/chaikin/chaikinpoint.d.ts","../../ts/stock/indicators/chaikin/chaikinindicator.ts","../../ts/stock/indicators/dema/demaoptions.d.ts","../../ts/stock/indicators/dema/demapoint.d.ts","../../ts/stock/indicators/dema/demaindicator.ts","../../ts/stock/indicators/dmi/dmioptions.d.ts","../../ts/stock/indicators/dmi/dmipoint.d.ts","../../ts/stock/indicators/dmi/dmiindicator.ts","../../ts/stock/indicators/dpo/dpooptions.d.ts","../../ts/stock/indicators/dpo/dpopoint.d.ts","../../ts/stock/indicators/dpo/dpoindicator.ts","../../ts/stock/indicators/disparityindex/disparityindexoptions.d.ts","../../ts/stock/indicators/disparityindex/disparityindexpoint.d.ts","../../ts/stock/indicators/disparityindex/disparityindexindicator.ts","../../ts/stock/indicators/ikh/ikhpoint.d.ts","../../ts/stock/indicators/ikh/ikhoptions.d.ts","../../ts/stock/indicators/ikh/ikhindicator.ts","../../ts/stock/indicators/keltnerchannels/keltnerchannelsoptions.d.ts","../../ts/stock/indicators/keltnerchannels/keltnerchannelspoint.d.ts","../../ts/stock/indicators/keltnerchannels/keltnerchannelsindicator.ts","../../ts/stock/indicators/klinger/klingeroptions.d.ts","../../ts/stock/indicators/klinger/klingerpoint.d.ts","../../ts/stock/indicators/klinger/klingerindicator.ts","../../ts/stock/indicators/linearregression/linearregressionoptions.d.ts","../../ts/stock/indicators/linearregression/linearregressionpoint.d.ts","../../ts/stock/indicators/linearregression/linearregressionindicator.ts","../../ts/stock/indicators/linearregressionangle/linearregressionanglepoint.d.ts","../../ts/stock/indicators/linearregressionangle/linearregressionangleindicator.ts","../../ts/stock/indicators/linearregressionangle/linearregressionangleoptions.d.ts","../../ts/stock/indicators/linearregressionintercept/linearregressioninterceptpoint.d.ts","../../ts/stock/indicators/linearregressionintercept/linearregressioninterceptindicator.ts","../../ts/stock/indicators/linearregressionintercept/linearregressioninterceptoptions.d.ts","../../ts/stock/indicators/linearregressionslopes/linearregressionslopespoint.d.ts","../../ts/stock/indicators/linearregressionslopes/linearregressionslopesindicator.ts","../../ts/stock/indicators/linearregressionslopes/linearregressionslopesoptions.d.ts","../../ts/stock/indicators/macd/macdoptions.d.ts","../../ts/stock/indicators/macd/macdpoint.d.ts","../../ts/stock/indicators/macd/macdindicator.ts","../../ts/stock/indicators/mfi/mfioptions.d.ts","../../ts/stock/indicators/mfi/mfipoint.d.ts","../../ts/stock/indicators/mfi/mfiindicator.ts","../../ts/stock/indicators/momentum/momentumoptions.d.ts","../../ts/stock/indicators/momentum/momentumpoint.d.ts","../../ts/stock/indicators/momentum/momentumindicator.ts","../../ts/stock/indicators/natr/natroptions.d.ts","../../ts/stock/indicators/natr/natrpoint.d.ts","../../ts/stock/indicators/natr/natrindicator.ts","../../ts/stock/indicators/obv/obvoptions.d.ts","../../ts/stock/indicators/obv/obvpoint.d.ts","../../ts/stock/indicators/obv/obvindicator.ts","../../ts/stock/indicators/pc/pcoptions.d.ts","../../ts/stock/indicators/pc/pcpoint.d.ts","../../ts/stock/indicators/pc/pcindicator.ts","../../ts/stock/indicators/ppo/ppooptions.d.ts","../../ts/stock/indicators/ppo/ppopoint.d.ts","../../ts/stock/indicators/ppo/ppoindicator.ts","../../ts/stock/indicators/psar/psaroptions.d.ts","../../ts/stock/indicators/psar/psarpoint.d.ts","../../ts/stock/indicators/psar/psarindicator.ts","../../ts/stock/indicators/pivotpoints/pivotpointsoptions.d.ts","../../ts/stock/indicators/pivotpoints/pivotpointspoint.ts","../../ts/stock/indicators/pivotpoints/pivotpointsindicator.ts","../../ts/stock/indicators/priceenvelopes/priceenvelopesoptions.d.ts","../../ts/stock/indicators/priceenvelopes/priceenvelopespoint.d.ts","../../ts/stock/indicators/priceenvelopes/priceenvelopesindicator.ts","../../ts/stock/indicators/roc/rocoptions.d.ts","../../ts/stock/indicators/roc/rocpoint.d.ts","../../ts/stock/indicators/roc/rocindicator.ts","../../ts/stock/indicators/rsi/rsioptions.d.ts","../../ts/stock/indicators/rsi/rsipoint.d.ts","../../ts/stock/indicators/rsi/rsiindicator.ts","../../ts/stock/indicators/stochastic/stochasticoptions.d.ts","../../ts/stock/indicators/slowstochastic/slowstochasticoptions.d.ts","../../ts/stock/indicators/stochastic/stochasticindicator.ts","../../ts/stock/indicators/stochastic/stochasticpoint.d.ts","../../ts/stock/indicators/slowstochastic/slowstochasticpoint.d.ts","../../ts/stock/indicators/slowstochastic/slowstochasticindicator.ts","../../ts/stock/indicators/supertrend/supertrendpoint.d.ts","../../ts/stock/indicators/supertrend/supertrendoptions.d.ts","../../ts/stock/indicators/supertrend/supertrendindicator.ts","../../ts/stock/indicators/tema/temaoptions.d.ts","../../ts/stock/indicators/tema/temapoint.d.ts","../../ts/stock/indicators/tema/temaindicator.ts","../../ts/stock/indicators/trix/trixoptions.d.ts","../../ts/stock/indicators/trix/trixpoint.d.ts","../../ts/stock/indicators/trix/trixindicator.ts","../../ts/stock/indicators/trendline/trendlineoptions.d.ts","../../ts/stock/indicators/trendline/trendlinepoint.d.ts","../../ts/stock/indicators/trendline/trendlineindicator.ts","../../ts/stock/indicators/vbp/vbpoptions.d.ts","../../ts/stock/indicators/vbp/vbppoint.ts","../../ts/stock/indicators/vbp/vbpindicator.ts","../../ts/stock/indicators/vwap/vwapoptions.d.ts","../../ts/stock/indicators/vwap/vwappoint.d.ts","../../ts/stock/indicators/vwap/vwapindicator.ts","../../ts/stock/indicators/wma/wmaoptions.d.ts","../../ts/stock/indicators/wma/wmapoint.d.ts","../../ts/stock/indicators/wma/wmaindicator.ts","../../ts/stock/indicators/williamsr/williamsroptions.d.ts","../../ts/stock/indicators/williamsr/williamsrpoint.d.ts","../../ts/stock/indicators/williamsr/williamsrindicator.ts","../../ts/stock/indicators/zigzag/zigzagoptions.d.ts","../../ts/stock/indicators/zigzag/zigzagpoint.d.ts","../../ts/stock/indicators/zigzag/zigzagindicator.ts","../../ts/stock/navigator/standalonenavigatordefaults.ts","../../ts/stock/navigator/standalonenavigator.ts","../../ts/stock/stocktools/stocktoolsoptions.d.ts","../../ts/stock/stocktools/stocktoolsbindings.ts","../../ts/stock/stocktools/stocktoolsdefaults.ts","../../ts/stock/stocktools/stocktools.ts","../../ts/stock/stocktools/stocktoolsutilities.ts","../../ts/stock/stocktools/stocktoolbar.ts","../../ts/stock/stocktools/stocktoolsgui.ts","../../ts/masters/highcharts-3d.src.ts","../../ts/masters/highcharts.src.ts","../../ts/masters/modules/pathfinder.src.ts","../../ts/masters/modules/static-scale.src.ts","../../ts/masters/modules/xrange.src.ts","../../ts/masters/modules/gantt.src.ts","../../ts/masters/highcharts-gantt.src.ts","../../ts/masters/highcharts-more.src.ts","../../ts/masters/modules/coloraxis.src.ts","../../ts/masters/modules/map.src.ts","../../ts/masters/highmaps.src.ts","../../ts/masters/modules/broken-axis.src.ts","../../ts/masters/modules/datagrouping.src.ts","../../ts/masters/modules/mouse-wheel-zoom.src.ts","../../ts/masters/modules/stock.src.ts","../../ts/masters/highstock.src.ts","../../ts/masters/modules/navigator.src.ts","../../ts/masters/standalone-navigator.src.ts","../../ts/masters/indicators/acceleration-bands.src.ts","../../ts/masters/indicators/accumulation-distribution.src.ts","../../ts/masters/indicators/ao.src.ts","../../ts/masters/indicators/apo.src.ts","../../ts/masters/indicators/aroon-oscillator.src.ts","../../ts/masters/indicators/aroon.src.ts","../../ts/masters/indicators/atr.src.ts","../../ts/masters/indicators/bollinger-bands.src.ts","../../ts/masters/indicators/cci.src.ts","../../ts/masters/indicators/chaikin.src.ts","../../ts/masters/indicators/cmf.src.ts","../../ts/masters/indicators/cmo.src.ts","../../ts/masters/indicators/dema.src.ts","../../ts/masters/indicators/disparity-index.src.ts","../../ts/masters/indicators/dmi.src.ts","../../ts/masters/indicators/dpo.src.ts","../../ts/masters/indicators/ema.src.ts","../../ts/masters/indicators/ichimoku-kinko-hyo.src.ts","../../ts/masters/indicators/indicators-all.src.ts","../../ts/masters/indicators/indicators.src.ts","../../ts/masters/indicators/keltner-channels.src.ts","../../ts/masters/indicators/klinger.src.ts","../../ts/masters/indicators/macd.src.ts","../../ts/masters/indicators/mfi.src.ts","../../ts/masters/indicators/momentum.src.ts","../../ts/masters/indicators/natr.src.ts","../../ts/masters/indicators/obv.src.ts","../../ts/masters/indicators/pivot-points.src.ts","../../ts/masters/indicators/ppo.src.ts","../../ts/masters/indicators/price-channel.src.ts","../../ts/masters/indicators/price-envelopes.src.ts","../../ts/masters/indicators/psar.src.ts","../../ts/masters/indicators/regressions.src.ts","../../ts/masters/indicators/roc.src.ts","../../ts/masters/indicators/rsi.src.ts","../../ts/masters/indicators/slow-stochastic.src.ts","../../ts/masters/indicators/stochastic.src.ts","../../ts/masters/indicators/supertrend.src.ts","../../ts/masters/indicators/tema.src.ts","../../ts/masters/indicators/trendline.src.ts","../../ts/masters/indicators/trix.src.ts","../../ts/masters/indicators/volume-by-price.src.ts","../../ts/masters/indicators/vwap.src.ts","../../ts/masters/indicators/williams-r.src.ts","../../ts/masters/indicators/wma.src.ts","../../ts/masters/indicators/zigzag.src.ts","../../ts/masters/modules/accessibility.src.ts","../../ts/masters/modules/annotations.src.ts","../../ts/masters/modules/annotations-advanced.src.ts","../../ts/masters/modules/arc-diagram.src.ts","../../ts/masters/modules/arrow-symbols.src.ts","../../ts/masters/modules/boost-canvas.src.ts","../../ts/masters/modules/boost.src.ts","../../ts/masters/modules/bullet.src.ts","../../ts/masters/modules/current-date-indicator.src.ts","../../ts/masters/modules/cylinder.src.ts","../../ts/masters/modules/data-tools.src.ts","../../ts/masters/modules/data.src.ts","../../ts/masters/modules/debugger.src.ts","../../ts/masters/modules/dependency-wheel.src.ts","../../ts/masters/modules/dotplot.src.ts","../../ts/masters/modules/drag-panes.src.ts","../../ts/masters/modules/draggable-points.src.ts","../../ts/masters/modules/drilldown.src.ts","../../ts/masters/modules/dumbbell.src.ts","../../ts/masters/modules/export-data.src.ts","../../ts/masters/modules/exporting.src.ts","../../ts/masters/modules/flowmap.src.ts","../../ts/masters/modules/full-screen.src.ts","../../ts/masters/modules/funnel.src.ts","../../ts/masters/modules/funnel3d.src.ts","../../ts/masters/modules/geoheatmap.src.ts","../../ts/masters/modules/grid-axis.src.ts","../../ts/masters/modules/heatmap.src.ts","../../ts/masters/modules/heikinashi.src.ts","../../ts/masters/modules/histogram-bellcurve.src.ts","../../ts/masters/modules/hollowcandlestick.src.ts","../../ts/masters/modules/item-series.src.ts","../../ts/masters/modules/lollipop.src.ts","../../ts/masters/modules/marker-clusters.src.ts","../../ts/masters/modules/networkgraph.src.ts","../../ts/masters/modules/no-data-to-display.src.ts","../../ts/masters/modules/offline-exporting.src.ts","../../ts/masters/modules/organization.src.ts","../../ts/masters/modules/overlapping-datalabels.src.ts","../../ts/masters/modules/parallel-coordinates.src.ts","../../ts/masters/modules/pareto.src.ts","../../ts/masters/modules/pattern-fill.src.ts","../../ts/masters/modules/pictorial.src.ts","../../ts/masters/modules/pointandfigure.src.ts","../../ts/masters/modules/price-indicator.src.ts","../../ts/masters/modules/pyramid3d.src.ts","../../ts/masters/modules/renko.src.ts","../../ts/masters/modules/sankey.src.ts","../../ts/masters/modules/series-label.src.ts","../../ts/masters/modules/series-on-point.src.ts","../../ts/masters/modules/solid-gauge.src.ts","../../ts/masters/modules/sonification.src.ts","../../ts/masters/modules/stock-tools.src.ts","../../ts/masters/modules/streamgraph.src.ts","../../ts/masters/modules/sunburst.src.ts","../../ts/masters/modules/textpath.src.ts","../../ts/masters/modules/tiledwebmap.src.ts","../../ts/masters/modules/tilemap.src.ts","../../ts/masters/modules/timeline.src.ts","../../ts/masters/modules/treegraph.src.ts","../../ts/masters/modules/treegrid.src.ts","../../ts/masters/modules/treemap.src.ts","../../ts/masters/modules/variable-pie.src.ts","../../ts/masters/modules/variwide.src.ts","../../ts/masters/modules/vector.src.ts","../../ts/masters/modules/venn.src.ts","../../ts/masters/modules/windbarb.src.ts","../../ts/masters/modules/wordcloud.src.ts","../../ts/masters/themes/avocado.src.ts","../../ts/masters/themes/brand-dark.src.ts","../../ts/masters/themes/brand-light.src.ts","../../ts/masters/themes/dark-blue.src.ts","../../ts/masters/themes/dark-green.src.ts","../../ts/masters/themes/dark-unica.src.ts","../../ts/masters/themes/gray.src.ts","../../ts/masters/themes/grid-light.src.ts","../../ts/masters/themes/grid.src.ts","../../ts/masters/themes/high-contrast-dark.src.ts","../../ts/masters/themes/high-contrast-light.src.ts","../../ts/masters/themes/sand-signika.src.ts","../../ts/masters/themes/skies.src.ts","../../ts/masters/themes/sunset.src.ts","../../node_modules/@types/jquery/jquerystatic.d.ts","../../node_modules/@types/jquery/jquery.d.ts","../../node_modules/@types/jquery/misc.d.ts","../../node_modules/@types/jquery/legacy.d.ts","../../node_modules/@types/sizzle/index.d.ts","../../node_modules/@types/jquery/index.d.ts","../../node_modules/@types/trusted-types/lib/index.d.ts","../../node_modules/@types/trusted-types/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"8c8eb6b9ec6e689817b1b4d11ef2a6207e14324299caf5a5bc58827cb068070a","1782ca9bc8d8d592e8ad1d2d48b8ad9af28ebc03770ddd2ae4124773d559bf36","2a0edb9382fc9f18ea74f0013bebf8c30ac34047baab1e0dd76f5ad117de255d","8379dfd4645c3b845290feba7f5a37ff42a8ed43a580dc3f3f51e4a61ebadfc3","047f0c9be9d0119d2456a269230a435dd52a4954ee78c95989d139366b4f4844","275744cbc46ec0f347298dd5f680a9709cef99cee3e737b491bb0a4a45db3485","b4a91203e9f24f34a6de22bea6670ff59bdb30dd9ce0dbe642023d2df4a13f33","c30102514db1804e1691596c9c3c8f65b9addfa396a6998287c05b2dd2d15419","7cad41ed3d2e5e583931494ead31cf5990460a5abaeca67583c46e9086afe753","7c5b8b2496c190736c70d4ec53b1b3345537a40fd1196674d3624fdee54809ff","e2db83cb0ebaf09d2220c96f381e9f583810b34c29b7a457532c4b55efb26908","07aebe2036f91a21d3c018606200c1d86f1c8fbd2e8d919eb9cdba8cb363cba1","07c66c443cc5ab3f76e8d21f063cfd191f5edc122ba85c1560a43983c2ee1f07","4226d2a50a341079b7c8015446a633917156d0232755ed25a8ee48006b00e293","d07c6257a338167d4382f4c9c668f74acc9dabc4fe0986ddbf31abfea5c0510a","3c2c4f7870bef21dbfb428f8c4ec2f72b290ff7ec3b647ffcf4f68481e69ff8e","aa6f43b3ba0c007606fbe22f93b585c33d016c1cebb24fca762fe688914e138d","8505c7c17103244a4d4e5040ce8005311d4d57d13ff76acaf49e58fe62d93da1","e06b6c2f8f9294f4bf3bbc44dc269253fa4a0eb78c6f62ac2edadf2ac66791a1",{"version":"e7e96f71acdba9583cecf008254bdb9df25d90d2159ea50f297a5907554992a2","signature":"4f021368e0783dcb1253ea77847d0f81dbb04c59867ebd0aed103f44cd282b9d"},"a65021ae3e5f537ffc349730bebc6e79e6cd0d4a73554dec12fb612e0f8b04fa","d8d5559022ef06ba73a75fb1ff24fffe99fae086a00905076a8a0e321d23cb85",{"version":"05447186314b3b27a8afe8f22935d336f610b03b69e3a70a4a8adc1abd041c10","signature":"82f3f8de37e7d153ceafda565cf4357492d3a049591b18cc675b1fd8c5c57bb6"},{"version":"4427123cf6f1b533112ee6379084ee092ce5b42a14edf865b71b690adc7900c4","signature":"e1b42ceb3d9c1f72b3ef91af117eb5d8679cf8a484c75a6d070c796225f09adf"},"4d82fd2e1295b5a3c1d2d82dfd2c45ad730774688d44748cf7d0305d49739bae",{"version":"d4f0cd891ba6c1948261437899d854d0ad1b4009e94ed633caf2aba89c65134d","signature":"ca03d0ad8f300832d16f273fbc9cf73d96a2982025259add413d96506d39a956"},{"version":"1a44402b14123287d51bdb6bb6f9e9950ad3403af0df78563906110d16fa9c17","signature":"8659790ea32312ae2c6f1f1c32381dcc537d3ac8be40f09fab56f11071e47c2f"},{"version":"4e77c79140c7272e6f84d3a3002522df4a3268fb1dafb994465649d2eda0fbb5","signature":"e8457239962363c7f4137fa39bd723897cde43836733359d2ec5adeff74d91ae"},{"version":"a0f67c0a1f602f7862b46f8b89f3784a15c51e196878f33009a8bfc20c1a1ae6","signature":"e8c9db54602d6d94f9f41f0234150e7ec7c6a8086f143758e7b333cc0b653d5a"},{"version":"de4c8adc12abe86b6446f725096efbf80bb77ab99883b8a948c34c7cbf122e9c","signature":"ce9462027e8f4dc890b1b1a513e2ffde6d4a5382390bcc64461a7bfcccc96b5c"},"e4dd8b1959ba7d7dae412c63de0e1ba47b219d8597cdc77da611d6cb4d6196ff","bad5ce74e44191cebc14b59c726c732e4a7b861ca820ccf625baba7ea75c5b4e","c208de3339361690273cfc96d21b2b33c956997526b3d85487c2075ab43f6185","8bad1fbe72628e9e2899e6e7a17c4b815fab8690d97607cabdae41b24b00a8cf","4279b64dbb79e1b10f20b92feb6e19b31d58d9e8af5728cae28ae4bd30ca98a5","a05040244da8ca975bc138e0729cc78ed3fe3e15dff2c4fc62d5ec8d327e3401","898e710e87cfd721cf0fb92b8b11a0add06d2660a19f0bb4a5089773cfbccac3","f81e53b756cdfde4e3e00516251b60a615bb0f5870b4cfb784140a4506c117c5","88e166abdc9ac3147e01e936c5a63632807eb54b7cf675401fcaa5201618ad4f","b6d055bf21f4b9eb2276c980662bc0e0ee47d089054cc54b2577538824381226","9cfe56cac66ddb37d4faf163d1240cff14b3e3744796bf54e9ba3a83514e765f","f13984d140b299145b8dd41c1052853257a2a57b1ea2ed99da752fee3450b6bc","1732829973987130e92a267c059b05629d9653c978a50abc830cbae4dc7a8fe7","bdd197d7f2e6910582ac1659f610b617d2bdb2f30d3cd8601ad99349d4bf0b6b",{"version":"c8d37c2dc74adbd8bbdd0f5c1d96b89cc71925597330bdf451ef20cdd7c8a682","signature":"8821fa5ddf0c6d5dde8a5727473ba2d4c9c0861fdd83b7110e6559ae0d5e560f"},{"version":"1d7ea4832d6b91d8ab75ffb78693ba42a6d24f4f777b743ec23866e07ca1ce15","signature":"d936d07544206913ac896d4927c818e0e75aebe65f95a8249dd408bfeda91d4b"},{"version":"87838fdd2d55e6cee8f84a7da95425e8d90f02d276089f72f60086b42eb532ef","signature":"a916e5bfb0cd20756630c96806033d3b5ac142afab534878235ca6157ae4dbbc"},{"version":"1fd5d10294c90647178068d53007fc7c7c85d161e93c38dde2df741b88e557cd","signature":"19d6d550ab5050db9a135b076f5b595b39b75d76602f1d8ab0ea8f7926ebbcf6"},"203a8633f1d31b4f1a121a2049c95d2ebc12419852c2e8f458ad79eaebf87a4d","da5356dc260bdd5670eda00d91337f4a13156873835d7e03cfaf590086f78ef4",{"version":"801784f717df50a7673120c7ce6a735342f8eaecfbb184f86030074262844b84","signature":"0f60b65cbf100f1822b34a2917b181855a321941c169d557c75e39c983bcc693"},{"version":"e612950225298745301e65c97a2d2056e545220d4a0168f2c10bf074cabf0b09","signature":"9a995d406fed01c3a904df307776e7ced6fa6cbf066f768e0e5c0cae02c14d04"},{"version":"347cef0a18d1473378b8833c2ab4a0313379eb40819931bf1fdbc9d98f599f48","signature":"e97316df7031f0939d6f948ded3ae91449d661d4721f5db7b4406123de978759"},"6c7949093d7ca216318aa93a7601e4a3ea97e31c72ce37cacb3366992ab9244b",{"version":"f6fd948b64ca6f37bb05aa585a6606b3255bc8b2af00da15a727977340901468","signature":"70003591ad2924d3874a65f56ad1cf912adfccf2771403efbb4abb83aa6293e5"},{"version":"a3844626a8ff3d1bc372d590b8c57d55ca41dbd947c9211d56f33d02e7954f1a","signature":"8e52d428ba6b8e6d3960781a98c0ba7ea94d494f2749f60438f63c065ca5d062"},{"version":"bbfc4c384a27a91d8edcc6aa9bb2dc0018ddae8eec87c7b745af2daeef177d29","signature":"7b3e22c0348cc00f07def64e16840a247cf363f2fcac12fb3bbbbf210acc83a2"},{"version":"aaeb7d5d43367aa8c1c5a10af6e781044b5abc7dac61974f42a49609bde23906","signature":"3bb2fab08855c13585c4fabb4dc1b7107af667d498fb828838b30bde1fd2192f"},{"version":"3526045f46f5aa48f9e48ad1f3386aa23d6f508e6324379bcacef02114d7d642","signature":"3421cd1022226d27b5a65b195741059c2f2abc8ca52b2c237f056c0b8489422a"},{"version":"c5c725b4ec436fd1a8846c849fd93dbf7590e32ed10f46d0828dee35a47281c9","signature":"141c8afd3b078cd578824ac2e51b64a02f960a4ff5d7cec27ee744940efea779"},"2ce0728e4a35934288334673efbf2eb784071ac951d791580c50d0eaadfa7e29","96aa32be43ab3bba55da1996f7e2ce2bb1797e22af8e5a941f280197ce4ba729","bc671f5b7c079b9b2ce675c0b2b76a792e60b019fd0f8215cc121e5b4517e61c",{"version":"b3ff97b1540a5d78eeee73c6d1400a1fe75f603a1157603f1321a4088eb25c8f","signature":"e57a0994ff4e685207bdd9a6852f84058c0b228e8d67eb6f2ef875ee216a41d2"},{"version":"490bb827fc8d336aaab273d10e28abadd3b9933479a2b414c64f6b66e5ad7809","signature":"48209df4888e03aa5400bd3400af43c71f1e191ecf8c993ca560c37ce1736906"},{"version":"c520f887a332e1bfdf109696e195c622c734cdd35cf649c3cbce35a98de60b7f","signature":"9a34a0ab398b306e854ecea1994c9b1c946454db7239a3dea82d9a2695812524"},{"version":"a07c5ec954a8138a777fc113dae1b41fcc75ddc14da8d9027145abed4797be3e","signature":"21f8ab2e0acf9844c84206881c4ecef0dfe0967ce9d4231d87d4a0bb9ff4f79f"},"1c5a9250223da0bc360be5cb25d340d819a3d1e95dab6b866b8ab5bcd38ca427",{"version":"ab208b424a36ed8070dcf057a335e0b9fc530446c221476391301b995e70907b","signature":"3fb04b058cc2c00cf7572eee9b4b0c9adf21d14d0708e0a8caf3ede9e21b2f03"},"2021c615a5ffc4276c257343c6d189d5501b957103fc02a133295ab4f1182e63","4267ffcfc35276453c56d0ee01e2ff5103f31adb24ddc510b1cc0fe36716c8ed","8703fc120f80dfca97d62c5fbd9420bfb5b55cf56ce7dc18d49237916a2a83d4","3b02660ec214ffcff7d984ae8da633a6f9bf5b3991f3e3d82852d73305c39782",{"version":"42ca62f1bd9439ac035a252cf885219881ef264d3774d2b1b0daa780ac314a08","signature":"e835c7320e211b2ad8ae386acc727f16db465afa355c602a76ea118b09da7636"},"ca920351489d32acade5d89fc483a48f9d2f7cabbd8558e50d69f39fdc8c8d26","69142afd0e512373119c6a9557e983b1c2dcf56266508106be8cf8ef4b148bde",{"version":"9fd4f0c3aedd4487f448133dad72e3a61cf12c7c9959c7ac78b142f61ff3cf2e","signature":"f74818b803a47ed0843bcdd6e7777c993c1ffc2090af47a5788d268ecccbe355"},{"version":"f917083a202d5f54a6af37f8f37af7ae1d184e645cf8c79405509061c9420a72","signature":"a14dfc846430d1ca3ef0aa18a966247ab944a6c8a2d2fb0cd11264c94adbce33"},{"version":"5a9756c8414f035c32cb4c802d1526b78a19805ede542a593188fe0011434dff","signature":"d1c6535e8140f9d9c1b758a3d98846f2895da2ff1bd8743be8a535b22b9fa49a"},{"version":"69a4e1469191ebc40fd153eebae9af742776124cb827b63eddfa38d913364ae0","signature":"52dda5af74542b1894df28c8f15760666ac5574df2fdae47ae1a424f946e89f1"},{"version":"827c941c2f4cc7466df34572552d8c772aa225b9c002525f40603a3044651dc0","signature":"45427594959335bea071ac9b4eb6bdff959d11c1f45cce4f97838a9d11dfb156"},{"version":"a7656d7bae4ac7f1bb4844740f3aaca391868cfe340682af6f475a756b5beaea","signature":"d6b04efd923cf7ca30f782fa39652aa648a1405defaf3a532e9888133a08d17d"},{"version":"66c52b2c18fcde306dc63dd137525c58fc2815794a678c314f369bb5a9d53032","signature":"70cc3e279756eeb0fa82a850fd3043025a413b207b1b276243ad6470c9118b40"},{"version":"356a02f33a87a9b6d1c8f89283f82e372c2474754ff6b260b3c8aa1f952dfc65","signature":"1cce8373be3b68ccae32b0e5de4aad2b52b5d458a28001b0a1846664a613e639"},{"version":"fc1d14d9a313ff43a15c348a47d17341cb194726fc43b9b497d7a76110df13b9","signature":"ed0059042f93d25159943da5d2ec5aed7a4431461d551faaea1124cd0978caa4"},"2c6b2af767f9ac54e38b2a73be406715e695554e65e68268fee29809c9dd46fb","58b74c21a9540fd9a26de2cffb967750d338120312cf07bd18b7d63ac5f3fbe8",{"version":"fd337a5dc834521a51d3384875fe8c5bd66149d29e917c7e6d0e5da5907fb6c9","signature":"099c47f517eb81016883ae5aae4ebbd9d0bf1b44656202aa35edfee2f398896c"},"509abd28b2b2c6a0ad8d79ab0b91605619c6525f64cb375ba17f8720f89b5184","e2417833137fe91974a81e2753a65fbefbbb6bc82c3668a70e4e2025f5886a3d","638f97dead2be284ea8baabd3bc0b4689f7367e77ca13f9eb6a85dd3bbbfaeaa","a92626501295217bf4565aa2d4aefa444a5929d4292960d1706e9d66fcf0871b",{"version":"5c595e77858867e8e2306e1df1a81b9858c97562dc1b49b7b2285640c9167567","signature":"d2fc7b4b330b91dc065d994846a01def7d6f730f18f310acf7973ea3e62ca8bd"},{"version":"5bbc68a96a5d24ae244f80e7af97e1180c19b525ba9ce2b2bbcf2f83221e7f8e","signature":"1f5b729d56abeb17b3c403e3fcb59bd3616c0039093a750c91e8617875462d6f"},{"version":"ccd85716113b91fb814b16e29d132ef0cdc1f449c06eb73a23a1c544774b8f3b","signature":"8fe3069a3d1f421787b801921cdf8ebcaff2d4b4060d624f680668f8ab2f4a31"},{"version":"4a7d9d67a133bca0f442b9a40d32bb1f09c0755c112c07eb20d9573485881842","signature":"8821a67b2e81788724658b8113c8413359cc273a9a7791c22cd45d4ead31934f"},"897b57473879caad4f5be506ff8d45b5f12daa1c1a8b9d47e75ac556c61c2e34",{"version":"49420ebca6ecc727cf8813643b7549767378f2006dadc0ee46fcb9ff74ba5209","signature":"99d7edf9fb121832a8416ffaf306a43b65d0d1d0f1316e8391f747ccb0dd5748"},{"version":"a0b3dcfee57650010b359d2d881b0f7c4159f565775bed95cda93a9ff9e212e7","signature":"88ce48a697b7469d2cbd275870e38a3d8a2028b62da500111c5a578b111f8956"},"c059dc7999d0a9256068edf99f0440116c7f4851b32c132facee970d30b0bf64","5170324b0055a2b07e05cd70e0ee5bb2967fa49f9a4b5f0a3e5a6e6c287e47c0",{"version":"3e093303516b2105b4bae56e3f374e8d36eff9c6c94481d0894a953ed62b0b9b","signature":"956afd504b5c4951e1b85f1a1bcedf008cc150da849c7fc9a488105b4dd59353"},{"version":"f6a5b7c2257cb85dbee18c2e4b6e78f98099c712f337b40efb0b4dc05ada4c34","signature":"e3103288cced9e418d5190d51212bd809a575d6101b35cf7c590b43c32d28270"},{"version":"3a146fe385c4dd2b5f986093f7d95c9cc927ba393e338476bf20c55182f76b46","signature":"84d054ae3d4bf5e0d9adbe6a43bf0c546e78a307afef591eb7ba8aae813f7729"},{"version":"9474b42f9b4474229f788e4bc242feb31ba5d15b4c48b23aca57acdcde72dbeb","signature":"6e44ca35c46a7b4945254a0629a8fc7e01bcbe9c113c19fd8c15bb7b3d4c1574"},{"version":"16ff6ed5f4d616c79b6d031c018bd0d0d77abac74fdca7829c1b0625e053e0f1","signature":"be8f1dabb21a5ce462ef07913c5439c28487de12d3e705b315fddf2528bf44ed"},"f1fb00f30b749d8d840d816dbb35d81b351230cc1d18f62a6e585268f5469d98","427c343aa6264b5d82920e0b001e0a9d62ac021a1d4f82be428801a44a85ca95",{"version":"1184e911f5fe7e72645f6449d310b3623aa86facd4cebbb65c2d05100efa1df9","signature":"27463e5c321ee74ee7e415a3ac245704e66f30738e944ce70949023267de9377"},{"version":"6cffbee45abda7bcab0428bdcfdb2b504c1329db94976b7191aa96831a73f2ca","signature":"71f19bd8529fc1eac2e7a5c616eb6e9bd9afe3d3a785a0483d8d8040a539294f"},{"version":"861a9d31892c0ad737ddaba297d2da8065aa06b39145e51128f385e6e40534e4","signature":"280817b28618841002d2b8e5fd1f8bd9b0a24cfffe8b62966fbaf40798df7fc1"},{"version":"8f7671f1e1b716675a19c113f78f44bf73ac828acd64678fa9216c48990e911d","signature":"5a494a61302de807a3ccf7bf57e192baf6374cba5cacc7a3f50c486295f7b535"},"7447cccd400bae27dcbaa0b36766e8e7a4fb661b4e71b9b16549adf91cf2a187",{"version":"b16228e515f1617fb383f0d43ce613ae2a209ecead64a7d554402d552d7b3973","signature":"6f7ca2af2d52c05878ed3398a259fc2dd77e734200aba66b23b1edc1646c1632"},{"version":"6688986a5a23a5469a8f48e95032ea91fde38abe63e4735622c6603b8d46e354","signature":"400f2364cdb5bff663f0e6df85104938c071020cf608610ba4822de4e9c71220"},{"version":"5d863123a2a909928162c958a42f30200ccf7510e73522b3fabd1114d46c8067","signature":"f45542ebc327051cdd7ccdd2afca268874f3125f5053f3dffbfcb7f3f6f53293"},{"version":"15413117399055f0f959c1d9e2f0c9a81f1d812da6172b6bd0156a1c86f28289","signature":"9d00a60e074ff9075c56e6d4c0035ff84e3c2616d8a68d7e177c1e3ce8a784cb"},"6bd6cd601d952c4d659fd1ce9e04b3e26b53990723380b2e6c9e09e41c32262d","fb140a4234babdaa9c76c215f89efacc39c0f0eb07b90884e396459b644a93b9","07e305cdf1070f722871d0585dc15b0cdf9b5b9639f15ae3cb5c7aea22c63888",{"version":"b7162bd522d042799428274f6508e03b4d0f46cdcc7aca4c7ba4d2c53a5304f2","signature":"714fe049f09d0bf2f58fc33c7de9efec6a555196c5f5ea2e590ff0c1ba68ae8f"},{"version":"5dc30992f63f0141d95d85c1a6198185443328bd864ccf821c3e0f0dde375d10","signature":"434368bfd2d96f25381533b7964aa2ad5b700a73145f9f97b490da31d0d7b68d"},{"version":"6637bae5cbde8a1e6b8a01d843782d663bec20f9981a7c296d8f3d536297ef67","signature":"9d4e29298592a5db8d0b2af977915ed0bf1a3cab49b272c2fd225248f8b57b23"},"edab4a12580c4fa278c2a2c4e6b67cd1251aa678ce57d4523b1fa24a0d862b7d",{"version":"74750b347410ee72a2e6477d08f191495c56aa7562d5a97341ddace5288288fa","signature":"be0bd6fcac2dac0b464aafe90a99cb9dadc47c6862b5ddeb4f622f3ba86df072"},{"version":"6f5fef49fab4a1624c0a70b7b6fe242f29cc632f4e3a5cc5de8f87438cd6acef","signature":"7f8348cecf838bb531e169d20d360d84b6ac80fa83653b27595336cd7a6e2db8"},{"version":"fe6664fd0e2e7bea56b43ab01b57af64b7cee319807b017eea24b73193f376b2","signature":"c28456776c9890f6a7a8f59dada23f79bed5d866cc601ea9a2430dfbe2f9cd26"},{"version":"ae10546be8ffec5db357e0ac7578308ffc46e4db20ca63eb2fd40c9f2657a92f","signature":"142db8812ba1ac9108561fcc4cc886cdb921f739e4b3f163e3d346f9b013c345"},{"version":"e6c1feb47c978706c9dc893739c1666398290d4cd5fb8252b032df19e1c2d450","signature":"860e6bda3b4b8544f28b945edf28bd8c1c5d64cc91e7707fe8d0c000c7e7a279"},{"version":"b06581cb2fdc9bff55f21f97a8587d0e2efce9ad16c3f57e55f6c839165636c1","signature":"89e4b25b152357f1dfbf027b6814bec8fccdce154b34d190cea03e5054574749"},{"version":"b4ddbc6907fe9cd0b5bcb2bf42b7eff73568ef62246f5136f9027a39a570c855","signature":"fa6663a2866b5b4b3a84d9377e9bfc879f69751d462735e94d4a8a9c2df809fe"},"a42c2cc731f3fb2c37b987a8c1138d4596bdd200e47a23dc837abca60bc51ce8",{"version":"76a56c3d75703b32b1ce04594154517a4e1c8bd224d0a842473c86eede63dc89","signature":"80d1171656b808a02baf63e2e77035675456ec3e3cf3f5331df0981fba83e5ae"},{"version":"d89a10707fee6e2114068487b259f1e943744c440922a5dabca069c88f572142","signature":"2dab64760beb587b2338946a5815ce22060720d76b224a82a710934ee9c0b4bb"},{"version":"9091b8dd88f4e7e9088a9d055af3768a602b67ad062169d8232eed89f0e90bad","signature":"b30f1386b9b965f908bac6e022b4cfc6cf66116c8f4581c01ae77393899c56e8"},"40763b6c0af11f3e0f71e4401d3dbcee0050325bbad642cecf8d8d0e160ad1ae",{"version":"222774b63d35204c91eb024596c01e147d20279c04abf58a5bc1d3d7ae5cc2e7","signature":"a5099e2e418e8e08d5ae174f080af485426215feb4d23c41eaaec7ba90e02913"},"1f5883d8088c47e84f07ce34d8522e0d03154daee06da13e12aa22acf3fd39c2","32c27ef6ca6785c5dbd72de0af606cda1cbfdc17461b95d8f1f1311c7e6f9949",{"version":"029bbffaa00390a3e0a5f749501f0cb661ae4d23a8f02ce50443c9a36d545b9f","signature":"848c6faf6dc52684100443a1b7a8cc067edba05e5f6e76b6b561b804f498e3e8"},{"version":"d6a4003ea2535a7c33c7458e9f147ae4c2e002dba3215fcf647d7f5ac09cb88a","signature":"9b2b464a0821ddc44de8bd0a23ff0c7a5bcb84013697624a91df239f7f41a365"},{"version":"951c19f7fd389a78608d4854aaa36e0c5bcc96bcda69a2ef20f2fe34ae1e49d3","signature":"1bded6a6874abeda63032450ecc79c4c8725b4df28b8ff889e5143cd26ba92d5"},{"version":"92b722b7706b2831a6b93aef6784a6fe13569f2a9a36c78c9b599c53877b32f6","signature":"a97984c354bc4a826ffc4328c0de7cb989093ba03269f560ed05286572e0d200"},{"version":"d77a05ad05772e7925ea4ea35f40b128119d5de27a1a15fa0e5605dc58c36ac7","signature":"527b76d95309796c14506085eceff3cf979e677c2726cca422aaa2cabdc968b6"},{"version":"4059f9f83b7ae08f85ea00ca1894c1d9b14ff1c49d16915856aefa351d7d7f1d","signature":"4a8f17810ed101e1ab6a88279fb5b653df79effd0c2e0686b4a6c03359ae0b6f"},"5bb88b0bde75b3c28d243ce724bfa92f4e8282023908087717d18be048e75645","f58f212ddbf3d280aec7cbcbc0d0447f5c4078e1310bf554975e7a381ef278c4","64927c68bb99dfe78bd4dcac7ec9f744a86b9d59fc9bd76244d7d506f028d0f1","7927df3f8c1136494af296b1f855c0ee6929556c03cda45158305f4e3fe64846","fcdb32bfe0ab6adad3c2a4de7de4770e74894b6ab0a5b0e719f914be033d0fc4",{"version":"a7c70443f6ccd11f1fa5ab90134fc4f94acbd08cae7e7088fe6f9d26bc87348f","signature":"a0a8eaaf8bd050f9802801162d545450ceb564723675f08b7cc1445a23c00d56"},{"version":"185483d0ec75f289d933d34cfe3b4228873e2998f3a980166427c772f91294f8","signature":"d01665e7fafa0a39846cb376f28e93d465af53acd8eb7d1a904aa58fd4e4c64f"},"8f42870cffb537499183d01a175618f732be9ac4e584231a172ff035189d054b","ab8977a391d9fb707e969e754ea460cec6897522b759cfd192fc4086d13320ac","6defb5ff6c3d3b54861c70775715aaa0e7ad243b6029ef71010e09ef14241fcb",{"version":"ea715f39b3417c126920e8c36391c0b88d632c831d885ab528f182ec584f8037","signature":"8e57a9041e6fcc888742d47c226ff27b56e7444bfb6344ea6e64066b5dde5aa0"},{"version":"971f6961f5098efeea05379a4f5615e02e864ed146baccaa77b91940e9aa3dd5","signature":"aa132ccbaa398fc7b031f4a3325a98b256d573ffb85fe72311ad9f4d1aa3f359"},{"version":"e4d52e44ccba6abd0909fe9f590a2ffb5ec29012ebe5b942ab7f7ac9729e6576","signature":"878570e16cbf3c9b04c22fb91179e6902297384e9bef7de45ab074b42d384e05"},"c89f3e7864f3a4adab80f8204884ca9440a38dfd1ebf6b2506352320ccf0eb8f","622370c36ff8f9393b310e5ce678363b96a8c896a9aeb9bb3defc96e779421bd",{"version":"765b8ae6b55023dffbb0ba2d52dd516378720ad3bde8b58b9f57105a7a7fe190","signature":"58d37a90fa475edcb4a3ff3a68d72574e94f51f832605be8ec859e75742b187e"},{"version":"cc16bf289c260a07b5d8612f0c6050d9ddbc70155af326c56608ab47b47fb059","signature":"5c40926ad27f93aa9a91d71f28c7d92d65bb885ba73876f27e3dab12d6c6c577"},{"version":"28cc901ad55be1098bab39254bb0dc76888099ff1a0a852d6cbc57d0b0c1b6c0","signature":"e3610f65e368054a8dcaceadca28b1431c2959f5d64a22926a9edd84a7381ef8"},{"version":"68b592a11700f81f80ef4ccff46d7a154eb29fbc01f547b7ce0f3f352d9bfad1","signature":"c00e080474a51865f96c5fef6c709be3cdbc9af0caa4451063f63dc041d8a7ac"},{"version":"f57c5941b5f9931bb215a6338012c5365ee1e40d04081b3d998c667ea9fde3e8","signature":"c319cab21b9b9a1d055399b6265e0e6bdd5da11a2edada15689d2b367ce56760"},{"version":"3ab8f5ce45600df7462c8a7a281d5d70951c1f54f96bf5ca296c6aad739d862a","signature":"739edf96b6e69457e6691b3e4b0880db12b34ca08515cb68a29d1abd0a50fb99"},{"version":"3df3b73db7df2ac9ef51c0ca4a92d7667bfb96e8a01e1c202d479eb607c71953","signature":"1e12aa5638751098d1a7ad9a5e71494ae45967e39525cc865e7ba189f727b6e8"},"7a753c835fa624fb78070d84391a38255263387ae09141bff0319b1311af8bc7",{"version":"48b10b5853493c59d7fde9b774bb36bce1ae2f5f88c6f70b468de0992d251b8e","signature":"5a4eb1be4d88a25e9cff6fd50419a651f425dabf96f53fa01ad98f55cf37ac1e"},{"version":"a0dec2bec2b0b9d38dfc0343ce17c2d56a7aae293744147712d4c235b3adff97","signature":"20f8fda61b23cccb9e48fb3c1ed04525e918081b94ef9487af67afbd0ce7b0e6"},{"version":"0638ab869a0627429bd8638417cebb2a92c89c46df846c31742314cadeee987a","signature":"22f4b6f6ef686a3c021582ce9467ae17921008628de01ba4a179bfcfc3fbc2ca"},{"version":"8aa4fd567bf41152d40eae3670927a86ed819aa23cf21aa9f7070fab34e6c14c","signature":"c8291d1b97dffd17e101a11cd724801aa8789de5fe05bb569eade7ab839cfb47"},"c6955d8caf3cd67754182b95aac22bdc865195c8045c694c58e818e5f79ef337","38b43b4c2243b9df3de2a3645f26776b2f044b43e529fe5ec51e43b1466966bd","276d8bfcd459b40d817b8bf1ef8a103ac35619cd30f3685665e2f390ec2d7324","4a7c9107a956719d722fd3b99a2866c69749d0d83ea4a1d68ea64941de8bd6a1",{"version":"b44651de61e01f4f490b442d335424cc5d936f64fce35982b4568356be49b2f2","signature":"b9ac6c58c4acc2bdbd60ae66805943c69d84f76788da57298d6bab521a24ce25"},"539dde4302c3029dfaaedf8a610631acbd9b70620edcc421a292c9675f285487","68542bee02ec59b92fbc35f19473ec78fa2e5ddef192083cbe5d80f5434d6fb0",{"version":"3a553b3ca8f73a2c893c07815412dbc8fbef88f3fb4a255317fd35ff655794e2","signature":"1b1e1b59d24c2370492b3e6255dca245b416d933bb805322b8976b4ea1fcc012"},"458c698e0bcaae5b243c169d215ea18824bdb256e437ac8d27df2f0317a1622e",{"version":"6ef62e792baede1e1401bee2714ee98cfbc864c51b035c6149b199d0bf130106","signature":"e977b93bbc604177a92d32797818a65e8b0cdf305bf9a29269707e8a8328f686"},{"version":"a81d29c6cb4005544f34cb4c7902f5ee2d71afaa43d2902892c334a024377048","signature":"5052e0e86ec507a664d378f7f3b2836c7865461686e53df3f5fa122f4c0639eb"},{"version":"0448f5e85ceb624dddf1fa26dade5b8dfbd5be8e49d94d4bdfec05f4db7000fd","signature":"e81f913776497d85d0f3481e65d59cda78cd5882df2eb1ac85acd958e6707a44"},{"version":"e5ca2e3a0bbd1ecacfaca47fbccf83af6813d9fbbef7a93d84395f17aba196bb","signature":"c6b1fabf985181ef16a33b43ac0f749e1d750d67168dc44b8f2bbcdda14b1060"},{"version":"62dfbecaf5823a18a1ea0a234526594ea40fa32b349a2133f77766438dba5719","signature":"6461d7fff54b44351d3c20aca00427dfc32d202de96bd86c032570513f7e977f"},"613e78650c76538285f643d8934ccb5822395b2161e8dd54137c5a287ed760f2","2379357836b933bd3451730835540b1f9603ecac59d4e4b6a0e17042a3eeb410","2e7a8e1995d1a2c93afaf81bf380268f304a663e19301ef07c71baccae9b4f70",{"version":"d0a0cc53a68f0678830aee81a32312de8a9f148706d18e936bcc5b2949455ea2","signature":"e0bce418703b51550dcc526d793431809b0b4e2ca958064159bbc1d303528b6a"},{"version":"5ac174bead3eb730d717772c56bdd24f41e25c57830e9a8a3ee1a8b2a46ad015","signature":"10bf30f7a07d4a9f7224ec5508876b89f00d70a02172f900eb2380bb29dcc961"},{"version":"035b7153e06b2b4c52ad2b255a5cc4bdb1fb1056e494876685f5ff0a57df8c3e","signature":"2acc81f9caa252a105130201dc8526fb9c8b9901fdf5649bb3c44aeff7336bc8"},{"version":"831062d30eac46e107276a2e736e3868bd989e62306d32285c0413a5d922e7eb","signature":"e9fb7521c34cc0ec28fb72cd38d1efea3a874ebbf2bfc0c065285d92da3e0a15"},"23e9a7a15868cee5fcbf8dec2840e93630e032af63ff96ca8ca5a4c745abbe39",{"version":"d6ffaa65626122d1f07b2ececa7846578f044e089a7a8606093ceff873f20c27","signature":"1d5081c001f515cc655cc649f04e6ca124fb2bf77bdb02358189c92772b0933c"},{"version":"9c33cf64f3dcf983d0985325e4dd256d5aec83a926f2cf6b61d7028982d749a2","signature":"440c08f1235de7c9926a411a4fcc53914b82a369e74dbd5f0cc33b7bf0fa2fa4"},"94a30709defee13fa4e1b80e3db63a476c8a9968d4b26bd68156b286a343904d","3078f172a0acbe7b9534833856d733440687c25046e14e300b422d65814a7cdd","b6da4345a92cc98ef67c962a02ec77118faee430bda68df077bad5549cf90724","088eb9c8f789033ce59f2105f57771ab57c25d886ea0c0d13da1609d1af3fbf7","1db886a73776ae3ad7d11bfc6400e8b24642e6af786feaa3cc98979aa1cffaa3",{"version":"1e4a90fd19e452640249de20ed25ed309c68ad24e9c764b07f4f0e12b1aba5a5","signature":"b4fe2331e3c3d9f7eb97d5ee10e8d1da55cd59cab390bf7578942a0e4a4414d9","affectsGlobalScope":true},{"version":"a7a1eaf54c3d9a8821e0ce3a58f3655dc4675428b1a15657a5b53f612345ce1f","signature":"c9b605d5a55ace4e5d9d9c28f26e86388f5a1263932b8fbe6975b11ce0c4ddd4"},{"version":"50f76eb608f44838068e92a3e567c04d31cf0fe3d9aa6bbd03c2e24f478ed268","signature":"7c69533de2351dcb47ce96d6f961c217d7ab04d49cdc77c63a26d7fa2c6069cd"},{"version":"85b34a2e768240999ae123748f53dd70aea5d69795d8cf4031e86160a96d4d99","signature":"2618faf2273008ce0866bcca6f8ad2741c642748c36ec7e4639597f76e86cb48"},{"version":"9f7d3d3068e381b13b211e8f687fd8873cbd603c17ec92520748ef05fd0b23e2","signature":"47327afd9397ee54cf86a2317a9685b9e1bb6c25a3c270e0773daa3ed00017c4"},{"version":"924d04d320d48cf06625554a354d0141e2611ef2aa7fb3c29f878b790145dc2d","signature":"cd5b91b028078d65c7a670a15ef31e26deed5611139252693562606a494ccd65"},{"version":"516f3866f1be30c45f23941b959f2e7eb31653f1dbd08119e7fc16a5564affbf","signature":"5d5e2986e50020b728e49f3a48368f42d515de4c578f45e4cd85b2cc91cf8311"},{"version":"ee1c9fe30911ca12b30d2c2594cd0cc58959c9a7e55d2139d361cb2d4b1b7219","signature":"570c770cec6e0db7106e13f6a614e7d1ff080a1eb3fd9555f48870596b648b57"},{"version":"518cc5e0bcb3c472ee601bf172b3bcc35a217fdaef4076f9ee6e4ab43cafb6c9","signature":"d267254d65a068de23b9c65429e2335841baf6342863338f0988edd6b3c56a1d"},{"version":"6ba1841d9768db0ceddbe13ae5fc2a14f223990e3b78df0efce8bbbf6ede8924","signature":"b7ec7769c9f525534dacf1da4060d564e272cfeddc21ea565e93853db300ea2c"},{"version":"c47aff7a5c1c6cd9a70041fc4c5ec8bda0cc33c53482ed7493d109d4c0660fc0","signature":"9d6613d45047a004d3125f0257bdcc2869132e928150d533f2f3e1037fc24395"},{"version":"8278ccb61a45f0b040f942af5eadc7e6ae738eab1cbc775a22f2b8716c2ffc34","signature":"caf74f48ebccd0fad863c3f9e9d13f529907188c61994f8312aff33c834c5d73"},"f57fab1742896a28beefed5e2aade73d2c024415254505b1c1ad8bb1cf0574a7",{"version":"ae348eca29287934753bb65528d14f8263b9be9363290c800c4c8149325e7cf8","signature":"314db3d5fffddd54295ac028ce530f42ad47af26c66e44c28a8dd2b6f345e7fd"},"5639e4af912999f9bc775e6485fe16c1594957bb1c674061b883e8cea07424a6","a103c5a02290739d31b62ccfc6c12b338a2da042aba993ea9911e30f1cd897b0",{"version":"b1fde087e7bd3ed2e17153f896961e953d254ad14e95e4dd7de8b8becf85f9e6","signature":"3fb75c5c730c0a112e8d997a5cc971e88c11519b0508d6a9e6bc604ea6262ea1"},{"version":"ebcb5674f02cafc3c123b419cd937b64f13ae5a1c74beef9dc1d6ab8abd62eb4","signature":"3931cdf59fcf31287e7a5e8bb926b59de650245be76f9b5915f969f0113db79e"},"2ef6c4a7fc675f75d35b944ac35fa54d9371e30d84f35b34c26c2698638eb150","d3d4d97048d847b4b516c53a6952b018f414dc5ee2e99332686fdd81d26c79c5","e88ac2a8e9498d81ce4a890afe13fa13f98abef3b1468d4197e59a91f984dbaa","f8a5876eac42a90e44a454548bd825ec09ba02b3b80a808316e584790b2ffe9b",{"version":"977e6381f5849c9826f2f99b60ced61e69475c6f74bb7ad5393a6a3dc4fbc5d1","signature":"9cc71bc66142b36e32cebef9d5ca8552a82e5793de8e4f210bde9cc974d6cd5b"},{"version":"b0033f9eefb0baf5dbc858b8048af818cdba298028939af87d5b81fca0319fe0","signature":"405db36e85dfa4263faed723e699f581954d62ee93d9bf89f930ba64d3dd4871"},{"version":"6637264d27e7ac005b6f4f5e87c97eb2f567b6b2944344138a4dc62d630959d1","signature":"a2b4221fbd96fbe9ea79d5c841fd46f89e48b0da6d3ff8eab7401c188c9fc4f1"},"d6e6e2c9521c16a6608f9bc3c6e763debf22b91abfca236d082a77bee4ee1c89","a27693132fa1c1a39373cc82b7c16c6c91cdc6061f9bc196dd49015a526e74d1","fceab329dc8cdf94f35628d3eb3b151b5756f6ca71e489da9865c6d2d91e204c","af3fd264fec0b39d30bf444addd3f6494e4e050d27215e8f1719f5fabcbc006e",{"version":"8da74fb7999512feae7a8e07031a698bbafd64480a8ef3b8141d216bd56ba101","signature":"a825e8126058fb859714d24493c200d28317ac5b9492c24d60f8308da6df04a6"},{"version":"2423dfdd93dafaf91ae16c60f9169b0a6f0dca601b1e11c2c094d8a6094f4fac","signature":"1d580ff6f5d46a4e010cd94bfc6aa9bd80c9a1d9743b6a966884fd81a95e7e99"},{"version":"774d586d74ddace30588446a744ac63fc496f5c31ed69447264288931937b70c","signature":"4f65846a90b490f85e45976646b108b0883676d77dede937877f889accdc3d5a"},{"version":"42c05b5a162bb19dda8fd79b7b32d020f2b5cd7f7027122dcefd09cff6b9f046","signature":"07a7627f719cd3b6cd24ef576a2a36c01714788951092fa76fd197dc3029d573"},"92872a421eb53c6f754addf5ae3a9819e95e4b7fe76d768466fdb8268ab877aa",{"version":"4592a5978622ac9c71a8241a73f910c15846e6f9fdd6eed93c3892279c3beee0","signature":"8e4f450bfa854cfe18d043cc0b71f4c94f3c86c5062bb30aea96c03e879d14b2"},{"version":"6b183b402591930341533d6f3485c7e44ceba37297cb5e5e8c23e5bb18ddfdfb","signature":"bccbd729c57ca4567f2523ea282ddef82107f1efb1a6a14a696d71d52ec973fb"},{"version":"c63c2e7a0facd58fdd70cdba447ac2c1f6e942bab4ad1b63f85dc6af1c3c57e3","signature":"8dce511e3fc725b919268d3175bc1e2298d2e9fa82bb1baeb41a0f984f6e3939"},"7b8d800b870fcdcccd0adb2363194d54a889dd4f1e4ab10eb4e41f27eb7f0035","9acc1dfccd0b35d36e8d132998ae609181083337e9a873c0e32aabe78bbbacdf",{"version":"12c176c13679bbd7ed7f014d76f6f096ace9e627544aaccb70efd28e478e5eef","signature":"94756a69c7350679d78141397f077c1038172306e7141621290701655dd27a3c"},{"version":"18671f6c520e9ae73c6bd89d514412424e23d3399a3d65f5117569b494f955d9","signature":"5a436f5eb06245f7b8ba259964b9e1a32c0909dd6942c16960a0ff1903a83218"},"332d70518af780bb172ef3ed1e5245f83064e2f3b275cf4b538eb0cc6c282836","d06ec51526318d13c1b9a82c93576da74eff087f47d5dc70022a95d0ae726277","f9740688b8b43e605d4f754dcfc84b6103663672456578b9555f4cbe584e20ea","bb7d948b7602afae4f4dba17cf1536a7f1364a06a15457ecf20479f28df4c02f",{"version":"2ebedc3691d9375cc7188511eaf60a01dbaa1f769d72e3fdd6809dc3bec3bfdc","signature":"038dc4cb52e78e0d824db25df0ce0ba2c6569626ce4f2e163d69eafdf62eb1a5"},{"version":"2d98307a56bb5ddacf3fc8d3f1e311b565495cea0f5cd3f4c6a1b51661119350","signature":"917bd78df18d49a0525a73cfb8cbf6e0f48f1f810beb040bc9e424cc6b2a69be"},{"version":"8fe1309e3b0d064e9bdc18bafb65bbafc19f2fe730f9a976400a8893dbdd7803","signature":"08c6b2f18d61be63c7cf26274be6d2f39da176f2656d0fe9d93c83f119c11a23"},{"version":"af90c9ace1cb6af0e7733b8c9267f66b495a296748a6623bcb55116ff9b8c60d","signature":"dfe1746eed3199b7198f90a330e6a9d7a39e0f32ca52fcf7dc69d5fdc29f6806"},{"version":"f2f321e35ab2a9b9207039a9a01104c7e851fb84e8b3268bff19529030b5698e","signature":"1c17d366bc38ebfa4379ccec96186084d08b8a2918f6a1f5d9d9ab3aa11ce8d8"},{"version":"3d21957b8a97e2cb86e81224f792159b3f1cfa6388ebe02f9b19b4ae2f58a07a","signature":"b5bd9ef8ecd7a2928d8f769bc97b4e969c3bdba13dcd90a85a22d4a32c04ae38"},{"version":"8026a354df2393b2ba110fa08672181ab1d82e52a7efb2df9fc892a9dcd05a73","signature":"507ed41b8ae3e9d0626ef4f6245bafd193181af5d35a86114c86d602384d1de0"},{"version":"fd77a6bfe071c353ca854c8de8ff4d3eadd767eac442e2acd36f60db5ada3634","signature":"bcb08eeed1b078b913c3641e054099cad1d3aab18574639c5d2fd6e0bd1315d2"},{"version":"a997b6ff41865cb9b2cf2fc9b79626f55055862b034db5dfed2359a4f86630e2","signature":"db648b9ec3411fde9f423c021155a6e04ea49b2523ef3de334f584adfb0c4fb7"},{"version":"5a9865caceb1cebcfe55e15b1f93974fc4590fa6dc68cd12a1879410b4a017db","signature":"cc4e28b3a3b367d6387ad6e8cdef7d19c00d9b9b1090bd5257278e8a08522635"},{"version":"ff4faddc93a844492e02097b95efe32b156f66a53acfe33f22981ba256d5f26d","signature":"761cd76691658c1771994f90041d1b5bff2e3130c2a90439a4d871f6e9e94527"},{"version":"78105719635b2e5c25b29b2646861b37a3aedbbbc143e7568d15a94151349a8e","signature":"4fd7830773b159f4c7a23b749d86e9ad826ec2f766086151e1ed77f217355d0d"},{"version":"34a747351f0be8c68e2131afd880e2b7710611275a9ed0877763511d1b483ef8","signature":"12abe5c726bcc814a8ceb2d10e8d5fa18c23b706b18e427213c205a3ab473a94"},{"version":"2701c811035dd9a0772b8c62d69c09f1e8dbbb53ccd90a1fa3d74cb21a50bf38","signature":"57c477738f80fec1bc9a8ce9740f2bedb9ee092570502af605a7c43942454e59"},{"version":"05d78286952daa86a448b5ff9d99b0bfc012ba0460f3f3c3261d631978db9905","signature":"79984e616df80d341f65d2f7ec2318b09974ea3fead5e10927ec370cb6df21ee"},{"version":"bb21f9c10ce7f5142c4e90016b49236e40049c078ff02617c395577f60b15d71","signature":"933d0376d68888aff966179d4f8a6f1b62ae856849b76ebf6c5d0412e0b5f46a"},{"version":"20df82aa3682c5b564e8c3c9772d4f3675c1656fbd56f03372454b8063800feb","signature":"23ad5e8a3f673710de0e6989cd52c87e9537da6fb43ccdb168ebd9b86ac8493e"},"e6d7176222a007b1e04074018196396c56f06e1ca62e70a7af72d43cecde3a53",{"version":"ed8a37256843a2c05c21682916a8e6e59ac9ab79eb6eab75d5249bda46a81bff","signature":"a517dd51f66abf88cd440f87c44f9be5449dc052527b74fb82d0c974f9b31784"},{"version":"1fece898234629bc6151cdb3db61bf517ae38aa5b55a28ebfa951ed911047b50","signature":"0d11ec476ce6b22f9775ac57973b46953bacdb84d7a4988a71a04ad84954f35c"},{"version":"e25049d6e7a8b3a667217d1e9616f98f5312b7b3919865d56510977fe87a16de","signature":"2be33a36bd2cc1e872011176272904e5661d3c1443fdadeea8a8d663bd1bb390"},{"version":"50705bc382c3c7da4f22eba69e9fda50c26ec43366ddc8144400a4839d075f9a","signature":"4c93df3818cdca080e5c6062a8e84785216697c8b2d1b5e7e8749962053f1ac9"},{"version":"ded1aba68a3fe4fdcdba337780c0314dbebf6983c904a0a8624e4a4dac0ce68d","signature":"8683f55369c0872a563b5221452e725df1f9db546af3148058bd694a19d7260e"},{"version":"3466c61898bcf9cd0dcb78ad99cea1759012eb5e921ab3ae7a21d1a048c9413c","signature":"a6fec6bc505eab3e3fb006ce55a65120003e9b7cd840b4843f7684a4ec19b55e"},{"version":"c912cb035d9504aae9bbebc06073dd905a189150de21731a069881b1453ee7f1","signature":"b3d40b7a516edc48fa01eae34b0fe392dc023252a3f6fe2bc01a50caabdceab9"},"6fd3801493a58527b63c722e5a0055f13b2c5da1c0d519336cadc2870c50e92c","65404308be5394c6da4366b594ded1998c53be66bb0c2ec5a51bcbf8a4f5e78e",{"version":"e9d7ee9eea2459ac27738c7b4ee38ab8b4eed5ea71ab2b8d4508d56efc4ce50c","signature":"3b16a8989321d5e0e23ece47bacf416e4096b4d087beffef2051f79a396355e4"},{"version":"b29b2bc1baa68739e31ff9bc8e0140a6dc25fb607bac114aa89849a38ca0e8a2","signature":"fe59de708eb731ef4879656e8bd768728bcfc2427dad27274972074d4a83beec"},{"version":"96bc7330cd09ae8e952087169cd40573bb17e816dbfd0f15f9d72c453ab04cf7","signature":"320ff1f845223d5f0810dac313ee8e7ed643da34eddb7d3e3a989e73574c3826"},{"version":"bcd1390e35a8b9a370dac90e6235aace9693cc5db70116e34eb6537c819902b9","signature":"19753691c63a15d0e5e793dbb41e96c881e15cff912cba054542be0324696458"},{"version":"f8fc11ae072bf2742573b1ad096f564c973f58d2fb4de686f147d067dbad9fe1","signature":"ee8f13e3f7e8c7ee8b38b254edd1455b1b9f50d27f9f702166ffc79b01590d4e"},{"version":"addc78a9f46300147d86ac954d88bdb53ab1805ac136877c016e255fdcb8fe52","signature":"49baa354dea7b01a26eea9be1d64f4ef312fb66cefbc03467a2082c6a9870f04"},{"version":"0ca82b8d984d583dda6689d037ea75f1781e1fb67deba2475041d2e4be1c59f9","signature":"df49409ac1685158a79b35ce5ae8a4fe48722bcb7b6891c14646f0922a856b97"},{"version":"46090ce9c355a7b43a8c4dc07d94b330cb0938c1e6e002817aa127111c25d395","signature":"41177be87b9602ba6dae0c95c7274c10618770efbc6d362dda82e16ca0c50382"},{"version":"9d5e4c9c30203d1bb06ebf38b86ddc24517c15caa027eea69ce241f3904e975c","signature":"106abfd000d6103b89247640170ae23690ee2420057f69636edfd027551ac792"},{"version":"e4181798ba26217504af89bd22d73a5e34140f94993c724f4243d64a1b84b911","signature":"4e9bb7eda2d6c8e291ed43cc657a1fcc60371c3b865b2bbf47d0728828bffd84"},{"version":"89c9b81704acc3ff3f39b3aaf3fc769d57b9c1694adaee7220f0bcfc5e2f2954","signature":"ad81f8948589d9b435b27a9369a9a8c03d3e1bc919921a7c076b82591244946c"},{"version":"27641f5606363eff1106bd9d484fbf54347975e309500faf369cc55644d65b56","signature":"8c9bd0fcbfeb1753fb5c6e3a43f597b71a07b578b4d132b3f18ccb2a49b71495"},{"version":"ddf6f5d8cf208a75b811f2b9a7be93f4c761e91d83d2a557159b43c82f1d05a3","signature":"c677ac0acf1340ba381fcaf6733608d52975456f2cfe194fb07e4518d4e4c27d"},{"version":"3db9505499c07a6a95bf52e47f3e5f7aab873e1b24a94e775be58ea3f426ac4f","signature":"d3cf482634689014b34eac6daad7dcdadb6d2f1604bdf57977e0c1e8eff686fb"},"4ed333d57ff8b6bea0c2e87225b2632087ef8fd6a3d2381dc67990c8d035f987",{"version":"94da258f0b69b21f905e537c953a3a0b7effd4a61f3e9890b55fc01d4ba0c64c","signature":"a42ad046657368e34410b3cd44e1a2f966c1cc141cdf79032c1ef0b2b89192cd"},{"version":"4416790b4bd5dc60faba074c5ab9584f24c88e1cad49100f117809d8c513d5d9","signature":"21aeba1bb953320c300cc48b62e936574b6213f72f1c73376a08341bfa2bda2b"},"f00a5535f2665d7e92fe87924c039fe4a4b0363fa1c791c67331726a05148efd",{"version":"7e4d3fd5e0e2c681369b55d82abeee29824aa95c8faeda8c476cc90ca49b3e61","signature":"88e9519d62c5163406afa10e9641ca597afae85fe200d15dc5bea970bca20643"},{"version":"2ac8e4e4249d67ab1664702e35722fbdcfd4f68d465dd470a936bfc8fce733f7","signature":"07f6028484660252cd6e9f9deea96c8a48c2599a46270dd327a47701ea7e2e07"},"a7d97502d5655b34a5322dfd4eb8b3876472afe4d025b1c2856d1fee618da49f",{"version":"ca8995a040be856aeeba54d714a566c76c8a270fd795e5ecb492b724d051bddc","signature":"0a0bab0aeaf82cfdcc95c27e79acf4b3f91822fc7d00467563140909827b7238"},{"version":"c6a8a9ecaed5f9b896a6ea560ecc458923420f60cd844993eeebf50a65f2119e","signature":"68dc7ccc850d458f7dd3b5f727a6ec7960e0ca12ee311078c6f4e1a0c4e9ce13"},{"version":"029a5368c84842c2cd92ae478580ac03e7e11d6b54c2778e9c233c2d373dae33","signature":"eefdeb0fd378c90d92469ef5cfda87859cf1a4aff7f82d11ff41efbd13810894"},{"version":"61fea123bf278e4ced226c427a28c5ee7c42915f409bb78561ac3e3845afd712","signature":"d2fd4fbadec0a3f02d0135a42e0678357634cd566f78c6b2cca33ae4dcfddce3"},{"version":"f471e1ab693edce0dde2214431c1da371622e3ae7f4bbcd89de8a93a805b814f","signature":"6c80fb4ff2f179bd0377225412fa3c4c009f7e8650bce555a16bd9cd666a2508"},{"version":"6f54f8a42fe263fce61760ebe1f138449d6e6426aff3b1138ebb64f2910dc8a2","signature":"c4387f5db2139e7698117207c7e53f0b6d791ae331240061e3de26afbd603a49"},{"version":"c915489c5335e0ff8023dcfed38a14bcbeb99a5b93a38cfe684ecc5c45312b4e","signature":"b34ae889d00fe8014d497b209181492f47312d534ad127ae0381bda81a236374"},{"version":"0615cdcd3f9fdd6b2f3cff1ac83b5ffa0f39a7b9519e1eb6b9247b0654559a94","signature":"3b40f1a7bf929fd91566ce4525304df07676d77e6c4cd9754b839d3127835233"},{"version":"b69a7fb5bc75bb8387de942e9623ba221d7ee15e738f9890484160c5b4457ad1","signature":"e566fe4037bcd3299a264b6b4358c53010d97219f5dab19f08fc1f5c1a3dc48a"},{"version":"77e1def4d29d6fd1994141c0c6755259a7a6e64db87387c06536424c39ac84e6","signature":"1cb91e873bc7a62116face345326e6ee7e9a38fd559694096e37d82957ac484f"},{"version":"01bbd164f099c6a664ce772acaabd3a340b15c2b0863040a888c0d6591e602cf","signature":"da21d47008d3105bcbec286eb58f391527982152cb7725d923cb40d90066b361"},{"version":"87c73ce03f65d7cf2c2ce273c85cd0982a01fee16c5d64458cb3d8d9d49df63c","signature":"de12e5127a08c491ab1e08fb1589126b91978cb5fb5b9ac1c6056ac42cb51763"},{"version":"e066384415874c3a5b72a96a472ca793b0ad11578b3ae2d3e78e93a609993d25","signature":"73f8b34446a36f3414e1b99905bb58813793cb3a86a5a471f858c9f650e61640"},{"version":"65105d9834e3cb4ee24f8d23156cfe1b846cdb212d1ad81215f7dbd97f3dc103","signature":"594dd2b99451d70d54d49294a0d05cde72020c4b4e47bd5730da677eb08bd6c1"},{"version":"aad87cb3b6461b726935261ddf9e6cdcf8f4b9e7021584d41731166f32c11a38","signature":"d8f73d2c79187b6699222c9393e9fc41c95b21e290f2bf2b241c633a005b9403"},{"version":"be7c9ef4984d311de7b614f3e9d9eb174c069038e5fd55492af386b0ada7a80e","signature":"05797da51f825350691bc0b1136314fbb67f78ee5cedaa4ad01ee7f527492672"},{"version":"5bd0db51e2955e06c80efdf76b1bcff36823538a2e8d3f7651cc18e6581f1e28","signature":"a850507c9d6ef0747c366652337c35b1a4f98363e1290f1f4096c851626bc9da"},"b1591c6f291da1a1d7e1cc5fa57fc0d4c85dc9189110d9c1b7828c475dba1933",{"version":"e3ac43c23c412e0069421d180be7bb62e906d7b8feb4a22ef89ed8584b27027c","signature":"1ea080724e918747afb1de2625ad1b4fa0b8d32eb8e7879d351166f0b2a14edf"},{"version":"32780ecfc010e46e844d29e3fac6565b6c7ac01f183ef48fd6c7b6d48527c101","signature":"4301613f5a5d65ddecb2f3ad6a2591f3fdfc8f9dc0f80679ec7f4b051793bba0"},{"version":"28524d6f59fa6912523b299f748abfb6765e1242947e708007ba0efde9e92553","signature":"93a8dd71e3dd0a32fa0672f38d47c642b5f7b903deadc0100d16c53ee46656b6"},{"version":"180c48987d5bda19e1077ad0f6f064380c81452b2170ef16a489552858e90b14","signature":"d18bcc4fd4c9ea04c0ef5a27288b841bb5be0551bd661cd1feba762f276de6e9","affectsGlobalScope":true},"657a48cc2fb0b25e6dd9884fa1a807c894f42c8dd4741c8687ae40571d5fbb32",{"version":"f2449cf43180fc18240f51f0f520a90ea978b0bbf12fefff027958e88d8a51ee","signature":"13aff7000e6383ed5c02c3f46fb54dd15950d1691e1dd6018dcdea3ad5e3cb6b"},{"version":"e4cc071d25a1579b2ffc306e25001f7d34fe25d0cf782d359fe1d2a7edcfe2ac","signature":"7082e479404c6f8125885ce924c09fec1a3ac6e37785d9ee7ae13c5b2a41f155"},"82774b9aa90fb12af4d64f7dc56fc32e637357bb4539cc20cd80cfd2e3a6cc42",{"version":"f835585a64b0aa1193d7ac2b8192147c6e1c0133166cfff99f10e91ccb0dd999","signature":"f7829bb1b2554ba595637d94f9d9f2edc642794a603416fba571864c568ee4df"},{"version":"743225e8d6195dc4de03ec194f5802120b3e46dfa0a8f48f8f823c8338ff9cd3","signature":"d01a4fbf118c7d8b26a3d234aee7e191fc404108a9ae0a6dd1486f4a9ba18875"},{"version":"6893d2c7d35176765d2fcd6245e5701383ce113019fb55986bc1e711c0bd6c1b","signature":"8c5f8e0c08cca12465c3b4cc41d79b324158aec5cd60f5186ddbacaec8971230"},"f301739721d050f29a84d549e310e42afbe74081344980b8a1800ca9476162bf",{"version":"669e854108126d21b42e82eba1491ead7a1a603348d2dc2e0e5c2d7d093d6617","signature":"53750618554972cd258a0778fa74b8d8bf9500fab2a37f1fc5e9949c6adb134c"},{"version":"0c4f67ad7a5fb2d0131b4d107a692386688e721b02c2ef65b9b1ecdf8161402c","signature":"477379a5cf35844f64189f05e863547264bde7c86d928c370c8ebc204132187c"},"ee0b61842b96bff58ea91218a156312da366c7ebbe5044581217993474852a36",{"version":"df55c0a788619ea883bff49d77b617a6493c62e33218905bd9c3d54794562357","signature":"866d2b44f0da6862470305e81046aa6e7149a58dc19b03526f494a03f7a1a00d"},{"version":"0fc07adb0086e8e8feb2a5a716e50ee0d9c4541c35b3e843fe37f5368f2edc03","signature":"7d5af243485a9e6328564a74eb23482d3c876a3c4cc888e0aaef1a4740ba205a"},{"version":"cceb0eade9c8ca70d6472cc0408f35bc79408285b3c4122f5649b1a76707066b","signature":"6dd50d5d3e9baf88c04c4d718c0d44cd8fbdca4ffabc3f3762cab7ccd34de210"},"a5037ce6e0644ff3f4968f0ecf4be1b3c78a9b1dd62f30d4e701cde4c7b5ea9f",{"version":"c1cc5826c1f71f931e94e34dc56f0de322b7e828ce0a2ea9dc9e65ef4d805efb","signature":"d099c86e4fcfa677b2fc45ef0d7a95e8fcbff4ce131f6ae5ea430224a16b03e9"},{"version":"08dfda58011a22121283fd9097377aa07f76be2e050c4ff455e8c67aef1c62f1","signature":"eed751dcf7d7a55eae98bcd10dd1634e42fdcb165f0e4dc1b493afe321d64097"},{"version":"165bdae8db3f9ebb2a214a9bae1957c73fc9d77bcf57346a8cc4b455154064a1","signature":"1ca9d4a75a87baf939b6a479b7bcd5a2792bc87875c52fc34e20889997436635"},{"version":"785ee36dd87f0c336aa5173f02a39ac2cc74b56df8939be9204c5979624926b0","signature":"93b8cea3a71d6ad754b44e599c3cb669ef181a37af871c206bab078ae4918ebf"},{"version":"9d44159939ba8ef032edca94b4ad3b14067adffffe5eb1ba35f5a8b63cd41aea","signature":"57270b3a6028d695eb8047f0283e0f40624d69b2eda03ceb72e9b2159cd30cdf"},{"version":"763b9b49066c955aee144264afdceacf143d825eaa01e68bd115234782e10eac","signature":"167158b086edb05e178474ed0c38aa5a8e34ecac83ebd9842df6867e336ee435"},{"version":"8b6e91a733879f3687ba03eafe9bac489dae55a1976e39ca54f0564eaaeb5552","signature":"39bb3e09f7152e59a218f8eac2260483ead0e0436e3499dfd79cf4936a2cbdda"},"daa11741aecc1d837664b378514257edd7e17daf173739a01bec28b72d1bfd7f","bda846c239368e8c7a449bbe9ae26906c2e03a991c119e3d9f7114b0db69bb8e",{"version":"718614c896013294fa0de7a3605d799444911af7e134333a9eaaba90c9f0ff80","signature":"3752d2edab77bd1c396b9c9ed6ac520b30b4c582598df4c6652cfda986c8201d"},{"version":"728ddd70e43de10345f9004c7f8ad9d30dcc59f5b29ca3a22963ad4125f27112","signature":"c64c162dac61a7aad0ff3fe139dba8b07f2196e3272d24b93b61a85ac99e776e"},{"version":"ae36e28325da2d1c03ef0895de7329449aa6614a7d37314fbd6026d56155a1a5","signature":"1e5d7ae425d6e9fecb2e750938f49f95bc05924262f444b3224a18c732e5ac1f"},{"version":"0e1c77021e928913e5d7de9f7c502bcb1fc592141e36329d0b329334444ea1ea","signature":"46199839734edf0e39717e53717ceed73f97599fde0d5415a515e3f877a0b9c5"},{"version":"4a83c91c55456a5e167c4bc5c015a2107bedcac6f2a6f449744fa301bc16a419","signature":"0154f9a1cf9a1992fb0d165ed4575f36b444276e018a773beb9d93462cfa494c"},{"version":"b4d732e8f0d1f0d52c00161ba2a743df7dca8be79799305a0d12f6d623c62752","signature":"88abd4fa21a51b946f7fc1369ccf22f8f7e1d80453ada7c59ecd9af7371c5ece"},{"version":"60e3b8f209674bdb7911238eb16834b780d1654ca8ed37a58e811027b46793df","signature":"828c6de9c72007a3089ff9b9dec59177e5c5c7014015d081eeff2f33a79678b1"},{"version":"d96c6a9aeec0d005b00fe68fd1f8f12e443c4cc59c0bcfeb4010df0929c80308","signature":"7885f4d59307c95ae739d80e01a399a3cc218c5cfb1e05a9da50560c351ba1f6"},"c0d15854bd743e8219db33c5fd756d6d01aaf8388a9ff8e345e98c4f0557f255",{"version":"53a9f38ead58912e453de10f7a4ad659b4a40d37e2a4d2806858c806001e1d41","signature":"e00ebde1a5c4740cab02ea2be813a15068067b87b33bb00a51e67cd9fb64bcac"},{"version":"0ef8f7309b84fae6d8146a0bb9d7df7edcea12b3e6160ca4dca56b7f6f274a02","signature":"7bfbc92f28d05fbfcc3beffa5a44b6cdbca038c0b8c879b094073d2e605a4537"},{"version":"959e1234539135a97560befaf35575488ae35075c0599961ea2084ace1ea718c","signature":"5eebb468f3bad3b1849e3e29594ef2b3d4b8c03d163ffbdab63e2f0f912335d6"},"3f9653aa367daef33499b26ae5055e6e5fc4d097b63502b324ca5e0f8d52c15a","2c146dcabf7d7b456fe95feeeee4c27a0516512121707e2bd9fac59dc34ecc8a","9aee79c055b4423f7cb5c745c9b0041bd16e5e6a5be9426f634078aeb07f145c",{"version":"a5900c1098c16f18478899b08797e3534c99c706fa29f833eb3adac156086913","signature":"d286da1bf2a8746e62cba92d6519be2d7613eaf851b34ec7d59237aa0dc2016a"},"deac79a2b93daceadb5ceb974e02de70cfab540cdb8261c9aa22cf2ea4d236a1",{"version":"2561becfac266752fdc1b8d05a458df7d1ac57f1239f7e9b8323df12dbdea852","signature":"df0c10b82869089b5e451e7b38f75782ce64f635d12786b1259f8979273a8f90"},{"version":"3b4ac29151ef77e075662f143ea8c82efec626d835f0011e5439509e3e61122e","signature":"9d782638e5eb22f3a4389b2287c510ed5e2ae5e9b21d21d52abda8c8242c9fac"},{"version":"583ca9cefb4e071505ba45d4ddb591e9b4b61605e13bd8df660b2349e1a90f70","signature":"7e230fe6ac5e993594f894edb335b3505c612122274f82a329c805a3a5d99e62"},"538b266b2f094c01a6c3ae3927db50231d23e8ae0be14c2eec5c4d94ca5c5d75","9803c2fce9ba14727526fce8e0135b439c0df9e7af6837cb0c6167356df16c8b","ac3e83486eeeebef796dd7ec2ef4353d3d024ceda78ce2fd8eb68ce6b8c0c542","1b20036b1b11bbda138c7c5a17233783e8a758708201e1601ae724adc9aa1296",{"version":"dd93c70742aa455b9d9fdac14d2e45e52c107f4bd46ff68e54d2ab00c5b5b208","signature":"fb3a16b0bc67492104798914175e95de475c6b7285da56ce811f1963d6b37864"},{"version":"7e0e5a8e7124613f812b78298bc5b1365a5f8c1571cf4e4fc67742ef3f7678f3","signature":"e6588912c51f370e10b393465c6a61a05c1f4265e545c34782072eb9039dc97a"},{"version":"e2369f46bdad851a0be9aafcb6bb59a95fc542c9c3361b12915d92b221296ef5","signature":"6c5acc5707b51209bf9594baed0a41c5a399659bf7e33df43355d2bd4cbc5558"},{"version":"e7e67b217b8af5b9d4818f1b067b831cb97105d21b30605c0ffbf9e44fd40d04","signature":"96d559cba68cd375b8f33d7d99159ab739b793e371b89a475594533d81d0a274"},{"version":"dbbc73010b0c54cdabd547ec196ad7a0e6f8ce7935f76072072411fbfd31d651","signature":"8c537215b75564a44f03431979535c0201dfb4b79ce3c561f8f6144984d1173c"},"224e40202b9e0ca82599a10bc992500d0ed1c06228ee3d1587cc5edbe68983d2","17b05c5486114937ec69df6033b4c6a77db91e91e41bbfbdae14ea3f65a0bc9d","d9ae07ee0aed0711ee1a98f902c1f24171e5c6d6b4f8097667bc4c030bcfd43d",{"version":"23eb01d92413e643b5037b2572617c338537a1796577bc04e7983691db75cc40","signature":"3de6f77eda4a3db3fbf2162d69f965e233bba2110d7ff044709c4830276c02a8"},"f3e92df35454aaa1cb69294c53525649d64bf4b8ae3de7fa9baee5e373826911","b846cd3187f4fa92574194a6887d34b3e765c45165bdae0b6e5b3b99bd56a4ae",{"version":"47bd2d8007b3e2fa0c28a6ba4b702c10929265dec691c0ff77f16e6f6fe2f000","signature":"e128920048a26d9babf545f1ac8a13de8b1ec95139e785d575e17fdd198df57f"},{"version":"ef043880f17695ae530d723e7059241016bab15e6857a19e6e8e55c6bf7d19e3","signature":"17927d79ec4e7f35bede69933657a50934d2b1d63b0dcf2f63794cd506632aa4"},{"version":"0fb0b0064d25590a79d15dbd91345fed84fc5b9c1dde02494c3d847ba494e043","signature":"38425c00861f2ed7634258d82a13499be0dbbd41011698b6411dd2b795cfe9cc"},{"version":"76e5f0cc7ad873f950dd52b30e6c6c207dc2830e3041db6a05533128ad8e0122","signature":"c1ded715aab735024d3ff042451bd4c2f03af234fc66e3305ada29e00f14b1d9"},"abe6cdc42849a9fc5006c52b46e27ff35872865e65e7e1afe430fa30b5642763","9ddc04cedde691844195f90bc6612c817cfaf9ce8f336d6e925a60f1ea007f1a","23b92d25c2280601b1e6a9136bf093352e486154840e6ceadd479d582ab7f18d","f64305e22ac57ed5fb2aa957d178968df1ef210cb48c794ab7f04d35f1a8bdd8","b27787ca848062323ab270425b7b390c69e67dedbf0c38f3a9f829d299dbc37d",{"version":"0ad0c8074cc66de55b0876142474fec6c2da05b148540560a33498dfab4889a2","signature":"8ce11afaad39ff4015d5b72b25d12e70849fee40b3863ebd47f12d6033469ce0"},{"version":"6f3b81fbf8704fb958207ddbf72232252b7652acaea5ceb0cfe12f32a48c53d6","signature":"0e6fd11f969c048f138ddf1c787f2212be578f58b9b34a999147f0b4c19562e5"},"624b33913c18e5c99bb50163eee867ea1e62cd4c1088ecaa87a8b206b913785e",{"version":"14471dac1fe87490df7f9d04b6a7f38563ba8bbdfb9663ebb5169bbc4335ad61","signature":"eb2ca4b59f24ce870c868f37cca688d8c672c25dde57a3cb182549780b667f7b"},{"version":"c80d697973fa6b228d73f4d3ebe6e69c22d802968bfae1622e6070e06ae48a64","signature":"ab1bb044fb0a26976b1bf7445812f94d9f241459142f7ab696396729fcdbbec4"},{"version":"5532349df1c73dc07484dab4d0951c2f21473e8cc65f9235bb50357ab766457a","signature":"4d14fd3ca580d6b75ff68d055bd459b77354cb9c32f9396a536d7ce19f4260b9"},{"version":"1e1ab0de9bc7b991958b6fa18dcc2282472884c3caadea1ead5c71f484ff079f","signature":"1313147a5d68859b27b47580f819e5bd0ceb9faf3a0c8b5a1688da530f506aa6"},{"version":"e04c3c1ca7c02065079d8421b787b8b301750fd8a427ee45e7466b744b4e92e8","signature":"00a5d6c26d3cc78bc168a6043994edc9fedbf0ca9e5b3c0beb04762f37084eac"},{"version":"404e5fda38e2045c4dae9d911ee01f3e76f6d9a632cc9c5b1c8683b5349b4a18","signature":"1bf7ab5aa205d1f1afaab9f7a9aa6bb1ca2d3b9b4694cbec95850a139a4e0714"},{"version":"634c6614e17b81d8012edf7bc517c9011a1f878e4f8e1ff32b9d7ec2cf104c01","signature":"ff92551e02d26b6c9460f40887176214dc8688a82aa9733dc72343636ee43016"},{"version":"8d0e1ec3c4552185f64910bfb8bc53920404cd221685493ed6f11f0fe10d8ee7","signature":"ab2c02e4253f3fcca16e2485064122d807bd4b999b849c12784806c3e73cbead"},{"version":"5d25d19566be288a3c975855548f91840f12695ebda4bf6bb8b4f2dc1894e8ab","signature":"138aa942a38403c1c39a4089f76ce8d74b553c7dcf89b8b3fb4856f515bf46dd"},{"version":"74c2fd11630e2ec6d4a967ae39d485f06c119295bd422fdc1cf0e9cbcd43e874","signature":"c89bf1b9df675a3eea8f6b5a2dd0720a6274382301081acb53f74d1424e68db0"},{"version":"737cdc2213183d18a22c019a40d812848f4e3d268f790da2e4e4bf3be1c4b632","signature":"e4804483dbff1d0dec0b8050e399bdb8d2512d97a7c9319a11cd87366b309f5e"},{"version":"0fa3c6d821a4589c1c47cc66e8473233bf7733262bb594cd390887974185349a","signature":"0980d32396b46bab60380d106a59fbbbbe7f3ab24f5609b59806ed6544ebfe38"},{"version":"96bf849ddaca3e9364ca8684f614dc38ecc4b7a704de65b674a03e6525dc1867","signature":"4e2c5d7f734294f3f0c35070879a96de86032b1b4cc5aaeb436a3ebe1993e261"},{"version":"4f4ccf338caf93cefbb182f63f00b6925632640c17c11a9b2aef7a13255960ce","signature":"7b2c66e4419c229fb05d241345a53fe18393d5b4eeafafea1ecea1a620433be0"},{"version":"c31a932f2822a98a59c9c889bd8d32e9729b492d1eb94b9b3835073ac5e4a602","signature":"9655b94234e1f65b65ae3b72093d464327f655bcd0e5c70215e2eb1cfa46832f"},{"version":"27d9403f2e8d487926fa61e374edd0750ed86367b8515a76238a6eaa7e7f8c08","signature":"fe42c94af59e5f2ecc0f3178ec0339cbc7ebef502e5055df494b79660685e43b"},{"version":"91dc8598533149bf752a57e7a9a8edb18a57866c66689bb6cde9214ebf823ff9","signature":"88cf76589b4e88694883735a725b16efe497b013e0b73f34d3641e46e4c2e503"},{"version":"73191059c737bde0ffef1fd0cb046932af6133136297bdb9fe26be4c3e006886","signature":"208eeef787f9038a7a0caeaa5c3128989d814b3900c302a49e6117046e625692"},{"version":"687cdc39b829c0df1d6a6bca9bf55aa8f03f398deed8dcb866eee917a9e37049","signature":"8c31d45801c74757da7b2d63243b36f81b74460e082e3d5bbe666010e97d9d4e"},{"version":"261b7b6b0dd3f6e7a7ce522996f7b9107ef0780693a76776d247e0798c9e0fff","signature":"942918474d5d34ab2da3f3db2f93e939eb4a02f507d0c60386ed4ff31830f58c"},{"version":"283eaacd975126b013f0bef494dbfe647f9484a1ed6422e206f1c7df7e1b9585","signature":"387626bf078b93db53376ce6fca1fa2891546578dff3fea5901b6612d3eb24a2"},{"version":"04828eb6929b32edb3277cc4eeb861df4de8ef3941c3cd185b04f048719d6243","signature":"b746ab85c941658fc16bd613c67c7674fb8b37fe1c938d4e49c079bb3ee7e404"},{"version":"52bc4e661c93cea47f698b9aa50197e702ec83c7055f362b44450edbbb27be9f","signature":"ffcf60f1d27122b40917167fa18d30c16da3939bb8dfeff1f7fddd4cac284649"},{"version":"7da46210e2d355b881f98aac40d6857a12889a77021cc30ed56b69d14005637d","signature":"cbacfc80589a49203c58943d032af9344caf83c74f7ab8b4fa38a4be29294a19"},{"version":"d42f44ea036dcdd5770c9e5805d0c0b946cbd8c3232730152aff54b5231857dc","signature":"4651ade16932e48023149580fa56d13bcc06fcc7f8eb0be3a658188f66fca51f"},{"version":"20d4b5159aad7f301845342edae5e1b18d3f1f145c5bfc6743ab9314e4996588","signature":"8a133165c94e27cb8ee36aecec60c20df1033aaf78230d3e1e7a4d22a1e7d0d1"},{"version":"ea66d8892c5690a3c92d691c8f0469a339afcaa5fa844a5b1fdce76274aa6d95","signature":"cd5aaa4f35129276ac904418bf1494b0859af561c428999c0d11db09ed020d16"},{"version":"df17cbf18bde4e128ab7f057a1cff4f0e1cabcbf3b121ccc8f64da196e648fd8","signature":"a96a82d6dc04c14ffe6ddcd363f68d4f10b1822cc09f69b1f9a657f0ee9874bc"},{"version":"851f8f6b020d057f0d63b86bdaec7da3e037a0cf3b772fcf5d3b4ff69a25da2b","signature":"591623d278a80ebe089d99cfc542876428b6bd02a41440ac27e4e1dc211ab1de"},{"version":"a3c7b37e37e82a6c7526a79d4a72eafa05f6a94c617fe59a40e6fdea5d98ec11","signature":"8ca385bf39ae472e4f5f7de0fdc4e770266f87194f2de77f3e19c25ede167788"},{"version":"f1128bcc97945cf11c8352c5575112253fc54e22c94301e000c72525ca7a821b","signature":"30e24b7e264663ef3fed47072d24ab462dabd8aef8dc25b962756b92c54b4539"},{"version":"0e6d1582f5ec9f19c9f6b4fc0d33126c331098f5ceece4305a2a3731a90e812a","signature":"9561e693f194052edbd071dee76e268630c200940db8f41d951f538ae4581922"},{"version":"38f43bfbee770d9efcb68949852454686cd8baafd53b19c3755617b77d446dba","signature":"5da636eae576e1d85a5e790a73244760e3379c20c8fc36fd3dca86954ebe9acb"},{"version":"59d5659df9cda5cc3169fc70296e4f40dd6a1ce33e3c748e9bd513830c44013b","signature":"50c60200afc94455e7d94bafe5b84d26e1218c0c93f706902b1027f45e8f9cb4"},{"version":"5003385fda69ce38bfa9364c5cf15141c79b485bd5ec60f6ba18bf016382b06d","signature":"6abf4c03e0baaffbd57c44aac848579da997ee8df51ba2dd8f9b3155f03f186b"},{"version":"c3c2690273fbecd23ad57e04e6782faa20533be0189dbe3d62e7b5b6b3056098","signature":"af3ce3e4ddb3ff17eb5d736ce1562b57da9ee6d67cbbdc35ab8616218eda5b9f"},{"version":"aad6cbc98ccccf71f75aaad7fcae522b75b427a43a91d78c90624b5a76b764b2","signature":"5ec45777414f936274481810c8b3cece0d6cbeb9c5150ff8def2e1f027b40964"},{"version":"917b538e045522e24dcdd17a9e2f274f646ef40144dc9dfcbc5b4a669dc92fc9","signature":"61f2f78ef2e94af3e8c2db0ac6300fce02dffdb09b5ffdb7e546e2183430af28"},{"version":"0bbfe8e014ba918658fae48cd3f05677490d39a5935500cbe7f9529dd720d121","signature":"e004d0a65c80addb4d2d73ba95eb6f2f815613d31448e9c8ec11868354a45c8b"},{"version":"4b36a4c2c4968db28b73f6f7ad2712db8022fd6c585afebaff0ffe8864071ef7","signature":"07b8331c6ed4abfdbea395ef51d17af68bc43af65edecc481391f5fd614a2ac2"},{"version":"7def0a70221fc3b031dfcf233650a80c041251701433707687023995baee3d79","signature":"b70042dc1c2842c4751f5b38898bd91b30e1322b57cb14226a47a6982e697eba"},{"version":"d1b1a9a5e7d3c740af8c97bbe85a02175bed002010d28b499a5dc3b5c0acf037","signature":"1b4a2666c62bc94be7d7e895cadf6b436892ec4e36012f73cf7d08581617edce"},{"version":"9ffea69fe2498f62a5274ec523fdaf6f4ceea4b500d62e8d3d2909e968742333","signature":"049f913723ed06832b662d9ef7fb200b86dd38bfaebb7c3f6d75b033af9acb72"},{"version":"18830da0127dfb4e77f094182479672cbd40d186e5006c81efbf09fbdca0e71e","signature":"3b16fb538e9dd4d5b0016e7ea154a50c4a86718556cb8a4bb78ee35f1c2bc386"},{"version":"d24b80a59bbc04e2b03f707eddaf0c605d7632ae1be08061b932ec4143f2bf4f","signature":"84881d555a6025570265face1d3f4621fb859672caccf10485161d473adb8e64"},"fd02386c1ea0d3438c665d5cad7378bd7b55175c55b36792bac077bf4bdce55e","3f00fedb75412ef4c0d166e35a72f2a382641c7ca506f77351b878449889662e","4fcb15670ade57aed2aba0059151a409c7b09183163cc20b875fd6ace91f9b20",{"version":"fee612a2b50681472d6fde8c312356619edbd6460bfaf7dff8abfcb798e6d3a3","signature":"4df91130ace34a640c03ff72595728f787f54ed04c7a23dd1fcffd182fab1599"},{"version":"44ebfd6e34d25ceddb44d1a0f0f18efc35df40c4cba9d542ff37fc6b439b0bf0","signature":"fefb45b0b3dd3515fe356b30343754902f29a158eb01aa9b67749ea4ba5fccbe"},"594d04fe27666c2f9184e0ce4562a615a8ecac377231c5c01e4bb2900a6217c0",{"version":"3bbfe8e9f2a52e0869c1a82da8f52cf6055c89a5e86dc277413e98588b1ad981","signature":"c5f4a8411ca89c36bc4dc6797cf0af91adde8a7d4f9bb68cc7ca2952f003b1ee"},"8364d9b0de4956f706f3f056cb67117e601c27653ca8828f04e18bd015e7a5ce",{"version":"2d5366f1be2a660ab72a084bd68ba257cb4fd5d25a716c273551b9ba8f1aa8d6","signature":"26126b18f32bd2088ba75b0d2227a7136dbca231f6fe816574f100965b70fd32"},{"version":"0c7228d6a87e6493b025bc76e92e1eb5cec58fedcb8b75a61ab43e8cde0abfd4","signature":"56f9ade5d43307fbb782b50bd168fc0eb42916d64852d0d94f7fcf35a94bac19"},{"version":"b130f4b622720cc34de5a2b6e91adb273850f3f8cd75b5b14fb81f0000ec66ce","signature":"ae859b9664f6b5418b146224d7e582b43b2185d1e47ba5ffe7cac5ebe43e9902","affectsGlobalScope":true},"e34c16415e480c9e95df35c695bc7b7d10649644cc257a6a1fb1dc725a52980a","335d44f2925bdefa37322f627b9405f2199b3c340478a3339042295b3c6e06b3","7a5bc981cbf4a73ac278e69f01102291aad486e5334650863fc56a5a9d49995a",{"version":"d971712130105e50ea375e29133e3ba2abb454ee351c878c45bbbf87bf000eb1","signature":"67617af2a1f74a0025cdeb24b2866a711cb55d7687ba4283ad8200b16874708e"},{"version":"b28d351d20b978642505976198ed4e6636404f778a1d269ab2b317004bbe33a2","signature":"c13b2110761d4b53985c68d6ba26a1da06128a6f6581886604433b6d8c219d70"},{"version":"0685ed0bbab2b791fa6f7307f4a23c6d5462a74d85b3d0ea737c1146b7c8cf6d","signature":"cedc462eda99acf01b2476377eaa8485bf53b290d1408e4616532a6f486adae1"},{"version":"e98d5cb53c2f27d9480f601e46424d0aad2425c1bab8db834152e9e9d9e7ff53","signature":"7fe040f9f107cfe333779d7cfbf5f0efe15cdfdb1b10ecc2f57ccdd6526cda23"},{"version":"744a19adf2ea5f2028f612ff34651d9747d2b3769163918640cc68a36997fa43","signature":"0d1256fbaafe18ef8895d3d8c6be4be998483bcb02811cf369d12540e47db57b"},{"version":"6ad05db84e7e88da70541f400bac001e5a05116e1d110a0b32e4147b90c00f0b","signature":"879cc3846bd5baa610ff23e3d5c65f51b8298fc952824805c883a42d5e3b81e6"},{"version":"5b4e8e669748f9448ff48334f29717f59b20fb14600b32b378574b208127c429","signature":"3e360a0a3b13dc20c95d0d11bb61c996236da6fbd9c93962cdf637798d8424f8"},{"version":"df2374dadb67c3c1382ffbe7981cc57cb1f43bfb12519b609faa7b083238489f","signature":"05c583c0e284ef10a6b89657b891a31a13d03350dfdae4d299aef9e90f7e908b"},{"version":"2cad9227532ea9ce3ddb7e0148f227fc78214d3aa81d538deae62cfb6870cfcf","signature":"b5ca447df9d72d99eb5a88d00536f2c1254a9ef73fbef2952981259fa0015055"},{"version":"6651e7c28cb6cb7621b0abb2776153d196f7f11f5f31fcabc4f65bcf88e0647b","signature":"a65d9dce8e21547fa088d6f9050e940836e3670eabdb4467b57cd60f2b31e862"},{"version":"fb69cf329edd8b71ecb10932fd2287a5be312d6b23356ab89c178e8b149ebf85","signature":"90bc3cab2df32494e223de0fc028533a3d10e3752b8c5d68fd88dc9f266db72a"},{"version":"b5dc3e062296a6652db91903db3b2c550194413718fe8da82bf2eb1adda7e566","signature":"0d8b2c1f5e79d1dd25ac7a1e9e380c3f71799c257fd744bd6d080aa3ebb0f99a"},{"version":"07ff4f56b8219b8852637964a6b5392678086523f50d4caf4ba1b63f6b9ad4d5","signature":"4910d9d5b9447c7c8e23abaaa55d0deb1c3e08f96fbaca65cefb7e45b40b2010"},{"version":"0367e0e534f46426a954c8e44b2d72c5d2552a8763b3e4f0c7d3728b89dc0ef2","signature":"a86912045f104173c482ab0f6b5256828f01c26aab092329be358bcd1b196a75"},{"version":"68769cf47ca7c7ea82e487989130ae0710b92f792d2e78aa855e4f999f2caacd","signature":"4c79ecf9ba80bc1eb9054e0241a4101b57672b6da1619c4b66313452be5f620f"},{"version":"e57584f1984ac9ae229e963ac1a9ce325b7a6aa4b199158117f20c56d69619b5","signature":"e18e0ca17e5ebdc41faf4304d257a47cfcf65adbe393782a70b8cf8fd88cc2ae","affectsGlobalScope":true},{"version":"d75049d6766781384b7656d9dfe134cee80ce5308802045f6e63a2ee8c40bb2b","signature":"a1eac154e990137fc2ead0fa2efee1b83a23e745918ae70a4356a75a44489265"},{"version":"0ac7347d035f5c1c5e7d0c1c20a052f3871ab116b52a78f01fc7e014384e9405","signature":"abc44776efb7399cfe04a896cba4ae5d5e00507ead2d7275a82bf687d4dde949"},{"version":"a53b2cdb9d9a6522621925fffaa65451544473e0f71085530271be953b8a863a","signature":"7e39a2d7dc2effac52b8d8a8f295038adcbd00b629223a2463c98a2c5e1794f3"},{"version":"0b071aa6e037933603357c4ccdbf408985d17aa22edfbbc4588132bb824ba419","signature":"a202aed7d5869f6abc6fa7d46cc4630759c9dcddea162c0582fad2c6df5e5ab3"},{"version":"b01d2597af5b6a65fb8b29f1a915faf4cc01f871ccfad7c557c46679f6ee5605","signature":"2d651b1427e8a1798086e20dd46590ca291058b1b8f876a44a16f2a89dbb242d"},{"version":"ab5234f5870efeec33fd4fe3ab6f12e6adc0c8cec077b0355cbb0672d20d629f","signature":"4873b19b937d108fea62a63786bd2e536d62c5193bdfd95268fca0572cf441f1"},{"version":"5627d427b2f89561bf8187e9593d70977a79fda6229f9149b195775c8d5cd8cb","signature":"2fb44949494ae575001a95555f4b0eee0f93bb935cd77a97ec57a2fcad1000d0"},{"version":"fd8e94457a9064736f09159969cdb9491aecd754722ea10b2e96891fe584d0e8","signature":"e710eff3e55071d962b6a430bfca5f15ffe96268072c369fab04a9edde9fcc16"},{"version":"00d60c36bae2313fdd53eabb7d3db44a7009ef0818fb0101a9a822e1a48a38df","signature":"f1d6b38227d7babc09975359fc892feb087d173446f4cd8be568278a09ff3474"},{"version":"089a0092f3c97f9a1fffe719da7441fb09f842f6a5c9cddafa0b896ce725e16c","signature":"2e112307417b82f5fe95015381d01b52b1147050cccf15737e785b523d0f764f"},{"version":"bfb0eb127d45c1f621bd07f1f9133c0d037c0905789a88ae934cd4a4357316c8","signature":"0009b7a0b4650d743209a134777aa1de10da98402ee1f8d9a3e6bf7b4ec32432"},{"version":"b24893fe991a85062bcbc9ea7fc026565dd4a3ab3e0f8e9d05580d2d4aa78035","signature":"15a313aa5ed968c83b1d51c92626ebeb6836a58bf6dd52b3547c1b7542ac7343"},{"version":"02a9445cbfecaadcdf4452af611b0b3be0888e1f5526bf22f3fbbbd447df2046","signature":"b93d79f9d63b2845be22ef9551bfdf98d0f4d567c5f2930cddae90142226e3f2"},{"version":"a964190161ecac8a040195c30c208c13f562d2c2c3786fb22d028aa8f255cec8","signature":"11df73b5cc9f10f099a4d9259964f2fb8435b27b277839069e649114a628dd4b"},{"version":"4d67dcd2efc85a9f0428770f7576b8d6c14711b856c330974385b54964e7fe0a","signature":"76419b412a40aa1a608581700c7a7d33ff3a520faefe24401c17a80da17aa61f"},{"version":"c019cf6b99c9fe3719d895425076ed2b60a7f73874ef739d2b1f893a1d8db364","signature":"5db5ce0e47b147d0d89520281fe0c6f99931657854a9d44adac543bcd6294606"},{"version":"5fec278a9813efafc7c131275666b2892b361d41426aa3f6120eb42c73c73aba","signature":"7b37fd6ac4506801740abf6650f7e4948a09604e8266b145be0184fd4e9bd402"},{"version":"7d1e7e398d7f0db72159e6ab30ac90987d3a3a65692ef31ddeec8be5d3032fad","signature":"72b5434253755d39e35cb49dc120c50c4d58dbaa7b324136ee880132131c678a"},{"version":"137885992f42d6161cc520b03c8aaaefa6f1ec9fc528e31a87a39be2cb71399e","signature":"13f6a4980262a8152d36c9f1c6e4b2fe44fc11fa9c96d61459e5c9d3ec4c2870"},{"version":"fc065fc3163aaa8b38604299aafaeb6a2fac8ab5418ccdb7568d97475ea94ec5","signature":"5458d747121f9cd9d916900340cbcfc5b134a961bced50961f4e936c46e9ed2c"},{"version":"318839aa6fbb62661b032dba06f2008764dd07c3c40f98c065bed448280aeabb","signature":"6960bba0334f7416d94a5cf7e05ea99dceac5457165a2aedba3a4c0c7d92257d"},{"version":"9bc449d85c93bc19f216eacdf883be3b8ac6e8424537a7e253ba5ec2b93ec9df","signature":"c9ada50699ee1de14136bcc2db45e22230f8fa2913d439777c3200cec6d55fdc"},{"version":"695598d948b78f79d1ed675d244693f58631fde6352b4ebca656780aa6c96358","signature":"f0727b8b648eca20349fe089a119e8421728b9dda3a74dcfb0e0cc12e24fbd19"},{"version":"f96ebb2db26ad60b0a73557db918d6aa79c87e8275b12532df03d2890aafe1ba","signature":"d275a9fddba3e7e8c05d3a663c09691361db0088cd0010d93fb1d8e4fd7e6814"},{"version":"1d6335631896f1a8266fc850881f03587b5b08eec031d5debc3f4edf97b1bfe5","signature":"af6d4076c422c1f66faf10038ea6ed3bc988ff19d447841045f6d8eb923ca440"},"561100fb40049bc0fa70465955908d0d4322ea2511e800b3aed4a29181dd825f",{"version":"c8cbd10810875949b4f477c850adb8e48b07c4c37ae57a91e0256fb96203784a","signature":"7e3d47141d698c20287ff9bbe6fee2b3d5c39db7178741b16ee52f106b981909"},{"version":"6a8698e9a6749d5a6b9053b918e0a9347f13c711bf155119f9f2fa7efb41ed91","signature":"733199d11d5a71762a5baa35efee71d6e33011f3ae360e9c0559df089ce86153"},{"version":"8b066b9722e974a874cfbf11c4ee500e67c23019c190e7e8cec8c3058cea44c1","signature":"800b8ed8b1e9da41a51d47b71eb3c14fc6ade05ab2af37e771254c9e38325797"},{"version":"3d2cf5b989c5a05b0c5f93879d224c5e8d1ac3e1d489b706682bcb8436ea8e2a","signature":"2f7794a05370a6fd4bc3c6ad540c164eb27f155d4b1345b8aed2dc5e46176969"},{"version":"12630837f353143984b07d3f1592e402265eda44c34d15cbd56c996b36bc7be0","signature":"2015aa7d5b59da57d6595396b8ae771966c79da7e3fa2508488feeaf042eca2e"},"57c7d26fd9aa871f712f354196056b7415b2e0b0d5bc9f693ac2f7da90fc34af","16fd406dc18f5b1f7a25cd0b0a4e91a6e677bba7bb97210c61791010d9904c4c","1e7ac08e29dbf22553ee28c35d4c4c741bec63db368cfb466c5e7ffcb81ab788",{"version":"b18561bf33c4713072f9287dcd31128ae2e92171f65ea09429cede538213e8e8","signature":"bf1fd7525479f198099a970e36e3b40029ca3695e11bc57aed03a6ff8a4409d3"},{"version":"eef791e45d669805b2c6c67e123f132c1c76625738a7717d70f1fce8c353fb9f","signature":"2a48c42ad2f6237fa6acbdf2a3d1cd09ff2b645c2c8f0b00559269ccb5fb9ad4"},"8efe9e77046778c7f14efb89f5422fda5c673dd73e445ae73eb2d805262de4a4","cbede5144bc091b6e34611936273d79b77638a92c36903f3bb29cf3891724750",{"version":"fb65224e2be6f8559c45f152428a08ccfdeff6d12d44b881d7187d97f28f6476","signature":"f8d8c705d6a4ebc278ab0b1a135c69fabd6c103eaf71ab3f832167bb36b71b31"},{"version":"11d250cc866c7f8549472b373f4be683e0c586d4df5908dffb529e04269f6457","signature":"cc51d7274694d5ee5f7854833119c36489dd2ac7e16745a0e4248dcdf45c6546"},"ab06b5c29d7df2f45013ebc685e4d04ea5abe1c915390675236ea896bd0fa2c6","c5a204aff8cbb133c6319c0dfdd19964e55be3ac16f257bc7e567d94e7491d35","77a9ac736c708bcfffd81d7217232320693b4fcaaf5f3ed30478b7156d9597a1",{"version":"dc0a96a9f77fc748da6e021506855963d53f4104e1c6c98a14809e11b904214f","signature":"d124c72b8aab74d912642177ee91d8fbf3d11196857301c450925856ae18bdaa"},{"version":"ff00e1edcbb028ef4891176c4bf281b487141392be24fc1245371bdbe91ddabf","signature":"045a949f32efb203700ed9a4654b880eb3b3dc7c006feefac85143fd8355b21b"},{"version":"f218010cc5620ea7515b83f079b488f1c7e3dc34d53431a8c7a5008d11e95eba","signature":"56ae924976695fea6e3b8d6143370bc4399e16d73a2cc0fa92dec30771af1597"},"e31341df456b73602355da4862e474715e03cb13f8c7272f901bdc7634130b15","906a8dc0ae19ae9070e38da9e6b19b18da06a5326d29846224f8681689cfd075",{"version":"3f5a711ec09de6eff2c69c60950ad0c6d2b6821d8be0cf41796641f59d9003e5","signature":"c68fb5e145360900a73d2c5ef962aef012ac67923bac8bbbb18b8f1016ccdb9a"},{"version":"16809a4660eaf4a9ec3ca1d8efee144bdc4797d0a0b8a4e58004da3dd63ac258","signature":"df982fd047bb31a4476e028f4408042247d4974dab452ab463ecd2b8b98191a1"},"0cb4b04e9d7c992f2b0b1d8891761529847f82169181fc2fbaa74dc33c035214","307d00875ceb87450cfa8c2bc103438e7d1ee3d1fe51027c2b8b424bf766a164",{"version":"abc251b09c3c0303e1acba47cf8a610afea733d8232b3cc07d6acfaa964e2d04","signature":"f478620b6a462ba6f73b762b23feccbe6214ec4a57f22489b84288344ed9fe5d"},{"version":"453ba9f5ed770d2f5345bb2e7d9b95b62940418757f5bb7a6c0eda3568e52729","signature":"1538efa711b640039c0b2dd51c649556cce7bf6c0b2c17322e77c05d81a3732a"},"0df5a97d2567b8302c0c9aa887a6217f411eaad909683520cee75eee4fbc6668","0161370cceb34a2481cd6f9f315308d45231e0d3286ffd4c3f1f23ed645cfa5e","41ad445df8fe78edf131067fce248b2b0bcc63a46b952a27fdc1b01bd75b06b2",{"version":"ca5cd20d8eb16b0363b6ce2de02efc8a70d00c4fc35dbcc36ec90ffdd32d28e1","signature":"b54541a8d2bfd1c44eb19db18e041c3d2161afa2868bb67b07ada6e622210ed0"},{"version":"5d3e683ce0cc29e37b05c965dacbc9105a864eb0a84909a721e8f8967661c0b7","signature":"3bc300f44fbb23a71f4c1b7ac2c20b04e901092375a66a72af3d9577d22ff8e0"},{"version":"b5e7b6eca8181edebbfab50e8cb14e46070243e6a49147b8c19c20ed33175c83","signature":"d77a6195b582d52421e04e05e763bc5e59fc4ff169d5978ad02a7d60aa3a246c"},"a611b939c4951a42f23340d8f66459d5376926d1adc02663e84ad646aa271bac","c79a7ad35926c378b5f67bd9a25161f6c87fe44598d1fdb632c78b74d7ba9878",{"version":"59a5b87080c8125ba33f62514670f5a12ccc32ec0cb102137a6c40131934c527","signature":"6d0eb239b1352ec003d6be41b8c0894e30175cf96c9dd7c964d87be59199103a"},{"version":"6f45fda297fdd50ba7df9ae028e18a5e27bde0b15315998e6e4a6f15ade82094","signature":"96e92a6eec2f7d59b8a92ce96c4bc24df3bd4efc324a3e6cb86e849263ab6882"},{"version":"5e45112df6346893710ea787c131275cb1d370dc1df8a4379d26cbcb444b136b","signature":"782fd1cfe3b028088c5ce69e8874a69da3f338e6e663c645b986e307109f6b53"},"bfd6f27b8e34c25b213f680b7ab3305f8a39d89990d738b962cf8856162c1f99","2b5e9b9650d489c142c7a414cd5d628091669d5541ebb4b4aa8c7d1eedc5a101",{"version":"d12fba3e28ea6940725dc67cf32e46e9829b102fce397ac9017eb518c08148f6","signature":"ef1afef20a5829f934069c34c6aae77d6c8719d621b8bcec42c020386d365185"},{"version":"7835c8937570aa137848383a5c90733b47aaffddebf9f516bdc315216a528b40","signature":"fa16390c8d7304cd4b7d5782eea56bfe01544a0f130a0254cf0a5d923f1d4733"},{"version":"3853ff5328b6084e46bf68be50330c83fac701a9020523185f0e13209f5d8f82","signature":"556a45579ecb437943fba81889bed6601d208e3394b571a13369453e61661bca"},{"version":"8b0cc05ce2fb8d3629cc551dd25025e19478f00bba45a692b16476fdd37d5d65","signature":"cc57e3b6dcdfb9f644555e607bba90584a5a9ce91020d72b808f9eed7bf565df"},{"version":"1c3de7f6f57ff3af8814071e77bf6dee99c867281835d9b95602839a68491ae9","signature":"3a3a1094746425be5014acb5062498121cd1b7724ea745243c4f8ff0ed815ed1"},"41ff283c34adbb5f436fbe98097f44ccaa3975ff0590b804d72c48611c56872f",{"version":"ab9fbd34896f77a5d72bb20d09c3835a0fcb0c6477902ad65214dc44895eca51","signature":"ffb578e718c599e1fc1a60888f3406bbed0ef68bc79a1f1e4e30d132248f4ccb"},"23104359973a5840c52ad4a2799e1122d6b2eef4cd38fa578a84dedeced7e3c2",{"version":"2065397c56154de765dd7b9d50eaf617f1ad1ecf1dd81e545be5fdb08cd23f9d","signature":"6e41e6cbb1736d556ee235ab85bae0c9651717c9aed33375ef6fa96ddad777a5"},{"version":"7b51e7bd667501566f470b59d30c374f8de0efe8703bc7dba7883a9365dde152","signature":"91a277d8fdd4aa8b77f99a6bbeeca4aed73f26a7c564ee64ddf96e76a10f3f73"},{"version":"d6a3a47461cec58de2ab850253f747f34b82509c3cca09f074d64152078393ae","signature":"9eeba6f4b41e6a703f79b04ae7673158957306ce08a35bdadc2a6a4a4036697e"},"299d488c4dd118b1ab850accff80684816687a28672a5a758e2eb154f2f5e7dd",{"version":"cd6ef0c9cbd9800fe497497925965819a5c8b474e78d46ae50100a1dade6b722","signature":"a532891a76def2dc6e882c65ee1eb4d388c06b12bf05af2c643a517020e4d95b"},{"version":"9fb9d297b2fbb82fb5378a3d22898ce4e2bab191f397a2f2517c392949e06d94","signature":"dbb8250dfc6d121858cf744f2b41ae574cade8845680cce3a1d7295a2dbabeb1"},{"version":"1ef1a3fbc54007fcd0376ce0a677b77c851886b60a44eabf14ae8c1b46bf51e7","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},"bb1a711c8342f91ffed4f3b38e17bd69f563820a7b6faeff7d9a790b724d83ad",{"version":"aa8760ab58336e8edb539bfe5689098d354ecff68306b20c12dcf2996f465940","signature":"562dc61e99f40545e0c207136b2bb2a108bca68a6ec62e2ee08297233b277439"},"4f07a6479ed4bd3c307272667e26ca5c34e295e5a9c3c8deecacedda2cfc4005",{"version":"7e04f6ca3f30786f6d01f615c62117f91c65e8b07d1b444df3b29f7b23b45e51","signature":"6577c16830172a6a3d73791a3e56b841006cce026765a1e7afea4cd29b4a7848"},{"version":"e0d1611e44cae90c983b5d38f4ad93b68ccf130bfb2046c1c645388227b0971a","signature":"4ac66662572eabb46d6a9ad02635606d277d0651561ab4315bc4ad0c4a150347"},{"version":"a97b9238bb8ed712aa799730d18aef7c49697f2997efe7928ba8fef1d3df2efa","signature":"8fd5603a4458b8aae79baf274d3314aaa63118c10620b57c52b6853e2e399a60"},{"version":"9c5726411d5de2d5307c03f89a5bcc02b0284627a17a2fdb118df8b0e0e00557","signature":"616bcc683efc3a679a2e4363633041672f5d9060fa30f7c62092dc2b94371bb8"},{"version":"5f3e62899350c09ddca75caacd4e88848b9509fe44a3dfca2e2e84e76d1eccf5","signature":"ff52f59372c5a352a1e236a7596fa302f2601efe9b07f15b89cb3558d0ae0aa3"},{"version":"34707416ed0f6f7060fd3aa5067ab8543db7c119f4e37f1c60ee8d6c5f0b424a","signature":"44f25379af8c74b796b30793e226e7394c12a13d5fc432ff2d9e85382498de7c"},"35503c8854a284b187d86307b3dd0d111386ccc2e90a90e3d8dfaea9f2c1f260",{"version":"1f42c02fb16d84388c95311b64cef7ddfdffa30d2360ca2dcaa86fe9d2d56e96","signature":"77e94dbdfc20467d064e70db799e0ba30bf18461a842a6e0624e46636dca39d6"},"feb5a5a6a7430635c4624bd9f92df13e417f11dd3c94e3b5600c3d028d5ec430",{"version":"aea8a821694b8d215b74a7065a35f5b261d0e18d726f7e2d506e8070efed6511","signature":"2abf1d5907ecd1624b013489cca43193e68aaa68dd5a612e78b6668a90bd9d72"},{"version":"6cd2c1359506e18eb39495ada467105ac0ea81d8267c0bae824ce4d9298221b7","signature":"1241717fff8d3be90fab3207a7deb5ede67ca8c6b875375147561eb0a9342fd2"},{"version":"fd7a6352ba3e9119674072bff37e1fe4333c3dd1bf73e71d903e0b52a4a479cb","signature":"2b6be0bc705ded49c0799a4fefba78bf474b08b569bb4a610b2abd2e55d5184d"},{"version":"4f24468bbf2e0967a7124180c9848ef0ce1fa8d32152fe4559b8187cde2b251a","signature":"8d6ba569586fc17d44d7d79bfb112fb95bd274722ffe5653a15f8464e469c3d0"},{"version":"a9b10dc7327829d7a94982aaf32cedcbe5fbb5c96a59212de8d1ae775a1ea0f0","affectsGlobalScope":true},"0e807ffb23dae46dfa44f1c8975975c8c32d86d146a80f6fa284efaaf6c85028",{"version":"2583382b200d5e3c647bb6b74fda24af4d0d1d933215888a3fe2aa5a689004c2","signature":"5fee6906fac3674ac2a0d8f3ba6feb42b1a75c8bf3b1f859f5acd83da306b17f"},{"version":"44c27f623dafcba3a255c828dd0ae792f931a2e08756aab292c71c8f6caed4e0","signature":"668a2f9750cce08a3a6504986b0e190052307c676caaf8e7c7095475ecd7d6a9"},{"version":"d02f0cc7d0b8b5334f1588d29954128c6ffd51a12197f3cc1174fc28fb4942d6","signature":"f6c2ed60799a0b3468eb5f8d12083cea2f9d6ba6dc0dbc930babd062b15fca9d"},{"version":"1cd170fd0e84f6af8302b3fd24a0745932ff5dc3efa821ecdb295c85671414c4","signature":"2acb6666c4a83f647512e5b013a6f4656d4282a9661c3d12b5b80609d0342dc8"},"9ea2ee9766b84101d84c0e649a06ec277d0a8876ccd4c23a4c48feee73fe4f48",{"version":"24516fc4e08488bd01e53d1e0c6712cb7b392d7e0a144d6affe75f5f3c63abe3","signature":"6afe1fddd5cd31eaa8e3af6a8369a7da853f9b729cdd409743eb162ef282c2ac"},{"version":"1f1df42850b729b92d17dd6f7f13fcbf184fadadb920227f8658544cba67438d","signature":"415e43e6d3ce29214230d64f49ec6a03e18f43f22bec0b3d38cdecd95a1ee44c"},{"version":"af7f532280bd7ed467a30d92212cab65d4e24369b342f5c57446d5b304bf118e","signature":"04bcd1a01f45e63c7ef75d909dc182543c305978a156db1600d33b0e4131bba8"},{"version":"576347c85678822f773a9384fc4a0e8a31c3bd80c94a8e7ebaffeb1b7893b6d0","signature":"4f91711dd0c45f8d3d7b2f020143a1403e92afacbd9481e16780ac067ebc1ec0"},{"version":"d37ce88122f619870802e63afc912f95741a5e55218ed7a157cc076a1507e050","signature":"cb7bed8c399b061af9d06da22edf90318b8fa64f81feaacf35f7d78cec30363b"},{"version":"06192af3b182223f431baf55082b83988ae57fe048fc7fcd8ce0faf4ee281819","signature":"623e60be4db694e883d126fbfd114a8b6b71b78520185b5241d754fe7c2529bb"},{"version":"3e0f25d1e33675f1f94a94e09af775a2c996c8d3fe0c2082e66490c9ccae4fa1","signature":"e0c2f048d07caa4d47f77d95f39c955aa2f12695698a54b64aca2a6b009d1159"},{"version":"8a95ca87c437ca55a5f5010a30ef7fb799e1e2701ee09474e7330fce91b646f4","signature":"76bc409f465f6515528490fa8b55a79578f8301fec54ea9b873b6b8da5f742a9","affectsGlobalScope":true},{"version":"364b80aac0b98572485715c7a8bff1a211d16471779f7fadd80c9b4efb4c2eb8","signature":"86f3d4b771ef431610c5de44d3167b15e039b439a1c3f58bb64ea99ee8a16d12"},{"version":"1269f1f55697d48cc89d69cb2c4eb6cc00f348abbafbb120010b62c6d69e6ec5","signature":"72aebf0876139b81b7782c2033b831012643c23de1db49c074fecb24ef8c832e","affectsGlobalScope":true},{"version":"02f514c763adecd9a467954f3e6c6518aecde86290a1af374729fcd2148605d6","signature":"49db9bad43085bb6b019a6ecdcae7d0fb2f9b8641c55c2bf0309926c2534eba2","affectsGlobalScope":true},{"version":"28e201fa826b9258ec82661b9c43db85536e5bdcec6511b0b13d735a83e232ee","signature":"d082843e752f6b001284c241c1c724d36ead580945d63686e6794615f2c17c94"},{"version":"1a8bac515fb011296d674c11c5e09482875f7ac5974c856f31a9b2e09ee8ef33","signature":"18239eac524226f89b850f73b658a7ecf61b4b7df987b21785c13d60084b062f"},{"version":"aacd69af49b7c74a27c5c1a56d71ed5144224c7d52ffa3a666319035209df130","signature":"52d032fa211f6ce650dc3e8acc59e2b3c1e62407d37b9620a5ea05e76ff9b198"},{"version":"4a840056c659b235b81336e2d4f4d1f74a13ec631b9e115f50da7e58d5e72dda","signature":"37c91c37b7369945088e73519e3620a0c58eb337d1dc3af6be3f62a3f5702e11"},{"version":"bad7251edf55d77722df6eaeac0cf676724c7debc663b4578b7ed14c4df23fe4","signature":"3686b3fd4660a814a9f13d05adf9b022a9a36b3ee98af5f7724ef2ad98036ce0"},{"version":"225437816014152677926df72d3d714a2fa6e42dba124c8f0496ed3b3ac2bb34","signature":"2e8d97fdd6f456b42f2f358212211481f3f1558fc8845c2c0e72fa6b58af248c"},{"version":"518ac83c13ac71a05030f95b4463faab75ef4641f49bb35595d44b4ac7d00b08","signature":"3095916e4e45bc166da60c7100eb10eadc939c3c3b5900b0669c0954b7378aed"},{"version":"5f67004a28be11e631d1871121718551e841bdbf0611a0f2c7df3f4eee9cf5dd","signature":"a9f77f1221823c74961206286a64f03a23ae761548af04056215697ba03b4b25"},{"version":"a85ee4793366c265d66648fd0ff9489b6d48c52bfb1baa404e7d3c1180c3c012","signature":"69491c436981a0bf54ddd62c814e8f0fb8f79eb4b1a772a76e202891ab9b070d"},{"version":"dfdd80ecd867e3e091766e47bfa4057aa992d3525662aef3b11199bd7065d929","signature":"fa837926ac880ed0b68232d9ec84db5f1f18ff219498631afa8b68e8602648e7"},{"version":"e3b1ca9d68726c37f1c1ee00541ca04abddcf8b566e09c1dd5062f98307c386b","signature":"f1068bcefc61a52c1ebc0ac7a302bb027bdcb0f27f99e18bb3623118b88aa283"},{"version":"9f93a37b76e9f84712849cd33c761dc142b79693557f5a0dffc9544e44364087","signature":"fd7d8d44a85dcdafa6bd3d753beb969bdda8dfa5d73f9cb07a31c0cd679061b5"},{"version":"3c48387785008bbaf0dd1e337df2aba7dcfba493ad5dafef18a30c6937993bf5","signature":"346128a1c34052ca1814aff294caf4c16d28f803daaf76db7d6eb94eb65da3d8"},{"version":"3968bd387cb1941cb960139d60552080a29df9cd149424763e2e295f7b80fbf7","signature":"782423dce8351af50f3e1b44f6eaae52202b5972024ddb2f5e1735a2eb69269c"},{"version":"9575e0da69f9a69a8d9a231ce278a223d9abc23867980df391f07659fd81f09d","signature":"7ef2ab0cbc91135355376f98b2afeb530fa09698608583e17c7a000078847a5b"},{"version":"a08142d515aa86ae956aee3798868b30d8c304f1070d2b1040187b07a81046ca","signature":"42c1d7503fd6e65d221e80d96724f3e74ca15c86a27ae71e50f1aeab4055a39e"},{"version":"f4d9f744a868b68e3de9dd8cba3eed90ae69d1f3af69f71c6ba20dec5ae2e4b3","signature":"add6be62fe8de39bd6013cb3f4cebf1bf43439b88bbed987f194b8af5307a58a"},{"version":"030b2575ca69fcb58de09fbede4c3c6f46b3398318ce74c0fe80f2273459006a","signature":"bdc9d5766f72570f50e67e420533629519a4aa95a544d46c17a31153205acd9f"},"eba110d8e5721254ef70aa6bfb2f38bd95bb9d7d9bf5a530bb20c1665e0e403a",{"version":"f676a60e988d68f6283085dd6bcb7b02e2ccddeaa5547800d35304417289758a","signature":"974568879cda243b1a6becc572ac80cd56326552fa00c95c178c86c99dfa7eea"},{"version":"59f3ea7a00837276395e4f2bf5796e1aa06869a740968cc9d595e7b8d15c2dd0","signature":"3935f5a0924d4a43aeb0e778496313c34f9764c8faac67ec3a6fc06eec9f9b8a"},{"version":"a6ca92bc973f63a57638b760d679629a2d0eb68d28bde636c7fc11c955d753ad","signature":"4981bbf6307d529aa7050b4822cc227d2ebf688d3fb91201e6023ad5705d58b7"},{"version":"15c7366b2b592f9522ff4aea19588ea7daa3fa3c2b02afb2f454f9453102ec1b","signature":"f3096b56e9e0d62590f01f3ea1a72aa9f01712b82a1ef358c087b51ad5be2ffd"},{"version":"edfc04e3a9ca10b3beea4bbb5b41b5fd3964e2047ac5edbb43194c73a344cc00","signature":"180f6107eef3ef5ade9efad99797d5f0a6b6450924dc7a85d876d28e4502d3fa"},{"version":"cabc9abe11ac565eb3cec675ac8af99aed699567dc729e1c441e1ef8d2385b5a","signature":"7af7086028af6dd14b5d95851912e68aceb186f086b3219b625b1396a4228a72"},{"version":"56d1c06a5584ad734b3a3b3b3e776d0fb27675d49ba90e26c67dc1578c72faad","signature":"ae15a5c329f1e07624bb0d7664351b91fd6cd1b326d183f2f67db25d5caaafe5"},{"version":"4a7f85c31d8e9eaf9618766c246531bea372fc8951259cb78001754418b6da1a","signature":"3dd307c649dc675acf58df9a16c5eb752efea45450006874244bce61b8d14502"},{"version":"e6fffe03d5af6493edab04b18adac7b91513bde3e6941e9b7a1814f415ebcb65","signature":"5bc66007fe78df2f2e75402215b3a30c3061c904fcb13a237c2f3f1bd0afa78d"},{"version":"7eee9c98768c80d6a7238f04d9c4130e85383dcb496f433a884d46fb3807a8bc","signature":"ae92cd4543c322f4ca024931686f44c9b36ecffa2ca9f8fc353a11b319e0ec9e"},"08c3abc6e2f6e591b1f52fae2a7396a8a5ab3b691799004b81c8ed4d785abec1",{"version":"98a549cf62b7903de853812c1cae44d19cfeff9b38320da7ee3e64f2b4765796","signature":"cbf3d1f99bfaa2388aa0aeb86343e583a70bec259899863aa945e0c333b1e0bd"},"107de5a476f5dc9764cc495e4b90228420c7ad877d46a631946b1f0d11c959a7","37af6308cce70079f76a45eaf0ebc738c688dfcd398819acf428daf5f9d256d5",{"version":"7c2d52804a466bc23b6ec7dd8e2987b6dfd0e240339d1bbddca90baf0d90bf84","signature":"7d7d740b0fd20992efcdbdf9ca6329a9c580b30b75516e23f711421306afcb56"},"ecf6b1ed7b17b772b8bc11963be2dd2022bedc62bebfbb13f060ecda32f85f04",{"version":"7a4f87b9881a4b4e831e7bf221ec3a5fcbca8c9bba9f794c18d67824aa58b1b7","signature":"084d398b98800291a54df0096b8f9c177de00b1bf927251d835493ad374a91f3"},{"version":"394e3186b57ceba67ba27cef7a4e0f16ceccc3b84a01f554765ff9b9aec136b1","signature":"9e1ca6bd8322b1093036e47ac6733a1f6e9cdff35ca5edfc9806163b22c9f1f5"},{"version":"3256b6ab4b28118b874e15f693b2b14dacb5a4ce8b46a1b0852bd0e9eed333b7","signature":"892e33359d5dc399452e9fec5c53d6048d95b7707798f69038e3ae8a5a25e384"},"7275b18b000344c932cc310e40e72b3bb8228ed8ee4086bc625e2be7de2c7b70",{"version":"e9ff943e6063bd202f781f2a53a170c741ed681d8ae865344bcaf22c63cf53bd","signature":"e8a02ec550327496d2bacf9c28f1afdcd85c4317a6cf8a2e00b11ff4937e1ee0"},{"version":"f0d22ca135577adf63525fcef08130c850fe09c6986406732bfd294a0dd7a92e","signature":"1533f4014f0b5aac13c54c8808fc642a17572369e33207a54a84e79b9a780d5e"},{"version":"710806e7e7be50c55ca169ad9d0bda084756cb327fe1f50d3e1ae5505d6b151d","signature":"fd5acdc4f191b429cb64416e347ea428a81a09655988160589026ee8e807e481"},{"version":"348513c5649e3c3a997b94df176708b1fe4a4c9f3a56428bc50d192b7169a585","signature":"1ee442bd91f5f92cf694aace281f03eda2e7dce54c6053b0a2cf8edcb43e40be"},"37af467f69b80637696dd8dd323265b2b3f27b31942a5b2cb8144ade72f24c8c","e47b0a3714bf207d9c64a0aaf2724ea765a8607bcb46ed4e921e1643c76e88e1",{"version":"83c4d7e592018fe019ad77b1ab5f93dc2f875d2867a8284f688f2914cd92a7c1","signature":"ff80cc328fbe754738fc77d3012c0417c47911022ed63e9c0a65ca97ff1d1d4b"},{"version":"85ba0431efb6c150e926eaab2eff995232149ed53e96e105de2724e16223502c","signature":"310d91068845f16b71fef85f1b573acaef7ffc472a1b3d8ae293e816a433c743"},{"version":"86ca269c02f4ae15893da2c1d63c22ac51e96fbf807c9762fa341f820c4c0232","signature":"1d861f6c2d106b6efd3dae46e53f90477a39d704af7c4a410aa12f3b485934ec"},{"version":"d4e6b9a8d7562cc90084c11fdc7414f161e062fee1d1ca0dd8bcf39542cff0d6","signature":"59baf3633f7dc00e0a260b6e935f58d3326ed5031fff8905771341a0e7c9963c"},{"version":"677cfa00aaf444448064aac1dfed56f60c60b6068e92fea48f33022108a1b943","signature":"2656d790372e1d86b9007bee788ac05947f81bd4e4acc457fe16877875cda1c9"},{"version":"a7011c14ba6b532213cfb52818705774b5395cbc081f7eb940cac76c9d0d8f65","signature":"ef2a049aa1066ba92f22d5ebbe420c06e3f96733d8b9a10d2bd8ff5b9f392d7a"},"6ffa9955352aef224f7ece38701b19d633e4bad1eba8beb550d893ceeebd77d6","47caa28328a9035e72c1dbbe1ed0a5f57932980f60c4b76a476995f314c2566b","762435012383776e8631428e571c61c5c49b38370a234d28c5d992b30e6d2d29","7317cb15d6c35a2e645fdea11db02ca419485a3a10c495484badb97a29599ea8","f609d4433a2f9d56faa92cd56783c90e9cfca8035a357a3f484d0463ccfa3e30",{"version":"482521c7d8be9a9b03ca310c7ec2dd4c7ad01bfecb6d0628315dd97dbe9c3bfd","signature":"313a74046d979b9077eb713c3a40ae207282c87a0b007cfd41102929918a94ec"},"b682e60d281cfae4671d90f43feb7381df9cad36f9fd1624e0f97c4b2399de80",{"version":"77f12585a4d1f5b855e3f066b3ddead3c25d81bd5bd6909994547013ea922963","signature":"cdd9aa0e1fbe0031c8f19964dd1274dca5d8d2f9eedf7290ea78e2b6a8fa3e47"},{"version":"817ee5df113e7096a39419943c9032565da306190cbaff9506d9de0aadbf6324","signature":"9e7b4b7d8acb3ee545c0507a0ea1c7edf819578eebe5c30b3f15bcb0402e7536"},{"version":"3cee6568ad32fb9c257790ff800b3313cf1ba300ee500e5d23abee36d76234f2","signature":"7757ea5fd23aa46649bd3329d0245ad3cdf3aff09c9219727297ea6c340358e8"},"ada87c9cf39006751532cd568215e8aef57bf15670673f4c4f0c974e2a51fc5a","cd81be3a7d5a3b4a247a5744c1c222e31fbfe647f8ec7f7a9cb7c7901d890479",{"version":"313420fb212cace069f329a6acd3a6346fab536cf2f72be6cfbb3079cdb0457b","signature":"9c26c5a1c3cb7371d117c45c1a4b2a177d9e96f98205c459b5065f078a296281"},{"version":"1225e21079fae738d3499bf78e487adceb45591c40dbd4baa8e891cffc56b3b2","signature":"3fcf403c49ef9b92b0b798fdc7ce6d05a224cf63badc7500b5069d27fa3ecf26"},{"version":"ee7a8aca242a95f82785d23ded207150ddf50713aebe4712df4847539107de4d","signature":"a9f6fa282e33b834489b2a1be62a09af571512cca45fab4aa53287990bbd148c"},{"version":"5dabd2d63769d51ef15a96c4f013e61556363ce1d916f16698d5d9bfde3d7d17","signature":"5873e8d3f7ce03b9162a2dd8b1bbf4fc173e9b96ba2b9cddaba3e9a4a0c5a200"},{"version":"3b5f5583d857d079377b3a9e73036ecc7e3582541215738da1c9513866460975","signature":"4dec186d022b0762ae56206724732644902d095252f388c6bd1cb8bdfc8eab31"},"6161a292ecf48ccbfc9d0e731aa24f8ae464df2c600871ce99225e6156297716","036a13093b97ef0df09604b7f8d946772a4ec1e16422957eb35b788a2e76fef8",{"version":"1be0f22bd4da00ca0e41f9669961c658c16dfd0c7a42b50cb9240daed654172d","signature":"fe192be79f5dd1fb56d0854ff3631889f1f92cf27a62981ec1da2f75a145b2e7"},"c627af3aaaa6b9efdf2f5dc02ebed43dc9827461d439183c4e42eb9feb0c0c71","54d63537f635475d601690f3628c00af699de697217d780d9b386c64e986972f","99b78bce6a0f600d5a6c210094030f9d4765f5b3cb99da5f7fb36fb67bf4d4e8",{"version":"ec24578ae6761e0007612f0e88511a1e0f4e69502071c765a530940a866efd96","signature":"9e06306253c005627fbe5554deec5c1ef343d94b354121375a18b573353696bb"},{"version":"79853620dee13d452a55a5fbc68cc7eb699375ca3d1a5b25b7accbb89629f9c7","signature":"8065d1214d619101bc361f7de1fcfaa55624eca953bc8e7e000010ca8f0c95cb"},"e736a4efe93401038eff9ce7a22c74a6389179a5fb27dc160d31d53d722ac40f","0975be2e74726497005fe9ca2a0787c09992b396e36954fe77231f8b3d4dbc6e","b74d9a1117ac3b03ff3deb3dd0e84af195e6c362265a0c7b5a3616a18f5273c3",{"version":"9178ce9bc72d9174260518ea187a3ce1d94b3bd863c24a1f379a42a71943c161","signature":"e849668992be1cfe35343859593685d1988fa35f2aa33f011deb2b7f82730f09"},{"version":"668a3ebda37448355e95aa30931ae3fe14fe672d6a8172a53342d7a0a0b09d0c","signature":"59540ee120868522fc4d190559134c6dae9ef42336c0ed31ec247ffd9ba8f7bc"},"2a0e1a417da4214df23a9faaa13a10543fad88d990a37737b45745c28cc18ab6",{"version":"e0060a03de542a803488a7e3d7f1a3f32da96e9983f60c22f66276b31b2242d8","signature":"84b9f6abc57320d63e1065caa2afe812d047082f07b9db4a7fafe61beb020c42"},{"version":"2d8a1867983eb979bd5b41e4450b58e6f9e9072b1739d3113700d3fca2b5f605","signature":"6d213d848f27d7a7e873706611590a94596fe8c097a943cc3751bc64ae77d995"},"9ea36b482e6e517680f370815da6adfacc0da557535d3be272b69496c7df8f57","f43e63285e92a2ca2c9d08a641e037ffbdfb85ce58eceeec2991688725d94bfa",{"version":"eeed4a1dcc273f87c82dd2fa026be90ac2440d689f0b1e7a2686459771b38b07","signature":"39d36ae96a0cdabc24982dda1ef6ae4957ddb0c5ddd03c11dcd71be2c389f10e"},{"version":"2471d9f02df4e7dcf08be83be0075686b637acf31c861157a18be52baa34dbb6","signature":"033be3dd1b4ee5f5960806efa84680e4be24552a3991cb923adc5e90b9e49041"},"26d2bbdc20474ba291461cc1dec83c0b93c1267d56826916dc9736553fa9fc97",{"version":"ec82db42953b2f20e6a60bce9f7957cc48666f2e0d112fb4d0813a9c62a46c89","signature":"f1b0ef8725aa252ea70faa3c25a7967968bc95b6521e4d9112a868cc8996c45b"},{"version":"34ac35e7812c72bd12fd579a491aeb173ca02925b6f7c5dc5cca71414eec933e","signature":"276501d333366f5af913a6334ed457fec61ae103b25acbc78913f65c568a9ee9"},"7685fc9e82a69ec0e9dbfdc76d2b932c7fdf77c2c137330aa132d9dbff254c91","9e11f2f59e5a7eec07a50a989d75a0204da78f92c091248a048d4f52fd99e0a9",{"version":"73a89c8ee1f60b0050a53f574f26389a85cd63ba484a3000d8e117d66e4b8688","signature":"aea5615be83b5f397c85cece459b9cbce17fd62a6a7e634d923f629a9a9f764b"},{"version":"4b34182e8fe47895b73e76dd846e8ae8a56a8753c14b81e16859c34bbe7423f1","signature":"fa8b6930a49afb2f4f49d363a0099716e3f2a8add1a3525e1a0bda9ab240ea06"},{"version":"c7042a6184e4e6a23f7f190240624dc629905a05bf0e1ac62389a798a14f393a","signature":"779ba38ebc799bdb65babd84c3629939e871d5f2a5d298503829454a8c8e303b"},"e1f1072a2c47e63ada087434cfd6c88a904fe879e53792b600fe666a8c7642d8","77ad267201ac2e2f7f754452aadc5b855c4c313f3e28d9268b591c3611da70b7",{"version":"96ed754f65ebe622a321562f9992f7ac97ed1bcfe88eee80a26813033ac34ad4","signature":"1bc8ed8ef19eae944440defe3d4b3d4582e4873534a791cb841f7df659a4c42f"},{"version":"fad9c84ca56f20c253f2996190ed74362f23fcce39d3b7399e93877816803695","signature":"00412ba20ba24d33b0ff550af3857794ef269bce429dbf32515d9229ed5b1dab"},{"version":"57d779e0059734666f0ea38fb746de2b4ad75ddd026bbb6dc339c45ca8b98204","signature":"9e29b0f36f8d9166d0fed661fd0c93cd20ef82e900c6a0b70640dd0a6ec58fb4"},"75337b8ba1a0452329fb26822e3bab842c6b8a921e503c5f2ac590b7689b7f14","4ad8b16270496eb9ae8e2faf8f04a435d8dcbc6af83cf0d9efc064f934619a20",{"version":"cc2aacdd7b77592964469fa292864e10c5dd924aa9d22fef3b7121d6c6bb9f20","signature":"f8189e1b02ffc389bc32e955c94cff8d28ce874b103e0f1a7f6d40df4a9d248e"},{"version":"36085825b8b9f8fa30a582021d1dbf68cb12d2a1f15dbdf5fb94772d418525ab","signature":"0baa623d4d8cd6b58a1d458c3b404bffcb37cf43583dbf54dfcc4f2eb8f33d46"},"600e48160cd4eefc5a77c84acaebf86293f5af2efe599e1dd7b1925828f95b0b","98c15fedd57b0b075464bda538c7cd56c77e0009a580aa5f54db1200b155bf96","1466705642ca61390f7cf0542e64d5070e8497882d989958067e3574afa7682c","62be45bc1e29640faffee9d4f7b69333b3d2348f4e5d4d93cc4ea574e3b7eb5a","ca690aabb92a2bd5ef0990e990a322483ad4aedb69cdddc76b941a4f7b0b39df",{"version":"f520dbc0b89620f7d4b142db9126141ab59d1afbdcd7d55fc05b53b626d7e272","signature":"e2cb108b29e52fd283e0c007c6d9578dc0b7dd131e6b642f1a3bb05c0c9ab8ec"},{"version":"707f4870ae2ead82c4a6505102990f28ac5e2a84d9e7aaa3c0034f2880cb733a","signature":"767673e073e492978a17f95bbc53df7c14e68b4a0781add201b87ccd41162d50"},{"version":"d505aa1b9a2661155d75a7664ce9a5e7fb40cf493798d8427abe7992dc791994","signature":"ba429d18d004f11eb7cd19867f063c85ec1f2787d39706fc8276d0747feecd14"},{"version":"f5422c0e01b169489765a4f3dc5418bfe7f168a195161d3a0aa2a3814e504efa","signature":"75deb86377358ac6c80397d8ac1a9496f70f04b8b8a13cb2aa33ca95242f6abe"},{"version":"55119b65876443823dc5c0ead831747d0c83c91081c34a518ebcd57db9d39240","signature":"12f74d3db4fa5855e3eb733c9dae91e3c2e897a761541acdf17b93dc5c715b0c"},"3d7c00c325dab9689c9bdd1e6bc49d722614741ef8756e84aa1609b01eaa0e9d","c2f6dd79911d74b208a8233f7d20cce8949147d55dcf3ef7034beaa822a7e7b7","b5ae3f54b2cb406ddc4272c203b2d1efaa202db78917b051aaff7da40fbe5145",{"version":"6c9f24c55001a7bea3318c8cf286e7f98622f03a2b53a5c59dea5c9e2233cd77","signature":"a89df959d34a902d496122a28fb87b3e58fb5161458cf51f88cd7a6ac755bc34"},{"version":"80959f768845151ce4feb7b26ef46dd10bd45d593f1ee1eef9c0272704f68bdf","signature":"aa4805a2327677013638dc83e33d3243d2ff10785561e10ae03345ed32af53c8"},"0b11231078ed806ab34838ca4e5014eebce2b2e304be238bbe6cec77c9de4709","40d2d9622e638ed12c9af5b325e729289308389cde98f17c1c9f19d8edef951e",{"version":"253d66ac8b033a55ff47bd6f3f5a17b6b24e45b495973bd40b69cb747df7106d","signature":"d390c8eb52217ceefee6c374dd86cce50d8491eaa77878c75b13fbd0333f0a4a"},{"version":"daf4adc703e468a218dfa37349cf944df5dd065aeaa11c8c590309a05f984e1b","signature":"83e48dc38ba9f0e439b83cbb772ab92134fbe37cf2a30bfe3a73ae6436a46489"},"3e2f3a3707e870fdad2b9b7cbe84d65ac71602098d8737a61ddbb0798825bfd0","8820daef7601f721614547c02b1b2249dd0c2655ed5512a17974773b05ff6d79","cfd38c188d9089fb95774465591991f255c14a5339fe739200f33b78ce782004",{"version":"a91f3333801b640b5f6237c680ce22f8cf5a1667d777c076d600abecc637a31f","signature":"f429af02b3a76fad0820d2d037f40603b1537626b28f0b619b18d9f675381b72"},{"version":"05545ad4481808e710a65c4dc9c0434b34a6aa728777d6082c70c93b4d9279ff","signature":"c1558c6479629eceb1e497638c678af04d4f2972d51c344777ed15c0bd98c8bf"},"e677e4dbc4b38006a85f65252d669290b1b0703e39925731a728e7c2add0a4bb",{"version":"b2bddb423e63362918a403c4f45e7eb4215d879b41b9105185843157d2f3b6cb","signature":"1ab75bbc0a51f619531d76025209d5f60c15c2fb7b0eb8d8a3d0fe7663b3e112"},{"version":"e78b44516a69e88223b812928864dda3f7c62f9d9203ec727fb15cb831b14ae8","signature":"fb3fd680903c45651970dd031de374207cd6e13ccc50895e98f4da56a5087998"},"e36a40b6537d4df22fcde3bd9d0e4cb3a2408d313b25808740fb1e69fbcaa539","c92cc8562110e3825219df1d7a7a38954dfcf99409ca669a2dfe68bb9671fbfd",{"version":"7a72554915ff210d59cd74485942291a5bb7db679985c633e1245f4e838b466a","signature":"2e4a2bf8bab937b6f7f0e87de9ccc95909a21a7058a2a1f72bdc60cbb9571ecf"},{"version":"9f60620cd5bd3dde9aecdc29aef9167937573e732961b946591352b94703c1fa","signature":"aa72bb2c98219b6d5b8ce4bfb8f4bb84f5f4042feb1f18ebd7aaedffb6c7ecf3"},{"version":"b98d4b406ee09de095622f2d84699b13a77617c8a54e233aa5e84987b7c05f58","signature":"bf3fc681ab6907529a8a48a331b8fd365d9f9ae9abad00c8267fe898b7879681"},"d941a1b4e9cfc74258fed90cd2c6eaeabc12842df8de0a905171d5dae3374a27","e3e8b52716cb0d8d14683930fd0cfe29c0ba246fde0b46a6da9947ec047cc1d7",{"version":"e40dc8e7caeba7ae2f2cef5de10d9fdc1d3096254c04cbfb98e808aea134c5f6","signature":"a3993657b18eebffa6ebd23c66f179ab0dead0adb7699ecc88f7228a258fc8b2"},{"version":"f5c9cdbb22353318d7cd71105fc36861228fe634bd38252e9e7356cd43718694","signature":"2fd2fbae36d90c882407a9752398cc97590c045da3813ed77eb9601d712eecff"},"8b0831b12195b93be61fdb3378787667e0135944b831e80ccb48d5ffab303437","14ad786bd051b3452071fa9621604f241d7d9b70e884580b0d1f0b4ca610485b",{"version":"5dad98a75febd3a6e75ed31b98946b8c81ec11418c0e18e265e8257e8efdf7d0","signature":"de36810e11f6ccf5b9f1865305bf19b862414db2a6a40fbdcdc91053aa886d6a"},{"version":"b1387478a6a968315ff9d0709bf4eccdaf248975696fb847ed472448475b0630","signature":"8ebda9272ac8e9b6928d5289cbf407f2f891660efb24b0f6064551b85e546aad"},{"version":"ad4475af6fa767e44707c9fbd2e72c5d81d843a2eb369468a73491e24c2113be","signature":"5d02cf766d418d83fce82e93b9494e794f73689f91cc9c1dd08480133d8ed3e9"},"e022bc886a77aea16b2d71192139217281b56d5ec5f9ebbd1a92142e816d4b00","3db8cd806ed1fc3119176dc441b30302f3198c35e169d103f9c22185935ab09c",{"version":"c7fb175ef57c451b722e10dd71a65c40dec87577f2d3a69914966822c9413004","signature":"25d5d93af01cf8f48381f05118279f05d21a7e30c6f1a226b022435bf8f858b9"},{"version":"df25d3f8f5f9fd803bb6d0e82981b2cc53e81f3f5c6aa51ad1879b79fd463e7c","signature":"fc33b0a4978b4f64752e5c82fadf449a3afb236ffbd0fde1fc3347b7b0fab1cd"},"66c1074fdc6acaf62fa3ddafd5aea74cf35f10714c88815b98145f1634255351","e734467aec3130a2aea3c4bf7c20090369a780841973c763fbe01a41f4630495",{"version":"3382a2ccde1163f22f2a211cc0269b39a65d1418de833d5b135384f8cd8d4bd5","signature":"6ee93d15804c17433c96e1ccf4a42ebe8320cad288db8bf3140616375d77af1a"},{"version":"597969e5794403738403e8f7273185fb0bd496c1caa992db11e3c3b507297a4c","signature":"27577752ac8eb2ff3e6034d66b0279098f574b7a585e095cb22508aae10d401e"},"5f1aa1ce3a361c16ae683ceea4d02e02a2d8f7190e9657c4eab835de29e04116","fbadc59988f32f8a9938c07d3801474f14a17430dd6bcb8216fb19bf4ada6b35","ca8fbd6066419fe663e115621da6e87e349aa1d034958c7a5d4e7465308ba8c3",{"version":"283b37c008467a0e63826d6585310c97ffa38231511fe758e2b787486e1f0f64","signature":"1734b8c1f8858c65bfe64f93e4e3240023f32bf949a1946020c26e208fab3071"},{"version":"2924ba0d687a7931fe5b2d4668cc7a1e23e638fa1b5b19dc77025cfb0a1b6c24","signature":"5a3fa23fea31a690735fc7d4c896d21df571421612a1cd5f614fc889719eebce"},{"version":"d877b191e40561e0cefd6006fc4b9bc01333b72e6a4839f8907bd278bb147980","signature":"8d006fa2d7e1756074e6b7ec5c53697edd83ccb3dbf51d0197d7d7437faff51a"},{"version":"0e0114067ea4a31aa7f972312ba82a4312032ca026fddc5f0f9c4755b66687f4","signature":"fb4ceac95fda97f0bd4bb355fdd529b7c5b8927ac4232aac6ecdc05252b80a3a"},"3b77611fb017ef2b4f88aecf9fb4bf9e026782f8aea69993c513a8b09ee40b00","e15a6610ab4676c7fc3dba80fe56f4422e5374d25bc2e7d8d3fac17b6ba69378",{"version":"2f872f55bc176f3877fb33929e84d7f226d6fc1e5f8560d9f8af124b68727282","signature":"fcb6fb6ce91fe764044ae56ce0aac1e2aceaf5c1d5fd7480e0526d1dbc9096c9"},"271e40cf059ebd00d27f9ef4c8ff2dedf679cdfc3f72ea9e2dfb8548ecd587f2","8f2a537af7f56a30fafddca3dafda7821bc585d149e8bf431b498c4f912eb7b0",{"version":"0c904c276d47f325b2060e9da916c23b5c1b62a70953f6bfd81c594528db9b5c","signature":"4cf30eae5807e4c6b30ba2b3fc4c1e0e76827abfad574097c4c3842f84a80934"},{"version":"d69bafceedf6644ff4860630238432c091a7cf51f7593da2d729ab5265daeb34","signature":"96d119c973c802af188e2cd3d508ffc5535aa369092fc9deda2a719e23ab89b1"},"70d8f81eab71798d6225872c688be33cd68e620cf63ee506ea5596cd1b1768f8","3dad2868a178f496d614e7cbfffe4193691302666e9928eb4c5e95b6d9b82868","4df98a65f4328c1b3119fdb64e4c26662bdc1441d08cca728cd842d499f7b478",{"version":"4c296b5279dae55a7f26d88ad379ceb0e7d5d531a99ba9d9e339232ea9960d9a","signature":"d3e6416f607a0ba16b4fa68a6178af583c6ec224219b156a4bfae284781d2a40"},{"version":"b924499023625809bca39480b39b142f86d5ede5f55d87d7028b749eb4ffa0b3","signature":"edbc42c68019d5a6d731dfca7cf079ed51d5c00dbf366f83eb13803db8c11e7e"},{"version":"5f0b5147e34606658e51c529247439bc02e481c190cd351ad2469eeb09ff0e03","signature":"6d308b999c3b059e7ded07530e0de2255746b453f242bc1d8643f09b3320c3d9"},{"version":"d38fb8c6dfe7fb4f5a7857c812d315ea0109cf596ff070bf95fd39ec9fefb1e9","signature":"c75fe75256d1adf90191ba4352eceffa9d7155dfb3ea7beea8a2f6c2a88eab9e"},{"version":"01fe1c982debc64d5bdd7aa42ed938f9657395a2b819c93508bd79c58cec4817","signature":"4462e899330df45fa9a4488a5eccfb274a0d0c07b1643d35de616938216bc23d"},{"version":"56b2dff146e97f5c4c0b1f7f283697054e0a566213a8b265812a8e6b4ddf1956","signature":"5acf4fec3725eaff45f326b6c91834bb56bc5ab8fa747296fb2c36af2cdc1c17"},"289a1745af04d2e0278ee667e0dbcd0a97c24ed685f5826558fab951df83c885",{"version":"59b82dc49a7d9051a216c63c5004ae173f1af999281443bde7ff972256c4b29b","signature":"40860cf0998ce2e52dc56413f7ca53bcba3a0e112246ffa4a77061be6588b64c"},{"version":"9936774c4448f288b1c9885181660020e75e1a0c0fcb3cdf4f2ced0c69033d26","signature":"1078bd0f1c6f60dc0de84830005a0cd0becb37ef225120bf7e7bdb27a849ea17"},{"version":"c79eb3d26e263bd5c7c331b18080c50217a25def45f3cf8dab6198393fc36c63","signature":"e663832d6f3ae3e339e94c32b8f2df7b23757d4b447de5399140b1f6486f741f"},{"version":"6b968f842553b47c820413df937074eec9ea19dff0f4f4ac4f9e3fdb764c35f0","signature":"d93509fc0de72a2875fcef5ec12a38271852efadb28a0901ac50511658bb2722"},"5348665270c83ccf8fe7baa49c092d77ffa5b17607edfbcee8ad7b18171461a3","9d33374c995e119f482fb815efd156f4f70201ee715d8770bd2da0b18d8a7016","82fa9c3f9a52772e249bf348b80338d671cf9349bd309d788358eea5de6157fa",{"version":"939f2c81c131f100df4ffa74d34fcfbdb268fa1f0d561f205fa5da5f2e331272","signature":"a4b50d53cdabebca4744f29db8dbac1a144a8763f37f7ee400189bac268d5d39"},{"version":"494daec063204342fa874240dd6319bef2392ca6d5adf11d530bccdb88184594","signature":"a4cfec6467c5ebbd78492897f6a104bdb4cf1b3f4cd717579204e301006cbe7a"},"b23b90ef807b43901b20eafb4ebf29e6795b26d39c0c30ec8dd36dcaa0259a1b","9bfbd39603cb731268cd0909dcd08b8d696dd007417ea5e167d5368f54012e34","c8c4786a04bc4d5f5b8b32e8e610bc60afbff575c45419483966ac68172af2a0",{"version":"67be0a6d3388cba1232675bfa87619cc49f7057ce69016ea081cb78184b7872e","signature":"fc0a656b8391c03e36f43f4f9d20f8b21a7c838be61196bc0fb723dfc426dd60"},{"version":"1c5f80822abc2705856e37d9ef5c563a67488236b4605aad9f309557e45d4e2f","signature":"01224bfca26676fd77001074c07844df0c126803511fb17bc8f02e05dbb6c335"},"11488d1fec0a739bd2f72bed2c753ec89fea7a1717827fb72888bc23d33dab2e","8273e2949b17e23c87efaf659243741e100930e97ec48402b4da1eee4fa67fc8","24d1892e49361ac38bf5a2486bd4cac22bf0839abd3db490392e79b44727f4e4",{"version":"d3bcca8862b4ea7ffeaf0c55d9b0b192d9f016133972bcb3a8e508f8ac1f50b5","signature":"d4a25c24f65e7ba40061f8b77583d21f34902fd469053621eb3e9afba15d9dea"},{"version":"0ab1f2eb077d32a9af0b15d4004b089b1c23cc522cdcf990e277ec4c16de9a7f","signature":"19d886e1e80779baec2a99f0dfd9ee02d2b9b209b787547450cbb05f7af90ff5"},"b99542b0a2f9d2f10368daf909e5eeb611d7326b028093d2156d18c053cbf790","89adf71955f52f702a665d3f58dade075e5b6d36869672681747661ba590f35d","bff3dd2956143f764f999ca56ba08f135bd7b2d6a3717a866799861c617bda4f",{"version":"524a7150d5a1a54c082f682c9341b7292ebed7d87766bdfda7117e267deb0406","signature":"244af3c765352357a81e1de694c508437c349df4a56dd2d058fc92424fa331e9"},{"version":"a34a4c259656d1e77363fdeb7445614332562c02f8649d744cffcc6dd7a3dbf0","signature":"eef12991bfb128025e1596ff1ea79d435de05fe3530a47690f8a3eae704f543b"},{"version":"4f70108f99c9cf2da72d5fa3d3c0b9650315f22a0f4cf01f87047067467ac365","signature":"9d68852825a353d9196e314b3b1d99dfee8a40a65e982353d2313a9ba44f65d6"},"ffea427aa112453f49d3a78c61dc78117c917c63b2a5caa8483a5bc52ddef097","3c451dfa1b995aa2c46da636c9d3c79e4457282431e31c9d031236157adba1b2",{"version":"5f1ec068e266932616306ae3a0269df602ade5f6cace256382b6fccf0b20abae","signature":"6622eea48b064006e67b4e62ad278d8d32eb6d23001ba1d1e2303a940d6177a4"},{"version":"e41189f557fa380d98c0edd378d767b1bc953a76521bf5b53c310c223ca0f56b","signature":"e2866188c6269dece1ff13fe696d6c1f9a22257dee6af457f3db4aa38a3c7b03"},{"version":"bb8fed82b5a32f323807e4fad68d0e17d5af0b6affe622e51597361718898a78","signature":"4b44fdf7a0cddb9ab20e737023cf1d490cb954b9a7a24fc6cf9e4bf8823fb9b6"},"7fa475e04a016c2607314a288b96ca08ded67988583e6a6f008d696f823ab365","28999d65ce93885b7d1e25b8ff1fba6700abab5633d173a77f7e0d5575a2c291",{"version":"b4e6053c55c317cba5dbf13dc03164060b92c39431b44c9219b5e1d44dba2fef","signature":"63fe27ef5a8ee44b9daf39b0d11924d80282154fef9b661f9c259ed14757e5a6"},{"version":"fb3c421093a9881587670b342cb4221676de82d3403bbd325188c35952aad790","signature":"4f37f4e639d4b0b79aafc7d64d71255979f87c231033932d23cb039b0e32738b"},"8e9a45e4bd61af032c449a11852c84725e2b7437f642fda07e4832bfef848bc0","acc56ec9407cdb10d16229ab8fec0092ef6c24ac4ab98284454c959403593474","7b36be3e61f29fed862ab47fda51f9ba0fee8d7cfd269ff2d316485856289cb7",{"version":"d90b5c5a82228da6c169861c8b899fd90bbca0c564720247757378e46a16e2b1","signature":"bdb3a2583b0ad6010ad15f6d277ab2a0f959e856d641a04f2637ca71f12d79a5"},{"version":"2aa67ce02262909e0d72b7696fba2af4d26ef0e4c5a06343a34a4dd155885d6a","signature":"008c2af49cddf0b8001b9cc065aff42d40a9f425652f6ecbdc466c96554c4aab"},"a7908c76e51868d7bc5fa7701a4ae1465643e1f3f944a2fba087e23b347f6669","1c1d92f53c7985364fcfc4b3cc4281ba2915072a2aca171ee5f463e09b2341bc",{"version":"94565e0b8de5b5182f6d4d6c880e0d54ac4da6eaef394eb342d4098e630717ab","signature":"b21c471a78e60447ead5c544ae439edcc23accfc60c1bd8669ebdb535765d443"},{"version":"9bd6f3c84656c300b7a481d0ede9af77dd0d88ae3bf0b01b0247cbb24bb335ec","signature":"37651bad2a27a728198c6645cb76b485c24594a1d8b81bad73ce7413dcaed64b"},{"version":"2f29abef50dfc80475b0025c1e7dc5b0a578294827b04badb7e2c35b5f3e6edf","signature":"eade159e83f135a945c4c503d2fc0743301917f346813ede813bf7af48e1a3dc"},{"version":"b527a3bb987b474f223e7398e71a9db4bc5f0db1d89dd8127020913be0e8f568","signature":"bb9a656c0304b04f0fb7352a138ec2151b809e9f63f87805a89c600e32de1109"},"86e2d315e8ab0d4fb9403568cdb67456507df02daeef02fc0f27a90ec5fb0e98",{"version":"74070e39630ca6dbea8a78f1301dea95590b4a61cc9104e3bb3802f24193efb3","signature":"86656553932a5aad86e378e0ddc45f574a48c30c5c3c60ca5ee921559a244516"},"7c736aff1e1745f181702ee11d16a82417e1368872f0e30ce30ecf16924df278",{"version":"6d4beba6cdf8c2d871a7aad65fb058af65b257d36f0abe661e0019dad0195b28","signature":"340f23d4dbf2c20c8bdc33113d0d8179014e49468ed5f957344c3cf0c7d5cb43"},{"version":"66e0375cad3b0ac63d9cd7528fcfecc82e5f2746052cdb435aeab3875097671e","signature":"067565802813ce30748322a95d66c1f51c09626b9cf0109acaa3425db494bd66"},"47c7ea820e1155580bb8b6d1c6f4081dbd6254aa1328d76158b95a2975fc8e27","c9f8039768ffe6a3ecac2b918f7baa5cb0cd2402b44b589b77d1abec39cee50f",{"version":"c82c6964eec52c37bfd3069c324e0aaef6fa6d0debe438dd4854312204c8d64a","signature":"1d7fc1a3b26785c7d8dd004b8953acf5c0696a587aa6ff913e2ac1be194fa444"},{"version":"17e54749782db7449517ba47a6c9a1c41a24eddb729558054312c89d9f83355c","signature":"85ac3f70e0d8081f8a3356ac2ddf884ef071745ee49cae2d35d825f74919e900"},{"version":"2544572fb905043f804151d393a446594eceb11a2d3435de118b0a505d401c1f","signature":"7e6dba06ceac7ced36b67656d6780b36d314b7bf83b0a8b4d3d085705c2660f2"},{"version":"1d415bf21580b44282ab6496f5460b2beeaf7fe0d9bb66b139c2fee8610a12bb","signature":"38b9127b3daf3783c9ce2b912396873207a2b4fc53066b89b0dfe5d2a12281e8"},"d08b602545ed3b7fcecc80198c3274f8e788f8863b553141e2cc20b983836b6b","24a0245151e982053abbb70420888f2055d3ab0f55ac7b5ab6476aa305a5bc37",{"version":"d63faaafd2f69ff7b9b56e181251e68c3ab57f73827c315b708f9d0202cec0f4","signature":"c43841b05edf6c70e823b70cc861b73f05d8f504e857d2d55ebe9f3e0a23f634"},{"version":"26a94b59c187e44b4e4dfb3a1ab8a0eb9c5d63c7f8759f761769250cd97271b1","signature":"6ec3fdb7679028bcad7cd766833a425b221c1c32584f5425cbe3bdc1b0a36ce9"},{"version":"f7d0447e758f1e103bab0de23ab0c8ecf3f8f87243a61610846534bc24673566","signature":"f73c3a0af51ac247c933e53a62bbd6950376488f4c0cd7b9077e71cb93184fc0"},"868f4055b6604ad78e951b3a4b6d6b80c972f24e54c8cc8be276ad342ef07e48","f5836d86f33b58b670cbb1271b326ac7160ec5ce8bf8e26753087be558a4299a","de5843e1ea5d9b82a34009151f9dc247b1664896f0acb4966071b59edeb7ef26",{"version":"d24f5a92de0fe13f32d1654bf69eddb275e75f75380be5d63484a76c28ba172e","signature":"6290af4358802bb7a4954ccd956bf2f3480882cd1e6388122c30261386644c22"},{"version":"ad5434126d66ef0be19d84393caf232f253fd61ca7fe4a0c14257bf6ad48d746","signature":"c5a23564f2ff2874497f7474de398ea78a50251c579300468a4f22ebad9450b1"},"217e43d4316e5a7186655967b97d8d8d19fa3bde491cfa4becf5b1ae21264022","7bacc062ef93eae45adf1886180a9236f9ddb4d17bd55b983fb9c1d5d256f4e5","494dc1a01025ae4451ae99c56e58c639d479d21255f42fa9682077f687c43cab",{"version":"b9268bf780a803a1ab9e65ee668e87f5ad0d81bbc4264cddb1333fbc0e462f89","signature":"b30b0e436995b28eb099d106288c03d69ad4eb2f8e2381c9f6ca9eb0ee021986"},{"version":"649aabb32f3cbd6d46234ca0d7603a1346171322e0b7c221f0449e7a99d816d7","signature":"3c3b65e0973bb568ead67acbae5bea98bd9e029659caec08af6f6c22c823acc5"},{"version":"1d44cc68f2d2d6b65fae1bdd15058f8946257f198c6beee43f5d18d223edbb39","signature":"bd9874d835618f942d9006fd6e6c0311dd16cca657ad371ccffbefea754e21f7"},{"version":"246a06b4d7d317bc3c9f1284cd4ab28cf65276d353cb307651f9f4c60d5ad421","signature":"064523f8b1d5e07eb5e3ca8cb5c8788d7981a398b22f10a3162c73fbfaa10027"},"fa4ea7532eb7c2e0d7facf06e901c707c51e12274232e70066bd88d57a318529","321fa711bfccf6a3608c60009137e903679718c4338430a5aa3ad2c5367fe7d5",{"version":"ef3ca8fe6fcdc7ad5b7133c71d7ccf768c17b75e5d7087d55b396c3fa53cdef2","signature":"bfa3580c7b68cbeeeb2aac0c424fbd5511e8c6b99fcbb4ee51a76ec6d840dadb"},{"version":"5326b2c5d60259ae8f5f537c77de1b1f0fdba6961eea53be93b379003b8b724a","signature":"76d4539ff9e9043064659625ccefb50e0430b7c5ef4da2c358015fbdb04cb757"},"097ed5f27cfaca08c5e8298f41a04723f75d1ab08552d0a9a4df9175dff38827","1aa60e2db8d7c5358fcdced8d65e223a3ec8a00cd35ab157e4ca305289dcfe22",{"version":"214b4aa6447fb59bae096e4de603bfbbf8ac91c083563e370da59d722a6d5400","signature":"6a50f00c910b273a9f73931ea5d6829811f3db5cbfaeb97acacb938e3164cf74"},"d6b3a49aa7e291508e66d81a3ea87ee1844f241fac1d85c2da9bceed95d78333",{"version":"c1de79e474bc2bec868c16989d20d0abd02e51b08f04ed9efaf33203694fe3ea","signature":"bf6b9666ef586fe6bc501443e6762f952825468e6024870925a7b832a2ea4b37"},{"version":"df62c1487b7ddb02921ded4a16328e922220be22ce6d65ed6c75963ae56fbcfc","signature":"3c6fd539046412ab0ae584598fbfbc33d590febd055a92d4a353d513968de800"},{"version":"279016e0c88f2ad2e009496c05a0f233407a5ebb08c2e20c29e7f223c1ce2698","signature":"6f68a9b91314e9fe55746169dd30d29033e9ecedad257675e9f1747a0b6290db"},"0acaa0b20282e72291a6bf279dd397f6ffbc39fa2b3a7f8f4f97bf92a5bbbd2d","8cd1fe204b2ca00fe1d18f361375f816e95fbe20f5fd5e2b1de3499477ebe63d",{"version":"dcaaabfc111ed264d13b4ce9e2e2d4a3f96ddec0b282db08d57d2c32ef23e7ae","signature":"bb26576f87d0c36e5460acaf526a4dc82015552beac81ab7475b5d0cf0b1fc3c"},{"version":"f2685396bbe14ad5ad72a5f6ba5b43941d58c8052feb38e341789148458b3963","signature":"ad6253b340491751d96a9745477e4590547e39fb1755d835eef973f0273f73e8"},{"version":"d12880df5fd8ad24c624071d10604be98d5a31858e11d69fb088502ff3b87fd8","signature":"0a64ef92000178c18c3e8ba088bf4de6ce9a74b29c6265540dea47e402e5af3b"},"084b410768dbaea2e495d902485618a250e6000efa2dc69893028d5e5278d006","fad6be3f92db0a8a5f208646fa8ffe65cfb21bba787e483385004ce92beafe14",{"version":"d65dd16c9078bfb7d8601a73009dab3c321ba285db98c714e9c6a5ec45e9fb94","signature":"e72ad5ea613597c468c5130c754a8447f8751b25f76b108a796c796cc1f51552"},{"version":"0a593f91358a6213569b2fc652a1c5880518fa1579be79dd0b8abf6a1c7f1a83","signature":"ab70170d58eeaebd7e2eef6c7493a195bed15722d8cda70c7f2461bb008a7fc3"},{"version":"1d1fffda21947965db9092cd155a052523d9a2552658a3af18d05cc3657b2f4b","signature":"819f35ddf90d8c1d9b2bec2e3b6d867851e7e76d0e04da36adadb9395aa68ab9"},{"version":"2b7386ad7ee65de70009f807ce19aed906fde663c9f6af563a2ff82d45bad76e","signature":"e24e8b28f6823345dd11cf9f8e917f126bde983b3f4846ea00b5962c171b283f"},{"version":"b562f273d4c89a10baf0869c2113812bc1d569380964a593131bd6f723c2b57f","signature":"661fcf560cec6352e92730e4787bbfeefae9a31d51e5e40a5c7b939689d06f3c"},{"version":"bd8a0d7608ad76a24ec69f2c269a8880e346d19517ebc4932c24627543847ca2","signature":"903e857d539d553c927b8833126c12f9a022361d068cc2827f28af5cc93af0dd"},"78751422400cbaef3eedbd10964596fdf1ed4254fdac78488f855d41b433aa48","c89e87d86f81991c2f8138c6336aa863251509e88c2a6a816f38de159ca525a0",{"version":"9943aca8e1b13d4d23c88601e87743afc902082bbdcd0945b2be78e75cc09861","signature":"cb8a556cd1c924f64932c2c3ae43eec16f530fcb781df14b858328ad53ff3661"},"5469124b694e26444194d94673989186fb6e5944dcbf9782025efe4de76ae771","ad7d377bc2a3a6ce3f299e6fc912dd18b2da5912ab6ebbd0f9bc2b935a9810c1",{"version":"4e23d9e855fdddc99f7bced6ef89065fc8904e68dae7c2fcfa367f36289284ea","signature":"831448a8d343cce3b473c6e346eb7bf4036203535fa19f23844386cc0574b1d6"},"db03ab9be44c353d014341ee5f3045f0287c714bb5a085410e367d92cd4ad514","fd6fbbf4f6756d2f359d5d9d23f506b905d2885725795b0f0e5eafa9da27d864",{"version":"9b0282c0162b8e7685736cf79aee7b0c02740feb92c175b40a48f745ea60a5d5","signature":"be895e0b8d37ebd29e73c0d2e3c8dbf61f98443b57ad2693f2063e8677c0f52f"},"0eb4388baf5f5337e89a7d73a50c9380ac551221bd7abd56b2315c51c3114453","1f3c02a647589336ad93d1449fcf0436a09ba49a0431c94d1adb5d436f4e17e3",{"version":"a178d985a82690f57dcf2df956dc8d977fb648d8a0585f6915d5fa0f3ace8697","signature":"ae32d597dadba8ddcbad972e86b7ffc83748ec8eecb4b04adfd21ae0124d33d1"},"2c751c4dbd4d333d2e8c0c8aa4adb2d7909eb668566c6ece5c7e7782a7649519","58509370e94b48323d05a959a9f636a87d08d7adb3feeed2a68b2686507ba7b4",{"version":"9aab05683b8904723bad32cd2668ea1067d4b5d2453bdfc8c09bd1057aabcf21","signature":"4ad35f96e2f397b370ad448753616b62ece8c85d8f0b9e51b060c0184c509043"},"f1153b353bbf33db2ea3b3e7b9e8bd4a62a165ca7211a950e0be593291db35f8","f4243ba8bf4421e2e2e753b680b195341df1a9a91903895e049e0eb9ab67029e",{"version":"3ea2fd49c50105e2bd51a9b8281ed040cec5719a4f2da4b55781560d3f536b58","signature":"59fa1dffca1315fef417fdb316ce9edc00236f76ad9e322c3bd199b910f4d6ad"},"123d3d09c555234af1b104212bf9915a712cee07727167e63c55cf3c83aef16a","f29d66febff725cf43394c02d94a187fb4fed69ea6f5f55f008eb4d780c9a0e9",{"version":"d2d996f911f71d900cdf57c1c2d6a65e68c63ef8555cd8efacd9647341b634a1","signature":"0e91a59c1cd4d960eaf1eede7c31031606dc64e34c20ea5da6cc1671896169a1"},"36383120db1f936e11da06b9db05232eb43f9abe32e0804c297842e194361ffe","21b5d1b47c7511e67f11b1183843cd164fb423f652fcaaff7a1c17510b08ade3",{"version":"2491b117c5c71f62d341a8e15007d3fb78eb9495092baf0f69793938f83f72a1","signature":"24d145b12962527661dbc5b0452ed1190613d5d1a382bc06d2783544777c4ff1"},"4c7ae92df73b8373e17dc683146d3747ee00e41a0ee5097fe0b09076d84062c6","d7d574d61ed6d3ed03f51861dc748ae8778637490338ce351cec35337cb3f32a",{"version":"e7100af28f936699f22a8b44b6dc7c53e3e09e3e7c9b363c56c3a0baa9ce3092","signature":"24337854149b3bb0eae8ade24331cb2cb0048f35a4a344633e9281eaf1c59972"},"fbadd2e611444c78f0005a817d3b08a6915127c704ab73d7f3e213abcb05e928","da9f8bfbb5b9f9ce48eb8cc72859a6e9af2df1145b2c71a21b534d1b8e5a44a6",{"version":"d0a3bf0e2f68924b75659919a9f7fe167540147a82f55ad801c398b82d4e24e5","signature":"a51815078d4ec2f1f514215f08f7de99947d9985057dcc145d9c6e7aee79e9f8"},"1bb68b551575aba625e531a10f5a041147460432109facf0642cbd81d56e9dbf","4ea3c0b59a37c7320d1798886827c7e2e691d566643198233e683f764b6bb044",{"version":"d1a0e1043ce212cf8187c5d25f217c5cb759b7c58b2e9f4e39c112bf10e14a9e","signature":"7a9ba997de73751a6ab94567d8710fdbee766b8aba2a606d2e95351d59d19fe7"},"6d1726a115615211824c5e59bf22de4a4b56d71abee15ddeea87c4572e1627b2","b12426efdc99e0d545f41d34eead177330b336cc3d495d13d652e9f4ee7bcfaa",{"version":"e19e5cec806642092c03d3eec46c6fa32f2a01d368bc0984db6b391b60cfe3cc","signature":"65a29e4ed62c3b7a2c0facede5abb8126d9657fe1bee6443f3d489ba0c6c523b"},"f78d286b66902ec9241ecb52fc5c1593c4d145b960bc74acacb6207f9831325a","92128b5c04b5fa3dae2ac6cfe64b2183d001220a137e82d68464b358e71b9e60",{"version":"402502a2f35a9b78c166a5ebadb79e1724ffc1f6d424c076dcacb8ce08011d2b","signature":"d92eabe2e32bf8ea3e069a31a2ae3417cfe9749ac2bc66bd69ea5d75e40a94ea"},"541c714d7706f0ff246175041238de7fc95ee2cbc9e67970a485eb5e8f502c6f","eab67937768dc159f2add1770211b696ef28c8381db49440a2d0cd6a53bbd7dc",{"version":"dd0ba2c20fe0efc9844c4a9a2f81fe8fa6ab34510f2548da8f4828fdccd2cd7a","signature":"6703d2b49bbc364d6a5a703ec38eb4c9bdf66f348cddc195c7e70aa27557f512"},"08fad8548f8245304f9e080db687042d6cd152b2a708e96c86017035a47dd109","fcedfbd3de9c4cc95dca94f6ece07494cb9a4e5c2e95326e198874346857d670",{"version":"6abd67a36f049e2cb16ef2a5786bd448b6ee3458134f6b634f87112d4a089f79","signature":"9462a798ff747dc4609331d9648712e0eee549babbcba472e17dac2a746f1c03"},"f883a4ed0fb9921cd2d67c0f40a662f6081201eaba11545504e7f0f572c0d7aa","16afd8e6dd842a6523158c81428f04448e14d16a2f08a6334e8036baa3dbdb31",{"version":"607ec12c611e6734b16852e1b9383e7ce5a83ffcfde02f8b075643082ae69a1a","signature":"632c56809c00db1c50c4a1fbbaf7b86555ca80ed5fe410028ab997774c900c57"},"49ae9b494154be458f10b8af62f4562cf114eb6e96fe14ddf5d3384976449b21","5d25b9fae725e5cc6c910dd9f93f59d8c3b45ec9430a479354dd3c0264cda4b2",{"version":"f6f1d3736c051224c0d8cd68dd26dc70f18503bb572774fa81bd6736df771035","signature":"25b238dab0fd2f0cd84345328f5f872197009cc9ea686e520f480c1f4af9b296"},"6dee30e44c3a7a939a9cb4c16fab45f986bbbc4c803f0e1e3903986839586035","d483eb6d531e16b927e5a107a77e7344deb7928051cdb4eb989e068bd01f78ba",{"version":"535ed91a4626e42b315834626106c3384b130f528546a59fd6c1ea8908968590","signature":"ff7edc84cb5ce9475757d7086d3b82445aeeaeb84d88639776e58f32aa045d42"},"e5390adccba67b8b92afe9f73f924c1ff0c2fb0a25475f8f49945244b4ef3063","f8e17145b10440daa24285507cea0efc05424e8e1ce3ca37f2f1acd3daf76285",{"version":"2f2b76ae2f3c30014fb730db9d4d717add072e8fdd23f6b0420fade9ffe8cf1f","signature":"754fbcbdf6ef4d114344486687f762f8975bfdabbc5d90dc77beda232e3c712a"},"fabebd0fee78b990bde2e23a5ab1519b31b562e5c0296b09fe90cf46784e51ea","41eeb1b064ae905e509fe06ea91d5ad99847bc66899c07e17a80fe6101d7c5f9",{"version":"0aa648887f2b03b38b131c364e096f4657b23626f8a2df646f899d835806479c","signature":"6a1e8fd64798d1d89e1ea20342eb074e753cf59c22a402a6300bb73d9bc12c59"},"6a9502e88adeeaeab31351fb95763884dda7f5c2354761b14d83eca88e044da7","f991f23433e35a100ef65074e7c08172f716e8239eca4e725c56e9a8d9a1265a",{"version":"846ab90bf9e92ec393366c1e69aa31b221f40b60542061652864627372661d83","signature":"649b2073114f23f98fbbfb98117b11ef03cf66afe9be8436d2f0e00cf1d1ed84"},"34775730b41a9b026c4c55960b73bd6a1188cd6bdfc46ea7703b6326170ab6fc",{"version":"dfe6168afbc8fd31aea1a854e7743584256fc418a93492d7591af598c9c04e65","signature":"d25162e4aa09763b73b1d91dfbe5f020cfde50f2b0f0118c65a92edc6e933c5f"},"a2b05dd61bc25f46d0e03c2130c4aa90f5492d115b47c0bf1d69f473ebbf390d","db577dc2ab8861cd5e3375592e93cf80aedaf078d1fc7d002c4ed09bf329540a",{"version":"9b5aaa2d1da25f286d43c66290a1ea79569d318eebd2d6f719ccd5e6b09e3b89","signature":"fb7ada845171485e401154a19c602f363d24eb180ab2dfcbaa642c5e44681190"},"aecf8b0054dc506dd63e39a2655890062ed918823489f479a292a0ccaa4dc3d9","c36e64c68733028a6ae982736f6174c95071619449eea6d685a1de26e7627086",{"version":"c82e55daa8d7ad53eeab5267b71cffab54d6d648745791703d383e0f65b89289","signature":"5b355235c89bda9891fc74041de83479ec2d18e3edbfc45143d92b336b32816b"},"45830bd0173560d9249cca377a391d03c1eeb363f32408b934bf422fc2bbd7c9","8deca580e6d157c21268840f65e7cb337d83b8a4f83dad491c4c2f512d0a676e","25b6a53cbd29a6c820b777023d20a64e92c20c0615fd39e67b20451de89036af",{"version":"685d7f6d22dc718237d823c5b9be9e614598a1b4fc3d3bf4accc9999dbcd74f8","signature":"0ea662091b83650c14c555917471cf31b418b60bcc593f600706cecf2cd101fa"},"c62fd188d4b69018b731290c1c1f8baf112a567ef3264ff31edbc6b6b44fbfd0","930fb95735057d5d599608f250436b7c28536eae435e4b929c007d0359a51be9",{"version":"63e744af5c97aaece1b80eb4aeccd252783f3968476f6183027c1bf9f67ba382","signature":"91db1481aa370487979ac5981e85cfd9d82f8a68f3312c465a4895101bda6508"},"0193555d43bebbe5106b34b9801062f058f2977045f40a493afcde6b15735c49","5af119daccfb138e61bfcd8a2f2ee6cd454dc651177f88d447d64d8cdbc9ebca",{"version":"486cc46f03ed14a8b06bf44b04f0c88cd58249301797bd655761b6464b94b040","signature":"71eff3479a2be8822d050d24e8fe35bfc5ec9764923612a3dbac4f77dc077d91"},"222d0d1c77b4c66da638a0bf81d629ec3d9952553da0e1584a96bb0bb2aaacf5","28f3d1b513bd0cf34ed0cc593734e5a0b7d1b7141c7c3cff035020e740cf3b4a",{"version":"71db47fd89c8cd87f95420726ba9aef6abe5a784ac66652ded5bfc9ec0c2c49d","signature":"ba8d26a19197a4812f79d80ec133c95d6e0d438a6d4272a645565b578152acd9"},"c37a96359843f2f0877a14d8e1d313a840961e48320e00a5cb88b19e649133ee","956bbae494a9e55274d06b52324088bad1df544fe3c80ee7d660cb34385e1abd",{"version":"2a1f72cea21124cafc824df426609e6bbeaf4bf1113442f10b0d544b56eb4d39","signature":"137475bcf450c102453d789e607a87d52dedccc33fcbc6547bad1f38725572f9"},"4432fb4d9b3cefd767361e073f8b5fa2dc3b290e855c7728862af332560f5c7f","cab82718bdc1504aea10f68c53085bc58ba172adf71c18d0f65baf5767c39d9d",{"version":"da72b3bde7ebca2efd0d7da380a3485a93149b13ecd4f4ec9bd644bc564bd28c","signature":"8b6460319d6c410bb80edbc5543c0cda46a81fe938e95d7b49a86d1f2d2dbe49"},"64f487135d2f0d05e576b09a9caff0e7dde64fe9096df03434166978f23ddf4f","456b9dd83de456c0ed3e3b2f747167eb98fb108d8ae7d0442beed2eab13ec05e",{"version":"6b1a1513d324488795786209de9db858883f3adfcc1f2efa1113c975e5056456","signature":"58cffca7c6926f268b119fa3def0ece861f07173e2a0f8bae83d565937a217ef"},"95da6dbf5482efa36ebd76168eee08acadcde177545fe955c39f34b9bdd4f18b","02cc16a295ad8175b1450c6a769d232d43139e4ca0f3983aa3314af79aeb4710",{"version":"d849f22706dac990c2e1993db948a8daabd9f29b9c924fd12b901bd5a01985a5","signature":"c4aec07db5927bfce95cd62ea1ce437aa8e54ea84aea4d03f80d1e14a316f215"},"be134fe5ce8aac65f1a916a804eaa5abc8d34004da6fe8747f9bdad1eabecfcf",{"version":"4b66cff4c948bc7e55592ba517e6a193bc25d1cd04066c2487ff36be21636b08","signature":"314c0f3256aec8add8b0656ea05c172b6676fa320c931f8605c697641ee7e02b"},{"version":"6dc094c3f031caba13ae727e6cd036716d848ec9600f0439f6e352b7d9dbf9bc","signature":"9c383fef7e4a98f93b0b7f3611108ce49415ed458c6cac2038b445cdee0f5bb5"},"3c005a44f35060026042ca881b2205b1e5d09e2a378d50fbe6a2830550a4f0ab","9b6ef5f8e20520789e7ea68fc0d4c526fc6a0dc674270825791298542c21aad7",{"version":"74aaa14034a0700a6e0c76bbb9e91f950e101fbb12ffd7947e79dfc1ac027821","signature":"38ee46442a8f624203d362c445a08abf3f90d981616f7ba4c30f721aaf2c06bb"},"9725ee1383e481778c643d3cb0ddabadeb625f14caf39c43c7516f60ea5f764f","d3673a2852c10784f461e867eccc155b7269ea4b7fcad16fba518a25d056d580",{"version":"34f83a971448edf194b6f6e04cab0f187886ad37a3a4e85e80165d2e46b28e4f","signature":"24a6198a7580bb203d000bb86217e17439daf1fb9c494854ffe1675c0553b3d7"},"f0efc6edbd6539cfcf7f476466246d7002f77dccf1aaccffb22b86794f304eea","79bff54064327871e100ebe46b9fd7a734577fea04eb1675ea1f5fad81f1637f",{"version":"b06b02692f61be7ffecf17190ca564b0706c905980d3ad079a8980179b7d074e","signature":"bfcbb1e81812b44f4b24152e6ae038c21c3764cfe87dcd7b5b113f829a777fd3"},"bd315f1e1b491f1e5fd6bf5e113f5eedca0d9fd33da629da08b09acfbeaf48f5","a1c66f6d09c6efa897e56d3dceba9ee2fb9bc54d367dec8eee576920f34e8403",{"version":"eb204fa7d756b2ce990f978d96dd978db281b6735b4cf19eecbcad2e955b7770","signature":"81e6a9ac779551923c3dc111a6a92160a1b66e68753f3210f3813a5888d8caff"},"3ddcb703e7da5223a9e8cd252abc8be1007af07b6e43da7b5498a1813cb637cd","bd6452edcfaba43096a8408274d3fe6dda7ef71e719490cabd81dbb79e07e310",{"version":"00739617889cc8b97484abb3c1cf1bcd89d8736f912f72e58a983e97d3c60810","signature":"016c6e8e061e31dceb1c1fdddc2e983ef268ef66268910fe1c5c87facc51f29f"},"4fa6973764030cd81150c2488c59ae3fe52fb38c5bb6f1d54c3928dc3d54ffc4","eb9eedee7f1419d6f26ce7b3d31e95635031881fac035729652db3242780328c",{"version":"c495ae5440be6ef78fcb6bf67a220f33fcf90ac0c23b00b66635e558d5f240ef","signature":"832c99530a0e934510c9b9ead2fc4aafdae7520ee6b262dd9b7f22d86ce3aa4c"},"5dd62891d3c25fbe0591cf4de757b29e898802178c40bf1c6adb88811b592ca0","f6054f5d5b5679a4f4765143fd491a25a3ac80c709d5b59c4010c8e9f9c57293",{"version":"12030ca9a5e382024ee5a87fa9d93e1164b0473bca6208c74d2e0b230e87deee","signature":"fa5ad338a4ad53117a050897ec039f89cf72728cc9f05661dc44c264d4f1fef0"},"c7698e607cf97edd7a304a8a00313984c79fa23f866dfe3301975e64f3e39010","0e854da095b913649f94b8e4952963c614fdec6ed352a5dd7b325e189ac4c129",{"version":"426991bc7c6ef8b07f25368efc11a5ef2c1fdcb4e110abcbef7bbbcb65ae9c10","signature":"a47d62b21b8728648357154df78efec4c9b1744f12e17de4441c30fb9bcf3458"},"aa046ae938f750af97f6dff4221afe6cd918d2da0336d4e88c448b445e133632","1030b1c0cfbacabbef95d8fd562758f80a68073c6fdc04860fe33eee0841a5e2",{"version":"52d033de682c070fd65fc4f0e80e9abe06a5cdde52dc9765433b20fdf564d763","signature":"5dc7565c3b3c99112574fe5c138aa9036acd41b2dc38edc058c5c427d2a34e64"},"69bb10b92dd4f5bfe27161be0b293eb7039fb1167c421fcfbb0f32809d57ba11",{"version":"c04b9f614fb6a6133016cd92f594a1b8f19419ea5b22987d42a7e940672816d1","signature":"ecd08c29bec47ef29a6d22ad6537dbe1ba1e211ec0182a6de3dcb3aa50220872"},{"version":"a747ece7fe2f2109383860a7539df2d8f6b00524caf8df04c1c1b5756cc023c8","signature":"192d5470d058607ca06c2402faeabf8f6e5c8834721f840c2eb21eb60f7105e9"},"a005c07fd14a753cd906be669de75aeb036f5581a8c2acccc2719227f1c2ab55","de22819c86ab04b4d2d96700c14f2a443be7fe6961165dee2cebfa5d33e88671",{"version":"08da834b371d355ec2d05032dd7650fbe540e2ea1722e247dc0199c53a2a20c8","signature":"6a1453d9cff4a08d24cc0953a7dea25f9a1c932725374b68cf4d98890f83a273"},"3dbef6cfa4ae2df84b296cb396826ffc50efe39ab385edda58d7f1c24ffee2c8","c3224f98e58d360994594f2423ef5d0c7bf40c641c19fb8faa2e030c321cdf66",{"version":"1fb5b65e71e39c622335efa852007c494bb7aa01cd34aedfd2be9412b95c15db","signature":"a23955eede9024126fd60dc0693954793fb45df3a7df055973532e6fc08ccd2d"},"1db913e6ac00e65b8de13eb408865530d25ea7c0f71be41b903b891a3d965511","acdd9b7caef0062f56699a7dfd34d71b8f4fcc1a6e51c322b92df5f6412c7e3e",{"version":"049ce62d668ef6f184a3797e2752bdc9b37eebb964256c0d63653fa18401d9ea","signature":"9e39a40e1898e6b25805dbb321176e9d2e3bbccf0f71f76c1d7e920b34e77102"},"65212ca07b846beadeb549f800808dc32ced4a0dd235868937ac34a0c5641431","5a88e86b9b29fde5ecd5714f6a9753cabbb001ab61b8caf0c25ce7edbf906b6d",{"version":"8e63432ba4ffb9c40e71c1812f816d4eb21d72653d34e7c9dfa81e3af92ab60f","signature":"5ab32891d8b10466cb96db76c6bfe7a799515110acfa44efde5e8bc42e8958c5"},{"version":"4d8a62f303aa4b8533003e08d5e1310036bd76c411ba14e08cdf8325f700130a","signature":"421a4264a8db67f39393cfecb77ca4c92ff310df314c466976122c57ff2abefd"},{"version":"17dc941b000fcfb46fbb8cee4434e12e598e700ca3e5323a3d2ec49d4d6b0c8e","signature":"bf4aedf43f07d1386e7285b0a728557c0792879a9e9126da27ba430be45b31f6"},"392b3c5d17e693b118b2714c333d9a2ebc6059c149cfd4146f35b1747a335a61",{"version":"dd2aec28a5423bf75263afb94d61acd3fe66ea16b692fe6b411a84cdc7d900ce","signature":"8b690568544416a06f4975d3340d0c92158a6337a30413f1b5628f6d098a0e38"},{"version":"a16a4eacbaf501c46ed1b5390d1c0be353aa8a779797116135de1a4be191ae25","signature":"4d3bd30062480a9d712d4243b5b04bc90d89e5d700afeb548acb372733dd9670"},{"version":"a0d123b28e07c90cbf2d109fc9c21d902360bf55c92bd5918b69d38444ecf9a6","signature":"c3a2c716b2c07eb9ba223807be925162693499c43908ad9a2b98cb40585141ec"},{"version":"9d0dfbfec555f44b7aad22e2e3ca6bc2676fa87ab1b5dea8e59b0a87ec14f056","signature":"6318aa52ce075852b922ad5580aaafeaa1dbd94a4ea3783f5df198c7365a2787"},{"version":"40e190295f657da6a5213c33065384657542348063663419517b39a84dc233aa","signature":"e963b4e8fbc11378361fb97f965dab23a1aa83262fe5841572742a7a17421d41"},{"version":"7e9a91777401ec9ce9f8d1fbaa50acccd55cebce3edbfff373f28accdb82d2a6","signature":"6b23dd16a6d60e6c79db1836b240670a911377100ddae7020ae2b4ef038d4921"},{"version":"cebcfd7b4f40aba00c1e316df7e2844f662b616109fbe3f87911364a8dd04380","signature":"998e4b25f99719d79e5df74b505d78eee02afb045889879345e5973f2dc10099"},{"version":"9c93d7ebca01a99e4b19d452e8fc6f2327e76049508973d1a27f4d4d6a4711cd","signature":"b032d5e5600115c8e0e06eca29ad5af23fc687edd51353917631805fe155d6bc"},{"version":"6b0d0d5541390b938fe3e03012ddb39a811123caed3761da6d941229f4fff8f9","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"89a01093a50a5119954ef4fdb08f614bf3c1dfa5954f5f7245851fa082084411","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"ddf293c0c11781b991cfb2f9580b581b5d4bf6cd4f48b2e9fd48fa0d01b60697","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"c40c4d5c0ebc01a3a6c5ed4e2b7902c918d75c7db1f014a1c405fd3b1bdedf6b","signature":"e8d9abe325941b9ab91dc2f2040dd0022e9b8cadceb4ea7839a320d479304c9d"},{"version":"8db4f5576ed23c370caa6bbd2dc76ec9887fb37a279d4e763feb1a0b0f04c2a3","signature":"ed59bcdd1f62b2f809cc5b2714ca820f03d077f985672d4b8e65f30be2587a13"},{"version":"1516cbe7aa5330182dcd93ecbddebc48f8315366f87e9af40ba88ac0ff53f9ca","signature":"2ffd4b62db6ac8dbda52d0d33d9a6ecdfbd5b5ba9243cdf088fd4d467efec8f7"},{"version":"b29797d34aff7dc657dca9be5ba0eaa7f6c8feb2878ed66d94850be84403670f","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"8fbf9bc2586fd1b88db2328f5b85794d57f22b991324dcd9fabae6ce1a41fac8","signature":"dacf6a2bdaee361bcb82bfa1204575aa6e705c005ccfad3a8649a3d6f2c435db"},{"version":"927e9f613856f9ee67752d7badda229b78741dc6bc542f71733d1c582fff3ed6","signature":"10f3d3306e9ab71e0cf670ef4cea07737b8f964135f678df755c539ca4e5feaf"},{"version":"93e5a9922216e3fdbc9b28e932981f8037989815cb8b72182892b91b1c043ad8","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"b92cf833491d1d07af28ce316052d7f43ac0a59035f5b40c59812aba66592864","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"699f63f07d8456b110dfb8f1d00e33ebd6331ca8fac3988d0e584c0e1ee9d0c8","signature":"239c17d24b7787f5dea29c1aa36ee333ac36b3189cdc833125a4fac1f7f2550a"},{"version":"4c9a384cf489fa3e6b2ece9df43cd9ec277e396abb7ae547da7d74e2e4f25214","signature":"239736327b8f76b305c07658d8e1ef886b58aa80804d280fbeccb2cee250578a"},{"version":"b02247f30e089826102ca77a3903d3310677e38e852c9a25f12b769fa01bc8ed","signature":"ecaff2db8e5d15f3e2fdf1390deda1b74c92e7b7fab771a22d30693e45c860b8"},{"version":"06ecfc0e7153221207c61c82046f8cc32e6ac2f27aabed3248ae355ebeecbbd3","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"97e807e55c692a67847834ed928c930f7f7a388430d4286232e2d42d0eaa8c9a","signature":"d64778832176b2ed1db6f36845d92529aed5f2312e5ae8c58294d51c2ec25d2b"},{"version":"8d46079eb4ff77766b815512e318d4e5f0172ff97318e81887126a4f218714be","signature":"b24d1a549e29408d8c87243fb9d1c900255f4ce33cb9b866794a3df0195b753a"},{"version":"4bb3bc9ea05eb53baff9900aa5b69a85a268d3e76e790ef113b41a013cf79392","signature":"298afd933a341436221f85ed65c318b039766cb88d52bb9db80cf1fe05761b1d"},{"version":"00a7dd9830e9077da3b9ba9f117bd55084384a14031698a61a648781dabdba3e","signature":"f31e2e2f2f7cb48ccd1cd0d368908f6dab09143e58a33963e11ff62d12f09e1d"},{"version":"d8e818134c5567ac231440610ee1b536a3fb394bb5f15e08e69891f28baa4be8","signature":"37e5512847e933c4a48931d70750100f0ecbeab95982966ce2e744edcc823c6d"},{"version":"8e19e1f951eb4474fdecd357fd3b2b5d9c79ddf1c771fe7d4abd2ea814cb45a5","signature":"5241de7f90eeef61171fb47e1c387be0159580b53442d4a1b18bfb5e9a46f547"},{"version":"57a8ee5e182a1c452924676372e23e55e8255977b120c99f7ed73240103ed00a","signature":"93d97c4129ff381eaee4eb3fdc5e44d4a176139ab905c5861541036740aa62cc"},{"version":"3a857a69bd586c5f11ae8e3c6e5eeae15cf380b000ea4c595f5c0bc038fcb564","signature":"11672e8b051cd808217973f89dc1f6a09d5eec1a2ccdc217999d4494cf700d86"},{"version":"5cf9e41bc5aa4e393dafaffce7016653513254d91e53b67057e52455089e1d59","signature":"0a26c84b09a52e23caa4823f8557ced7917faf5017b787d73a6042e624517d98"},{"version":"2231655ab7a1a428f2d4ca3782fcdfceef380ca43cf50b1f6adccf0c5f3e39b1","signature":"f94f8374e3a8cd1bbdc136dbc7d0ea7a726ec6965918cdfefa8d7a6e9937c47b"},{"version":"087d08041529532beaeea7977703aee141e978c0c57eba7202a4a9b2eabfb1b9","signature":"246b8ffc060fd89e8017c49af2640de37c729050d8455a13b9c5b7aa2fb0f08c"},{"version":"a89187b2b756faf7c596e219c665d9b79cc53f09d57bbb2873121220b19c54f3","signature":"cc88a64b265fcd7a8abce877bc643aabd7f3612d7be324b4374a1fe33766e601"},{"version":"015ad3ca7381ab4a97182d1dd892df5597c60312a4e9df2b0d668976fefa2ee1","signature":"e0021060d2b95f6af5ab3cec49a341783a974faab5d26f0fc87ded5d82a624fc"},{"version":"dec4ace3d5cdf28092772affa5684941655ed18a5ca773d62e2fbb3c1771ed8e","signature":"2e9e7c17b99af18a3085e059e7a8e82099e7dc26aa8cce33f7f4430433434292"},{"version":"c8fa290dea80a99778d51b1c869cbc2bfbfe548454d15ad2a751375aba0e4044","signature":"68e493100a91bec5b7fa0d80e8c1e449a0584bf63348529e954a511c8a96a2e0"},{"version":"2d8b0934a4c9711e82f6f454120f696722d5cfe27372799180d3a804a1abcf5c","signature":"53f932d15ec8fb35c18ac166550dde2ba4f665cf1653dda762fbd11e3ac24ba7"},{"version":"733ab248ec57592e94cf9ff4d9dd7d04d7c312e786c07ea101e1e24f238e615b","signature":"984cb284f65f40af5423b50544c5c77dc51384a32139ac6d4ce2ec4602976cb3"},{"version":"287dc43f37d75e53182a8d9519245ec6593d2d15a0b39b1886e88a7f7954df19","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"3c67abbfaafc431b1f07e8dcee7d7aa2dc94cb379c2f1c494ebf579096121cad","signature":"0e8f1980aa851531881e473244746608ec37877bbd4b503987e592ac77168442"},{"version":"cec3a0c5744abee5f5c73c8e960688b782d7c79740f3d0ba15bb715a301ebec0","signature":"761f85978d69b881375065c748dbb20710d3ebf3236571c3c16543c2ef315589"},{"version":"5546efad55e63c3777b3ac07dc44fd272e6cbde200f8631c23005deb99d4e704","signature":"042ed4c98cda8201850270e381f0d82bbc3424eb36d8ab88e025ee67be91f589"},{"version":"7c5a18b6d8ae1b5484b214cf52ecd9736ddfc193261dbaf30d1d1245026cccf3","signature":"b4fc4331ee2d938b8885d76bd634494b5449bcba6055633c66c232b61547623d"},{"version":"10f47caa205469e1710a3696faf37d0c16471fcc059c464f8e3e174bc7c6a010","signature":"43ac9e94f7db0b979d200dd7f5f6b8ea42a8709c360a2bb66ac93c010d9487aa"},{"version":"b35c438040de40d6c6418b92683439287e7d177b83dd56e599e095f668fde824","signature":"ae40f71306e001aa758729fc1f8d7d7026975f882d1d5d1e075decba40390afc"},{"version":"2b924bcc06de44e4dadbeac419aa4c05c83d76b118f6556db1fbdf632c0885d1","signature":"3e440f79c8d1fd845c9a602ad25944b7511c67093e0783b3b4979ce4a32cfad3"},{"version":"8c0208fe063bb35c4c5dc7957e5b0297c48451ad10d997c82aa10f713c348427","signature":"2f4f50e15124fadc5d1b6683b3dc58d46bc99acb325247e792a1482614150fa1"},{"version":"48e2aa44ec54408dac40d9c5983afbd1a1631661b687741785abec5141ab1b5a","signature":"925c9dc40e6ecd6b4c0b9e07b8370b3ddcd940644cd11a40cea9416ab947c67a"},{"version":"56319fe22cda0f2bd339e453cf1d563b2780cfbe641143a1bef13450deb7219f","signature":"3fe55f75f5fe7cce537ab30c3c54cf7cdc9e9cc168926ad6b4cbde0a42994fac"},{"version":"315543dddc2fc6ed838307606a3474e04604f47927aa68ca4c37073fc344b6aa","signature":"c0f9ac0b3adc53b6e829e1db76d88d8bca7c495cbbba75087632d4a4a44eeee7"},{"version":"f6737ad4263270016bfa3d506d1b0b3e75dbdfa7d5f6870543327b0804d425c0","signature":"e81be74246bb1236ab6099d74eab5dab723daa90a5c8c9a015acc465450a1a45"},{"version":"87f71f76bb0547c92f8ec349c83489496604c6c62e579903cbcbaf55b3b06359","signature":"6e09c39eabc1bb77c07cb584b4031dc838f082a4d49cef225d5269de4f693dd4"},{"version":"992d32d43b4c56a8864f73c287555c672e3ab082896fb61075a830b960660009","signature":"51c4a8455f4ba936a67b3ae6fc730a20cae29cbc6823109859d63c8c91cd2b5b"},{"version":"82628f1b4ba34e036dac2f6c5a2e2684f70c7e0aed5eed8853cd0cbde51439dd","signature":"6b996f9d72b7e75137c29c3c2881dfb032d8ecd1641386fa1baa34f258b8fffb"},{"version":"308d7bcfc0424942a792eb52a0cadc6beee12791f4893b4ecf5abd505236f2c9","signature":"53fe5f0dded067f0d80d9a13110c3c709ae6c71761f63ce97e1135437e0e64fe"},{"version":"b4771ffe3027e36a45504d4cd922b03b9ffe78207fa50afc8e9d57b36f778aed","signature":"a547f68c0f67a714571e594801540503612d250167c2e4402ee8e6a91d10528f"},{"version":"e75faca758d6f76a07490df0d87737d07438eabdcc0676ba91cec12ba3c6fd57","signature":"2485a93fc4ae8d148770a8dc0071fb70971183297b97ac65a5b6aeda2c79e049"},{"version":"8ecf39833788a1bd5ecba0a9cbe4de046f853d9b51216a7dfb4074a8db01641b","signature":"9854e74121654f999ea6569dd270d4c6638a9171d25c27b2135c085d08bfb318"},{"version":"49a08e16cdc9f764eb89a9d477144090cba91f7acc9685c679872c57db9b4a4a","signature":"e4055cad894bfe4f8b80923ffa69103edbbf82946cf5ac526a827fc49b7fcb0e"},{"version":"a66d3b4558cfcfc6930020380f85682502d8e66475dea90d406aa4e8aa373c99","signature":"4d021f62791c89ca27c568f024c3b95af0b5073d42d31b82b6185decb085a6c3"},{"version":"b8d5d63104a711901e2fdc5c09d08b2253fe8a4c79e13a9b91353713297692cf","signature":"02b228dabeb1b318a700b1a2681ce019afec85b179dca45e5e8a499723cf8011"},{"version":"d41a42ad79c9d6d0d5c631c638b509a6a0b0a4fb77f2a14dbfcae97fc0d7e270","signature":"faa2bd9cfca54191522ce8b5fbfeb91c97b9274cec10c64e68c367ee309ee9a3"},{"version":"7c21445fcf090a77169942103726fd167005816bf683a435a95fd14028e79912","signature":"72f7b89360cce8750153b28463d90875c036e262a9c3019d2aa0392b585902b8"},{"version":"6309398efdd3fafe020aa80881c7636e7225b4a4a996a67fb8be83676e6a1766","signature":"98693d30664b5a8409e105376e439556a5e6dedde7faa346a622169d21c93673"},{"version":"c2fb328f89f25bcb5cb08ae324b5f0818cc5f07f4ac266163a3f8e8ae69d4d0b","signature":"26f52696a7af3d1bed6dc010f3aadd2c8cabfaa70a0eeac56d99686082b97ad5"},{"version":"0a10b37b32fbd0fd1961dceab80b14afef3646708f8d0c2fa507bc363050690e","signature":"903deb7a867f20a543d928345331e792c03665541b3810da43f1866c6c575af2"},{"version":"3869b8dc38f5ca07dc2317259c98881ec2227cb89ff6489e7509635022c72d89","signature":"d72e8063c558cdd6ef2dc982f43c0f659a088adc9cdf9fbe70ed021c77484cca"},{"version":"103ed395e4ff923110e3db2cecc94584ca6c67594d220a7a258dd83aa4a4c90c","signature":"ae63cdd9be1eaf2332468a06e8d5deea6ff78bafc66efb90be313a6c398fc178"},{"version":"c0aab8aa5bc3244875e83cc0f091221d58ef535c2cb336b1449c64187d00398a","signature":"8ac15c4bfcdf83dc55eebdfc0bfb36e02905810a0a982faa4094ab79855bb308"},{"version":"1437c7f5858fb37c73c2a05c3825a714ab6f3cd54bcb7bb2831e928d08dfcfc5","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d336e2842c7ad6f757d182759869fbab5ee3c26c01e01ee607c7bad82d5f5fa8","signature":"429248d7944f5b776f5bcbfeeb0be199219fce3df503bac8cbc50e1fcf70dce1"},{"version":"e05e9523ee4300c287cff0b0382dd3b6ba520796a7362a2285997035609a7e6c","signature":"033fb6f6bc68a077d2d2cb09c1522d430ff64114a50019315aef3a65bb7a4af9"},{"version":"8d32443bbe4ebbfca0fc254c7757bbb6c7084900a0c6f513cb28491eec1d1309","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"40ee5363c8d2ef9ea43fd4f879a025d99d2e3f4811a78920dd169cb516541c7f","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"c078bf0cf8879269e3ec0e425cc642a55390bb0223e33288af7ff4302fa37550","signature":"589de113a7b0f2af5b958f2b069a7d2573a9546799d9a206dfde39efa8fa098b"},{"version":"092f00cbb4c36cca9e406f271ecc8d66d30663fdddee90e33daccf4fad91c0b0","signature":"8f52e26b82036a21ef02c65ef325d29a928d547666d7f8d310c66c539aff4270"},{"version":"b528df67feec9212f224076741f20718c4ebf3a0a997b44ef4b6086d8fcaac65","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"1083d06f422574d0c14f1092638e566a2b01c64fbb2cbcf7db8ceb7c4837104c","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"45bc4d047c886ab9b6d33fcfd9c407fbcd85a86338e317a9f7e9de41712c5f2c","signature":"f2d9cb4dc3408d8c96be87a250ae8fded3f4f1e1a95cbc6bc5d5175ec83c31ee"},{"version":"857bbb619afaa3f44eebe5c3c9b945e4c67809ad9c773f62241578c989fba6b3","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"db80bfb52f2aa3db3e969d6dacc92161c8d290657a6cae7444c5568e520204a0","signature":"7c36285bda96bebb8aeb90a16175e65fb39ddb4efb0be8fb23f892f3975d1284"},{"version":"ff61e1c2960bb2b5a63d737efdd881bb59620e5ed1098f8822229e26cc42e595","signature":"bf8ca0b265d0278db8022889f56bfed195f74f080273e31efff6057e979f2dc3"},{"version":"34d846061a08d3e6fbcc89caa7ca35c9a87ff05dde8a0af097f744f9006f779c","signature":"1132689b73e5e1becf4426fd24a8e29654e153d737bbce013bf8ac045a5f7798"},{"version":"64349378a2c0c6f350819611d4c013264a6c2b21530b5077de422a34e881508a","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"eebe80f7676496d904de7a0cccebdb7b1463a4f14a4e8389d36838b55c3171bd","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"6f074e9fa941991cb32da6f25b164ca84c5e68d971e24d30c3efcd206f426a7e","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"0ba430ed8a408a86454842dfc2eb506858ad7d531725c1e754f158a72eec130d","signature":"4457315d4b47ae0b46cef30602a35999d6751240f1cd6a7fc53daa33d0d6cfdc"},{"version":"8b4000d1fae0b12844500a68d3f62e4482e05a4d51491c733cd19c0ec51bbd77","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"a14f4261b9b324956aee398fb3c450cd408fcedf087d5f454bea2daaa4a5ca90","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d74df3a425cf8caa3df44327225fdcb04d2ac6e70578e7d3146dc85b3b4e9841","signature":"df446da13d0ff7fd3c7b108ac9a5ceee3c38a26df6dc24ce721379fe85a1967f"},{"version":"d447c78d30f35430b1c83e453f2249baae51df637f06c39d117eb52dd84ba5c8","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fab60b3dfda338a1a1d53c9f8e51620d06945145e46f70284668649caa355e74","signature":"454923ba54e9232e88d84d89499377cdd502d1d26d463739b218a3b85c5cf66c"},{"version":"e6d0bc31c6335fd1fd94a4163e40b96335e3d7d3b35079a22caffe74766d6e61","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"65ef1177609cb72e66023b9a59b6dca25e03a805458251be57c9906f1ec026e0","signature":"3f6ee39fd1af27ff3c0eba791cfec9e76e6fba45c4a60cc77a7a51361c5f4502"},{"version":"c0f165462ac8113b6e38620cf07ccc995c3df2778a6a62e341acdf03aca1d722","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"641e130714be1c625ea1bbec882ef94ff08ca8bdc5ed2086b8673cb3a2b5c61c","signature":"42cfe24e606333169cefb1713c33ea837ac27f6ba89528381dea393e52b39666"},{"version":"d1be997d2035e874afb562cc28a15568a27186e84d8aa4e2b37d64f6183c21a8","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fa557a769b780420ac070351e332af196f693e0cb8feac75ccdfec911b3f9b82","signature":"0ee9541abbf67ab14c3ebedd9ac350e45f40005910e7aa2f74c79888dcf524c0"},{"version":"8502e84dab02317e48a05ced2264616f975718ac6741c41bb2f4167172ea3262","signature":"00ec49a2de44e253afd3e4e0aa276921a2614528be82e1dfe33e9e6c1d36c50e"},{"version":"434919115eca15c8acf51336166b1b42bc22c92b9cb57fa85a4f4d0d487bef30","signature":"f0534b73f74b32651a6c0cc87cbd3c68abc8d525a221a8fada57bbcc0504439e"},{"version":"3f18ed0387ce51a0ae64258ce038558adce72107da04c722fcd106bd0bf435fb","signature":"3ed3607be89c07d5f0e4898f60ce23ba66e484d1259133f3617b0cbd10a41432"},{"version":"dc69a9016516ab0d8dcb78d66461243487cbdbf0740eb3a310546f631d77b7c9","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"80602776f7578051c41d44e27ba7fb5e1da0d372d5dee46441c1533c84fadc20","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"504cec130a144a59c970ae5450f03d4282802a2def022535b9c6b723f1566444","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d2a1c5e07f8255297a6096e8d495397a7e6966233d2d74ed20f29b25d4e45a5b","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"314557bb4d6b5d1c0505cc297556c06cecf778f861faf5b24994bf03bd12840d","signature":"91f0f6ac4a023958bff61b37cda5b32ced352785b2bd5a868d4a4b6253b9b4eb"},{"version":"0cdafaa8a286744d0116fe3f6f4618b02791f16570c48b199a1700caeef35360","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"345b4e71ea1925d5a96a3467c0b28748846795f09ce1e15dc7ea8ef75941369b","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fdf9d602c50ac8cd4d910ac58bbe54440cf63489e7231e7019ab2c82f9096d6c","signature":"b4b289abeb37159a42356b4850bb9ea3175613d9b0766b3a9696ebe03f4d8b25"},{"version":"6c520daf55c8096bb83d8a0322f148000d754c34d9c47b0a5fc73712b81f5a39","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"85ffc9f739f8afb45b07555e07d44fa3a98a781040b6378520e9e2f401913d86","signature":"dde0c5f2d4a44a6df40d34e785dc9acc1155fbcbc3333dc14d30f074c0920217"},{"version":"d1cc9adca2a645642ff4931a13db670d57b6873e9553f651308e012b2ef8b61f","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"b4779aa71c3185c6f79bb03e827eed2e72c0d9a5050bac60cf96179729c099aa","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"653a7956fab9c3b54280ffa220b8653103cb5fb1248d1a0ca9d4d5367e059ad2","signature":"1b3345c339caf9085207ce8165bfb2a41e8532cebfae2f56522b070f9653f2e5"},{"version":"79e85a7daf41abee7e7a143147c115319dc7ad7318ffee4d5a76f1187e3ba1b6","signature":"ff3d8b83b6761638ee9c876d483be297d79d7a938e9b13c25c7bee8a02ff2a07"},{"version":"24e5215d5985807f3f9b281a1aaa84f2bd7d8a9129deb232effdbaa3069fbfec","signature":"81b9825a81df750ea629ca755230e6857fc5a2bf4f963c6b73c648e341c2cc02"},{"version":"3f73c2fd95c077468c7859450ab47c417d55ade34337c998970e60fd0a3285c6","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"3276373f20c937619e123b6eb1f8fa7576d7ffa9d30af4f4112c2f7ad7ca47d7","signature":"a67f2290272db3142c5f4ca1dd72887b73a2cfc86236f839d6a7896d273ab987"},{"version":"d4b08de1fbb7996f56d096097896af4aacbb8ac7103aa92b8930f70128460a1e","signature":"6e8af5e2db58d7ca05a6c28e74a6a65c6f6891106b532a25894d7947bcb252c1"},{"version":"96106e10b97b9c62432b6de7b84575f233c3000711e1b99ef0ee3abdb59680c8","signature":"9a3a0d54096969f74557250a6b6dfa4712dee627ebb210e6c3930e46fdc8950c"},{"version":"cbac98b0440a21b4a72f5dc7ff5bd774fd0ead37a7ea829369dda84e9406d961","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"5d9551b82575b9329bffb738a21e33ed9cb8d5755b0fea27ef304cd37904e2d9","signature":"2f7de90bceaed25d04bedf29163ac4f4a65cac56d5a5209c97033fb79dc7b5b6"},{"version":"9aee9555c4cd0f66e8c9247acb0bf387c8323255bdc9e493596facf6a5e877d7","signature":"72afdbd13065a870397e5477a0a956ab9e433018fc1d2949813d0705eceb02f2"},{"version":"918325a1a0ab41a28a431d3700e08717bc99edfa9958d21a2d355984a7a626ba","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"c553e6620bd6fe7f97104da5ff0e043143ee0c8a0460910af52fad7fdd8341fa","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fa895de98c25a1cc6147d6aa8bce6ed0a7321d6c824ad3e8768ac6df7eaa6a8a","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d54529da58e5c2d0f93c24ddbfc8b21d0eaaad0f296e6085880c625df93e2bf4","signature":"8b812361654787caa90ec94c2b062bb6718536a4586f47654a40a46a47dadd45"},{"version":"3179f79ad8cbd74fb73f517ac427f877d99e07ce15a69249db8a8a22cae008e1","signature":"100cdb3741c5433db7450deafda66c05f7f4badd1cc4800fb47e549387af30a4"},{"version":"00f0ade6b490686bc672d1a3b965c89d6bb1622dc266079ede8641378ecf2a14","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"16d259f5a9c4db34ff0a12ea34a08874b7ea634d6519e28d8c3447a531216388","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"de06796d5707d52de34dc4f0e9d65864fc7d944b7793994ff30b3983a38671ff","signature":"a5a12f3bd25d408c2b3403c95c45b63b66f22479a8a83e5f06d4a69ad1397532"},{"version":"e363f5de6227f406bef0e2d15a76f31f396adceada2d268b5cf5906cca8f6a19","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"6f24aeb6483abafd647aba55f229c14359aea9cd9ec1f5ed807f5dff8c1ea50d","signature":"32a58ac4fb580e18cca326fc5df3ae0cd5ff48f09e6acdb17f92d24c5aab3d4e"},{"version":"197d9e97ecf41553fae8b9e637b2169c5d39a008e211f5eed7cf061ffc746f44","signature":"2a56342af1adb703f27671c430f122167465f7846c5045b126ad169ae5bc427c"},{"version":"d51db73ca308568dd33419536e39ecb8f99aaf9653b96c0e00cc2bf0ad272f6c","signature":"6af9c9cf1c4c568719bd14dbc93eb8195a6dc9befe982b0d69ca4367b7f85acc"},{"version":"62d2ae9980f4e08b28c11e3f60e608bc2a805a3b02aacc3582abb258be62e48e","signature":"19989008e43ba54e0ab417eb18bca7744c3c62be777d9c9c30e7227779f8d661"},{"version":"08990d6d4a6a6d03e36c488a2d0b09a0073fc14e16ea27b7e535591e26b590ab","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"020b37b6296174b826055de7b85cd05e1eb8f3266f147615c8146af740b12c4a","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"158131065919826ac46aad3d6fe2c461200d1bc6531fae007ba8df8dbb7023e6","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"77dd810d73b28fe0450fce5b138999fc4ef677fc98bcebda054afd10026c7ecf","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"37bb66413859c3dbcbfe24678f645c45e34df5a222254712b45b0c6e6b461555","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"2d47d7f2f07a75670ba2e2808c895e002765bdabe4edd27e5c8403970507bc60","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"924d1beb2a895c13dee5f86054d24c5177f2495085044ae1fb193615ce133b59","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"fb954fd45b91f0b21fbd406ae237f45637e22bd401e1ee1cb54ff0c213ee00c8","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"95ed8811666f5130e441b5a4122b35b24b4579c76b7dfa067c16788f9bc08883","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"abef5ea025b59ea53ecea220f12462e61132daaae83fb4f7ce07a1ede8946fb4","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"90279897307ff19b886ac908c5a26a3f50802258a0ead61a89ba990f1e72e8c0","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"adf2f57bdaaa5a479868ac68fa0a016d06e3329ac6de38b505d9f72272c03257","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"facc5ad89c91367b9073e1460afa4dd59204283d286fcbdeb06c1bf079b76e80","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"f88841c2b5cd38cc070778aa22b760c9e5bbabaf29bd32242e350edd5a8e96ab","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"68c0f599345d45a3f72fe7b5a89da23053f17d9c2cd5b2321acabe6e6f7b23b3","affectsGlobalScope":true},{"version":"fd6f0bb5bd5f176b689915806a974cdb12a467bdaa414dc107a62d462eb7ddd5","affectsGlobalScope":true},{"version":"861d9f609588274557802e113bbec01efe7c0bba064c791457690e16bd86a021","affectsGlobalScope":true},{"version":"a1819d8e80fbf3e8d7acb1deafe67401ccad93d59d6a2416bdfc1a1e74ee7c2b","affectsGlobalScope":true},"bc1ba043b19fbfc18be73c0b2b77295b2db5fe94b5eb338441d7d00712c7787e","8ac576b6d6707b07707fd5f7ec7089f768a599a39317ba08c423b8b55e76ca16","15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true}],"root":[[19,1167]],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":5,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitThis":true,"outDir":"./","skipDefaultLibCheck":true,"strict":true,"target":7},"fileIdsList":[[1168,1169,1170,1171,1172],[1174],[71,78,85,96,111,153,168,170,185,188,190,197,198,213,221,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[58,78,79,85,89,90,94,96,110,111,117,123,125,153,165,168,170,172,173,183,185,188,190,195,196,197,198,199,201,204,211,213,220,221,222,225,229,230,231,232,233,248,249,252,256,265,270,274,281,284,286,287,288,289,290,291,294,295,301,303,304,307,308,313,319,323,325,326,327,328,329,330,331,332,336,337,338,339,342,344,350,351,352,356,358,364,365,385,386,387,394,456,464,475,476,479,481,483,484,505,509,511,514,552,557,558,559,561,563,576,578,583,588,596,599,623,625,634,640,656,657,680,707,710,725,736,829,1021],[27,33,73,204,213,223,224,225,226,228,229,333],[195,225,235,244,245,270,271,276,277,278,279,281,283,333],[27,220,223,225,226,230],[27,38,71,198,213,220,222,225,226,230,232,283,284,285,333],[56,75,78,85,97,109,111,114,117,123,148,152,153,154,155,170,183,186,188,189,194,195,198,204,213,220,223,225,226,227,230,232,295,299,302,307,319,327,333,348,350,363,364,368,387,394,396,452,455,469,472,475,477,482,483,502,516,549,552,557,561,569,588,599,623,624,625,630,639,643,656,657,680,736,829,840,846,925],[27,198,204,213,223,225,226,227,230,256,333],[71,75,204,213,223,225,226,230,284,300],[27,185,198,204,213,223,226,230,284,333],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,188,193,211,213,220,232,265,290,319,333,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[188,198,213,220,224,226,232,284,302,333],[78,188,195,198,223,226,230,302,303,305,307,333],[23,27,56,71,78,97,109,111,117,148,152,153,155,188,189,194,195,198,204,211,213,225,226,244,245,285,289,327,333,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[63,78,85,96,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,195,197,198,213,220,222,223,224,226,232,233,249,252,256,274,284,289,294,295,299,306,313,319,323,325,327,333,336,337,339,344,350,352,356,364,365,385,387,394,396,455,472,475,476,477,479,481,483,484,502,505,509,511,549,552,557,558,561,569,576,578,583,588,599,623,624,625,634,639,656,657,680,736,829,840,925,1021],[27,198,204,213,223,225,226,227,230,325],[27,31,78,85,96,111,117,124,129,153,168,170,185,188,190,197,198,204,213,217,222,232,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,383,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,728,736,771,1021],[56,58,78,79,85,89,94,96,97,109,110,111,117,123,125,148,152,153,155,168,170,172,183,185,188,189,190,194,195,197,198,211,216,220,222,232,233,249,252,256,265,274,284,289,290,294,295,302,307,313,319,323,325,333,336,337,339,344,348,350,351,352,356,358,363,364,365,368,385,387,394,396,452,456,464,469,475,476,479,481,482,483,484,502,505,509,511,514,516,552,557,558,559,561,563,569,576,578,583,588,596,599,623,625,630,634,640,643,656,657,680,707,710,725,736,829,846,1021],[55,79,89,90,96,153,165,168,173,196,198,199,216,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,482,558,559,576,596,680,1021],[27,198,213,220,223,224,225,287,333],[198,213],[65,232],[27,52,58,78,79,87,89,90,94,96,104,110,117,123,125,153,155,165,168,170,172,173,183,184,188,193,195,196,198,199,208,211,216,221,232,241,248,256,257,265,270,281,290,291,292,319,330,332,333,337,338,342,344,348,350,351,352,356,358,363,365,378,385,386,387,394,456,464,475,478,479,482,483,509,514,552,557,558,559,563,576,584,588,596,623,640,641,656,657,680,707,710,725,769,829,1021],[79,87,89,90,96,110,153,165,168,173,184,188,196,198,199,208,211,213,221,232,248,256,270,281,290,291,292,330,332,337,338,342,344,348,350,351,352,356,358,365,385,386,387,456,478,479,509,558,559,576,584,596,769,1021],[330],[79,89,90,96,153,165,168,173,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[25,27,37,73,204,213,220,224,225,226,333],[27,37,213,220,225,226,227,228,333],[27,38,78,85,96,111,153,168,170,185,188,190,197,198,213,220,222,225,228,233,249,252,256,274,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[27,73,188,195,198,204,211,213,220,225,333],[27,220,225],[27,33,213,220],[27,213,220],[204],[26,27,74,124,188,198,204,205,213,217],[27,32,72,73,204,205,213,214,220,385,455],[19,22,23,24,26,28,32,49,58,65,75,78,79,87,88,89,94,110,111,117,123,124,125,150,152,153,169,170,172,176,183,184,185,188,191,195,196,198,201,204,205,208,209,210,211,212,213,214,217,220,221,232,256,265,274,290,292,319,324,332,341,344,348,350,351,352,353,355,356,358,365,378,387,394,455,456,464,475,478,483,501,509,514,552,557,558,559,563,584,588,596,623,640,656,657,680,707,710,725,769,829,847],[32,56,78,79,87,89,90,96,97,109,110,111,117,148,150,152,153,155,165,168,173,176,184,188,189,194,195,196,198,199,201,208,211,213,220,221,232,248,256,270,281,289,290,291,292,302,327,330,332,335,336,337,338,342,344,346,347,348,350,351,352,353,355,356,358,363,365,368,378,385,386,387,396,452,455,456,469,478,479,482,502,509,516,552,557,558,559,569,576,584,596,599,623,625,630,643,656,680,769,846,1021],[345],[87,110,184,196,208,232,256,290,292,332,344,348,350,351,352,365,478,509,584,769],[88,152,153,185,198,341,352,378,387,501,509,558,623,656,829,847],[65,87,110,112,184,196,208,232,256,290,292,332,344,348,350,351,352,365,478,509,584,769],[87,110,184,188,196,198,208,232,256,290,292,332,344,348,350,351,352,365,478,509,584,769],[19,22,26,33,36,39,40,79,87,89,90,96,122,153,165,168,173,181,185,195,196,198,199,204,211,215,216,221,232,248,251,256,270,278,281,290,291,295,299,322,330,332,337,338,342,356,358,385,386,387,450,456,472,479,482,558,559,568,571,576,588,596,776,1021],[211],[32,58,66,78,79,85,87,89,94,110,111,112,114,117,123,125,148,150,152,153,155,170,172,176,183,184,186,188,189,195,196,198,205,208,211,212,213,232,256,265,289,290,292,295,299,307,319,332,344,348,349,350,351,352,353,355,356,358,364,365,378,387,394,396,455,456,464,472,475,477,478,483,502,509,514,549,552,557,559,561,563,569,584,588,596,599,623,624,625,639,640,656,657,680,707,710,725,736,769,829,840,925],[32,56,57,58,63,74,78,79,85,88,89,90,94,96,97,109,110,111,114,117,123,125,148,149,151,152,153,154,155,165,168,170,172,173,183,185,186,188,189,190,191,194,195,196,197,198,199,201,205,211,213,215,216,221,222,232,233,248,249,252,256,265,270,274,281,284,289,290,291,294,295,299,302,307,313,319,323,324,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,356,358,363,364,365,368,378,385,386,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,501,502,505,509,511,514,516,549,552,557,558,559,561,563,569,576,578,583,588,596,599,623,624,625,630,634,639,640,643,656,657,680,707,710,725,736,829,840,846,847,925,1021],[56,58,74,78,79,85,89,94,97,109,110,111,114,117,123,125,147,152,153,155,170,172,183,186,188,189,194,195,198,211,213,214,216,232,265,289,290,295,299,302,307,319,327,348,350,351,358,363,364,368,387,394,396,452,455,456,464,469,472,475,477,482,483,502,514,516,549,552,557,559,561,563,569,588,596,599,623,624,625,630,639,640,643,656,657,680,707,710,725,736,829,840,846,925],[65,153],[87,110,111,150,176,184,195,196,198,208,213,214,215,216,232,256,290,292,332,344,348,350,351,352,353,355,365,378,478,482,509,584,769],[87,89,110,155,184,196,205,208,215,216,232,256,290,292,332,344,348,350,351,352,365,478,482,509,584,769],[19,20,58,78,79,87,89,94,110,111,117,123,125,150,153,170,172,176,183,184,196,208,211,212,213,221,232,256,265,290,292,319,332,344,348,350,351,352,353,355,356,358,365,378,394,456,464,475,478,483,502,509,514,552,557,559,563,584,588,596,623,640,656,657,680,707,710,725,769,829],[19,23,24,32,78,85,86,87,88,96,110,111,150,152,153,168,170,176,184,185,188,190,195,196,197,198,204,208,211,212,213,216,220,221,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,339,341,344,348,350,351,352,353,355,356,364,365,378,385,387,455,476,478,479,481,482,484,501,505,509,511,558,561,572,576,578,580,583,584,588,599,623,625,634,656,680,736,769,829,847,1021],[111,150,176,184,211,212,213,292,344,348,350,351,352,355,356,378,584],[87,110,111,150,184,185,196,208,211,213,220,232,256,290,292,332,344,348,350,351,352,353,355,365,378,478,509,584,769],[19,20,47,58,78,79,87,89,94,110,111,117,123,125,150,153,170,172,176,183,188,195,196,198,208,211,212,213,220,221,232,256,265,290,292,319,332,344,348,350,351,352,353,355,356,358,365,378,394,456,464,475,478,483,502,509,514,552,557,559,563,584,588,596,623,640,656,657,680,707,710,725,769,829],[21,22,26,71,204,209,216,482],[21,22,26,39,71,204,209],[32,65,71,124,198,204,206,207,208,211,213,217,344,455],[32,87,110,184,196,206,207,209,211,213,232,256,290,292,332,344,348,350,351,352,365,455,478,509,584,769],[23,32,78,79,85,87,89,90,96,110,111,153,165,168,170,173,184,185,188,190,195,196,197,198,199,201,203,204,206,207,208,211,212,213,220,221,222,232,233,248,249,252,256,270,274,281,284,290,291,292,294,295,307,313,323,325,327,330,332,333,336,337,338,339,341,342,343,344,348,350,351,352,353,355,356,358,364,365,378,385,386,387,455,456,476,478,479,481,484,505,509,511,558,559,561,576,578,583,584,588,596,599,625,634,656,680,736,769,1021],[342],[79,87,89,90,96,110,153,165,168,173,184,196,198,199,208,221,232,248,256,270,281,290,291,292,330,332,337,338,344,348,350,351,352,356,358,365,385,386,387,456,478,479,509,558,559,576,584,596,769,1021],[87,110,111,150,176,184,196,208,211,213,220,232,256,290,291,294,332,344,348,350,351,352,353,355,365,378,478,509,584,769],[87,110,151,184,196,208,213,232,256,290,292,332,341,342,344,348,350,351,352,365,478,509,584,769],[56,63,75,78,85,87,96,97,109,110,112,114,117,123,148,150,152,153,155,168,170,176,183,184,185,186,188,189,190,194,195,196,197,198,204,208,211,212,213,222,232,233,249,252,256,274,284,289,290,292,294,295,299,302,307,313,319,323,325,327,332,333,336,337,339,344,348,350,351,352,353,355,356,363,364,365,368,378,385,387,394,396,452,455,469,472,475,476,477,478,479,481,482,483,484,502,505,509,511,516,549,552,557,558,561,569,576,578,583,584,588,599,623,624,625,630,634,639,643,656,657,680,736,769,829,840,846,925,1021],[22,26,36,55,58,71,78,79,87,89,94,112,117,122,123,125,153,170,172,181,183,184,196,204,205,208,211,216,232,251,256,265,278,290,292,295,299,319,322,328,332,344,348,350,351,352,358,365,394,450,456,464,472,475,478,482,483,509,514,552,557,559,563,568,571,584,588,596,623,640,656,657,680,707,710,725,769,776,829],[22,25,63,71,92,110,111,124,204,211,213,217],[20,23,26,32,71,86,87,110,124,184,196,203,204,208,211,213,217,220,221,232,256,290,292,332,344,348,350,351,352,365,455,478,502,509,558,584,769,847],[32,87,213,220,335,348,455],[221],[52,87,88,104,110,111,117,146,150,152,153,168,176,184,185,188,193,196,198,208,211,212,213,232,256,290,292,313,332,341,344,348,350,351,352,353,355,356,363,365,366,373,374,375,376,377,378,385,387,478,484,501,505,509,511,552,558,563,572,580,584,623,641,656,769,829,847],[87,110,184,196,208,216,232,256,290,292,332,344,348,350,351,352,365,478,482,509,584,769],[23,26,36,65,87,122,124,181,203,204,213,216,217,251,278,295,299,322,375,378,450,472,482,568,571,588,776],[92,111,112,150,176,184,198,211,212,213,220,292,344,348,350,351,352,353,356,378,584],[78,79,85,87,88,89,90,96,110,111,152,153,165,168,170,173,184,185,188,190,196,197,198,199,201,208,211,212,213,221,222,232,233,248,249,252,256,270,274,281,284,290,291,292,294,295,307,313,323,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,353,355,358,364,365,378,385,386,387,456,476,478,479,481,484,501,505,509,511,558,559,561,576,578,583,584,588,596,599,623,625,634,656,680,736,769,829,847,1021],[22,25,26,27,38,49,56,58,62,63,64,66,70,71,75,77,78,79,85,87,88,89,90,94,96,97,109,110,111,114,117,123,124,125,130,134,145,147,148,152,153,155,165,168,169,170,172,173,183,184,185,186,188,189,190,191,194,195,196,197,198,199,201,203,204,205,208,211,212,213,217,220,221,222,232,233,248,249,252,256,265,270,274,281,284,289,290,291,292,294,295,299,302,307,313,319,323,324,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,353,355,356,358,363,364,365,366,368,370,378,385,386,387,394,396,452,455,456,464,469,470,472,475,476,477,478,479,481,482,483,484,501,502,505,509,511,514,515,516,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,572,576,578,580,583,584,588,596,599,623,624,625,630,634,637,639,640,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[58,72,74,78,79,85,89,90,94,96,110,111,117,123,125,153,165,168,170,172,173,183,185,188,190,196,197,198,199,201,211,213,214,216,221,222,232,233,248,249,252,256,265,270,274,281,284,290,291,294,295,307,313,319,323,325,327,330,332,333,335,336,337,338,339,342,344,348,350,351,352,356,358,364,365,384,385,386,387,394,456,464,475,476,479,481,482,483,484,505,509,511,514,552,557,558,559,561,563,572,576,578,580,583,588,596,599,623,625,634,640,656,657,680,707,710,725,736,829,1021],[65,168,198,256,313,385,484,505,511,572,580,656],[78,85,91,96,111,153,168,170,185,188,190,197,198,222,233,248,252,256,258,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[22,26,27,30,62,64,66,70,78,79,85,89,90,96,111,114,123,124,130,134,145,147,153,165,167,168,170,173,183,185,188,190,196,197,198,199,204,205,211,216,217,221,222,232,233,248,249,252,256,265,270,274,281,284,290,291,294,295,307,313,319,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,366,370,385,386,387,455,456,470,472,476,479,481,482,484,505,509,511,515,520,525,529,534,540,544,549,558,559,561,568,576,578,583,588,596,599,625,634,637,639,653,655,656,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[27,65,79,87,89,90,96,110,153,165,168,173,184,196,198,199,201,208,213,221,232,248,256,270,281,290,291,292,330,332,337,338,342,344,348,350,351,352,356,358,365,385,386,387,456,478,479,509,558,559,576,584,596,769,1021],[27,32,78,79,85,89,90,96,111,153,165,167,168,170,173,185,188,190,196,197,198,199,201,203,213,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,318,320,322,323,324,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,455,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[25,26,27,32,34,62,64,65,66,70,71,73,78,79,85,87,88,89,90,96,110,111,114,117,123,130,134,145,147,148,152,153,155,165,168,170,173,174,183,184,185,186,188,189,190,191,195,196,197,198,199,201,203,204,208,211,213,221,222,232,233,248,249,252,256,265,270,274,281,284,289,290,291,292,293,294,295,296,298,299,307,313,319,323,324,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,356,358,364,365,366,370,378,383,385,386,387,394,396,455,456,470,472,475,476,477,478,479,481,482,483,484,501,502,505,509,511,515,520,525,529,534,540,544,549,552,557,558,559,561,568,569,576,578,583,584,588,596,599,623,624,625,634,637,639,653,655,656,657,661,667,672,677,680,684,687,691,696,701,707,710,716,719,725,728,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[21,213,215,216,220,482],[21,215],[214,216,482],[21],[65,79,89,90,96,153,165,168,170,173,196,198,199,200,213,219,220,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1014,1021],[58,78,79,87,89,94,110,117,123,125,153,155,168,170,172,183,184,188,196,198,208,211,213,232,256,265,290,292,313,319,332,344,348,350,351,352,358,365,385,394,456,464,475,478,483,484,505,509,511,514,552,557,559,563,572,580,584,588,596,623,640,656,657,680,707,710,725,769,829],[23],[23,32,314,388,389,390,455],[23,32,455],[201,218,219,1014],[24,62,64,66,70,79,85,89,90,96,114,123,130,134,145,147,153,165,168,173,183,196,198,199,221,232,248,256,265,270,281,290,291,319,330,332,337,338,342,356,358,366,370,385,386,387,455,456,470,472,479,515,520,525,529,534,540,544,549,558,559,568,576,596,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[213,220,253],[195],[25,26,27,28,49,57,58,71,75,76,78,79,85,89,94,96,110,111,117,123,124,125,153,155,156,168,169,172,183,185,188,190,195,197,198,204,205,211,213,217,220,222,232,233,249,252,256,265,274,284,290,294,295,307,313,319,323,325,327,333,336,337,339,344,350,351,352,356,358,364,365,385,387,394,456,464,475,476,479,481,483,484,505,509,511,514,552,557,558,559,561,563,576,578,583,588,596,599,623,625,634,640,656,657,680,707,710,725,736,829,1021],[36,122,153,170,181,198,204,216,251,278,295,299,322,450,472,482,568,571,588,776],[22,26,30,33,49,58,71,78,79,90,94,96,110,117,123,125,153,165,168,170,172,173,183,191,196,198,199,204,205,211,216,221,232,248,256,265,270,274,281,290,291,319,324,330,332,337,338,342,350,351,356,358,385,386,387,394,456,464,475,479,482,483,514,552,557,558,559,563,576,588,596,623,640,656,657,680,707,710,725,829,1021],[32,35,56,78,85,88,97,109,111,114,117,123,124,148,153,154,155,170,183,185,186,188,189,194,195,198,213,217,289,295,299,302,307,319,327,341,348,350,352,363,364,368,378,387,394,396,452,455,469,472,475,477,482,483,501,502,509,516,549,552,557,558,561,569,588,599,623,624,625,630,639,643,656,657,680,736,829,840,846,847,925],[23,78,85,96,111,153,168,170,185,188,190,197,198,213,220,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,335,337,339,344,348,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[27,79,89,90,96,153,165,168,173,190,191,196,198,199,213,220,221,232,248,256,270,274,281,290,291,324,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[21,26,36,62,64,66,70,85,114,122,123,130,134,145,147,181,183,198,204,251,265,278,295,299,319,322,366,370,450,455,470,472,515,520,525,529,534,540,544,549,568,571,588,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[25,27,65,78,79,85,89,90,96,111,124,153,165,168,170,173,185,188,189,191,195,196,197,198,199,204,211,213,214,217,220,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,324,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[124,190,195,217],[23,24],[21,22,216,482],[26,37,124,204,213,217,220],[25,26,27,34,38,203,204,213,220,270,383,387,482,687,728],[25],[203,220],[203],[213],[26,124,204,217],[32,455],[26,32,39,204,216,455,482],[124,217,335,348],[32,381,455],[21,22,25,26,27,28,29,30,31,32,75,117,124,129,188,203,204,205,213,214,215,216,217,220,233,383,455,481,482,558,728,771],[32,77,205,213,214,216,379,380,382,383,455,482],[22,25,26,32,36,122,124,181,203,204,213,216,217,251,278,295,299,322,450,455,472,482,568,571,588,776],[21,23,25,26,27,28,30,32,33,34,35,36,38,73,77,92,122,124,181,201,202,204,205,213,214,217,218,220,251,270,278,295,299,322,383,387,450,455,472,482,568,571,588,687,728,776],[23,31,32,34,73,74,75,117,124,129,188,203,204,205,213,214,216,217,220,233,270,335,336,348,379,380,382,384,387,455,481,482,558,687,728,771],[32,35,36,122,124,181,213,251,278,295,299,322,450,455,472,568,571,588,776],[32,35,124,455],[27,38,124,203,204,213,217,220],[78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,213,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[21,22,23,25,31,32,52,55,56,58,65,71,75,76,78,79,85,89,92,94,97,104,109,110,111,114,116,123,124,125,129,148,152,153,155,170,172,183,186,188,189,193,194,195,198,204,205,211,213,217,232,233,265,289,290,295,299,302,307,319,327,328,348,350,351,358,363,364,368,378,383,387,394,396,452,455,456,464,469,472,475,477,481,482,483,502,514,516,549,552,557,558,559,561,563,569,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,728,736,771,829,840,846,925],[21,22,26,30,36,122,124,181,195,204,205,216,217,251,278,295,299,322,450,472,482,568,571,588,776],[48,52,58,78,79,85,89,94,104,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,193,198,205,211,213,220,232,265,289,290,295,299,307,319,350,351,358,363,364,378,387,396,455,456,464,472,475,477,483,502,514,549,552,557,559,561,563,569,588,596,599,623,624,625,639,640,641,656,657,680,707,710,725,736,829,840,925],[41,48,52,58,66,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,213,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[32,36,38,48,49,52,56,57,71,75,78,92,97,104,109,111,117,122,124,148,152,153,155,181,188,189,192,193,194,195,198,201,204,205,213,216,217,232,251,278,289,295,299,302,322,327,348,363,368,378,396,450,452,455,464,469,472,482,502,516,552,557,563,568,569,571,588,599,623,625,630,641,643,656,680,776,846],[52,78,85,104,111,114,117,123,148,152,153,155,183,186,188,189,193,198,232,289,295,299,307,319,350,363,364,378,387,394,396,455,472,475,477,483,502,549,552,557,561,563,569,588,599,623,624,625,639,641,656,657,680,736,829,840,925],[36,49,57,122,181,191,192,195,205,216,251,274,278,295,299,322,324,450,464,472,482,568,571,588,776],[52,104,117,193,195,232,363,378,552,563,641],[25,31,32,36,47,48,49,50,51,52,56,57,58,62,63,64,65,66,70,75,78,79,85,89,94,96,97,104,109,110,111,112,114,117,122,123,124,125,129,130,134,145,147,148,152,153,155,168,169,170,172,181,183,184,185,186,187,188,189,190,191,193,194,195,197,198,201,204,205,211,212,213,216,217,220,222,232,233,249,251,252,256,265,274,278,284,289,290,294,295,299,302,307,313,319,322,323,324,325,327,333,336,337,339,344,348,350,351,352,353,355,356,358,363,364,365,366,368,370,378,383,385,387,394,396,450,452,455,456,464,469,470,472,475,476,477,479,481,482,483,484,502,505,509,511,514,515,516,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,571,576,578,583,588,596,599,623,624,625,630,634,637,639,640,641,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,728,732,736,741,746,749,755,757,760,764,769,771,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[56,78,85,97,109,111,114,117,123,148,152,153,155,183,186,188,189,194,195,198,213,220,289,295,299,302,307,319,327,335,336,348,350,356,363,364,368,387,394,452,455,469,472,475,477,482,483,502,516,549,552,557,561,569,588,599,623,624,625,630,639,643,656,657,680,736,829,840,846,925],[58,65,78,79,89,94,110,117,123,125,153,170,172,183,188,195,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[56,57,58,78,79,89,94,97,109,110,111,117,123,125,148,152,153,155,170,172,183,188,189,194,195,198,204,211,232,265,289,290,302,319,327,348,350,351,358,363,368,394,396,452,456,464,469,475,482,483,502,514,516,552,557,559,563,569,588,596,599,623,625,630,640,643,656,657,680,707,710,725,829,846],[26,30,39,49,52,57,104,117,124,188,193,195,204,205,216,217,232,363,378,464,482,552,563,641],[62,64,66,70,85,114,123,130,134,145,147,183,188,195,201,213,220,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,117,123,125,153,170,172,183,188,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[39,216,482],[27,198,201,213,220],[19,20,79,89,90,96,153,165,168,173,184,196,198,199,213,220,221,232,248,256,270,281,290,291,330,332,337,338,342,351,356,358,385,386,387,456,479,502,558,559,576,596,1021],[23,24,29,56,58,65,71,75,76,77,79,85,89,94,96,97,109,110,111,114,117,123,124,125,148,152,153,155,168,170,172,183,185,186,188,189,190,191,194,195,197,198,203,204,211,213,217,220,222,232,233,249,252,256,265,274,284,289,290,294,295,299,302,307,313,319,323,324,325,327,333,336,337,339,344,348,350,351,352,356,358,363,364,365,368,385,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,502,505,509,511,514,516,549,552,557,558,559,561,563,569,576,578,583,588,596,599,623,624,625,630,634,639,640,643,656,657,680,707,710,725,736,829,840,846,925,1021],[26,30,58,71,78,89,90,94,96,110,117,123,125,153,165,168,170,172,173,183,195,196,198,199,204,205,211,216,221,232,248,256,265,270,281,290,291,319,330,332,337,338,342,350,351,356,358,385,386,387,394,456,464,475,479,482,483,514,552,557,558,559,563,576,588,596,623,640,656,657,680,707,710,725,829,1021],[26,27,33,37,58,78,79,89,94,110,111,117,123,124,125,153,170,172,183,184,188,198,204,211,212,217,220,221,232,265,290,319,344,350,351,352,353,355,356,358,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[41,213,398,400,407,410,411,414,416,417],[399],[41,43,45,48,213,398,399,406,412,414,416,417,441,443,445,447,449],[43,46,441,443,445,447,449],[41,213,398,401,407,410,412,413,416,417],[48,399],[41,213,220,398,402,407,410,412,414,415,417],[41,213,398,404,405,407,410,412,414,416],[399,404],[41,48,213,400,406,407],[41,48,213,405,407],[41,48,213,401,406],[41,48,213,406,407],[41,48,213,405,406],[48],[41,48,213,403,407,408],[403],[398,400,401,402,412,414,416,417],[41,45,46,47,213],[41,46,48,213],[418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438],[418],[48,418],[48,418,420],[41,42,43,45,48,213,410,440,441,443,445,447,449],[43,44,441,443,445,447,449],[41,42,43,44,48,213,441,443,445,447,449],[41,48],[43,441,443,445,447,449],[41,43,45,48,213,441,442,445,447,449],[44],[41,43,45,48,419,420,439,441,443,444,447,449],[41,43,45,48,213,441,443,445,446,449],[41,43,45,48,213,441,443,445,447,448],[25,75,79,89,90,96,111,153,165,168,173,184,190,196,198,199,203,204,205,212,213,221,232,235,236,237,239,241,243,244,245,246,248,256,270,271,274,275,276,277,278,279,280,282,283,290,291,330,332,337,338,342,344,350,351,352,353,355,356,358,378,385,386,387,456,479,485,486,487,488,489,490,491,492,493,494,495,558,559,576,596,1021],[190,198,204,213,244,245,274,281,282],[65,213,238,244,245,282],[33,38,79,89,90,91,96,153,165,168,173,196,198,199,205,221,232,237,238,239,240,241,244,248,256,258,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[188,195,244,283],[124,204,213,217,232,234,241,243,270,281,283],[204,213,232,235,241,242,270,271,276,278,279,281],[38],[25,111,184,204,212,213,232,235,237,239,241,242,244,245,270,276,277,278,279,281,344,350,351,352,353,355,356,378],[204,232,235,241,242,270,271,276,277,278,281],[22,23,25,32,35,36,71,122,124,181,203,204,213,217,232,235,241,242,243,244,245,251,270,271,276,277,279,281,283,295,299,322,450,455,472,568,571,588,776],[22,26,30,32,36,39,55,71,122,181,204,216,240,244,245,251,278,295,299,322,328,450,455,472,482,568,571,588,680,776],[32,34,38,73,79,89,90,96,124,153,165,168,173,196,198,199,203,204,213,217,220,221,232,234,235,241,242,248,256,269,271,276,277,278,279,281,290,291,330,332,337,338,342,356,358,383,385,386,387,455,456,479,482,558,559,576,596,687,728,1021],[204,213,232,235,241,242,270,271,277,278,279,281],[204,213,236,238,239,243,244,283],[23,26,36,122,181,204,236,237,242,243,251,278,281,295,299,322,450,472,568,571,588,776],[25,213,237,239,240,242,244,245,281,283],[237,238,239,244],[23,26,27,33,191,204,213,220,235,238,243,270,271,274,276,277,278,279,281,282,283,324],[23,63,188,211,213,237,239,243,244,245,283],[111,184,212,232,241,344,350,351,352,353,355,356,378],[27,71,78,85,91,96,111,153,168,170,185,188,190,191,197,198,201,213,220,222,233,247,248,249,252,256,258,268,272,273,274,281,283,284,294,295,307,313,323,324,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1016,1018,1021],[191,213,237,239,244,248,271,272,274,281,324],[79,89,90,91,96,153,165,168,173,196,198,199,221,232,256,258,270,281,282,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[190,213],[27,198,201,213,220,259,260,266,267,282,283],[27,213,220,268,282,283],[27,190,213,220,268,274,281,282],[27,38,63,188,198,213,220,265,268,282,283],[27,213,220,268,283],[281],[23,191,213,232,236,237,238,239,241,242,244,246,271,274,276,277,281,324,486,487,488,489,490,491,492,493,494,495],[23,213,236,237,239,242,244,245,246,281,282,485,487,488,489,490,491,492,493,494,495],[213,216,232,241,246,281,482,485,486,488,489,490,491,492,493,494,495],[21,32,65,213,237,239,242,244,246,281,455,485,486,487,488,490,491,492,493,494,495],[23,213,236,237,238,244,246,281,485,486,487,488,489,490,492,493,494,495],[23,211,213,244,245,246,281,485,486,487,488,489,491,492,493,494,495],[23,26,32,39,65,71,195,204,211,213,232,236,237,239,241,242,244,246,281,282,283,455,485,486,487,488,489,490,491,493,494,495],[23,213,232,237,239,241,244,245,246,281,485,486,487,488,489,490,491,492,494,495],[23,32,213,236,237,238,239,244,246,281,455,485,486,487,488,489,490,491,492,493,495],[23,213,236,237,238,239,242,244,246,281,485,486,487,489,490,491,492,493,494,495],[213,232,237,239,241,242,244,245,246,281,282,485,486,487,488,489,490,491,492,493,494],[32,36,122,181,203,251,278,295,299,322,455,472,568,571,588,776],[63,73,87,110,184,188,196,198,204,208,211,213,214,220,232,256,290,292,332,344,348,350,351,352,365,475,476,478,496,509,584,769],[473],[25,58,78,79,85,89,94,96,110,111,117,123,125,153,168,170,172,183,185,188,190,197,198,204,211,213,220,222,232,233,249,252,256,265,274,284,290,294,295,307,313,319,323,325,327,333,336,337,339,344,350,351,352,356,358,364,365,385,387,394,456,462,464,474,475,479,481,483,484,505,509,511,514,552,557,558,559,561,563,576,578,583,588,596,599,623,625,634,640,656,657,680,707,710,725,736,829,1021],[58,78,79,89,90,94,96,110,117,123,125,153,165,168,170,172,173,183,196,198,199,211,221,232,248,256,265,270,281,290,291,319,330,332,337,338,342,350,351,356,358,385,386,387,394,464,475,479,483,514,552,557,558,559,563,576,588,596,623,640,656,657,680,707,710,725,829,1021],[50,52,58,62,63,64,66,70,78,79,85,89,94,104,110,111,114,117,123,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,193,195,198,201,211,213,220,232,265,289,290,295,299,307,319,350,351,358,363,364,366,370,378,387,394,396,455,456,461,462,464,470,472,473,474,475,476,477,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[73,204,461],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[21,456,477],[23,58,78,79,89,94,97,110,117,123,125,153,170,172,183,188,195,198,211,213,214,220,232,265,290,319,350,351,358,394,456,457,458,459,460,464,475,477,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[85,213],[457,459],[52,58,63,65,70,73,78,79,85,89,94,104,110,111,114,117,123,124,125,148,152,153,155,170,172,183,186,188,189,193,198,211,213,214,217,220,232,265,289,290,295,299,307,319,350,351,358,363,364,378,387,394,396,455,456,462,464,472,475,476,483,502,514,549,552,557,559,561,563,569,588,596,599,623,624,625,639,640,641,656,657,680,707,710,725,736,829,840,925],[32,35,114,123,124,188,201,203,204,213,217,220,455],[71,78,79,85,89,90,91,95,96,111,124,153,165,168,170,173,185,188,190,196,197,198,199,204,213,217,220,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[65,79,89,90,91,96,153,165,168,173,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[22,26,52,58,78,79,89,90,94,104,110,117,123,125,153,170,172,183,193,204,211,218,232,248,258,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[21,22,26,39,65,71,87,110,184,196,204,206,207,208,209,211,213,220,221,232,256,290,292,332,344,348,350,351,352,365,509,584,769],[58,63,78,79,85,87,89,90,94,96,110,111,117,123,125,153,165,168,170,172,173,183,184,185,188,190,195,196,197,198,199,201,208,211,213,220,221,222,232,233,248,249,252,253,254,256,265,270,274,281,284,290,291,292,294,295,307,313,319,323,325,327,330,332,333,336,337,338,339,342,344,348,350,351,352,356,358,364,365,385,386,387,394,406,456,464,475,476,478,479,481,483,484,505,509,511,514,552,557,558,559,561,563,576,578,583,584,588,596,599,623,625,634,640,656,657,680,707,710,725,736,769,829,1021],[171,213,498,499],[171,499],[20,71,78,184,188,211,213,220,351,500,501,502],[88,111,152,153,172,184,185,198,211,212,213,341,344,350,351,352,353,355,356,378,387,500,509,558,623,656,829,847],[58,78,79,89,94,110,117,123,125,153,170,171,183,211,221,232,265,290,319,350,351,358,394,456,464,475,483,499,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[20,47,52,56,58,62,63,64,66,70,78,79,85,89,94,97,104,109,110,111,114,117,123,125,130,134,145,147,148,152,153,155,170,171,172,183,184,186,188,189,193,194,195,198,201,211,213,232,261,265,289,290,295,299,302,307,319,327,348,350,351,358,363,364,366,368,370,378,387,394,396,452,455,456,464,469,470,472,475,477,482,483,498,499,500,502,514,515,516,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,630,637,639,640,641,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[78,85,96,111,153,168,170,185,188,190,197,198,201,204,213,219,220,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,504,509,511,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1014,1021],[220,255],[553],[21,26,204,216,482,552],[23,25,32,109,195,204,213,368,374,455,511,516,521,526,530,535,545,550,552],[33,191,198,213,274,324],[23,25,75,78,85,96,111,153,168,170,185,188,190,191,195,197,198,204,205,213,220,222,233,249,252,256,274,284,294,295,307,313,323,324,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,510,552,553,554,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1021],[23,32,52,56,58,78,79,85,89,94,97,104,109,110,111,114,117,123,124,125,148,152,153,155,167,170,172,183,186,188,189,191,193,194,195,198,204,211,213,217,232,265,274,289,290,295,299,302,307,319,324,327,348,350,351,358,363,364,368,378,387,394,396,452,455,456,464,469,472,475,477,482,483,502,510,511,514,516,549,551,553,554,557,559,561,563,569,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,736,829,840,846,925],[87,110,124,184,191,196,204,208,211,213,217,232,256,274,290,292,324,332,344,348,350,351,352,365,478,506,507,509,584,769],[65,506],[26,39,204,216,482],[78,85,87,88,96,110,111,152,153,168,170,184,185,188,190,196,197,198,201,208,211,213,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,339,341,344,348,350,351,352,356,364,365,378,385,387,476,478,479,481,484,501,505,506,508,511,558,561,576,578,583,584,588,599,623,625,634,656,680,736,769,829,847,1021],[25,31,52,58,62,64,66,70,75,78,79,85,86,87,88,89,90,91,94,96,104,110,111,114,117,123,124,125,129,130,134,145,147,152,153,165,168,170,172,173,183,185,188,190,193,195,196,197,198,199,203,204,205,211,213,214,216,217,220,221,222,232,233,248,249,252,256,265,270,274,281,284,290,291,294,295,307,313,319,320,323,325,327,330,332,333,336,337,338,339,341,342,344,350,351,352,356,358,363,364,365,366,370,378,383,385,386,387,394,455,456,464,470,472,475,476,479,481,482,483,484,501,505,509,511,514,515,520,525,529,534,540,544,549,552,555,556,557,558,559,561,563,568,576,578,583,588,596,599,623,625,634,637,639,640,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,728,732,736,741,746,749,755,760,764,769,771,777,783,788,793,798,803,808,813,819,824,829,834,840,845,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[65,555],[22,26,62,64,66,70,85,90,91,114,123,130,134,145,147,183,204,205,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[26,56,58,62,64,66,70,75,78,79,85,89,90,94,96,97,109,110,111,114,117,123,124,125,130,134,145,147,148,152,153,155,165,168,170,172,173,183,186,188,189,194,195,196,198,199,204,211,213,217,221,232,248,256,265,270,281,289,290,291,295,299,302,307,319,327,330,332,337,338,342,348,350,351,356,358,363,364,366,368,370,385,386,387,394,396,452,455,456,464,469,470,472,475,477,479,482,483,502,514,515,516,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,576,588,596,599,623,624,625,630,637,639,640,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[27,37,38,52,58,78,79,85,89,94,96,104,110,111,114,117,123,125,148,152,153,155,168,170,172,183,185,186,188,189,190,193,197,198,201,211,213,220,222,232,233,249,252,256,265,274,284,289,290,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,351,352,356,358,363,364,365,378,385,387,394,396,455,456,464,472,475,476,477,479,480,481,483,484,502,505,509,511,514,549,552,557,558,559,560,563,569,576,578,583,588,596,599,623,624,625,634,639,640,641,656,657,680,707,710,725,736,829,840,925,1021],[559],[58,78,79,89,90,94,96,110,117,123,125,153,165,168,170,172,173,183,196,198,199,211,221,232,248,256,257,265,270,281,290,291,319,330,332,337,338,342,350,351,356,358,385,386,387,394,456,464,475,479,483,514,552,557,558,563,576,588,596,623,640,656,657,680,707,710,725,829,1021],[26,27,33,38,62,64,66,70,78,79,85,87,89,90,91,96,110,111,114,123,124,130,134,145,147,153,165,168,170,173,183,184,185,188,190,196,197,198,199,201,203,204,205,208,211,213,217,220,221,222,232,233,248,249,250,251,252,254,255,256,257,258,265,270,274,281,284,290,291,292,294,295,307,313,319,323,325,327,330,332,333,336,337,338,339,342,344,348,350,351,352,356,358,364,365,366,370,385,386,387,455,456,470,472,476,478,479,481,484,505,509,511,515,520,525,529,534,540,544,549,558,559,561,568,572,576,578,580,583,584,588,596,599,625,634,637,639,653,655,656,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[65,91,220,232,248,257,258,559],[21,22,36,79,89,90,96,122,153,165,168,173,181,196,198,199,218,221,232,248,251,256,270,278,281,290,291,295,299,322,330,332,337,338,342,356,358,385,386,387,450,456,472,479,558,559,568,571,576,588,596,776,1021],[32,36,122,181,203,278,295,299,322,450,455,472,568,571,588,776],[38,78,85,96,111,153,168,170,185,188,190,197,198,213,220,222,233,249,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[26,204,232,257,559],[65,79,563],[52,55,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,195,205,211,232,265,290,319,328,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[23,52,56,58,75,78,79,85,89,90,94,96,97,104,109,110,111,114,117,123,125,148,152,153,155,165,168,170,172,173,183,186,188,189,193,194,195,196,198,199,201,204,211,213,220,221,232,248,256,265,270,281,289,290,291,295,299,302,307,319,327,330,332,337,338,342,348,350,351,356,358,363,364,368,378,385,386,387,394,396,452,455,456,464,469,472,475,477,479,482,483,502,514,516,549,552,557,558,559,561,563,564,570,576,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,736,829,840,846,925,1021],[23,47,52,68,70,75,79,89,90,96,104,117,153,165,168,173,188,193,195,196,198,199,204,205,213,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,363,378,385,386,387,456,479,552,558,559,563,564,568,569,576,596,641,1021],[32,36,122,181,203,251,278,295,299,322,450,455,472,568,588,776],[27,191,198,201,211,213,219,272,274,324,572,1014],[168,198,256,313,385,484,505,511,572,580,656],[65,79,89,90,96,153,165,168,173,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,574,576,596,1021],[22,26,124,204,217],[38,78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,204,213,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,574,575,576,578,583,588,596,599,625,634,656,680,736,1021],[27,38,78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,201,213,220,221,222,232,233,248,249,252,254,255,256,257,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,480,481,484,505,509,511,558,559,561,576,577,583,588,596,599,625,634,656,680,736,1021],[198,232,257,559],[220],[25,31,78,85,96,111,117,129,153,168,170,185,188,190,195,197,198,204,213,222,233,249,252,256,274,284,294,295,307,313,314,323,325,327,333,336,337,339,344,352,356,364,365,383,385,387,476,479,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,728,736,771,1021],[88,120,124,152,153,185,198,204,213,217,338,339,340,344,352,378,387,501,509,558,623,656,829,847],[78,85,96,111,153,168,170,185,188,190,197,198,213,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,341,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[65,338],[79,89,90,96,153,165,168,173,196,198,199,216,221,232,248,256,270,281,290,291,330,332,337,342,356,358,385,386,387,456,479,482,558,559,576,596,1021],[87,110,111,150,176,184,196,208,211,213,232,256,290,292,332,344,348,350,351,352,353,355,365,378,478,509,581,583,584,769],[58,78,79,85,89,90,94,96,110,111,117,123,125,153,165,168,170,172,173,183,185,188,190,196,197,198,199,211,213,221,222,232,233,248,249,252,256,265,270,274,281,284,290,291,294,295,307,313,319,323,325,327,330,332,333,336,337,338,339,342,344,350,351,352,356,358,364,365,385,386,387,394,456,464,475,476,479,481,483,484,505,509,511,514,552,557,558,559,561,563,576,578,581,582,584,588,596,599,623,625,634,640,656,657,680,707,710,725,736,829,1021],[87,110,184,196,208,232,256,290,292,332,344,348,350,351,352,365,478,509,580,584,769],[87,110,168,184,196,198,208,232,256,290,292,313,332,344,348,350,351,352,365,385,478,484,505,509,511,572,584,656,769],[71,188,213,220,344,516,583],[21,23,25,27,34,56,65,73,75,78,97,109,111,117,124,148,152,153,155,188,189,194,195,198,201,203,204,205,213,216,217,270,289,302,320,327,348,363,368,383,387,396,452,469,502,516,552,557,569,599,623,625,630,643,656,680,687,728,846],[58,78,79,85,87,89,94,110,111,114,117,123,125,148,152,153,155,170,172,183,184,186,188,189,196,198,204,208,211,213,216,220,232,256,265,289,290,292,295,299,307,319,332,344,348,350,351,352,358,364,365,387,394,396,455,456,464,472,475,477,478,482,502,509,514,549,552,557,559,561,563,569,584,588,596,599,623,624,625,639,640,656,657,680,707,710,725,736,769,829,840,925],[25,26,27,32,75,77,78,85,96,111,153,168,170,185,188,190,197,198,203,204,211,213,220,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,455,476,479,481,505,509,511,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1021],[23,25,26,32,35,36,58,64,65,71,75,78,79,85,89,94,96,110,111,114,117,122,123,124,125,148,152,153,155,168,170,172,181,183,185,186,188,189,190,197,198,201,203,204,205,211,213,217,220,222,232,233,249,251,252,256,265,274,278,284,289,290,294,295,299,307,313,319,322,323,325,327,333,336,337,339,344,350,351,352,356,358,364,365,385,387,394,396,450,455,456,464,472,475,476,477,479,481,483,484,502,505,509,511,514,549,552,557,558,559,561,563,568,569,571,576,578,583,585,586,587,596,599,623,624,625,634,639,640,656,657,680,707,710,725,736,776,829,840,925,1021],[585],[26,71,188,204],[589],[213,592,593],[58,78,79,89,90,94,96,110,117,123,125,153,165,168,170,172,173,183,188,195,196,198,199,211,221,232,248,256,265,270,281,290,291,319,330,332,337,338,342,350,351,356,358,385,386,387,394,456,464,475,479,483,514,552,557,558,559,563,576,588,589,595,596,623,640,656,657,680,707,710,725,829,1021],[56,78,79,85,89,90,96,97,109,111,114,117,123,148,152,153,155,165,168,170,173,183,185,186,188,189,190,194,195,196,197,198,199,201,213,220,221,222,232,233,248,249,252,256,270,274,281,284,289,290,291,294,295,299,302,307,313,319,323,325,327,330,332,333,336,337,338,339,342,344,348,350,352,356,358,363,364,365,368,385,386,387,394,396,452,455,456,469,472,475,476,477,479,481,482,483,484,502,505,509,511,516,549,552,557,558,559,561,569,576,578,583,588,589,590,591,592,595,596,598,623,624,625,630,634,639,643,656,657,680,736,829,840,846,925,1021],[213,589,590],[195,198,213,480,591,592,593,594],[195,591,592],[71,188,195,198,213,591,592,593,595],[78,85,87,96,110,111,153,168,170,184,185,188,190,196,197,198,208,211,213,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,339,344,348,350,351,352,356,364,385,387,476,478,479,481,484,505,509,511,558,561,576,578,583,584,588,599,625,634,656,680,736,769,1021],[23,25,31,55,117,124,188,195,204,213,217,220,233,328,383,481,558,680,728,771],[62,64,66,70,79,85,89,90,96,114,123,130,134,145,147,153,165,168,173,183,196,198,199,201,221,232,248,256,265,270,281,290,291,319,330,332,337,338,342,356,358,366,370,385,386,387,455,456,470,472,479,515,520,525,529,534,540,544,549,558,559,568,576,596,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[62,64,66,70,79,85,89,90,96,114,123,130,134,145,147,153,165,168,173,183,196,198,199,201,213,221,232,248,256,265,270,281,290,291,319,330,332,337,338,342,356,358,366,370,385,386,387,455,456,470,472,479,515,520,525,529,534,540,544,549,558,559,568,576,596,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[79,89,90,96,153,165,168,173,196,198,199,201,213,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[79,89,90,96,153,165,168,173,196,198,199,201,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[79,89,90,96,153,165,168,173,196,198,199,201,213,220,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[23,32,124,195,198,204,213,217,220,358,360,364,455],[358],[21,22,39,58,78,79,89,90,94,96,110,117,123,125,153,165,168,170,172,173,183,196,198,199,211,216,221,232,248,256,265,270,281,290,291,319,330,332,337,338,342,350,351,356,385,386,387,394,456,464,475,479,482,483,514,552,557,558,559,563,576,588,596,623,640,656,657,680,707,710,725,829,1021],[78,85,96,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,195,197,198,204,211,213,222,233,249,252,256,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,358,360,361,363,365,373,385,387,394,396,455,472,475,476,477,479,481,483,484,502,505,509,511,549,552,557,558,561,569,576,578,583,588,599,623,624,625,634,639,656,657,680,736,829,840,925,1021],[23,32,133,195,213,455],[23,52,56,78,97,104,109,111,117,148,152,153,155,188,189,193,194,195,198,201,213,232,289,302,327,348,358,362,364,368,372,378,396,452,469,482,502,516,552,557,563,569,599,623,625,630,641,643,656,680,846],[165,166],[71,78,85,96,111,153,165,166,167,168,170,185,188,190,197,198,213,220,222,233,249,252,256,274,284,294,295,307,312,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1021],[25,32,78,85,90,96,111,153,168,170,185,188,190,191,197,198,201,203,204,213,218,220,222,233,249,252,256,274,284,294,295,307,313,321,322,324,325,327,333,336,337,339,344,352,356,364,365,385,387,455,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[65,90,325],[22,26,79,89,96,153,165,168,173,196,198,199,204,218,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[190,191,213,274,323,324,325],[32,35,36,122,124,181,203,251,278,295,299,322,450,455,472,568,571,588,776],[32,165,455],[23,25,32,165,167,191,204,205,213,220,274,311,313,314,315,317,319,324,325,455],[65,165],[79,89,90,96,153,164,167,168,173,196,198,199,216,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,482,558,559,576,596,1021],[32,157,163,164,165,167,213,316,455],[165],[163,165],[157,165],[157,164,165],[158,159,160,161,162],[163],[615],[616,617,618,619,620,621],[77,112,220,348,356,383,385,396,663,680,772,803],[1023,1027],[63,85,220,341,344,515,520,529,534,549,637,655,656,684,736,783],[38,47,63,64,66,70,71,73,74,75,76,77,78,87,111,112,114,117,123,124,152,170,188,190,195,198,201,203,204,209,211,213,214,220,221,337,351,353,455,481,484,653,667,679,771],[1023,1031],[1023,1036],[220,874],[220,877],[220,880],[220,886],[220,895],[220,892],[220,889],[220,898],[220,901],[220,910],[220,904],[220,907],[220,913],[220,922],[220,916],[220,919],[220,925],[220,265,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,970,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[220,265,871,883],[220,928],[220,931],[220,946],[220,949],[220,952],[220,955],[220,958],[220,970],[220,964],[220,961],[220,973],[220,967],[220,934,936,939,942],[220,976],[220,979],[220,985],[220,982],[220,988],[220,991],[220,997],[220,994],[220,1000],[220,1003],[220,1009],[220,1006],[220,1012],[220,223,225,226,230,302,333],[220,485,486,487,488,489,490,491,492,493,494,495,1087],[220,274,281],[220,661],[220,450],[220,477],[220,497],[220,350],[220,525],[153,220],[220,478],[77,220,691],[45,48,220,397,406,407,409,412,414,416,417,439,441,443,445,447,449],[220,254,479],[220,498,499,503],[220,504,505],[220,696],[220,701],[220,508,509],[220,552],[96,220,558],[220,710],[220,480,561],[220,254,256],[220,719],[220,252],[220,725,788],[77,220,732],[185,220,294,300,361,366,386,450,478,1024,1025,1026],[220,470],[220,352],[220,472,1030],[220,741],[220,672,746],[220,749],[220,755],[220,707],[97,220,313,317,318,319,323,325,472,568,716,760,1030],[220,569,571],[220,573],[220,299,1014],[220,639],[220,576],[220,480,578],[134,220],[220,481],[220,583],[220,764],[220,364,450],[220,482],[220,769],[220,777],[220,483],[220,793],[220,798],[130,220],[220,588],[220,657],[220,808],[220,589,590,591,592,595,597,599],[220,365],[220,274,1018,1020,1021],[183,184,185,220,294,300,387,540,544,623,677,1033,1034,1035],[220,813],[96,147,220,819],[129,220],[220,622,824],[220,829],[220,834],[145,220],[220,378],[96,147,220],[220,840],[220,845],[220,851],[220,857],[220,862],[220,867],[220,370],[1023,1038],[220,600],[220,601],[220,602],[220,603],[220,604],[220,605],[220,606],[220,608],[220,607],[220,609],[220,610],[220,611],[220,612],[220,613],[63,124,189,213,217,658,661],[105],[57,62,63,64,66,70,85,114,123,124,128,129,130,134,145,147,183,188,203,204,213,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,659,660,662,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[659],[52,58,78,79,89,94,104,110,117,123,125,126,137,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,658,661,680,707,710,725,829],[56,78,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,348,363,368,396,451,455,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[52],[32,58,62,63,64,66,70,78,79,85,89,94,110,111,112,114,117,123,124,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,198,211,213,217,232,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,452,453,454,455,456,464,470,472,475,477,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[453],[52,58,67,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,451,455,456,464,475,482,483,514,542,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[32,63,213,220,336,452,455],[55,328,680],[32,56,63,78,92,97,109,111,117,148,152,153,155,188,189,194,195,198,204,213,289,302,327,348,363,368,396,452,455,469,482,502,512,515,552,557,569,599,623,625,630,643,656,680,846],[451],[32,36,52,62,63,64,66,70,85,104,114,117,122,123,130,134,145,147,181,183,193,204,211,213,220,232,251,265,278,295,299,319,322,344,363,366,370,378,450,452,455,470,472,513,514,516,520,525,529,534,540,544,549,552,563,568,571,588,637,639,641,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[514],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,453,456,464,475,482,483,512,513,514,515,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[60,452,651,653],[59],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,650,652,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,61,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,653,656,657,680,707,710,725,829],[516,648,655],[512],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,649,653,654,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,653,656,657,680,707,710,725,829],[109,665,667],[104],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,666,668,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[125],[652,669,672],[651],[52,62,63,64,66,70,85,104,114,117,123,130,134,145,147,183,193,213,232,265,319,363,366,370,378,455,470,472,515,520,525,529,534,540,544,549,552,563,568,624,637,639,641,653,655,661,667,670,671,673,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[670],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,624,640,641,650,656,657,672,680,707,710,725,829],[21,25,39,109,204,215,216,482,517,520],[104,521],[32,62,63,64,66,70,85,114,123,124,130,134,145,147,183,204,213,217,220,265,319,366,370,455,470,472,515,518,519,521,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,518],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,517,520,521,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[79,82,89,90,96,153,155,165,168,170,173,188,195,196,198,199,201,213,220,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[65,155],[22,25,26,56,71,78,81,85,89,97,109,111,114,117,123,124,148,152,153,154,156,170,183,186,188,189,194,195,198,204,213,214,216,217,220,232,289,295,299,302,307,319,327,348,350,363,364,368,387,394,396,452,455,469,472,475,477,482,483,502,516,549,552,557,561,569,588,599,623,624,625,630,639,643,656,657,680,736,829,840,846,925],[32,54,63,85,195,213,455],[52,53,104,117,193,232,363,378,552,563,641],[57,62,63,64,66,70,78,81,83,84,96,111,114,117,123,124,130,134,145,147,148,152,153,155,168,170,183,185,186,188,189,190,195,197,198,211,213,214,217,220,222,233,249,252,256,265,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,364,365,366,370,385,387,394,396,455,464,470,472,475,476,477,479,481,483,484,502,505,509,511,515,520,525,529,534,540,544,549,552,557,558,561,568,569,576,578,583,588,599,623,624,625,634,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[54,80],[114,204,523,525],[104,216,482,522],[50,62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,522,524,526,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[522],[21,52,79,104,117,125,193,216,232,363,378,482,523,552,563,641],[545,674,677],[216,482,537],[32,57,62,63,64,66,70,85,114,123,124,130,134,145,147,183,213,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,675,676,678,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,675],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,542,552,557,559,563,588,596,623,640,641,656,657,674,677,680,707,710,725,829],[58,78,79,89,94,110,117,123,125,153,170,172,183,188,211,213,220,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[39,56,63,68,70,78,109,111,117,148,152,153,155,188,189,194,195,198,204,213,216,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[25,55,63,114,117,195,204,213,220,328,516,680],[56,78,97,104,111,114,117,148,152,153,155,188,189,194,195,198,204,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[39,52,117,193,216,232,363,378,482,552,563,641],[25,39,57,58,62,63,64,66,70,75,78,79,85,89,94,108,109,110,111,112,113,117,123,124,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,191,198,204,211,213,214,217,220,232,265,274,289,290,295,299,307,319,324,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,65,78,79,89,94,110,114,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[39,52,55,58,67,78,79,89,94,104,110,114,117,123,124,125,153,170,172,183,193,211,216,232,265,290,319,328,350,351,358,363,378,394,456,464,475,482,483,514,542,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[21,25,55,56,58,78,79,85,89,94,96,97,109,110,111,112,114,117,123,124,125,148,152,153,155,168,170,172,183,185,186,188,189,190,194,195,197,198,204,211,213,217,220,222,232,233,249,252,256,265,274,284,289,290,294,295,299,302,307,313,319,323,325,327,328,333,335,336,337,339,344,348,350,351,352,356,358,363,364,365,368,385,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,502,505,509,511,514,516,529,549,552,557,558,559,561,563,569,576,578,583,588,596,599,623,624,625,630,634,639,640,643,656,657,680,707,710,725,736,829,840,846,925,1021],[109,681,684],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,682,683,685,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[682],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,681,684,707,710,725,829],[63,213,527,529],[62,63,64,66,70,85,114,123,124,130,134,145,147,183,213,217,220,265,319,344,366,370,455,470,472,515,520,525,528,530,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,529,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[23,32,34,73,124,198,203,204,213,217,220,270,335,336,348,381,383,387,455,482,686,728],[63,213,688,691],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,687,689,690,692,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[689],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,688,691,707,710,725,829],[77,214,216,482],[50,56,58,78,79,85,88,89,94,97,109,110,111,114,117,123,125,148,152,153,155,170,172,183,185,186,188,189,194,195,198,211,213,232,265,289,290,295,299,302,307,319,327,341,348,350,351,352,358,363,364,368,378,387,394,396,452,455,456,464,469,472,475,477,482,483,501,502,509,514,516,549,552,557,558,559,561,563,569,588,596,599,624,625,630,639,640,643,656,657,680,707,710,725,736,829,840,846,847,925],[63,92,124,204,213,217,693,696],[62,63,64,66,70,75,85,114,123,128,129,130,134,145,147,183,204,213,220,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,694,695,697,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[694],[52,55,58,78,79,89,94,104,110,117,123,124,125,126,137,153,170,172,183,193,211,232,265,290,319,328,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,693,696,707,710,725,829],[58,78,79,85,89,94,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,198,211,213,220,232,265,289,290,295,299,307,319,350,351,358,364,387,394,396,455,456,464,472,475,477,483,502,514,549,552,557,559,561,563,569,588,596,599,623,625,639,640,656,657,680,707,710,725,736,829,840,925],[109,124,217,698,701],[62,63,64,66,70,85,114,123,124,130,134,145,147,183,204,213,217,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,699,700,702,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[699],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,701,707,710,725,829],[58,78,79,89,94,110,117,123,125,153,170,172,183,188,191,195,198,211,213,220,232,265,274,290,319,324,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,646,656,657,680,707,710,725,829],[26,30,124,195,203,204,217],[204,213,516,703,710],[39,216,482,512],[21,58,62,63,64,66,70,78,79,85,89,94,108,110,114,117,123,124,125,130,134,145,147,153,170,172,183,203,211,213,216,217,220,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,482,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,704,707,708,709,711,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,704],[21,52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,641,656,657,680,703,707,710,725,829],[521,531,534],[517],[62,63,64,66,70,85,108,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,532,533,535,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,532],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,518,531,534,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[26,63,177,183,204,213,216,482],[104,216,482],[58,62,63,64,66,70,76,78,79,85,89,94,110,111,114,117,123,124,125,130,134,145,147,148,152,153,155,170,172,177,178,179,180,181,182,186,188,189,198,204,211,213,216,217,220,232,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,482,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,178],[22,26,58,78,79,89,94,110,117,123,125,153,170,172,177,183,204,211,216,232,265,290,319,350,351,358,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[32,35,36,77,122,124,203,251,278,295,299,322,450,455,472,568,571,588,776],[23,63,97,165,167,213,713,719],[165,167,216,482,712],[23,32,57,62,63,64,66,70,85,114,123,124,130,134,145,147,165,167,183,213,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,713,716,718,720,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[713,717],[118],[25,116,722,725],[115,721],[25,32,58,62,63,64,66,70,78,79,85,89,92,94,110,114,117,123,124,125,130,134,145,147,153,170,172,183,198,211,213,216,220,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,482,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,721,723,724,726,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,723],[58,78,79,89,94,110,117,119,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,721,722,725,772,829],[31,32,34,73,117,124,129,188,198,203,204,213,217,220,233,270,380,381,383,387,455,481,482,558,687,727,771],[63,213,729,732],[25,104],[25,55,62,63,64,66,70,85,92,114,123,130,134,145,147,183,213,220,265,319,328,336,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,680,684,691,696,701,707,710,716,719,725,728,730,731,733,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[730],[52,55,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,328,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,729,732,829],[25,77,198,204,213,214,215,216,220,482],[63,198,366,373],[216,367,372,482],[32,62,63,64,66,70,85,87,114,123,124,130,134,145,147,183,198,211,213,217,265,319,359,364,365,370,372,374,378,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[213,372,374],[55,58,78,79,89,94,110,117,123,125,153,170,172,183,205,211,216,232,265,290,319,328,350,351,358,366,371,373,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[57,63,124,204,217,464,734,736],[32,52,62,63,64,65,66,70,78,85,96,104,111,114,117,123,130,134,145,147,148,152,153,155,168,170,183,185,186,188,189,190,193,197,198,204,213,220,222,232,233,249,252,256,265,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,363,364,365,366,370,378,385,387,394,396,455,470,472,475,476,477,479,481,483,484,502,505,509,511,515,520,525,529,534,540,544,549,552,557,558,561,563,568,569,576,578,583,588,599,623,624,625,634,637,639,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,735,737,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[32,58,67,78,79,89,94,110,117,123,125,153,170,172,183,211,216,232,265,290,319,350,351,358,394,455,456,464,475,482,483,514,542,552,557,559,563,588,596,623,640,656,657,680,707,710,725,736,829],[51,52,56,63,78,97,104,109,111,117,148,152,153,155,188,189,193,194,195,198,213,232,289,302,327,348,363,368,378,396,452,468,470,482,502,516,552,557,563,569,599,623,625,630,641,643,656,680,757,846],[166],[62,63,64,66,70,75,85,114,123,130,134,145,147,183,191,195,204,205,213,220,265,274,318,319,324,366,370,455,467,469,471,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[309],[56,75,78,85,96,97,109,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,194,195,197,198,213,220,222,233,249,252,256,274,284,289,294,295,299,302,307,313,319,323,325,327,333,336,337,339,344,348,350,352,356,363,364,365,368,385,387,394,396,452,455,469,472,475,476,477,479,481,482,483,484,502,505,509,511,516,549,552,557,558,561,569,576,578,583,588,599,623,624,630,634,639,643,646,656,657,680,736,829,840,846,925,1021],[32,63,97,213,455,463,472],[36,50,57,62,63,64,66,70,78,85,97,111,114,117,122,123,124,130,134,145,147,148,152,153,155,181,183,186,188,189,195,198,203,204,213,214,217,251,265,278,289,295,299,307,319,322,350,364,366,370,387,394,396,450,455,464,465,466,470,471,475,477,483,502,515,520,525,529,534,540,544,549,552,557,561,568,569,571,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,213,464,465],[52,55,57,58,78,79,80,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,328,350,351,358,363,378,394,456,463,464,472,475,482,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[63,741],[674],[62,63,64,66,70,85,114,123,130,134,145,147,183,188,211,213,220,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,739,740,742,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[739],[52,104,117,172,193,232,363,378,552,563,641,675,738],[109,743,746],[62,63,64,66,70,85,114,123,130,134,145,147,183,188,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,624,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,743,744,745,747,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[744],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,746,829],[63,536,540],[32,57,62,63,64,66,70,85,114,123,124,130,134,145,147,183,204,213,217,265,319,366,370,455,464,470,472,515,520,525,529,534,538,539,541,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[541],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,536,540,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[63,749],[57,62,63,64,65,66,70,85,114,123,124,130,134,145,147,183,211,213,216,217,265,319,366,370,455,464,470,472,482,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,748,750,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[675],[195,213,220,470,472],[63,213,752,755],[52,104,115,117,193,232,363,378,552,563,641],[36,62,63,64,66,70,85,114,122,123,124,130,134,145,147,181,183,204,213,217,251,265,278,295,299,319,322,366,370,389,450,455,470,472,515,520,525,529,534,540,544,549,568,571,588,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,752,753,754,756,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[187,213,753],[52,58,78,79,89,94,104,110,117,119,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,752,755,772,829],[25,52,66,78,97,104,109,111,117,148,152,153,155,188,189,193,194,195,198,232,289,302,327,348,363,368,378,396,452,469,482,502,516,552,557,563,569,599,623,625,630,641,643,656,680,846],[52,104,117,193,232,363,378,552,563,641],[32,56,58,60,62,63,64,65,67,70,78,79,85,89,94,110,114,117,123,124,125,130,134,145,147,153,170,172,183,188,211,213,217,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,542,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[55,58,66,78,79,89,94,110,117,123,125,153,170,172,183,205,211,216,232,265,290,319,328,350,351,358,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[63,204,213,705,707],[39,53,216,482],[58,62,63,64,66,70,78,79,85,89,94,110,114,117,123,125,130,134,145,147,153,170,172,183,188,211,213,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,706,708,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[21,58,78,79,80,89,94,110,117,123,125,153,170,172,183,211,216,232,265,290,319,350,351,358,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[32,52,63,97,104,117,165,166,167,191,193,204,205,213,232,274,315,317,319,324,363,378,455,552,563,641],[32,53,55,167,216,328,455,482,680],[26,32,52,57,58,62,63,64,66,70,75,78,79,85,89,94,97,104,109,110,111,114,117,120,123,124,125,130,134,145,147,148,152,153,155,165,166,167,170,172,183,186,188,189,193,198,204,205,211,213,216,217,220,232,265,289,290,295,299,307,309,310,318,319,320,325,350,351,358,363,364,366,370,378,387,394,396,455,456,464,470,472,475,477,482,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,213,309,320],[52,55,58,78,79,80,89,94,104,110,117,123,125,148,153,166,170,172,183,193,211,216,232,265,290,319,328,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[51,63,84,213,469],[54],[62,63,64,66,70,85,114,123,130,134,145,147,183,191,195,213,265,274,319,324,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,757,759,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,81,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,760,829],[320,712,716],[57,62,63,64,66,70,85,114,123,124,130,134,145,147,183,213,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,714,715,717,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[717],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,309,319,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,712,716,725,829],[63,68,165,213,312,568],[53,165,167],[32,35,36,62,63,64,66,70,85,114,122,123,124,130,134,145,147,165,181,183,201,203,213,220,251,265,278,295,299,312,319,322,325,366,370,450,455,470,472,515,520,525,529,534,540,544,549,565,566,567,571,588,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,195,565],[55,58,78,79,80,89,94,110,117,123,125,153,170,172,183,211,232,265,290,312,319,328,350,351,358,394,456,464,475,483,514,552,557,559,563,568,588,596,623,640,656,657,680,707,710,725,829],[23,56,78,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,642,646,647,656,680,846],[646,647],[32,52,63,104,117,124,189,193,213,217,232,363,378,455,552,563,639,641,647],[39,52,104,117,189,193,205,216,232,363,378,482,552,563,640,641],[57,62,63,64,66,70,78,85,111,114,117,123,124,129,130,134,145,147,148,152,153,155,183,186,188,189,198,204,213,217,220,265,289,295,299,307,319,350,364,366,370,387,394,396,455,464,470,472,475,477,483,502,515,520,525,529,534,540,544,549,552,557,561,568,569,588,599,623,624,625,626,627,637,638,640,642,646,647,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[195,640,642],[39,49,52,55,58,78,79,89,94,104,110,117,123,125,153,170,172,183,189,193,195,205,211,216,232,265,290,319,328,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,639,640,641,642,646,656,657,680,707,710,725,829],[195,644],[188,195,198,213,220,625,632,642,643,644,645],[23,195,625,642,646,647],[52,56,57,58,63,78,79,85,89,94,97,104,109,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,193,194,195,198,205,211,213,232,265,289,290,295,299,302,307,319,327,348,350,351,358,363,364,368,378,387,394,396,452,455,456,464,469,472,475,477,482,483,502,514,516,549,552,557,559,561,563,569,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,736,829,840,846,925],[63,188,195,537,544],[216,482,536],[32,57,62,63,64,66,67,70,85,114,123,124,130,134,145,147,183,188,204,213,217,220,265,319,366,370,455,464,470,472,515,520,525,529,534,540,542,543,545,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[542],[52,58,67,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,537,541,544,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[58,60,78,79,89,94,110,114,117,123,125,153,170,172,183,188,195,211,213,220,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[106,107,135,195],[63,106,131,134,137,213],[21,105,136,137],[25,57,62,63,64,66,70,85,92,114,123,124,128,129,130,132,133,135,136,137,145,147,183,204,213,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[26,65,106,135,137,195,204],[21,58,78,79,89,94,110,117,123,125,126,134,136,137,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[198,625,626,630],[55,195,328,630,680],[220,625,630,632,634],[52,78,85,96,104,111,117,153,168,170,185,188,190,193,195,197,198,213,222,232,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,363,364,365,378,385,387,476,479,481,484,505,509,511,552,558,561,563,576,578,583,588,599,625,630,633,637,641,646,656,680,736,1021],[56,63,78,84,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,629,637,642,643,647,656,680,846],[54,628,641],[54,57,62,63,64,66,70,85,114,123,124,129,130,134,145,147,170,183,198,204,211,213,214,217,220,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,625,629,630,631,634,635,636,638,639,647,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[195,213,630,635],[52,58,78,79,81,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,628,629,634,637,640,641,656,657,680,707,710,725,829],[195,761,764],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,624,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,762,763,765,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[762],[52,58,67,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,542,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,761,764,829],[32,63,109,455,766,768,769],[50,62,63,64,66,70,75,85,87,110,112,114,123,124,130,134,145,147,183,184,188,196,198,203,208,213,216,217,232,256,265,290,292,319,332,344,348,350,351,352,365,366,370,455,470,472,478,482,509,515,520,525,529,534,540,544,549,568,584,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,767,768,770,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,125,455],[204,211,213,767],[31,63,65,76,116,117,118,123,124,129,188,195,204,213,217,220,233,383,481,558,728],[55,117,216,328,482,680],[32,75,115,117,118,123,124,195,204,205,213,217,455],[52,58,78,79,89,94,104,110,117,118,123,125,153,155,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[58,62,63,64,65,66,70,78,79,85,89,94,110,111,114,116,117,119,120,121,122,124,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,198,204,211,213,217,220,232,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,772,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,65,78,79,89,94,110,117,123,125,153,170,172,183,195,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[52,58,67,78,79,89,94,104,110,115,117,118,123,124,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,542,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[32,63,455,772],[21,63,119,124,188,213,217,220,773],[63,777],[68],[62,63,64,66,70,85,114,123,124,130,134,145,147,183,188,195,203,213,217,220,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,774,775,776,778,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[774],[52,80,104,117,193,232,363,378,552,563,641],[32,36,77,122,181,203,251,278,295,299,322,450,455,472,568,571,588],[22,25,32,55,56,58,64,66,75,78,79,85,87,88,89,92,94,96,97,109,110,111,114,117,123,124,125,148,152,153,155,168,170,172,183,185,186,188,189,190,191,194,195,197,198,203,204,211,213,217,220,222,232,233,249,252,256,265,274,284,289,290,294,295,299,302,307,313,319,323,324,325,327,328,333,336,337,339,341,344,348,350,351,352,356,358,363,364,365,368,378,385,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,501,502,505,509,511,514,516,549,552,557,558,559,561,563,569,572,576,578,580,583,588,596,599,623,624,625,630,634,639,640,643,655,656,657,680,707,710,725,736,829,840,846,847,925,1021],[68,780,783],[53],[32,62,63,64,66,70,85,114,123,130,134,145,147,183,213,220,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,781,782,784,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[781],[52,58,78,79,80,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,780,783,829],[726,785,788],[722],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,786,787,789,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[786],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,723,725,785,788,829],[733,790,793],[729],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,791,792,794,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[791],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,730,790,793,829],[63,795,798],[52,62,63,64,66,70,85,104,114,117,123,130,134,145,147,183,188,193,205,213,216,232,265,319,363,366,370,378,455,470,472,482,515,520,525,529,534,540,544,549,552,563,568,637,639,641,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,796,797,799,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[124,796],[52,104,117,193,216,232,363,378,482,552,563,641,675,795],[106,130,213],[55,106,195,328,680],[63,105,130,189,195,213],[104,107,189,216,482],[57,62,63,64,66,70,85,105,106,107,114,123,124,126,127,128,129,134,137,145,146,147,183,189,198,204,213,214,217,220,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,106,110,117,123,125,130,153,170,172,183,195,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[21,52,58,71,78,79,89,94,104,105,106,107,110,117,123,125,130,153,170,172,183,189,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[53,56,70],[62,63,64,66,68,69,80,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,70,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[52,53,58,67,70,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,542,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[70,213,800,803],[62,63,64,66,70,85,114,123,124,130,134,145,147,183,213,217,265,319,336,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,801,802,804,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[801],[79,80,563,800],[47,58,63,78,79,85,89,94,110,111,114,117,123,124,125,148,152,153,155,170,172,183,186,188,189,195,198,203,204,211,213,217,220,232,265,289,290,295,299,307,319,350,351,358,364,387,394,396,455,456,464,472,475,477,483,502,514,549,552,557,559,561,563,569,588,596,599,623,624,625,639,640,656,680,707,710,725,736,829,840,925],[75,204,213,637,639],[737,805,808],[734],[32,62,63,64,66,70,85,114,123,124,130,134,145,147,183,213,217,265,319,354,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,806,807,809,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[806],[55,58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,328,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,735,805,808,829],[56,59,64],[32,60,61,62,63,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,64,67,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,542,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[652,810,813],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,811,812,814,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[811],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,641,650,656,657,680,707,710,725,810,813,829],[100,120,146,216,482,819,820],[63,204,213,815,819,821],[93,820],[23,55,62,63,64,66,70,85,92,114,120,123,124,129,130,134,145,146,147,183,204,213,217,220,265,319,328,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,815,816,817,818,820,821,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[820],[21,39,55,58,78,79,89,91,94,110,117,123,125,153,170,172,183,211,216,232,265,290,319,328,350,351,358,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,815,819,829],[63,213,820,821],[23,62,63,64,66,70,85,114,123,130,134,145,147,167,183,204,205,213,220,265,318,319,325,366,370,455,470,472,515,520,525,529,534,540,544,549,568,622,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,822,823,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[822],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,309,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,622,623,640,656,657,680,707,710,725,824,829],[32,63,148,213,455,825,829],[216,463,482],[58,62,63,64,66,70,78,79,85,88,89,94,110,111,114,117,123,125,130,134,145,147,148,152,153,155,170,172,183,185,186,188,189,198,211,213,220,232,265,289,290,295,299,307,319,341,350,351,352,358,364,366,370,378,387,394,396,455,456,464,470,472,475,477,483,501,502,509,514,515,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,826,827,828,830,834,840,845,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[826],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,825,829],[25,32,55,63,195,204,213,220,328,455,680,826,829,830],[55,195,216,328,482,680,835],[32,52,63,104,117,193,195,204,213,232,363,378,455,552,563,641,831,834,836],[52,836],[25,26,52,57,58,62,63,64,66,70,78,79,85,89,92,94,104,110,114,117,123,124,125,130,134,145,147,153,170,172,183,185,193,204,211,213,217,232,265,290,319,350,351,358,363,366,370,378,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,831,832,833,835,836,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,195,832,835],[52,58,67,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,542,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829,831,834,836],[139,145],[21,52,63,104,117,137,138,140,145,193,195,213,232,363,378,552,563,641],[63,140,145],[63,65,138,139,141,142,145,195,204,213],[93,141,142],[26,57,62,63,64,66,70,85,92,99,114,123,124,129,130,133,134,139,140,141,142,143,144,146,147,183,203,204,213,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,142],[26,36,52,55,79,91,94,104,117,122,140,141,181,193,195,204,216,232,251,278,295,299,322,328,363,378,450,472,482,552,563,568,571,588,641,680,776],[23,100],[25,99,147],[57,63,93,97,98,100,147,213,464],[26,50,55,57,62,63,64,66,70,85,91,92,94,96,97,99,100,101,102,103,114,123,124,130,134,145,146,148,183,188,198,204,213,214,216,217,220,265,319,328,366,370,455,464,470,472,482,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[63,65,91,94,99,213],[21,22,39,52,55,58,78,79,80,89,91,93,94,104,110,117,123,125,147,153,170,172,183,193,211,216,218,232,265,290,319,328,350,351,358,363,378,394,456,464,475,482,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[52,104,117,130,145,188,193,195,213,214,216,232,363,378,482,552,563,641],[116,837,840],[115],[62,63,64,66,70,78,85,111,114,117,123,130,134,145,147,148,152,153,155,183,186,188,189,198,213,265,289,295,299,307,319,350,364,366,370,387,394,396,455,470,472,475,477,483,502,515,520,525,529,534,540,544,549,552,557,561,568,569,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,838,839,841,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[838],[52,58,78,79,89,94,104,110,117,119,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,772,829,837,840],[23,55,86,87,88,152,153,185,198,204,211,213,220,328,341,352,378,387,501,509,558,623,656,680,829,846],[56,63,78,97,109,111,117,148,152,153,155,188,189,194,195,198,213,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,842,845],[62,63,64,66,70,85,111,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,843,844,846,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[843],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829,842,845],[68,848,851],[32,62,63,64,66,70,75,85,114,123,124,130,134,145,147,183,213,217,220,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,849,850,852,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[849],[52,58,78,79,80,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829,848,851],[63,213,853,857],[23,32,55,57,58,62,63,64,66,70,75,78,79,85,89,94,98,110,114,117,123,124,125,130,134,145,147,153,170,172,183,204,211,213,214,217,232,265,290,314,319,328,350,351,358,366,370,388,390,391,392,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,854,855,856,858,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,855],[21,39,52,55,58,78,79,80,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,328,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829,853,857],[23,213,314,388,391,853],[25,114,195,213,546,549],[25,32,50,57,62,63,64,66,70,78,85,111,114,117,123,124,130,134,145,147,148,152,153,155,183,186,188,189,198,211,213,217,265,289,295,299,307,319,350,355,364,366,370,387,394,396,455,464,470,472,475,477,483,502,515,520,525,529,534,540,544,547,548,550,552,557,561,568,569,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[65,547],[39,52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,216,232,265,290,319,350,351,358,363,378,394,456,464,475,482,483,514,546,549,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[114,213,859,862],[32,50,57,62,63,64,66,70,75,85,114,123,124,130,134,145,147,182,183,198,213,217,220,265,319,366,370,455,464,470,472,498,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,860,861,863,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[860],[52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829,859,862],[24,63,213,392,864,867,868],[23,24,57,62,63,64,66,70,85,98,114,123,124,130,134,145,147,183,188,204,213,217,220,265,319,366,370,392,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,865,866,868,869,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[865],[26,52,58,78,79,89,94,104,110,117,123,125,153,170,172,183,193,204,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829,864,867],[23,185,213,220,392,867,869],[25,29,56,63,78,97,109,111,117,148,152,153,155,188,189,194,195,198,213,289,302,327,348,363,367,370,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[47,58,62,63,64,66,70,78,79,85,89,94,108,110,114,117,123,124,125,130,134,145,147,153,170,172,183,188,211,213,214,217,220,232,265,290,319,350,351,358,366,367,368,369,371,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[213,368,371],[55,58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,328,350,351,358,367,370,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[38,213],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,872,873,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[26,204,263,871],[264,874],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,875,876,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[263],[264,877],[62,63,64,65,66,70,85,114,123,130,134,145,147,183,213,220,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,878,879,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[21,58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,263,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829,880],[264,880],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,882,883,885,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[881],[884,886],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,890,891,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[26,52,104,117,193,204,232,263,363,378,552,563,641,871],[264,892],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,893,894,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[890],[891,895],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,887,888,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,889],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,896,897,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[263,871],[264,898],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,899,900,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,901],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,908,909,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[884,910],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,902,903,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,904],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,905,906,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,907],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,911,912,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[884,913],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,920,921,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,922],[62,63,64,65,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,914,915,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,916],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,917,918,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,919],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,881,884,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,883],[32,56,58,62,63,64,66,70,78,79,85,89,94,110,111,114,117,123,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,198,204,211,213,214,216,232,261,262,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,482,483,498,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,923,924,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[26,52,104,117,193,204,216,232,263,363,378,482,552,563,641,923,925],[264,925],[188],[66,261],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,926,927,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,928],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,929,930,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[26,204,263],[264,931],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,933,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,934],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,934,935,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[932],[933,936],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,934,936,938,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[933,939],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,934,936,939,941,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[933,942],[21,62,63,64,66,70,85,114,123,130,134,145,147,183,188,204,213,220,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,944,945,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[21,26,58,78,79,89,94,110,117,123,125,153,170,172,183,204,211,232,263,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829,946],[264,946],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,947,948,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,949],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,950,951,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,952],[32,56,63,124,195,213,217,263,264,265,455],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,953,954,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,955],[62,63,64,66,70,85,114,123,130,134,145,147,183,188,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,956,957,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[52,104,117,193,232,263,363,378,552,563,641],[264,958],[62,63,64,65,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,870,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,959,960,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,961],[32,56,63,66,204,213,261,262,455,968,969],[63,264,970],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,962,963,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[884,964],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,971,972,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,973],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,965,966,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,967],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,974,975,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,976],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,977,978,982,985,988,991,994,997,1000,1003,1006,1009,1012],[264,979],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,981,982,984,988,991,994,997,1000,1003,1006,1009,1012],[871,980],[983,985],[58,62,63,64,66,70,78,79,85,89,94,110,114,117,123,125,130,134,145,147,153,170,172,183,198,211,213,232,261,262,263,264,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[67,542],[56,265],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,870,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,980,983,985,988,991,994,997,1000,1003,1006,1009,1012],[26,52,104,117,172,193,204,232,263,363,378,552,563,641,871],[264,982],[62,63,64,65,66,70,85,114,123,130,134,145,147,183,204,213,216,261,262,265,319,366,370,455,470,472,482,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,986,987,991,994,997,1000,1003,1006,1009,1012],[26,56,66,204,216,263,482,986],[264,988],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,989,990,994,997,1000,1003,1006,1009,1012],[884,991],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,995,996,1000,1003,1006,1009,1012],[264,997],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,992,993,997,1000,1003,1006,1009,1012],[264,994],[26,32,50,58,62,63,64,66,70,75,78,79,85,89,94,110,111,114,117,123,124,125,130,134,145,147,153,170,172,183,184,198,204,211,212,213,217,220,232,261,262,265,290,319,344,350,351,352,353,355,356,358,366,370,378,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,998,999,1003,1006,1009,1012],[55,172,263,328,680,1000],[63,1000],[62,63,64,66,70,85,114,123,130,134,145,147,183,198,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1001,1002,1006,1009,1012],[264,1003],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,870,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1007,1008,1012],[264,1009],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1004,1005,1009,1012],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,263,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829,1006],[264,1006],[62,63,64,66,70,85,114,123,130,134,145,147,183,213,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1010,1011],[264,1012],[36,78,85,96,111,114,117,122,123,148,152,153,155,168,170,181,183,185,186,188,189,190,197,198,213,220,222,233,249,251,252,256,274,278,284,289,294,299,300,307,313,319,322,323,325,327,333,336,337,339,344,350,352,356,364,365,385,387,394,396,450,455,472,475,476,477,479,481,483,484,502,505,509,511,549,552,557,558,561,568,569,571,576,578,583,588,599,623,624,625,634,639,656,657,680,736,776,829,840,925,1021],[26,32,62,64,66,70,85,87,110,114,123,130,134,145,147,176,183,184,188,191,196,198,201,203,204,208,211,213,220,232,256,265,274,290,291,292,294,295,299,319,324,332,344,348,350,351,352,365,366,370,455,470,472,478,509,515,520,525,529,534,540,544,549,568,584,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[36,77,78,85,111,114,117,122,123,148,152,153,155,176,181,183,186,188,189,198,201,211,213,220,251,278,289,295,296,297,298,307,319,322,350,364,387,394,396,450,455,472,475,477,483,502,549,552,557,561,568,569,571,588,599,623,624,625,639,656,657,680,736,776,829,840,925],[63,65,214,232,290],[36,58,62,64,66,70,78,79,85,87,89,90,94,96,110,114,117,122,123,125,130,134,145,147,153,165,168,170,172,173,181,183,184,185,196,198,199,208,211,213,216,221,232,248,251,256,265,270,278,281,290,291,292,295,299,319,322,330,332,337,338,342,344,348,350,351,352,356,358,365,366,370,385,386,387,394,450,455,456,464,470,472,475,478,479,482,483,509,514,515,520,525,529,534,540,544,549,552,557,558,559,563,568,571,576,584,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[58,78,79,89,90,94,96,110,117,123,125,153,165,168,170,172,173,183,196,198,199,201,211,213,219,220,221,232,248,256,265,270,281,290,291,300,319,330,332,337,338,342,350,351,356,358,385,386,387,394,456,464,475,479,483,514,552,557,558,559,563,576,588,596,623,640,656,657,680,707,710,725,829,1013,1021],[26,27,65,78,85,87,88,96,110,111,152,153,168,170,173,175,184,185,188,190,196,197,198,201,204,208,211,213,218,220,221,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,339,341,344,348,350,351,352,356,364,365,378,385,387,476,478,479,481,484,501,505,509,511,558,561,576,578,583,584,588,599,623,625,634,656,680,736,769,829,847,1021],[174,185,198,201,211,213,220],[65,173,185],[21,22,26,79,89,90,96,153,165,168,172,196,198,199,204,218,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[32,78,85,96,111,153,168,170,185,188,190,191,197,198,201,203,204,211,213,220,222,233,249,252,256,274,284,291,292,293,295,307,313,323,324,325,327,333,336,337,339,344,352,356,364,365,385,387,455,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[65,291],[79,89,90,96,153,165,168,173,196,198,199,216,221,232,248,256,270,281,290,330,332,337,338,342,356,358,385,386,387,456,479,482,558,559,576,596,1021],[27,38,198,213,1015,1019],[111,184,188,201,212,213,247,272,274,344,350,351,352,353,355,356,378,1016,1017,1019],[27,62,64,65,66,70,85,87,110,111,114,123,130,134,145,147,183,184,191,196,208,212,213,220,232,247,248,256,265,274,281,282,290,292,319,324,332,344,348,350,351,352,353,355,356,365,366,370,378,455,470,472,478,491,509,515,520,525,529,534,540,544,549,568,584,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1018,1019,1020],[1015],[27,78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,201,213,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,572,576,578,580,583,588,596,599,625,634,656,680,736,1015,1017,1020,1021],[248],[111,177,178,179,184,188,190,191,195,198,201,204,212,213,272,274,281,324,344,350,351,352,353,355,356,378,1018],[78,85,96,111,153,168,170,185,188,190,197,198,221,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[58,78,79,85,89,90,94,96,110,111,117,123,125,153,165,168,170,172,173,183,185,188,190,195,196,197,198,199,204,211,221,222,229,230,231,232,233,248,249,252,256,265,270,274,281,284,286,287,288,289,290,291,294,295,301,303,304,307,308,313,319,323,325,326,327,330,332,333,336,337,338,339,342,344,350,351,352,356,358,364,365,385,386,387,394,456,464,475,476,479,481,483,484,505,509,511,514,552,557,558,559,561,563,576,578,583,588,596,599,623,625,634,640,656,657,680,707,710,725,736,829,1021],[27,33,73,204,213,223,224,228,229,333],[235,244,245,270,271,276,277,278,279,283],[27,223,230],[27,38,198,230,284],[56,78,85,97,109,111,114,117,123,148,152,153,154,155,170,183,186,188,189,194,195,198,223,227,230,289,295,299,302,307,319,327,333,348,350,363,364,368,387,394,396,452,455,469,472,475,477,482,483,502,516,549,552,557,561,569,588,599,623,624,625,630,639,643,656,657,680,736,829,840,846,925],[198,223,227,230,333],[223,230],[27,185,198,204,223,230,284,333],[52,104,117,188,193,232,333,363,378,552,563,641],[188,224,284,333],[188,195,198,223,230,303,307],[56,78,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,333,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[78,85,96,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,195,197,198,222,223,224,233,249,252,256,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,364,365,385,387,394,396,455,472,475,476,477,479,481,483,484,502,505,509,511,549,552,557,558,561,569,576,578,583,588,599,623,624,625,634,639,656,657,680,736,829,840,925,1021],[27,204,223,227,230],[27,31,78,85,96,111,117,124,129,153,168,170,185,188,190,197,198,204,217,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,383,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,728,736,771,1021],[56,78,85,96,97,109,111,117,148,152,153,155,168,170,185,188,189,190,194,195,197,198,216,222,233,249,252,256,274,284,289,294,295,302,307,313,323,325,327,333,336,337,339,344,348,352,356,363,364,365,368,385,387,396,452,469,476,479,481,482,484,502,505,509,511,516,552,557,558,561,569,576,578,583,588,599,623,625,630,634,643,656,680,736,846,1021],[55,79,89,90,96,153,165,168,173,196,198,199,216,221,232,248,256,270,281,290,291,328,330,332,337,338,342,356,358,385,386,387,456,479,482,558,559,576,596,680,1021],[27,198,223,224,287,333],[198],[232],[79,87,89,90,96,110,153,165,168,173,184,196,198,199,208,221,232,248,256,270,281,290,291,292,330,332,337,338,342,344,348,350,351,352,356,358,365,385,386,387,456,478,479,509,558,559,576,584,596,769,1021],[27,37,73,204,333],[37,227,333],[27,78,85,96,111,153,168,170,185,188,190,197,198,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[27,73,188,195,198,204,211,333],[27],[27,33,213],[26,27,124,188,198,204,205,217],[27,32,72,73,204,205,385,455],[19,22,23,24,28,32,49,58,78,79,87,88,89,94,110,111,117,123,125,150,152,153,170,172,176,183,184,185,188,191,195,196,198,204,205,208,209,211,212,221,232,256,265,274,290,292,319,324,332,341,344,348,350,351,352,353,355,356,358,365,378,387,394,455,456,464,475,478,483,501,509,514,552,557,558,559,563,584,588,596,623,640,656,657,680,707,710,725,769,829,847],[56,78,79,87,89,90,96,97,109,110,111,117,148,150,152,153,155,165,168,173,176,184,188,189,194,195,196,198,199,208,211,221,232,248,256,270,281,289,290,291,292,302,327,330,332,335,337,338,342,344,348,350,351,352,353,355,356,358,363,365,368,378,385,386,387,396,452,456,469,478,479,482,502,509,516,552,557,558,559,569,576,584,596,599,623,625,630,643,656,680,769,846,1021],[32,58,78,79,85,87,89,94,110,111,114,117,123,125,148,150,152,153,155,170,172,176,183,184,186,188,189,196,198,208,211,212,232,256,265,289,290,292,295,299,307,319,332,344,348,349,350,351,352,353,355,356,358,364,365,378,387,394,396,455,456,464,472,475,477,478,483,502,509,514,549,552,557,559,561,563,569,584,588,596,599,623,624,625,639,640,656,657,680,707,710,725,736,769,829,840,925],[32,56,57,58,74,78,79,85,88,89,90,94,96,97,109,110,111,114,117,123,125,148,151,152,153,154,155,165,168,170,172,173,183,185,186,188,189,190,191,194,195,196,197,198,199,205,211,215,216,221,222,232,233,248,249,252,256,265,270,274,281,284,289,290,291,294,295,299,302,307,313,319,323,324,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,356,358,363,364,365,368,378,385,386,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,501,502,505,509,511,514,516,549,552,557,558,559,561,563,569,576,578,583,588,596,599,623,624,625,630,634,639,640,643,656,657,680,707,710,725,736,829,840,846,847,925,1021],[56,58,74,78,79,85,89,94,97,109,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,194,195,198,211,216,232,265,289,290,295,299,302,307,319,327,348,350,351,358,363,364,368,387,394,396,452,455,456,464,469,472,475,477,482,483,502,514,516,549,552,557,559,561,563,569,588,596,599,623,624,625,630,639,640,643,656,657,680,707,710,725,736,829,840,846,925],[153],[87,110,111,150,176,184,195,196,198,208,215,216,232,256,290,292,332,344,348,350,351,352,353,355,365,378,478,482,509,584,769],[20,58,78,79,87,89,94,110,111,117,123,125,150,153,170,172,176,183,184,196,208,211,212,221,232,256,265,290,292,319,332,344,348,350,351,352,353,355,356,358,365,378,394,456,464,475,478,483,502,509,514,552,557,559,563,584,588,596,623,640,656,657,680,707,710,725,769,829],[24,32,78,85,86,87,88,96,110,111,150,152,153,168,170,176,184,185,188,190,195,196,197,198,204,208,211,212,216,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,339,341,344,348,350,351,352,353,355,356,364,365,378,385,387,455,476,478,479,481,482,484,501,505,509,511,558,561,572,576,578,580,583,584,588,599,623,625,634,656,680,736,769,829,847,1021],[111,150,176,184,211,212,292,344,348,350,351,352,353,355,356,378,584],[111,150,176,184,185,211,292,348,350,351,352,353,355,378,584],[19,20,58,78,79,87,89,94,110,111,117,123,125,150,153,170,172,176,183,184,188,196,198,208,211,212,221,232,256,265,290,292,319,332,344,348,350,351,352,353,355,356,358,365,378,394,456,464,475,478,483,502,509,514,552,557,559,563,584,588,596,623,640,656,657,680,707,710,725,769,829],[32,198,204,206,207,208,211,344,455],[32,87,110,184,196,206,207,208,209,211,232,256,290,292,332,344,348,350,351,352,365,455,478,509,584,769],[23,32,78,85,87,96,110,111,153,168,170,184,185,188,190,195,196,197,198,206,207,208,211,212,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,338,339,341,342,344,348,350,351,352,353,355,356,364,365,378,385,387,455,476,478,479,481,484,505,509,511,558,561,576,578,583,584,588,599,625,634,656,680,736,769,1021],[87,110,111,150,176,184,196,208,211,232,256,290,291,292,294,332,344,348,350,351,352,353,355,365,378,478,509,584,769],[87,110,151,184,196,208,232,256,290,292,332,341,342,344,348,350,351,352,365,478,509,584,769],[56,78,85,96,97,109,110,111,112,114,117,123,148,150,152,153,155,168,170,176,183,184,185,186,188,189,190,194,195,197,198,204,211,212,222,233,249,252,256,274,284,289,292,294,295,299,302,307,313,319,323,325,327,333,336,337,339,344,348,350,351,352,353,355,356,363,364,365,368,378,385,387,394,396,452,455,469,472,475,476,477,479,481,482,483,484,502,505,509,511,516,549,552,557,558,561,569,576,578,583,584,588,599,623,624,625,630,634,639,643,656,657,680,736,829,840,846,925,1021],[22,25,92,110,111,204,211],[20,23,32,86,87,110,184,196,203,204,208,211,232,256,290,292,332,344,348,350,351,352,365,455,478,502,509,558,584,769,847],[87],[52,87,88,104,110,111,117,150,152,153,176,184,185,188,193,196,198,208,211,212,232,256,290,292,332,341,344,348,350,351,352,353,355,356,363,365,366,375,376,378,387,478,501,509,552,558,563,584,623,641,656,769,829,847],[87,204,375,378],[92,111,112,150,176,184,198,211,212,292,344,348,350,351,352,353,355,356,378,584],[78,79,85,87,88,89,90,96,110,111,152,153,165,168,170,173,184,185,188,190,196,197,198,199,208,211,212,221,222,232,233,248,249,252,256,270,274,281,284,290,291,292,294,295,307,313,323,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,353,355,356,358,364,365,378,385,386,387,456,476,478,479,481,484,501,505,509,511,558,559,561,576,578,583,584,588,596,599,623,625,634,656,680,736,769,829,847,1021],[22,25,26,27,49,56,58,62,64,66,70,78,79,85,87,88,89,90,94,96,97,109,110,111,114,117,123,125,130,134,145,147,148,152,153,155,165,168,170,172,173,183,184,185,186,188,189,190,191,194,195,196,197,198,199,203,204,205,208,211,212,221,222,232,233,248,249,252,256,265,270,274,281,284,289,290,291,292,294,295,299,302,307,313,319,323,324,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,353,355,356,358,363,364,365,366,368,370,378,385,386,387,394,396,452,455,456,464,469,470,472,475,476,477,478,479,481,482,483,484,501,502,505,509,511,514,515,516,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,572,576,578,580,583,584,588,596,599,623,624,625,630,634,637,639,640,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[72,74,78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,216,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,335,336,337,338,339,342,344,348,352,356,358,364,365,384,385,386,387,456,476,479,481,482,484,505,509,511,558,559,561,572,576,578,580,583,588,596,599,625,634,656,680,736,1021],[78,85,91,96,111,153,168,170,185,188,190,197,198,222,233,248,249,252,256,258,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[27,79,89,90,96,153,165,168,173,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[27,32,78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,318,320,322,323,324,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,455,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[25,27,32,34,73,78,79,85,87,88,89,90,96,110,111,114,117,123,148,152,153,155,165,168,170,173,183,184,185,186,188,189,190,196,197,198,199,203,204,208,211,221,222,232,233,248,249,252,256,270,274,281,284,289,290,291,292,294,295,299,307,313,319,323,325,327,330,332,333,336,337,338,339,341,342,344,348,350,351,352,356,358,364,365,378,383,385,386,387,394,396,455,456,472,475,476,477,478,479,481,482,483,484,501,502,505,509,511,549,552,557,558,559,561,569,576,578,583,584,588,596,599,623,624,625,634,639,656,657,680,687,728,736,769,829,840,847,925,1021],[21,216,482],[79,89,90,96,153,165,168,173,196,198,199,201,219,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1014,1021],[58,78,79,87,89,94,110,117,123,125,153,155,168,170,172,183,184,188,196,198,208,211,232,256,265,290,292,313,319,332,344,348,350,351,352,358,365,385,394,456,464,475,478,483,484,505,509,511,514,552,557,559,563,572,580,584,588,596,623,640,656,657,680,707,710,725,769,829],[23,388,389,390],[253],[25,26,27,28,49,58,78,79,85,89,94,96,110,111,117,123,125,153,155,156,168,170,172,183,185,188,190,195,197,198,204,205,211,222,232,233,249,252,256,265,274,284,290,294,295,307,313,319,323,325,327,333,336,337,339,344,350,351,352,356,358,364,365,385,387,394,456,464,475,476,479,481,483,484,505,509,511,514,552,557,558,559,561,563,576,578,583,588,596,599,623,625,634,640,656,657,680,707,710,725,736,829,1021],[56,78,85,88,97,109,111,114,117,123,148,152,153,154,155,170,183,185,186,188,189,194,195,198,289,295,299,302,307,319,327,341,348,350,352,363,364,368,378,387,394,396,452,455,469,472,475,477,482,483,501,502,509,516,549,552,557,558,561,569,588,599,623,624,625,630,639,643,656,657,680,736,829,840,846,847,925],[23,78,85,96,111,153,168,170,185,188,190,197,198,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,335,336,337,339,344,348,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[27,79,89,90,96,153,165,168,173,190,191,196,198,199,221,232,248,256,270,274,281,290,291,324,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[25,27,78,79,85,89,90,96,111,124,153,165,168,170,173,185,188,190,191,195,196,197,198,199,204,211,217,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,324,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[26,37,124,204,217],[25,26,27,34,73,203,204,270,383,387,482,687,728],[21,22,25,26,27,28,29,30,31,32,117,124,129,188,203,204,205,216,217,233,383,455,481,482,558,728,771],[32,204,205,216,380,383,455,482],[22,25,26,32,36,122,124,181,203,204,216,217,251,278,295,299,322,450,455,472,482,568,571,588,776],[21,23,25,26,27,28,30,32,33,34,35,36,38,73,92,122,124,181,204,205,217,218,251,270,278,295,299,322,383,387,450,455,472,482,568,571,588,687,728,776],[23,31,32,34,73,117,124,129,188,203,204,217,233,270,335,348,379,382,383,384,387,455,481,482,558,687,728,771],[32,35,36,122,124,181,251,278,295,299,322,450,455,472,568,571,588,776],[203,204],[78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[21,22,23,25,31,32,52,55,56,58,76,78,79,85,89,92,94,97,104,109,110,111,114,116,117,123,124,125,129,148,152,153,155,170,172,183,186,188,189,193,194,195,198,204,205,211,217,232,233,265,289,290,295,299,302,307,319,327,328,348,350,351,358,363,364,368,378,383,387,394,396,452,455,456,464,469,472,475,477,481,482,483,502,514,516,549,552,557,558,559,561,563,569,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,728,736,771,829,840,846,925],[48,58,78,79,85,89,94,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,198,205,211,232,265,289,290,295,299,307,319,350,351,358,364,387,394,396,455,456,464,472,475,477,483,502,514,549,552,557,559,561,563,569,588,596,599,623,624,625,639,640,656,657,680,707,710,725,736,829,840,925],[41,48,52,58,66,78,79,89,94,104,110,117,123,125,153,170,172,183,193,211,232,265,290,319,350,351,358,363,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,641,656,657,680,707,710,725,829],[32,49,52,56,57,78,92,97,104,109,111,117,124,148,152,153,155,188,189,192,193,194,195,198,204,205,213,216,217,232,289,302,327,348,363,368,378,396,452,455,464,469,482,502,516,552,557,563,569,599,623,625,630,641,643,656,680,846],[25,31,32,36,47,49,50,51,52,56,57,58,62,63,64,66,70,78,79,85,89,94,96,97,104,109,110,111,114,117,122,123,124,125,129,130,134,145,147,148,152,153,155,168,170,172,181,183,184,185,186,188,189,190,191,193,194,195,197,198,204,205,211,212,213,216,217,222,232,233,249,251,252,256,265,274,278,284,289,290,294,295,299,302,307,313,319,322,323,324,325,327,333,336,337,339,344,348,350,351,352,353,355,356,358,363,364,365,366,368,370,378,383,385,387,394,396,450,452,455,456,464,469,470,472,475,476,477,479,481,482,483,484,502,505,509,511,514,515,516,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,571,576,578,583,588,596,599,623,624,625,630,634,637,639,640,641,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,728,732,736,741,746,749,755,757,760,764,769,771,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[56,58,78,79,85,89,94,97,109,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,194,195,198,211,232,265,289,290,295,299,302,307,319,327,348,350,351,356,358,363,364,368,387,394,396,452,455,456,464,469,472,475,477,482,483,502,514,516,549,552,557,559,561,563,569,588,596,599,623,624,625,630,639,640,643,656,657,680,707,710,725,736,829,840,846,925],[62,64,66,70,85,114,123,130,134,145,147,183,188,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[19,20,79,89,90,96,153,165,168,173,184,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,351,356,358,385,386,387,456,479,502,558,559,576,596,1021],[23,24,56,58,78,79,85,89,94,96,97,109,110,111,114,117,123,125,148,152,153,155,168,170,172,183,185,186,188,189,190,191,194,195,197,198,203,204,211,222,232,233,249,252,256,265,274,284,289,290,294,295,299,302,307,313,319,323,324,325,327,333,336,337,339,344,348,350,351,352,356,358,363,364,365,368,385,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,502,505,509,511,514,516,549,552,557,558,559,561,563,569,576,578,583,588,596,599,623,624,625,630,634,639,640,643,656,657,680,707,710,725,736,829,840,846,925,1021],[26,27,33,37,58,78,79,89,94,110,111,117,123,124,125,153,170,172,183,184,188,198,204,211,212,217,221,232,265,290,319,344,350,351,352,353,355,356,358,378,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[41,398,400,407,410,411,412,414,416,417],[41,43,48,398,399,406,412,414,416,417,441,443,445,447,449],[41,398,401,407,410,412,413,414,416,417],[41,398,402,407,410,412,414,415,416,417],[41,398,404,405,407,410,412,414,416,417],[41,48,400,406,407],[41,48,405,407],[41,48,401,406],[41,48,406,407],[41,48,405,406],[41,48,403,407],[398,412,414,416,417],[41,45,46,47],[41,46,48],[48,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438],[41,42,43,45,48,440,441,443,445,447,449],[41,43,44,48,441,443,445,447,449],[41,43,45,48,441,442,443,445,447,449],[41,43,45,48,439,441,443,444,445,447,449],[41,43,45,48,441,443,445,446,447,449],[41,43,45,48,441,443,445,447,448,449],[25,79,89,90,96,111,153,165,168,173,184,190,196,198,199,203,204,205,212,221,232,235,236,237,239,241,243,244,245,246,248,256,270,271,274,276,277,278,279,281,282,283,290,291,330,332,337,338,342,344,350,351,352,353,355,356,358,378,385,386,387,456,479,485,486,487,488,489,490,491,492,493,494,495,558,559,576,596,1021],[190,198,204,244,245,274,281,282],[282],[124,204,217,232,234,241,243,270,281,283],[204,232,235,241,242,270,271,276,277,278,279,281],[25,111,184,204,212,232,235,241,242,244,245,270,271,276,277,278,279,281,344,350,351,352,353,355,356,378],[22,23,25,36,122,124,181,203,204,217,232,235,241,242,243,244,245,251,270,271,276,277,278,279,281,283,295,299,322,450,472,568,571,588,776],[32,34,38,73,79,89,90,96,153,165,168,173,196,198,199,203,204,221,232,234,235,241,242,248,256,270,271,276,277,278,279,281,290,291,330,332,337,338,342,356,358,383,385,386,387,455,456,479,482,558,559,576,596,687,728,1021],[204,236,237,238,239,243,244,283],[25,237,239,240,242,244,245,281,283],[23,191,204,235,238,243,270,271,274,276,277,278,279,282,283,324],[23,188,211,237,239,243,244,245,283],[27,78,85,91,96,111,153,168,170,185,188,190,191,197,198,222,233,247,248,249,252,256,258,268,274,281,283,284,294,295,307,313,323,324,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1016,1018,1021],[190],[27,198,259,260,266,267,282,283],[268,282,283],[190,274],[198,268,282,283],[268,283],[238,246,281,485,486,487,488,489,490,491,492,493,494,495],[237,239,244,246,281,282,485,486,487,488,489,490,491,492,493,494,495],[216,232,241,246,482,485,486,487,488,489,490,491,492,493,494,495],[21,244,246,485,486,487,488,489,490,491,492,493,494,495],[238,246,485,486,487,488,489,490,491,492,493,494,495],[23,244,245,246,485,486,487,488,489,490,491,492,493,494,495],[26,39,71,204,232,236,237,239,241,244,246,281,282,283,485,486,487,488,489,490,491,492,493,494,495],[23,232,237,239,241,244,245,246,281,485,486,487,488,489,490,491,492,493,494,495],[32,238,246,281,455,485,486,487,488,489,490,491,492,493,494,495],[237,238,239,244,246,485,486,487,488,489,490,491,492,493,494,495],[232,237,239,241,242,244,246,281,282,485,486,487,488,489,490,491,492,493,494,495],[32,36,122,181,203,251,278,295,299,322,450,455,472,568,571,588,776],[63,188,198,211,214],[25,78,85,96,111,153,168,170,185,188,190,197,198,204,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,462,475,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[52,58,63,78,79,85,89,94,104,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,193,195,198,211,232,265,289,290,295,299,307,319,350,351,358,363,364,378,387,394,396,455,456,462,464,472,475,476,477,483,502,514,549,552,557,559,561,563,569,588,596,599,623,624,625,639,640,641,656,657,680,707,710,725,736,829,840,925],[188,198,456,458,477],[85],[63,78,85,111,114,117,123,148,152,153,155,183,186,188,189,198,289,295,299,307,319,350,364,387,394,396,455,456,462,472,475,477,483,502,549,552,557,561,569,588,599,623,624,625,639,656,657,680,736,829,840,925],[35,124,188,203,204,217],[78,79,85,89,90,91,96,111,153,165,168,170,173,185,188,190,196,197,198,199,204,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[79,89,90,91,96,153,165,168,173,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[21,22,26,39,71,87,110,184,196,204,208,209,211,221,232,256,290,292,332,344,348,350,351,352,365,478,509,584,769],[78,79,85,87,89,90,96,110,111,153,165,168,170,173,184,185,188,190,196,197,198,199,208,211,221,222,232,233,248,249,252,256,270,274,281,284,290,291,292,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,348,350,351,352,356,358,364,365,385,386,387,406,456,476,478,479,481,484,505,509,511,558,559,561,576,578,583,584,588,596,599,625,634,656,680,736,769,1021],[47,78,188,211,502],[88,152,153,172,185,198,211,341,352,378,387,501,509,558,623,656,829,847],[20,47,52,56,62,64,66,70,78,85,97,104,109,111,114,117,123,130,134,145,147,148,152,153,155,171,183,184,186,188,189,193,194,195,198,232,265,289,295,299,302,307,319,327,348,350,351,363,364,366,368,370,378,387,394,396,452,455,469,470,472,475,477,482,483,499,502,515,516,520,525,529,534,540,544,549,552,557,561,563,568,569,588,599,623,624,625,630,637,639,641,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[78,85,96,111,153,168,170,185,188,190,197,198,204,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1021],[552],[25,78,85,96,111,153,168,170,185,188,190,191,195,197,198,204,222,233,249,252,256,274,284,294,295,307,313,323,324,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,553,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1021],[23,32,52,56,58,78,79,85,89,94,97,104,109,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,191,193,194,195,198,204,211,232,265,274,289,290,295,299,302,307,319,324,327,348,350,351,358,363,364,368,378,387,394,396,452,455,456,464,469,472,475,477,482,483,502,511,514,516,549,552,553,557,559,561,563,569,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,736,829,840,846,925],[191,204,211,274,324,506],[506],[78,85,87,88,96,110,111,152,153,168,170,184,185,188,190,196,197,198,208,211,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,339,341,344,348,350,351,352,356,364,365,378,385,387,476,478,479,481,484,501,505,506,508,509,511,558,561,576,578,583,584,588,599,623,625,634,656,680,736,769,829,847,1021],[25,31,52,58,62,64,66,70,78,79,85,86,87,88,89,90,94,96,104,110,111,114,117,123,124,125,129,130,134,145,147,152,153,165,168,170,172,173,183,185,188,190,193,195,196,197,198,199,203,204,205,211,216,217,221,222,232,233,248,249,252,256,265,270,274,281,284,290,291,294,295,307,313,319,323,325,327,330,332,333,336,337,338,339,341,342,344,350,351,352,356,358,363,364,365,366,370,378,383,385,386,387,394,455,456,464,470,472,475,476,479,481,482,483,484,501,505,509,511,514,515,520,525,529,534,540,544,549,552,555,557,558,559,561,563,568,576,578,583,588,596,599,623,625,634,637,639,640,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,728,732,736,741,746,749,755,760,764,769,771,777,783,788,793,798,803,808,813,819,824,829,834,840,845,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[555],[56,58,62,64,66,70,78,79,85,89,94,97,109,110,111,114,117,123,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,194,195,198,211,232,265,289,290,295,299,302,307,319,327,348,350,351,358,363,364,366,368,370,387,394,396,452,455,456,464,469,470,472,475,477,482,483,502,514,515,516,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,588,596,599,623,624,625,630,637,639,640,643,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,846,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[38,78,85,96,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,197,198,222,233,249,252,256,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,364,365,385,387,394,396,455,472,475,476,477,479,481,483,484,502,505,509,511,549,552,557,558,561,569,576,578,583,588,599,623,624,625,634,639,656,657,680,736,829,840,925,1021],[27,33,78,79,85,87,89,90,91,96,110,111,153,165,168,170,173,184,185,188,190,196,197,198,199,203,204,205,208,221,222,232,233,248,249,252,256,257,258,270,274,281,284,290,291,292,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,348,350,351,352,356,358,364,365,385,386,387,456,476,478,479,481,484,505,509,511,558,559,561,572,576,578,580,583,584,588,596,599,625,634,656,680,736,769,1021],[91,232,248,257,258,559],[36,122,181,203,251,278,295,299,322,450,472,568,571,588,776],[78,85,96,111,153,168,170,185,188,190,197,198,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[79,563],[23,52,56,58,78,79,85,89,90,94,96,97,104,109,110,111,114,117,123,125,148,152,153,155,165,168,170,172,173,183,186,188,189,193,194,195,196,198,199,204,211,221,232,248,256,265,270,281,289,290,291,295,299,302,307,319,327,330,332,337,338,342,348,350,351,356,358,363,364,368,378,385,386,387,394,396,452,455,456,464,469,472,475,477,479,482,483,502,514,516,549,552,557,558,559,561,563,569,576,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,736,829,840,846,925,1021],[70,79,89,90,96,153,165,168,173,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,576,596,1021],[79,89,90,96,153,165,168,173,196,198,199,221,232,248,256,270,281,290,291,330,332,337,338,342,356,358,385,386,387,456,479,558,559,574,576,596,1021],[78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,204,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,574,576,578,583,588,596,599,625,634,656,680,736,1021],[78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,221,222,232,233,248,249,252,256,257,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[232,257,559],[25,31,78,85,96,111,117,129,153,168,170,185,188,190,197,198,204,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,383,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,728,736,771,1021],[88,152,153,185,190,198,204,338,339,341,344,352,378,387,501,509,558,623,656,829,847],[78,85,96,111,153,168,170,185,188,190,197,198,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,341,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[338],[87,110,111,150,176,184,196,208,211,232,256,290,292,332,344,348,350,351,352,353,355,365,378,478,509,583,584,769],[78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,211,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1021],[188,583],[21,25,34,56,73,78,97,109,111,117,124,148,152,153,155,188,189,194,195,198,203,204,205,216,217,270,289,302,327,348,363,368,383,387,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,687,728,846],[58,78,79,85,87,89,94,110,111,114,117,123,125,148,152,153,155,170,172,183,184,186,188,189,196,198,204,208,211,216,232,256,265,289,290,292,295,299,307,319,332,344,348,350,351,352,358,364,365,387,394,396,455,456,464,472,475,477,478,482,483,502,509,514,549,552,557,559,561,563,569,584,588,596,599,623,624,625,639,640,656,657,680,707,710,725,736,769,829,840,925],[25,27,78,85,96,111,153,168,170,185,188,190,197,198,203,204,211,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1021],[36,58,78,79,85,89,94,96,110,111,114,117,122,123,125,148,152,153,155,168,170,172,181,183,185,186,188,189,190,197,198,203,204,211,222,232,233,249,251,252,256,265,274,278,284,289,290,294,295,299,307,313,319,322,323,325,327,333,336,337,339,344,350,351,352,356,358,364,365,385,387,394,396,450,455,456,464,472,475,476,477,479,481,483,484,502,505,509,511,514,549,552,557,558,559,561,563,568,569,571,576,578,583,585,588,596,599,623,624,625,634,639,640,656,657,680,707,710,725,736,776,829,840,925,1021],[593],[56,78,85,96,97,109,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,194,195,197,198,222,233,249,252,256,274,284,289,294,295,299,302,307,313,319,323,325,327,333,336,337,339,344,348,350,352,356,363,364,365,368,385,387,394,396,452,455,469,472,475,476,477,479,481,482,483,484,502,505,509,511,516,549,552,557,558,561,569,576,578,583,588,589,591,592,595,598,599,623,624,625,630,634,639,643,656,657,680,736,829,840,846,925,1021],[589,590],[195,198,591,592,593],[198,595],[78,85,87,96,110,111,153,168,170,184,185,188,190,196,197,198,208,211,222,232,233,249,252,256,274,284,290,292,294,295,307,313,323,325,327,332,333,336,337,339,344,348,350,351,352,356,364,365,385,387,476,478,479,481,484,505,509,511,558,561,576,578,583,584,588,599,625,634,656,680,736,769,1021],[31,117,129,188,204,233,383,481,558,728,771],[32,124,195,198,204,217,358,360,364,455],[78,85,96,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,195,197,198,204,222,233,249,252,256,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,358,360,361,364,365,385,387,394,396,455,472,475,476,477,479,481,483,484,502,505,509,511,549,552,557,558,561,569,576,578,583,588,599,623,624,625,634,639,656,657,680,736,829,840,925,1021],[23,52,56,78,97,104,109,111,117,148,152,153,155,188,189,193,194,195,198,232,289,302,327,348,358,363,364,368,372,378,396,452,469,482,502,516,552,557,563,569,599,623,625,630,641,643,656,680,846],[78,85,96,111,153,165,166,167,168,170,185,188,190,197,198,222,233,249,252,256,274,284,294,295,307,312,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,572,576,578,580,583,588,599,625,634,656,680,736,1021],[78,85,90,96,111,153,168,170,185,188,190,197,198,203,204,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,364,365,385,387,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[90],[190,191,274,323,324,325],[23,25,165,167,204,205,317,325],[32,157,163,164,165,167,455],[803],[515,520,529,534,655,684,736,783],[64,66,70,114,123,455,653,667],[220,265,883],[220,412,414,416,417,441,443,445,447,449],[220,788],[220,1024,1025,1026],[220,319,472,568,716,1030],[220,540,677,1033,1034,1035],[147,220,819],[106,124,189,217,658,661],[57,58,62,64,66,70,78,79,85,89,94,110,114,117,123,124,125,128,130,134,145,147,153,170,172,183,188,211,217,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,659,661,662,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,62,64,66,70,78,85,111,114,117,123,130,134,145,147,148,152,153,155,183,186,188,189,198,265,289,295,299,307,319,350,364,366,370,387,394,396,452,453,455,470,472,475,477,483,502,515,520,525,529,534,540,544,549,552,557,561,568,569,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[455],[32,56,78,92,97,109,111,117,148,152,153,155,188,189,194,195,198,204,289,302,327,348,363,368,396,452,455,469,482,502,512,515,516,552,557,569,599,623,625,630,643,656,680,846],[32,36,52,62,64,66,70,85,104,114,117,122,123,130,134,145,147,181,183,193,204,211,232,251,265,278,295,299,319,322,344,363,366,370,378,450,455,470,472,514,515,516,520,525,529,534,540,544,549,552,563,568,571,588,637,639,641,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,650,652,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,649,653,654,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,666,667,668,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[52,62,64,66,70,85,104,114,117,123,130,134,145,147,183,193,232,265,319,363,366,370,378,455,470,472,515,520,525,529,534,540,544,549,552,563,568,624,637,639,641,653,655,661,667,670,672,673,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,470,472,515,518,520,521,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[518],[170,198],[155],[22,25,26,56,71,78,81,85,89,97,109,111,114,117,123,124,148,152,153,154,155,156,170,183,186,188,189,194,195,198,204,216,217,232,289,295,299,302,307,319,327,348,350,363,364,368,387,394,396,452,455,469,472,475,477,482,483,502,516,549,552,557,561,569,588,599,623,624,625,630,639,643,656,657,680,736,829,840,846,925],[32,54,68,85,455],[57,62,64,66,70,78,81,84,85,96,111,114,117,123,124,130,134,145,147,148,152,153,155,168,170,183,185,186,188,189,190,195,197,198,211,217,222,233,249,252,256,265,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,364,365,366,370,385,387,394,396,455,464,470,472,475,476,477,479,481,483,484,502,505,509,511,515,520,525,529,534,540,544,549,552,557,558,561,568,569,576,578,583,588,599,623,624,625,634,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[50,62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,522,525,526,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[57,62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,675,677,678,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[39,56,57,68,70,78,97,109,111,117,124,148,152,153,155,188,189,194,195,198,216,217,289,302,327,348,363,368,396,452,464,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[114],[25,39,57,58,62,64,66,70,78,79,85,89,94,108,109,110,111,114,117,123,124,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,198,204,211,217,232,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,114,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[21,55,56,58,78,79,85,89,94,96,97,109,110,111,112,114,117,123,125,148,152,153,155,168,170,172,183,185,186,188,189,190,194,195,197,198,204,211,222,232,233,249,252,256,265,274,284,289,290,294,295,299,302,307,313,319,323,325,327,328,333,335,336,337,339,344,348,350,351,352,356,358,363,364,365,368,385,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,502,505,509,511,514,516,549,552,557,558,559,561,563,569,576,578,583,588,596,599,623,624,625,630,634,639,640,643,656,657,680,707,710,725,736,829,840,846,925,1021],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,682,684,685,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[109,516,527,529],[62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,470,472,515,520,525,528,529,530,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[23,32,34,73,124,198,203,204,217,270,381,383,387,455,482,687,728],[109,688,691],[62,64,66,70,85,114,123,130,134,145,147,183,203,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,689,691,692,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[216,384,482],[56,58,78,79,85,88,89,94,97,109,110,111,114,117,123,125,148,152,153,155,170,172,183,185,186,188,189,194,195,198,211,232,265,289,290,295,299,302,307,319,327,341,348,350,351,352,358,363,364,368,378,387,394,396,452,455,456,464,469,472,475,477,482,483,501,502,509,514,516,549,552,557,558,559,561,563,569,588,596,599,623,624,625,630,639,640,643,656,657,680,707,710,725,736,829,840,846,847,925],[92,106,124,204,217,693,696],[62,64,66,70,85,114,123,128,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,694,696,697,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,85,89,94,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,198,211,232,265,289,290,295,299,307,319,350,351,358,364,387,394,396,455,456,464,472,475,477,483,502,514,549,552,557,559,561,563,569,588,596,599,623,624,625,639,640,656,657,680,707,710,725,736,829,840,925],[62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,699,701,702,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,117,123,125,153,170,172,183,188,191,195,198,211,232,265,274,290,319,324,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,646,656,657,680,707,710,725,829],[204,516,703,710],[58,62,64,66,70,78,79,85,89,94,108,110,114,117,123,124,125,130,134,145,147,153,170,172,183,211,216,217,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,482,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,704,707,708,710,711,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[704],[62,64,66,70,85,108,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,532,534,535,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[532],[26,109,177,183,204,216,482],[58,62,64,66,70,78,79,85,89,94,110,111,114,117,123,124,125,130,134,145,147,148,152,153,155,170,172,177,178,179,181,182,183,186,188,189,198,211,216,217,232,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,482,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[178],[23,97,713,714,719],[23,32,57,62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,713,716,718,719,720,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[25,58,62,64,66,70,78,79,85,89,92,94,110,114,117,123,125,130,134,145,147,153,170,172,183,198,211,216,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,482,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,721,723,725,726,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[723],[31,32,34,73,117,124,129,188,203,204,217,233,270,381,383,387,455,481,482,558,687,728,771],[114,729,732],[55,62,64,66,70,85,92,114,123,130,134,145,147,183,203,265,319,328,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,680,684,691,696,701,707,710,716,719,725,730,732,733,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[198,366,368,373],[62,64,66,70,85,87,114,123,130,134,145,147,183,188,198,211,265,319,366,370,372,374,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[372],[57,124,195,204,217,464,734,736],[52,62,64,66,70,78,85,96,104,111,114,117,123,130,134,145,147,148,152,153,155,168,170,183,185,186,188,189,190,193,197,198,204,222,232,233,249,252,256,265,274,284,289,294,295,299,307,313,319,323,325,327,333,336,337,339,344,350,352,356,363,364,365,366,370,378,385,387,394,396,455,470,472,475,476,477,479,481,483,484,502,505,509,511,515,520,525,529,534,540,544,549,552,557,558,561,563,568,569,576,578,583,588,599,623,624,625,634,637,639,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,735,736,737,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012,1021],[51,52,56,78,97,104,109,111,117,148,152,153,155,188,189,193,194,195,198,232,289,302,320,327,348,363,368,378,396,452,468,469,470,482,502,516,552,557,563,569,599,623,625,630,641,643,656,680,757,846],[62,64,66,70,85,114,123,130,134,145,147,183,191,195,204,265,274,318,319,324,366,370,455,467,469,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[56,78,85,96,97,109,111,114,117,123,148,152,153,155,168,170,183,185,186,188,189,190,194,195,197,198,222,233,249,252,256,274,284,289,294,295,299,302,307,313,319,323,325,327,333,336,337,339,344,348,350,352,356,363,364,365,368,385,387,394,396,452,455,469,472,475,476,477,479,481,482,483,484,502,505,509,511,516,549,552,557,558,561,569,576,578,583,588,599,623,624,625,630,634,639,643,646,656,657,680,736,829,840,846,925,1021],[32,68,97,455,463,472],[36,50,57,62,64,66,70,78,85,97,111,114,117,122,123,124,130,134,145,147,148,152,153,155,181,183,186,188,189,195,198,204,217,251,265,278,289,295,299,307,319,322,350,364,366,370,387,394,396,450,455,464,465,470,472,475,477,483,502,515,520,525,529,534,540,544,549,552,557,561,568,569,571,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[464],[678,741],[62,64,66,70,85,114,123,130,134,145,147,183,188,211,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,739,741,742,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,624,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,743,744,746,747,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[109,536,540],[32,57,62,64,66,70,85,114,123,124,130,134,145,147,183,204,217,265,319,366,370,455,464,470,472,515,520,525,529,534,538,540,541,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[677,749],[57,62,64,66,70,85,114,123,124,130,134,145,147,183,216,217,265,319,366,370,455,464,470,472,482,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,748,749,750,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[195,470,472],[116,195,752,755],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,389,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,753,755,756,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[753],[32,56,58,62,64,66,67,70,78,79,85,89,94,110,114,117,123,125,130,134,145,147,153,170,172,183,188,211,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,542,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[68,195,204,705,707,711],[58,62,64,66,70,78,79,85,89,94,110,114,117,123,125,130,134,145,147,153,170,172,183,188,211,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,706,707,708,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,52,68,97,104,117,165,166,167,191,193,204,205,232,274,317,319,324,363,378,455,552,563,641],[52,57,58,62,64,66,70,78,79,85,89,94,97,104,110,111,114,117,120,123,124,125,130,134,145,147,148,152,153,155,165,166,167,170,172,183,186,188,189,193,198,204,205,211,216,217,232,265,289,290,295,299,307,309,319,320,325,350,351,358,363,364,366,370,378,387,394,396,455,456,464,470,472,475,477,482,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,641,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[51,84,320,469,757],[62,64,66,70,85,114,123,130,134,145,147,183,191,195,265,274,319,324,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,757,759,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[57,62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,714,716,717,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[68,70,165,312,568],[32,35,36,62,64,66,70,85,114,122,123,124,130,134,145,147,165,181,183,201,251,265,278,295,299,312,319,322,325,366,370,450,455,470,472,515,520,525,529,534,540,544,549,565,566,568,571,588,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,776,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[565],[56,78,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[32,52,104,117,124,189,193,195,217,232,363,378,455,552,563,639,641,647],[57,58,62,64,66,70,78,79,85,89,94,110,111,114,117,123,124,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,198,211,217,232,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,626,637,639,640,642,646,647,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[640],[188,195,198,625,642,644,645],[625],[52,56,57,58,78,79,85,89,94,97,104,109,110,111,114,117,123,125,148,152,153,155,170,172,183,186,188,189,193,194,195,198,205,211,232,265,289,290,295,299,302,307,319,327,348,350,351,358,363,364,368,378,387,394,396,452,455,456,464,469,472,475,477,482,483,502,514,516,549,552,557,559,561,563,569,588,596,599,623,624,625,630,639,640,641,643,656,657,680,707,710,725,736,829,840,846,925],[188,195,537,540,544],[32,57,62,64,66,70,85,114,123,124,130,134,145,147,183,188,204,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,542,544,545,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,117,123,125,153,170,172,183,188,195,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[106,131,134,137],[57,58,62,64,66,70,78,79,85,89,92,94,110,114,117,123,124,125,128,130,134,135,136,137,145,147,153,170,172,183,188,211,217,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[137],[52,78,85,96,104,111,117,153,168,170,185,188,190,193,195,197,198,222,232,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,344,352,356,363,364,365,378,385,387,476,479,481,484,505,509,511,552,558,561,563,576,578,583,588,599,625,630,634,637,641,646,656,680,736,1021],[56,78,84,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,629,630,637,642,643,647,656,680,846],[57,62,64,66,70,85,114,123,124,130,134,145,147,170,183,198,204,211,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,629,630,631,634,635,637,639,647,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[635],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,624,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,762,764,765,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,109,455,766,769],[50,62,64,66,70,85,87,110,114,123,124,130,134,145,147,183,184,196,208,216,217,232,256,265,290,292,319,332,344,348,350,351,352,365,366,370,455,470,472,478,482,509,515,520,525,529,534,540,544,549,568,584,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,767,769,770,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[204,211,767],[31,117,123,129,188,204,233,383,481,558,728,771],[32,115,117,123,124,195,204,205,217,455],[58,62,64,66,70,78,79,85,89,94,110,111,114,116,117,119,120,123,125,130,134,145,147,148,152,153,155,170,172,183,186,188,189,198,204,211,232,265,289,290,295,299,307,319,350,351,358,364,366,370,387,394,396,455,456,464,470,472,475,477,483,502,514,515,520,525,529,534,540,544,549,552,557,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,772,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,117,123,125,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[32,116,455,772],[21,119,123,124,188,217,772,773],[68,777],[62,64,66,70,85,114,123,124,130,134,145,147,183,188,195,203,217,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,774,777,778,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[56,58,64,66,78,79,85,87,88,89,94,96,97,109,110,111,114,117,123,124,125,148,152,153,155,168,170,172,183,185,186,188,189,190,191,194,195,197,198,204,211,217,222,232,233,249,252,256,265,274,284,289,290,294,295,299,302,307,313,319,323,324,325,327,333,336,337,339,341,344,348,350,351,352,356,358,363,364,365,368,378,385,387,394,396,452,455,456,464,469,472,475,476,477,479,481,482,483,484,501,502,505,509,511,514,516,549,552,557,558,559,561,563,569,572,576,578,580,583,588,596,599,623,624,625,630,634,639,640,643,655,656,657,680,707,710,725,736,829,840,846,847,925,1021],[32,62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,781,783,784,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,786,788,789,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,791,793,794,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[109,795,798],[52,62,64,66,70,85,104,114,117,123,130,134,145,147,183,188,193,205,216,232,265,319,363,366,370,378,455,470,472,482,515,520,525,529,534,540,544,549,552,563,568,637,639,641,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,796,798,799,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[796],[106,130],[105,114,130,189],[57,58,62,64,66,70,78,79,85,89,94,105,106,107,110,114,117,123,124,125,126,128,130,134,137,145,147,153,170,172,183,188,189,198,204,211,217,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[58,78,79,89,94,110,117,123,125,130,153,170,172,183,211,232,265,290,319,350,351,358,394,456,464,475,483,514,552,557,559,563,588,596,623,640,656,657,680,707,710,725,829],[58,62,64,66,68,70,78,79,80,85,89,94,110,114,117,123,125,130,134,145,147,153,170,172,183,188,211,232,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[68,800,803],[62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,801,803,804,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[47,58,78,79,85,89,94,110,111,114,117,123,124,125,148,152,153,155,170,172,183,186,188,189,198,204,211,217,232,265,289,290,295,299,307,319,350,351,358,364,387,394,396,455,456,464,472,475,477,483,502,514,549,552,557,559,561,563,569,588,596,599,623,624,625,639,640,656,657,680,707,710,725,736,829,840,925],[204,637,639],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,354,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,806,808,809,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,60,61,62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,811,813,814,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[99,195,204,815,819,821],[23,55,62,64,66,70,85,92,114,120,123,130,134,145,147,183,265,319,328,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,815,816,817,819,820,821,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[103,820,821],[23,62,64,66,70,85,114,123,130,134,145,147,167,183,204,265,318,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,822,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,148,455,465,825,829],[58,62,64,66,70,78,79,85,88,89,94,110,111,114,117,123,125,130,134,145,147,148,152,153,155,170,172,183,185,186,188,189,198,211,232,265,289,290,295,299,307,319,341,350,351,352,358,364,366,370,378,387,394,396,455,456,464,470,472,475,477,483,501,502,509,514,515,520,525,529,534,540,544,549,552,557,558,559,561,563,568,569,588,596,599,623,624,625,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,826,828,829,830,834,840,845,847,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[25,32,55,195,204,328,455,680,826,829,830],[32,52,56,104,117,193,195,232,363,378,455,552,563,641,831,834,836],[25,57,62,64,66,70,85,92,114,123,124,130,134,145,147,183,185,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,831,832,834,835,836,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[832],[21,52,104,109,117,137,138,140,145,193,232,363,378,552,563,641],[100,140,145],[57,99,138,139,141,142,145,204,464],[57,62,64,66,70,85,92,99,114,123,124,130,134,139,140,141,142,143,145,147,183,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[142],[57,68,93,97,98,100,116,147,464],[50,55,57,62,64,66,70,85,91,92,94,97,99,100,101,103,114,123,124,130,134,145,146,147,148,183,188,198,204,216,217,265,319,328,366,370,455,464,470,472,482,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[91,94],[52,104,117,130,145,188,193,195,216,232,363,378,482,552,563,641],[62,64,66,70,78,85,111,114,117,123,130,134,145,147,148,152,153,155,183,186,188,189,198,265,289,295,299,307,319,350,364,366,370,387,394,396,455,470,472,475,477,483,502,515,520,525,529,534,540,544,549,552,557,561,568,569,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,838,840,841,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[23,86,87,88,152,153,185,198,211,341,352,378,387,501,509,558,623,656,829,847],[56,78,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,348,363,368,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,842,845,846],[62,64,66,70,85,87,114,123,130,134,145,147,183,211,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,843,845,846,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,849,851,852,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[68,853,857],[23,57,62,64,66,70,85,114,123,124,130,134,145,147,183,217,265,319,366,370,388,390,392,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,854,855,857,858,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[855],[23,314,388,391,853],[25,114,546,549],[32,50,57,62,64,66,70,78,85,111,114,117,123,124,130,134,145,147,148,152,153,155,183,186,188,189,198,211,217,265,289,295,299,307,319,350,355,364,366,370,387,394,396,455,464,470,472,475,477,483,502,515,520,525,529,534,540,544,547,549,550,552,557,561,568,569,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[547],[114,859,862],[32,50,57,62,64,66,70,85,114,123,124,130,134,145,147,182,183,198,217,265,319,366,370,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,860,862,863,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[24,109,392,864,867,868],[23,24,57,62,64,66,70,85,114,123,124,130,134,145,147,183,188,217,265,319,366,370,392,455,464,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,865,867,868,869,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[23,392,867,869],[25,29,56,78,97,109,111,117,148,152,153,155,188,189,194,195,198,289,302,327,348,363,367,368,370,396,452,469,482,502,516,552,557,569,599,623,625,630,643,656,680,846],[47,62,64,66,70,85,108,114,123,130,134,145,147,183,188,211,265,319,366,367,368,370,371,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[371],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,872,873,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,875,876,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,878,879,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,882,883,885,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,890,891,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,893,894,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,887,888,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,896,897,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,899,900,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,908,909,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,902,903,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,905,906,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,911,912,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,920,921,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,914,915,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,917,918,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,881,883,884,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,56,62,64,66,70,78,85,111,114,117,123,130,134,145,147,148,152,153,155,183,186,188,189,198,204,261,262,265,289,295,299,307,319,350,364,366,370,387,394,396,455,470,472,475,477,483,502,515,520,525,529,534,540,544,549,552,557,561,568,569,588,599,623,624,625,637,639,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,923,924,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,926,927,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,929,930,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,933,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,934,935,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,934,936,938,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,932,934,936,939,941,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,188,204,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,944,945,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,947,948,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,950,951,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[124,217,263,264,265],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,953,954,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,956,957,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,959,960,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[32,56,66,261,262,265,455,968,969],[264,970],[62,64,66,70,85,114,123,130,134,145,147,183,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,962,963,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,971,972,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,965,966,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,974,975,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,977,978,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,981,982,984,985,988,991,994,997,1000,1003,1006,1009,1012],[58,62,64,66,70,78,79,85,89,94,110,114,117,123,125,130,134,145,147,153,170,172,183,198,211,232,261,262,263,264,265,290,319,350,351,358,366,370,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,980,982,983,985,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,986,987,988,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,989,990,991,994,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,995,996,997,1000,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,992,993,994,997,1000,1003,1006,1009,1012],[26,50,58,62,64,66,70,78,79,85,89,94,110,111,114,117,123,125,130,134,145,147,153,170,172,183,184,198,204,211,212,232,261,262,265,290,319,344,350,351,352,353,355,356,358,366,370,378,394,455,456,464,470,472,475,483,514,515,520,525,529,534,540,544,549,552,557,559,563,568,588,596,623,637,639,640,653,655,656,657,661,667,672,677,680,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,998,999,1000,1003,1006,1009,1012],[264,1000],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1001,1002,1003,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1007,1008,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1004,1005,1006,1009,1012],[62,64,66,70,85,114,123,130,134,145,147,183,261,262,265,319,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1010,1011,1012],[36,78,85,96,111,114,117,122,123,148,152,153,155,168,170,181,183,185,186,188,189,190,197,198,222,233,249,251,252,256,274,278,284,289,294,295,299,300,307,313,319,322,323,325,327,333,336,337,339,344,350,352,356,364,365,385,387,394,396,450,455,472,475,476,477,479,481,483,484,502,505,509,511,549,552,557,558,561,568,569,571,576,578,583,588,599,623,624,625,634,639,656,657,680,736,776,829,840,925,1021],[62,64,66,70,85,114,123,130,134,145,147,176,183,188,191,198,204,211,232,265,274,290,291,294,319,324,366,370,455,470,472,515,520,525,529,534,540,544,549,568,637,639,653,655,661,667,672,677,684,691,696,701,707,710,716,719,725,732,736,741,746,749,755,760,764,769,777,783,788,793,798,803,808,813,819,824,829,834,840,845,851,857,862,867,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,936,939,942,946,949,952,955,958,961,964,967,973,976,979,982,985,988,991,994,997,1000,1003,1006,1009,1012],[36,78,85,111,114,117,122,123,148,152,153,155,181,183,186,188,189,198,211,251,278,289,295,299,307,319,322,350,364,387,394,396,450,455,472,475,477,483,502,549,552,557,561,568,569,571,588,599,623,624,625,639,656,657,680,736,776,829,840,925],[232,290],[36,122,181,251,278,295,299,322,450,472,568,571,588,776],[58,78,79,89,90,94,96,110,117,123,125,153,165,168,170,172,173,183,196,198,199,201,211,219,221,232,248,256,265,270,281,290,291,300,319,330,332,337,338,342,350,351,356,358,385,386,387,394,456,464,475,479,483,514,552,557,558,559,563,576,588,596,623,640,656,657,680,707,710,725,829,1014,1021],[27,78,85,88,96,111,152,153,168,170,173,185,188,190,197,198,204,211,221,222,233,249,252,256,274,284,294,295,307,313,323,325,327,333,336,337,339,341,344,352,356,364,365,378,385,387,476,479,481,484,501,505,509,511,558,561,576,578,583,588,599,623,625,634,656,680,736,829,847,1021],[185,198,211],[173,185],[32,78,85,96,111,153,168,170,185,188,190,191,197,198,203,204,211,222,233,249,252,256,274,284,291,294,295,307,313,323,324,325,327,333,336,337,339,344,352,356,364,365,385,387,455,476,479,481,484,505,509,511,558,561,576,578,583,588,599,625,634,656,680,736,1021],[291],[27,198,1015],[111,184,212,247,274,344,350,351,352,353,355,356,378,1016,1018,1019],[247,248,1016,1018],[78,79,85,89,90,96,111,153,165,168,170,173,185,188,190,196,197,198,199,221,222,232,233,248,249,252,256,270,274,281,284,290,291,294,295,307,313,323,325,327,330,332,333,336,337,338,339,342,344,352,356,358,364,365,385,386,387,456,476,479,481,484,505,509,511,558,559,561,576,578,583,588,596,599,625,634,656,680,736,1015,1020,1021],[111,177,184,188,190,191,198,212,274,281,324,344,350,351,352,353,355,356,378]],"referencedMap":[[1173,1],[1175,2],[222,3],[333,4],[230,5],[285,6],[231,7],[286,8],[289,9],[287,10],[301,11],[304,12],[305,13],[303,14],[308,15],[302,16],[307,17],[326,18],[233,19],[327,20],[328,21],[288,22],[223,23],[329,24],[232,25],[332,26],[331,27],[330,28],[227,29],[229,30],[284,31],[226,32],[228,33],[224,34],[225,35],[205,36],[75,37],[74,38],[211,39],[348,40],[346,41],[345,42],[150,43],[210,44],[88,45],[196,46],[212,47],[350,48],[153,49],[148,50],[149,51],[151,52],[357,53],[351,54],[352,55],[353,56],[176,57],[184,58],[206,59],[207,60],[209,61],[208,62],[344,63],[343,64],[342,65],[292,66],[354,67],[111,68],[110,69],[112,70],[87,71],[347,72],[20,73],[378,74],[375,75],[377,76],[355,77],[356,78],[198,79],[385,80],[200,81],[249,82],[168,83],[386,84],[325,85],[387,86],[214,87],[216,88],[215,89],[65,90],[201,91],[169,92],[388,93],[391,94],[389,93],[314,93],[390,95],[220,96],[219,97],[254,98],[306,99],[170,100],[154,101],[89,102],[152,103],[336,104],[334,105],[199,106],[190,107],[191,108],[25,109],[26,110],[38,111],[73,112],[335,93],[29,113],[77,114],[393,115],[76,116],[30,90],[218,117],[379,118],[217,119],[380,120],[382,121],[204,122],[384,123],[92,124],[381,118],[203,125],[383,126],[122,127],[36,128],[202,129],[337,130],[117,131],[55,132],[394,133],[395,134],[195,135],[194,136],[193,137],[192,138],[188,139],[396,140],[187,141],[186,142],[58,143],[63,144],[62,145],[57,146],[71,147],[221,148],[78,149],[79,150],[213,151],[412,152],[400,153],[407,154],[399,155],[414,156],[401,157],[416,158],[402,153],[417,159],[405,160],[411,161],[406,162],[413,163],[415,164],[404,165],[397,166],[409,167],[408,168],[403,169],[48,170],[47,171],[439,172],[419,173],[420,174],[421,175],[422,175],[423,175],[424,175],[425,175],[426,175],[427,175],[428,175],[429,175],[430,175],[431,175],[432,175],[433,175],[434,175],[435,175],[436,175],[437,175],[438,175],[441,176],[440,177],[45,178],[42,179],[44,180],[443,181],[442,182],[445,183],[444,182],[447,184],[446,182],[449,185],[448,182],[281,186],[283,187],[275,188],[282,189],[245,190],[242,191],[277,192],[269,193],[271,194],[279,195],[278,196],[241,197],[270,198],[276,199],[237,200],[238,201],[243,202],[240,203],[236,204],[244,205],[239,206],[274,207],[273,208],[248,209],[272,210],[268,211],[260,212],[280,213],[266,214],[267,215],[246,216],[485,217],[486,218],[487,219],[489,220],[491,221],[490,222],[492,223],[493,224],[494,225],[488,226],[495,227],[450,228],[497,229],[474,230],[476,231],[456,232],[475,233],[462,234],[496,90],[457,235],[458,236],[461,237],[459,238],[460,239],[477,240],[124,241],[96,242],[95,243],[91,244],[478,245],[479,246],[499,247],[498,248],[503,249],[501,250],[500,235],[172,251],[502,252],[505,253],[480,254],[554,255],[553,256],[551,257],[510,258],[511,259],[552,260],[508,261],[507,262],[506,263],[509,264],[558,265],[556,266],[555,267],[557,268],[561,269],[560,270],[559,271],[256,272],[250,273],[257,274],[251,275],[252,276],[258,277],[564,278],[563,279],[569,280],[570,281],[571,282],[573,283],[572,284],[575,285],[574,286],[576,287],[578,288],[577,289],[579,290],[481,291],[341,292],[339,293],[340,294],[338,295],[584,296],[583,297],[581,298],[580,299],[582,300],[482,301],[483,302],[484,303],[588,304],[586,305],[585,306],[587,305],[590,307],[594,308],[596,309],[599,310],[592,311],[591,116],[595,312],[589,116],[593,313],[598,314],[365,315],[129,316],[600,317],[601,318],[602,319],[603,320],[604,320],[605,318],[606,317],[607,320],[608,319],[609,317],[610,320],[611,321],[612,320],[613,317],[361,322],[362,323],[358,324],[614,23],[364,325],[360,326],[363,327],[376,116],[167,328],[313,329],[323,330],[321,331],[90,332],[324,333],[322,334],[315,335],[318,336],[311,337],[165,338],[317,339],[157,340],[164,341],[159,342],[158,343],[160,342],[161,342],[163,344],[162,342],[615,345],[616,346],[617,346],[618,346],[619,346],[620,346],[622,347],[621,346],[1022,348],[1028,349],[1029,350],[1023,351],[1032,352],[1037,353],[1040,354],[1041,355],[1042,356],[1043,357],[1044,358],[1045,359],[1046,360],[1047,361],[1048,362],[1049,363],[1050,364],[1051,365],[1052,366],[1053,367],[1054,368],[1055,369],[1056,290],[1057,370],[1058,371],[1059,372],[1060,373],[1061,374],[1062,375],[1063,376],[1064,377],[1065,378],[1066,379],[1067,380],[1068,381],[1069,382],[1070,383],[1071,384],[1072,385],[1073,386],[1074,387],[1075,388],[1076,389],[1077,390],[1078,391],[1079,392],[1080,393],[1081,394],[1082,395],[1083,396],[1084,397],[1085,398],[1086,399],[1088,400],[1087,401],[1089,402],[1090,403],[1091,404],[1092,405],[1033,406],[1093,407],[1030,408],[1094,409],[1095,410],[1096,411],[1097,412],[1034,413],[1098,414],[1099,415],[1100,416],[1101,417],[1102,418],[1103,419],[1104,420],[1105,421],[1106,422],[1107,423],[1108,424],[1109,425],[1110,426],[1027,427],[1111,428],[1112,429],[1113,430],[1114,431],[1115,432],[1116,433],[1117,434],[1118,435],[1031,436],[1119,437],[1035,438],[1038,439],[1120,440],[1121,441],[1122,442],[1123,443],[1124,444],[1125,445],[1126,446],[1024,447],[1127,448],[1128,449],[1129,450],[1130,451],[1131,452],[1132,453],[1133,454],[1134,455],[1135,456],[1136,457],[1137,458],[1025,459],[1138,460],[1036,461],[1139,462],[1140,463],[1141,464],[1142,465],[1143,466],[1144,467],[1145,468],[1146,469],[1147,470],[1148,471],[1149,472],[1150,473],[1151,474],[1152,475],[1153,476],[1026,477],[1039,478],[1154,479],[1155,480],[1156,481],[1157,482],[1158,483],[1159,484],[1160,485],[1161,486],[1162,487],[1163,488],[1164,489],[1165,490],[1166,491],[1167,492],[662,493],[658,494],[661,495],[660,496],[659,497],[452,498],[451,499],[455,500],[454,501],[453,502],[663,503],[513,504],[516,505],[512,506],[515,507],[664,508],[514,509],[652,510],[651,511],[653,512],[650,513],[649,514],[648,515],[655,516],[654,517],[668,518],[665,519],[667,520],[666,521],[673,522],[669,523],[672,524],[671,525],[670,526],[521,527],[517,528],[520,529],[519,530],[518,531],[83,532],[82,533],[155,534],[84,535],[54,536],[85,537],[81,538],[526,539],[523,540],[525,541],[524,542],[522,543],[678,544],[674,545],[677,546],[676,547],[675,548],[120,549],[97,550],[679,551],[109,552],[104,553],[114,554],[113,555],[125,556],[680,557],[685,558],[681,519],[684,559],[683,560],[682,561],[530,562],[527,515],[529,563],[528,564],[687,565],[692,566],[688,519],[691,567],[690,568],[689,569],[686,570],[623,571],[697,572],[693,494],[696,573],[695,574],[694,575],[624,576],[702,577],[698,519],[701,578],[700,579],[699,580],[647,581],[98,582],[711,583],[703,584],[710,585],[709,586],[704,587],[535,588],[531,589],[534,590],[533,591],[532,592],[179,593],[177,594],[183,595],[180,596],[178,597],[181,598],[720,599],[713,600],[719,601],[718,602],[721,603],[726,604],[722,605],[725,606],[724,607],[723,608],[728,609],[733,610],[729,611],[732,612],[731,613],[730,614],[727,615],[374,616],[373,617],[366,618],[359,619],[372,620],[737,621],[734,499],[736,622],[735,623],[469,624],[468,625],[470,626],[467,627],[625,628],[465,629],[463,536],[472,630],[466,631],[464,632],[742,633],[738,634],[741,635],[740,636],[739,637],[747,638],[743,519],[746,639],[745,640],[744,641],[538,642],[536,519],[540,643],[539,644],[541,645],[750,646],[751,634],[749,647],[748,648],[471,649],[756,650],[752,651],[755,652],[754,653],[753,654],[56,655],[52,656],[66,657],[67,658],[708,659],[705,660],[707,661],[706,662],[320,663],[166,664],[319,665],[310,666],[309,667],[757,668],[758,669],[760,670],[759,671],[714,672],[712,625],[716,673],[715,674],[717,675],[566,676],[312,677],[568,678],[567,679],[565,680],[643,681],[626,682],[642,683],[641,684],[639,685],[627,686],[640,687],[645,688],[644,99],[646,689],[632,690],[189,691],[545,692],[537,693],[544,694],[543,695],[542,696],[182,697],[136,698],[135,699],[131,700],[134,701],[132,702],[137,703],[631,704],[628,705],[633,706],[634,707],[630,708],[629,709],[637,710],[636,711],[635,712],[765,713],[761,499],[764,714],[763,715],[762,716],[133,118],[770,717],[766,519],[769,718],[767,719],[768,720],[771,721],[118,722],[116,723],[115,724],[123,725],[121,726],[119,727],[773,728],[772,729],[778,730],[779,731],[777,732],[775,733],[774,734],[776,735],[656,736],[784,737],[780,738],[783,739],[782,740],[781,741],[789,742],[785,743],[788,744],[787,745],[786,746],[794,747],[790,748],[793,749],[792,750],[791,751],[799,752],[795,519],[798,753],[797,754],[796,755],[128,756],[107,757],[106,758],[105,759],[130,760],[127,761],[126,762],[68,763],[53,499],[70,764],[69,765],[80,766],[804,767],[800,738],[803,768],[802,769],[801,770],[657,771],[638,772],[809,773],[805,774],[808,775],[807,776],[806,777],[60,778],[59,499],[64,779],[61,780],[814,781],[810,523],[813,782],[812,783],[811,784],[821,785],[816,786],[815,787],[819,788],[818,789],[820,790],[817,791],[824,792],[823,793],[822,794],[830,795],[825,796],[829,797],[827,798],[826,799],[828,800],[836,801],[835,802],[831,803],[834,804],[833,805],[832,806],[143,807],[141,808],[139,809],[140,810],[138,811],[145,812],[144,813],[142,814],[101,815],[100,816],[99,817],[93,738],[147,818],[102,819],[94,820],[146,821],[841,822],[837,823],[840,824],[839,825],[838,826],[847,827],[846,828],[842,519],[845,829],[844,830],[843,831],[852,832],[848,738],[851,833],[850,834],[849,835],[858,836],[853,738],[857,837],[856,838],[855,839],[854,840],[550,841],[546,519],[549,842],[548,843],[547,844],[863,845],[859,519],[862,846],[861,847],[860,848],[869,849],[864,519],[867,850],[866,851],[865,852],[868,853],[368,854],[367,594],[370,855],[369,856],[371,857],[259,858],[874,859],[872,860],[873,861],[877,862],[875,863],[876,864],[880,865],[878,866],[879,867],[886,868],[882,869],[885,870],[892,871],[890,872],[891,873],[895,874],[893,875],[894,876],[889,877],[887,863],[888,878],[898,879],[896,880],[897,881],[901,882],[899,863],[900,883],[910,884],[908,869],[909,885],[904,886],[902,863],[903,887],[907,888],[905,863],[906,889],[913,890],[911,869],[912,891],[922,892],[920,863],[921,893],[916,894],[914,860],[915,895],[919,896],[917,863],[918,897],[883,898],[881,863],[884,899],[925,900],[924,901],[923,902],[261,903],[262,904],[928,905],[926,863],[927,906],[931,907],[929,908],[930,909],[934,910],[932,863],[933,911],[936,912],[937,913],[935,914],[939,915],[940,913],[938,916],[942,917],[943,913],[941,918],[946,919],[944,920],[945,921],[949,922],[947,863],[948,923],[952,924],[950,863],[951,925],[871,926],[955,927],[953,863],[954,928],[958,929],[956,930],[957,931],[961,932],[959,860],[960,933],[970,934],[968,863],[969,935],[964,936],[962,869],[963,937],[973,938],[971,908],[972,939],[967,940],[965,863],[966,941],[976,942],[974,863],[975,943],[979,944],[977,863],[978,945],[985,946],[981,947],[984,948],[265,949],[263,950],[264,951],[982,952],[980,953],[983,954],[988,955],[987,956],[986,957],[991,958],[989,869],[990,959],[997,960],[995,863],[996,961],[994,962],[992,863],[993,963],[1000,964],[998,965],[999,966],[1003,967],[1001,863],[1002,968],[1009,969],[1007,863],[1008,970],[1006,971],[1004,972],[1005,973],[1012,974],[1010,863],[1011,975],[295,976],[300,977],[299,978],[296,979],[290,980],[297,127],[1014,981],[1013,28],[185,982],[175,983],[174,984],[173,985],[294,986],[293,987],[291,988],[1020,989],[1018,990],[1016,991],[1017,992],[1021,993],[1015,994],[1019,995],[298,23]],"exportedModulesMap":[[1173,1],[1175,2],[222,996],[333,997],[230,998],[285,999],[231,1000],[286,1001],[289,1002],[287,1003],[301,1004],[304,1005],[305,1006],[303,1007],[308,1008],[302,1009],[307,1010],[326,1011],[233,1012],[327,1013],[328,1014],[288,1015],[223,1016],[329,1017],[232,25],[332,1018],[331,27],[330,28],[227,1019],[229,1020],[284,1021],[226,1022],[228,1023],[224,1024],[225,1023],[205,36],[75,1025],[74,1026],[211,1027],[348,1028],[346,41],[345,42],[150,43],[210,42],[88,45],[196,46],[212,47],[350,1029],[153,1030],[148,1031],[149,1032],[151,1033],[357,53],[351,1034],[352,1035],[353,1036],[176,1037],[184,1038],[206,59],[207,60],[209,1039],[208,1040],[344,1041],[343,64],[342,65],[292,1042],[354,1043],[111,1044],[110,69],[112,1045],[87,1046],[347,1047],[20,73],[378,1048],[375,75],[377,1049],[355,1050],[356,1051],[198,1052],[385,1053],[200,284],[249,1054],[168,83],[386,1055],[325,1056],[387,1057],[214,1058],[216,88],[215,89],[201,1059],[169,1060],[388,93],[391,1061],[389,93],[314,93],[390,95],[220,96],[219,97],[254,1062],[306,99],[170,1063],[154,101],[89,102],[152,1064],[336,1065],[334,1066],[199,106],[190,1067],[191,108],[25,109],[26,110],[38,1068],[73,1069],[335,93],[29,113],[77,115],[393,115],[30,90],[218,117],[379,118],[217,119],[380,120],[382,121],[204,1070],[384,1071],[92,1072],[381,118],[203,1073],[383,1074],[122,1075],[36,128],[202,1076],[337,1077],[117,1078],[55,132],[394,1079],[395,1080],[195,1081],[194,136],[193,137],[192,138],[188,1082],[396,1083],[187,145],[186,142],[58,143],[63,1084],[62,145],[57,146],[71,1016],[221,1085],[78,1086],[79,150],[213,1087],[412,1088],[400,153],[407,1089],[399,155],[414,1090],[401,157],[416,1091],[402,153],[417,1092],[405,160],[411,1093],[406,1094],[413,1095],[415,1096],[404,1097],[397,166],[409,1098],[408,168],[403,1099],[48,1100],[47,1101],[439,1102],[419,173],[420,174],[421,174],[422,174],[423,174],[424,174],[425,174],[426,174],[427,174],[428,174],[429,174],[430,174],[431,174],[432,174],[433,174],[434,174],[435,174],[436,174],[437,174],[438,174],[441,1103],[440,177],[45,1104],[42,179],[44,180],[443,1105],[442,182],[445,1106],[444,182],[447,1107],[446,182],[449,1108],[448,182],[281,1109],[283,1110],[275,1111],[282,189],[245,190],[242,1112],[277,1113],[269,193],[271,1114],[279,1113],[278,1115],[241,197],[270,1116],[276,1113],[237,1117],[238,201],[243,1118],[240,203],[236,1119],[244,1120],[239,206],[274,1121],[273,994],[248,209],[272,1122],[268,1123],[260,1124],[280,1125],[266,1126],[267,1127],[246,216],[485,1128],[486,1129],[487,1130],[489,1131],[491,1132],[490,1133],[492,1134],[493,1135],[494,1136],[488,1137],[495,1138],[450,1139],[497,1140],[476,1141],[456,232],[475,1142],[462,234],[457,235],[458,236],[461,1143],[459,1144],[460,239],[477,1145],[124,1146],[96,1147],[95,1148],[91,244],[478,1149],[479,1150],[499,248],[498,248],[503,1151],[501,1152],[500,235],[172,251],[502,1153],[505,1154],[554,255],[553,256],[551,1155],[510,258],[511,1156],[552,1157],[508,1158],[507,1159],[506,263],[509,1160],[558,1161],[556,1162],[555,267],[557,1163],[561,1164],[560,270],[559,271],[256,1165],[250,1166],[257,274],[251,1167],[252,1168],[258,277],[564,1169],[563,279],[569,1170],[570,1171],[571,1167],[573,1016],[572,284],[575,1172],[574,286],[576,1173],[578,1174],[577,1175],[579,290],[481,1176],[341,1177],[339,1178],[340,1179],[338,295],[584,1180],[583,1181],[581,298],[580,299],[582,1182],[482,1183],[483,1184],[484,1185],[588,1186],[586,305],[585,306],[587,305],[590,307],[594,1187],[596,309],[599,1188],[592,1189],[595,1190],[593,313],[598,1191],[365,1192],[129,1193],[600,28],[601,28],[602,28],[603,28],[604,28],[605,28],[606,28],[607,28],[608,28],[609,28],[610,28],[611,28],[612,28],[613,28],[361,1194],[362,323],[358,324],[614,1016],[364,1195],[360,95],[363,1196],[167,328],[313,1197],[323,1198],[321,1199],[90,332],[324,1200],[322,334],[315,335],[318,1201],[311,340],[165,338],[317,1202],[157,340],[164,341],[159,342],[158,343],[160,342],[161,342],[163,344],[162,342],[615,345],[616,346],[617,346],[618,346],[619,346],[620,346],[622,347],[621,346],[1022,1203],[1028,349],[1029,1204],[1023,1205],[1032,352],[1037,353],[1040,354],[1041,355],[1042,356],[1043,357],[1044,358],[1045,359],[1046,360],[1047,361],[1048,362],[1049,363],[1050,364],[1051,365],[1052,366],[1053,367],[1054,368],[1055,369],[1056,290],[1057,370],[1058,371],[1059,1206],[1060,373],[1061,374],[1062,375],[1063,376],[1064,377],[1065,378],[1066,379],[1067,380],[1068,381],[1069,382],[1070,383],[1071,384],[1072,385],[1073,386],[1074,387],[1075,388],[1076,389],[1077,390],[1078,391],[1079,392],[1080,393],[1081,394],[1082,395],[1083,396],[1084,397],[1085,398],[1086,290],[1088,400],[1087,290],[1089,402],[1090,290],[1091,290],[1092,290],[1033,290],[1093,407],[1030,290],[1094,290],[1095,290],[1096,1207],[1097,290],[1034,290],[1098,290],[1099,415],[1100,416],[1101,290],[1102,290],[1103,290],[1104,420],[1105,290],[1106,290],[1107,423],[1108,290],[1109,1208],[1110,290],[1027,1209],[1111,428],[1112,290],[1113,430],[1114,290],[1115,432],[1116,433],[1117,434],[1118,435],[1031,1210],[1119,290],[1035,290],[1038,290],[1120,290],[1121,290],[1122,290],[1123,443],[1124,290],[1125,290],[1126,446],[1024,290],[1127,290],[1128,449],[1129,290],[1130,290],[1131,452],[1132,453],[1133,454],[1134,290],[1135,290],[1136,457],[1137,290],[1025,290],[1138,290],[1036,1211],[1139,462],[1140,1212],[1141,290],[1142,290],[1143,290],[1144,467],[1145,468],[1146,290],[1147,290],[1148,471],[1149,290],[1150,473],[1151,474],[1152,475],[1153,476],[1026,290],[1039,478],[1154,290],[1155,290],[1156,290],[1157,290],[1158,290],[1159,290],[1160,290],[1161,290],[1162,290],[1163,290],[1164,290],[1165,290],[1166,290],[1167,290],[662,1213],[658,494],[661,1214],[660,496],[659,497],[452,498],[451,499],[455,1215],[454,501],[453,502],[663,1216],[513,504],[516,1217],[512,506],[515,1218],[664,508],[514,509],[652,510],[651,511],[653,1219],[650,513],[649,514],[648,515],[655,1220],[654,517],[668,518],[665,519],[667,1221],[666,521],[673,522],[669,523],[672,1222],[671,525],[670,526],[521,527],[517,528],[520,1223],[519,1224],[518,531],[83,1225],[82,1226],[155,1227],[84,1228],[54,536],[85,1229],[81,538],[526,539],[523,540],[525,1230],[524,542],[522,543],[678,544],[674,545],[677,1231],[676,648],[675,548],[120,145],[97,1232],[679,1233],[109,552],[104,553],[114,1234],[113,1235],[125,556],[680,1236],[685,558],[681,519],[684,1237],[683,560],[682,561],[530,1238],[527,515],[529,1239],[528,564],[687,1240],[692,1241],[688,519],[691,1242],[690,568],[689,569],[686,1243],[623,1244],[697,1245],[693,494],[696,1246],[695,574],[694,575],[624,1247],[702,577],[698,519],[701,1248],[700,579],[699,580],[647,1249],[98,582],[711,1250],[703,584],[710,1251],[709,1252],[704,587],[535,588],[531,589],[534,1253],[533,1254],[532,592],[179,1255],[177,594],[183,1256],[180,1257],[178,597],[181,1167],[720,1258],[713,600],[719,1259],[718,602],[721,603],[726,604],[722,605],[725,1260],[724,1261],[723,608],[728,1262],[733,1263],[729,611],[732,1264],[731,613],[730,614],[727,1243],[374,1265],[373,617],[366,1266],[359,1267],[372,620],[737,1268],[734,499],[736,1269],[735,623],[469,1270],[468,625],[470,1271],[467,627],[625,1272],[465,1273],[463,536],[472,1274],[466,1275],[464,632],[742,1276],[738,634],[741,1277],[740,636],[739,637],[747,638],[743,519],[746,1278],[745,640],[744,641],[538,1279],[536,519],[540,1280],[539,644],[541,645],[750,1281],[751,634],[749,1282],[748,648],[471,1283],[756,1284],[752,651],[755,1285],[754,1286],[753,654],[56,655],[52,656],[66,1287],[67,658],[708,1288],[705,660],[707,1289],[706,662],[320,1290],[166,664],[319,1291],[310,627],[309,667],[757,1292],[758,669],[760,1293],[759,671],[714,672],[712,625],[716,1294],[715,674],[717,675],[566,1295],[312,677],[568,1296],[567,1297],[565,680],[643,1298],[626,682],[642,1299],[641,684],[639,1300],[627,1301],[640,687],[645,688],[644,99],[646,1302],[632,1303],[189,1304],[545,1305],[537,693],[544,1306],[543,695],[542,696],[182,1307],[136,698],[135,1308],[131,700],[134,1309],[132,1310],[137,703],[631,704],[628,705],[633,1303],[634,1311],[630,1312],[629,709],[637,1313],[636,1314],[635,712],[765,713],[761,499],[764,1315],[763,715],[762,716],[133,118],[770,1316],[766,519],[769,1317],[767,719],[768,1318],[771,1319],[118,722],[116,1320],[115,724],[123,1321],[121,1322],[119,727],[773,1323],[772,1324],[778,1325],[779,731],[777,1326],[775,733],[774,734],[776,1167],[656,1327],[784,737],[780,738],[783,1328],[782,740],[781,741],[789,742],[785,743],[788,1329],[787,745],[786,746],[794,747],[790,748],[793,1330],[792,750],[791,751],[799,1331],[795,519],[798,1332],[797,1333],[796,755],[128,1334],[107,757],[106,1335],[105,759],[130,1336],[127,1337],[126,762],[68,763],[53,499],[70,1338],[69,765],[80,766],[804,1339],[800,738],[803,1340],[802,769],[801,770],[657,1341],[638,1342],[809,773],[805,774],[808,1343],[807,776],[806,777],[60,778],[59,499],[64,1344],[61,780],[814,781],[810,523],[813,1345],[812,783],[811,784],[821,785],[816,1346],[815,787],[819,1347],[818,789],[820,790],[817,1348],[824,1349],[823,793],[822,794],[830,1350],[825,796],[829,1351],[827,798],[826,799],[828,1352],[836,801],[835,1353],[831,803],[834,1354],[833,1355],[832,806],[143,807],[141,1356],[139,1357],[140,1358],[138,811],[145,1359],[144,1360],[142,814],[101,815],[100,816],[99,1361],[93,738],[147,1362],[102,1363],[94,820],[146,1364],[841,822],[837,823],[840,1365],[839,825],[838,826],[847,1366],[846,1367],[842,519],[845,1368],[844,830],[843,831],[852,832],[848,738],[851,1369],[850,834],[849,835],[858,1370],[853,738],[857,1371],[856,1372],[855,839],[854,1373],[550,1374],[546,519],[549,1375],[548,1376],[547,844],[863,1377],[859,519],[862,1378],[861,847],[860,848],[869,1379],[864,519],[867,1380],[866,851],[865,852],[868,1381],[368,1382],[367,594],[370,1383],[369,1384],[371,857],[874,1385],[872,860],[873,861],[877,1386],[875,863],[876,864],[880,1387],[878,866],[879,867],[886,1388],[882,869],[885,870],[892,1389],[890,872],[891,873],[895,1390],[893,875],[894,876],[889,1391],[887,863],[888,878],[898,1392],[896,880],[897,881],[901,1393],[899,863],[900,883],[910,1394],[908,869],[909,885],[904,1395],[902,863],[903,887],[907,1396],[905,863],[906,889],[913,1397],[911,869],[912,891],[922,1398],[920,863],[921,893],[916,1399],[914,860],[915,895],[919,1400],[917,863],[918,897],[883,1401],[881,863],[884,899],[925,1402],[924,901],[923,902],[261,903],[262,904],[928,1403],[926,863],[927,906],[931,1404],[929,908],[930,909],[934,1405],[932,863],[933,911],[936,1406],[937,913],[935,914],[939,1407],[940,913],[938,916],[942,1408],[943,913],[941,918],[946,1409],[944,920],[945,921],[949,1410],[947,863],[948,923],[952,1411],[950,863],[951,925],[871,1412],[955,1413],[953,863],[954,928],[958,1414],[956,930],[957,931],[961,1415],[959,860],[960,933],[970,1416],[968,863],[969,1417],[964,1418],[962,869],[963,937],[973,1419],[971,908],[972,939],[967,1420],[965,863],[966,941],[976,1421],[974,863],[975,943],[979,1422],[977,863],[978,945],[985,1423],[981,947],[984,948],[265,1424],[263,950],[264,951],[982,1425],[980,953],[983,954],[988,1426],[987,956],[986,957],[991,1427],[989,869],[990,959],[997,1428],[995,863],[996,961],[994,1429],[992,863],[993,963],[1000,1430],[998,965],[999,1431],[1003,1432],[1001,863],[1002,968],[1009,1433],[1007,863],[1008,970],[1006,1434],[1004,972],[1005,973],[1012,1435],[1010,863],[1011,975],[295,1436],[300,1437],[299,1438],[296,1439],[290,980],[297,1440],[1014,1441],[1013,28],[185,1442],[175,1443],[174,1444],[173,985],[294,1445],[293,1446],[291,988],[1020,1447],[1018,1448],[1016,1449],[1017,992],[1021,1450],[1015,994],[1019,1451],[298,1016]],"semanticDiagnosticsPerFile":[1173,1169,1168,1171,1170,1172,1175,1174,17,18,4,6,5,2,7,8,9,10,11,12,13,14,3,15,16,1,222,333,230,285,231,286,289,287,301,304,305,303,308,302,307,326,233,327,328,288,223,329,232,332,331,330,227,229,284,226,228,224,225,205,75,74,72,211,348,346,345,150,210,88,196,212,349,350,153,148,149,151,357,351,352,353,176,184,206,207,209,208,344,343,342,292,354,111,110,112,87,347,86,19,20,378,375,377,355,356,49,198,385,200,197,249,168,386,325,387,214,21,216,215,65,201,33,40,169,388,391,389,314,390,316,220,219,254,253,306,170,154,156,89,152,336,334,199,190,191,22,25,26,39,27,28,38,37,73,392,335,23,29,77,393,76,30,24,218,379,217,380,382,204,384,31,92,32,381,203,383,34,35,122,36,202,337,50,117,55,394,395,51,195,194,193,192,188,396,187,186,58,63,62,57,71,221,78,79,213,412,400,407,399,398,414,401,416,402,417,405,411,406,413,415,404,397,41,409,408,403,48,47,46,439,419,420,418,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,441,440,45,42,44,43,443,442,445,444,447,446,449,448,281,283,275,282,245,242,277,269,271,279,278,234,241,270,276,235,237,238,243,240,236,244,239,274,273,247,248,272,268,260,280,266,267,246,485,486,487,489,491,490,492,493,494,488,495,450,497,474,473,476,456,475,462,496,457,458,461,459,460,477,124,96,95,91,478,479,499,498,171,503,501,500,172,502,505,504,480,554,553,551,510,511,552,508,507,506,509,558,556,555,557,561,560,559,256,250,257,251,252,258,562,564,563,569,570,571,573,572,575,574,576,578,577,579,481,341,339,340,338,584,583,581,580,582,482,483,255,484,588,586,585,587,590,594,596,597,599,592,591,595,589,593,598,365,129,600,601,602,603,604,605,606,607,608,609,610,611,612,613,361,362,358,614,364,360,363,376,167,313,323,321,90,324,322,315,318,311,165,317,157,164,159,158,160,161,163,162,615,616,617,618,619,620,622,621,1022,1028,1029,1023,1032,1037,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1088,1087,1089,1090,1091,1092,1033,1093,1030,1094,1095,1096,1097,1034,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1027,1111,1112,1113,1114,1115,1116,1117,1118,1031,1119,1035,1038,1120,1121,1122,1123,1124,1125,1126,1024,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1025,1138,1036,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1026,1039,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,662,658,661,660,659,452,451,455,454,453,663,513,516,512,515,664,514,652,651,653,650,649,648,655,654,668,665,667,666,673,669,672,671,670,521,517,520,519,518,83,82,155,84,54,85,81,526,523,525,524,522,678,674,677,676,675,120,97,679,108,109,104,114,113,125,680,685,681,684,683,682,530,527,529,528,687,692,688,691,690,689,686,623,697,693,696,695,694,624,702,698,701,700,699,647,98,711,703,710,709,704,535,531,534,533,532,179,177,183,180,178,181,720,713,719,718,721,726,722,725,724,723,728,733,729,732,731,730,727,374,373,366,359,372,737,734,736,735,469,468,470,467,625,465,463,472,466,464,742,738,741,740,739,747,743,746,745,744,538,536,540,539,541,750,751,749,748,471,756,752,755,754,753,56,52,66,67,708,705,707,706,320,166,319,310,309,757,758,760,759,714,712,716,715,717,566,312,568,567,565,643,626,642,641,639,627,640,645,644,646,632,189,545,537,544,543,542,182,136,135,131,134,132,137,631,628,633,634,630,629,637,636,635,765,761,764,763,762,133,770,766,769,767,768,771,118,116,115,123,121,119,773,772,778,779,777,775,774,776,656,784,780,783,782,781,789,785,788,787,786,794,790,793,792,791,799,795,798,797,796,128,107,106,105,130,127,126,68,53,70,69,80,804,800,803,802,801,657,638,809,805,808,807,806,60,59,64,61,814,810,813,812,811,821,816,815,819,818,820,817,824,823,822,830,825,829,827,826,828,836,835,831,834,833,832,143,141,139,140,138,145,144,142,101,100,99,93,147,102,94,103,146,841,837,840,839,838,847,846,842,845,844,843,852,848,851,850,849,858,853,857,856,855,854,550,546,549,548,547,863,859,862,861,860,869,864,867,866,865,868,368,367,370,369,371,259,410,874,872,873,877,875,876,880,878,879,886,882,885,892,890,891,895,893,894,870,889,887,888,898,896,897,901,899,900,910,908,909,904,902,903,907,905,906,913,911,912,922,920,921,916,914,915,919,917,918,883,881,884,925,924,923,261,262,928,926,927,931,929,930,934,932,933,936,937,935,939,940,938,942,943,941,946,944,945,949,947,948,952,950,951,871,955,953,954,958,956,957,961,959,960,970,968,969,964,962,963,973,971,972,967,965,966,976,974,975,979,977,978,985,981,984,265,263,264,982,980,983,988,987,986,991,989,990,997,995,996,994,992,993,1000,998,999,1003,1001,1002,1009,1007,1008,1006,1004,1005,1012,1010,1011,295,300,299,296,290,297,1014,1013,185,175,174,173,294,293,291,1020,1018,1016,1017,1021,1015,1019,298],"latestChangedDtsFile":"./masters/themes/sunset.src.d.ts"},"version":"5.4.5"} \ No newline at end of file +{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../ts/core/axis/tickpositionsarray.d.ts","../../ts/core/axis/timeticksinfoobject.d.ts","../../ts/core/color/colorstring.d.ts","../../ts/core/renderer/alignobject.d.ts","../../ts/core/renderer/positionobject.d.ts","../../ts/core/renderer/sizeobject.d.ts","../../ts/core/renderer/bboxobject.d.ts","../../ts/core/renderer/cssobject.d.ts","../../ts/core/renderer/domelementtype.d.ts","../../ts/core/renderer/fontmetricsobject.d.ts","../../ts/core/renderer/rectangleobject.d.ts","../../ts/core/renderer/shadowoptionsobject.d.ts","../../ts/core/renderer/svg/svgelementlike.d.ts","../../ts/core/renderer/svg/svgpath.d.ts","../../ts/core/eventcallback.d.ts","../../ts/core/renderer/svg/svgrendererlike.d.ts","../../ts/core/renderer/svg/symboloptions.d.ts","../../ts/core/renderer/svg/symboltype.d.ts","../../ts/core/renderer/html/htmlattributes.d.ts","../../ts/core/renderer/html/ast.ts","../../ts/core/renderer/dashstylevalue.d.ts","../../ts/core/formattercallback.d.ts","../../ts/data/dataevent.ts","../../ts/data/modifiers/datamodifierevent.ts","../../ts/data/modifiers/datamodifiertype.d.ts","../../ts/data/modifiers/datamodifieroptions.ts","../../ts/data/modifiers/datamodifier.ts","../../ts/data/datatableoptions.ts","../../ts/data/datatablecore.ts","../../ts/data/datatable.ts","../../ts/core/callback.d.ts","../../ts/core/series/dataextremesobject.d.ts","../../ts/core/series/kdpointsearchobjectlike.d.ts","../../ts/series/line/linepointoptions.d.ts","../../ts/series/scatter/scatterpointoptions.d.ts","../../ts/series/bubble/bubblepointoptions.d.ts","../../ts/core/series/datalabeloptions.d.ts","../../ts/series/line/linepoint.d.ts","../../ts/core/series/statesoptions.d.ts","../../ts/core/series/seriesoptions.d.ts","../../ts/series/spline/splinepointoptions.d.ts","../../ts/series/spline/splinepoint.d.ts","../../ts/series/spline/splineseriesoptions.d.ts","../../ts/core/series/seriestype.d.ts","../../ts/core/series/seriesregistry.ts","../../ts/series/spline/splineseries.ts","../../ts/core/color/palettes.ts","../../ts/series/line/lineseries.ts","../../ts/series/line/lineseriesoptions.d.ts","../../ts/series/scatter/scatterpoint.d.ts","../../ts/series/scatter/scatterseriesdefaults.ts","../../ts/series/scatter/scatterseries.ts","../../ts/core/templating.ts","../../ts/core/animation/fxlike.d.ts","../../ts/core/renderer/html/htmlelement.ts","../../ts/core/animation/fx.ts","../../ts/core/animation/animationutilities.ts","../../ts/core/renderer/rendererutilities.ts","../../ts/core/renderer/rendererregistry.ts","../../ts/core/tooltip.ts","../../ts/core/tooltipoptions.d.ts","../../ts/series/scatter/scatterseriesoptions.d.ts","../../ts/series/bubble/bubbleseriesoptions.d.ts","../../ts/series/bubble/bubblelegenddefaults.ts","../../ts/series/bubble/bubblelegendcomposition.ts","../../ts/series/bubble/bubblepoint.ts","../../ts/series/bubble/bubbleseries.ts","../../ts/core/axis/ticklike.d.ts","../../ts/core/axis/tick.ts","../../ts/core/axis/axislike.d.ts","../../ts/core/legend/legendoptions.d.ts","../../ts/maps/mapnavigationoptions.d.ts","../../ts/extensions/breadcrumbs/breadcrumbsoptions.d.ts","../../ts/core/renderer/svg/svglabel.ts","../../ts/maps/projectiondefinition.d.ts","../../ts/maps/projections/lambertconformalconic.ts","../../ts/maps/projections/equalearth.ts","../../ts/maps/projections/miller.ts","../../ts/maps/projections/orthographic.ts","../../ts/maps/projections/webmercator.ts","../../ts/maps/projections/projectionregistry.ts","../../ts/maps/projectionoptions.d.ts","../../ts/maps/mapviewoptions.d.ts","../../ts/series/map/mappointoptions.d.ts","../../ts/maps/geojson.d.ts","../../ts/series/column/columnmetricsobject.d.ts","../../ts/series/column/columnpointoptions.d.ts","../../ts/series/pie/piepointoptions.d.ts","../../ts/series/pie/piepoint.ts","../../ts/core/series/datalabel.ts","../../ts/series/pie/piedatalabeloptions.d.ts","../../ts/series/pie/pieseriesoptions.d.ts","../../ts/series/centeredutilities.ts","../../ts/series/pie/pieseriesdefaults.ts","../../ts/core/renderer/svg/symbols.ts","../../ts/series/pie/pieseries.ts","../../ts/extensions/borderradius.ts","../../ts/series/column/columnseriesoptions.d.ts","../../ts/core/axis/stacking/stackingoptions.d.ts","../../ts/core/axis/stacking/stackingaxis.ts","../../ts/core/axis/stacking/stackitem.ts","../../ts/series/column/columnseriesdefaults.ts","../../ts/series/column/columnseries.ts","../../ts/series/column/columnpoint.d.ts","../../ts/series/map/mapseriesoptions.d.ts","../../ts/series/colormapcomposition.ts","../../ts/maps/mapnavigationdefaults.ts","../../ts/maps/mapsymbols.ts","../../ts/maps/mapnavigation.ts","../../ts/maps/mappointer.ts","../../ts/maps/mapviewdefaults.ts","../../ts/series/mappoint/mappointpointoptions.d.ts","../../ts/maps/geojsoncomposition.ts","../../ts/core/geometry/geometryutilities.ts","../../ts/maps/maputilities.ts","../../ts/core/geometry/polygonclip.ts","../../ts/maps/projection.ts","../../ts/maps/mapview.ts","../../ts/core/chart/mapchart.ts","../../ts/series/map/mapseriesdefaults.ts","../../ts/series/map/mapseries.ts","../../ts/series/map/mappoint.ts","../../ts/extensions/patternfill.ts","../../ts/series/treemap/treemappointoptions.d.ts","../../ts/extensions/markerclusters/markerclusteroptions.d.ts","../../ts/series/treemap/treemapseriesoptions.d.ts","../../ts/extensions/breadcrumbs/breadcrumbsdefaults.ts","../../ts/extensions/breadcrumbs/breadcrumbs.ts","../../ts/series/drawpointutilities.ts","../../ts/series/treemap/treemappoint.ts","../../ts/series/treemap/treemapnode.ts","../../ts/series/treemap/treemapalgorithmgroup.ts","../../ts/series/treemap/treemapseriesdefaults.ts","../../ts/series/treemap/treemaputilities.ts","../../ts/series/sankey/sankeypointoptions.d.ts","../../ts/series/sankey/sankeypoint.ts","../../ts/series/sankey/sankeydatalabeloptions.d.ts","../../ts/series/sankey/sankeyseriesoptions.d.ts","../../ts/series/sankey/sankeyseriesdefaults.ts","../../ts/series/sankey/sankeycolumncomposition.ts","../../ts/extensions/textpath.ts","../../ts/series/sankey/sankeyseries.ts","../../ts/series/organization/organizationpointoptions.d.ts","../../ts/series/organization/organizationseriesdefaults.ts","../../ts/series/pathutilities.ts","../../ts/series/organization/organizationseries.ts","../../ts/series/organization/organizationpoint.ts","../../ts/series/organization/organizationdatalabeloptions.d.ts","../../ts/series/organization/organizationseriesoptions.d.ts","../../ts/series/treegraph/treegraphpointoptions.d.ts","../../ts/series/treegraph/treegraphnode.ts","../../ts/series/treegraph/treegraphpoint.ts","../../ts/series/treegraph/treegraphlink.ts","../../ts/series/treegraph/treegraphseriesoptions.d.ts","../../ts/series/treegraph/treegraphlayout.ts","../../ts/series/treegraph/treegraphseriesdefaults.ts","../../ts/series/treegraph/treegraphseries.ts","../../ts/series/treeutilities.ts","../../ts/series/treemap/treemapseries.ts","../../ts/core/axis/color/coloraxiscomposition.ts","../../ts/core/axis/color/coloraxisdefaults.ts","../../ts/core/axis/axiscomposition.d.ts","../../ts/core/axis/color/coloraxislike.ts","../../ts/core/legend/legendsymbol.ts","../../ts/core/axis/color/coloraxis.ts","../../ts/core/legend/legenditem.d.ts","../../ts/series/bubble/bubblelegenditem.ts","../../ts/core/legend/legendlike.d.ts","../../ts/core/chart/chartoptions.d.ts","../../ts/core/foundation.ts","../../ts/core/legend/legend.ts","../../ts/extensions/datagrouping/approximationtype.d.ts","../../ts/extensions/datagrouping/datagroupingoptions.d.ts","../../ts/stock/rangeselector/rangeselectoroptions.d.ts","../../ts/stock/rangeselector/rangeselectordefaults.ts","../../ts/stock/rangeselector/rangeselectorcomposition.ts","../../ts/core/axis/navigatoraxiscomposition.ts","../../ts/series/flags/flagspointoptions.d.ts","../../ts/series/flags/flagsseriesoptions.d.ts","../../ts/series/flags/flagspoint.ts","../../ts/series/flags/flagsseriesdefaults.ts","../../ts/series/flags/flagssymbols.ts","../../ts/series/onseriescomposition.ts","../../ts/series/flags/flagsseries.ts","../../ts/core/axis/ordinalaxis.ts","../../ts/stock/rangeselector/rangeselector.ts","../../ts/core/series/serieslike.d.ts","../../ts/core/series/seriesdefaults.ts","../../ts/core/series/series.ts","../../ts/series/nodescomposition.ts","../../ts/core/pointer.ts","../../ts/core/pointerevent.d.ts","../../ts/core/series/pointtype.d.ts","../../ts/core/series/pointoptions.d.ts","../../ts/core/series/pointlike.d.ts","../../ts/core/series/point.ts","../../ts/core/axis/axisoptions.d.ts","../../ts/core/chart/chartlike.d.ts","../../ts/core/chart/chart.ts","../../ts/core/options.d.ts","../../ts/core/chart/chartdefaults.ts","../../ts/core/defaults.ts","../../ts/core/renderer/svg/textbuilder.ts","../../ts/core/renderer/svg/svgrenderer.ts","../../ts/core/renderer/svg/svgelement.ts","../../ts/core/animation/animationoptions.d.ts","../../ts/core/axis/plotlineorband/plotbandoptions.d.ts","../../ts/core/axis/plotlineorband/plotlineoptions.d.ts","../../ts/core/axis/plotlineorband/plotlineorbandaxis.ts","../../ts/core/axis/plotlineorband/plotlineorband.ts","../../ts/core/axis/axisdefaults.ts","../../ts/core/axis/axis.ts","../../ts/core/axis/axistype.d.ts","../../ts/core/utilities.ts","../../ts/core/color/color.ts","../../ts/core/color/gradientcolor.d.ts","../../ts/core/color/colortype.d.ts","../../ts/core/renderer/svg/svgattributes.d.ts","../../ts/core/renderer/svg/buttonthemeobject.d.ts","../../ts/core/globalslike.d.ts","../../ts/core/globals.ts","../../ts/core/time.ts","../../ts/accessibility/a11yi18n.ts","../../ts/accessibility/keyboardnavigationhandler.ts","../../ts/accessibility/utils/eventprovider.ts","../../ts/accessibility/utils/htmlutilities.ts","../../ts/accessibility/utils/chartutilities.ts","../../ts/accessibility/proxyelement.ts","../../ts/accessibility/utils/domelementprovider.ts","../../ts/accessibility/proxyprovider.ts","../../ts/accessibility/accessibilitycomponent.ts","../../ts/accessibility/components/containercomponent.ts","../../ts/accessibility/options/a11yoptions.d.ts","../../ts/accessibility/focusborder.ts","../../ts/extensions/annotations/controllables/controllablelike.d.ts","../../ts/extensions/annotations/controllables/controllabletype.d.ts","../../ts/extensions/annotations/eventemitter.ts","../../ts/extensions/annotations/controlpoint.ts","../../ts/extensions/annotations/controlpointoptions.d.ts","../../ts/extensions/annotations/mockpointoptions.d.ts","../../ts/extensions/annotations/controltargetoptions.d.ts","../../ts/extensions/annotations/controllables/controllableoptions.d.ts","../../ts/extensions/annotations/controllables/controllable.ts","../../ts/extensions/annotations/controltarget.ts","../../ts/extensions/annotations/mockpoint.ts","../../ts/extensions/annotations/annotationseries.d.ts","../../ts/extensions/annotations/types/annotationtype.d.ts","../../ts/extensions/annotations/navigationbindingslike.d.ts","../../ts/extensions/annotations/navigationbindingsoptions.d.ts","../../ts/core/chart/chartnavigationcomposition.ts","../../ts/extensions/exporting/exportingdefaults.ts","../../ts/extensions/exporting/exportingsymbols.ts","../../ts/extensions/exporting/fullscreen.ts","../../ts/core/json.d.ts","../../ts/core/httputilities.ts","../../ts/extensions/regexlimits.ts","../../ts/extensions/exporting/exporting.ts","../../ts/extensions/exporting/exportingoptions.d.ts","../../ts/extensions/exporting/navigationoptions.d.ts","../../ts/shared/baseform.ts","../../ts/extensions/annotations/popup/popupannotations.ts","../../ts/stock/indicators/indicatorlike.d.ts","../../ts/stock/indicators/indicatorvaluesobject.d.ts","../../ts/stock/indicators/sma/smaoptions.d.ts","../../ts/stock/indicators/sma/smapoint.d.ts","../../ts/stock/indicators/sma/smaindicator.ts","../../ts/extensions/annotations/popup/popupindicators.ts","../../ts/extensions/annotations/popup/popuptabs.ts","../../ts/extensions/annotations/popup/popup.ts","../../ts/extensions/annotations/controllables/controllabledefaults.ts","../../ts/extensions/annotations/controllables/controllablepath.ts","../../ts/extensions/annotations/controllables/controllableellipse.ts","../../ts/extensions/annotations/navigationbindingsutilities.ts","../../ts/extensions/annotations/navigationbindingsdefaults.ts","../../ts/extensions/annotations/navigationbindings.ts","../../ts/extensions/annotations/annotationdefaults.ts","../../ts/extensions/annotations/controllables/controllablerect.ts","../../ts/extensions/annotations/controllables/controllablecircle.ts","../../ts/extensions/annotations/controllables/controllablelabel.ts","../../ts/extensions/annotations/controllables/controllableimage.ts","../../ts/extensions/annotations/popup/popupcomposition.ts","../../ts/extensions/annotations/annotation.ts","../../ts/extensions/annotations/annotationoptions.d.ts","../../ts/extensions/annotations/annotationchart.ts","../../ts/accessibility/utils/announcer.ts","../../ts/accessibility/components/annotationsa11y.ts","../../ts/accessibility/components/inforegionscomponent.ts","../../ts/accessibility/components/menucomponent.ts","../../ts/accessibility/keyboardnavigation.ts","../../ts/accessibility/components/legendcomponent.ts","../../ts/stock/navigator/navigatoroptions.d.ts","../../ts/stock/scrollbar/scrollbaroptions.d.ts","../../ts/core/axis/scrollbaraxis.ts","../../ts/stock/scrollbar/scrollbardefaults.ts","../../ts/stock/scrollbar/scrollbar.ts","../../ts/stock/navigator/chartnavigatorcomposition.ts","../../ts/stock/navigator/navigatordefaults.ts","../../ts/stock/navigator/navigatorsymbols.ts","../../ts/stock/utilities/stockutilities.ts","../../ts/stock/navigator/navigatorcomposition.ts","../../ts/stock/navigator/navigator.ts","../../ts/accessibility/components/navigatorcomponent.ts","../../ts/accessibility/components/seriescomponent/seriesdescriber.ts","../../ts/accessibility/components/seriescomponent/newdataannouncer.ts","../../ts/accessibility/components/rangeselectorcomponent.ts","../../ts/accessibility/components/seriescomponent/forcedmarkers.ts","../../ts/core/keyboardevent.d.ts","../../ts/accessibility/components/seriescomponent/serieskeyboardnavigation.ts","../../ts/accessibility/components/seriescomponent/seriescomponent.ts","../../ts/accessibility/components/zoomcomponent.ts","../../ts/accessibility/highcontrastmode.ts","../../ts/accessibility/highcontrasttheme.ts","../../ts/accessibility/options/a11ydefaults.ts","../../ts/accessibility/options/langoptions.d.ts","../../ts/accessibility/options/langdefaults.ts","../../ts/accessibility/options/deprecatedoptions.ts","../../ts/accessibility/accessibility.ts","../../ts/core/mspointer.ts","../../ts/core/renderer/position3dobject.d.ts","../../ts/core/math3d.ts","../../ts/core/responsive.ts","../../ts/extensions/pane/paneoptions.d.ts","../../ts/extensions/pane/panecomposition.ts","../../ts/extensions/pane/panedefaults.ts","../../ts/extensions/pane/pane.ts","../../ts/core/axis/radialaxisoptions.d.ts","../../ts/core/axis/radialaxisdefaults.ts","../../ts/core/axis/radialaxis.ts","../../ts/core/axis/axis3doptions.d.ts","../../ts/core/axis/axis3ddefaults.ts","../../ts/core/axis/tick3dcomposition.ts","../../ts/core/axis/axis3dcomposition.ts","../../ts/core/axis/breakobject.d.ts","../../ts/core/axis/brokenaxis.ts","../../ts/core/axis/datetimeaxis.ts","../../ts/core/axis/gridaxis.ts","../../ts/core/axis/logarithmicaxis.ts","../../ts/core/axis/solidgaugeaxis.ts","../../ts/core/axis/waterfallaxis.ts","../../ts/core/axis/zaxis.ts","../../ts/core/axis/color/coloraxisoptions.d.ts","../../ts/gantt/connectorsoptions.d.ts","../../ts/series/gantt/ganttseriesdefaults.ts","../../ts/gantt/pathfinderalgorithms.ts","../../ts/gantt/connection.ts","../../ts/gantt/connectorsdefaults.ts","../../ts/gantt/pathfindercomposition.ts","../../ts/gantt/pathfinder.ts","../../ts/extensions/staticscale.ts","../../ts/series/gantt/ganttseries.ts","../../ts/series/xrange/xrangepointoptions.d.ts","../../ts/series/xrange/xrangepoint.ts","../../ts/series/xrange/xrangeseriesdefaults.ts","../../ts/series/xrange/xrangeseries.ts","../../ts/series/xrange/xrangeseriesoptions.d.ts","../../ts/series/gantt/ganttseriesoptions.d.ts","../../ts/series/gantt/ganttpointoptions.d.ts","../../ts/series/gantt/ganttpoint.ts","../../ts/core/axis/treegrid/treegridoptions.d.ts","../../ts/gantt/tree.ts","../../ts/core/axis/treegrid/treegridtick.ts","../../ts/core/axis/treegrid/treegridaxis.ts","../../ts/core/renderer/svg/svgarc3d.d.ts","../../ts/core/renderer/svg/svgattributes3d.d.ts","../../ts/core/renderer/svg/svgpath3d.d.ts","../../ts/core/renderer/svg/svgcuboid.d.ts","../../ts/core/renderer/svg/svgrenderer3d.ts","../../ts/core/renderer/svg/svgelement3d.ts","../../ts/core/chart/chart3d.ts","../../ts/core/chart/ganttchart.ts","../../ts/core/chart/stockchart.ts","../../ts/core/geometry/circleobject.d.ts","../../ts/core/geometry/geometryobject.d.ts","../../ts/core/geometry/intersectionobject.d.ts","../../ts/core/geometry/circleutilities.ts","../../ts/core/renderer/polygonboxobject.d.ts","../../ts/core/renderer/renderertype.d.ts","../../ts/core/series/dataseriescomposition.ts","../../ts/core/series/dataseriesconverter.ts","../../ts/core/series/series3d.ts","../../ts/data/datacursor.ts","../../ts/data/connectors/dataconnectortype.d.ts","../../ts/data/connectors/dataconnectoroptions.d.ts","../../ts/data/connectors/csvconnectoroptions.d.ts","../../ts/data/connectors/googlesheetsconnectoroptions.d.ts","../../ts/data/connectors/htmltableconnectoroptions.d.ts","../../ts/data/datapooloptions.ts","../../ts/data/converters/dataconvertertype.d.ts","../../ts/data/converters/jsonconverter.ts","../../ts/data/connectors/jsonconnectoroptions.d.ts","../../ts/data/converters/dataconverter.ts","../../ts/data/connectors/dataconnector.ts","../../ts/data/datapooldefaults.ts","../../ts/data/datapool.ts","../../ts/shared/types.ts","../../ts/data/converters/csvconverter.ts","../../ts/data/connectors/csvconnector.ts","../../ts/data/converters/googlesheetsconverter.ts","../../ts/data/connectors/googlesheetsconnector.ts","../../ts/data/converters/htmltableconverter.ts","../../ts/data/connectors/htmltableconnector.ts","../../ts/data/connectors/jsonconnector.ts","../../ts/data/formula/formulatypes.ts","../../ts/data/formula/formulaparser.ts","../../ts/data/formula/formulaprocessor.ts","../../ts/data/formula/functions/abs.ts","../../ts/data/formula/functions/and.ts","../../ts/data/formula/functions/average.ts","../../ts/data/formula/functions/averagea.ts","../../ts/data/formula/functions/count.ts","../../ts/data/formula/functions/counta.ts","../../ts/data/formula/functions/if.ts","../../ts/data/formula/functions/isna.ts","../../ts/data/formula/functions/max.ts","../../ts/data/formula/functions/median.ts","../../ts/data/formula/functions/min.ts","../../ts/data/formula/functions/mod.ts","../../ts/data/formula/functions/mode.ts","../../ts/data/formula/functions/not.ts","../../ts/data/formula/functions/or.ts","../../ts/data/formula/functions/product.ts","../../ts/data/formula/functions/sum.ts","../../ts/data/formula/functions/xor.ts","../../ts/data/formula/formula.ts","../../ts/data/modifiers/chainmodifieroptions.ts","../../ts/data/modifiers/chainmodifier.ts","../../ts/data/modifiers/invertmodifieroptions.ts","../../ts/data/modifiers/invertmodifier.ts","../../ts/data/modifiers/mathmodifieroptions.ts","../../ts/data/modifiers/mathmodifier.ts","../../ts/data/modifiers/rangemodifieroptions.ts","../../ts/data/modifiers/rangemodifier.ts","../../ts/data/modifiers/sortmodifieroptions.ts","../../ts/data/modifiers/sortmodifier.ts","../../ts/extensions/arrowsymbols.ts","../../ts/series/area/areapointoptions.d.ts","../../ts/series/area/areapoint.d.ts","../../ts/series/area/areaseriesoptions.d.ts","../../ts/series/area/areaseriesdefaults.ts","../../ts/series/area/areaseries.ts","../../ts/extensions/boost/boostoptions.d.ts","../../ts/extensions/boost/wgldrawmode.ts","../../ts/extensions/boost/wgloptions.d.ts","../../ts/extensions/boost/wglshader.ts","../../ts/extensions/boost/wglvertexbuffer.ts","../../ts/extensions/boost/wglrenderer.ts","../../ts/extensions/boost/boosttargetobject.d.ts","../../ts/series/heatmap/heatmappointoptions.d.ts","../../ts/series/heatmap/heatmapseriesoptions.d.ts","../../ts/series/heatmap/heatmappoint.ts","../../ts/series/heatmap/heatmapseriesdefaults.ts","../../ts/series/geoheatmap/geoheatmapseriesoptions.ts","../../ts/series/geoheatmap/geoheatmappointoptions.ts","../../ts/series/geoheatmap/geoheatmappoint.ts","../../ts/series/geoheatmap/geoheatmapseries.ts","../../ts/series/interpolationutilities.ts","../../ts/series/heatmap/heatmapseries.ts","../../ts/extensions/boost/boostables.ts","../../ts/extensions/boost/boostablemap.ts","../../ts/extensions/boost/boostseries.ts","../../ts/extensions/boost/boostchart.ts","../../ts/extensions/boostcanvas.ts","../../ts/extensions/currentdateindication.ts","../../ts/extensions/data.ts","../../ts/extensions/downloadurl.ts","../../ts/extensions/overlappingdatalabels.ts","../../ts/extensions/priceindication.ts","../../ts/extensions/scrollableplotarea.ts","../../ts/extensions/annotations/types/basicannotation.ts","../../ts/extensions/annotations/types/crookedline.ts","../../ts/extensions/annotations/types/elliottwave.ts","../../ts/extensions/annotations/types/tunnel.ts","../../ts/extensions/annotations/types/fibonacci.ts","../../ts/extensions/annotations/types/infinityline.ts","../../ts/extensions/annotations/types/fibonaccitimezones.ts","../../ts/extensions/annotations/types/measure.ts","../../ts/extensions/annotations/types/pitchfork.ts","../../ts/extensions/annotations/types/timecycles.ts","../../ts/extensions/annotations/types/verticalline.ts","../../ts/extensions/boost/namedcolors.ts","../../ts/extensions/boost/boost.ts","../../ts/extensions/datagrouping/approximationregistry.ts","../../ts/extensions/datagrouping/approximationdefaults.ts","../../ts/extensions/datagrouping/datagroupingdefaults.ts","../../ts/extensions/datagrouping/datagroupingaxiscomposition.ts","../../ts/extensions/datagrouping/datagroupingseriescomposition.ts","../../ts/extensions/datagrouping/datagrouping.ts","../../ts/extensions/debugger/errormessages.ts","../../ts/extensions/debugger/debugger.ts","../../ts/extensions/dragpanes/axisresizeroptions.d.ts","../../ts/extensions/dragpanes/axisresizerdefaults.ts","../../ts/extensions/dragpanes/axisresizer.ts","../../ts/extensions/dragpanes/dragpanes.ts","../../ts/extensions/draggablepoints/dragdroputilities.ts","../../ts/extensions/draggablepoints/draggablechart.ts","../../ts/series/arearange/arearangepointoptions.d.ts","../../ts/series/arearange/arearangedatalabeloptions.d.ts","../../ts/series/arearange/arearangeseriesoptions.d.ts","../../ts/series/arearange/arearangeseries.ts","../../ts/series/arearange/arearangepoint.ts","../../ts/series/boxplot/boxplotpointoptions.d.ts","../../ts/series/boxplot/boxplotseriesoptions.d.ts","../../ts/series/boxplot/boxplotseriesdefaults.ts","../../ts/series/boxplot/boxplotseries.ts","../../ts/series/boxplot/boxplotpoint.d.ts","../../ts/series/bullet/bulletseriesoptions.d.ts","../../ts/series/bullet/bulletpointoptions.d.ts","../../ts/series/bullet/bulletseriesdefaults.ts","../../ts/series/bullet/bulletseries.ts","../../ts/series/bullet/bulletpoint.ts","../../ts/series/columnrange/columnrangepointoptions.d.ts","../../ts/series/columnrange/columnrangeseriesoptions.d.ts","../../ts/series/columnrange/columnrangeseries.ts","../../ts/series/columnrange/columnrangepoint.ts","../../ts/series/errorbar/errorbarpointoptions.d.ts","../../ts/series/errorbar/errorbarseriesoptions.d.ts","../../ts/series/errorbar/errorbarseriesdefaults.ts","../../ts/series/errorbar/errorbarseries.ts","../../ts/series/errorbar/errorbarpoint.d.ts","../../ts/series/hlc/hlcpointoptions.d.ts","../../ts/series/ohlc/ohlcpointoptions.d.ts","../../ts/series/hlc/hlcpoint.ts","../../ts/series/hlc/hlcseriesdefaults.ts","../../ts/series/hlc/hlcseries.ts","../../ts/series/hlc/hlcseriesoptions.d.ts","../../ts/series/ohlc/ohlcseriesoptions.d.ts","../../ts/series/ohlc/ohlcseriesdefaults.ts","../../ts/series/ohlc/ohlcseries.ts","../../ts/series/ohlc/ohlcpoint.ts","../../ts/series/waterfall/waterfallpointoptions.d.ts","../../ts/series/waterfall/waterfallseriesoptions.d.ts","../../ts/series/waterfall/waterfallseriesdefaults.ts","../../ts/series/waterfall/waterfallseries.ts","../../ts/series/waterfall/waterfallpoint.ts","../../ts/extensions/draggablepoints/dragdropprops.ts","../../ts/extensions/draggablepoints/draggablepoints.ts","../../ts/extensions/draggablepoints/dragdropoptions.d.ts","../../ts/extensions/draggablepoints/dragdropdefaults.ts","../../ts/extensions/drilldown/drilldownoptions.d.ts","../../ts/extensions/drilldown/drilldowndefaults.ts","../../ts/extensions/drilldown/drilldownseries.ts","../../ts/extensions/drilldown/drilldown.ts","../../ts/extensions/exportdata/exportdataoptions.d.ts","../../ts/extensions/exportdata/exportdatadefaults.ts","../../ts/extensions/exportdata/exportdata.ts","../../ts/extensions/markerclusters/markerclusterdebugging.ts","../../ts/extensions/markerclusters/markerclusterdefaults.ts","../../ts/series/mappoint/mappointseriesoptions.d.ts","../../ts/series/mappoint/mappointpoint.ts","../../ts/series/mappoint/mappointseriesdefaults.ts","../../ts/series/mappoint/mappointseries.ts","../../ts/extensions/markerclusters/markerclusters.ts","../../ts/extensions/markerclusters/markerclusterscatter.ts","../../ts/extensions/markerclusters/markerclustersymbols.ts","../../ts/extensions/mousewheelzoom/mousewheelzoomoptions.d.ts","../../ts/extensions/mousewheelzoom/mousewheelzoom.ts","../../ts/extensions/nodatatodisplay/nodataoptions.d.ts","../../ts/extensions/nodatatodisplay/nodatadefaults.ts","../../ts/extensions/nodatatodisplay/nodatatodisplay.ts","../../ts/extensions/offlineexporting/offlineexportingdefaults.ts","../../ts/extensions/offlineexporting/offlineexporting.ts","../../ts/extensions/offlineexporting/offlineexportingvendor.d.ts","../../ts/extensions/parallelcoordinates/parallelcoordinatesoptions.d.ts","../../ts/extensions/parallelcoordinates/parallelcoordinatesdefaults.ts","../../ts/extensions/parallelcoordinates/parallelseries.ts","../../ts/extensions/parallelcoordinates/parallelcoordinates.ts","../../ts/extensions/parallelcoordinates/parallelaxis.ts","../../ts/extensions/serieslabel/serieslabeloptions.d.ts","../../ts/extensions/serieslabel/serieslabeldefaults.ts","../../ts/extensions/serieslabel/serieslabelutilities.ts","../../ts/extensions/serieslabel/serieslabel.ts","../../ts/extensions/sonification/synthpatch.ts","../../ts/extensions/sonification/instrumentpresets.ts","../../ts/extensions/sonification/sonificationspeaker.ts","../../ts/extensions/sonification/sonificationinstrument.ts","../../ts/extensions/sonification/timelinechannel.ts","../../ts/extensions/sonification/midi.ts","../../ts/extensions/sonification/sonificationtimeline.ts","../../ts/extensions/sonification/options.ts","../../ts/extensions/sonification/scales.ts","../../ts/extensions/sonification/timelinefromchart.ts","../../ts/extensions/sonification/sonification.ts","../../ts/extensions/themes/avocado.ts","../../ts/extensions/themes/branddark.ts","../../ts/extensions/themes/brandlight.ts","../../ts/extensions/themes/darkblue.ts","../../ts/extensions/themes/darkgreen.ts","../../ts/extensions/themes/darkunica.ts","../../ts/extensions/themes/gray.ts","../../ts/extensions/themes/grid.ts","../../ts/extensions/themes/gridlight.ts","../../ts/extensions/themes/highcontrastdark.ts","../../ts/extensions/themes/highcontrastlight.ts","../../ts/extensions/themes/sandsignika.ts","../../ts/extensions/themes/skies.ts","../../ts/extensions/themes/sunset.ts","../../ts/gantt/legacy.ts","../../ts/maps/providerdefinition.d.ts","../../ts/maps/tilesproviders/esri.ts","../../ts/maps/tilesproviders/limalabs.ts","../../ts/maps/tilesproviders/openstreetmap.ts","../../ts/maps/tilesproviders/stamen.ts","../../ts/maps/tilesproviders/thunderforest.ts","../../ts/maps/tilesproviders/usgs.ts","../../ts/maps/tilesproviders/tilesproviderregistry.ts","../../ts/series/datamodifycomposition.ts","../../ts/series/derivedcomposition.ts","../../ts/series/graphlayoutcomposition.ts","../../ts/series/networkgraph/networkgraphchart.d.ts","../../ts/series/networkgraph/networkgraphseriesdefaults.ts","../../ts/series/packedbubble/packedbubbledatalabeloptions.d.ts","../../ts/series/packedbubble/packedbubblepointoptions.d.ts","../../ts/series/packedbubble/packedbubblepoint.ts","../../ts/series/packedbubble/packedbubblechart.d.ts","../../ts/series/networkgraph/verletintegration.ts","../../ts/series/packedbubble/packedbubbleintegration.ts","../../ts/series/packedbubble/packedbubblelayout.ts","../../ts/series/packedbubble/packedbubbleseriesoptions.d.ts","../../ts/series/packedbubble/packedbubbleseriesdefaults.ts","../../ts/series/packedbubble/packedbubbleseries.ts","../../ts/series/simulationseriesutilities.ts","../../ts/series/networkgraph/networkgraphseries.ts","../../ts/series/networkgraph/networkgraphseriesoptions.d.ts","../../ts/series/networkgraph/networkgraphpointoptions.d.ts","../../ts/series/networkgraph/networkgraphpoint.ts","../../ts/series/networkgraph/eulerintegration.ts","../../ts/series/networkgraph/quadtreenode.ts","../../ts/series/networkgraph/quadtree.ts","../../ts/series/networkgraph/reingoldfruchtermanlayout.ts","../../ts/series/dragnodescomposition.ts","../../ts/series/areasplinerange/areasplinerangepointoptions.d.ts","../../ts/series/areasplinerange/areasplinerangepoint.d.ts","../../ts/series/areaspline/areasplineseriesoptions.d.ts","../../ts/series/areaspline/areasplinepointoptions.d.ts","../../ts/series/areaspline/areasplinepoint.d.ts","../../ts/series/areaspline/areasplineseries.ts","../../ts/series/areasplinerange/areasplinerangeseriesoptions.d.ts","../../ts/series/areasplinerange/areasplinerangeseries.ts","../../ts/series/polarcomposition.ts","../../ts/series/seriesonpointcomposition.ts","../../ts/series/arcdiagram/arcdiagrampointoptions.d.ts","../../ts/series/arcdiagram/arcdiagramseriesoptions.d.ts","../../ts/series/arcdiagram/arcdiagramseriesdefaults.ts","../../ts/series/arcdiagram/arcdiagramseries.ts","../../ts/series/arcdiagram/arcdiagrampoint.ts","../../ts/series/area3d/area3dseries.ts","../../ts/series/arearange/arearangeseriesdefaults.ts","../../ts/series/bar/barpointoptions.d.ts","../../ts/series/bar/barseriesoptions.d.ts","../../ts/series/bar/barseries.ts","../../ts/series/bar/barpoint.d.ts","../../ts/series/bellcurve/bellcurvepointoptions.d.ts","../../ts/series/bellcurve/bellcurveseriesoptions.d.ts","../../ts/series/bellcurve/bellcurveseriesdefaults.ts","../../ts/series/bellcurve/bellcurveseries.ts","../../ts/series/bellcurve/bellcurvepoint.d.ts","../../ts/series/candlestick/candlestickpointoptions.d.ts","../../ts/series/candlestick/candlestickseriesoptions.d.ts","../../ts/series/candlestick/candlestickseriesdefaults.ts","../../ts/series/candlestick/candlestickseries.ts","../../ts/series/candlestick/candlestickpoint.d.ts","../../ts/series/column/columndatalabel.ts","../../ts/series/column3d/column3dcomposition.ts","../../ts/series/columnpyramid/columnpyramidpointoptions.d.ts","../../ts/series/columnpyramid/columnpyramidseriesoptions.d.ts","../../ts/series/columnpyramid/columnpyramidseriesdefaults.ts","../../ts/series/columnpyramid/columnpyramidseries.ts","../../ts/series/columnpyramid/columnpyramidpoint.d.ts","../../ts/series/cylinder/svgelement3dcylinder.ts","../../ts/series/cylinder/cylindercomposition.ts","../../ts/series/cylinder/cylinderpointoptions.d.ts","../../ts/series/cylinder/cylinderseriesoptions.d.ts","../../ts/series/cylinder/cylinderseriesdefaults.ts","../../ts/series/cylinder/cylinderseries.ts","../../ts/series/cylinder/cylinderpoint.ts","../../ts/series/dependencywheel/dependencywheelpointoptions.d.ts","../../ts/series/dependencywheel/dependencywheelseriesoptions.d.ts","../../ts/series/dependencywheel/dependencywheelseriesdefaults.ts","../../ts/series/dependencywheel/dependencywheelseries.ts","../../ts/series/dependencywheel/dependencywheelpoint.ts","../../ts/series/dotplot/dotplotpointoptions.d.ts","../../ts/series/dotplot/dotplotseriesoptions.d.ts","../../ts/series/dotplot/dotplotseriesdefaults.ts","../../ts/series/dotplot/dotplotseries.ts","../../ts/series/dotplot/dotplotpoint.d.ts","../../ts/series/dumbbell/dumbbellpointoptions.d.ts","../../ts/series/dumbbell/dumbbellseriesoptions.d.ts","../../ts/series/lollipop/lollipoppointoptions.d.ts","../../ts/series/lollipop/lollipopseriesoptions.d.ts","../../ts/series/lollipop/lollipopseries.ts","../../ts/series/lollipop/lollipoppoint.ts","../../ts/series/dumbbell/dumbbellseriesdefaults.ts","../../ts/series/dumbbell/dumbbellseries.ts","../../ts/series/dumbbell/dumbbellpoint.ts","../../ts/series/mapline/maplinepointoptions.d.ts","../../ts/series/flowmap/flowmappointoptions.d.ts","../../ts/series/mapline/maplinepoint.d.ts","../../ts/series/mapline/maplineseriesdefaults.ts","../../ts/series/mapline/maplineseries.ts","../../ts/series/mapline/maplineseriesoptions.d.ts","../../ts/series/flowmap/flowmapseriesoptions.d.ts","../../ts/series/flowmap/flowmapseries.ts","../../ts/series/flowmap/flowmappoint.ts","../../ts/series/funnel/funneldatalabeloptions.d.ts","../../ts/series/funnel/funnelpointoptions.d.ts","../../ts/series/funnel/funnelseriesoptions.d.ts","../../ts/series/funnel/funnelseriesdefaults.ts","../../ts/series/funnel/funnelseries.ts","../../ts/series/funnel/funnelpoint.d.ts","../../ts/series/funnel3d/svgelement3dfunnel.ts","../../ts/series/funnel3d/funnel3dcomposition.ts","../../ts/series/funnel3d/funnel3dpointoptions.d.ts","../../ts/series/funnel3d/funnel3dseriesoptions.d.ts","../../ts/series/funnel3d/funnel3dseriesdefaults.ts","../../ts/series/funnel3d/funnel3dseries.ts","../../ts/series/funnel3d/funnel3dpoint.ts","../../ts/series/gauge/gaugepointoptions.d.ts","../../ts/series/gauge/gaugeseriesoptions.d.ts","../../ts/series/gauge/gaugeseries.ts","../../ts/series/gauge/gaugepoint.ts","../../ts/series/heikinashi/heikinashipointoptions.d.ts","../../ts/series/heikinashi/heikinashiseriesoptions.d.ts","../../ts/series/heikinashi/heikinashiseriesdefaults.ts","../../ts/series/heikinashi/heikinashiseries.ts","../../ts/series/heikinashi/heikinashipoint.ts","../../ts/series/histogram/histogrampointoptions.d.ts","../../ts/series/histogram/histogramseriesoptions.d.ts","../../ts/series/histogram/histogramseriesdefaults.ts","../../ts/series/histogram/histogramseries.ts","../../ts/series/histogram/histogrampoint.d.ts","../../ts/series/hollowcandlestick/hollowcandlestickseriesoptions.d.ts","../../ts/series/hollowcandlestick/hollowcandlestickseries.ts","../../ts/series/hollowcandlestick/hollowcandlestickpoint.ts","../../ts/series/hollowcandlestick/hollowcandlestickpointoptions.d.ts","../../ts/series/item/itempointoptions.d.ts","../../ts/series/item/itemseriesoptions.d.ts","../../ts/series/item/itemseriesdefaults.ts","../../ts/series/item/itemseries.ts","../../ts/series/item/itempoint.ts","../../ts/series/mapbubble/mapbubblepoint.ts","../../ts/series/mapbubble/mapbubblepointoptions.d.ts","../../ts/series/mapbubble/mapbubbleseriesoptions.d.ts","../../ts/series/mapbubble/mapbubbleseries.ts","../../ts/series/paretoseries/paretopointoptions.d.ts","../../ts/series/paretoseries/paretoseriesoptions.d.ts","../../ts/series/paretoseries/paretoseriesdefaults.ts","../../ts/series/paretoseries/paretoseries.ts","../../ts/series/paretoseries/paretopoint.d.ts","../../ts/series/pictorial/pictorialpointoptions.d.ts","../../ts/series/pictorial/pictorialseriesoptions.d.ts","../../ts/series/pictorial/pictorialutilities.ts","../../ts/series/pictorial/pictorialseries.ts","../../ts/series/pictorial/pictorialpoint.ts","../../ts/series/pie/piedatalabel.ts","../../ts/series/pie3d/pie3dseries.ts","../../ts/series/pie3d/pie3dpoint.ts","../../ts/series/pointandfigure/pointandfigureseriesoptions.d.ts","../../ts/series/pointandfigure/pointandfigureseriesdefaults.ts","../../ts/series/pointandfigure/pointandfiguresymbols.ts","../../ts/series/pointandfigure/pointandfigureseries.ts","../../ts/series/pointandfigure/pointandfigurepoint.ts","../../ts/series/pointandfigure/pointandfigurepointoptions.d.ts","../../ts/series/polygon/polygonpointoptions.d.ts","../../ts/series/polygon/polygonseriesoptions.d.ts","../../ts/series/polygon/polygonseriesdefaults.ts","../../ts/series/polygon/polygonseries.ts","../../ts/series/polygon/polygonpoint.d.ts","../../ts/series/pyramid/pyramidpointoptions.d.ts","../../ts/series/pyramid/pyramidseriesoptions.d.ts","../../ts/series/pyramid/pyramidseriesdefaults.ts","../../ts/series/pyramid/pyramidseries.ts","../../ts/series/pyramid/pyramidpoint.d.ts","../../ts/series/pyramid3d/pyramid3dpointoptions.d.ts","../../ts/series/pyramid3d/pyramid3dseriesoptions.d.ts","../../ts/series/pyramid3d/pyramid3dseriesdefaults.ts","../../ts/series/pyramid3d/pyramid3dseries.ts","../../ts/series/pyramid3d/pyramid3dpoint.d.ts","../../ts/series/renko/renkopointoptions.d.ts","../../ts/series/renko/renkoseriesoptions.d.ts","../../ts/series/renko/renkoseriesdefaults.ts","../../ts/series/renko/renkoseries.ts","../../ts/series/renko/renkopoint.ts","../../ts/series/scatter3d/scatter3dpointoptions.d.ts","../../ts/series/scatter3d/scatter3dseriesoptions.d.ts","../../ts/series/scatter3d/scatter3dseriesdefaults.ts","../../ts/series/scatter3d/scatter3dseries.ts","../../ts/series/scatter3d/scatter3dpoint.ts","../../ts/series/solidgauge/solidgaugepointoptions.d.ts","../../ts/series/solidgauge/solidgaugeseriesoptions.d.ts","../../ts/series/solidgauge/solidgaugeseriesdefaults.ts","../../ts/series/solidgauge/solidgaugeseries.ts","../../ts/series/solidgauge/solidgaugepoint.d.ts","../../ts/series/streamgraph/streamgraphpointoptions.d.ts","../../ts/series/streamgraph/streamgraphseriesoptions.d.ts","../../ts/series/streamgraph/streamgraphseriesdefaults.ts","../../ts/series/streamgraph/streamgraphseries.ts","../../ts/series/streamgraph/streamgraphpoint.d.ts","../../ts/series/sunburst/sunburstpointoptions.d.ts","../../ts/series/sunburst/sunburstpoint.ts","../../ts/series/sunburst/sunburstutilities.ts","../../ts/series/sunburst/sunburstseriesdefaults.ts","../../ts/series/sunburst/sunburstseries.ts","../../ts/series/sunburst/sunburstseriesoptions.d.ts","../../ts/series/sunburst/sunburstnode.ts","../../ts/series/tiledwebmap/tiledwebmapseriesoptions.d.ts","../../ts/series/tiledwebmap/tiledwebmapseriesdefaults.ts","../../ts/series/tiledwebmap/tiledwebmapseries.ts","../../ts/series/tilemap/tilemappointoptions.d.ts","../../ts/series/tilemap/tilemapseriesoptions.d.ts","../../ts/series/tilemap/tilemapseriesdefaults.ts","../../ts/series/tilemap/tilemapshapes.ts","../../ts/series/tilemap/tilemapseries.ts","../../ts/series/tilemap/tilemappoint.ts","../../ts/series/timeline/timelinepointoptions.d.ts","../../ts/series/timeline/timelineseriesoptions.d.ts","../../ts/series/timeline/timelineseriesdefaults.ts","../../ts/series/timeline/timelineseries.ts","../../ts/series/timeline/timelinepoint.ts","../../ts/series/timeline/timelinedatalabeloptions.d.ts","../../ts/series/variablepie/variablepiepointoptions.d.ts","../../ts/series/variablepie/variablepieseriesoptions.d.ts","../../ts/series/variablepie/variablepieseriesdefaults.ts","../../ts/series/variablepie/variablepieseries.ts","../../ts/series/variablepie/variablepiepoint.d.ts","../../ts/series/variwide/variwidepointoptions.d.ts","../../ts/series/variwide/variwideseriesoptions.d.ts","../../ts/series/variwide/variwideseriesdefaults.ts","../../ts/series/variwide/variwideseries.ts","../../ts/series/variwide/variwidepoint.ts","../../ts/series/variwide/variwidecomposition.ts","../../ts/series/vector/vectorpointoptions.d.ts","../../ts/series/vector/vectorseriesoptions.d.ts","../../ts/series/vector/vectorseriesdefaults.ts","../../ts/series/vector/vectorseries.ts","../../ts/series/vector/vectorpoint.d.ts","../../ts/series/venn/vennpointoptions.d.ts","../../ts/series/venn/vennutils.ts","../../ts/series/venn/vennseriesoptions.d.ts","../../ts/series/venn/vennseriesdefaults.ts","../../ts/series/venn/vennseries.ts","../../ts/series/venn/vennpoint.ts","../../ts/series/windbarb/windbarbpointoptions.d.ts","../../ts/series/windbarb/windbarbseriesoptions.d.ts","../../ts/series/windbarb/windbarbseriesdefaults.ts","../../ts/series/windbarb/windbarbseries.ts","../../ts/series/windbarb/windbarbpoint.ts","../../ts/series/wordcloud/wordcloudpointoptions.d.ts","../../ts/series/wordcloud/wordcloudseriesoptions.d.ts","../../ts/series/wordcloud/wordcloudseriesdefaults.ts","../../ts/series/wordcloud/wordcloudseries.ts","../../ts/series/wordcloud/wordcloudutils.ts","../../ts/series/wordcloud/wordcloudpoint.ts","../../ts/stock/indicators/arrayutilities.ts","../../ts/stock/indicators/multiplelinescomposition.ts","../../ts/stock/indicators/abands/abandsoptions.d.ts","../../ts/stock/indicators/abands/abandspoint.d.ts","../../ts/stock/indicators/abands/abandsindicator.ts","../../ts/stock/indicators/ad/adoptions.d.ts","../../ts/stock/indicators/ad/adpoint.d.ts","../../ts/stock/indicators/ad/adindicator.ts","../../ts/stock/indicators/ao/aooptions.d.ts","../../ts/stock/indicators/ao/aopoint.d.ts","../../ts/stock/indicators/ao/aoindicator.ts","../../ts/stock/indicators/ema/emaoptions.d.ts","../../ts/stock/indicators/apo/apooptions.d.ts","../../ts/stock/indicators/ema/emaindicator.ts","../../ts/stock/indicators/ema/emapoint.d.ts","../../ts/stock/indicators/apo/apopoint.d.ts","../../ts/stock/indicators/apo/apoindicator.ts","../../ts/stock/indicators/atr/atroptions.d.ts","../../ts/stock/indicators/atr/atrpoint.d.ts","../../ts/stock/indicators/atr/atrindicator.ts","../../ts/stock/indicators/aroon/aroonoptions.d.ts","../../ts/stock/indicators/aroon/aroonpoint.d.ts","../../ts/stock/indicators/aroon/aroonindicator.ts","../../ts/stock/indicators/aroonoscillator/aroonoscillatoroptions.d.ts","../../ts/stock/indicators/aroonoscillator/aroonoscillatorpoint.d.ts","../../ts/stock/indicators/aroonoscillator/aroonoscillatorindicator.ts","../../ts/stock/indicators/bb/bboptions.d.ts","../../ts/stock/indicators/bb/bbpoint.d.ts","../../ts/stock/indicators/bb/bbindicator.ts","../../ts/stock/indicators/cci/ccioptions.d.ts","../../ts/stock/indicators/cci/ccipoint.d.ts","../../ts/stock/indicators/cci/cciindicator.ts","../../ts/stock/indicators/cmf/cmfoptions.d.ts","../../ts/stock/indicators/cmf/cmfpoint.d.ts","../../ts/stock/indicators/cmf/cmfindicator.ts","../../ts/stock/indicators/cmo/cmooptions.d.ts","../../ts/stock/indicators/cmo/cmopoint.d.ts","../../ts/stock/indicators/cmo/cmoindicator.ts","../../ts/stock/indicators/chaikin/chaikinoptions.d.ts","../../ts/stock/indicators/chaikin/chaikinpoint.d.ts","../../ts/stock/indicators/chaikin/chaikinindicator.ts","../../ts/stock/indicators/dema/demaoptions.d.ts","../../ts/stock/indicators/dema/demapoint.d.ts","../../ts/stock/indicators/dema/demaindicator.ts","../../ts/stock/indicators/dmi/dmioptions.d.ts","../../ts/stock/indicators/dmi/dmipoint.d.ts","../../ts/stock/indicators/dmi/dmiindicator.ts","../../ts/stock/indicators/dpo/dpooptions.d.ts","../../ts/stock/indicators/dpo/dpopoint.d.ts","../../ts/stock/indicators/dpo/dpoindicator.ts","../../ts/stock/indicators/disparityindex/disparityindexoptions.d.ts","../../ts/stock/indicators/disparityindex/disparityindexpoint.d.ts","../../ts/stock/indicators/disparityindex/disparityindexindicator.ts","../../ts/stock/indicators/ikh/ikhpoint.d.ts","../../ts/stock/indicators/ikh/ikhoptions.d.ts","../../ts/stock/indicators/ikh/ikhindicator.ts","../../ts/stock/indicators/keltnerchannels/keltnerchannelsoptions.d.ts","../../ts/stock/indicators/keltnerchannels/keltnerchannelspoint.d.ts","../../ts/stock/indicators/keltnerchannels/keltnerchannelsindicator.ts","../../ts/stock/indicators/klinger/klingeroptions.d.ts","../../ts/stock/indicators/klinger/klingerpoint.d.ts","../../ts/stock/indicators/klinger/klingerindicator.ts","../../ts/stock/indicators/linearregression/linearregressionoptions.d.ts","../../ts/stock/indicators/linearregression/linearregressionpoint.d.ts","../../ts/stock/indicators/linearregression/linearregressionindicator.ts","../../ts/stock/indicators/linearregressionangle/linearregressionanglepoint.d.ts","../../ts/stock/indicators/linearregressionangle/linearregressionangleindicator.ts","../../ts/stock/indicators/linearregressionangle/linearregressionangleoptions.d.ts","../../ts/stock/indicators/linearregressionintercept/linearregressioninterceptpoint.d.ts","../../ts/stock/indicators/linearregressionintercept/linearregressioninterceptindicator.ts","../../ts/stock/indicators/linearregressionintercept/linearregressioninterceptoptions.d.ts","../../ts/stock/indicators/linearregressionslopes/linearregressionslopespoint.d.ts","../../ts/stock/indicators/linearregressionslopes/linearregressionslopesindicator.ts","../../ts/stock/indicators/linearregressionslopes/linearregressionslopesoptions.d.ts","../../ts/stock/indicators/macd/macdoptions.d.ts","../../ts/stock/indicators/macd/macdpoint.d.ts","../../ts/stock/indicators/macd/macdindicator.ts","../../ts/stock/indicators/mfi/mfioptions.d.ts","../../ts/stock/indicators/mfi/mfipoint.d.ts","../../ts/stock/indicators/mfi/mfiindicator.ts","../../ts/stock/indicators/momentum/momentumoptions.d.ts","../../ts/stock/indicators/momentum/momentumpoint.d.ts","../../ts/stock/indicators/momentum/momentumindicator.ts","../../ts/stock/indicators/natr/natroptions.d.ts","../../ts/stock/indicators/natr/natrpoint.d.ts","../../ts/stock/indicators/natr/natrindicator.ts","../../ts/stock/indicators/obv/obvoptions.d.ts","../../ts/stock/indicators/obv/obvpoint.d.ts","../../ts/stock/indicators/obv/obvindicator.ts","../../ts/stock/indicators/pc/pcoptions.d.ts","../../ts/stock/indicators/pc/pcpoint.d.ts","../../ts/stock/indicators/pc/pcindicator.ts","../../ts/stock/indicators/ppo/ppooptions.d.ts","../../ts/stock/indicators/ppo/ppopoint.d.ts","../../ts/stock/indicators/ppo/ppoindicator.ts","../../ts/stock/indicators/psar/psaroptions.d.ts","../../ts/stock/indicators/psar/psarpoint.d.ts","../../ts/stock/indicators/psar/psarindicator.ts","../../ts/stock/indicators/pivotpoints/pivotpointsoptions.d.ts","../../ts/stock/indicators/pivotpoints/pivotpointspoint.ts","../../ts/stock/indicators/pivotpoints/pivotpointsindicator.ts","../../ts/stock/indicators/priceenvelopes/priceenvelopesoptions.d.ts","../../ts/stock/indicators/priceenvelopes/priceenvelopespoint.d.ts","../../ts/stock/indicators/priceenvelopes/priceenvelopesindicator.ts","../../ts/stock/indicators/roc/rocoptions.d.ts","../../ts/stock/indicators/roc/rocpoint.d.ts","../../ts/stock/indicators/roc/rocindicator.ts","../../ts/stock/indicators/rsi/rsioptions.d.ts","../../ts/stock/indicators/rsi/rsipoint.d.ts","../../ts/stock/indicators/rsi/rsiindicator.ts","../../ts/stock/indicators/stochastic/stochasticoptions.d.ts","../../ts/stock/indicators/slowstochastic/slowstochasticoptions.d.ts","../../ts/stock/indicators/stochastic/stochasticindicator.ts","../../ts/stock/indicators/stochastic/stochasticpoint.d.ts","../../ts/stock/indicators/slowstochastic/slowstochasticpoint.d.ts","../../ts/stock/indicators/slowstochastic/slowstochasticindicator.ts","../../ts/stock/indicators/supertrend/supertrendpoint.d.ts","../../ts/stock/indicators/supertrend/supertrendoptions.d.ts","../../ts/stock/indicators/supertrend/supertrendindicator.ts","../../ts/stock/indicators/tema/temaoptions.d.ts","../../ts/stock/indicators/tema/temapoint.d.ts","../../ts/stock/indicators/tema/temaindicator.ts","../../ts/stock/indicators/trix/trixoptions.d.ts","../../ts/stock/indicators/trix/trixpoint.d.ts","../../ts/stock/indicators/trix/trixindicator.ts","../../ts/stock/indicators/trendline/trendlineoptions.d.ts","../../ts/stock/indicators/trendline/trendlinepoint.d.ts","../../ts/stock/indicators/trendline/trendlineindicator.ts","../../ts/stock/indicators/vbp/vbpoptions.d.ts","../../ts/stock/indicators/vbp/vbppoint.ts","../../ts/stock/indicators/vbp/vbpindicator.ts","../../ts/stock/indicators/vwap/vwapoptions.d.ts","../../ts/stock/indicators/vwap/vwappoint.d.ts","../../ts/stock/indicators/vwap/vwapindicator.ts","../../ts/stock/indicators/wma/wmaoptions.d.ts","../../ts/stock/indicators/wma/wmapoint.d.ts","../../ts/stock/indicators/wma/wmaindicator.ts","../../ts/stock/indicators/williamsr/williamsroptions.d.ts","../../ts/stock/indicators/williamsr/williamsrpoint.d.ts","../../ts/stock/indicators/williamsr/williamsrindicator.ts","../../ts/stock/indicators/zigzag/zigzagoptions.d.ts","../../ts/stock/indicators/zigzag/zigzagpoint.d.ts","../../ts/stock/indicators/zigzag/zigzagindicator.ts","../../ts/stock/navigator/standalonenavigatordefaults.ts","../../ts/stock/navigator/standalonenavigator.ts","../../ts/stock/stocktools/stocktoolsoptions.d.ts","../../ts/stock/stocktools/stocktoolsbindings.ts","../../ts/stock/stocktools/stocktoolsdefaults.ts","../../ts/stock/stocktools/stocktools.ts","../../ts/stock/stocktools/stocktoolsutilities.ts","../../ts/stock/stocktools/stocktoolbar.ts","../../ts/stock/stocktools/stocktoolsgui.ts","../../ts/masters/highcharts-3d.src.ts","../../ts/masters/highcharts.src.ts","../../ts/masters/modules/pathfinder.src.ts","../../ts/masters/modules/static-scale.src.ts","../../ts/masters/modules/xrange.src.ts","../../ts/masters/modules/gantt.src.ts","../../ts/masters/highcharts-gantt.src.ts","../../ts/masters/highcharts-more.src.ts","../../ts/masters/modules/coloraxis.src.ts","../../ts/masters/modules/map.src.ts","../../ts/masters/highmaps.src.ts","../../ts/masters/modules/broken-axis.src.ts","../../ts/masters/modules/datagrouping.src.ts","../../ts/masters/modules/mouse-wheel-zoom.src.ts","../../ts/masters/modules/stock.src.ts","../../ts/masters/highstock.src.ts","../../ts/masters/modules/navigator.src.ts","../../ts/masters/standalone-navigator.src.ts","../../ts/masters/indicators/acceleration-bands.src.ts","../../ts/masters/indicators/accumulation-distribution.src.ts","../../ts/masters/indicators/ao.src.ts","../../ts/masters/indicators/apo.src.ts","../../ts/masters/indicators/aroon-oscillator.src.ts","../../ts/masters/indicators/aroon.src.ts","../../ts/masters/indicators/atr.src.ts","../../ts/masters/indicators/bollinger-bands.src.ts","../../ts/masters/indicators/cci.src.ts","../../ts/masters/indicators/chaikin.src.ts","../../ts/masters/indicators/cmf.src.ts","../../ts/masters/indicators/cmo.src.ts","../../ts/masters/indicators/dema.src.ts","../../ts/masters/indicators/disparity-index.src.ts","../../ts/masters/indicators/dmi.src.ts","../../ts/masters/indicators/dpo.src.ts","../../ts/masters/indicators/ema.src.ts","../../ts/masters/indicators/ichimoku-kinko-hyo.src.ts","../../ts/masters/indicators/indicators-all.src.ts","../../ts/masters/indicators/indicators.src.ts","../../ts/masters/indicators/keltner-channels.src.ts","../../ts/masters/indicators/klinger.src.ts","../../ts/masters/indicators/macd.src.ts","../../ts/masters/indicators/mfi.src.ts","../../ts/masters/indicators/momentum.src.ts","../../ts/masters/indicators/natr.src.ts","../../ts/masters/indicators/obv.src.ts","../../ts/masters/indicators/pivot-points.src.ts","../../ts/masters/indicators/ppo.src.ts","../../ts/masters/indicators/price-channel.src.ts","../../ts/masters/indicators/price-envelopes.src.ts","../../ts/masters/indicators/psar.src.ts","../../ts/masters/indicators/regressions.src.ts","../../ts/masters/indicators/roc.src.ts","../../ts/masters/indicators/rsi.src.ts","../../ts/masters/indicators/slow-stochastic.src.ts","../../ts/masters/indicators/stochastic.src.ts","../../ts/masters/indicators/supertrend.src.ts","../../ts/masters/indicators/tema.src.ts","../../ts/masters/indicators/trendline.src.ts","../../ts/masters/indicators/trix.src.ts","../../ts/masters/indicators/volume-by-price.src.ts","../../ts/masters/indicators/vwap.src.ts","../../ts/masters/indicators/williams-r.src.ts","../../ts/masters/indicators/wma.src.ts","../../ts/masters/indicators/zigzag.src.ts","../../ts/masters/modules/accessibility.src.ts","../../ts/masters/modules/annotations.src.ts","../../ts/masters/modules/annotations-advanced.src.ts","../../ts/masters/modules/arc-diagram.src.ts","../../ts/masters/modules/arrow-symbols.src.ts","../../ts/masters/modules/boost-canvas.src.ts","../../ts/masters/modules/boost.src.ts","../../ts/masters/modules/bullet.src.ts","../../ts/masters/modules/current-date-indicator.src.ts","../../ts/masters/modules/cylinder.src.ts","../../ts/masters/modules/data-tools.src.ts","../../ts/masters/modules/data.src.ts","../../ts/masters/modules/debugger.src.ts","../../ts/masters/modules/dependency-wheel.src.ts","../../ts/masters/modules/dotplot.src.ts","../../ts/masters/modules/drag-panes.src.ts","../../ts/masters/modules/draggable-points.src.ts","../../ts/masters/modules/drilldown.src.ts","../../ts/masters/modules/dumbbell.src.ts","../../ts/masters/modules/export-data.src.ts","../../ts/masters/modules/exporting.src.ts","../../ts/masters/modules/flowmap.src.ts","../../ts/masters/modules/full-screen.src.ts","../../ts/masters/modules/funnel.src.ts","../../ts/masters/modules/funnel3d.src.ts","../../ts/masters/modules/geoheatmap.src.ts","../../ts/masters/modules/grid-axis.src.ts","../../ts/masters/modules/heatmap.src.ts","../../ts/masters/modules/heikinashi.src.ts","../../ts/masters/modules/histogram-bellcurve.src.ts","../../ts/masters/modules/hollowcandlestick.src.ts","../../ts/masters/modules/item-series.src.ts","../../ts/masters/modules/lollipop.src.ts","../../ts/masters/modules/marker-clusters.src.ts","../../ts/masters/modules/networkgraph.src.ts","../../ts/masters/modules/no-data-to-display.src.ts","../../ts/masters/modules/offline-exporting.src.ts","../../ts/masters/modules/organization.src.ts","../../ts/masters/modules/overlapping-datalabels.src.ts","../../ts/masters/modules/parallel-coordinates.src.ts","../../ts/masters/modules/pareto.src.ts","../../ts/masters/modules/pattern-fill.src.ts","../../ts/masters/modules/pictorial.src.ts","../../ts/masters/modules/pointandfigure.src.ts","../../ts/masters/modules/price-indicator.src.ts","../../ts/masters/modules/pyramid3d.src.ts","../../ts/masters/modules/renko.src.ts","../../ts/masters/modules/sankey.src.ts","../../ts/masters/modules/series-label.src.ts","../../ts/masters/modules/series-on-point.src.ts","../../ts/masters/modules/solid-gauge.src.ts","../../ts/masters/modules/sonification.src.ts","../../ts/masters/modules/stock-tools.src.ts","../../ts/masters/modules/streamgraph.src.ts","../../ts/masters/modules/sunburst.src.ts","../../ts/masters/modules/textpath.src.ts","../../ts/masters/modules/tiledwebmap.src.ts","../../ts/masters/modules/tilemap.src.ts","../../ts/masters/modules/timeline.src.ts","../../ts/masters/modules/treegraph.src.ts","../../ts/masters/modules/treegrid.src.ts","../../ts/masters/modules/treemap.src.ts","../../ts/masters/modules/variable-pie.src.ts","../../ts/masters/modules/variwide.src.ts","../../ts/masters/modules/vector.src.ts","../../ts/masters/modules/venn.src.ts","../../ts/masters/modules/windbarb.src.ts","../../ts/masters/modules/wordcloud.src.ts","../../ts/masters/themes/avocado.src.ts","../../ts/masters/themes/brand-dark.src.ts","../../ts/masters/themes/brand-light.src.ts","../../ts/masters/themes/dark-blue.src.ts","../../ts/masters/themes/dark-green.src.ts","../../ts/masters/themes/dark-unica.src.ts","../../ts/masters/themes/gray.src.ts","../../ts/masters/themes/grid-light.src.ts","../../ts/masters/themes/grid.src.ts","../../ts/masters/themes/high-contrast-dark.src.ts","../../ts/masters/themes/high-contrast-light.src.ts","../../ts/masters/themes/sand-signika.src.ts","../../ts/masters/themes/skies.src.ts","../../ts/masters/themes/sunset.src.ts","../../node_modules/@types/jquery/jquerystatic.d.ts","../../node_modules/@types/jquery/jquery.d.ts","../../node_modules/@types/jquery/misc.d.ts","../../node_modules/@types/jquery/legacy.d.ts","../../node_modules/@types/sizzle/index.d.ts","../../node_modules/@types/jquery/index.d.ts","../../node_modules/@types/trusted-types/lib/index.d.ts","../../node_modules/@types/trusted-types/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"8c8eb6b9ec6e689817b1b4d11ef2a6207e14324299caf5a5bc58827cb068070a","1782ca9bc8d8d592e8ad1d2d48b8ad9af28ebc03770ddd2ae4124773d559bf36","2a0edb9382fc9f18ea74f0013bebf8c30ac34047baab1e0dd76f5ad117de255d","8379dfd4645c3b845290feba7f5a37ff42a8ed43a580dc3f3f51e4a61ebadfc3","047f0c9be9d0119d2456a269230a435dd52a4954ee78c95989d139366b4f4844","275744cbc46ec0f347298dd5f680a9709cef99cee3e737b491bb0a4a45db3485","b4a91203e9f24f34a6de22bea6670ff59bdb30dd9ce0dbe642023d2df4a13f33","c30102514db1804e1691596c9c3c8f65b9addfa396a6998287c05b2dd2d15419","7cad41ed3d2e5e583931494ead31cf5990460a5abaeca67583c46e9086afe753","7c5b8b2496c190736c70d4ec53b1b3345537a40fd1196674d3624fdee54809ff","e2db83cb0ebaf09d2220c96f381e9f583810b34c29b7a457532c4b55efb26908","07aebe2036f91a21d3c018606200c1d86f1c8fbd2e8d919eb9cdba8cb363cba1","07c66c443cc5ab3f76e8d21f063cfd191f5edc122ba85c1560a43983c2ee1f07","4226d2a50a341079b7c8015446a633917156d0232755ed25a8ee48006b00e293","d07c6257a338167d4382f4c9c668f74acc9dabc4fe0986ddbf31abfea5c0510a","3c2c4f7870bef21dbfb428f8c4ec2f72b290ff7ec3b647ffcf4f68481e69ff8e","aa6f43b3ba0c007606fbe22f93b585c33d016c1cebb24fca762fe688914e138d","8505c7c17103244a4d4e5040ce8005311d4d57d13ff76acaf49e58fe62d93da1","e06b6c2f8f9294f4bf3bbc44dc269253fa4a0eb78c6f62ac2edadf2ac66791a1",{"version":"e7e96f71acdba9583cecf008254bdb9df25d90d2159ea50f297a5907554992a2","signature":"4f021368e0783dcb1253ea77847d0f81dbb04c59867ebd0aed103f44cd282b9d"},"a65021ae3e5f537ffc349730bebc6e79e6cd0d4a73554dec12fb612e0f8b04fa","d8d5559022ef06ba73a75fb1ff24fffe99fae086a00905076a8a0e321d23cb85",{"version":"05447186314b3b27a8afe8f22935d336f610b03b69e3a70a4a8adc1abd041c10","signature":"82f3f8de37e7d153ceafda565cf4357492d3a049591b18cc675b1fd8c5c57bb6"},{"version":"4427123cf6f1b533112ee6379084ee092ce5b42a14edf865b71b690adc7900c4","signature":"e1b42ceb3d9c1f72b3ef91af117eb5d8679cf8a484c75a6d070c796225f09adf"},"4d82fd2e1295b5a3c1d2d82dfd2c45ad730774688d44748cf7d0305d49739bae",{"version":"d4f0cd891ba6c1948261437899d854d0ad1b4009e94ed633caf2aba89c65134d","signature":"ca03d0ad8f300832d16f273fbc9cf73d96a2982025259add413d96506d39a956"},{"version":"1a44402b14123287d51bdb6bb6f9e9950ad3403af0df78563906110d16fa9c17","signature":"8659790ea32312ae2c6f1f1c32381dcc537d3ac8be40f09fab56f11071e47c2f"},{"version":"4e77c79140c7272e6f84d3a3002522df4a3268fb1dafb994465649d2eda0fbb5","signature":"e8457239962363c7f4137fa39bd723897cde43836733359d2ec5adeff74d91ae"},{"version":"a0f67c0a1f602f7862b46f8b89f3784a15c51e196878f33009a8bfc20c1a1ae6","signature":"e8c9db54602d6d94f9f41f0234150e7ec7c6a8086f143758e7b333cc0b653d5a"},{"version":"de4c8adc12abe86b6446f725096efbf80bb77ab99883b8a948c34c7cbf122e9c","signature":"ce9462027e8f4dc890b1b1a513e2ffde6d4a5382390bcc64461a7bfcccc96b5c"},"e4dd8b1959ba7d7dae412c63de0e1ba47b219d8597cdc77da611d6cb4d6196ff","bad5ce74e44191cebc14b59c726c732e4a7b861ca820ccf625baba7ea75c5b4e","c208de3339361690273cfc96d21b2b33c956997526b3d85487c2075ab43f6185","8bad1fbe72628e9e2899e6e7a17c4b815fab8690d97607cabdae41b24b00a8cf","4279b64dbb79e1b10f20b92feb6e19b31d58d9e8af5728cae28ae4bd30ca98a5","a05040244da8ca975bc138e0729cc78ed3fe3e15dff2c4fc62d5ec8d327e3401","898e710e87cfd721cf0fb92b8b11a0add06d2660a19f0bb4a5089773cfbccac3","f81e53b756cdfde4e3e00516251b60a615bb0f5870b4cfb784140a4506c117c5","88e166abdc9ac3147e01e936c5a63632807eb54b7cf675401fcaa5201618ad4f","b6d055bf21f4b9eb2276c980662bc0e0ee47d089054cc54b2577538824381226","9cfe56cac66ddb37d4faf163d1240cff14b3e3744796bf54e9ba3a83514e765f","f13984d140b299145b8dd41c1052853257a2a57b1ea2ed99da752fee3450b6bc","1732829973987130e92a267c059b05629d9653c978a50abc830cbae4dc7a8fe7","bdd197d7f2e6910582ac1659f610b617d2bdb2f30d3cd8601ad99349d4bf0b6b",{"version":"c8d37c2dc74adbd8bbdd0f5c1d96b89cc71925597330bdf451ef20cdd7c8a682","signature":"8821fa5ddf0c6d5dde8a5727473ba2d4c9c0861fdd83b7110e6559ae0d5e560f"},{"version":"1d7ea4832d6b91d8ab75ffb78693ba42a6d24f4f777b743ec23866e07ca1ce15","signature":"d936d07544206913ac896d4927c818e0e75aebe65f95a8249dd408bfeda91d4b"},{"version":"87838fdd2d55e6cee8f84a7da95425e8d90f02d276089f72f60086b42eb532ef","signature":"a916e5bfb0cd20756630c96806033d3b5ac142afab534878235ca6157ae4dbbc"},{"version":"1fd5d10294c90647178068d53007fc7c7c85d161e93c38dde2df741b88e557cd","signature":"19d6d550ab5050db9a135b076f5b595b39b75d76602f1d8ab0ea8f7926ebbcf6"},"203a8633f1d31b4f1a121a2049c95d2ebc12419852c2e8f458ad79eaebf87a4d","da5356dc260bdd5670eda00d91337f4a13156873835d7e03cfaf590086f78ef4",{"version":"801784f717df50a7673120c7ce6a735342f8eaecfbb184f86030074262844b84","signature":"0f60b65cbf100f1822b34a2917b181855a321941c169d557c75e39c983bcc693"},{"version":"e612950225298745301e65c97a2d2056e545220d4a0168f2c10bf074cabf0b09","signature":"9a995d406fed01c3a904df307776e7ced6fa6cbf066f768e0e5c0cae02c14d04"},{"version":"f83e294ae3813a96a601d17cab9dad903801ff81334f2c1659d534277ce47f27","signature":"e97316df7031f0939d6f948ded3ae91449d661d4721f5db7b4406123de978759"},"6c7949093d7ca216318aa93a7601e4a3ea97e31c72ce37cacb3366992ab9244b",{"version":"5cfb054eea3fa511069969428919ec849e5678a69d0fa91195c6c4259f300e39","signature":"70003591ad2924d3874a65f56ad1cf912adfccf2771403efbb4abb83aa6293e5"},{"version":"a3844626a8ff3d1bc372d590b8c57d55ca41dbd947c9211d56f33d02e7954f1a","signature":"8e52d428ba6b8e6d3960781a98c0ba7ea94d494f2749f60438f63c065ca5d062"},{"version":"bbfc4c384a27a91d8edcc6aa9bb2dc0018ddae8eec87c7b745af2daeef177d29","signature":"7b3e22c0348cc00f07def64e16840a247cf363f2fcac12fb3bbbbf210acc83a2"},{"version":"aaeb7d5d43367aa8c1c5a10af6e781044b5abc7dac61974f42a49609bde23906","signature":"3bb2fab08855c13585c4fabb4dc1b7107af667d498fb828838b30bde1fd2192f"},{"version":"3526045f46f5aa48f9e48ad1f3386aa23d6f508e6324379bcacef02114d7d642","signature":"3421cd1022226d27b5a65b195741059c2f2abc8ca52b2c237f056c0b8489422a"},{"version":"c5c725b4ec436fd1a8846c849fd93dbf7590e32ed10f46d0828dee35a47281c9","signature":"141c8afd3b078cd578824ac2e51b64a02f960a4ff5d7cec27ee744940efea779"},"2ce0728e4a35934288334673efbf2eb784071ac951d791580c50d0eaadfa7e29","96aa32be43ab3bba55da1996f7e2ce2bb1797e22af8e5a941f280197ce4ba729","bc671f5b7c079b9b2ce675c0b2b76a792e60b019fd0f8215cc121e5b4517e61c",{"version":"b3ff97b1540a5d78eeee73c6d1400a1fe75f603a1157603f1321a4088eb25c8f","signature":"e57a0994ff4e685207bdd9a6852f84058c0b228e8d67eb6f2ef875ee216a41d2"},{"version":"490bb827fc8d336aaab273d10e28abadd3b9933479a2b414c64f6b66e5ad7809","signature":"48209df4888e03aa5400bd3400af43c71f1e191ecf8c993ca560c37ce1736906"},{"version":"c520f887a332e1bfdf109696e195c622c734cdd35cf649c3cbce35a98de60b7f","signature":"9a34a0ab398b306e854ecea1994c9b1c946454db7239a3dea82d9a2695812524"},{"version":"bac96227a9a3047de4abbea77f8ad4c7a5e9a470c53149899bab0a54e4897a25","signature":"82293b3bd95371a68f354e4913038f4e3e35fa0a7aa062077d1fdeaec2378ab9"},"1c5a9250223da0bc360be5cb25d340d819a3d1e95dab6b866b8ab5bcd38ca427",{"version":"ab208b424a36ed8070dcf057a335e0b9fc530446c221476391301b995e70907b","signature":"3fb04b058cc2c00cf7572eee9b4b0c9adf21d14d0708e0a8caf3ede9e21b2f03"},"2021c615a5ffc4276c257343c6d189d5501b957103fc02a133295ab4f1182e63","4267ffcfc35276453c56d0ee01e2ff5103f31adb24ddc510b1cc0fe36716c8ed","8703fc120f80dfca97d62c5fbd9420bfb5b55cf56ce7dc18d49237916a2a83d4","3b02660ec214ffcff7d984ae8da633a6f9bf5b3991f3e3d82852d73305c39782",{"version":"cadb634e6ce145d2135e0d7cd09f364c45dd0aa17d791303f19d8b46402275a0","signature":"e835c7320e211b2ad8ae386acc727f16db465afa355c602a76ea118b09da7636"},"32c27ef6ca6785c5dbd72de0af606cda1cbfdc17461b95d8f1f1311c7e6f9949",{"version":"029bbffaa00390a3e0a5f749501f0cb661ae4d23a8f02ce50443c9a36d545b9f","signature":"848c6faf6dc52684100443a1b7a8cc067edba05e5f6e76b6b561b804f498e3e8"},{"version":"d6a4003ea2535a7c33c7458e9f147ae4c2e002dba3215fcf647d7f5ac09cb88a","signature":"9b2b464a0821ddc44de8bd0a23ff0c7a5bcb84013697624a91df239f7f41a365"},{"version":"951c19f7fd389a78608d4854aaa36e0c5bcc96bcda69a2ef20f2fe34ae1e49d3","signature":"1bded6a6874abeda63032450ecc79c4c8725b4df28b8ff889e5143cd26ba92d5"},{"version":"92b722b7706b2831a6b93aef6784a6fe13569f2a9a36c78c9b599c53877b32f6","signature":"a97984c354bc4a826ffc4328c0de7cb989093ba03269f560ed05286572e0d200"},{"version":"d77a05ad05772e7925ea4ea35f40b128119d5de27a1a15fa0e5605dc58c36ac7","signature":"527b76d95309796c14506085eceff3cf979e677c2726cca422aaa2cabdc968b6"},{"version":"4059f9f83b7ae08f85ea00ca1894c1d9b14ff1c49d16915856aefa351d7d7f1d","signature":"4a8f17810ed101e1ab6a88279fb5b653df79effd0c2e0686b4a6c03359ae0b6f"},"5bb88b0bde75b3c28d243ce724bfa92f4e8282023908087717d18be048e75645","f58f212ddbf3d280aec7cbcbc0d0447f5c4078e1310bf554975e7a381ef278c4","64927c68bb99dfe78bd4dcac7ec9f744a86b9d59fc9bd76244d7d506f028d0f1","7927df3f8c1136494af296b1f855c0ee6929556c03cda45158305f4e3fe64846","e2417833137fe91974a81e2753a65fbefbbb6bc82c3668a70e4e2025f5886a3d","2c6b2af767f9ac54e38b2a73be406715e695554e65e68268fee29809c9dd46fb","897b57473879caad4f5be506ff8d45b5f12daa1c1a8b9d47e75ac556c61c2e34",{"version":"49420ebca6ecc727cf8813643b7549767378f2006dadc0ee46fcb9ff74ba5209","signature":"99d7edf9fb121832a8416ffaf306a43b65d0d1d0f1316e8391f747ccb0dd5748"},{"version":"8960faaf563efe4a5e983d54cb4036d42f2d5a0f34997c8531f5bf96b2d2dec8","signature":"88ce48a697b7469d2cbd275870e38a3d8a2028b62da500111c5a578b111f8956"},"c059dc7999d0a9256068edf99f0440116c7f4851b32c132facee970d30b0bf64","5170324b0055a2b07e05cd70e0ee5bb2967fa49f9a4b5f0a3e5a6e6c287e47c0",{"version":"3e093303516b2105b4bae56e3f374e8d36eff9c6c94481d0894a953ed62b0b9b","signature":"956afd504b5c4951e1b85f1a1bcedf008cc150da849c7fc9a488105b4dd59353"},{"version":"f6a5b7c2257cb85dbee18c2e4b6e78f98099c712f337b40efb0b4dc05ada4c34","signature":"e3103288cced9e418d5190d51212bd809a575d6101b35cf7c590b43c32d28270"},{"version":"3a146fe385c4dd2b5f986093f7d95c9cc927ba393e338476bf20c55182f76b46","signature":"84d054ae3d4bf5e0d9adbe6a43bf0c546e78a307afef591eb7ba8aae813f7729"},{"version":"9474b42f9b4474229f788e4bc242feb31ba5d15b4c48b23aca57acdcde72dbeb","signature":"6e44ca35c46a7b4945254a0629a8fc7e01bcbe9c113c19fd8c15bb7b3d4c1574"},{"version":"16ff6ed5f4d616c79b6d031c018bd0d0d77abac74fdca7829c1b0625e053e0f1","signature":"be8f1dabb21a5ce462ef07913c5439c28487de12d3e705b315fddf2528bf44ed"},"f1fb00f30b749d8d840d816dbb35d81b351230cc1d18f62a6e585268f5469d98","a92626501295217bf4565aa2d4aefa444a5929d4292960d1706e9d66fcf0871b",{"version":"5c595e77858867e8e2306e1df1a81b9858c97562dc1b49b7b2285640c9167567","signature":"d2fc7b4b330b91dc065d994846a01def7d6f730f18f310acf7973ea3e62ca8bd"},{"version":"5bbc68a96a5d24ae244f80e7af97e1180c19b525ba9ce2b2bbcf2f83221e7f8e","signature":"1f5b729d56abeb17b3c403e3fcb59bd3616c0039093a750c91e8617875462d6f"},{"version":"ccd85716113b91fb814b16e29d132ef0cdc1f449c06eb73a23a1c544774b8f3b","signature":"8fe3069a3d1f421787b801921cdf8ebcaff2d4b4060d624f680668f8ab2f4a31"},{"version":"4a7d9d67a133bca0f442b9a40d32bb1f09c0755c112c07eb20d9573485881842","signature":"8821a67b2e81788724658b8113c8413359cc273a9a7791c22cd45d4ead31934f"},"638f97dead2be284ea8baabd3bc0b4689f7367e77ca13f9eb6a85dd3bbbfaeaa","f00a5535f2665d7e92fe87924c039fe4a4b0363fa1c791c67331726a05148efd",{"version":"5a9756c8414f035c32cb4c802d1526b78a19805ede542a593188fe0011434dff","signature":"d1c6535e8140f9d9c1b758a3d98846f2895da2ff1bd8743be8a535b22b9fa49a"},{"version":"b69a7fb5bc75bb8387de942e9623ba221d7ee15e738f9890484160c5b4457ad1","signature":"e566fe4037bcd3299a264b6b4358c53010d97219f5dab19f08fc1f5c1a3dc48a"},{"version":"77e1def4d29d6fd1994141c0c6755259a7a6e64db87387c06536424c39ac84e6","signature":"1cb91e873bc7a62116face345326e6ee7e9a38fd559694096e37d82957ac484f"},{"version":"01bbd164f099c6a664ce772acaabd3a340b15c2b0863040a888c0d6591e602cf","signature":"da21d47008d3105bcbec286eb58f391527982152cb7725d923cb40d90066b361"},{"version":"87c73ce03f65d7cf2c2ce273c85cd0982a01fee16c5d64458cb3d8d9d49df63c","signature":"de12e5127a08c491ab1e08fb1589126b91978cb5fb5b9ac1c6056ac42cb51763"},{"version":"2ac8e4e4249d67ab1664702e35722fbdcfd4f68d465dd470a936bfc8fce733f7","signature":"07f6028484660252cd6e9f9deea96c8a48c2599a46270dd327a47701ea7e2e07"},"a7d97502d5655b34a5322dfd4eb8b3876472afe4d025b1c2856d1fee618da49f",{"version":"ca8995a040be856aeeba54d714a566c76c8a270fd795e5ecb492b724d051bddc","signature":"0a0bab0aeaf82cfdcc95c27e79acf4b3f91822fc7d00467563140909827b7238"},{"version":"c6a8a9ecaed5f9b896a6ea560ecc458923420f60cd844993eeebf50a65f2119e","signature":"68dc7ccc850d458f7dd3b5f727a6ec7960e0ca12ee311078c6f4e1a0c4e9ce13"},{"version":"029a5368c84842c2cd92ae478580ac03e7e11d6b54c2778e9c233c2d373dae33","signature":"eefdeb0fd378c90d92469ef5cfda87859cf1a4aff7f82d11ff41efbd13810894"},{"version":"61fea123bf278e4ced226c427a28c5ee7c42915f409bb78561ac3e3845afd712","signature":"d2fd4fbadec0a3f02d0135a42e0678357634cd566f78c6b2cca33ae4dcfddce3"},{"version":"f471e1ab693edce0dde2214431c1da371622e3ae7f4bbcd89de8a93a805b814f","signature":"6c80fb4ff2f179bd0377225412fa3c4c009f7e8650bce555a16bd9cd666a2508"},{"version":"6f54f8a42fe263fce61760ebe1f138449d6e6426aff3b1138ebb64f2910dc8a2","signature":"c4387f5db2139e7698117207c7e53f0b6d791ae331240061e3de26afbd603a49"},{"version":"e066384415874c3a5b72a96a472ca793b0ad11578b3ae2d3e78e93a609993d25","signature":"73f8b34446a36f3414e1b99905bb58813793cb3a86a5a471f858c9f650e61640"},{"version":"7e4d3fd5e0e2c681369b55d82abeee29824aa95c8faeda8c476cc90ca49b3e61","signature":"88e9519d62c5163406afa10e9641ca597afae85fe200d15dc5bea970bca20643"},{"version":"c915489c5335e0ff8023dcfed38a14bcbeb99a5b93a38cfe684ecc5c45312b4e","signature":"b34ae889d00fe8014d497b209181492f47312d534ad127ae0381bda81a236374"},{"version":"0615cdcd3f9fdd6b2f3cff1ac83b5ffa0f39a7b9519e1eb6b9247b0654559a94","signature":"3b40f1a7bf929fd91566ce4525304df07676d77e6c4cd9754b839d3127835233"},{"version":"0ac7347d035f5c1c5e7d0c1c20a052f3871ab116b52a78f01fc7e014384e9405","signature":"abc44776efb7399cfe04a896cba4ae5d5e00507ead2d7275a82bf687d4dde949"},"ca920351489d32acade5d89fc483a48f9d2f7cabbd8558e50d69f39fdc8c8d26","bb1a711c8342f91ffed4f3b38e17bd69f563820a7b6faeff7d9a790b724d83ad","56fb7439a7f2d9e6d583407efb6d81b71312cb357fe949af19cb86e08e107515",{"version":"9fd4f0c3aedd4487f448133dad72e3a61cf12c7c9959c7ac78b142f61ff3cf2e","signature":"f74818b803a47ed0843bcdd6e7777c993c1ffc2090af47a5788d268ecccbe355"},{"version":"f917083a202d5f54a6af37f8f37af7ae1d184e645cf8c79405509061c9420a72","signature":"a14dfc846430d1ca3ef0aa18a966247ab944a6c8a2d2fb0cd11264c94adbce33"},{"version":"69a4e1469191ebc40fd153eebae9af742776124cb827b63eddfa38d913364ae0","signature":"52dda5af74542b1894df28c8f15760666ac5574df2fdae47ae1a424f946e89f1"},{"version":"b86732ec95e09720c304fa8fa1f15d352e1bb793dc774a9468ab35b94d004950","signature":"458173e0a8df315681c9819ee72598ef663f48e008da52c669235f3f681890cc"},{"version":"096b6bab063ac84c9a2400d8bfeadebe75a8235018b3226cb5b19fa029714c81","signature":"4f7197daa0f0391ba10bc0d62330543210de817af6c7c8c20eb1962b7e5cd996"},{"version":"66c52b2c18fcde306dc63dd137525c58fc2815794a678c314f369bb5a9d53032","signature":"70cc3e279756eeb0fa82a850fd3043025a413b207b1b276243ad6470c9118b40"},{"version":"6603141d1de2e16da37ca8a25075c7bfc3be4a13ca0fa5dd469cfceb4245ea5b","signature":"b9db26fb94d8d53bfc9e9d6cca910c9ba8640381c8a1108ea26dc6bed6535325"},{"version":"fc1d14d9a313ff43a15c348a47d17341cb194726fc43b9b497d7a76110df13b9","signature":"ed0059042f93d25159943da5d2ec5aed7a4431461d551faaea1124cd0978caa4"},"58b74c21a9540fd9a26de2cffb967750d338120312cf07bd18b7d63ac5f3fbe8",{"version":"fd337a5dc834521a51d3384875fe8c5bd66149d29e917c7e6d0e5da5907fb6c9","signature":"099c47f517eb81016883ae5aae4ebbd9d0bf1b44656202aa35edfee2f398896c"},"509abd28b2b2c6a0ad8d79ab0b91605619c6525f64cb375ba17f8720f89b5184","427c343aa6264b5d82920e0b001e0a9d62ac021a1d4f82be428801a44a85ca95",{"version":"1184e911f5fe7e72645f6449d310b3623aa86facd4cebbb65c2d05100efa1df9","signature":"27463e5c321ee74ee7e415a3ac245704e66f30738e944ce70949023267de9377"},{"version":"6cffbee45abda7bcab0428bdcfdb2b504c1329db94976b7191aa96831a73f2ca","signature":"71f19bd8529fc1eac2e7a5c616eb6e9bd9afe3d3a785a0483d8d8040a539294f"},{"version":"861a9d31892c0ad737ddaba297d2da8065aa06b39145e51128f385e6e40534e4","signature":"280817b28618841002d2b8e5fd1f8bd9b0a24cfffe8b62966fbaf40798df7fc1"},{"version":"8f7671f1e1b716675a19c113f78f44bf73ac828acd64678fa9216c48990e911d","signature":"5a494a61302de807a3ccf7bf57e192baf6374cba5cacc7a3f50c486295f7b535"},"7447cccd400bae27dcbaa0b36766e8e7a4fb661b4e71b9b16549adf91cf2a187",{"version":"7c420e71e62248d4c1642b5bff702554aa62ab472fca8226cafb1a4532dd8c9d","signature":"6f7ca2af2d52c05878ed3398a259fc2dd77e734200aba66b23b1edc1646c1632"},{"version":"6688986a5a23a5469a8f48e95032ea91fde38abe63e4735622c6603b8d46e354","signature":"400f2364cdb5bff663f0e6df85104938c071020cf608610ba4822de4e9c71220"},{"version":"5d863123a2a909928162c958a42f30200ccf7510e73522b3fabd1114d46c8067","signature":"f45542ebc327051cdd7ccdd2afca268874f3125f5053f3dffbfcb7f3f6f53293"},{"version":"15413117399055f0f959c1d9e2f0c9a81f1d812da6172b6bd0156a1c86f28289","signature":"9d00a60e074ff9075c56e6d4c0035ff84e3c2616d8a68d7e177c1e3ce8a784cb"},"6bd6cd601d952c4d659fd1ce9e04b3e26b53990723380b2e6c9e09e41c32262d","fb140a4234babdaa9c76c215f89efacc39c0f0eb07b90884e396459b644a93b9","07e305cdf1070f722871d0585dc15b0cdf9b5b9639f15ae3cb5c7aea22c63888",{"version":"b7162bd522d042799428274f6508e03b4d0f46cdcc7aca4c7ba4d2c53a5304f2","signature":"714fe049f09d0bf2f58fc33c7de9efec6a555196c5f5ea2e590ff0c1ba68ae8f"},{"version":"5dc30992f63f0141d95d85c1a6198185443328bd864ccf821c3e0f0dde375d10","signature":"434368bfd2d96f25381533b7964aa2ad5b700a73145f9f97b490da31d0d7b68d"},{"version":"6637bae5cbde8a1e6b8a01d843782d663bec20f9981a7c296d8f3d536297ef67","signature":"9d4e29298592a5db8d0b2af977915ed0bf1a3cab49b272c2fd225248f8b57b23"},"edab4a12580c4fa278c2a2c4e6b67cd1251aa678ce57d4523b1fa24a0d862b7d",{"version":"74750b347410ee72a2e6477d08f191495c56aa7562d5a97341ddace5288288fa","signature":"be0bd6fcac2dac0b464aafe90a99cb9dadc47c6862b5ddeb4f622f3ba86df072"},{"version":"3b0ab269b0ebbbc58d173ae09054eeaff2b1a645c0ca94ae530f9f9d84c34cb0","signature":"51b5db62d83a5555b98706593b419fd67263bfb852ba1a0432ba5f7389227645"},{"version":"fe6664fd0e2e7bea56b43ab01b57af64b7cee319807b017eea24b73193f376b2","signature":"c28456776c9890f6a7a8f59dada23f79bed5d866cc601ea9a2430dfbe2f9cd26"},{"version":"ae10546be8ffec5db357e0ac7578308ffc46e4db20ca63eb2fd40c9f2657a92f","signature":"142db8812ba1ac9108561fcc4cc886cdb921f739e4b3f163e3d346f9b013c345"},{"version":"35e151d4efae58e8a7733dbbda5fc82c1b8f238f299d0e5ad2b39be0af4b1ab1","signature":"ce7a6f246566c03574e5d620120b1cf191851c9bdc8fdc5dc74f575d9c6a7d30"},{"version":"b06581cb2fdc9bff55f21f97a8587d0e2efce9ad16c3f57e55f6c839165636c1","signature":"89e4b25b152357f1dfbf027b6814bec8fccdce154b34d190cea03e5054574749"},{"version":"b4ddbc6907fe9cd0b5bcb2bf42b7eff73568ef62246f5136f9027a39a570c855","signature":"fa6663a2866b5b4b3a84d9377e9bfc879f69751d462735e94d4a8a9c2df809fe"},"a42c2cc731f3fb2c37b987a8c1138d4596bdd200e47a23dc837abca60bc51ce8",{"version":"76a56c3d75703b32b1ce04594154517a4e1c8bd224d0a842473c86eede63dc89","signature":"80d1171656b808a02baf63e2e77035675456ec3e3cf3f5331df0981fba83e5ae"},{"version":"d89a10707fee6e2114068487b259f1e943744c440922a5dabca069c88f572142","signature":"2dab64760beb587b2338946a5815ce22060720d76b224a82a710934ee9c0b4bb"},{"version":"9091b8dd88f4e7e9088a9d055af3768a602b67ad062169d8232eed89f0e90bad","signature":"b30f1386b9b965f908bac6e022b4cfc6cf66116c8f4581c01ae77393899c56e8"},"40763b6c0af11f3e0f71e4401d3dbcee0050325bbad642cecf8d8d0e160ad1ae",{"version":"222774b63d35204c91eb024596c01e147d20279c04abf58a5bc1d3d7ae5cc2e7","signature":"a5099e2e418e8e08d5ae174f080af485426215feb4d23c41eaaec7ba90e02913"},"1f5883d8088c47e84f07ce34d8522e0d03154daee06da13e12aa22acf3fd39c2","fcdb32bfe0ab6adad3c2a4de7de4770e74894b6ab0a5b0e719f914be033d0fc4",{"version":"a7c70443f6ccd11f1fa5ab90134fc4f94acbd08cae7e7088fe6f9d26bc87348f","signature":"a0a8eaaf8bd050f9802801162d545450ceb564723675f08b7cc1445a23c00d56"},{"version":"185483d0ec75f289d933d34cfe3b4228873e2998f3a980166427c772f91294f8","signature":"d01665e7fafa0a39846cb376f28e93d465af53acd8eb7d1a904aa58fd4e4c64f"},"8f42870cffb537499183d01a175618f732be9ac4e584231a172ff035189d054b","ab8977a391d9fb707e969e754ea460cec6897522b759cfd192fc4086d13320ac","6defb5ff6c3d3b54861c70775715aaa0e7ad243b6029ef71010e09ef14241fcb",{"version":"dc21cb622d24a66caf20842bca99654621cce87ad689596c79b894df52887a6c","signature":"8e57a9041e6fcc888742d47c226ff27b56e7444bfb6344ea6e64066b5dde5aa0"},{"version":"971f6961f5098efeea05379a4f5615e02e864ed146baccaa77b91940e9aa3dd5","signature":"aa132ccbaa398fc7b031f4a3325a98b256d573ffb85fe72311ad9f4d1aa3f359"},{"version":"e4d52e44ccba6abd0909fe9f590a2ffb5ec29012ebe5b942ab7f7ac9729e6576","signature":"878570e16cbf3c9b04c22fb91179e6902297384e9bef7de45ab074b42d384e05"},"c89f3e7864f3a4adab80f8204884ca9440a38dfd1ebf6b2506352320ccf0eb8f","622370c36ff8f9393b310e5ce678363b96a8c896a9aeb9bb3defc96e779421bd",{"version":"765b8ae6b55023dffbb0ba2d52dd516378720ad3bde8b58b9f57105a7a7fe190","signature":"58d37a90fa475edcb4a3ff3a68d72574e94f51f832605be8ec859e75742b187e"},{"version":"cc16bf289c260a07b5d8612f0c6050d9ddbc70155af326c56608ab47b47fb059","signature":"5c40926ad27f93aa9a91d71f28c7d92d65bb885ba73876f27e3dab12d6c6c577"},{"version":"28cc901ad55be1098bab39254bb0dc76888099ff1a0a852d6cbc57d0b0c1b6c0","signature":"e3610f65e368054a8dcaceadca28b1431c2959f5d64a22926a9edd84a7381ef8"},{"version":"68b592a11700f81f80ef4ccff46d7a154eb29fbc01f547b7ce0f3f352d9bfad1","signature":"c00e080474a51865f96c5fef6c709be3cdbc9af0caa4451063f63dc041d8a7ac"},{"version":"f57c5941b5f9931bb215a6338012c5365ee1e40d04081b3d998c667ea9fde3e8","signature":"c319cab21b9b9a1d055399b6265e0e6bdd5da11a2edada15689d2b367ce56760"},{"version":"3ab8f5ce45600df7462c8a7a281d5d70951c1f54f96bf5ca296c6aad739d862a","signature":"739edf96b6e69457e6691b3e4b0880db12b34ca08515cb68a29d1abd0a50fb99"},{"version":"b684fda79485e0c0998874430a838205a763f275d9d32439f263a4082b36761d","signature":"da7147bd1ca734244f03c4e42fbe00de211a15618221fa3917916995992830c8"},"7a753c835fa624fb78070d84391a38255263387ae09141bff0319b1311af8bc7",{"version":"48b10b5853493c59d7fde9b774bb36bce1ae2f5f88c6f70b468de0992d251b8e","signature":"5a4eb1be4d88a25e9cff6fd50419a651f425dabf96f53fa01ad98f55cf37ac1e"},{"version":"ecb772cf9cf2643e41e7d1f9cb38859c44aeabe2445361e66e9386b4b3214de1","signature":"a9bd54415037c85f3d3fed8b56e0bc7aecf44cb0460861d3e7cb1e2363213245"},{"version":"0638ab869a0627429bd8638417cebb2a92c89c46df846c31742314cadeee987a","signature":"22f4b6f6ef686a3c021582ce9467ae17921008628de01ba4a179bfcfc3fbc2ca"},{"version":"8aa4fd567bf41152d40eae3670927a86ed819aa23cf21aa9f7070fab34e6c14c","signature":"c8291d1b97dffd17e101a11cd724801aa8789de5fe05bb569eade7ab839cfb47"},"c6955d8caf3cd67754182b95aac22bdc865195c8045c694c58e818e5f79ef337","38b43b4c2243b9df3de2a3645f26776b2f044b43e529fe5ec51e43b1466966bd","276d8bfcd459b40d817b8bf1ef8a103ac35619cd30f3685665e2f390ec2d7324","4a7c9107a956719d722fd3b99a2866c69749d0d83ea4a1d68ea64941de8bd6a1",{"version":"b44651de61e01f4f490b442d335424cc5d936f64fce35982b4568356be49b2f2","signature":"b9ac6c58c4acc2bdbd60ae66805943c69d84f76788da57298d6bab521a24ce25"},"539dde4302c3029dfaaedf8a610631acbd9b70620edcc421a292c9675f285487","68542bee02ec59b92fbc35f19473ec78fa2e5ddef192083cbe5d80f5434d6fb0",{"version":"3a553b3ca8f73a2c893c07815412dbc8fbef88f3fb4a255317fd35ff655794e2","signature":"1b1e1b59d24c2370492b3e6255dca245b416d933bb805322b8976b4ea1fcc012"},"458c698e0bcaae5b243c169d215ea18824bdb256e437ac8d27df2f0317a1622e",{"version":"6ef62e792baede1e1401bee2714ee98cfbc864c51b035c6149b199d0bf130106","signature":"e977b93bbc604177a92d32797818a65e8b0cdf305bf9a29269707e8a8328f686"},{"version":"a81d29c6cb4005544f34cb4c7902f5ee2d71afaa43d2902892c334a024377048","signature":"5052e0e86ec507a664d378f7f3b2836c7865461686e53df3f5fa122f4c0639eb"},{"version":"0448f5e85ceb624dddf1fa26dade5b8dfbd5be8e49d94d4bdfec05f4db7000fd","signature":"e81f913776497d85d0f3481e65d59cda78cd5882df2eb1ac85acd958e6707a44"},{"version":"e5ca2e3a0bbd1ecacfaca47fbccf83af6813d9fbbef7a93d84395f17aba196bb","signature":"c6b1fabf985181ef16a33b43ac0f749e1d750d67168dc44b8f2bbcdda14b1060"},{"version":"2d42d8135813267ff3242b455497836bcd46d436813656f02a09ba9f3fe8f205","signature":"73379faf12611e812fbac3b3d1a15f4fb772cbe9906a5e4869d776882db00768"},"613e78650c76538285f643d8934ccb5822395b2161e8dd54137c5a287ed760f2","2379357836b933bd3451730835540b1f9603ecac59d4e4b6a0e17042a3eeb410","2e7a8e1995d1a2c93afaf81bf380268f304a663e19301ef07c71baccae9b4f70",{"version":"d0a0cc53a68f0678830aee81a32312de8a9f148706d18e936bcc5b2949455ea2","signature":"e0bce418703b51550dcc526d793431809b0b4e2ca958064159bbc1d303528b6a"},{"version":"5ac174bead3eb730d717772c56bdd24f41e25c57830e9a8a3ee1a8b2a46ad015","signature":"10bf30f7a07d4a9f7224ec5508876b89f00d70a02172f900eb2380bb29dcc961"},{"version":"035b7153e06b2b4c52ad2b255a5cc4bdb1fb1056e494876685f5ff0a57df8c3e","signature":"2acc81f9caa252a105130201dc8526fb9c8b9901fdf5649bb3c44aeff7336bc8"},{"version":"831062d30eac46e107276a2e736e3868bd989e62306d32285c0413a5d922e7eb","signature":"e9fb7521c34cc0ec28fb72cd38d1efea3a874ebbf2bfc0c065285d92da3e0a15"},"23e9a7a15868cee5fcbf8dec2840e93630e032af63ff96ca8ca5a4c745abbe39",{"version":"2cc81c860670a11e1a25f9d5e44650714ec63d26c7cee51d6d4b3275391a8382","signature":"1d5081c001f515cc655cc649f04e6ca124fb2bf77bdb02358189c92772b0933c"},{"version":"72867e8ca08bc76ad30a6850dd8dfb611203349ffe24378930f6068a9beb7c2c","signature":"440c08f1235de7c9926a411a4fcc53914b82a369e74dbd5f0cc33b7bf0fa2fa4"},"94a30709defee13fa4e1b80e3db63a476c8a9968d4b26bd68156b286a343904d","3078f172a0acbe7b9534833856d733440687c25046e14e300b422d65814a7cdd","8f67a6d8c9df10c5b7baa84dd6d5f0c4b685892ea8d9ac9405914595c0251cd8","088eb9c8f789033ce59f2105f57771ab57c25d886ea0c0d13da1609d1af3fbf7","1db886a73776ae3ad7d11bfc6400e8b24642e6af786feaa3cc98979aa1cffaa3",{"version":"1e4a90fd19e452640249de20ed25ed309c68ad24e9c764b07f4f0e12b1aba5a5","signature":"b4fe2331e3c3d9f7eb97d5ee10e8d1da55cd59cab390bf7578942a0e4a4414d9","affectsGlobalScope":true},{"version":"3606f41ce41780e20b1af5649ec49aff125bde757c22e4d341743c62fb1dc162","signature":"c9b605d5a55ace4e5d9d9c28f26e86388f5a1263932b8fbe6975b11ce0c4ddd4"},{"version":"50f76eb608f44838068e92a3e567c04d31cf0fe3d9aa6bbd03c2e24f478ed268","signature":"7c69533de2351dcb47ce96d6f961c217d7ab04d49cdc77c63a26d7fa2c6069cd"},{"version":"85b34a2e768240999ae123748f53dd70aea5d69795d8cf4031e86160a96d4d99","signature":"2618faf2273008ce0866bcca6f8ad2741c642748c36ec7e4639597f76e86cb48"},{"version":"9f7d3d3068e381b13b211e8f687fd8873cbd603c17ec92520748ef05fd0b23e2","signature":"47327afd9397ee54cf86a2317a9685b9e1bb6c25a3c270e0773daa3ed00017c4"},{"version":"924d04d320d48cf06625554a354d0141e2611ef2aa7fb3c29f878b790145dc2d","signature":"cd5b91b028078d65c7a670a15ef31e26deed5611139252693562606a494ccd65"},{"version":"516f3866f1be30c45f23941b959f2e7eb31653f1dbd08119e7fc16a5564affbf","signature":"5d5e2986e50020b728e49f3a48368f42d515de4c578f45e4cd85b2cc91cf8311"},{"version":"ee1c9fe30911ca12b30d2c2594cd0cc58959c9a7e55d2139d361cb2d4b1b7219","signature":"570c770cec6e0db7106e13f6a614e7d1ff080a1eb3fd9555f48870596b648b57"},{"version":"518cc5e0bcb3c472ee601bf172b3bcc35a217fdaef4076f9ee6e4ab43cafb6c9","signature":"d267254d65a068de23b9c65429e2335841baf6342863338f0988edd6b3c56a1d"},{"version":"6ba1841d9768db0ceddbe13ae5fc2a14f223990e3b78df0efce8bbbf6ede8924","signature":"b7ec7769c9f525534dacf1da4060d564e272cfeddc21ea565e93853db300ea2c"},{"version":"c47aff7a5c1c6cd9a70041fc4c5ec8bda0cc33c53482ed7493d109d4c0660fc0","signature":"9d6613d45047a004d3125f0257bdcc2869132e928150d533f2f3e1037fc24395"},{"version":"8278ccb61a45f0b040f942af5eadc7e6ae738eab1cbc775a22f2b8716c2ffc34","signature":"caf74f48ebccd0fad863c3f9e9d13f529907188c61994f8312aff33c834c5d73"},"f57fab1742896a28beefed5e2aade73d2c024415254505b1c1ad8bb1cf0574a7",{"version":"ae348eca29287934753bb65528d14f8263b9be9363290c800c4c8149325e7cf8","signature":"314db3d5fffddd54295ac028ce530f42ad47af26c66e44c28a8dd2b6f345e7fd"},"5639e4af912999f9bc775e6485fe16c1594957bb1c674061b883e8cea07424a6","a103c5a02290739d31b62ccfc6c12b338a2da042aba993ea9911e30f1cd897b0",{"version":"b1fde087e7bd3ed2e17153f896961e953d254ad14e95e4dd7de8b8becf85f9e6","signature":"3fb75c5c730c0a112e8d997a5cc971e88c11519b0508d6a9e6bc604ea6262ea1"},{"version":"ebcb5674f02cafc3c123b419cd937b64f13ae5a1c74beef9dc1d6ab8abd62eb4","signature":"3931cdf59fcf31287e7a5e8bb926b59de650245be76f9b5915f969f0113db79e"},"2ef6c4a7fc675f75d35b944ac35fa54d9371e30d84f35b34c26c2698638eb150","d3d4d97048d847b4b516c53a6952b018f414dc5ee2e99332686fdd81d26c79c5","e88ac2a8e9498d81ce4a890afe13fa13f98abef3b1468d4197e59a91f984dbaa","f8a5876eac42a90e44a454548bd825ec09ba02b3b80a808316e584790b2ffe9b",{"version":"977e6381f5849c9826f2f99b60ced61e69475c6f74bb7ad5393a6a3dc4fbc5d1","signature":"9cc71bc66142b36e32cebef9d5ca8552a82e5793de8e4f210bde9cc974d6cd5b"},{"version":"b0033f9eefb0baf5dbc858b8048af818cdba298028939af87d5b81fca0319fe0","signature":"405db36e85dfa4263faed723e699f581954d62ee93d9bf89f930ba64d3dd4871"},{"version":"6637264d27e7ac005b6f4f5e87c97eb2f567b6b2944344138a4dc62d630959d1","signature":"a2b4221fbd96fbe9ea79d5c841fd46f89e48b0da6d3ff8eab7401c188c9fc4f1"},"d6e6e2c9521c16a6608f9bc3c6e763debf22b91abfca236d082a77bee4ee1c89","a27693132fa1c1a39373cc82b7c16c6c91cdc6061f9bc196dd49015a526e74d1","fceab329dc8cdf94f35628d3eb3b151b5756f6ca71e489da9865c6d2d91e204c","af3fd264fec0b39d30bf444addd3f6494e4e050d27215e8f1719f5fabcbc006e",{"version":"8da74fb7999512feae7a8e07031a698bbafd64480a8ef3b8141d216bd56ba101","signature":"a825e8126058fb859714d24493c200d28317ac5b9492c24d60f8308da6df04a6"},{"version":"2423dfdd93dafaf91ae16c60f9169b0a6f0dca601b1e11c2c094d8a6094f4fac","signature":"1d580ff6f5d46a4e010cd94bfc6aa9bd80c9a1d9743b6a966884fd81a95e7e99"},{"version":"774d586d74ddace30588446a744ac63fc496f5c31ed69447264288931937b70c","signature":"4f65846a90b490f85e45976646b108b0883676d77dede937877f889accdc3d5a"},{"version":"42c05b5a162bb19dda8fd79b7b32d020f2b5cd7f7027122dcefd09cff6b9f046","signature":"07a7627f719cd3b6cd24ef576a2a36c01714788951092fa76fd197dc3029d573"},"92872a421eb53c6f754addf5ae3a9819e95e4b7fe76d768466fdb8268ab877aa",{"version":"4592a5978622ac9c71a8241a73f910c15846e6f9fdd6eed93c3892279c3beee0","signature":"8e4f450bfa854cfe18d043cc0b71f4c94f3c86c5062bb30aea96c03e879d14b2"},{"version":"6b183b402591930341533d6f3485c7e44ceba37297cb5e5e8c23e5bb18ddfdfb","signature":"bccbd729c57ca4567f2523ea282ddef82107f1efb1a6a14a696d71d52ec973fb"},{"version":"c63c2e7a0facd58fdd70cdba447ac2c1f6e942bab4ad1b63f85dc6af1c3c57e3","signature":"8dce511e3fc725b919268d3175bc1e2298d2e9fa82bb1baeb41a0f984f6e3939"},"7b8d800b870fcdcccd0adb2363194d54a889dd4f1e4ab10eb4e41f27eb7f0035","9acc1dfccd0b35d36e8d132998ae609181083337e9a873c0e32aabe78bbbacdf",{"version":"12c176c13679bbd7ed7f014d76f6f096ace9e627544aaccb70efd28e478e5eef","signature":"94756a69c7350679d78141397f077c1038172306e7141621290701655dd27a3c"},{"version":"18671f6c520e9ae73c6bd89d514412424e23d3399a3d65f5117569b494f955d9","signature":"5a436f5eb06245f7b8ba259964b9e1a32c0909dd6942c16960a0ff1903a83218"},"332d70518af780bb172ef3ed1e5245f83064e2f3b275cf4b538eb0cc6c282836","d06ec51526318d13c1b9a82c93576da74eff087f47d5dc70022a95d0ae726277","f9740688b8b43e605d4f754dcfc84b6103663672456578b9555f4cbe584e20ea","bb7d948b7602afae4f4dba17cf1536a7f1364a06a15457ecf20479f28df4c02f",{"version":"2ebedc3691d9375cc7188511eaf60a01dbaa1f769d72e3fdd6809dc3bec3bfdc","signature":"038dc4cb52e78e0d824db25df0ce0ba2c6569626ce4f2e163d69eafdf62eb1a5"},{"version":"2d98307a56bb5ddacf3fc8d3f1e311b565495cea0f5cd3f4c6a1b51661119350","signature":"917bd78df18d49a0525a73cfb8cbf6e0f48f1f810beb040bc9e424cc6b2a69be"},{"version":"8fe1309e3b0d064e9bdc18bafb65bbafc19f2fe730f9a976400a8893dbdd7803","signature":"08c6b2f18d61be63c7cf26274be6d2f39da176f2656d0fe9d93c83f119c11a23"},{"version":"af90c9ace1cb6af0e7733b8c9267f66b495a296748a6623bcb55116ff9b8c60d","signature":"dfe1746eed3199b7198f90a330e6a9d7a39e0f32ca52fcf7dc69d5fdc29f6806"},{"version":"f2f321e35ab2a9b9207039a9a01104c7e851fb84e8b3268bff19529030b5698e","signature":"1c17d366bc38ebfa4379ccec96186084d08b8a2918f6a1f5d9d9ab3aa11ce8d8"},{"version":"3d21957b8a97e2cb86e81224f792159b3f1cfa6388ebe02f9b19b4ae2f58a07a","signature":"b5bd9ef8ecd7a2928d8f769bc97b4e969c3bdba13dcd90a85a22d4a32c04ae38"},{"version":"8026a354df2393b2ba110fa08672181ab1d82e52a7efb2df9fc892a9dcd05a73","signature":"507ed41b8ae3e9d0626ef4f6245bafd193181af5d35a86114c86d602384d1de0"},{"version":"fd77a6bfe071c353ca854c8de8ff4d3eadd767eac442e2acd36f60db5ada3634","signature":"bcb08eeed1b078b913c3641e054099cad1d3aab18574639c5d2fd6e0bd1315d2"},{"version":"a997b6ff41865cb9b2cf2fc9b79626f55055862b034db5dfed2359a4f86630e2","signature":"db648b9ec3411fde9f423c021155a6e04ea49b2523ef3de334f584adfb0c4fb7"},{"version":"5a9865caceb1cebcfe55e15b1f93974fc4590fa6dc68cd12a1879410b4a017db","signature":"cc4e28b3a3b367d6387ad6e8cdef7d19c00d9b9b1090bd5257278e8a08522635"},{"version":"ff4faddc93a844492e02097b95efe32b156f66a53acfe33f22981ba256d5f26d","signature":"761cd76691658c1771994f90041d1b5bff2e3130c2a90439a4d871f6e9e94527"},{"version":"78105719635b2e5c25b29b2646861b37a3aedbbbc143e7568d15a94151349a8e","signature":"4fd7830773b159f4c7a23b749d86e9ad826ec2f766086151e1ed77f217355d0d"},{"version":"34a747351f0be8c68e2131afd880e2b7710611275a9ed0877763511d1b483ef8","signature":"12abe5c726bcc814a8ceb2d10e8d5fa18c23b706b18e427213c205a3ab473a94"},{"version":"2701c811035dd9a0772b8c62d69c09f1e8dbbb53ccd90a1fa3d74cb21a50bf38","signature":"57c477738f80fec1bc9a8ce9740f2bedb9ee092570502af605a7c43942454e59"},{"version":"05d78286952daa86a448b5ff9d99b0bfc012ba0460f3f3c3261d631978db9905","signature":"79984e616df80d341f65d2f7ec2318b09974ea3fead5e10927ec370cb6df21ee"},{"version":"bb21f9c10ce7f5142c4e90016b49236e40049c078ff02617c395577f60b15d71","signature":"933d0376d68888aff966179d4f8a6f1b62ae856849b76ebf6c5d0412e0b5f46a"},{"version":"20df82aa3682c5b564e8c3c9772d4f3675c1656fbd56f03372454b8063800feb","signature":"23ad5e8a3f673710de0e6989cd52c87e9537da6fb43ccdb168ebd9b86ac8493e"},"e6d7176222a007b1e04074018196396c56f06e1ca62e70a7af72d43cecde3a53",{"version":"ed8a37256843a2c05c21682916a8e6e59ac9ab79eb6eab75d5249bda46a81bff","signature":"a517dd51f66abf88cd440f87c44f9be5449dc052527b74fb82d0c974f9b31784"},{"version":"1fece898234629bc6151cdb3db61bf517ae38aa5b55a28ebfa951ed911047b50","signature":"0d11ec476ce6b22f9775ac57973b46953bacdb84d7a4988a71a04ad84954f35c"},{"version":"e25049d6e7a8b3a667217d1e9616f98f5312b7b3919865d56510977fe87a16de","signature":"2be33a36bd2cc1e872011176272904e5661d3c1443fdadeea8a8d663bd1bb390"},{"version":"50705bc382c3c7da4f22eba69e9fda50c26ec43366ddc8144400a4839d075f9a","signature":"4c93df3818cdca080e5c6062a8e84785216697c8b2d1b5e7e8749962053f1ac9"},{"version":"ded1aba68a3fe4fdcdba337780c0314dbebf6983c904a0a8624e4a4dac0ce68d","signature":"8683f55369c0872a563b5221452e725df1f9db546af3148058bd694a19d7260e"},{"version":"3466c61898bcf9cd0dcb78ad99cea1759012eb5e921ab3ae7a21d1a048c9413c","signature":"a6fec6bc505eab3e3fb006ce55a65120003e9b7cd840b4843f7684a4ec19b55e"},{"version":"c912cb035d9504aae9bbebc06073dd905a189150de21731a069881b1453ee7f1","signature":"b3d40b7a516edc48fa01eae34b0fe392dc023252a3f6fe2bc01a50caabdceab9"},"6fd3801493a58527b63c722e5a0055f13b2c5da1c0d519336cadc2870c50e92c","65404308be5394c6da4366b594ded1998c53be66bb0c2ec5a51bcbf8a4f5e78e",{"version":"e9d7ee9eea2459ac27738c7b4ee38ab8b4eed5ea71ab2b8d4508d56efc4ce50c","signature":"3b16a8989321d5e0e23ece47bacf416e4096b4d087beffef2051f79a396355e4"},{"version":"b29b2bc1baa68739e31ff9bc8e0140a6dc25fb607bac114aa89849a38ca0e8a2","signature":"fe59de708eb731ef4879656e8bd768728bcfc2427dad27274972074d4a83beec"},{"version":"96bc7330cd09ae8e952087169cd40573bb17e816dbfd0f15f9d72c453ab04cf7","signature":"320ff1f845223d5f0810dac313ee8e7ed643da34eddb7d3e3a989e73574c3826"},{"version":"bcd1390e35a8b9a370dac90e6235aace9693cc5db70116e34eb6537c819902b9","signature":"19753691c63a15d0e5e793dbb41e96c881e15cff912cba054542be0324696458"},{"version":"f8fc11ae072bf2742573b1ad096f564c973f58d2fb4de686f147d067dbad9fe1","signature":"ee8f13e3f7e8c7ee8b38b254edd1455b1b9f50d27f9f702166ffc79b01590d4e"},{"version":"addc78a9f46300147d86ac954d88bdb53ab1805ac136877c016e255fdcb8fe52","signature":"49baa354dea7b01a26eea9be1d64f4ef312fb66cefbc03467a2082c6a9870f04"},{"version":"0ca82b8d984d583dda6689d037ea75f1781e1fb67deba2475041d2e4be1c59f9","signature":"df49409ac1685158a79b35ce5ae8a4fe48722bcb7b6891c14646f0922a856b97"},{"version":"46090ce9c355a7b43a8c4dc07d94b330cb0938c1e6e002817aa127111c25d395","signature":"41177be87b9602ba6dae0c95c7274c10618770efbc6d362dda82e16ca0c50382"},{"version":"9d5e4c9c30203d1bb06ebf38b86ddc24517c15caa027eea69ce241f3904e975c","signature":"106abfd000d6103b89247640170ae23690ee2420057f69636edfd027551ac792"},{"version":"e4181798ba26217504af89bd22d73a5e34140f94993c724f4243d64a1b84b911","signature":"4e9bb7eda2d6c8e291ed43cc657a1fcc60371c3b865b2bbf47d0728828bffd84"},{"version":"89c9b81704acc3ff3f39b3aaf3fc769d57b9c1694adaee7220f0bcfc5e2f2954","signature":"ad81f8948589d9b435b27a9369a9a8c03d3e1bc919921a7c076b82591244946c"},{"version":"27641f5606363eff1106bd9d484fbf54347975e309500faf369cc55644d65b56","signature":"8c9bd0fcbfeb1753fb5c6e3a43f597b71a07b578b4d132b3f18ccb2a49b71495"},{"version":"ddf6f5d8cf208a75b811f2b9a7be93f4c761e91d83d2a557159b43c82f1d05a3","signature":"c677ac0acf1340ba381fcaf6733608d52975456f2cfe194fb07e4518d4e4c27d"},{"version":"3db9505499c07a6a95bf52e47f3e5f7aab873e1b24a94e775be58ea3f426ac4f","signature":"d3cf482634689014b34eac6daad7dcdadb6d2f1604bdf57977e0c1e8eff686fb"},"4ed333d57ff8b6bea0c2e87225b2632087ef8fd6a3d2381dc67990c8d035f987",{"version":"94da258f0b69b21f905e537c953a3a0b7effd4a61f3e9890b55fc01d4ba0c64c","signature":"a42ad046657368e34410b3cd44e1a2f966c1cc141cdf79032c1ef0b2b89192cd"},{"version":"4416790b4bd5dc60faba074c5ab9584f24c88e1cad49100f117809d8c513d5d9","signature":"21aeba1bb953320c300cc48b62e936574b6213f72f1c73376a08341bfa2bda2b"},{"version":"65105d9834e3cb4ee24f8d23156cfe1b846cdb212d1ad81215f7dbd97f3dc103","signature":"594dd2b99451d70d54d49294a0d05cde72020c4b4e47bd5730da677eb08bd6c1"},{"version":"aad87cb3b6461b726935261ddf9e6cdcf8f4b9e7021584d41731166f32c11a38","signature":"d8f73d2c79187b6699222c9393e9fc41c95b21e290f2bf2b241c633a005b9403"},{"version":"be7c9ef4984d311de7b614f3e9d9eb174c069038e5fd55492af386b0ada7a80e","signature":"05797da51f825350691bc0b1136314fbb67f78ee5cedaa4ad01ee7f527492672"},{"version":"7ce018e202456f471cf411abd2dead754c478c0cbf78c462bf180041079a2a0d","signature":"a850507c9d6ef0747c366652337c35b1a4f98363e1290f1f4096c851626bc9da"},"b1591c6f291da1a1d7e1cc5fa57fc0d4c85dc9189110d9c1b7828c475dba1933",{"version":"e3ac43c23c412e0069421d180be7bb62e906d7b8feb4a22ef89ed8584b27027c","signature":"1ea080724e918747afb1de2625ad1b4fa0b8d32eb8e7879d351166f0b2a14edf"},{"version":"32780ecfc010e46e844d29e3fac6565b6c7ac01f183ef48fd6c7b6d48527c101","signature":"4301613f5a5d65ddecb2f3ad6a2591f3fdfc8f9dc0f80679ec7f4b051793bba0"},{"version":"28524d6f59fa6912523b299f748abfb6765e1242947e708007ba0efde9e92553","signature":"93a8dd71e3dd0a32fa0672f38d47c642b5f7b903deadc0100d16c53ee46656b6"},{"version":"180c48987d5bda19e1077ad0f6f064380c81452b2170ef16a489552858e90b14","signature":"d18bcc4fd4c9ea04c0ef5a27288b841bb5be0551bd661cd1feba762f276de6e9","affectsGlobalScope":true},"657a48cc2fb0b25e6dd9884fa1a807c894f42c8dd4741c8687ae40571d5fbb32",{"version":"f2449cf43180fc18240f51f0f520a90ea978b0bbf12fefff027958e88d8a51ee","signature":"13aff7000e6383ed5c02c3f46fb54dd15950d1691e1dd6018dcdea3ad5e3cb6b"},{"version":"e4cc071d25a1579b2ffc306e25001f7d34fe25d0cf782d359fe1d2a7edcfe2ac","signature":"7082e479404c6f8125885ce924c09fec1a3ac6e37785d9ee7ae13c5b2a41f155"},"82774b9aa90fb12af4d64f7dc56fc32e637357bb4539cc20cd80cfd2e3a6cc42",{"version":"f835585a64b0aa1193d7ac2b8192147c6e1c0133166cfff99f10e91ccb0dd999","signature":"f7829bb1b2554ba595637d94f9d9f2edc642794a603416fba571864c568ee4df"},{"version":"743225e8d6195dc4de03ec194f5802120b3e46dfa0a8f48f8f823c8338ff9cd3","signature":"d01a4fbf118c7d8b26a3d234aee7e191fc404108a9ae0a6dd1486f4a9ba18875"},{"version":"6893d2c7d35176765d2fcd6245e5701383ce113019fb55986bc1e711c0bd6c1b","signature":"8c5f8e0c08cca12465c3b4cc41d79b324158aec5cd60f5186ddbacaec8971230"},"f301739721d050f29a84d549e310e42afbe74081344980b8a1800ca9476162bf",{"version":"669e854108126d21b42e82eba1491ead7a1a603348d2dc2e0e5c2d7d093d6617","signature":"53750618554972cd258a0778fa74b8d8bf9500fab2a37f1fc5e9949c6adb134c"},{"version":"0c4f67ad7a5fb2d0131b4d107a692386688e721b02c2ef65b9b1ecdf8161402c","signature":"477379a5cf35844f64189f05e863547264bde7c86d928c370c8ebc204132187c"},"ee0b61842b96bff58ea91218a156312da366c7ebbe5044581217993474852a36",{"version":"df55c0a788619ea883bff49d77b617a6493c62e33218905bd9c3d54794562357","signature":"866d2b44f0da6862470305e81046aa6e7149a58dc19b03526f494a03f7a1a00d"},{"version":"0fc07adb0086e8e8feb2a5a716e50ee0d9c4541c35b3e843fe37f5368f2edc03","signature":"7d5af243485a9e6328564a74eb23482d3c876a3c4cc888e0aaef1a4740ba205a"},{"version":"cceb0eade9c8ca70d6472cc0408f35bc79408285b3c4122f5649b1a76707066b","signature":"6dd50d5d3e9baf88c04c4d718c0d44cd8fbdca4ffabc3f3762cab7ccd34de210"},"a5037ce6e0644ff3f4968f0ecf4be1b3c78a9b1dd62f30d4e701cde4c7b5ea9f",{"version":"c1cc5826c1f71f931e94e34dc56f0de322b7e828ce0a2ea9dc9e65ef4d805efb","signature":"d099c86e4fcfa677b2fc45ef0d7a95e8fcbff4ce131f6ae5ea430224a16b03e9"},{"version":"08dfda58011a22121283fd9097377aa07f76be2e050c4ff455e8c67aef1c62f1","signature":"eed751dcf7d7a55eae98bcd10dd1634e42fdcb165f0e4dc1b493afe321d64097"},{"version":"165bdae8db3f9ebb2a214a9bae1957c73fc9d77bcf57346a8cc4b455154064a1","signature":"1ca9d4a75a87baf939b6a479b7bcd5a2792bc87875c52fc34e20889997436635"},{"version":"785ee36dd87f0c336aa5173f02a39ac2cc74b56df8939be9204c5979624926b0","signature":"93b8cea3a71d6ad754b44e599c3cb669ef181a37af871c206bab078ae4918ebf"},{"version":"9d44159939ba8ef032edca94b4ad3b14067adffffe5eb1ba35f5a8b63cd41aea","signature":"57270b3a6028d695eb8047f0283e0f40624d69b2eda03ceb72e9b2159cd30cdf"},{"version":"763b9b49066c955aee144264afdceacf143d825eaa01e68bd115234782e10eac","signature":"167158b086edb05e178474ed0c38aa5a8e34ecac83ebd9842df6867e336ee435"},{"version":"8b6e91a733879f3687ba03eafe9bac489dae55a1976e39ca54f0564eaaeb5552","signature":"39bb3e09f7152e59a218f8eac2260483ead0e0436e3499dfd79cf4936a2cbdda"},"daa11741aecc1d837664b378514257edd7e17daf173739a01bec28b72d1bfd7f","bda846c239368e8c7a449bbe9ae26906c2e03a991c119e3d9f7114b0db69bb8e",{"version":"718614c896013294fa0de7a3605d799444911af7e134333a9eaaba90c9f0ff80","signature":"3752d2edab77bd1c396b9c9ed6ac520b30b4c582598df4c6652cfda986c8201d"},{"version":"728ddd70e43de10345f9004c7f8ad9d30dcc59f5b29ca3a22963ad4125f27112","signature":"c64c162dac61a7aad0ff3fe139dba8b07f2196e3272d24b93b61a85ac99e776e"},{"version":"ae36e28325da2d1c03ef0895de7329449aa6614a7d37314fbd6026d56155a1a5","signature":"1e5d7ae425d6e9fecb2e750938f49f95bc05924262f444b3224a18c732e5ac1f"},{"version":"0e1c77021e928913e5d7de9f7c502bcb1fc592141e36329d0b329334444ea1ea","signature":"46199839734edf0e39717e53717ceed73f97599fde0d5415a515e3f877a0b9c5"},{"version":"4a83c91c55456a5e167c4bc5c015a2107bedcac6f2a6f449744fa301bc16a419","signature":"0154f9a1cf9a1992fb0d165ed4575f36b444276e018a773beb9d93462cfa494c"},{"version":"b4d732e8f0d1f0d52c00161ba2a743df7dca8be79799305a0d12f6d623c62752","signature":"88abd4fa21a51b946f7fc1369ccf22f8f7e1d80453ada7c59ecd9af7371c5ece"},{"version":"60e3b8f209674bdb7911238eb16834b780d1654ca8ed37a58e811027b46793df","signature":"828c6de9c72007a3089ff9b9dec59177e5c5c7014015d081eeff2f33a79678b1"},{"version":"d96c6a9aeec0d005b00fe68fd1f8f12e443c4cc59c0bcfeb4010df0929c80308","signature":"7885f4d59307c95ae739d80e01a399a3cc218c5cfb1e05a9da50560c351ba1f6"},"c0d15854bd743e8219db33c5fd756d6d01aaf8388a9ff8e345e98c4f0557f255",{"version":"53a9f38ead58912e453de10f7a4ad659b4a40d37e2a4d2806858c806001e1d41","signature":"e00ebde1a5c4740cab02ea2be813a15068067b87b33bb00a51e67cd9fb64bcac"},{"version":"0ef8f7309b84fae6d8146a0bb9d7df7edcea12b3e6160ca4dca56b7f6f274a02","signature":"7bfbc92f28d05fbfcc3beffa5a44b6cdbca038c0b8c879b094073d2e605a4537"},{"version":"959e1234539135a97560befaf35575488ae35075c0599961ea2084ace1ea718c","signature":"5eebb468f3bad3b1849e3e29594ef2b3d4b8c03d163ffbdab63e2f0f912335d6"},"3f9653aa367daef33499b26ae5055e6e5fc4d097b63502b324ca5e0f8d52c15a","2c146dcabf7d7b456fe95feeeee4c27a0516512121707e2bd9fac59dc34ecc8a","9aee79c055b4423f7cb5c745c9b0041bd16e5e6a5be9426f634078aeb07f145c",{"version":"a5900c1098c16f18478899b08797e3534c99c706fa29f833eb3adac156086913","signature":"d286da1bf2a8746e62cba92d6519be2d7613eaf851b34ec7d59237aa0dc2016a"},"deac79a2b93daceadb5ceb974e02de70cfab540cdb8261c9aa22cf2ea4d236a1",{"version":"2561becfac266752fdc1b8d05a458df7d1ac57f1239f7e9b8323df12dbdea852","signature":"df0c10b82869089b5e451e7b38f75782ce64f635d12786b1259f8979273a8f90"},{"version":"3b4ac29151ef77e075662f143ea8c82efec626d835f0011e5439509e3e61122e","signature":"9d782638e5eb22f3a4389b2287c510ed5e2ae5e9b21d21d52abda8c8242c9fac"},{"version":"583ca9cefb4e071505ba45d4ddb591e9b4b61605e13bd8df660b2349e1a90f70","signature":"7e230fe6ac5e993594f894edb335b3505c612122274f82a329c805a3a5d99e62"},"538b266b2f094c01a6c3ae3927db50231d23e8ae0be14c2eec5c4d94ca5c5d75","9803c2fce9ba14727526fce8e0135b439c0df9e7af6837cb0c6167356df16c8b","ac3e83486eeeebef796dd7ec2ef4353d3d024ceda78ce2fd8eb68ce6b8c0c542","1b20036b1b11bbda138c7c5a17233783e8a758708201e1601ae724adc9aa1296",{"version":"dd93c70742aa455b9d9fdac14d2e45e52c107f4bd46ff68e54d2ab00c5b5b208","signature":"fb3a16b0bc67492104798914175e95de475c6b7285da56ce811f1963d6b37864"},{"version":"7e0e5a8e7124613f812b78298bc5b1365a5f8c1571cf4e4fc67742ef3f7678f3","signature":"e6588912c51f370e10b393465c6a61a05c1f4265e545c34782072eb9039dc97a"},{"version":"e2369f46bdad851a0be9aafcb6bb59a95fc542c9c3361b12915d92b221296ef5","signature":"6c5acc5707b51209bf9594baed0a41c5a399659bf7e33df43355d2bd4cbc5558"},{"version":"e7e67b217b8af5b9d4818f1b067b831cb97105d21b30605c0ffbf9e44fd40d04","signature":"96d559cba68cd375b8f33d7d99159ab739b793e371b89a475594533d81d0a274"},{"version":"dbbc73010b0c54cdabd547ec196ad7a0e6f8ce7935f76072072411fbfd31d651","signature":"8c537215b75564a44f03431979535c0201dfb4b79ce3c561f8f6144984d1173c"},"224e40202b9e0ca82599a10bc992500d0ed1c06228ee3d1587cc5edbe68983d2","17b05c5486114937ec69df6033b4c6a77db91e91e41bbfbdae14ea3f65a0bc9d","d9ae07ee0aed0711ee1a98f902c1f24171e5c6d6b4f8097667bc4c030bcfd43d",{"version":"23eb01d92413e643b5037b2572617c338537a1796577bc04e7983691db75cc40","signature":"3de6f77eda4a3db3fbf2162d69f965e233bba2110d7ff044709c4830276c02a8"},"f3e92df35454aaa1cb69294c53525649d64bf4b8ae3de7fa9baee5e373826911","b846cd3187f4fa92574194a6887d34b3e765c45165bdae0b6e5b3b99bd56a4ae",{"version":"47bd2d8007b3e2fa0c28a6ba4b702c10929265dec691c0ff77f16e6f6fe2f000","signature":"e128920048a26d9babf545f1ac8a13de8b1ec95139e785d575e17fdd198df57f"},{"version":"ef043880f17695ae530d723e7059241016bab15e6857a19e6e8e55c6bf7d19e3","signature":"17927d79ec4e7f35bede69933657a50934d2b1d63b0dcf2f63794cd506632aa4"},{"version":"0fb0b0064d25590a79d15dbd91345fed84fc5b9c1dde02494c3d847ba494e043","signature":"38425c00861f2ed7634258d82a13499be0dbbd41011698b6411dd2b795cfe9cc"},{"version":"76e5f0cc7ad873f950dd52b30e6c6c207dc2830e3041db6a05533128ad8e0122","signature":"c1ded715aab735024d3ff042451bd4c2f03af234fc66e3305ada29e00f14b1d9"},"abe6cdc42849a9fc5006c52b46e27ff35872865e65e7e1afe430fa30b5642763","9ddc04cedde691844195f90bc6612c817cfaf9ce8f336d6e925a60f1ea007f1a","23b92d25c2280601b1e6a9136bf093352e486154840e6ceadd479d582ab7f18d","f64305e22ac57ed5fb2aa957d178968df1ef210cb48c794ab7f04d35f1a8bdd8","b27787ca848062323ab270425b7b390c69e67dedbf0c38f3a9f829d299dbc37d",{"version":"0ad0c8074cc66de55b0876142474fec6c2da05b148540560a33498dfab4889a2","signature":"8ce11afaad39ff4015d5b72b25d12e70849fee40b3863ebd47f12d6033469ce0"},"fe2127682035c2711ebdb2c2b2af1b4bfe30d880e279d0cd73bacb9c47e83662",{"version":"600a1ae14bc14d8cf0b86938ae523ded1c10f727829082266bc20716d4a27a22","signature":"968aa9bf7c8f47d252f705175f4ad2b94f890c66339f5d3880e3476baf3e7d8a"},"624b33913c18e5c99bb50163eee867ea1e62cd4c1088ecaa87a8b206b913785e",{"version":"7d7a953d1715d281e25e11eb1ad36ff6b0f5be16a10dc6cba41afc6010b0d673","signature":"298d3e2306beeb9f7f3886a980ba0c109ea8b84abb0cb6fe6aa5a427e0efa9e8"},{"version":"c80d697973fa6b228d73f4d3ebe6e69c22d802968bfae1622e6070e06ae48a64","signature":"ab1bb044fb0a26976b1bf7445812f94d9f241459142f7ab696396729fcdbbec4"},{"version":"5532349df1c73dc07484dab4d0951c2f21473e8cc65f9235bb50357ab766457a","signature":"4d14fd3ca580d6b75ff68d055bd459b77354cb9c32f9396a536d7ce19f4260b9"},{"version":"1e1ab0de9bc7b991958b6fa18dcc2282472884c3caadea1ead5c71f484ff079f","signature":"1313147a5d68859b27b47580f819e5bd0ceb9faf3a0c8b5a1688da530f506aa6"},{"version":"e04c3c1ca7c02065079d8421b787b8b301750fd8a427ee45e7466b744b4e92e8","signature":"00a5d6c26d3cc78bc168a6043994edc9fedbf0ca9e5b3c0beb04762f37084eac"},{"version":"5e7c3c3cb5ddd10b0295768124fca237b406e42379a8260894b575e25ff5c28e","signature":"ea424704b2f723cd9e11f72ca90dc2be6f67a1b81beb27004023e24c085ee095"},{"version":"634c6614e17b81d8012edf7bc517c9011a1f878e4f8e1ff32b9d7ec2cf104c01","signature":"ff92551e02d26b6c9460f40887176214dc8688a82aa9733dc72343636ee43016"},{"version":"4b2564a87a1bcbf798a5b63793a08b5afe9680ab96ab6a914e3408b3c2ff0aae","signature":"83f629147155e273e1e7c60f48c3c14456eeee440c7e22f29878d265c2822bd5"},{"version":"5d25d19566be288a3c975855548f91840f12695ebda4bf6bb8b4f2dc1894e8ab","signature":"138aa942a38403c1c39a4089f76ce8d74b553c7dcf89b8b3fb4856f515bf46dd"},{"version":"ff4060ab37f554e80711d11706cbdceb3e07b3d0e6c944a085a5d66e3ffdbec6","signature":"f1527646c02e95abef7faa2df76ef2fe78dbb63bd0e7b07e8d00ae279527e4ec"},{"version":"737cdc2213183d18a22c019a40d812848f4e3d268f790da2e4e4bf3be1c4b632","signature":"e4804483dbff1d0dec0b8050e399bdb8d2512d97a7c9319a11cd87366b309f5e"},{"version":"0fa3c6d821a4589c1c47cc66e8473233bf7733262bb594cd390887974185349a","signature":"0980d32396b46bab60380d106a59fbbbbe7f3ab24f5609b59806ed6544ebfe38"},{"version":"96bf849ddaca3e9364ca8684f614dc38ecc4b7a704de65b674a03e6525dc1867","signature":"4e2c5d7f734294f3f0c35070879a96de86032b1b4cc5aaeb436a3ebe1993e261"},{"version":"4f4ccf338caf93cefbb182f63f00b6925632640c17c11a9b2aef7a13255960ce","signature":"7b2c66e4419c229fb05d241345a53fe18393d5b4eeafafea1ecea1a620433be0"},{"version":"c31a932f2822a98a59c9c889bd8d32e9729b492d1eb94b9b3835073ac5e4a602","signature":"9655b94234e1f65b65ae3b72093d464327f655bcd0e5c70215e2eb1cfa46832f"},{"version":"27d9403f2e8d487926fa61e374edd0750ed86367b8515a76238a6eaa7e7f8c08","signature":"fe42c94af59e5f2ecc0f3178ec0339cbc7ebef502e5055df494b79660685e43b"},{"version":"91dc8598533149bf752a57e7a9a8edb18a57866c66689bb6cde9214ebf823ff9","signature":"88cf76589b4e88694883735a725b16efe497b013e0b73f34d3641e46e4c2e503"},{"version":"73191059c737bde0ffef1fd0cb046932af6133136297bdb9fe26be4c3e006886","signature":"208eeef787f9038a7a0caeaa5c3128989d814b3900c302a49e6117046e625692"},{"version":"687cdc39b829c0df1d6a6bca9bf55aa8f03f398deed8dcb866eee917a9e37049","signature":"8c31d45801c74757da7b2d63243b36f81b74460e082e3d5bbe666010e97d9d4e"},{"version":"261b7b6b0dd3f6e7a7ce522996f7b9107ef0780693a76776d247e0798c9e0fff","signature":"942918474d5d34ab2da3f3db2f93e939eb4a02f507d0c60386ed4ff31830f58c"},{"version":"283eaacd975126b013f0bef494dbfe647f9484a1ed6422e206f1c7df7e1b9585","signature":"387626bf078b93db53376ce6fca1fa2891546578dff3fea5901b6612d3eb24a2"},{"version":"04828eb6929b32edb3277cc4eeb861df4de8ef3941c3cd185b04f048719d6243","signature":"b746ab85c941658fc16bd613c67c7674fb8b37fe1c938d4e49c079bb3ee7e404"},{"version":"52bc4e661c93cea47f698b9aa50197e702ec83c7055f362b44450edbbb27be9f","signature":"ffcf60f1d27122b40917167fa18d30c16da3939bb8dfeff1f7fddd4cac284649"},{"version":"7da46210e2d355b881f98aac40d6857a12889a77021cc30ed56b69d14005637d","signature":"cbacfc80589a49203c58943d032af9344caf83c74f7ab8b4fa38a4be29294a19"},{"version":"d42f44ea036dcdd5770c9e5805d0c0b946cbd8c3232730152aff54b5231857dc","signature":"4651ade16932e48023149580fa56d13bcc06fcc7f8eb0be3a658188f66fca51f"},{"version":"20d4b5159aad7f301845342edae5e1b18d3f1f145c5bfc6743ab9314e4996588","signature":"8a133165c94e27cb8ee36aecec60c20df1033aaf78230d3e1e7a4d22a1e7d0d1"},{"version":"ea66d8892c5690a3c92d691c8f0469a339afcaa5fa844a5b1fdce76274aa6d95","signature":"cd5aaa4f35129276ac904418bf1494b0859af561c428999c0d11db09ed020d16"},{"version":"df17cbf18bde4e128ab7f057a1cff4f0e1cabcbf3b121ccc8f64da196e648fd8","signature":"a96a82d6dc04c14ffe6ddcd363f68d4f10b1822cc09f69b1f9a657f0ee9874bc"},{"version":"851f8f6b020d057f0d63b86bdaec7da3e037a0cf3b772fcf5d3b4ff69a25da2b","signature":"591623d278a80ebe089d99cfc542876428b6bd02a41440ac27e4e1dc211ab1de"},{"version":"a3c7b37e37e82a6c7526a79d4a72eafa05f6a94c617fe59a40e6fdea5d98ec11","signature":"8ca385bf39ae472e4f5f7de0fdc4e770266f87194f2de77f3e19c25ede167788"},{"version":"f1128bcc97945cf11c8352c5575112253fc54e22c94301e000c72525ca7a821b","signature":"30e24b7e264663ef3fed47072d24ab462dabd8aef8dc25b962756b92c54b4539"},{"version":"0e6d1582f5ec9f19c9f6b4fc0d33126c331098f5ceece4305a2a3731a90e812a","signature":"9561e693f194052edbd071dee76e268630c200940db8f41d951f538ae4581922"},{"version":"38f43bfbee770d9efcb68949852454686cd8baafd53b19c3755617b77d446dba","signature":"5da636eae576e1d85a5e790a73244760e3379c20c8fc36fd3dca86954ebe9acb"},{"version":"59d5659df9cda5cc3169fc70296e4f40dd6a1ce33e3c748e9bd513830c44013b","signature":"50c60200afc94455e7d94bafe5b84d26e1218c0c93f706902b1027f45e8f9cb4"},{"version":"5003385fda69ce38bfa9364c5cf15141c79b485bd5ec60f6ba18bf016382b06d","signature":"6abf4c03e0baaffbd57c44aac848579da997ee8df51ba2dd8f9b3155f03f186b"},{"version":"c3c2690273fbecd23ad57e04e6782faa20533be0189dbe3d62e7b5b6b3056098","signature":"af3ce3e4ddb3ff17eb5d736ce1562b57da9ee6d67cbbdc35ab8616218eda5b9f"},{"version":"aad6cbc98ccccf71f75aaad7fcae522b75b427a43a91d78c90624b5a76b764b2","signature":"5ec45777414f936274481810c8b3cece0d6cbeb9c5150ff8def2e1f027b40964"},{"version":"917b538e045522e24dcdd17a9e2f274f646ef40144dc9dfcbc5b4a669dc92fc9","signature":"61f2f78ef2e94af3e8c2db0ac6300fce02dffdb09b5ffdb7e546e2183430af28"},{"version":"0bbfe8e014ba918658fae48cd3f05677490d39a5935500cbe7f9529dd720d121","signature":"e004d0a65c80addb4d2d73ba95eb6f2f815613d31448e9c8ec11868354a45c8b"},{"version":"4b36a4c2c4968db28b73f6f7ad2712db8022fd6c585afebaff0ffe8864071ef7","signature":"07b8331c6ed4abfdbea395ef51d17af68bc43af65edecc481391f5fd614a2ac2"},{"version":"7def0a70221fc3b031dfcf233650a80c041251701433707687023995baee3d79","signature":"b70042dc1c2842c4751f5b38898bd91b30e1322b57cb14226a47a6982e697eba"},{"version":"d1b1a9a5e7d3c740af8c97bbe85a02175bed002010d28b499a5dc3b5c0acf037","signature":"1b4a2666c62bc94be7d7e895cadf6b436892ec4e36012f73cf7d08581617edce"},{"version":"9ffea69fe2498f62a5274ec523fdaf6f4ceea4b500d62e8d3d2909e968742333","signature":"049f913723ed06832b662d9ef7fb200b86dd38bfaebb7c3f6d75b033af9acb72"},{"version":"18830da0127dfb4e77f094182479672cbd40d186e5006c81efbf09fbdca0e71e","signature":"3b16fb538e9dd4d5b0016e7ea154a50c4a86718556cb8a4bb78ee35f1c2bc386"},{"version":"d24b80a59bbc04e2b03f707eddaf0c605d7632ae1be08061b932ec4143f2bf4f","signature":"84881d555a6025570265face1d3f4621fb859672caccf10485161d473adb8e64"},"fd02386c1ea0d3438c665d5cad7378bd7b55175c55b36792bac077bf4bdce55e","3f00fedb75412ef4c0d166e35a72f2a382641c7ca506f77351b878449889662e","4fcb15670ade57aed2aba0059151a409c7b09183163cc20b875fd6ace91f9b20",{"version":"fee612a2b50681472d6fde8c312356619edbd6460bfaf7dff8abfcb798e6d3a3","signature":"4df91130ace34a640c03ff72595728f787f54ed04c7a23dd1fcffd182fab1599"},{"version":"44ebfd6e34d25ceddb44d1a0f0f18efc35df40c4cba9d542ff37fc6b439b0bf0","signature":"fefb45b0b3dd3515fe356b30343754902f29a158eb01aa9b67749ea4ba5fccbe"},"594d04fe27666c2f9184e0ce4562a615a8ecac377231c5c01e4bb2900a6217c0",{"version":"3bbfe8e9f2a52e0869c1a82da8f52cf6055c89a5e86dc277413e98588b1ad981","signature":"c5f4a8411ca89c36bc4dc6797cf0af91adde8a7d4f9bb68cc7ca2952f003b1ee"},"8364d9b0de4956f706f3f056cb67117e601c27653ca8828f04e18bd015e7a5ce",{"version":"2d5366f1be2a660ab72a084bd68ba257cb4fd5d25a716c273551b9ba8f1aa8d6","signature":"26126b18f32bd2088ba75b0d2227a7136dbca231f6fe816574f100965b70fd32"},{"version":"0c7228d6a87e6493b025bc76e92e1eb5cec58fedcb8b75a61ab43e8cde0abfd4","signature":"56f9ade5d43307fbb782b50bd168fc0eb42916d64852d0d94f7fcf35a94bac19"},{"version":"b130f4b622720cc34de5a2b6e91adb273850f3f8cd75b5b14fb81f0000ec66ce","signature":"ae859b9664f6b5418b146224d7e582b43b2185d1e47ba5ffe7cac5ebe43e9902","affectsGlobalScope":true},"e34c16415e480c9e95df35c695bc7b7d10649644cc257a6a1fb1dc725a52980a","335d44f2925bdefa37322f627b9405f2199b3c340478a3339042295b3c6e06b3","7a5bc981cbf4a73ac278e69f01102291aad486e5334650863fc56a5a9d49995a",{"version":"d971712130105e50ea375e29133e3ba2abb454ee351c878c45bbbf87bf000eb1","signature":"67617af2a1f74a0025cdeb24b2866a711cb55d7687ba4283ad8200b16874708e"},{"version":"b28d351d20b978642505976198ed4e6636404f778a1d269ab2b317004bbe33a2","signature":"c13b2110761d4b53985c68d6ba26a1da06128a6f6581886604433b6d8c219d70"},{"version":"0685ed0bbab2b791fa6f7307f4a23c6d5462a74d85b3d0ea737c1146b7c8cf6d","signature":"cedc462eda99acf01b2476377eaa8485bf53b290d1408e4616532a6f486adae1"},{"version":"e98d5cb53c2f27d9480f601e46424d0aad2425c1bab8db834152e9e9d9e7ff53","signature":"7fe040f9f107cfe333779d7cfbf5f0efe15cdfdb1b10ecc2f57ccdd6526cda23"},{"version":"744a19adf2ea5f2028f612ff34651d9747d2b3769163918640cc68a36997fa43","signature":"0d1256fbaafe18ef8895d3d8c6be4be998483bcb02811cf369d12540e47db57b"},{"version":"6ad05db84e7e88da70541f400bac001e5a05116e1d110a0b32e4147b90c00f0b","signature":"879cc3846bd5baa610ff23e3d5c65f51b8298fc952824805c883a42d5e3b81e6"},{"version":"5b4e8e669748f9448ff48334f29717f59b20fb14600b32b378574b208127c429","signature":"3e360a0a3b13dc20c95d0d11bb61c996236da6fbd9c93962cdf637798d8424f8"},{"version":"df2374dadb67c3c1382ffbe7981cc57cb1f43bfb12519b609faa7b083238489f","signature":"05c583c0e284ef10a6b89657b891a31a13d03350dfdae4d299aef9e90f7e908b"},{"version":"2cad9227532ea9ce3ddb7e0148f227fc78214d3aa81d538deae62cfb6870cfcf","signature":"b5ca447df9d72d99eb5a88d00536f2c1254a9ef73fbef2952981259fa0015055"},{"version":"6651e7c28cb6cb7621b0abb2776153d196f7f11f5f31fcabc4f65bcf88e0647b","signature":"a65d9dce8e21547fa088d6f9050e940836e3670eabdb4467b57cd60f2b31e862"},{"version":"927430a724a7ef0ddf76613f00219e19b3d734b0fa4c766d6ff8725f4761d214","signature":"90bc3cab2df32494e223de0fc028533a3d10e3752b8c5d68fd88dc9f266db72a"},{"version":"b5dc3e062296a6652db91903db3b2c550194413718fe8da82bf2eb1adda7e566","signature":"0d8b2c1f5e79d1dd25ac7a1e9e380c3f71799c257fd744bd6d080aa3ebb0f99a"},{"version":"07ff4f56b8219b8852637964a6b5392678086523f50d4caf4ba1b63f6b9ad4d5","signature":"4910d9d5b9447c7c8e23abaaa55d0deb1c3e08f96fbaca65cefb7e45b40b2010"},{"version":"0367e0e534f46426a954c8e44b2d72c5d2552a8763b3e4f0c7d3728b89dc0ef2","signature":"a86912045f104173c482ab0f6b5256828f01c26aab092329be358bcd1b196a75"},{"version":"68769cf47ca7c7ea82e487989130ae0710b92f792d2e78aa855e4f999f2caacd","signature":"4c79ecf9ba80bc1eb9054e0241a4101b57672b6da1619c4b66313452be5f620f"},{"version":"e57584f1984ac9ae229e963ac1a9ce325b7a6aa4b199158117f20c56d69619b5","signature":"e18e0ca17e5ebdc41faf4304d257a47cfcf65adbe393782a70b8cf8fd88cc2ae","affectsGlobalScope":true},{"version":"d75049d6766781384b7656d9dfe134cee80ce5308802045f6e63a2ee8c40bb2b","signature":"a1eac154e990137fc2ead0fa2efee1b83a23e745918ae70a4356a75a44489265"},{"version":"a53b2cdb9d9a6522621925fffaa65451544473e0f71085530271be953b8a863a","signature":"7e39a2d7dc2effac52b8d8a8f295038adcbd00b629223a2463c98a2c5e1794f3"},{"version":"0b071aa6e037933603357c4ccdbf408985d17aa22edfbbc4588132bb824ba419","signature":"a202aed7d5869f6abc6fa7d46cc4630759c9dcddea162c0582fad2c6df5e5ab3"},{"version":"b01d2597af5b6a65fb8b29f1a915faf4cc01f871ccfad7c557c46679f6ee5605","signature":"2d651b1427e8a1798086e20dd46590ca291058b1b8f876a44a16f2a89dbb242d"},{"version":"ab5234f5870efeec33fd4fe3ab6f12e6adc0c8cec077b0355cbb0672d20d629f","signature":"4873b19b937d108fea62a63786bd2e536d62c5193bdfd95268fca0572cf441f1"},{"version":"5627d427b2f89561bf8187e9593d70977a79fda6229f9149b195775c8d5cd8cb","signature":"2fb44949494ae575001a95555f4b0eee0f93bb935cd77a97ec57a2fcad1000d0"},{"version":"fd8e94457a9064736f09159969cdb9491aecd754722ea10b2e96891fe584d0e8","signature":"e710eff3e55071d962b6a430bfca5f15ffe96268072c369fab04a9edde9fcc16"},{"version":"00d60c36bae2313fdd53eabb7d3db44a7009ef0818fb0101a9a822e1a48a38df","signature":"f1d6b38227d7babc09975359fc892feb087d173446f4cd8be568278a09ff3474"},{"version":"089a0092f3c97f9a1fffe719da7441fb09f842f6a5c9cddafa0b896ce725e16c","signature":"2e112307417b82f5fe95015381d01b52b1147050cccf15737e785b523d0f764f"},{"version":"bfb0eb127d45c1f621bd07f1f9133c0d037c0905789a88ae934cd4a4357316c8","signature":"0009b7a0b4650d743209a134777aa1de10da98402ee1f8d9a3e6bf7b4ec32432"},{"version":"b24893fe991a85062bcbc9ea7fc026565dd4a3ab3e0f8e9d05580d2d4aa78035","signature":"15a313aa5ed968c83b1d51c92626ebeb6836a58bf6dd52b3547c1b7542ac7343"},{"version":"02a9445cbfecaadcdf4452af611b0b3be0888e1f5526bf22f3fbbbd447df2046","signature":"b93d79f9d63b2845be22ef9551bfdf98d0f4d567c5f2930cddae90142226e3f2"},{"version":"a964190161ecac8a040195c30c208c13f562d2c2c3786fb22d028aa8f255cec8","signature":"11df73b5cc9f10f099a4d9259964f2fb8435b27b277839069e649114a628dd4b"},{"version":"4d67dcd2efc85a9f0428770f7576b8d6c14711b856c330974385b54964e7fe0a","signature":"76419b412a40aa1a608581700c7a7d33ff3a520faefe24401c17a80da17aa61f"},{"version":"c019cf6b99c9fe3719d895425076ed2b60a7f73874ef739d2b1f893a1d8db364","signature":"5db5ce0e47b147d0d89520281fe0c6f99931657854a9d44adac543bcd6294606"},{"version":"5fec278a9813efafc7c131275666b2892b361d41426aa3f6120eb42c73c73aba","signature":"7b37fd6ac4506801740abf6650f7e4948a09604e8266b145be0184fd4e9bd402"},{"version":"7d1e7e398d7f0db72159e6ab30ac90987d3a3a65692ef31ddeec8be5d3032fad","signature":"72b5434253755d39e35cb49dc120c50c4d58dbaa7b324136ee880132131c678a"},{"version":"137885992f42d6161cc520b03c8aaaefa6f1ec9fc528e31a87a39be2cb71399e","signature":"13f6a4980262a8152d36c9f1c6e4b2fe44fc11fa9c96d61459e5c9d3ec4c2870"},{"version":"fc065fc3163aaa8b38604299aafaeb6a2fac8ab5418ccdb7568d97475ea94ec5","signature":"5458d747121f9cd9d916900340cbcfc5b134a961bced50961f4e936c46e9ed2c"},{"version":"318839aa6fbb62661b032dba06f2008764dd07c3c40f98c065bed448280aeabb","signature":"6960bba0334f7416d94a5cf7e05ea99dceac5457165a2aedba3a4c0c7d92257d"},{"version":"9bc449d85c93bc19f216eacdf883be3b8ac6e8424537a7e253ba5ec2b93ec9df","signature":"c9ada50699ee1de14136bcc2db45e22230f8fa2913d439777c3200cec6d55fdc"},{"version":"695598d948b78f79d1ed675d244693f58631fde6352b4ebca656780aa6c96358","signature":"f0727b8b648eca20349fe089a119e8421728b9dda3a74dcfb0e0cc12e24fbd19"},{"version":"f96ebb2db26ad60b0a73557db918d6aa79c87e8275b12532df03d2890aafe1ba","signature":"d275a9fddba3e7e8c05d3a663c09691361db0088cd0010d93fb1d8e4fd7e6814"},{"version":"1d6335631896f1a8266fc850881f03587b5b08eec031d5debc3f4edf97b1bfe5","signature":"af6d4076c422c1f66faf10038ea6ed3bc988ff19d447841045f6d8eb923ca440"},"561100fb40049bc0fa70465955908d0d4322ea2511e800b3aed4a29181dd825f",{"version":"c8cbd10810875949b4f477c850adb8e48b07c4c37ae57a91e0256fb96203784a","signature":"7e3d47141d698c20287ff9bbe6fee2b3d5c39db7178741b16ee52f106b981909"},{"version":"f32aa7dbe8d4626c65a99c7bb9b3e0175e8750538a34c229c6b06fc4a4e22e86","signature":"733199d11d5a71762a5baa35efee71d6e33011f3ae360e9c0559df089ce86153"},{"version":"8b066b9722e974a874cfbf11c4ee500e67c23019c190e7e8cec8c3058cea44c1","signature":"800b8ed8b1e9da41a51d47b71eb3c14fc6ade05ab2af37e771254c9e38325797"},{"version":"3d2cf5b989c5a05b0c5f93879d224c5e8d1ac3e1d489b706682bcb8436ea8e2a","signature":"2f7794a05370a6fd4bc3c6ad540c164eb27f155d4b1345b8aed2dc5e46176969"},{"version":"12630837f353143984b07d3f1592e402265eda44c34d15cbd56c996b36bc7be0","signature":"2015aa7d5b59da57d6595396b8ae771966c79da7e3fa2508488feeaf042eca2e"},"57c7d26fd9aa871f712f354196056b7415b2e0b0d5bc9f693ac2f7da90fc34af","16fd406dc18f5b1f7a25cd0b0a4e91a6e677bba7bb97210c61791010d9904c4c","1e7ac08e29dbf22553ee28c35d4c4c741bec63db368cfb466c5e7ffcb81ab788",{"version":"b18561bf33c4713072f9287dcd31128ae2e92171f65ea09429cede538213e8e8","signature":"bf1fd7525479f198099a970e36e3b40029ca3695e11bc57aed03a6ff8a4409d3"},{"version":"eef791e45d669805b2c6c67e123f132c1c76625738a7717d70f1fce8c353fb9f","signature":"2a48c42ad2f6237fa6acbdf2a3d1cd09ff2b645c2c8f0b00559269ccb5fb9ad4"},"8efe9e77046778c7f14efb89f5422fda5c673dd73e445ae73eb2d805262de4a4","cbede5144bc091b6e34611936273d79b77638a92c36903f3bb29cf3891724750",{"version":"fb65224e2be6f8559c45f152428a08ccfdeff6d12d44b881d7187d97f28f6476","signature":"f8d8c705d6a4ebc278ab0b1a135c69fabd6c103eaf71ab3f832167bb36b71b31"},{"version":"11d250cc866c7f8549472b373f4be683e0c586d4df5908dffb529e04269f6457","signature":"cc51d7274694d5ee5f7854833119c36489dd2ac7e16745a0e4248dcdf45c6546"},"ab06b5c29d7df2f45013ebc685e4d04ea5abe1c915390675236ea896bd0fa2c6","c5a204aff8cbb133c6319c0dfdd19964e55be3ac16f257bc7e567d94e7491d35","77a9ac736c708bcfffd81d7217232320693b4fcaaf5f3ed30478b7156d9597a1",{"version":"dc0a96a9f77fc748da6e021506855963d53f4104e1c6c98a14809e11b904214f","signature":"d124c72b8aab74d912642177ee91d8fbf3d11196857301c450925856ae18bdaa"},{"version":"ff00e1edcbb028ef4891176c4bf281b487141392be24fc1245371bdbe91ddabf","signature":"045a949f32efb203700ed9a4654b880eb3b3dc7c006feefac85143fd8355b21b"},{"version":"f218010cc5620ea7515b83f079b488f1c7e3dc34d53431a8c7a5008d11e95eba","signature":"56ae924976695fea6e3b8d6143370bc4399e16d73a2cc0fa92dec30771af1597"},"e31341df456b73602355da4862e474715e03cb13f8c7272f901bdc7634130b15","906a8dc0ae19ae9070e38da9e6b19b18da06a5326d29846224f8681689cfd075",{"version":"3f5a711ec09de6eff2c69c60950ad0c6d2b6821d8be0cf41796641f59d9003e5","signature":"c68fb5e145360900a73d2c5ef962aef012ac67923bac8bbbb18b8f1016ccdb9a"},{"version":"16809a4660eaf4a9ec3ca1d8efee144bdc4797d0a0b8a4e58004da3dd63ac258","signature":"df982fd047bb31a4476e028f4408042247d4974dab452ab463ecd2b8b98191a1"},"0cb4b04e9d7c992f2b0b1d8891761529847f82169181fc2fbaa74dc33c035214","307d00875ceb87450cfa8c2bc103438e7d1ee3d1fe51027c2b8b424bf766a164",{"version":"abc251b09c3c0303e1acba47cf8a610afea733d8232b3cc07d6acfaa964e2d04","signature":"f478620b6a462ba6f73b762b23feccbe6214ec4a57f22489b84288344ed9fe5d"},{"version":"453ba9f5ed770d2f5345bb2e7d9b95b62940418757f5bb7a6c0eda3568e52729","signature":"1538efa711b640039c0b2dd51c649556cce7bf6c0b2c17322e77c05d81a3732a"},"0df5a97d2567b8302c0c9aa887a6217f411eaad909683520cee75eee4fbc6668","0161370cceb34a2481cd6f9f315308d45231e0d3286ffd4c3f1f23ed645cfa5e","41ad445df8fe78edf131067fce248b2b0bcc63a46b952a27fdc1b01bd75b06b2",{"version":"ca5cd20d8eb16b0363b6ce2de02efc8a70d00c4fc35dbcc36ec90ffdd32d28e1","signature":"b54541a8d2bfd1c44eb19db18e041c3d2161afa2868bb67b07ada6e622210ed0"},{"version":"5d3e683ce0cc29e37b05c965dacbc9105a864eb0a84909a721e8f8967661c0b7","signature":"3bc300f44fbb23a71f4c1b7ac2c20b04e901092375a66a72af3d9577d22ff8e0"},{"version":"b5e7b6eca8181edebbfab50e8cb14e46070243e6a49147b8c19c20ed33175c83","signature":"d77a6195b582d52421e04e05e763bc5e59fc4ff169d5978ad02a7d60aa3a246c"},"a611b939c4951a42f23340d8f66459d5376926d1adc02663e84ad646aa271bac","c79a7ad35926c378b5f67bd9a25161f6c87fe44598d1fdb632c78b74d7ba9878",{"version":"59a5b87080c8125ba33f62514670f5a12ccc32ec0cb102137a6c40131934c527","signature":"6d0eb239b1352ec003d6be41b8c0894e30175cf96c9dd7c964d87be59199103a"},{"version":"6f45fda297fdd50ba7df9ae028e18a5e27bde0b15315998e6e4a6f15ade82094","signature":"96e92a6eec2f7d59b8a92ce96c4bc24df3bd4efc324a3e6cb86e849263ab6882"},{"version":"5e45112df6346893710ea787c131275cb1d370dc1df8a4379d26cbcb444b136b","signature":"782fd1cfe3b028088c5ce69e8874a69da3f338e6e663c645b986e307109f6b53"},"bfd6f27b8e34c25b213f680b7ab3305f8a39d89990d738b962cf8856162c1f99","2b5e9b9650d489c142c7a414cd5d628091669d5541ebb4b4aa8c7d1eedc5a101",{"version":"d12fba3e28ea6940725dc67cf32e46e9829b102fce397ac9017eb518c08148f6","signature":"ef1afef20a5829f934069c34c6aae77d6c8719d621b8bcec42c020386d365185"},{"version":"7835c8937570aa137848383a5c90733b47aaffddebf9f516bdc315216a528b40","signature":"fa16390c8d7304cd4b7d5782eea56bfe01544a0f130a0254cf0a5d923f1d4733"},{"version":"3853ff5328b6084e46bf68be50330c83fac701a9020523185f0e13209f5d8f82","signature":"556a45579ecb437943fba81889bed6601d208e3394b571a13369453e61661bca"},{"version":"8b0cc05ce2fb8d3629cc551dd25025e19478f00bba45a692b16476fdd37d5d65","signature":"cc57e3b6dcdfb9f644555e607bba90584a5a9ce91020d72b808f9eed7bf565df"},{"version":"1c3de7f6f57ff3af8814071e77bf6dee99c867281835d9b95602839a68491ae9","signature":"3a3a1094746425be5014acb5062498121cd1b7724ea745243c4f8ff0ed815ed1"},"41ff283c34adbb5f436fbe98097f44ccaa3975ff0590b804d72c48611c56872f",{"version":"ab9fbd34896f77a5d72bb20d09c3835a0fcb0c6477902ad65214dc44895eca51","signature":"ffb578e718c599e1fc1a60888f3406bbed0ef68bc79a1f1e4e30d132248f4ccb"},"23104359973a5840c52ad4a2799e1122d6b2eef4cd38fa578a84dedeced7e3c2",{"version":"2065397c56154de765dd7b9d50eaf617f1ad1ecf1dd81e545be5fdb08cd23f9d","signature":"6e41e6cbb1736d556ee235ab85bae0c9651717c9aed33375ef6fa96ddad777a5"},{"version":"7b51e7bd667501566f470b59d30c374f8de0efe8703bc7dba7883a9365dde152","signature":"91a277d8fdd4aa8b77f99a6bbeeca4aed73f26a7c564ee64ddf96e76a10f3f73"},{"version":"d6a3a47461cec58de2ab850253f747f34b82509c3cca09f074d64152078393ae","signature":"9eeba6f4b41e6a703f79b04ae7673158957306ce08a35bdadc2a6a4a4036697e"},"299d488c4dd118b1ab850accff80684816687a28672a5a758e2eb154f2f5e7dd",{"version":"cd6ef0c9cbd9800fe497497925965819a5c8b474e78d46ae50100a1dade6b722","signature":"a532891a76def2dc6e882c65ee1eb4d388c06b12bf05af2c643a517020e4d95b"},{"version":"9fb9d297b2fbb82fb5378a3d22898ce4e2bab191f397a2f2517c392949e06d94","signature":"dbb8250dfc6d121858cf744f2b41ae574cade8845680cce3a1d7295a2dbabeb1"},{"version":"1ef1a3fbc54007fcd0376ce0a677b77c851886b60a44eabf14ae8c1b46bf51e7","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},{"version":"aa8760ab58336e8edb539bfe5689098d354ecff68306b20c12dcf2996f465940","signature":"562dc61e99f40545e0c207136b2bb2a108bca68a6ec62e2ee08297233b277439"},"4f07a6479ed4bd3c307272667e26ca5c34e295e5a9c3c8deecacedda2cfc4005",{"version":"7e04f6ca3f30786f6d01f615c62117f91c65e8b07d1b444df3b29f7b23b45e51","signature":"6577c16830172a6a3d73791a3e56b841006cce026765a1e7afea4cd29b4a7848"},{"version":"e0d1611e44cae90c983b5d38f4ad93b68ccf130bfb2046c1c645388227b0971a","signature":"4ac66662572eabb46d6a9ad02635606d277d0651561ab4315bc4ad0c4a150347"},{"version":"a97b9238bb8ed712aa799730d18aef7c49697f2997efe7928ba8fef1d3df2efa","signature":"8fd5603a4458b8aae79baf274d3314aaa63118c10620b57c52b6853e2e399a60"},{"version":"9c5726411d5de2d5307c03f89a5bcc02b0284627a17a2fdb118df8b0e0e00557","signature":"616bcc683efc3a679a2e4363633041672f5d9060fa30f7c62092dc2b94371bb8"},{"version":"5f3e62899350c09ddca75caacd4e88848b9509fe44a3dfca2e2e84e76d1eccf5","signature":"ff52f59372c5a352a1e236a7596fa302f2601efe9b07f15b89cb3558d0ae0aa3"},{"version":"34707416ed0f6f7060fd3aa5067ab8543db7c119f4e37f1c60ee8d6c5f0b424a","signature":"44f25379af8c74b796b30793e226e7394c12a13d5fc432ff2d9e85382498de7c"},"35503c8854a284b187d86307b3dd0d111386ccc2e90a90e3d8dfaea9f2c1f260",{"version":"1f42c02fb16d84388c95311b64cef7ddfdffa30d2360ca2dcaa86fe9d2d56e96","signature":"77e94dbdfc20467d064e70db799e0ba30bf18461a842a6e0624e46636dca39d6"},"feb5a5a6a7430635c4624bd9f92df13e417f11dd3c94e3b5600c3d028d5ec430",{"version":"aea8a821694b8d215b74a7065a35f5b261d0e18d726f7e2d506e8070efed6511","signature":"2abf1d5907ecd1624b013489cca43193e68aaa68dd5a612e78b6668a90bd9d72"},{"version":"6cd2c1359506e18eb39495ada467105ac0ea81d8267c0bae824ce4d9298221b7","signature":"1241717fff8d3be90fab3207a7deb5ede67ca8c6b875375147561eb0a9342fd2"},{"version":"fd7a6352ba3e9119674072bff37e1fe4333c3dd1bf73e71d903e0b52a4a479cb","signature":"2b6be0bc705ded49c0799a4fefba78bf474b08b569bb4a610b2abd2e55d5184d"},{"version":"4f24468bbf2e0967a7124180c9848ef0ce1fa8d32152fe4559b8187cde2b251a","signature":"8d6ba569586fc17d44d7d79bfb112fb95bd274722ffe5653a15f8464e469c3d0"},{"version":"a9b10dc7327829d7a94982aaf32cedcbe5fbb5c96a59212de8d1ae775a1ea0f0","affectsGlobalScope":true},"0e807ffb23dae46dfa44f1c8975975c8c32d86d146a80f6fa284efaaf6c85028",{"version":"2583382b200d5e3c647bb6b74fda24af4d0d1d933215888a3fe2aa5a689004c2","signature":"5fee6906fac3674ac2a0d8f3ba6feb42b1a75c8bf3b1f859f5acd83da306b17f"},{"version":"44c27f623dafcba3a255c828dd0ae792f931a2e08756aab292c71c8f6caed4e0","signature":"668a2f9750cce08a3a6504986b0e190052307c676caaf8e7c7095475ecd7d6a9"},{"version":"d02f0cc7d0b8b5334f1588d29954128c6ffd51a12197f3cc1174fc28fb4942d6","signature":"f6c2ed60799a0b3468eb5f8d12083cea2f9d6ba6dc0dbc930babd062b15fca9d"},{"version":"1cd170fd0e84f6af8302b3fd24a0745932ff5dc3efa821ecdb295c85671414c4","signature":"2acb6666c4a83f647512e5b013a6f4656d4282a9661c3d12b5b80609d0342dc8"},"9ea2ee9766b84101d84c0e649a06ec277d0a8876ccd4c23a4c48feee73fe4f48",{"version":"562509b59dd84b5c61be9f0a1d5bad7a0cd63ec2ff458c016c12ee63768cf9c8","signature":"6afe1fddd5cd31eaa8e3af6a8369a7da853f9b729cdd409743eb162ef282c2ac"},{"version":"1f1df42850b729b92d17dd6f7f13fcbf184fadadb920227f8658544cba67438d","signature":"415e43e6d3ce29214230d64f49ec6a03e18f43f22bec0b3d38cdecd95a1ee44c"},{"version":"af7f532280bd7ed467a30d92212cab65d4e24369b342f5c57446d5b304bf118e","signature":"04bcd1a01f45e63c7ef75d909dc182543c305978a156db1600d33b0e4131bba8"},{"version":"576347c85678822f773a9384fc4a0e8a31c3bd80c94a8e7ebaffeb1b7893b6d0","signature":"4f91711dd0c45f8d3d7b2f020143a1403e92afacbd9481e16780ac067ebc1ec0"},{"version":"d37ce88122f619870802e63afc912f95741a5e55218ed7a157cc076a1507e050","signature":"cb7bed8c399b061af9d06da22edf90318b8fa64f81feaacf35f7d78cec30363b"},{"version":"06192af3b182223f431baf55082b83988ae57fe048fc7fcd8ce0faf4ee281819","signature":"623e60be4db694e883d126fbfd114a8b6b71b78520185b5241d754fe7c2529bb"},{"version":"3e0f25d1e33675f1f94a94e09af775a2c996c8d3fe0c2082e66490c9ccae4fa1","signature":"e0c2f048d07caa4d47f77d95f39c955aa2f12695698a54b64aca2a6b009d1159"},{"version":"8a95ca87c437ca55a5f5010a30ef7fb799e1e2701ee09474e7330fce91b646f4","signature":"76bc409f465f6515528490fa8b55a79578f8301fec54ea9b873b6b8da5f742a9","affectsGlobalScope":true},{"version":"364b80aac0b98572485715c7a8bff1a211d16471779f7fadd80c9b4efb4c2eb8","signature":"86f3d4b771ef431610c5de44d3167b15e039b439a1c3f58bb64ea99ee8a16d12"},{"version":"1269f1f55697d48cc89d69cb2c4eb6cc00f348abbafbb120010b62c6d69e6ec5","signature":"72aebf0876139b81b7782c2033b831012643c23de1db49c074fecb24ef8c832e","affectsGlobalScope":true},{"version":"02f514c763adecd9a467954f3e6c6518aecde86290a1af374729fcd2148605d6","signature":"49db9bad43085bb6b019a6ecdcae7d0fb2f9b8641c55c2bf0309926c2534eba2","affectsGlobalScope":true},{"version":"28e201fa826b9258ec82661b9c43db85536e5bdcec6511b0b13d735a83e232ee","signature":"d082843e752f6b001284c241c1c724d36ead580945d63686e6794615f2c17c94"},{"version":"1a8bac515fb011296d674c11c5e09482875f7ac5974c856f31a9b2e09ee8ef33","signature":"18239eac524226f89b850f73b658a7ecf61b4b7df987b21785c13d60084b062f"},{"version":"aacd69af49b7c74a27c5c1a56d71ed5144224c7d52ffa3a666319035209df130","signature":"52d032fa211f6ce650dc3e8acc59e2b3c1e62407d37b9620a5ea05e76ff9b198"},{"version":"4a840056c659b235b81336e2d4f4d1f74a13ec631b9e115f50da7e58d5e72dda","signature":"37c91c37b7369945088e73519e3620a0c58eb337d1dc3af6be3f62a3f5702e11"},{"version":"bad7251edf55d77722df6eaeac0cf676724c7debc663b4578b7ed14c4df23fe4","signature":"3686b3fd4660a814a9f13d05adf9b022a9a36b3ee98af5f7724ef2ad98036ce0"},{"version":"225437816014152677926df72d3d714a2fa6e42dba124c8f0496ed3b3ac2bb34","signature":"2e8d97fdd6f456b42f2f358212211481f3f1558fc8845c2c0e72fa6b58af248c"},{"version":"518ac83c13ac71a05030f95b4463faab75ef4641f49bb35595d44b4ac7d00b08","signature":"3095916e4e45bc166da60c7100eb10eadc939c3c3b5900b0669c0954b7378aed"},{"version":"5f67004a28be11e631d1871121718551e841bdbf0611a0f2c7df3f4eee9cf5dd","signature":"a9f77f1221823c74961206286a64f03a23ae761548af04056215697ba03b4b25"},{"version":"a85ee4793366c265d66648fd0ff9489b6d48c52bfb1baa404e7d3c1180c3c012","signature":"69491c436981a0bf54ddd62c814e8f0fb8f79eb4b1a772a76e202891ab9b070d"},{"version":"dfdd80ecd867e3e091766e47bfa4057aa992d3525662aef3b11199bd7065d929","signature":"fa837926ac880ed0b68232d9ec84db5f1f18ff219498631afa8b68e8602648e7"},{"version":"e3b1ca9d68726c37f1c1ee00541ca04abddcf8b566e09c1dd5062f98307c386b","signature":"f1068bcefc61a52c1ebc0ac7a302bb027bdcb0f27f99e18bb3623118b88aa283"},{"version":"9f93a37b76e9f84712849cd33c761dc142b79693557f5a0dffc9544e44364087","signature":"fd7d8d44a85dcdafa6bd3d753beb969bdda8dfa5d73f9cb07a31c0cd679061b5"},{"version":"3c48387785008bbaf0dd1e337df2aba7dcfba493ad5dafef18a30c6937993bf5","signature":"346128a1c34052ca1814aff294caf4c16d28f803daaf76db7d6eb94eb65da3d8"},{"version":"3968bd387cb1941cb960139d60552080a29df9cd149424763e2e295f7b80fbf7","signature":"782423dce8351af50f3e1b44f6eaae52202b5972024ddb2f5e1735a2eb69269c"},{"version":"9575e0da69f9a69a8d9a231ce278a223d9abc23867980df391f07659fd81f09d","signature":"7ef2ab0cbc91135355376f98b2afeb530fa09698608583e17c7a000078847a5b"},{"version":"a08142d515aa86ae956aee3798868b30d8c304f1070d2b1040187b07a81046ca","signature":"42c1d7503fd6e65d221e80d96724f3e74ca15c86a27ae71e50f1aeab4055a39e"},{"version":"f4d9f744a868b68e3de9dd8cba3eed90ae69d1f3af69f71c6ba20dec5ae2e4b3","signature":"add6be62fe8de39bd6013cb3f4cebf1bf43439b88bbed987f194b8af5307a58a"},{"version":"030b2575ca69fcb58de09fbede4c3c6f46b3398318ce74c0fe80f2273459006a","signature":"bdc9d5766f72570f50e67e420533629519a4aa95a544d46c17a31153205acd9f"},"eba110d8e5721254ef70aa6bfb2f38bd95bb9d7d9bf5a530bb20c1665e0e403a",{"version":"f676a60e988d68f6283085dd6bcb7b02e2ccddeaa5547800d35304417289758a","signature":"974568879cda243b1a6becc572ac80cd56326552fa00c95c178c86c99dfa7eea"},{"version":"59f3ea7a00837276395e4f2bf5796e1aa06869a740968cc9d595e7b8d15c2dd0","signature":"3935f5a0924d4a43aeb0e778496313c34f9764c8faac67ec3a6fc06eec9f9b8a"},{"version":"a6ca92bc973f63a57638b760d679629a2d0eb68d28bde636c7fc11c955d753ad","signature":"4981bbf6307d529aa7050b4822cc227d2ebf688d3fb91201e6023ad5705d58b7"},{"version":"15c7366b2b592f9522ff4aea19588ea7daa3fa3c2b02afb2f454f9453102ec1b","signature":"f3096b56e9e0d62590f01f3ea1a72aa9f01712b82a1ef358c087b51ad5be2ffd"},{"version":"edfc04e3a9ca10b3beea4bbb5b41b5fd3964e2047ac5edbb43194c73a344cc00","signature":"180f6107eef3ef5ade9efad99797d5f0a6b6450924dc7a85d876d28e4502d3fa"},{"version":"cabc9abe11ac565eb3cec675ac8af99aed699567dc729e1c441e1ef8d2385b5a","signature":"7af7086028af6dd14b5d95851912e68aceb186f086b3219b625b1396a4228a72"},{"version":"56d1c06a5584ad734b3a3b3b3e776d0fb27675d49ba90e26c67dc1578c72faad","signature":"ae15a5c329f1e07624bb0d7664351b91fd6cd1b326d183f2f67db25d5caaafe5"},{"version":"4a7f85c31d8e9eaf9618766c246531bea372fc8951259cb78001754418b6da1a","signature":"3dd307c649dc675acf58df9a16c5eb752efea45450006874244bce61b8d14502"},{"version":"e6fffe03d5af6493edab04b18adac7b91513bde3e6941e9b7a1814f415ebcb65","signature":"5bc66007fe78df2f2e75402215b3a30c3061c904fcb13a237c2f3f1bd0afa78d"},{"version":"7eee9c98768c80d6a7238f04d9c4130e85383dcb496f433a884d46fb3807a8bc","signature":"ae92cd4543c322f4ca024931686f44c9b36ecffa2ca9f8fc353a11b319e0ec9e"},"08c3abc6e2f6e591b1f52fae2a7396a8a5ab3b691799004b81c8ed4d785abec1",{"version":"98a549cf62b7903de853812c1cae44d19cfeff9b38320da7ee3e64f2b4765796","signature":"cbf3d1f99bfaa2388aa0aeb86343e583a70bec259899863aa945e0c333b1e0bd"},"107de5a476f5dc9764cc495e4b90228420c7ad877d46a631946b1f0d11c959a7","37af6308cce70079f76a45eaf0ebc738c688dfcd398819acf428daf5f9d256d5",{"version":"7c2d52804a466bc23b6ec7dd8e2987b6dfd0e240339d1bbddca90baf0d90bf84","signature":"7d7d740b0fd20992efcdbdf9ca6329a9c580b30b75516e23f711421306afcb56"},"ecf6b1ed7b17b772b8bc11963be2dd2022bedc62bebfbb13f060ecda32f85f04",{"version":"7a4f87b9881a4b4e831e7bf221ec3a5fcbca8c9bba9f794c18d67824aa58b1b7","signature":"084d398b98800291a54df0096b8f9c177de00b1bf927251d835493ad374a91f3"},{"version":"394e3186b57ceba67ba27cef7a4e0f16ceccc3b84a01f554765ff9b9aec136b1","signature":"9e1ca6bd8322b1093036e47ac6733a1f6e9cdff35ca5edfc9806163b22c9f1f5"},{"version":"3256b6ab4b28118b874e15f693b2b14dacb5a4ce8b46a1b0852bd0e9eed333b7","signature":"892e33359d5dc399452e9fec5c53d6048d95b7707798f69038e3ae8a5a25e384"},"7275b18b000344c932cc310e40e72b3bb8228ed8ee4086bc625e2be7de2c7b70",{"version":"e9ff943e6063bd202f781f2a53a170c741ed681d8ae865344bcaf22c63cf53bd","signature":"e8a02ec550327496d2bacf9c28f1afdcd85c4317a6cf8a2e00b11ff4937e1ee0"},{"version":"f0d22ca135577adf63525fcef08130c850fe09c6986406732bfd294a0dd7a92e","signature":"1533f4014f0b5aac13c54c8808fc642a17572369e33207a54a84e79b9a780d5e"},{"version":"710806e7e7be50c55ca169ad9d0bda084756cb327fe1f50d3e1ae5505d6b151d","signature":"fd5acdc4f191b429cb64416e347ea428a81a09655988160589026ee8e807e481"},{"version":"348513c5649e3c3a997b94df176708b1fe4a4c9f3a56428bc50d192b7169a585","signature":"1ee442bd91f5f92cf694aace281f03eda2e7dce54c6053b0a2cf8edcb43e40be"},"37af467f69b80637696dd8dd323265b2b3f27b31942a5b2cb8144ade72f24c8c","e47b0a3714bf207d9c64a0aaf2724ea765a8607bcb46ed4e921e1643c76e88e1",{"version":"83c4d7e592018fe019ad77b1ab5f93dc2f875d2867a8284f688f2914cd92a7c1","signature":"ff80cc328fbe754738fc77d3012c0417c47911022ed63e9c0a65ca97ff1d1d4b"},{"version":"85ba0431efb6c150e926eaab2eff995232149ed53e96e105de2724e16223502c","signature":"310d91068845f16b71fef85f1b573acaef7ffc472a1b3d8ae293e816a433c743"},{"version":"86ca269c02f4ae15893da2c1d63c22ac51e96fbf807c9762fa341f820c4c0232","signature":"1d861f6c2d106b6efd3dae46e53f90477a39d704af7c4a410aa12f3b485934ec"},{"version":"d4e6b9a8d7562cc90084c11fdc7414f161e062fee1d1ca0dd8bcf39542cff0d6","signature":"59baf3633f7dc00e0a260b6e935f58d3326ed5031fff8905771341a0e7c9963c"},{"version":"677cfa00aaf444448064aac1dfed56f60c60b6068e92fea48f33022108a1b943","signature":"2656d790372e1d86b9007bee788ac05947f81bd4e4acc457fe16877875cda1c9"},{"version":"a7011c14ba6b532213cfb52818705774b5395cbc081f7eb940cac76c9d0d8f65","signature":"ef2a049aa1066ba92f22d5ebbe420c06e3f96733d8b9a10d2bd8ff5b9f392d7a"},"6ffa9955352aef224f7ece38701b19d633e4bad1eba8beb550d893ceeebd77d6","47caa28328a9035e72c1dbbe1ed0a5f57932980f60c4b76a476995f314c2566b","762435012383776e8631428e571c61c5c49b38370a234d28c5d992b30e6d2d29","7317cb15d6c35a2e645fdea11db02ca419485a3a10c495484badb97a29599ea8","f609d4433a2f9d56faa92cd56783c90e9cfca8035a357a3f484d0463ccfa3e30",{"version":"482521c7d8be9a9b03ca310c7ec2dd4c7ad01bfecb6d0628315dd97dbe9c3bfd","signature":"313a74046d979b9077eb713c3a40ae207282c87a0b007cfd41102929918a94ec"},"b682e60d281cfae4671d90f43feb7381df9cad36f9fd1624e0f97c4b2399de80",{"version":"77f12585a4d1f5b855e3f066b3ddead3c25d81bd5bd6909994547013ea922963","signature":"cdd9aa0e1fbe0031c8f19964dd1274dca5d8d2f9eedf7290ea78e2b6a8fa3e47"},{"version":"817ee5df113e7096a39419943c9032565da306190cbaff9506d9de0aadbf6324","signature":"9e7b4b7d8acb3ee545c0507a0ea1c7edf819578eebe5c30b3f15bcb0402e7536"},{"version":"3cee6568ad32fb9c257790ff800b3313cf1ba300ee500e5d23abee36d76234f2","signature":"7757ea5fd23aa46649bd3329d0245ad3cdf3aff09c9219727297ea6c340358e8"},"ada87c9cf39006751532cd568215e8aef57bf15670673f4c4f0c974e2a51fc5a","cd81be3a7d5a3b4a247a5744c1c222e31fbfe647f8ec7f7a9cb7c7901d890479",{"version":"313420fb212cace069f329a6acd3a6346fab536cf2f72be6cfbb3079cdb0457b","signature":"9c26c5a1c3cb7371d117c45c1a4b2a177d9e96f98205c459b5065f078a296281"},{"version":"1225e21079fae738d3499bf78e487adceb45591c40dbd4baa8e891cffc56b3b2","signature":"3fcf403c49ef9b92b0b798fdc7ce6d05a224cf63badc7500b5069d27fa3ecf26"},{"version":"ee7a8aca242a95f82785d23ded207150ddf50713aebe4712df4847539107de4d","signature":"a9f6fa282e33b834489b2a1be62a09af571512cca45fab4aa53287990bbd148c"},{"version":"5dabd2d63769d51ef15a96c4f013e61556363ce1d916f16698d5d9bfde3d7d17","signature":"5873e8d3f7ce03b9162a2dd8b1bbf4fc173e9b96ba2b9cddaba3e9a4a0c5a200"},{"version":"3b5f5583d857d079377b3a9e73036ecc7e3582541215738da1c9513866460975","signature":"4dec186d022b0762ae56206724732644902d095252f388c6bd1cb8bdfc8eab31"},"6161a292ecf48ccbfc9d0e731aa24f8ae464df2c600871ce99225e6156297716","036a13093b97ef0df09604b7f8d946772a4ec1e16422957eb35b788a2e76fef8",{"version":"1be0f22bd4da00ca0e41f9669961c658c16dfd0c7a42b50cb9240daed654172d","signature":"fe192be79f5dd1fb56d0854ff3631889f1f92cf27a62981ec1da2f75a145b2e7"},"c627af3aaaa6b9efdf2f5dc02ebed43dc9827461d439183c4e42eb9feb0c0c71","54d63537f635475d601690f3628c00af699de697217d780d9b386c64e986972f","99b78bce6a0f600d5a6c210094030f9d4765f5b3cb99da5f7fb36fb67bf4d4e8",{"version":"ec24578ae6761e0007612f0e88511a1e0f4e69502071c765a530940a866efd96","signature":"9e06306253c005627fbe5554deec5c1ef343d94b354121375a18b573353696bb"},{"version":"79853620dee13d452a55a5fbc68cc7eb699375ca3d1a5b25b7accbb89629f9c7","signature":"8065d1214d619101bc361f7de1fcfaa55624eca953bc8e7e000010ca8f0c95cb"},"e736a4efe93401038eff9ce7a22c74a6389179a5fb27dc160d31d53d722ac40f","0975be2e74726497005fe9ca2a0787c09992b396e36954fe77231f8b3d4dbc6e","b74d9a1117ac3b03ff3deb3dd0e84af195e6c362265a0c7b5a3616a18f5273c3",{"version":"9178ce9bc72d9174260518ea187a3ce1d94b3bd863c24a1f379a42a71943c161","signature":"e849668992be1cfe35343859593685d1988fa35f2aa33f011deb2b7f82730f09"},{"version":"668a3ebda37448355e95aa30931ae3fe14fe672d6a8172a53342d7a0a0b09d0c","signature":"59540ee120868522fc4d190559134c6dae9ef42336c0ed31ec247ffd9ba8f7bc"},"2a0e1a417da4214df23a9faaa13a10543fad88d990a37737b45745c28cc18ab6",{"version":"e0060a03de542a803488a7e3d7f1a3f32da96e9983f60c22f66276b31b2242d8","signature":"84b9f6abc57320d63e1065caa2afe812d047082f07b9db4a7fafe61beb020c42"},{"version":"2d8a1867983eb979bd5b41e4450b58e6f9e9072b1739d3113700d3fca2b5f605","signature":"6d213d848f27d7a7e873706611590a94596fe8c097a943cc3751bc64ae77d995"},"9ea36b482e6e517680f370815da6adfacc0da557535d3be272b69496c7df8f57","f43e63285e92a2ca2c9d08a641e037ffbdfb85ce58eceeec2991688725d94bfa",{"version":"eeed4a1dcc273f87c82dd2fa026be90ac2440d689f0b1e7a2686459771b38b07","signature":"39d36ae96a0cdabc24982dda1ef6ae4957ddb0c5ddd03c11dcd71be2c389f10e"},{"version":"2471d9f02df4e7dcf08be83be0075686b637acf31c861157a18be52baa34dbb6","signature":"033be3dd1b4ee5f5960806efa84680e4be24552a3991cb923adc5e90b9e49041"},"26d2bbdc20474ba291461cc1dec83c0b93c1267d56826916dc9736553fa9fc97",{"version":"ec82db42953b2f20e6a60bce9f7957cc48666f2e0d112fb4d0813a9c62a46c89","signature":"f1b0ef8725aa252ea70faa3c25a7967968bc95b6521e4d9112a868cc8996c45b"},{"version":"34ac35e7812c72bd12fd579a491aeb173ca02925b6f7c5dc5cca71414eec933e","signature":"276501d333366f5af913a6334ed457fec61ae103b25acbc78913f65c568a9ee9"},"7685fc9e82a69ec0e9dbfdc76d2b932c7fdf77c2c137330aa132d9dbff254c91","9e11f2f59e5a7eec07a50a989d75a0204da78f92c091248a048d4f52fd99e0a9",{"version":"73a89c8ee1f60b0050a53f574f26389a85cd63ba484a3000d8e117d66e4b8688","signature":"aea5615be83b5f397c85cece459b9cbce17fd62a6a7e634d923f629a9a9f764b"},{"version":"4b34182e8fe47895b73e76dd846e8ae8a56a8753c14b81e16859c34bbe7423f1","signature":"fa8b6930a49afb2f4f49d363a0099716e3f2a8add1a3525e1a0bda9ab240ea06"},{"version":"c7042a6184e4e6a23f7f190240624dc629905a05bf0e1ac62389a798a14f393a","signature":"779ba38ebc799bdb65babd84c3629939e871d5f2a5d298503829454a8c8e303b"},"e1f1072a2c47e63ada087434cfd6c88a904fe879e53792b600fe666a8c7642d8","77ad267201ac2e2f7f754452aadc5b855c4c313f3e28d9268b591c3611da70b7",{"version":"96ed754f65ebe622a321562f9992f7ac97ed1bcfe88eee80a26813033ac34ad4","signature":"1bc8ed8ef19eae944440defe3d4b3d4582e4873534a791cb841f7df659a4c42f"},{"version":"fad9c84ca56f20c253f2996190ed74362f23fcce39d3b7399e93877816803695","signature":"00412ba20ba24d33b0ff550af3857794ef269bce429dbf32515d9229ed5b1dab"},{"version":"57d779e0059734666f0ea38fb746de2b4ad75ddd026bbb6dc339c45ca8b98204","signature":"9e29b0f36f8d9166d0fed661fd0c93cd20ef82e900c6a0b70640dd0a6ec58fb4"},"75337b8ba1a0452329fb26822e3bab842c6b8a921e503c5f2ac590b7689b7f14","4ad8b16270496eb9ae8e2faf8f04a435d8dcbc6af83cf0d9efc064f934619a20",{"version":"cc2aacdd7b77592964469fa292864e10c5dd924aa9d22fef3b7121d6c6bb9f20","signature":"f8189e1b02ffc389bc32e955c94cff8d28ce874b103e0f1a7f6d40df4a9d248e"},{"version":"36085825b8b9f8fa30a582021d1dbf68cb12d2a1f15dbdf5fb94772d418525ab","signature":"0baa623d4d8cd6b58a1d458c3b404bffcb37cf43583dbf54dfcc4f2eb8f33d46"},"600e48160cd4eefc5a77c84acaebf86293f5af2efe599e1dd7b1925828f95b0b","98c15fedd57b0b075464bda538c7cd56c77e0009a580aa5f54db1200b155bf96","1466705642ca61390f7cf0542e64d5070e8497882d989958067e3574afa7682c","62be45bc1e29640faffee9d4f7b69333b3d2348f4e5d4d93cc4ea574e3b7eb5a","ca690aabb92a2bd5ef0990e990a322483ad4aedb69cdddc76b941a4f7b0b39df",{"version":"f520dbc0b89620f7d4b142db9126141ab59d1afbdcd7d55fc05b53b626d7e272","signature":"e2cb108b29e52fd283e0c007c6d9578dc0b7dd131e6b642f1a3bb05c0c9ab8ec"},{"version":"707f4870ae2ead82c4a6505102990f28ac5e2a84d9e7aaa3c0034f2880cb733a","signature":"767673e073e492978a17f95bbc53df7c14e68b4a0781add201b87ccd41162d50"},{"version":"d505aa1b9a2661155d75a7664ce9a5e7fb40cf493798d8427abe7992dc791994","signature":"ba429d18d004f11eb7cd19867f063c85ec1f2787d39706fc8276d0747feecd14"},{"version":"f5422c0e01b169489765a4f3dc5418bfe7f168a195161d3a0aa2a3814e504efa","signature":"75deb86377358ac6c80397d8ac1a9496f70f04b8b8a13cb2aa33ca95242f6abe"},{"version":"55119b65876443823dc5c0ead831747d0c83c91081c34a518ebcd57db9d39240","signature":"12f74d3db4fa5855e3eb733c9dae91e3c2e897a761541acdf17b93dc5c715b0c"},"3d7c00c325dab9689c9bdd1e6bc49d722614741ef8756e84aa1609b01eaa0e9d","c2f6dd79911d74b208a8233f7d20cce8949147d55dcf3ef7034beaa822a7e7b7","b5ae3f54b2cb406ddc4272c203b2d1efaa202db78917b051aaff7da40fbe5145",{"version":"6c9f24c55001a7bea3318c8cf286e7f98622f03a2b53a5c59dea5c9e2233cd77","signature":"a89df959d34a902d496122a28fb87b3e58fb5161458cf51f88cd7a6ac755bc34"},{"version":"80959f768845151ce4feb7b26ef46dd10bd45d593f1ee1eef9c0272704f68bdf","signature":"aa4805a2327677013638dc83e33d3243d2ff10785561e10ae03345ed32af53c8"},"0b11231078ed806ab34838ca4e5014eebce2b2e304be238bbe6cec77c9de4709","40d2d9622e638ed12c9af5b325e729289308389cde98f17c1c9f19d8edef951e",{"version":"253d66ac8b033a55ff47bd6f3f5a17b6b24e45b495973bd40b69cb747df7106d","signature":"d390c8eb52217ceefee6c374dd86cce50d8491eaa77878c75b13fbd0333f0a4a"},{"version":"daf4adc703e468a218dfa37349cf944df5dd065aeaa11c8c590309a05f984e1b","signature":"83e48dc38ba9f0e439b83cbb772ab92134fbe37cf2a30bfe3a73ae6436a46489"},"3e2f3a3707e870fdad2b9b7cbe84d65ac71602098d8737a61ddbb0798825bfd0","8820daef7601f721614547c02b1b2249dd0c2655ed5512a17974773b05ff6d79","cfd38c188d9089fb95774465591991f255c14a5339fe739200f33b78ce782004",{"version":"a91f3333801b640b5f6237c680ce22f8cf5a1667d777c076d600abecc637a31f","signature":"f429af02b3a76fad0820d2d037f40603b1537626b28f0b619b18d9f675381b72"},{"version":"05545ad4481808e710a65c4dc9c0434b34a6aa728777d6082c70c93b4d9279ff","signature":"c1558c6479629eceb1e497638c678af04d4f2972d51c344777ed15c0bd98c8bf"},"e677e4dbc4b38006a85f65252d669290b1b0703e39925731a728e7c2add0a4bb",{"version":"b2bddb423e63362918a403c4f45e7eb4215d879b41b9105185843157d2f3b6cb","signature":"1ab75bbc0a51f619531d76025209d5f60c15c2fb7b0eb8d8a3d0fe7663b3e112"},{"version":"e78b44516a69e88223b812928864dda3f7c62f9d9203ec727fb15cb831b14ae8","signature":"fb3fd680903c45651970dd031de374207cd6e13ccc50895e98f4da56a5087998"},"e36a40b6537d4df22fcde3bd9d0e4cb3a2408d313b25808740fb1e69fbcaa539","c92cc8562110e3825219df1d7a7a38954dfcf99409ca669a2dfe68bb9671fbfd",{"version":"7a72554915ff210d59cd74485942291a5bb7db679985c633e1245f4e838b466a","signature":"2e4a2bf8bab937b6f7f0e87de9ccc95909a21a7058a2a1f72bdc60cbb9571ecf"},{"version":"9f60620cd5bd3dde9aecdc29aef9167937573e732961b946591352b94703c1fa","signature":"aa72bb2c98219b6d5b8ce4bfb8f4bb84f5f4042feb1f18ebd7aaedffb6c7ecf3"},{"version":"b98d4b406ee09de095622f2d84699b13a77617c8a54e233aa5e84987b7c05f58","signature":"bf3fc681ab6907529a8a48a331b8fd365d9f9ae9abad00c8267fe898b7879681"},"d941a1b4e9cfc74258fed90cd2c6eaeabc12842df8de0a905171d5dae3374a27","e3e8b52716cb0d8d14683930fd0cfe29c0ba246fde0b46a6da9947ec047cc1d7",{"version":"e40dc8e7caeba7ae2f2cef5de10d9fdc1d3096254c04cbfb98e808aea134c5f6","signature":"a3993657b18eebffa6ebd23c66f179ab0dead0adb7699ecc88f7228a258fc8b2"},{"version":"f5c9cdbb22353318d7cd71105fc36861228fe634bd38252e9e7356cd43718694","signature":"2fd2fbae36d90c882407a9752398cc97590c045da3813ed77eb9601d712eecff"},"8b0831b12195b93be61fdb3378787667e0135944b831e80ccb48d5ffab303437","14ad786bd051b3452071fa9621604f241d7d9b70e884580b0d1f0b4ca610485b",{"version":"5dad98a75febd3a6e75ed31b98946b8c81ec11418c0e18e265e8257e8efdf7d0","signature":"de36810e11f6ccf5b9f1865305bf19b862414db2a6a40fbdcdc91053aa886d6a"},{"version":"b1387478a6a968315ff9d0709bf4eccdaf248975696fb847ed472448475b0630","signature":"8ebda9272ac8e9b6928d5289cbf407f2f891660efb24b0f6064551b85e546aad"},{"version":"ad4475af6fa767e44707c9fbd2e72c5d81d843a2eb369468a73491e24c2113be","signature":"5d02cf766d418d83fce82e93b9494e794f73689f91cc9c1dd08480133d8ed3e9"},"e022bc886a77aea16b2d71192139217281b56d5ec5f9ebbd1a92142e816d4b00","3db8cd806ed1fc3119176dc441b30302f3198c35e169d103f9c22185935ab09c",{"version":"c7fb175ef57c451b722e10dd71a65c40dec87577f2d3a69914966822c9413004","signature":"25d5d93af01cf8f48381f05118279f05d21a7e30c6f1a226b022435bf8f858b9"},{"version":"df25d3f8f5f9fd803bb6d0e82981b2cc53e81f3f5c6aa51ad1879b79fd463e7c","signature":"fc33b0a4978b4f64752e5c82fadf449a3afb236ffbd0fde1fc3347b7b0fab1cd"},"66c1074fdc6acaf62fa3ddafd5aea74cf35f10714c88815b98145f1634255351","e734467aec3130a2aea3c4bf7c20090369a780841973c763fbe01a41f4630495",{"version":"3382a2ccde1163f22f2a211cc0269b39a65d1418de833d5b135384f8cd8d4bd5","signature":"6ee93d15804c17433c96e1ccf4a42ebe8320cad288db8bf3140616375d77af1a"},{"version":"597969e5794403738403e8f7273185fb0bd496c1caa992db11e3c3b507297a4c","signature":"27577752ac8eb2ff3e6034d66b0279098f574b7a585e095cb22508aae10d401e"},"5f1aa1ce3a361c16ae683ceea4d02e02a2d8f7190e9657c4eab835de29e04116","fbadc59988f32f8a9938c07d3801474f14a17430dd6bcb8216fb19bf4ada6b35","ca8fbd6066419fe663e115621da6e87e349aa1d034958c7a5d4e7465308ba8c3",{"version":"283b37c008467a0e63826d6585310c97ffa38231511fe758e2b787486e1f0f64","signature":"1734b8c1f8858c65bfe64f93e4e3240023f32bf949a1946020c26e208fab3071"},{"version":"2924ba0d687a7931fe5b2d4668cc7a1e23e638fa1b5b19dc77025cfb0a1b6c24","signature":"5a3fa23fea31a690735fc7d4c896d21df571421612a1cd5f614fc889719eebce"},{"version":"d877b191e40561e0cefd6006fc4b9bc01333b72e6a4839f8907bd278bb147980","signature":"8d006fa2d7e1756074e6b7ec5c53697edd83ccb3dbf51d0197d7d7437faff51a"},{"version":"0e0114067ea4a31aa7f972312ba82a4312032ca026fddc5f0f9c4755b66687f4","signature":"fb4ceac95fda97f0bd4bb355fdd529b7c5b8927ac4232aac6ecdc05252b80a3a"},"3b77611fb017ef2b4f88aecf9fb4bf9e026782f8aea69993c513a8b09ee40b00","e15a6610ab4676c7fc3dba80fe56f4422e5374d25bc2e7d8d3fac17b6ba69378",{"version":"2f872f55bc176f3877fb33929e84d7f226d6fc1e5f8560d9f8af124b68727282","signature":"fcb6fb6ce91fe764044ae56ce0aac1e2aceaf5c1d5fd7480e0526d1dbc9096c9"},"271e40cf059ebd00d27f9ef4c8ff2dedf679cdfc3f72ea9e2dfb8548ecd587f2","8f2a537af7f56a30fafddca3dafda7821bc585d149e8bf431b498c4f912eb7b0",{"version":"0c904c276d47f325b2060e9da916c23b5c1b62a70953f6bfd81c594528db9b5c","signature":"4cf30eae5807e4c6b30ba2b3fc4c1e0e76827abfad574097c4c3842f84a80934"},{"version":"d69bafceedf6644ff4860630238432c091a7cf51f7593da2d729ab5265daeb34","signature":"96d119c973c802af188e2cd3d508ffc5535aa369092fc9deda2a719e23ab89b1"},"70d8f81eab71798d6225872c688be33cd68e620cf63ee506ea5596cd1b1768f8","3dad2868a178f496d614e7cbfffe4193691302666e9928eb4c5e95b6d9b82868","4df98a65f4328c1b3119fdb64e4c26662bdc1441d08cca728cd842d499f7b478",{"version":"4c296b5279dae55a7f26d88ad379ceb0e7d5d531a99ba9d9e339232ea9960d9a","signature":"d3e6416f607a0ba16b4fa68a6178af583c6ec224219b156a4bfae284781d2a40"},{"version":"b924499023625809bca39480b39b142f86d5ede5f55d87d7028b749eb4ffa0b3","signature":"edbc42c68019d5a6d731dfca7cf079ed51d5c00dbf366f83eb13803db8c11e7e"},{"version":"5f0b5147e34606658e51c529247439bc02e481c190cd351ad2469eeb09ff0e03","signature":"6d308b999c3b059e7ded07530e0de2255746b453f242bc1d8643f09b3320c3d9"},{"version":"d38fb8c6dfe7fb4f5a7857c812d315ea0109cf596ff070bf95fd39ec9fefb1e9","signature":"c75fe75256d1adf90191ba4352eceffa9d7155dfb3ea7beea8a2f6c2a88eab9e"},{"version":"01fe1c982debc64d5bdd7aa42ed938f9657395a2b819c93508bd79c58cec4817","signature":"4462e899330df45fa9a4488a5eccfb274a0d0c07b1643d35de616938216bc23d"},{"version":"56b2dff146e97f5c4c0b1f7f283697054e0a566213a8b265812a8e6b4ddf1956","signature":"5acf4fec3725eaff45f326b6c91834bb56bc5ab8fa747296fb2c36af2cdc1c17"},"289a1745af04d2e0278ee667e0dbcd0a97c24ed685f5826558fab951df83c885",{"version":"59b82dc49a7d9051a216c63c5004ae173f1af999281443bde7ff972256c4b29b","signature":"40860cf0998ce2e52dc56413f7ca53bcba3a0e112246ffa4a77061be6588b64c"},{"version":"9936774c4448f288b1c9885181660020e75e1a0c0fcb3cdf4f2ced0c69033d26","signature":"1078bd0f1c6f60dc0de84830005a0cd0becb37ef225120bf7e7bdb27a849ea17"},{"version":"c79eb3d26e263bd5c7c331b18080c50217a25def45f3cf8dab6198393fc36c63","signature":"e663832d6f3ae3e339e94c32b8f2df7b23757d4b447de5399140b1f6486f741f"},{"version":"6b968f842553b47c820413df937074eec9ea19dff0f4f4ac4f9e3fdb764c35f0","signature":"d93509fc0de72a2875fcef5ec12a38271852efadb28a0901ac50511658bb2722"},"5348665270c83ccf8fe7baa49c092d77ffa5b17607edfbcee8ad7b18171461a3","9d33374c995e119f482fb815efd156f4f70201ee715d8770bd2da0b18d8a7016","82fa9c3f9a52772e249bf348b80338d671cf9349bd309d788358eea5de6157fa",{"version":"939f2c81c131f100df4ffa74d34fcfbdb268fa1f0d561f205fa5da5f2e331272","signature":"a4b50d53cdabebca4744f29db8dbac1a144a8763f37f7ee400189bac268d5d39"},{"version":"494daec063204342fa874240dd6319bef2392ca6d5adf11d530bccdb88184594","signature":"a4cfec6467c5ebbd78492897f6a104bdb4cf1b3f4cd717579204e301006cbe7a"},"b23b90ef807b43901b20eafb4ebf29e6795b26d39c0c30ec8dd36dcaa0259a1b","9bfbd39603cb731268cd0909dcd08b8d696dd007417ea5e167d5368f54012e34","c8c4786a04bc4d5f5b8b32e8e610bc60afbff575c45419483966ac68172af2a0",{"version":"67be0a6d3388cba1232675bfa87619cc49f7057ce69016ea081cb78184b7872e","signature":"fc0a656b8391c03e36f43f4f9d20f8b21a7c838be61196bc0fb723dfc426dd60"},{"version":"1c5f80822abc2705856e37d9ef5c563a67488236b4605aad9f309557e45d4e2f","signature":"01224bfca26676fd77001074c07844df0c126803511fb17bc8f02e05dbb6c335"},"11488d1fec0a739bd2f72bed2c753ec89fea7a1717827fb72888bc23d33dab2e","8273e2949b17e23c87efaf659243741e100930e97ec48402b4da1eee4fa67fc8","24d1892e49361ac38bf5a2486bd4cac22bf0839abd3db490392e79b44727f4e4",{"version":"d3bcca8862b4ea7ffeaf0c55d9b0b192d9f016133972bcb3a8e508f8ac1f50b5","signature":"d4a25c24f65e7ba40061f8b77583d21f34902fd469053621eb3e9afba15d9dea"},{"version":"0ab1f2eb077d32a9af0b15d4004b089b1c23cc522cdcf990e277ec4c16de9a7f","signature":"19d886e1e80779baec2a99f0dfd9ee02d2b9b209b787547450cbb05f7af90ff5"},"b99542b0a2f9d2f10368daf909e5eeb611d7326b028093d2156d18c053cbf790","89adf71955f52f702a665d3f58dade075e5b6d36869672681747661ba590f35d","bff3dd2956143f764f999ca56ba08f135bd7b2d6a3717a866799861c617bda4f",{"version":"524a7150d5a1a54c082f682c9341b7292ebed7d87766bdfda7117e267deb0406","signature":"244af3c765352357a81e1de694c508437c349df4a56dd2d058fc92424fa331e9"},{"version":"a34a4c259656d1e77363fdeb7445614332562c02f8649d744cffcc6dd7a3dbf0","signature":"eef12991bfb128025e1596ff1ea79d435de05fe3530a47690f8a3eae704f543b"},{"version":"4f70108f99c9cf2da72d5fa3d3c0b9650315f22a0f4cf01f87047067467ac365","signature":"9d68852825a353d9196e314b3b1d99dfee8a40a65e982353d2313a9ba44f65d6"},"ffea427aa112453f49d3a78c61dc78117c917c63b2a5caa8483a5bc52ddef097","3c451dfa1b995aa2c46da636c9d3c79e4457282431e31c9d031236157adba1b2",{"version":"5f1ec068e266932616306ae3a0269df602ade5f6cace256382b6fccf0b20abae","signature":"6622eea48b064006e67b4e62ad278d8d32eb6d23001ba1d1e2303a940d6177a4"},{"version":"e41189f557fa380d98c0edd378d767b1bc953a76521bf5b53c310c223ca0f56b","signature":"e2866188c6269dece1ff13fe696d6c1f9a22257dee6af457f3db4aa38a3c7b03"},{"version":"bb8fed82b5a32f323807e4fad68d0e17d5af0b6affe622e51597361718898a78","signature":"4b44fdf7a0cddb9ab20e737023cf1d490cb954b9a7a24fc6cf9e4bf8823fb9b6"},"7fa475e04a016c2607314a288b96ca08ded67988583e6a6f008d696f823ab365","28999d65ce93885b7d1e25b8ff1fba6700abab5633d173a77f7e0d5575a2c291",{"version":"b4e6053c55c317cba5dbf13dc03164060b92c39431b44c9219b5e1d44dba2fef","signature":"63fe27ef5a8ee44b9daf39b0d11924d80282154fef9b661f9c259ed14757e5a6"},{"version":"fb3c421093a9881587670b342cb4221676de82d3403bbd325188c35952aad790","signature":"4f37f4e639d4b0b79aafc7d64d71255979f87c231033932d23cb039b0e32738b"},"8e9a45e4bd61af032c449a11852c84725e2b7437f642fda07e4832bfef848bc0","acc56ec9407cdb10d16229ab8fec0092ef6c24ac4ab98284454c959403593474","7b36be3e61f29fed862ab47fda51f9ba0fee8d7cfd269ff2d316485856289cb7",{"version":"d90b5c5a82228da6c169861c8b899fd90bbca0c564720247757378e46a16e2b1","signature":"bdb3a2583b0ad6010ad15f6d277ab2a0f959e856d641a04f2637ca71f12d79a5"},{"version":"2aa67ce02262909e0d72b7696fba2af4d26ef0e4c5a06343a34a4dd155885d6a","signature":"008c2af49cddf0b8001b9cc065aff42d40a9f425652f6ecbdc466c96554c4aab"},"a7908c76e51868d7bc5fa7701a4ae1465643e1f3f944a2fba087e23b347f6669","1c1d92f53c7985364fcfc4b3cc4281ba2915072a2aca171ee5f463e09b2341bc",{"version":"94565e0b8de5b5182f6d4d6c880e0d54ac4da6eaef394eb342d4098e630717ab","signature":"b21c471a78e60447ead5c544ae439edcc23accfc60c1bd8669ebdb535765d443"},{"version":"9bd6f3c84656c300b7a481d0ede9af77dd0d88ae3bf0b01b0247cbb24bb335ec","signature":"37651bad2a27a728198c6645cb76b485c24594a1d8b81bad73ce7413dcaed64b"},{"version":"2f29abef50dfc80475b0025c1e7dc5b0a578294827b04badb7e2c35b5f3e6edf","signature":"eade159e83f135a945c4c503d2fc0743301917f346813ede813bf7af48e1a3dc"},{"version":"b527a3bb987b474f223e7398e71a9db4bc5f0db1d89dd8127020913be0e8f568","signature":"bb9a656c0304b04f0fb7352a138ec2151b809e9f63f87805a89c600e32de1109"},"86e2d315e8ab0d4fb9403568cdb67456507df02daeef02fc0f27a90ec5fb0e98",{"version":"74070e39630ca6dbea8a78f1301dea95590b4a61cc9104e3bb3802f24193efb3","signature":"86656553932a5aad86e378e0ddc45f574a48c30c5c3c60ca5ee921559a244516"},"7c736aff1e1745f181702ee11d16a82417e1368872f0e30ce30ecf16924df278",{"version":"6d4beba6cdf8c2d871a7aad65fb058af65b257d36f0abe661e0019dad0195b28","signature":"340f23d4dbf2c20c8bdc33113d0d8179014e49468ed5f957344c3cf0c7d5cb43"},{"version":"66e0375cad3b0ac63d9cd7528fcfecc82e5f2746052cdb435aeab3875097671e","signature":"067565802813ce30748322a95d66c1f51c09626b9cf0109acaa3425db494bd66"},"47c7ea820e1155580bb8b6d1c6f4081dbd6254aa1328d76158b95a2975fc8e27","c9f8039768ffe6a3ecac2b918f7baa5cb0cd2402b44b589b77d1abec39cee50f",{"version":"c82c6964eec52c37bfd3069c324e0aaef6fa6d0debe438dd4854312204c8d64a","signature":"1d7fc1a3b26785c7d8dd004b8953acf5c0696a587aa6ff913e2ac1be194fa444"},{"version":"17e54749782db7449517ba47a6c9a1c41a24eddb729558054312c89d9f83355c","signature":"85ac3f70e0d8081f8a3356ac2ddf884ef071745ee49cae2d35d825f74919e900"},{"version":"2544572fb905043f804151d393a446594eceb11a2d3435de118b0a505d401c1f","signature":"7e6dba06ceac7ced36b67656d6780b36d314b7bf83b0a8b4d3d085705c2660f2"},{"version":"1d415bf21580b44282ab6496f5460b2beeaf7fe0d9bb66b139c2fee8610a12bb","signature":"38b9127b3daf3783c9ce2b912396873207a2b4fc53066b89b0dfe5d2a12281e8"},"d08b602545ed3b7fcecc80198c3274f8e788f8863b553141e2cc20b983836b6b","24a0245151e982053abbb70420888f2055d3ab0f55ac7b5ab6476aa305a5bc37",{"version":"58b1103cb5fc7cf904a81f33661792af4956ae2d990e2c79af774458d399944a","signature":"c43841b05edf6c70e823b70cc861b73f05d8f504e857d2d55ebe9f3e0a23f634"},{"version":"26a94b59c187e44b4e4dfb3a1ab8a0eb9c5d63c7f8759f761769250cd97271b1","signature":"6ec3fdb7679028bcad7cd766833a425b221c1c32584f5425cbe3bdc1b0a36ce9"},{"version":"f7d0447e758f1e103bab0de23ab0c8ecf3f8f87243a61610846534bc24673566","signature":"f73c3a0af51ac247c933e53a62bbd6950376488f4c0cd7b9077e71cb93184fc0"},"868f4055b6604ad78e951b3a4b6d6b80c972f24e54c8cc8be276ad342ef07e48","f5836d86f33b58b670cbb1271b326ac7160ec5ce8bf8e26753087be558a4299a","de5843e1ea5d9b82a34009151f9dc247b1664896f0acb4966071b59edeb7ef26",{"version":"d24f5a92de0fe13f32d1654bf69eddb275e75f75380be5d63484a76c28ba172e","signature":"6290af4358802bb7a4954ccd956bf2f3480882cd1e6388122c30261386644c22"},{"version":"ad5434126d66ef0be19d84393caf232f253fd61ca7fe4a0c14257bf6ad48d746","signature":"c5a23564f2ff2874497f7474de398ea78a50251c579300468a4f22ebad9450b1"},"217e43d4316e5a7186655967b97d8d8d19fa3bde491cfa4becf5b1ae21264022","7bacc062ef93eae45adf1886180a9236f9ddb4d17bd55b983fb9c1d5d256f4e5","494dc1a01025ae4451ae99c56e58c639d479d21255f42fa9682077f687c43cab",{"version":"b9268bf780a803a1ab9e65ee668e87f5ad0d81bbc4264cddb1333fbc0e462f89","signature":"b30b0e436995b28eb099d106288c03d69ad4eb2f8e2381c9f6ca9eb0ee021986"},{"version":"649aabb32f3cbd6d46234ca0d7603a1346171322e0b7c221f0449e7a99d816d7","signature":"3c3b65e0973bb568ead67acbae5bea98bd9e029659caec08af6f6c22c823acc5"},{"version":"1d44cc68f2d2d6b65fae1bdd15058f8946257f198c6beee43f5d18d223edbb39","signature":"bd9874d835618f942d9006fd6e6c0311dd16cca657ad371ccffbefea754e21f7"},{"version":"246a06b4d7d317bc3c9f1284cd4ab28cf65276d353cb307651f9f4c60d5ad421","signature":"064523f8b1d5e07eb5e3ca8cb5c8788d7981a398b22f10a3162c73fbfaa10027"},"fa4ea7532eb7c2e0d7facf06e901c707c51e12274232e70066bd88d57a318529","321fa711bfccf6a3608c60009137e903679718c4338430a5aa3ad2c5367fe7d5",{"version":"ef3ca8fe6fcdc7ad5b7133c71d7ccf768c17b75e5d7087d55b396c3fa53cdef2","signature":"bfa3580c7b68cbeeeb2aac0c424fbd5511e8c6b99fcbb4ee51a76ec6d840dadb"},{"version":"5326b2c5d60259ae8f5f537c77de1b1f0fdba6961eea53be93b379003b8b724a","signature":"76d4539ff9e9043064659625ccefb50e0430b7c5ef4da2c358015fbdb04cb757"},"097ed5f27cfaca08c5e8298f41a04723f75d1ab08552d0a9a4df9175dff38827","1aa60e2db8d7c5358fcdced8d65e223a3ec8a00cd35ab157e4ca305289dcfe22",{"version":"214b4aa6447fb59bae096e4de603bfbbf8ac91c083563e370da59d722a6d5400","signature":"6a50f00c910b273a9f73931ea5d6829811f3db5cbfaeb97acacb938e3164cf74"},"d6b3a49aa7e291508e66d81a3ea87ee1844f241fac1d85c2da9bceed95d78333",{"version":"c1de79e474bc2bec868c16989d20d0abd02e51b08f04ed9efaf33203694fe3ea","signature":"bf6b9666ef586fe6bc501443e6762f952825468e6024870925a7b832a2ea4b37"},{"version":"df62c1487b7ddb02921ded4a16328e922220be22ce6d65ed6c75963ae56fbcfc","signature":"3c6fd539046412ab0ae584598fbfbc33d590febd055a92d4a353d513968de800"},{"version":"279016e0c88f2ad2e009496c05a0f233407a5ebb08c2e20c29e7f223c1ce2698","signature":"6f68a9b91314e9fe55746169dd30d29033e9ecedad257675e9f1747a0b6290db"},"0acaa0b20282e72291a6bf279dd397f6ffbc39fa2b3a7f8f4f97bf92a5bbbd2d","8cd1fe204b2ca00fe1d18f361375f816e95fbe20f5fd5e2b1de3499477ebe63d",{"version":"dcaaabfc111ed264d13b4ce9e2e2d4a3f96ddec0b282db08d57d2c32ef23e7ae","signature":"bb26576f87d0c36e5460acaf526a4dc82015552beac81ab7475b5d0cf0b1fc3c"},{"version":"f2685396bbe14ad5ad72a5f6ba5b43941d58c8052feb38e341789148458b3963","signature":"ad6253b340491751d96a9745477e4590547e39fb1755d835eef973f0273f73e8"},{"version":"d12880df5fd8ad24c624071d10604be98d5a31858e11d69fb088502ff3b87fd8","signature":"0a64ef92000178c18c3e8ba088bf4de6ce9a74b29c6265540dea47e402e5af3b"},"084b410768dbaea2e495d902485618a250e6000efa2dc69893028d5e5278d006","fad6be3f92db0a8a5f208646fa8ffe65cfb21bba787e483385004ce92beafe14",{"version":"d65dd16c9078bfb7d8601a73009dab3c321ba285db98c714e9c6a5ec45e9fb94","signature":"e72ad5ea613597c468c5130c754a8447f8751b25f76b108a796c796cc1f51552"},{"version":"0a593f91358a6213569b2fc652a1c5880518fa1579be79dd0b8abf6a1c7f1a83","signature":"ab70170d58eeaebd7e2eef6c7493a195bed15722d8cda70c7f2461bb008a7fc3"},{"version":"1d1fffda21947965db9092cd155a052523d9a2552658a3af18d05cc3657b2f4b","signature":"819f35ddf90d8c1d9b2bec2e3b6d867851e7e76d0e04da36adadb9395aa68ab9"},{"version":"2b7386ad7ee65de70009f807ce19aed906fde663c9f6af563a2ff82d45bad76e","signature":"e24e8b28f6823345dd11cf9f8e917f126bde983b3f4846ea00b5962c171b283f"},{"version":"b562f273d4c89a10baf0869c2113812bc1d569380964a593131bd6f723c2b57f","signature":"661fcf560cec6352e92730e4787bbfeefae9a31d51e5e40a5c7b939689d06f3c"},{"version":"bd8a0d7608ad76a24ec69f2c269a8880e346d19517ebc4932c24627543847ca2","signature":"903e857d539d553c927b8833126c12f9a022361d068cc2827f28af5cc93af0dd"},"78751422400cbaef3eedbd10964596fdf1ed4254fdac78488f855d41b433aa48","c89e87d86f81991c2f8138c6336aa863251509e88c2a6a816f38de159ca525a0",{"version":"9943aca8e1b13d4d23c88601e87743afc902082bbdcd0945b2be78e75cc09861","signature":"cb8a556cd1c924f64932c2c3ae43eec16f530fcb781df14b858328ad53ff3661"},"5469124b694e26444194d94673989186fb6e5944dcbf9782025efe4de76ae771","ad7d377bc2a3a6ce3f299e6fc912dd18b2da5912ab6ebbd0f9bc2b935a9810c1",{"version":"4e23d9e855fdddc99f7bced6ef89065fc8904e68dae7c2fcfa367f36289284ea","signature":"831448a8d343cce3b473c6e346eb7bf4036203535fa19f23844386cc0574b1d6"},"db03ab9be44c353d014341ee5f3045f0287c714bb5a085410e367d92cd4ad514","fd6fbbf4f6756d2f359d5d9d23f506b905d2885725795b0f0e5eafa9da27d864",{"version":"9b0282c0162b8e7685736cf79aee7b0c02740feb92c175b40a48f745ea60a5d5","signature":"be895e0b8d37ebd29e73c0d2e3c8dbf61f98443b57ad2693f2063e8677c0f52f"},"0eb4388baf5f5337e89a7d73a50c9380ac551221bd7abd56b2315c51c3114453","1f3c02a647589336ad93d1449fcf0436a09ba49a0431c94d1adb5d436f4e17e3",{"version":"a178d985a82690f57dcf2df956dc8d977fb648d8a0585f6915d5fa0f3ace8697","signature":"ae32d597dadba8ddcbad972e86b7ffc83748ec8eecb4b04adfd21ae0124d33d1"},"2c751c4dbd4d333d2e8c0c8aa4adb2d7909eb668566c6ece5c7e7782a7649519","58509370e94b48323d05a959a9f636a87d08d7adb3feeed2a68b2686507ba7b4",{"version":"9aab05683b8904723bad32cd2668ea1067d4b5d2453bdfc8c09bd1057aabcf21","signature":"4ad35f96e2f397b370ad448753616b62ece8c85d8f0b9e51b060c0184c509043"},"f1153b353bbf33db2ea3b3e7b9e8bd4a62a165ca7211a950e0be593291db35f8","f4243ba8bf4421e2e2e753b680b195341df1a9a91903895e049e0eb9ab67029e",{"version":"3ea2fd49c50105e2bd51a9b8281ed040cec5719a4f2da4b55781560d3f536b58","signature":"59fa1dffca1315fef417fdb316ce9edc00236f76ad9e322c3bd199b910f4d6ad"},"123d3d09c555234af1b104212bf9915a712cee07727167e63c55cf3c83aef16a","f29d66febff725cf43394c02d94a187fb4fed69ea6f5f55f008eb4d780c9a0e9",{"version":"d2d996f911f71d900cdf57c1c2d6a65e68c63ef8555cd8efacd9647341b634a1","signature":"0e91a59c1cd4d960eaf1eede7c31031606dc64e34c20ea5da6cc1671896169a1"},"36383120db1f936e11da06b9db05232eb43f9abe32e0804c297842e194361ffe","21b5d1b47c7511e67f11b1183843cd164fb423f652fcaaff7a1c17510b08ade3",{"version":"2491b117c5c71f62d341a8e15007d3fb78eb9495092baf0f69793938f83f72a1","signature":"24d145b12962527661dbc5b0452ed1190613d5d1a382bc06d2783544777c4ff1"},"4c7ae92df73b8373e17dc683146d3747ee00e41a0ee5097fe0b09076d84062c6","d7d574d61ed6d3ed03f51861dc748ae8778637490338ce351cec35337cb3f32a",{"version":"e7100af28f936699f22a8b44b6dc7c53e3e09e3e7c9b363c56c3a0baa9ce3092","signature":"24337854149b3bb0eae8ade24331cb2cb0048f35a4a344633e9281eaf1c59972"},"fbadd2e611444c78f0005a817d3b08a6915127c704ab73d7f3e213abcb05e928","da9f8bfbb5b9f9ce48eb8cc72859a6e9af2df1145b2c71a21b534d1b8e5a44a6",{"version":"d0a3bf0e2f68924b75659919a9f7fe167540147a82f55ad801c398b82d4e24e5","signature":"a51815078d4ec2f1f514215f08f7de99947d9985057dcc145d9c6e7aee79e9f8"},"1bb68b551575aba625e531a10f5a041147460432109facf0642cbd81d56e9dbf","4ea3c0b59a37c7320d1798886827c7e2e691d566643198233e683f764b6bb044",{"version":"d1a0e1043ce212cf8187c5d25f217c5cb759b7c58b2e9f4e39c112bf10e14a9e","signature":"7a9ba997de73751a6ab94567d8710fdbee766b8aba2a606d2e95351d59d19fe7"},"6d1726a115615211824c5e59bf22de4a4b56d71abee15ddeea87c4572e1627b2","b12426efdc99e0d545f41d34eead177330b336cc3d495d13d652e9f4ee7bcfaa",{"version":"e19e5cec806642092c03d3eec46c6fa32f2a01d368bc0984db6b391b60cfe3cc","signature":"65a29e4ed62c3b7a2c0facede5abb8126d9657fe1bee6443f3d489ba0c6c523b"},"f78d286b66902ec9241ecb52fc5c1593c4d145b960bc74acacb6207f9831325a","92128b5c04b5fa3dae2ac6cfe64b2183d001220a137e82d68464b358e71b9e60",{"version":"402502a2f35a9b78c166a5ebadb79e1724ffc1f6d424c076dcacb8ce08011d2b","signature":"d92eabe2e32bf8ea3e069a31a2ae3417cfe9749ac2bc66bd69ea5d75e40a94ea"},"541c714d7706f0ff246175041238de7fc95ee2cbc9e67970a485eb5e8f502c6f","eab67937768dc159f2add1770211b696ef28c8381db49440a2d0cd6a53bbd7dc",{"version":"dd0ba2c20fe0efc9844c4a9a2f81fe8fa6ab34510f2548da8f4828fdccd2cd7a","signature":"6703d2b49bbc364d6a5a703ec38eb4c9bdf66f348cddc195c7e70aa27557f512"},"08fad8548f8245304f9e080db687042d6cd152b2a708e96c86017035a47dd109","fcedfbd3de9c4cc95dca94f6ece07494cb9a4e5c2e95326e198874346857d670",{"version":"6abd67a36f049e2cb16ef2a5786bd448b6ee3458134f6b634f87112d4a089f79","signature":"9462a798ff747dc4609331d9648712e0eee549babbcba472e17dac2a746f1c03"},"f883a4ed0fb9921cd2d67c0f40a662f6081201eaba11545504e7f0f572c0d7aa","16afd8e6dd842a6523158c81428f04448e14d16a2f08a6334e8036baa3dbdb31",{"version":"607ec12c611e6734b16852e1b9383e7ce5a83ffcfde02f8b075643082ae69a1a","signature":"632c56809c00db1c50c4a1fbbaf7b86555ca80ed5fe410028ab997774c900c57"},"49ae9b494154be458f10b8af62f4562cf114eb6e96fe14ddf5d3384976449b21","5d25b9fae725e5cc6c910dd9f93f59d8c3b45ec9430a479354dd3c0264cda4b2",{"version":"f6f1d3736c051224c0d8cd68dd26dc70f18503bb572774fa81bd6736df771035","signature":"25b238dab0fd2f0cd84345328f5f872197009cc9ea686e520f480c1f4af9b296"},"6dee30e44c3a7a939a9cb4c16fab45f986bbbc4c803f0e1e3903986839586035","d483eb6d531e16b927e5a107a77e7344deb7928051cdb4eb989e068bd01f78ba",{"version":"535ed91a4626e42b315834626106c3384b130f528546a59fd6c1ea8908968590","signature":"ff7edc84cb5ce9475757d7086d3b82445aeeaeb84d88639776e58f32aa045d42"},"e5390adccba67b8b92afe9f73f924c1ff0c2fb0a25475f8f49945244b4ef3063","f8e17145b10440daa24285507cea0efc05424e8e1ce3ca37f2f1acd3daf76285",{"version":"2f2b76ae2f3c30014fb730db9d4d717add072e8fdd23f6b0420fade9ffe8cf1f","signature":"754fbcbdf6ef4d114344486687f762f8975bfdabbc5d90dc77beda232e3c712a"},"fabebd0fee78b990bde2e23a5ab1519b31b562e5c0296b09fe90cf46784e51ea","41eeb1b064ae905e509fe06ea91d5ad99847bc66899c07e17a80fe6101d7c5f9",{"version":"0aa648887f2b03b38b131c364e096f4657b23626f8a2df646f899d835806479c","signature":"6a1e8fd64798d1d89e1ea20342eb074e753cf59c22a402a6300bb73d9bc12c59"},"6a9502e88adeeaeab31351fb95763884dda7f5c2354761b14d83eca88e044da7","f991f23433e35a100ef65074e7c08172f716e8239eca4e725c56e9a8d9a1265a",{"version":"846ab90bf9e92ec393366c1e69aa31b221f40b60542061652864627372661d83","signature":"649b2073114f23f98fbbfb98117b11ef03cf66afe9be8436d2f0e00cf1d1ed84"},"34775730b41a9b026c4c55960b73bd6a1188cd6bdfc46ea7703b6326170ab6fc",{"version":"dfe6168afbc8fd31aea1a854e7743584256fc418a93492d7591af598c9c04e65","signature":"d25162e4aa09763b73b1d91dfbe5f020cfde50f2b0f0118c65a92edc6e933c5f"},"a2b05dd61bc25f46d0e03c2130c4aa90f5492d115b47c0bf1d69f473ebbf390d","db577dc2ab8861cd5e3375592e93cf80aedaf078d1fc7d002c4ed09bf329540a",{"version":"9b5aaa2d1da25f286d43c66290a1ea79569d318eebd2d6f719ccd5e6b09e3b89","signature":"fb7ada845171485e401154a19c602f363d24eb180ab2dfcbaa642c5e44681190"},"aecf8b0054dc506dd63e39a2655890062ed918823489f479a292a0ccaa4dc3d9","c36e64c68733028a6ae982736f6174c95071619449eea6d685a1de26e7627086",{"version":"c82e55daa8d7ad53eeab5267b71cffab54d6d648745791703d383e0f65b89289","signature":"5b355235c89bda9891fc74041de83479ec2d18e3edbfc45143d92b336b32816b"},"45830bd0173560d9249cca377a391d03c1eeb363f32408b934bf422fc2bbd7c9","8deca580e6d157c21268840f65e7cb337d83b8a4f83dad491c4c2f512d0a676e","25b6a53cbd29a6c820b777023d20a64e92c20c0615fd39e67b20451de89036af",{"version":"685d7f6d22dc718237d823c5b9be9e614598a1b4fc3d3bf4accc9999dbcd74f8","signature":"0ea662091b83650c14c555917471cf31b418b60bcc593f600706cecf2cd101fa"},"c62fd188d4b69018b731290c1c1f8baf112a567ef3264ff31edbc6b6b44fbfd0","930fb95735057d5d599608f250436b7c28536eae435e4b929c007d0359a51be9",{"version":"63e744af5c97aaece1b80eb4aeccd252783f3968476f6183027c1bf9f67ba382","signature":"91db1481aa370487979ac5981e85cfd9d82f8a68f3312c465a4895101bda6508"},"0193555d43bebbe5106b34b9801062f058f2977045f40a493afcde6b15735c49","5af119daccfb138e61bfcd8a2f2ee6cd454dc651177f88d447d64d8cdbc9ebca",{"version":"486cc46f03ed14a8b06bf44b04f0c88cd58249301797bd655761b6464b94b040","signature":"71eff3479a2be8822d050d24e8fe35bfc5ec9764923612a3dbac4f77dc077d91"},"222d0d1c77b4c66da638a0bf81d629ec3d9952553da0e1584a96bb0bb2aaacf5","28f3d1b513bd0cf34ed0cc593734e5a0b7d1b7141c7c3cff035020e740cf3b4a",{"version":"71db47fd89c8cd87f95420726ba9aef6abe5a784ac66652ded5bfc9ec0c2c49d","signature":"ba8d26a19197a4812f79d80ec133c95d6e0d438a6d4272a645565b578152acd9"},"c37a96359843f2f0877a14d8e1d313a840961e48320e00a5cb88b19e649133ee","956bbae494a9e55274d06b52324088bad1df544fe3c80ee7d660cb34385e1abd",{"version":"2a1f72cea21124cafc824df426609e6bbeaf4bf1113442f10b0d544b56eb4d39","signature":"137475bcf450c102453d789e607a87d52dedccc33fcbc6547bad1f38725572f9"},"4432fb4d9b3cefd767361e073f8b5fa2dc3b290e855c7728862af332560f5c7f","cab82718bdc1504aea10f68c53085bc58ba172adf71c18d0f65baf5767c39d9d",{"version":"da72b3bde7ebca2efd0d7da380a3485a93149b13ecd4f4ec9bd644bc564bd28c","signature":"8b6460319d6c410bb80edbc5543c0cda46a81fe938e95d7b49a86d1f2d2dbe49"},"64f487135d2f0d05e576b09a9caff0e7dde64fe9096df03434166978f23ddf4f","456b9dd83de456c0ed3e3b2f747167eb98fb108d8ae7d0442beed2eab13ec05e",{"version":"6b1a1513d324488795786209de9db858883f3adfcc1f2efa1113c975e5056456","signature":"58cffca7c6926f268b119fa3def0ece861f07173e2a0f8bae83d565937a217ef"},"95da6dbf5482efa36ebd76168eee08acadcde177545fe955c39f34b9bdd4f18b","02cc16a295ad8175b1450c6a769d232d43139e4ca0f3983aa3314af79aeb4710",{"version":"d849f22706dac990c2e1993db948a8daabd9f29b9c924fd12b901bd5a01985a5","signature":"c4aec07db5927bfce95cd62ea1ce437aa8e54ea84aea4d03f80d1e14a316f215"},"be134fe5ce8aac65f1a916a804eaa5abc8d34004da6fe8747f9bdad1eabecfcf",{"version":"4b66cff4c948bc7e55592ba517e6a193bc25d1cd04066c2487ff36be21636b08","signature":"314c0f3256aec8add8b0656ea05c172b6676fa320c931f8605c697641ee7e02b"},{"version":"6dc094c3f031caba13ae727e6cd036716d848ec9600f0439f6e352b7d9dbf9bc","signature":"9c383fef7e4a98f93b0b7f3611108ce49415ed458c6cac2038b445cdee0f5bb5"},"3c005a44f35060026042ca881b2205b1e5d09e2a378d50fbe6a2830550a4f0ab","9b6ef5f8e20520789e7ea68fc0d4c526fc6a0dc674270825791298542c21aad7",{"version":"74aaa14034a0700a6e0c76bbb9e91f950e101fbb12ffd7947e79dfc1ac027821","signature":"38ee46442a8f624203d362c445a08abf3f90d981616f7ba4c30f721aaf2c06bb"},"9725ee1383e481778c643d3cb0ddabadeb625f14caf39c43c7516f60ea5f764f","d3673a2852c10784f461e867eccc155b7269ea4b7fcad16fba518a25d056d580",{"version":"34f83a971448edf194b6f6e04cab0f187886ad37a3a4e85e80165d2e46b28e4f","signature":"24a6198a7580bb203d000bb86217e17439daf1fb9c494854ffe1675c0553b3d7"},"f0efc6edbd6539cfcf7f476466246d7002f77dccf1aaccffb22b86794f304eea","79bff54064327871e100ebe46b9fd7a734577fea04eb1675ea1f5fad81f1637f",{"version":"b06b02692f61be7ffecf17190ca564b0706c905980d3ad079a8980179b7d074e","signature":"bfcbb1e81812b44f4b24152e6ae038c21c3764cfe87dcd7b5b113f829a777fd3"},"bd315f1e1b491f1e5fd6bf5e113f5eedca0d9fd33da629da08b09acfbeaf48f5","a1c66f6d09c6efa897e56d3dceba9ee2fb9bc54d367dec8eee576920f34e8403",{"version":"eb204fa7d756b2ce990f978d96dd978db281b6735b4cf19eecbcad2e955b7770","signature":"81e6a9ac779551923c3dc111a6a92160a1b66e68753f3210f3813a5888d8caff"},"3ddcb703e7da5223a9e8cd252abc8be1007af07b6e43da7b5498a1813cb637cd","bd6452edcfaba43096a8408274d3fe6dda7ef71e719490cabd81dbb79e07e310",{"version":"00739617889cc8b97484abb3c1cf1bcd89d8736f912f72e58a983e97d3c60810","signature":"016c6e8e061e31dceb1c1fdddc2e983ef268ef66268910fe1c5c87facc51f29f"},"4fa6973764030cd81150c2488c59ae3fe52fb38c5bb6f1d54c3928dc3d54ffc4","eb9eedee7f1419d6f26ce7b3d31e95635031881fac035729652db3242780328c",{"version":"c495ae5440be6ef78fcb6bf67a220f33fcf90ac0c23b00b66635e558d5f240ef","signature":"832c99530a0e934510c9b9ead2fc4aafdae7520ee6b262dd9b7f22d86ce3aa4c"},"5dd62891d3c25fbe0591cf4de757b29e898802178c40bf1c6adb88811b592ca0","f6054f5d5b5679a4f4765143fd491a25a3ac80c709d5b59c4010c8e9f9c57293",{"version":"12030ca9a5e382024ee5a87fa9d93e1164b0473bca6208c74d2e0b230e87deee","signature":"fa5ad338a4ad53117a050897ec039f89cf72728cc9f05661dc44c264d4f1fef0"},"c7698e607cf97edd7a304a8a00313984c79fa23f866dfe3301975e64f3e39010","0e854da095b913649f94b8e4952963c614fdec6ed352a5dd7b325e189ac4c129",{"version":"426991bc7c6ef8b07f25368efc11a5ef2c1fdcb4e110abcbef7bbbcb65ae9c10","signature":"a47d62b21b8728648357154df78efec4c9b1744f12e17de4441c30fb9bcf3458"},"aa046ae938f750af97f6dff4221afe6cd918d2da0336d4e88c448b445e133632","1030b1c0cfbacabbef95d8fd562758f80a68073c6fdc04860fe33eee0841a5e2",{"version":"52d033de682c070fd65fc4f0e80e9abe06a5cdde52dc9765433b20fdf564d763","signature":"5dc7565c3b3c99112574fe5c138aa9036acd41b2dc38edc058c5c427d2a34e64"},"69bb10b92dd4f5bfe27161be0b293eb7039fb1167c421fcfbb0f32809d57ba11",{"version":"c04b9f614fb6a6133016cd92f594a1b8f19419ea5b22987d42a7e940672816d1","signature":"ecd08c29bec47ef29a6d22ad6537dbe1ba1e211ec0182a6de3dcb3aa50220872"},{"version":"a1acf586d5611819a032a13e445d75f9833e0ea8b47d8b9b1f0ae50a57a9c8ca","signature":"192d5470d058607ca06c2402faeabf8f6e5c8834721f840c2eb21eb60f7105e9"},"a005c07fd14a753cd906be669de75aeb036f5581a8c2acccc2719227f1c2ab55","de22819c86ab04b4d2d96700c14f2a443be7fe6961165dee2cebfa5d33e88671",{"version":"08da834b371d355ec2d05032dd7650fbe540e2ea1722e247dc0199c53a2a20c8","signature":"6a1453d9cff4a08d24cc0953a7dea25f9a1c932725374b68cf4d98890f83a273"},"3dbef6cfa4ae2df84b296cb396826ffc50efe39ab385edda58d7f1c24ffee2c8","c3224f98e58d360994594f2423ef5d0c7bf40c641c19fb8faa2e030c321cdf66",{"version":"1fb5b65e71e39c622335efa852007c494bb7aa01cd34aedfd2be9412b95c15db","signature":"a23955eede9024126fd60dc0693954793fb45df3a7df055973532e6fc08ccd2d"},"1db913e6ac00e65b8de13eb408865530d25ea7c0f71be41b903b891a3d965511","acdd9b7caef0062f56699a7dfd34d71b8f4fcc1a6e51c322b92df5f6412c7e3e",{"version":"049ce62d668ef6f184a3797e2752bdc9b37eebb964256c0d63653fa18401d9ea","signature":"9e39a40e1898e6b25805dbb321176e9d2e3bbccf0f71f76c1d7e920b34e77102"},"65212ca07b846beadeb549f800808dc32ced4a0dd235868937ac34a0c5641431","5a88e86b9b29fde5ecd5714f6a9753cabbb001ab61b8caf0c25ce7edbf906b6d",{"version":"8e63432ba4ffb9c40e71c1812f816d4eb21d72653d34e7c9dfa81e3af92ab60f","signature":"5ab32891d8b10466cb96db76c6bfe7a799515110acfa44efde5e8bc42e8958c5"},{"version":"4d8a62f303aa4b8533003e08d5e1310036bd76c411ba14e08cdf8325f700130a","signature":"421a4264a8db67f39393cfecb77ca4c92ff310df314c466976122c57ff2abefd"},{"version":"17dc941b000fcfb46fbb8cee4434e12e598e700ca3e5323a3d2ec49d4d6b0c8e","signature":"bf4aedf43f07d1386e7285b0a728557c0792879a9e9126da27ba430be45b31f6"},"392b3c5d17e693b118b2714c333d9a2ebc6059c149cfd4146f35b1747a335a61",{"version":"dd2aec28a5423bf75263afb94d61acd3fe66ea16b692fe6b411a84cdc7d900ce","signature":"8b690568544416a06f4975d3340d0c92158a6337a30413f1b5628f6d098a0e38"},{"version":"a16a4eacbaf501c46ed1b5390d1c0be353aa8a779797116135de1a4be191ae25","signature":"4d3bd30062480a9d712d4243b5b04bc90d89e5d700afeb548acb372733dd9670"},{"version":"a0d123b28e07c90cbf2d109fc9c21d902360bf55c92bd5918b69d38444ecf9a6","signature":"c3a2c716b2c07eb9ba223807be925162693499c43908ad9a2b98cb40585141ec"},{"version":"9d0dfbfec555f44b7aad22e2e3ca6bc2676fa87ab1b5dea8e59b0a87ec14f056","signature":"6318aa52ce075852b922ad5580aaafeaa1dbd94a4ea3783f5df198c7365a2787"},{"version":"40e190295f657da6a5213c33065384657542348063663419517b39a84dc233aa","signature":"e963b4e8fbc11378361fb97f965dab23a1aa83262fe5841572742a7a17421d41"},{"version":"7e9a91777401ec9ce9f8d1fbaa50acccd55cebce3edbfff373f28accdb82d2a6","signature":"6b23dd16a6d60e6c79db1836b240670a911377100ddae7020ae2b4ef038d4921"},{"version":"cebcfd7b4f40aba00c1e316df7e2844f662b616109fbe3f87911364a8dd04380","signature":"998e4b25f99719d79e5df74b505d78eee02afb045889879345e5973f2dc10099"},{"version":"9c93d7ebca01a99e4b19d452e8fc6f2327e76049508973d1a27f4d4d6a4711cd","signature":"b032d5e5600115c8e0e06eca29ad5af23fc687edd51353917631805fe155d6bc"},{"version":"6b0d0d5541390b938fe3e03012ddb39a811123caed3761da6d941229f4fff8f9","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"89a01093a50a5119954ef4fdb08f614bf3c1dfa5954f5f7245851fa082084411","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"ddf293c0c11781b991cfb2f9580b581b5d4bf6cd4f48b2e9fd48fa0d01b60697","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"c40c4d5c0ebc01a3a6c5ed4e2b7902c918d75c7db1f014a1c405fd3b1bdedf6b","signature":"e8d9abe325941b9ab91dc2f2040dd0022e9b8cadceb4ea7839a320d479304c9d"},{"version":"8db4f5576ed23c370caa6bbd2dc76ec9887fb37a279d4e763feb1a0b0f04c2a3","signature":"ed59bcdd1f62b2f809cc5b2714ca820f03d077f985672d4b8e65f30be2587a13"},{"version":"1516cbe7aa5330182dcd93ecbddebc48f8315366f87e9af40ba88ac0ff53f9ca","signature":"2ffd4b62db6ac8dbda52d0d33d9a6ecdfbd5b5ba9243cdf088fd4d467efec8f7"},{"version":"b29797d34aff7dc657dca9be5ba0eaa7f6c8feb2878ed66d94850be84403670f","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"8fbf9bc2586fd1b88db2328f5b85794d57f22b991324dcd9fabae6ce1a41fac8","signature":"dacf6a2bdaee361bcb82bfa1204575aa6e705c005ccfad3a8649a3d6f2c435db"},{"version":"927e9f613856f9ee67752d7badda229b78741dc6bc542f71733d1c582fff3ed6","signature":"10f3d3306e9ab71e0cf670ef4cea07737b8f964135f678df755c539ca4e5feaf"},{"version":"93e5a9922216e3fdbc9b28e932981f8037989815cb8b72182892b91b1c043ad8","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"b92cf833491d1d07af28ce316052d7f43ac0a59035f5b40c59812aba66592864","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"699f63f07d8456b110dfb8f1d00e33ebd6331ca8fac3988d0e584c0e1ee9d0c8","signature":"239c17d24b7787f5dea29c1aa36ee333ac36b3189cdc833125a4fac1f7f2550a"},{"version":"4c9a384cf489fa3e6b2ece9df43cd9ec277e396abb7ae547da7d74e2e4f25214","signature":"239736327b8f76b305c07658d8e1ef886b58aa80804d280fbeccb2cee250578a"},{"version":"b02247f30e089826102ca77a3903d3310677e38e852c9a25f12b769fa01bc8ed","signature":"ecaff2db8e5d15f3e2fdf1390deda1b74c92e7b7fab771a22d30693e45c860b8"},{"version":"06ecfc0e7153221207c61c82046f8cc32e6ac2f27aabed3248ae355ebeecbbd3","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"97e807e55c692a67847834ed928c930f7f7a388430d4286232e2d42d0eaa8c9a","signature":"d64778832176b2ed1db6f36845d92529aed5f2312e5ae8c58294d51c2ec25d2b"},{"version":"8d46079eb4ff77766b815512e318d4e5f0172ff97318e81887126a4f218714be","signature":"b24d1a549e29408d8c87243fb9d1c900255f4ce33cb9b866794a3df0195b753a"},{"version":"4bb3bc9ea05eb53baff9900aa5b69a85a268d3e76e790ef113b41a013cf79392","signature":"298afd933a341436221f85ed65c318b039766cb88d52bb9db80cf1fe05761b1d"},{"version":"00a7dd9830e9077da3b9ba9f117bd55084384a14031698a61a648781dabdba3e","signature":"f31e2e2f2f7cb48ccd1cd0d368908f6dab09143e58a33963e11ff62d12f09e1d"},{"version":"d8e818134c5567ac231440610ee1b536a3fb394bb5f15e08e69891f28baa4be8","signature":"37e5512847e933c4a48931d70750100f0ecbeab95982966ce2e744edcc823c6d"},{"version":"8e19e1f951eb4474fdecd357fd3b2b5d9c79ddf1c771fe7d4abd2ea814cb45a5","signature":"5241de7f90eeef61171fb47e1c387be0159580b53442d4a1b18bfb5e9a46f547"},{"version":"57a8ee5e182a1c452924676372e23e55e8255977b120c99f7ed73240103ed00a","signature":"93d97c4129ff381eaee4eb3fdc5e44d4a176139ab905c5861541036740aa62cc"},{"version":"3a857a69bd586c5f11ae8e3c6e5eeae15cf380b000ea4c595f5c0bc038fcb564","signature":"11672e8b051cd808217973f89dc1f6a09d5eec1a2ccdc217999d4494cf700d86"},{"version":"5cf9e41bc5aa4e393dafaffce7016653513254d91e53b67057e52455089e1d59","signature":"0a26c84b09a52e23caa4823f8557ced7917faf5017b787d73a6042e624517d98"},{"version":"2231655ab7a1a428f2d4ca3782fcdfceef380ca43cf50b1f6adccf0c5f3e39b1","signature":"f94f8374e3a8cd1bbdc136dbc7d0ea7a726ec6965918cdfefa8d7a6e9937c47b"},{"version":"087d08041529532beaeea7977703aee141e978c0c57eba7202a4a9b2eabfb1b9","signature":"246b8ffc060fd89e8017c49af2640de37c729050d8455a13b9c5b7aa2fb0f08c"},{"version":"a89187b2b756faf7c596e219c665d9b79cc53f09d57bbb2873121220b19c54f3","signature":"cc88a64b265fcd7a8abce877bc643aabd7f3612d7be324b4374a1fe33766e601"},{"version":"015ad3ca7381ab4a97182d1dd892df5597c60312a4e9df2b0d668976fefa2ee1","signature":"e0021060d2b95f6af5ab3cec49a341783a974faab5d26f0fc87ded5d82a624fc"},{"version":"dec4ace3d5cdf28092772affa5684941655ed18a5ca773d62e2fbb3c1771ed8e","signature":"2e9e7c17b99af18a3085e059e7a8e82099e7dc26aa8cce33f7f4430433434292"},{"version":"c8fa290dea80a99778d51b1c869cbc2bfbfe548454d15ad2a751375aba0e4044","signature":"68e493100a91bec5b7fa0d80e8c1e449a0584bf63348529e954a511c8a96a2e0"},{"version":"2d8b0934a4c9711e82f6f454120f696722d5cfe27372799180d3a804a1abcf5c","signature":"53f932d15ec8fb35c18ac166550dde2ba4f665cf1653dda762fbd11e3ac24ba7"},{"version":"733ab248ec57592e94cf9ff4d9dd7d04d7c312e786c07ea101e1e24f238e615b","signature":"984cb284f65f40af5423b50544c5c77dc51384a32139ac6d4ce2ec4602976cb3"},{"version":"287dc43f37d75e53182a8d9519245ec6593d2d15a0b39b1886e88a7f7954df19","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"3c67abbfaafc431b1f07e8dcee7d7aa2dc94cb379c2f1c494ebf579096121cad","signature":"0e8f1980aa851531881e473244746608ec37877bbd4b503987e592ac77168442"},{"version":"62427d037cfd5c03d7b1b750f4ad54d856827acb8f05b795e66b0fc0b2602715","signature":"761f85978d69b881375065c748dbb20710d3ebf3236571c3c16543c2ef315589"},{"version":"5546efad55e63c3777b3ac07dc44fd272e6cbde200f8631c23005deb99d4e704","signature":"042ed4c98cda8201850270e381f0d82bbc3424eb36d8ab88e025ee67be91f589"},{"version":"7c5a18b6d8ae1b5484b214cf52ecd9736ddfc193261dbaf30d1d1245026cccf3","signature":"b4fc4331ee2d938b8885d76bd634494b5449bcba6055633c66c232b61547623d"},{"version":"10f47caa205469e1710a3696faf37d0c16471fcc059c464f8e3e174bc7c6a010","signature":"43ac9e94f7db0b979d200dd7f5f6b8ea42a8709c360a2bb66ac93c010d9487aa"},{"version":"b35c438040de40d6c6418b92683439287e7d177b83dd56e599e095f668fde824","signature":"ae40f71306e001aa758729fc1f8d7d7026975f882d1d5d1e075decba40390afc"},{"version":"2b924bcc06de44e4dadbeac419aa4c05c83d76b118f6556db1fbdf632c0885d1","signature":"3e440f79c8d1fd845c9a602ad25944b7511c67093e0783b3b4979ce4a32cfad3"},{"version":"8c0208fe063bb35c4c5dc7957e5b0297c48451ad10d997c82aa10f713c348427","signature":"2f4f50e15124fadc5d1b6683b3dc58d46bc99acb325247e792a1482614150fa1"},{"version":"48e2aa44ec54408dac40d9c5983afbd1a1631661b687741785abec5141ab1b5a","signature":"925c9dc40e6ecd6b4c0b9e07b8370b3ddcd940644cd11a40cea9416ab947c67a"},{"version":"56319fe22cda0f2bd339e453cf1d563b2780cfbe641143a1bef13450deb7219f","signature":"3fe55f75f5fe7cce537ab30c3c54cf7cdc9e9cc168926ad6b4cbde0a42994fac"},{"version":"315543dddc2fc6ed838307606a3474e04604f47927aa68ca4c37073fc344b6aa","signature":"c0f9ac0b3adc53b6e829e1db76d88d8bca7c495cbbba75087632d4a4a44eeee7"},{"version":"f6737ad4263270016bfa3d506d1b0b3e75dbdfa7d5f6870543327b0804d425c0","signature":"e81be74246bb1236ab6099d74eab5dab723daa90a5c8c9a015acc465450a1a45"},{"version":"87f71f76bb0547c92f8ec349c83489496604c6c62e579903cbcbaf55b3b06359","signature":"6e09c39eabc1bb77c07cb584b4031dc838f082a4d49cef225d5269de4f693dd4"},{"version":"992d32d43b4c56a8864f73c287555c672e3ab082896fb61075a830b960660009","signature":"51c4a8455f4ba936a67b3ae6fc730a20cae29cbc6823109859d63c8c91cd2b5b"},{"version":"82628f1b4ba34e036dac2f6c5a2e2684f70c7e0aed5eed8853cd0cbde51439dd","signature":"6b996f9d72b7e75137c29c3c2881dfb032d8ecd1641386fa1baa34f258b8fffb"},{"version":"308d7bcfc0424942a792eb52a0cadc6beee12791f4893b4ecf5abd505236f2c9","signature":"53fe5f0dded067f0d80d9a13110c3c709ae6c71761f63ce97e1135437e0e64fe"},{"version":"b4771ffe3027e36a45504d4cd922b03b9ffe78207fa50afc8e9d57b36f778aed","signature":"a547f68c0f67a714571e594801540503612d250167c2e4402ee8e6a91d10528f"},{"version":"e75faca758d6f76a07490df0d87737d07438eabdcc0676ba91cec12ba3c6fd57","signature":"2485a93fc4ae8d148770a8dc0071fb70971183297b97ac65a5b6aeda2c79e049"},{"version":"8ecf39833788a1bd5ecba0a9cbe4de046f853d9b51216a7dfb4074a8db01641b","signature":"9854e74121654f999ea6569dd270d4c6638a9171d25c27b2135c085d08bfb318"},{"version":"49a08e16cdc9f764eb89a9d477144090cba91f7acc9685c679872c57db9b4a4a","signature":"e4055cad894bfe4f8b80923ffa69103edbbf82946cf5ac526a827fc49b7fcb0e"},{"version":"a66d3b4558cfcfc6930020380f85682502d8e66475dea90d406aa4e8aa373c99","signature":"4d021f62791c89ca27c568f024c3b95af0b5073d42d31b82b6185decb085a6c3"},{"version":"b8d5d63104a711901e2fdc5c09d08b2253fe8a4c79e13a9b91353713297692cf","signature":"02b228dabeb1b318a700b1a2681ce019afec85b179dca45e5e8a499723cf8011"},{"version":"d41a42ad79c9d6d0d5c631c638b509a6a0b0a4fb77f2a14dbfcae97fc0d7e270","signature":"faa2bd9cfca54191522ce8b5fbfeb91c97b9274cec10c64e68c367ee309ee9a3"},{"version":"7c21445fcf090a77169942103726fd167005816bf683a435a95fd14028e79912","signature":"72f7b89360cce8750153b28463d90875c036e262a9c3019d2aa0392b585902b8"},{"version":"6309398efdd3fafe020aa80881c7636e7225b4a4a996a67fb8be83676e6a1766","signature":"98693d30664b5a8409e105376e439556a5e6dedde7faa346a622169d21c93673"},{"version":"c2fb328f89f25bcb5cb08ae324b5f0818cc5f07f4ac266163a3f8e8ae69d4d0b","signature":"26f52696a7af3d1bed6dc010f3aadd2c8cabfaa70a0eeac56d99686082b97ad5"},{"version":"0a10b37b32fbd0fd1961dceab80b14afef3646708f8d0c2fa507bc363050690e","signature":"903deb7a867f20a543d928345331e792c03665541b3810da43f1866c6c575af2"},{"version":"3869b8dc38f5ca07dc2317259c98881ec2227cb89ff6489e7509635022c72d89","signature":"d72e8063c558cdd6ef2dc982f43c0f659a088adc9cdf9fbe70ed021c77484cca"},{"version":"103ed395e4ff923110e3db2cecc94584ca6c67594d220a7a258dd83aa4a4c90c","signature":"ae63cdd9be1eaf2332468a06e8d5deea6ff78bafc66efb90be313a6c398fc178"},{"version":"c0aab8aa5bc3244875e83cc0f091221d58ef535c2cb336b1449c64187d00398a","signature":"8ac15c4bfcdf83dc55eebdfc0bfb36e02905810a0a982faa4094ab79855bb308"},{"version":"1437c7f5858fb37c73c2a05c3825a714ab6f3cd54bcb7bb2831e928d08dfcfc5","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d336e2842c7ad6f757d182759869fbab5ee3c26c01e01ee607c7bad82d5f5fa8","signature":"429248d7944f5b776f5bcbfeeb0be199219fce3df503bac8cbc50e1fcf70dce1"},{"version":"e05e9523ee4300c287cff0b0382dd3b6ba520796a7362a2285997035609a7e6c","signature":"033fb6f6bc68a077d2d2cb09c1522d430ff64114a50019315aef3a65bb7a4af9"},{"version":"8d32443bbe4ebbfca0fc254c7757bbb6c7084900a0c6f513cb28491eec1d1309","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"40ee5363c8d2ef9ea43fd4f879a025d99d2e3f4811a78920dd169cb516541c7f","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"c078bf0cf8879269e3ec0e425cc642a55390bb0223e33288af7ff4302fa37550","signature":"589de113a7b0f2af5b958f2b069a7d2573a9546799d9a206dfde39efa8fa098b"},{"version":"092f00cbb4c36cca9e406f271ecc8d66d30663fdddee90e33daccf4fad91c0b0","signature":"8f52e26b82036a21ef02c65ef325d29a928d547666d7f8d310c66c539aff4270"},{"version":"b528df67feec9212f224076741f20718c4ebf3a0a997b44ef4b6086d8fcaac65","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"1083d06f422574d0c14f1092638e566a2b01c64fbb2cbcf7db8ceb7c4837104c","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"45bc4d047c886ab9b6d33fcfd9c407fbcd85a86338e317a9f7e9de41712c5f2c","signature":"f2d9cb4dc3408d8c96be87a250ae8fded3f4f1e1a95cbc6bc5d5175ec83c31ee"},{"version":"857bbb619afaa3f44eebe5c3c9b945e4c67809ad9c773f62241578c989fba6b3","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"db80bfb52f2aa3db3e969d6dacc92161c8d290657a6cae7444c5568e520204a0","signature":"7c36285bda96bebb8aeb90a16175e65fb39ddb4efb0be8fb23f892f3975d1284"},{"version":"ff61e1c2960bb2b5a63d737efdd881bb59620e5ed1098f8822229e26cc42e595","signature":"bf8ca0b265d0278db8022889f56bfed195f74f080273e31efff6057e979f2dc3"},{"version":"34d846061a08d3e6fbcc89caa7ca35c9a87ff05dde8a0af097f744f9006f779c","signature":"1132689b73e5e1becf4426fd24a8e29654e153d737bbce013bf8ac045a5f7798"},{"version":"64349378a2c0c6f350819611d4c013264a6c2b21530b5077de422a34e881508a","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"eebe80f7676496d904de7a0cccebdb7b1463a4f14a4e8389d36838b55c3171bd","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"6f074e9fa941991cb32da6f25b164ca84c5e68d971e24d30c3efcd206f426a7e","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"0ba430ed8a408a86454842dfc2eb506858ad7d531725c1e754f158a72eec130d","signature":"4457315d4b47ae0b46cef30602a35999d6751240f1cd6a7fc53daa33d0d6cfdc"},{"version":"8b4000d1fae0b12844500a68d3f62e4482e05a4d51491c733cd19c0ec51bbd77","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"a14f4261b9b324956aee398fb3c450cd408fcedf087d5f454bea2daaa4a5ca90","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d74df3a425cf8caa3df44327225fdcb04d2ac6e70578e7d3146dc85b3b4e9841","signature":"df446da13d0ff7fd3c7b108ac9a5ceee3c38a26df6dc24ce721379fe85a1967f"},{"version":"d447c78d30f35430b1c83e453f2249baae51df637f06c39d117eb52dd84ba5c8","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fab60b3dfda338a1a1d53c9f8e51620d06945145e46f70284668649caa355e74","signature":"454923ba54e9232e88d84d89499377cdd502d1d26d463739b218a3b85c5cf66c"},{"version":"e6d0bc31c6335fd1fd94a4163e40b96335e3d7d3b35079a22caffe74766d6e61","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"65ef1177609cb72e66023b9a59b6dca25e03a805458251be57c9906f1ec026e0","signature":"3f6ee39fd1af27ff3c0eba791cfec9e76e6fba45c4a60cc77a7a51361c5f4502"},{"version":"c0f165462ac8113b6e38620cf07ccc995c3df2778a6a62e341acdf03aca1d722","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"641e130714be1c625ea1bbec882ef94ff08ca8bdc5ed2086b8673cb3a2b5c61c","signature":"42cfe24e606333169cefb1713c33ea837ac27f6ba89528381dea393e52b39666"},{"version":"d1be997d2035e874afb562cc28a15568a27186e84d8aa4e2b37d64f6183c21a8","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fa557a769b780420ac070351e332af196f693e0cb8feac75ccdfec911b3f9b82","signature":"0ee9541abbf67ab14c3ebedd9ac350e45f40005910e7aa2f74c79888dcf524c0"},{"version":"8502e84dab02317e48a05ced2264616f975718ac6741c41bb2f4167172ea3262","signature":"00ec49a2de44e253afd3e4e0aa276921a2614528be82e1dfe33e9e6c1d36c50e"},{"version":"434919115eca15c8acf51336166b1b42bc22c92b9cb57fa85a4f4d0d487bef30","signature":"f0534b73f74b32651a6c0cc87cbd3c68abc8d525a221a8fada57bbcc0504439e"},{"version":"3f18ed0387ce51a0ae64258ce038558adce72107da04c722fcd106bd0bf435fb","signature":"3ed3607be89c07d5f0e4898f60ce23ba66e484d1259133f3617b0cbd10a41432"},{"version":"dc69a9016516ab0d8dcb78d66461243487cbdbf0740eb3a310546f631d77b7c9","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"80602776f7578051c41d44e27ba7fb5e1da0d372d5dee46441c1533c84fadc20","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"504cec130a144a59c970ae5450f03d4282802a2def022535b9c6b723f1566444","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d2a1c5e07f8255297a6096e8d495397a7e6966233d2d74ed20f29b25d4e45a5b","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"314557bb4d6b5d1c0505cc297556c06cecf778f861faf5b24994bf03bd12840d","signature":"91f0f6ac4a023958bff61b37cda5b32ced352785b2bd5a868d4a4b6253b9b4eb"},{"version":"0cdafaa8a286744d0116fe3f6f4618b02791f16570c48b199a1700caeef35360","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"345b4e71ea1925d5a96a3467c0b28748846795f09ce1e15dc7ea8ef75941369b","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fdf9d602c50ac8cd4d910ac58bbe54440cf63489e7231e7019ab2c82f9096d6c","signature":"b4b289abeb37159a42356b4850bb9ea3175613d9b0766b3a9696ebe03f4d8b25"},{"version":"6c520daf55c8096bb83d8a0322f148000d754c34d9c47b0a5fc73712b81f5a39","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"85ffc9f739f8afb45b07555e07d44fa3a98a781040b6378520e9e2f401913d86","signature":"dde0c5f2d4a44a6df40d34e785dc9acc1155fbcbc3333dc14d30f074c0920217"},{"version":"d1cc9adca2a645642ff4931a13db670d57b6873e9553f651308e012b2ef8b61f","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"b4779aa71c3185c6f79bb03e827eed2e72c0d9a5050bac60cf96179729c099aa","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"653a7956fab9c3b54280ffa220b8653103cb5fb1248d1a0ca9d4d5367e059ad2","signature":"1b3345c339caf9085207ce8165bfb2a41e8532cebfae2f56522b070f9653f2e5"},{"version":"79e85a7daf41abee7e7a143147c115319dc7ad7318ffee4d5a76f1187e3ba1b6","signature":"ff3d8b83b6761638ee9c876d483be297d79d7a938e9b13c25c7bee8a02ff2a07"},{"version":"24e5215d5985807f3f9b281a1aaa84f2bd7d8a9129deb232effdbaa3069fbfec","signature":"81b9825a81df750ea629ca755230e6857fc5a2bf4f963c6b73c648e341c2cc02"},{"version":"3f73c2fd95c077468c7859450ab47c417d55ade34337c998970e60fd0a3285c6","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"3276373f20c937619e123b6eb1f8fa7576d7ffa9d30af4f4112c2f7ad7ca47d7","signature":"a67f2290272db3142c5f4ca1dd72887b73a2cfc86236f839d6a7896d273ab987"},{"version":"d4b08de1fbb7996f56d096097896af4aacbb8ac7103aa92b8930f70128460a1e","signature":"6e8af5e2db58d7ca05a6c28e74a6a65c6f6891106b532a25894d7947bcb252c1"},{"version":"96106e10b97b9c62432b6de7b84575f233c3000711e1b99ef0ee3abdb59680c8","signature":"9a3a0d54096969f74557250a6b6dfa4712dee627ebb210e6c3930e46fdc8950c"},{"version":"cbac98b0440a21b4a72f5dc7ff5bd774fd0ead37a7ea829369dda84e9406d961","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"5d9551b82575b9329bffb738a21e33ed9cb8d5755b0fea27ef304cd37904e2d9","signature":"2f7de90bceaed25d04bedf29163ac4f4a65cac56d5a5209c97033fb79dc7b5b6"},{"version":"9aee9555c4cd0f66e8c9247acb0bf387c8323255bdc9e493596facf6a5e877d7","signature":"72afdbd13065a870397e5477a0a956ab9e433018fc1d2949813d0705eceb02f2"},{"version":"918325a1a0ab41a28a431d3700e08717bc99edfa9958d21a2d355984a7a626ba","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"c553e6620bd6fe7f97104da5ff0e043143ee0c8a0460910af52fad7fdd8341fa","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"fa895de98c25a1cc6147d6aa8bce6ed0a7321d6c824ad3e8768ac6df7eaa6a8a","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"d54529da58e5c2d0f93c24ddbfc8b21d0eaaad0f296e6085880c625df93e2bf4","signature":"8b812361654787caa90ec94c2b062bb6718536a4586f47654a40a46a47dadd45"},{"version":"3179f79ad8cbd74fb73f517ac427f877d99e07ce15a69249db8a8a22cae008e1","signature":"100cdb3741c5433db7450deafda66c05f7f4badd1cc4800fb47e549387af30a4"},{"version":"00f0ade6b490686bc672d1a3b965c89d6bb1622dc266079ede8641378ecf2a14","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"16d259f5a9c4db34ff0a12ea34a08874b7ea634d6519e28d8c3447a531216388","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"de06796d5707d52de34dc4f0e9d65864fc7d944b7793994ff30b3983a38671ff","signature":"a5a12f3bd25d408c2b3403c95c45b63b66f22479a8a83e5f06d4a69ad1397532"},{"version":"e363f5de6227f406bef0e2d15a76f31f396adceada2d268b5cf5906cca8f6a19","signature":"0edc08b77e672558c12383d45bb491cb14e93eaa37bd828c4df65cfd3b8418d7"},{"version":"6f24aeb6483abafd647aba55f229c14359aea9cd9ec1f5ed807f5dff8c1ea50d","signature":"32a58ac4fb580e18cca326fc5df3ae0cd5ff48f09e6acdb17f92d24c5aab3d4e"},{"version":"197d9e97ecf41553fae8b9e637b2169c5d39a008e211f5eed7cf061ffc746f44","signature":"2a56342af1adb703f27671c430f122167465f7846c5045b126ad169ae5bc427c"},{"version":"d51db73ca308568dd33419536e39ecb8f99aaf9653b96c0e00cc2bf0ad272f6c","signature":"6af9c9cf1c4c568719bd14dbc93eb8195a6dc9befe982b0d69ca4367b7f85acc"},{"version":"62d2ae9980f4e08b28c11e3f60e608bc2a805a3b02aacc3582abb258be62e48e","signature":"19989008e43ba54e0ab417eb18bca7744c3c62be777d9c9c30e7227779f8d661"},{"version":"08990d6d4a6a6d03e36c488a2d0b09a0073fc14e16ea27b7e535591e26b590ab","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"020b37b6296174b826055de7b85cd05e1eb8f3266f147615c8146af740b12c4a","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"158131065919826ac46aad3d6fe2c461200d1bc6531fae007ba8df8dbb7023e6","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"77dd810d73b28fe0450fce5b138999fc4ef677fc98bcebda054afd10026c7ecf","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"37bb66413859c3dbcbfe24678f645c45e34df5a222254712b45b0c6e6b461555","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"2d47d7f2f07a75670ba2e2808c895e002765bdabe4edd27e5c8403970507bc60","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"924d1beb2a895c13dee5f86054d24c5177f2495085044ae1fb193615ce133b59","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"fb954fd45b91f0b21fbd406ae237f45637e22bd401e1ee1cb54ff0c213ee00c8","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"95ed8811666f5130e441b5a4122b35b24b4579c76b7dfa067c16788f9bc08883","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"abef5ea025b59ea53ecea220f12462e61132daaae83fb4f7ce07a1ede8946fb4","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"90279897307ff19b886ac908c5a26a3f50802258a0ead61a89ba990f1e72e8c0","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"adf2f57bdaaa5a479868ac68fa0a016d06e3329ac6de38b505d9f72272c03257","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"facc5ad89c91367b9073e1460afa4dd59204283d286fcbdeb06c1bf079b76e80","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"f88841c2b5cd38cc070778aa22b760c9e5bbabaf29bd32242e350edd5a8e96ab","signature":"9fca64486ca5501df38e7837f0a54ec95b133a939c021242bc3547c5a4c31fb6"},{"version":"68c0f599345d45a3f72fe7b5a89da23053f17d9c2cd5b2321acabe6e6f7b23b3","affectsGlobalScope":true},{"version":"fd6f0bb5bd5f176b689915806a974cdb12a467bdaa414dc107a62d462eb7ddd5","affectsGlobalScope":true},{"version":"861d9f609588274557802e113bbec01efe7c0bba064c791457690e16bd86a021","affectsGlobalScope":true},{"version":"a1819d8e80fbf3e8d7acb1deafe67401ccad93d59d6a2416bdfc1a1e74ee7c2b","affectsGlobalScope":true},"bc1ba043b19fbfc18be73c0b2b77295b2db5fe94b5eb338441d7d00712c7787e","8ac576b6d6707b07707fd5f7ec7089f768a599a39317ba08c423b8b55e76ca16","15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true}],"root":[[19,1168]],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":5,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitThis":true,"outDir":"./","skipDefaultLibCheck":true,"strict":true,"target":7},"fileIdsList":[[1169,1170,1171,1172,1173],[1175],[71,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,232,240,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[58,78,79,85,89,90,101,108,114,116,117,118,127,131,137,139,143,144,146,183,187,189,191,192,202,204,207,209,214,215,216,217,218,220,223,230,232,239,240,241,244,248,249,250,251,252,267,268,271,275,284,289,293,300,303,305,306,307,308,309,310,313,314,320,322,323,326,327,328,329,330,331,332,333,334,338,339,340,341,344,346,352,353,354,358,360,366,367,387,388,389,396,459,467,478,479,482,484,485,486,507,511,513,516,554,559,560,561,563,577,579,584,589,597,600,624,626,635,641,657,658,681,708,711,726,737,830,1022],[27,33,73,223,232,242,243,244,245,247,248,335],[214,244,254,263,264,289,290,295,296,297,298,300,302,335],[27,239,242,244,245,249],[27,38,71,217,232,239,241,244,245,249,251,302,303,304,335],[56,75,78,85,108,114,118,121,122,124,139,141,178,182,183,184,185,189,202,205,207,208,213,214,217,223,232,239,242,244,245,246,249,251,314,318,321,326,329,335,350,352,365,366,370,389,396,398,455,458,472,475,478,480,485,504,518,551,554,559,563,570,589,600,624,625,626,631,640,644,657,658,681,737,830,841,847,926],[27,217,223,232,242,244,245,246,249,275,335],[71,75,223,232,242,244,245,249,303,319],[27,204,217,223,232,242,245,249,303,335],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,207,212,230,232,239,251,284,309,335,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[207,217,232,239,243,245,251,303,321,335],[78,207,214,217,242,245,249,321,322,324,326,335],[23,27,56,71,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,223,230,232,244,245,263,264,304,308,329,335,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[63,78,85,108,114,118,121,127,131,137,139,146,178,182,183,185,187,189,202,204,205,207,208,209,214,216,217,232,239,241,242,243,245,251,252,268,271,275,293,303,308,313,314,318,325,329,335,338,339,341,346,352,354,358,366,367,387,389,396,398,458,475,478,479,480,482,484,485,486,504,507,511,513,551,554,559,560,563,570,577,579,584,589,600,624,625,626,635,640,657,658,681,737,830,841,926,1022],[27,137,217,223,232,242,244,245,246,249],[27,31,78,85,108,115,118,127,131,137,146,159,183,187,189,204,207,209,216,217,223,232,236,241,251,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,385,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,729,737,772,1022],[56,58,78,79,85,89,108,114,116,117,118,122,124,127,131,137,139,141,143,144,146,178,182,183,185,187,189,191,202,204,207,208,209,213,214,216,217,230,235,239,241,251,252,268,271,275,284,293,303,308,309,313,314,321,326,335,338,339,341,346,350,352,353,354,358,360,365,366,367,370,387,389,396,398,455,459,467,472,478,479,482,484,485,486,504,507,511,513,516,518,554,559,560,561,563,570,577,579,584,589,597,600,624,626,631,635,641,644,657,658,681,708,711,726,737,830,847,1022],[55,79,89,90,101,141,146,183,187,192,215,217,218,235,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,681,1022],[27,217,232,239,242,243,244,306,335],[217,232],[65,251],[27,52,58,78,79,87,89,90,101,105,108,114,116,117,139,141,143,144,146,183,185,187,189,191,192,202,203,207,212,214,215,217,218,227,230,235,240,251,260,267,275,276,284,289,300,309,310,311,332,334,335,339,340,344,346,350,352,353,354,358,360,365,367,380,387,388,389,396,459,467,478,481,482,485,511,516,554,559,560,561,577,585,589,597,624,641,642,657,658,681,708,711,726,770,830,1022],[79,87,89,90,101,117,146,183,187,192,203,207,215,217,218,227,230,232,240,251,267,275,289,300,309,310,311,332,334,339,340,344,346,350,352,353,354,358,360,367,387,388,389,459,481,482,511,560,561,577,585,597,770,1022],[332],[79,89,90,101,146,183,187,192,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[25,27,37,73,223,232,239,243,244,245,335],[27,37,232,239,244,245,246,247,335],[27,38,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,232,239,241,244,247,252,268,271,275,293,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[27,73,207,214,217,223,230,232,239,244,335],[27,239,244],[27,33,232,239],[27,232,239],[223],[26,27,74,115,207,217,223,224,232,236],[27,32,72,73,223,224,232,233,239,387,458],[19,22,23,24,26,28,32,49,58,65,75,78,79,87,88,89,108,114,115,116,117,118,128,139,143,144,180,182,183,188,189,191,195,202,203,204,207,210,214,215,217,220,223,224,227,228,229,230,231,232,233,236,239,240,251,275,284,293,309,311,334,343,346,350,352,353,354,355,357,358,360,367,380,389,396,458,459,467,478,481,485,503,511,516,554,559,560,561,585,589,597,624,641,657,658,681,708,711,726,770,830,848],[32,56,78,79,87,89,90,101,108,117,118,122,124,141,146,178,180,182,183,185,187,192,195,203,207,208,213,214,215,217,218,220,227,230,232,239,240,251,267,275,289,300,308,309,310,311,321,329,332,334,337,338,339,340,344,346,348,349,350,352,353,354,355,357,358,360,365,367,370,380,387,388,389,398,455,458,459,472,481,482,504,511,518,554,559,560,561,570,577,585,597,600,624,626,631,644,657,681,770,847,1022],[347],[87,117,203,215,227,251,275,309,311,334,346,350,352,353,354,367,481,511,585,770],[88,182,183,204,217,343,354,380,389,503,511,560,624,657,830,848],[65,87,117,119,203,215,227,251,275,309,311,334,346,350,352,353,354,367,481,511,585,770],[87,117,203,207,215,217,227,251,275,309,311,334,346,350,352,353,354,367,481,511,585,770],[19,22,26,33,36,39,40,79,87,89,90,101,113,126,141,146,183,187,192,200,204,214,215,217,218,223,230,234,235,240,251,267,270,275,289,297,300,309,310,314,318,332,334,339,340,344,358,360,387,388,389,453,459,475,482,560,561,569,572,577,589,597,777,1022],[230],[32,58,66,78,79,85,87,89,108,114,116,117,118,119,121,139,143,144,178,180,182,183,185,189,191,195,202,203,205,207,208,214,215,217,224,227,230,231,232,251,275,284,308,309,311,314,318,326,334,346,350,351,352,353,354,355,357,358,360,366,367,380,389,396,398,458,459,467,475,478,480,481,485,504,511,516,551,554,559,561,563,570,585,589,597,600,624,625,626,640,641,657,658,681,708,711,726,737,770,830,841,926],[32,56,57,58,63,74,78,79,85,88,89,90,101,108,114,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,178,179,181,182,183,184,185,187,189,191,192,202,204,205,207,208,209,210,213,214,215,216,217,218,220,224,230,232,234,235,240,241,251,252,267,268,271,275,284,289,293,300,303,308,309,310,313,314,318,321,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,358,360,365,366,367,370,380,387,388,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,503,504,507,511,513,516,518,551,554,559,560,561,563,570,577,579,584,589,597,600,624,625,626,631,635,640,641,644,657,658,681,708,711,726,737,830,841,847,848,926,1022],[56,58,74,78,79,85,89,108,114,116,117,118,121,122,124,139,141,143,144,177,182,183,185,189,191,202,205,207,208,213,214,217,230,232,233,235,251,284,308,309,314,318,321,326,329,350,352,353,360,365,366,370,389,396,398,455,458,459,467,472,475,478,480,485,504,516,518,551,554,559,561,563,570,589,597,600,624,625,626,631,640,641,644,657,658,681,708,711,726,737,830,841,847,926],[65,183],[87,117,118,141,180,195,203,214,215,217,227,232,233,234,235,251,275,309,311,334,346,350,352,353,354,355,357,367,380,481,511,585,770],[87,89,117,141,185,203,215,224,227,234,235,251,275,309,311,334,346,350,352,353,354,367,481,511,585,770],[19,20,58,78,79,87,89,108,114,116,117,118,139,143,144,180,183,189,191,195,202,203,215,227,230,231,232,240,251,275,284,309,311,334,346,350,352,353,354,355,357,358,360,367,380,396,459,467,478,481,485,504,511,516,554,559,561,585,589,597,624,641,657,658,681,708,711,726,770,830],[19,23,24,32,78,85,86,87,88,117,118,127,131,137,141,146,180,182,183,187,189,195,203,204,207,209,214,215,216,217,223,227,230,231,232,235,239,240,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,341,343,346,350,352,353,354,355,357,358,366,367,380,387,389,458,479,481,482,484,486,503,507,511,513,560,563,573,577,579,581,584,585,589,600,624,626,635,657,681,737,770,830,848,1022],[118,180,195,203,230,231,232,311,346,350,352,353,354,357,358,380,585],[87,117,118,180,203,204,215,227,230,232,239,251,275,309,311,334,346,350,352,353,354,355,357,367,380,481,511,585,770],[19,20,47,58,78,79,87,89,108,114,116,117,118,139,143,144,180,183,189,191,195,202,207,214,215,217,227,230,231,232,239,240,251,275,284,309,311,334,346,350,352,353,354,355,357,358,360,367,380,396,459,467,478,481,485,504,511,516,554,559,561,585,589,597,624,641,657,658,681,708,711,726,770,830],[21,22,26,71,141,223,228,235],[21,22,26,39,71,223,228],[32,65,71,115,217,223,225,226,227,230,232,236,346,458],[32,87,117,203,215,225,226,228,230,232,251,275,309,311,334,346,350,352,353,354,367,458,481,511,585,770],[23,32,78,79,85,87,89,90,101,117,118,127,131,137,146,183,187,189,192,203,204,207,209,214,215,216,217,218,220,222,223,225,226,227,230,231,232,239,240,241,251,252,267,268,271,275,289,293,300,303,309,310,311,313,314,326,329,332,334,335,338,339,340,341,343,344,345,346,350,352,353,354,355,357,358,360,366,367,380,387,388,389,458,459,479,481,482,484,486,507,511,513,560,561,563,577,579,584,585,589,597,600,626,635,657,681,737,770,1022],[344],[79,87,89,90,101,117,146,183,187,192,203,215,217,218,227,240,251,267,275,289,300,309,310,311,332,334,339,340,346,350,352,353,354,358,360,367,387,388,389,459,481,482,511,560,561,577,585,597,770,1022],[87,117,118,180,195,203,215,227,230,232,239,251,275,309,310,313,334,346,350,352,353,354,355,357,367,380,481,511,585,770],[87,117,181,203,215,227,232,251,275,309,311,334,343,344,346,350,352,353,354,367,481,511,585,770],[56,63,75,78,85,87,108,114,117,119,121,122,124,127,131,137,139,141,146,178,180,182,183,185,187,189,195,202,203,204,205,207,208,209,213,214,215,216,217,223,227,230,231,232,241,251,252,268,271,275,293,303,308,309,311,313,314,318,321,326,329,334,335,338,339,341,346,350,352,353,354,355,357,358,365,366,367,370,380,387,389,396,398,455,458,472,475,478,479,480,481,482,484,485,486,504,507,511,513,518,551,554,559,560,563,570,577,579,584,585,589,600,624,625,626,631,635,640,644,657,658,681,737,770,830,841,847,926,1022],[22,26,36,55,58,71,78,79,87,89,108,113,114,116,119,126,139,141,143,144,183,189,191,200,202,203,215,223,224,227,230,235,251,270,275,284,297,309,311,314,318,330,334,346,350,352,353,354,360,367,396,453,459,467,475,478,481,485,511,516,554,559,561,569,572,585,589,597,624,641,657,658,681,708,711,726,770,777,830],[22,25,63,71,92,115,117,118,223,230,232,236],[20,23,26,32,71,86,87,115,117,203,215,222,223,227,230,232,236,239,240,251,275,309,311,334,346,350,352,353,354,367,458,481,504,511,560,585,770,848],[32,87,232,239,337,350,458],[240],[52,87,88,105,108,117,118,131,143,176,180,182,183,187,195,203,204,207,212,215,217,227,230,231,232,251,275,309,311,334,343,346,350,352,353,354,355,357,358,365,367,368,375,376,377,378,379,380,387,389,481,486,503,507,511,513,554,560,573,581,585,624,642,657,770,830,848],[87,117,141,203,215,227,235,251,275,309,311,334,346,350,352,353,354,367,481,511,585,770],[23,26,36,65,87,113,115,126,141,200,222,223,232,235,236,270,297,314,318,377,380,453,475,569,572,589,777],[92,118,119,180,195,203,217,230,231,232,239,311,346,350,352,353,354,355,358,380,585],[78,79,85,87,88,89,90,101,117,118,127,131,137,146,182,183,187,189,192,203,204,207,209,215,216,217,218,220,227,230,231,232,240,241,251,252,267,268,271,275,289,293,300,303,309,310,311,313,314,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,355,357,360,366,367,380,387,388,389,459,479,481,482,484,486,503,507,511,513,560,561,563,577,579,584,585,589,597,600,624,626,635,657,681,737,770,830,848,1022],[22,25,26,27,38,49,56,58,62,63,64,66,70,71,75,77,78,79,85,87,88,89,90,101,108,114,115,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,160,164,175,177,178,182,183,185,187,188,189,191,192,202,203,204,205,207,208,209,210,213,214,215,216,217,218,220,222,223,224,227,230,231,232,236,239,240,241,251,252,267,268,271,275,284,289,293,300,303,308,309,310,311,313,314,318,321,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,355,357,358,360,365,366,367,368,370,372,380,387,388,389,396,398,455,458,459,467,472,473,475,478,479,480,481,482,484,485,486,503,504,507,511,513,516,517,518,522,527,531,536,542,546,551,554,559,560,561,563,569,570,573,577,579,581,584,585,589,597,600,624,625,626,631,635,638,640,641,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[58,72,74,78,79,85,89,90,101,108,114,116,117,118,127,131,137,139,141,143,144,146,183,187,189,191,192,202,204,207,209,215,216,217,218,220,230,232,233,235,240,241,251,252,267,268,271,275,284,289,293,300,303,309,310,313,314,326,329,332,334,335,337,338,339,340,341,344,346,350,352,353,354,358,360,366,367,386,387,388,389,396,459,467,478,479,482,484,485,486,507,511,513,516,554,559,560,561,563,573,577,579,581,584,589,597,600,624,626,635,641,657,658,681,708,711,726,737,830,1022],[65,131,187,217,275,387,486,507,513,573,581,657],[78,85,91,118,127,131,137,146,183,187,189,204,207,209,216,217,241,252,267,271,275,277,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[22,26,27,30,62,64,66,70,78,79,85,89,90,101,103,114,115,118,121,127,131,137,139,141,146,160,164,175,177,183,187,189,192,202,204,207,209,215,216,217,218,223,224,230,235,236,240,241,251,252,267,268,271,275,284,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,368,372,387,388,389,458,459,473,475,479,482,484,486,507,511,513,517,522,527,531,536,542,546,551,560,561,563,569,577,579,584,589,597,600,626,635,638,640,654,656,657,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[27,65,79,87,89,90,101,117,146,183,187,192,203,215,217,218,220,227,232,240,251,267,275,289,300,309,310,311,332,334,339,340,344,346,350,352,353,354,358,360,367,387,388,389,459,481,482,511,560,561,577,585,597,770,1022],[27,32,78,79,85,89,90,101,103,118,126,127,128,131,136,140,146,183,187,189,192,204,207,209,215,216,217,218,220,222,232,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,458,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[25,26,27,32,34,62,64,65,66,70,71,73,78,79,85,87,88,89,90,101,108,114,117,118,121,127,128,131,137,139,141,146,160,164,175,177,178,182,183,185,187,189,192,193,202,203,204,205,207,208,209,210,214,215,216,217,218,220,222,223,227,230,232,240,241,251,252,267,268,271,275,284,289,293,300,303,308,309,310,311,312,313,314,315,317,318,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,358,360,366,367,368,372,380,385,387,388,389,396,398,458,459,473,475,478,479,480,481,482,484,485,486,503,504,507,511,513,517,522,527,531,536,542,546,551,554,559,560,561,563,569,570,577,579,584,585,589,597,600,624,625,626,635,638,640,654,656,657,658,662,668,673,678,681,685,688,692,697,702,708,711,717,720,726,729,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[21,141,232,234,235,239],[21,234],[141,233,235],[21],[65,79,89,90,101,146,183,187,189,192,215,217,218,219,232,238,239,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1015,1022],[58,78,79,87,89,108,114,116,117,131,139,143,144,183,185,187,189,191,202,203,207,215,217,227,230,232,251,275,284,309,311,334,346,350,352,353,354,360,367,387,396,459,467,478,481,485,486,507,511,513,516,554,559,561,573,581,585,589,597,624,641,657,658,681,708,711,726,770,830],[23],[23,32,132,390,391,392,458],[23,32,458],[220,237,238,1015],[24,62,64,66,70,79,85,89,90,101,114,121,139,146,160,164,175,177,183,187,192,202,215,217,218,240,251,267,275,284,289,300,309,310,332,334,339,340,344,358,360,368,372,387,388,389,458,459,473,475,482,517,522,527,531,536,542,546,551,560,561,569,577,597,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[232,239,272],[214],[25,26,27,28,49,57,58,71,75,76,78,79,85,89,108,114,115,116,117,118,127,131,137,139,143,144,146,183,185,186,187,188,191,202,204,207,209,214,216,217,223,224,230,232,236,239,241,251,252,268,271,275,284,293,303,309,313,314,326,329,335,338,339,341,346,352,353,354,358,360,366,367,387,389,396,459,467,478,479,482,484,485,486,507,511,513,516,554,559,560,561,563,577,579,584,589,597,600,624,626,635,641,657,658,681,708,711,726,737,830,1022],[36,113,126,141,183,189,200,217,223,235,270,297,314,318,453,475,569,572,589,777],[22,26,30,33,49,58,71,78,79,90,101,108,114,116,117,128,139,141,143,144,146,183,187,189,191,192,202,210,215,217,218,223,224,230,235,240,251,267,275,284,289,293,300,309,310,332,334,339,340,344,352,353,358,360,387,388,389,396,459,467,478,482,485,516,554,559,560,561,577,589,597,624,641,657,658,681,708,711,726,830,1022],[32,35,56,78,85,88,108,114,115,118,121,122,124,139,141,178,183,184,185,189,202,204,205,207,208,213,214,217,232,236,308,314,318,321,326,329,343,350,352,354,365,366,370,380,389,396,398,455,458,472,475,478,480,485,503,504,511,518,551,554,559,560,563,570,589,600,624,625,626,631,640,644,657,658,681,737,830,841,847,848,926],[23,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,232,239,241,252,268,271,275,293,303,313,314,326,329,335,337,339,341,346,350,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[27,79,89,90,101,128,146,183,187,192,209,210,215,217,218,232,239,240,251,267,275,289,293,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[21,26,36,62,64,66,70,85,113,114,121,126,139,160,164,175,177,200,202,217,223,270,284,297,314,318,368,372,453,458,473,475,517,522,527,531,536,542,546,551,569,572,589,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[25,27,65,78,79,85,89,90,101,115,118,127,128,131,137,146,183,187,189,192,204,207,208,210,214,215,216,217,218,223,230,232,233,236,239,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[115,209,214,236],[23,24],[21,22,141,235],[26,37,115,223,232,236,239],[25,26,27,34,38,141,222,223,232,239,289,385,389,688,729],[25],[222,239],[222],[232],[26,115,223,236],[32,458],[26,32,39,141,223,235,458],[115,236,337,350],[32,383,458],[21,22,25,26,27,28,29,30,31,32,75,108,115,141,159,207,222,223,224,232,233,234,235,236,239,252,385,458,484,560,729,772],[32,77,141,224,232,233,235,381,382,384,385,458],[22,25,26,32,36,113,115,126,141,200,222,223,232,235,236,270,297,314,318,453,458,475,569,572,589,777],[21,23,25,26,27,28,30,32,33,34,35,36,38,73,77,92,113,115,126,141,200,220,221,223,224,232,233,236,237,239,270,289,297,314,318,385,389,453,458,475,569,572,589,688,729,777],[23,31,32,34,73,74,75,108,115,141,159,207,222,223,224,232,233,235,236,239,252,289,337,338,350,381,382,384,386,389,458,484,560,688,729,772],[32,35,36,113,115,126,200,232,270,297,314,318,453,458,475,569,572,589,777],[32,35,115,458],[27,38,115,222,223,232,236,239],[78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,232,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[21,22,23,25,31,32,52,55,56,58,65,71,75,76,78,79,85,89,92,105,107,114,115,116,117,118,121,122,124,139,141,143,144,159,178,182,183,185,189,191,202,205,207,208,212,213,214,217,223,224,230,232,236,251,252,284,308,309,314,318,321,326,329,330,350,352,353,360,365,366,370,380,385,389,396,398,455,458,459,467,472,475,478,480,484,485,504,516,518,551,554,559,560,561,563,570,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,729,737,772,830,841,847,926],[21,22,26,30,36,113,115,126,141,200,214,223,224,235,236,270,297,314,318,453,475,569,572,589,777],[48,52,58,78,79,85,89,105,108,114,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,212,217,224,230,232,239,251,284,308,309,314,318,326,352,353,360,365,366,380,389,398,458,459,467,475,478,480,485,504,516,551,554,559,561,563,570,589,597,600,624,625,626,640,641,642,657,658,681,708,711,726,737,830,841,926],[41,48,52,58,66,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,232,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[32,36,38,48,49,52,56,57,71,75,78,92,105,108,113,115,118,122,124,126,141,143,178,182,183,185,200,207,208,211,212,213,214,217,220,223,224,232,235,236,251,270,297,308,314,318,321,329,350,365,370,380,398,453,455,458,467,472,475,504,518,554,559,569,570,572,589,600,624,626,631,642,644,657,681,777,847],[52,78,85,105,108,114,118,121,139,143,178,182,183,185,202,205,207,208,212,217,251,308,314,318,326,352,365,366,380,389,396,398,458,475,478,480,485,504,551,554,559,563,570,589,600,624,625,626,640,642,657,658,681,737,830,841,926],[36,49,57,113,126,128,141,200,210,211,214,224,235,270,293,297,314,318,453,467,475,569,572,589,777],[52,105,108,143,212,214,251,365,380,554,642],[25,31,32,36,47,48,49,50,51,52,56,57,58,62,63,64,65,66,70,75,78,79,85,89,105,108,113,114,115,116,117,118,119,121,122,124,126,127,128,131,137,139,141,143,144,146,159,160,164,175,177,178,182,183,185,187,188,189,191,200,202,203,204,205,206,207,208,209,210,212,213,214,216,217,220,223,224,230,231,232,235,236,239,241,251,252,268,270,271,275,284,293,297,303,308,309,313,314,318,321,326,329,335,338,339,341,346,350,352,353,354,355,357,358,360,365,366,367,368,370,372,380,385,387,389,396,398,453,455,458,459,467,472,473,475,478,479,480,482,484,485,486,504,507,511,513,516,517,518,522,527,531,536,542,546,551,554,559,560,561,563,569,570,572,577,579,584,589,597,600,624,625,626,631,635,638,640,641,642,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,729,733,737,742,747,750,756,758,761,765,770,772,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[56,78,85,108,114,118,121,122,124,139,141,178,182,183,185,202,205,207,208,213,214,217,232,239,308,314,318,321,326,329,337,338,350,352,358,365,366,370,389,396,455,458,472,475,478,480,485,504,518,551,554,559,563,570,589,600,624,625,626,631,640,644,657,658,681,737,830,841,847,926],[58,65,78,79,89,108,114,116,117,139,143,144,183,189,191,202,207,214,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[56,57,58,78,79,89,108,114,116,117,118,122,124,139,141,143,144,178,182,183,185,189,191,202,207,208,213,214,217,223,230,251,284,308,309,321,329,350,352,353,360,365,370,396,398,455,459,467,472,478,485,504,516,518,554,559,561,570,589,597,600,624,626,631,641,644,657,658,681,708,711,726,830,847],[26,30,39,49,52,57,105,108,115,141,143,207,212,214,223,224,235,236,251,365,380,467,554,642],[62,64,66,70,85,114,121,139,160,164,175,177,202,207,214,220,232,239,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,207,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[39,141,235],[27,217,220,232,239],[19,20,79,89,90,101,146,183,187,192,203,215,217,218,232,239,240,251,267,275,289,300,309,310,332,334,339,340,344,353,358,360,387,388,389,459,482,504,560,561,577,597,1022],[23,24,29,56,58,65,71,75,76,77,79,85,89,108,114,115,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,178,182,183,185,187,189,191,202,204,205,207,208,209,210,213,214,216,217,222,223,230,232,236,239,241,251,252,268,271,275,284,293,303,308,309,313,314,318,321,326,329,335,338,339,341,346,350,352,353,354,358,360,365,366,367,370,387,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,504,507,511,513,516,518,551,554,559,560,561,563,570,577,579,584,589,597,600,624,625,626,631,635,640,641,644,657,658,681,708,711,726,737,830,841,847,926,1022],[26,30,58,71,78,89,90,101,108,114,116,117,139,141,143,144,146,183,187,189,191,192,202,214,215,217,218,223,224,230,235,240,251,267,275,284,289,300,309,310,332,334,339,340,344,352,353,358,360,387,388,389,396,459,467,478,482,485,516,554,559,560,561,577,589,597,624,641,657,658,681,708,711,726,830,1022],[26,27,33,37,58,78,79,89,108,114,115,116,117,118,139,143,144,183,189,191,202,203,207,217,223,230,231,236,239,240,251,284,309,346,352,353,354,355,357,358,360,380,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[41,232,400,402,410,413,414,417,419,420],[401],[41,43,45,48,232,400,401,409,415,417,419,420,444,446,448,450,452],[43,46,444,446,448,450,452],[41,232,400,403,410,413,415,416,419,420],[48,401],[41,232,239,400,404,410,413,415,417,418,420],[41,232,400,407,408,410,413,415,417,419],[401,407],[41,48,232,402,406,407,409,410,416,418],[41,48,232,406,407,408,410,414,416,418],[41,48,232,403,406,407,409,414,418],[41,48,232,406,407,409,410,414,416],[41,48,232,406,408,409,414,416,418],[48],[41,48,232,405,410,411],[405],[400,402,403,404,415,417,419,420],[41,45,46,47,232],[41,46,48,232],[421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441],[421],[48,421],[48,421,423],[41,42,43,45,48,232,413,443,444,446,448,450,452],[43,44,444,446,448,450,452],[41,42,43,44,48,232,444,446,448,450,452],[41,48],[43,444,446,448,450,452],[41,43,45,48,232,444,445,448,450,452],[44],[41,43,45,48,422,423,442,444,446,447,450,452],[41,43,45,48,232,444,446,448,449,452],[41,43,45,48,232,444,446,448,450,451],[25,75,79,89,90,101,118,146,183,187,192,203,209,215,217,218,222,223,224,231,232,240,251,254,255,256,258,260,262,263,264,265,267,275,289,290,293,294,295,296,297,298,299,301,302,309,310,332,334,339,340,344,346,352,353,354,355,357,358,360,380,387,388,389,459,482,487,488,489,490,491,492,493,494,495,496,497,560,561,577,597,1022],[209,217,223,232,263,264,293,300,301],[65,232,257,263,264,301],[33,38,79,89,90,91,101,146,183,187,192,215,217,218,224,240,251,256,257,258,259,260,263,267,275,277,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[207,214,263,302],[115,223,232,236,251,253,260,262,289,300,302],[223,232,251,254,260,261,289,290,295,297,298,300],[38],[25,118,203,223,231,232,251,254,256,258,260,261,263,264,289,295,296,297,298,300,346,352,353,354,355,357,358,380],[223,251,254,260,261,289,290,295,296,297,300],[22,23,25,32,35,36,71,113,115,126,200,222,223,232,236,251,254,260,261,262,263,264,270,289,290,295,296,298,300,302,314,318,453,458,475,569,572,589,777],[22,26,30,32,36,39,55,71,113,126,141,200,223,235,259,263,264,270,297,314,318,330,453,458,475,569,572,589,681,777],[32,34,38,73,79,89,90,101,115,141,146,183,187,192,215,217,218,222,223,232,236,239,240,251,253,254,260,261,267,275,288,290,295,296,297,298,300,309,310,332,334,339,340,344,358,360,385,387,388,389,458,459,482,560,561,577,597,688,729,1022],[223,232,251,254,260,261,289,290,296,297,298,300],[223,232,255,257,258,262,263,302],[23,26,36,113,126,200,223,255,256,261,262,270,297,300,314,318,453,475,569,572,589,777],[25,232,256,258,259,261,263,264,300,302],[256,257,258,263],[23,26,27,33,128,210,223,232,239,254,257,262,289,290,293,295,296,297,298,300,301,302],[23,63,207,230,232,256,258,262,263,264,302],[118,203,231,251,260,346,352,353,354,355,357,358,380],[27,71,78,85,91,118,127,128,131,137,146,183,187,189,204,207,209,210,216,217,220,232,239,241,252,266,267,268,271,275,277,287,291,292,293,300,302,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1017,1019,1022],[128,210,232,256,258,263,267,290,291,293,300],[79,89,90,91,101,146,183,187,192,215,217,218,240,251,275,277,289,300,301,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[209,232],[27,217,220,232,239,278,279,285,286,301,302],[27,232,239,287,301,302],[27,209,232,239,287,293,300,301],[27,38,63,207,217,232,239,284,287,301,302],[27,232,239,287,302],[300],[23,128,210,232,251,255,256,257,258,260,261,263,265,290,293,295,296,300,488,489,490,491,492,493,494,495,496,497],[23,232,255,256,258,261,263,264,265,300,301,487,489,490,491,492,493,494,495,496,497],[141,232,235,251,260,265,300,487,488,490,491,492,493,494,495,496,497],[21,32,65,232,256,258,261,263,265,300,458,487,488,489,490,492,493,494,495,496,497],[23,232,255,256,257,263,265,300,487,488,489,490,491,492,494,495,496,497],[23,230,232,263,264,265,300,487,488,489,490,491,493,494,495,496,497],[23,26,32,39,65,71,214,223,230,232,251,255,256,258,260,261,263,265,300,301,302,458,487,488,489,490,491,492,493,495,496,497],[23,232,251,256,258,260,263,264,265,300,487,488,489,490,491,492,493,494,496,497],[23,32,232,255,256,257,258,263,265,300,458,487,488,489,490,491,492,493,494,495,497],[23,232,255,256,257,258,261,263,265,300,487,488,489,491,492,493,494,495,496,497],[232,251,256,258,260,261,263,264,265,300,301,487,488,489,490,491,492,493,494,495,496],[32,36,113,126,200,222,270,297,314,318,458,475,569,572,589,777],[63,73,87,117,203,207,215,217,223,227,230,232,233,239,251,275,309,311,334,346,350,352,353,354,367,478,479,481,498,511,585,770],[476],[25,58,78,79,85,89,108,114,116,117,118,127,131,137,139,143,144,146,183,187,189,191,202,204,207,209,216,217,223,230,232,239,241,251,252,268,271,275,284,293,303,309,313,314,326,329,335,338,339,341,346,352,353,354,358,360,366,367,387,389,396,459,465,467,477,478,482,484,485,486,507,511,513,516,554,559,560,561,563,577,579,584,589,597,600,624,626,635,641,657,658,681,708,711,726,737,830,1022],[58,78,79,89,90,101,108,114,116,117,139,143,144,146,183,187,189,191,192,202,215,217,218,230,240,251,267,275,284,289,300,309,310,332,334,339,340,344,352,353,358,360,387,388,389,396,467,478,482,485,516,554,559,560,561,577,589,597,624,641,657,658,681,708,711,726,830,1022],[50,52,58,62,63,64,66,70,78,79,85,89,105,108,114,116,117,118,121,139,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,212,214,217,220,230,232,239,251,284,308,309,314,318,326,352,353,360,365,366,368,372,380,389,396,398,458,459,464,465,467,473,475,476,477,478,479,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[73,223,464],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[21,459,480],[23,58,78,79,89,108,114,116,117,124,139,143,144,183,189,191,202,207,214,217,230,232,233,239,251,284,309,352,353,360,396,459,460,461,462,463,467,478,480,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[85,232],[460,462],[52,58,63,65,70,73,78,79,85,89,105,108,114,115,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,212,217,230,232,233,236,239,251,284,308,309,314,318,326,352,353,360,365,366,380,389,396,398,458,459,465,467,475,478,479,485,504,516,551,554,559,561,563,570,589,597,600,624,625,626,640,641,642,657,658,681,708,711,726,737,830,841,926],[32,35,114,115,121,207,220,222,223,232,236,239,458],[71,78,79,85,89,90,91,101,115,118,127,131,137,145,146,183,187,189,192,204,207,209,215,216,217,218,223,232,236,239,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[65,79,89,90,91,101,146,183,187,192,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[22,26,52,58,78,79,89,90,105,108,114,116,117,139,143,144,183,189,191,202,212,223,230,237,251,267,277,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[21,22,26,39,65,71,87,117,203,215,223,225,226,227,228,230,232,239,240,251,275,309,311,334,346,350,352,353,354,367,511,585,770],[58,63,78,79,85,87,89,90,101,108,114,116,117,118,127,131,137,139,143,144,146,183,187,189,191,192,202,203,204,207,209,214,215,216,217,218,220,227,230,232,239,240,241,251,252,267,268,271,272,273,275,284,289,293,300,303,309,310,311,313,314,326,329,332,334,335,338,339,340,341,344,346,350,352,353,354,358,360,366,367,387,388,389,396,409,459,467,478,479,481,482,484,485,486,507,511,513,516,554,559,560,561,563,577,579,584,585,589,597,600,624,626,635,641,657,658,681,708,711,726,737,770,830,1022],[190,232,500,501],[190,501],[20,71,78,203,207,230,232,239,353,502,503,504],[88,118,182,183,191,203,204,217,230,231,232,343,346,352,353,354,355,357,358,380,389,502,511,560,624,657,830,848],[58,78,79,89,108,114,116,117,139,143,144,183,189,190,202,230,240,251,284,309,352,353,360,396,459,467,478,485,501,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[20,47,52,56,58,62,63,64,66,70,78,79,85,89,105,108,114,116,117,118,121,122,124,139,141,143,144,160,164,175,177,178,182,183,185,189,190,191,202,203,205,207,208,212,213,214,217,220,230,232,251,280,284,308,309,314,318,321,326,329,350,352,353,360,365,366,368,370,372,380,389,396,398,455,458,459,467,472,473,475,478,480,485,500,501,502,504,516,517,518,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,631,638,640,641,642,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,220,223,232,238,239,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,506,511,513,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1015,1022],[239,274],[555],[21,26,141,223,235,554],[23,25,32,122,214,223,232,370,376,458,513,518,523,528,532,537,547,552,554],[33,128,210,217,232,293],[23,25,75,78,85,118,127,128,131,137,146,183,187,189,204,207,209,210,214,216,217,223,224,232,239,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,512,554,555,556,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1022],[23,32,52,56,58,78,79,85,89,103,105,108,114,115,116,117,118,121,122,124,128,139,141,143,144,178,182,183,185,189,191,202,205,207,208,210,212,213,214,217,223,230,232,236,251,284,293,308,309,314,318,321,326,329,350,352,353,360,365,366,370,380,389,396,398,455,458,459,467,472,475,478,480,485,504,512,513,516,518,551,553,555,556,559,561,563,570,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,737,830,841,847,926],[87,115,117,128,203,210,215,223,227,230,232,236,251,275,293,309,311,334,346,350,352,353,354,367,481,508,509,511,585,770],[65,508],[26,39,141,223,235],[78,85,87,88,117,118,127,131,137,146,182,183,187,189,203,204,207,209,215,216,217,220,227,230,232,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,341,343,346,350,352,353,354,358,366,367,380,387,389,479,481,482,484,486,503,507,508,510,513,560,563,577,579,584,585,589,600,624,626,635,657,681,737,770,830,848,1022],[25,31,52,58,62,64,66,70,75,78,79,85,86,87,88,89,90,91,101,105,108,114,115,116,117,118,121,127,131,137,139,140,141,143,144,146,159,160,164,175,177,182,183,187,189,191,192,202,204,207,209,212,214,215,216,217,218,222,223,224,230,232,233,235,236,239,240,241,251,252,267,268,271,275,284,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,343,344,346,352,353,354,358,360,365,366,367,368,372,380,385,387,388,389,396,458,459,467,473,475,478,479,482,484,485,486,503,507,511,513,516,517,522,527,531,536,542,546,551,554,557,558,559,560,561,563,569,577,579,584,589,597,600,624,626,635,638,640,641,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,729,733,737,742,747,750,756,761,765,770,772,778,784,789,794,799,804,809,814,820,825,830,835,841,846,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[65,557],[22,26,62,64,66,70,85,90,91,114,121,139,160,164,175,177,202,223,224,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[26,56,58,62,64,66,70,75,78,79,85,89,90,101,108,114,115,116,117,118,121,122,124,139,141,143,144,146,160,164,175,177,178,182,183,185,187,189,191,192,202,205,207,208,213,214,215,217,218,223,230,232,236,240,251,267,275,284,289,300,308,309,310,314,318,321,326,329,332,334,339,340,344,350,352,353,358,360,365,366,368,370,372,387,388,389,396,398,455,458,459,467,472,473,475,478,480,482,485,504,516,517,518,522,527,531,536,542,546,551,554,559,560,561,563,569,570,577,589,597,600,624,625,626,631,638,640,641,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[27,37,38,52,58,78,79,85,89,105,108,114,116,117,118,121,127,131,137,139,143,144,146,178,182,183,185,187,189,191,202,204,205,207,208,209,212,216,217,220,230,232,239,241,251,252,268,271,275,284,293,303,308,309,313,314,318,326,329,335,338,339,341,346,352,353,354,358,360,365,366,367,380,387,389,396,398,458,459,467,475,478,479,480,482,483,484,485,486,504,507,511,513,516,551,554,559,560,561,562,570,577,579,584,589,597,600,624,625,626,635,640,641,642,657,658,681,708,711,726,737,830,841,926,1022],[561],[58,78,79,89,90,101,108,114,116,117,139,143,144,146,183,187,189,191,192,202,215,217,218,230,240,251,267,275,276,284,289,300,309,310,332,334,339,340,344,352,353,358,360,387,388,389,396,459,467,478,482,485,516,554,559,560,577,589,597,624,641,657,658,681,708,711,726,830,1022],[26,27,33,38,62,64,66,70,78,79,85,87,89,90,91,101,114,115,117,118,121,127,131,137,139,146,160,164,175,177,183,187,189,192,202,203,204,207,209,215,216,217,218,220,222,223,224,227,230,232,236,239,240,241,251,252,267,268,269,270,271,273,274,275,276,277,284,289,293,300,303,309,310,311,313,314,326,329,332,334,335,338,339,340,341,344,346,350,352,353,354,358,360,366,367,368,372,387,388,389,458,459,473,475,479,481,482,484,486,507,511,513,517,522,527,531,536,542,546,551,560,561,563,569,573,577,579,581,584,585,589,597,600,626,635,638,640,654,656,657,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[65,91,239,251,267,276,277,561],[21,22,36,79,89,90,101,113,126,146,183,187,192,200,215,217,218,237,240,251,267,270,275,289,297,300,309,310,314,318,332,334,339,340,344,358,360,387,388,389,453,459,475,482,560,561,569,572,577,589,597,777,1022],[32,36,113,126,200,222,297,314,318,453,458,475,569,572,589,777],[38,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,232,239,241,252,268,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[26,223,251,276,561],[65,79,143],[52,55,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,214,224,230,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[23,52,56,58,75,78,79,85,89,90,101,105,108,114,116,117,118,121,122,124,139,141,143,144,146,178,182,183,185,187,189,191,192,202,205,207,208,212,213,214,215,217,218,220,223,230,232,239,240,251,267,275,284,289,300,308,309,310,314,318,321,326,329,332,334,339,340,344,350,352,353,358,360,365,366,370,380,387,388,389,396,398,455,458,459,467,472,475,478,480,482,485,504,516,518,551,554,559,560,561,563,565,571,577,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,737,830,841,847,926,1022],[23,47,52,68,70,75,79,89,90,101,105,108,143,146,183,187,192,207,212,214,215,217,218,223,224,232,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,365,380,387,388,389,459,482,554,560,561,565,569,570,577,597,642,1022],[32,36,113,126,200,222,270,297,314,318,453,458,475,569,589,777],[27,128,210,217,220,230,232,238,291,293,573,1015],[131,187,217,275,387,486,507,513,573,581,657],[65,79,89,90,101,146,183,187,192,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,575,577,597,1022],[22,26,115,223,236],[38,78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,223,232,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,575,576,577,579,584,589,597,600,626,635,657,681,737,1022],[27,38,78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,220,232,239,240,241,251,252,267,268,271,273,274,275,276,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,483,484,486,507,511,513,560,561,563,577,578,584,589,597,600,626,635,657,681,737,1022],[217,251,276,561],[239],[25,31,78,85,108,118,127,131,132,137,146,159,183,187,189,204,207,209,214,216,217,223,232,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,385,387,389,479,482,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,729,737,772,1022],[88,111,115,182,183,204,217,223,232,236,340,341,342,346,354,380,389,503,511,560,624,657,830,848],[78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,232,241,252,268,271,275,293,303,313,314,326,329,335,338,339,343,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[65,340],[79,89,90,101,141,146,183,187,192,215,217,218,235,240,251,267,275,289,300,309,310,332,334,339,344,358,360,387,388,389,459,482,560,561,577,597,1022],[87,117,118,180,195,203,215,227,230,232,251,275,309,311,334,346,350,352,353,354,355,357,367,380,481,511,582,584,585,770],[58,78,79,85,89,90,101,108,114,116,117,118,127,131,137,139,143,144,146,183,187,189,191,192,202,204,207,209,215,216,217,218,230,232,240,241,251,252,267,268,271,275,284,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,352,353,354,358,360,366,367,387,388,389,396,459,467,478,479,482,484,485,486,507,511,513,516,554,559,560,561,563,577,579,582,583,585,589,597,600,624,626,635,641,657,658,681,708,711,726,737,830,1022],[87,117,203,215,227,251,275,309,311,334,346,350,352,353,354,367,481,511,581,585,770],[87,117,131,187,203,215,217,227,251,275,309,311,334,346,350,352,353,354,367,387,481,486,507,511,513,573,585,657,770],[71,207,232,239,346,518,584],[21,23,25,27,34,56,65,73,75,78,108,115,118,122,124,140,178,182,183,185,207,208,213,214,217,220,222,223,224,232,235,236,289,308,321,329,350,365,370,385,389,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,688,729,847],[58,78,79,85,87,89,108,114,116,117,118,121,139,141,143,144,178,182,183,185,189,191,202,203,205,207,208,215,217,223,227,230,232,235,239,251,275,284,308,309,311,314,318,326,334,346,350,352,353,354,360,366,367,389,396,398,458,459,467,475,478,480,481,504,511,516,551,554,559,561,563,570,585,589,597,600,624,625,626,640,641,657,658,681,708,711,726,737,770,830,841,926],[25,26,27,32,75,77,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,222,223,230,232,239,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,458,479,482,484,507,511,513,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1022],[23,25,26,32,35,36,58,64,65,71,75,78,79,85,89,108,113,114,115,116,117,118,121,126,127,131,137,139,143,144,146,178,182,183,185,187,189,191,200,202,204,205,207,208,209,216,217,220,222,223,224,230,232,236,239,241,251,252,268,270,271,275,284,293,297,303,308,309,313,314,318,326,329,335,338,339,341,346,352,353,354,358,360,366,367,387,389,396,398,453,458,459,467,475,478,479,480,482,484,485,486,504,507,511,513,516,551,554,559,560,561,563,569,570,572,577,579,584,586,587,588,597,600,624,625,626,635,640,641,657,658,681,708,711,726,737,777,830,841,926,1022],[586],[26,71,207,223],[590],[232,593,594],[58,78,79,89,90,101,108,114,116,117,139,143,144,146,183,187,189,191,192,202,207,214,215,217,218,230,240,251,267,275,284,289,300,309,310,332,334,339,340,344,352,353,358,360,387,388,389,396,459,467,478,482,485,516,554,559,560,561,577,589,590,596,597,624,641,657,658,681,708,711,726,830,1022],[56,78,79,85,89,90,101,108,114,118,121,122,124,127,131,137,139,141,146,178,182,183,185,187,189,192,202,204,205,207,208,209,213,214,215,216,217,218,220,232,239,240,241,251,252,267,268,271,275,289,293,300,303,308,309,310,313,314,318,321,326,329,332,334,335,338,339,340,341,344,346,350,352,354,358,360,365,366,367,370,387,388,389,396,398,455,458,459,472,475,478,479,480,482,484,485,486,504,507,511,513,518,551,554,559,560,561,563,570,577,579,584,589,590,591,592,593,596,597,599,624,625,626,631,635,640,644,657,658,681,737,830,841,847,926,1022],[232,590,591],[214,217,232,483,592,593,594,595],[214,592,593],[71,207,214,217,232,592,593,594,596],[78,85,87,117,118,127,131,137,146,183,187,189,203,204,207,209,215,216,217,227,230,232,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,341,346,350,352,353,354,358,366,387,389,479,481,482,484,486,507,511,513,560,563,577,579,584,585,589,600,626,635,657,681,737,770,1022],[23,25,31,55,108,115,207,214,223,232,236,239,252,330,385,484,560,681,729,772],[62,64,66,70,79,85,89,90,101,114,121,139,146,160,164,175,177,183,187,192,202,215,217,218,220,240,251,267,275,284,289,300,309,310,332,334,339,340,344,358,360,368,372,387,388,389,458,459,473,475,482,517,522,527,531,536,542,546,551,560,561,569,577,597,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[62,64,66,70,79,85,89,90,101,114,121,139,146,160,164,175,177,183,187,192,202,215,217,218,220,232,240,251,267,275,284,289,300,309,310,332,334,339,340,344,358,360,368,372,387,388,389,458,459,473,475,482,517,522,527,531,536,542,546,551,560,561,569,577,597,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[79,89,90,101,146,183,187,192,215,217,218,220,232,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[79,89,90,101,146,183,187,192,215,217,218,220,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[79,89,90,101,146,183,187,192,215,217,218,220,232,239,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[23,32,115,214,217,223,232,236,239,360,362,366,458],[360],[21,22,39,58,78,79,89,90,101,108,114,116,117,139,141,143,144,146,183,187,189,191,192,202,215,217,218,230,235,240,251,267,275,284,289,300,309,310,332,334,339,340,344,352,353,358,387,388,389,396,459,467,478,482,485,516,554,559,560,561,577,589,597,624,641,657,658,681,708,711,726,830,1022],[78,85,108,114,118,121,127,131,137,139,146,178,182,183,185,187,189,202,204,205,207,208,209,214,216,217,223,230,232,241,252,268,271,275,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,360,362,363,365,367,375,387,389,396,398,458,475,478,479,480,482,484,485,486,504,507,511,513,551,554,559,560,563,570,577,579,584,589,600,624,625,626,635,640,657,658,681,737,830,841,926,1022],[23,32,163,214,232,458],[23,52,56,78,105,108,118,122,124,141,143,178,182,183,185,207,208,212,213,214,217,220,232,251,308,321,329,350,360,364,366,370,374,380,398,455,472,504,518,554,559,570,600,624,626,631,642,644,657,681,847],[101,102],[71,78,85,101,102,103,118,127,130,137,146,183,187,189,204,207,209,216,217,232,239,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1022],[25,32,78,85,90,118,125,126,128,131,137,146,183,187,189,204,207,209,210,216,217,220,222,223,232,237,239,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,458,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[65,90,137],[22,26,79,89,101,146,183,187,192,215,217,218,223,237,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[127,128,137,209,210,232,293],[32,35,36,113,115,126,200,222,270,297,314,318,453,458,475,569,572,589,777],[32,101,458],[23,25,32,101,103,128,129,131,132,133,135,137,139,210,223,224,232,239,293,458],[65,101],[79,89,90,100,103,141,146,183,187,192,215,217,218,235,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[32,93,99,100,101,103,134,232,458],[101],[99,101],[93,101],[93,100,101],[94,95,96,97,98],[99],[616],[617,618,619,620,621,622],[77,119,239,350,358,385,387,398,664,681,773,804],[1024,1028],[63,85,239,343,346,517,522,531,536,551,638,656,657,685,737,784],[38,47,63,64,66,70,71,73,74,75,76,77,78,87,108,114,115,118,119,121,182,189,207,209,214,217,220,222,223,228,230,232,233,239,240,339,353,355,458,484,486,654,668,680,772],[1024,1032],[1024,1037],[239,875],[239,878],[239,881],[239,887],[239,896],[239,893],[239,890],[239,899],[239,902],[239,911],[239,905],[239,908],[239,914],[239,923],[239,917],[239,920],[239,926],[239,284,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,971,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[239,284,872,884],[239,929],[239,932],[239,947],[239,950],[239,953],[239,956],[239,959],[239,971],[239,965],[239,962],[239,974],[239,968],[239,935,937,940,943],[239,977],[239,980],[239,986],[239,983],[239,989],[239,992],[239,998],[239,995],[239,1001],[239,1004],[239,1010],[239,1007],[239,1013],[239,242,244,245,249,321,335],[239,487,488,489,490,491,492,493,494,495,496,497,1088],[239,293,300],[239,662],[239,453],[239,480],[239,499],[239,352],[239,527],[183,239],[239,481],[77,239,692],[45,48,239,399,409,410,412,415,417,419,420,442,444,446,448,450,452],[239,273,482],[239,500,501,505],[239,506,507],[239,697],[239,702],[239,510,511],[239,554],[146,239,560],[239,711],[239,483,563],[239,273,275],[239,720],[239,271],[239,726,789],[77,239,733],[204,239,313,319,363,368,388,453,481,1025,1026,1027],[239,473],[239,354],[239,475,1031],[239,742],[239,673,747],[239,750],[239,756],[239,708],[124,127,131,135,136,137,139,239,475,569,717,761,1031],[239,570,572],[239,574],[239,318,1015],[239,640],[239,577],[239,483,579],[164,239],[239,484],[239,584],[239,765],[239,366,453],[141,239],[239,770],[239,778],[239,485],[239,794],[239,799],[160,239],[239,589],[239,658],[239,809],[239,590,591,592,593,596,598,600],[239,367],[239,293,1019,1021,1022],[202,203,204,239,313,319,389,542,546,624,678,1034,1035,1036],[239,814],[146,177,239,820],[159,239],[239,623,825],[239,830],[239,835],[175,239],[239,380],[146,177,239],[239,841],[239,846],[239,852],[239,858],[239,863],[239,868],[239,372],[1024,1039],[239,601],[239,602],[239,603],[239,604],[239,605],[239,606],[239,607],[239,609],[239,608],[239,610],[239,611],[239,612],[239,613],[239,614],[63,115,208,232,236,659,662],[153],[57,62,63,64,66,70,85,114,115,121,139,158,159,160,164,175,177,202,207,222,223,232,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,660,661,663,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[660],[52,58,78,79,89,105,108,114,116,117,139,143,144,156,167,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,659,662,681,708,711,726,830],[56,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,350,365,370,398,454,458,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[52],[32,58,62,63,64,66,70,78,79,85,89,108,114,115,116,117,118,119,121,139,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,217,230,232,236,251,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,455,456,457,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[456],[52,58,67,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,454,458,459,467,478,485,516,544,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[32,63,232,239,338,455,458],[55,330,681],[32,56,63,78,92,108,118,122,124,141,178,182,183,185,207,208,213,214,217,223,232,308,321,329,350,365,370,398,455,458,472,504,514,517,554,559,570,600,624,626,631,644,657,681,847],[454],[32,36,52,62,63,64,66,70,85,105,108,113,114,121,126,139,143,160,164,175,177,200,202,212,223,230,232,239,251,270,284,297,314,318,346,365,368,372,380,453,455,458,473,475,515,516,518,522,527,531,536,542,546,551,554,569,572,589,638,640,642,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[516],[52,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,456,459,467,478,485,514,515,516,517,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[60,455,652,654],[59],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,651,653,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,61,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,654,657,658,681,708,711,726,830],[518,649,656],[514],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,650,654,655,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,654,657,658,681,708,711,726,830],[122,666,668],[105],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,667,669,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[116],[653,670,673],[652],[52,62,63,64,66,70,85,105,108,114,121,139,143,160,164,175,177,202,212,232,251,284,365,368,372,380,458,473,475,517,522,527,531,536,542,546,551,554,569,625,638,640,642,654,656,662,668,671,672,674,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[671],[52,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,625,641,642,651,657,658,673,681,708,711,726,830],[21,25,39,122,141,223,234,235,519,522],[105,523],[32,62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,223,232,236,239,284,368,372,458,473,475,517,520,521,523,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,520],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,519,522,523,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[79,82,89,90,101,146,183,185,187,189,192,207,214,215,217,218,220,232,239,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[65,185],[22,25,26,56,71,78,81,85,89,108,114,115,118,121,122,124,139,141,178,182,183,184,186,189,202,205,207,208,213,214,217,223,232,233,235,236,239,251,308,314,318,321,326,329,350,352,365,366,370,389,396,398,455,458,472,475,478,480,485,504,518,551,554,559,563,570,589,600,624,625,626,631,640,644,657,658,681,737,830,841,847,926],[32,54,63,85,214,232,458],[52,53,105,108,143,212,251,365,380,554,642],[51,57,62,63,64,66,70,78,81,83,84,108,114,115,118,121,127,128,131,137,139,146,160,164,175,177,178,182,183,185,187,189,202,204,205,207,208,209,210,214,216,217,230,232,233,236,239,241,252,268,271,275,284,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,366,367,368,372,387,389,396,398,458,467,472,473,475,478,479,480,482,484,485,486,504,507,511,513,517,522,527,531,536,542,546,551,554,559,560,563,569,570,577,579,584,589,600,624,625,626,635,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,758,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[54,80],[121,223,525,527],[105,141,235,524],[50,62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,524,526,528,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[524],[21,52,79,105,108,116,141,143,212,235,251,365,380,525,554,642],[547,675,678],[141,235,539],[32,57,62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,232,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,676,677,679,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,676],[52,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,544,554,559,561,589,597,624,641,642,657,658,675,678,681,708,711,726,830],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,207,230,232,239,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[39,56,63,68,70,78,108,118,122,141,178,182,183,185,207,208,213,214,217,223,232,235,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[25,55,63,108,121,214,223,232,239,330,518,681],[56,78,105,108,118,121,124,141,178,182,183,185,207,208,213,214,217,223,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[39,52,108,141,143,212,235,251,365,380,554,642],[25,39,57,58,62,63,64,66,70,75,78,79,85,89,104,108,114,115,116,117,118,119,120,122,128,139,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,210,217,223,230,232,233,236,239,251,284,293,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,65,78,79,89,108,114,116,117,121,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[39,52,55,58,67,78,79,89,105,108,114,115,116,117,121,139,141,143,144,183,189,191,202,212,230,235,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,544,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[21,25,55,56,58,78,79,85,89,108,114,115,116,117,118,119,121,122,124,127,131,137,139,141,143,144,146,178,182,183,185,187,189,191,202,204,205,207,208,209,213,214,216,217,223,230,232,236,239,241,251,252,268,271,275,284,293,303,308,309,313,314,318,321,326,329,330,335,337,338,339,341,346,350,352,353,354,358,360,365,366,367,370,387,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,504,507,511,513,516,518,531,551,554,559,560,561,563,570,577,579,584,589,597,600,624,625,626,631,635,640,641,644,657,658,681,708,711,726,737,830,841,847,926,1022],[122,682,685],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,683,684,686,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[683],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,682,685,708,711,726,830],[63,232,529,531],[62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,232,236,239,284,346,368,372,458,473,475,517,522,527,530,532,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,531,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[23,32,34,73,115,141,217,222,223,232,236,239,289,337,338,350,383,385,389,458,687,729],[63,232,689,692],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,688,690,691,693,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[690],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,689,692,708,711,726,830],[77,141,233,235],[50,56,58,78,79,85,88,89,108,114,116,117,118,121,122,124,139,141,143,144,178,182,183,185,189,191,202,204,205,207,208,213,214,217,230,232,251,284,308,309,314,318,321,326,329,343,350,352,353,354,360,365,366,370,380,389,396,398,455,458,459,467,472,475,478,480,485,503,504,511,516,518,551,554,559,560,561,563,570,589,597,600,625,626,631,640,641,644,657,658,681,708,711,726,737,830,841,847,848,926],[63,92,115,223,232,236,694,697],[62,63,64,66,70,75,85,114,121,139,158,159,160,164,175,177,202,223,232,239,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,695,696,698,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[695],[52,55,58,78,79,89,105,108,114,115,116,117,139,143,144,156,167,183,189,191,202,212,230,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,694,697,708,711,726,830],[58,78,79,85,89,108,114,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,217,230,232,239,251,284,308,309,314,318,326,352,353,360,366,389,396,398,458,459,467,475,478,480,485,504,516,551,554,559,561,563,570,589,597,600,624,626,640,641,657,658,681,708,711,726,737,830,841,926],[115,122,236,699,702],[62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,223,232,236,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,700,701,703,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[700],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,702,708,711,726,830],[58,78,79,89,108,114,116,117,128,139,143,144,183,189,191,202,207,210,214,217,230,232,239,251,284,293,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,647,657,658,681,708,711,726,830],[26,30,115,214,222,223,236],[223,232,518,704,711],[39,141,235,514],[21,58,62,63,64,66,70,78,79,85,89,104,108,114,115,116,117,121,139,141,143,144,160,164,175,177,183,189,191,202,222,230,232,235,236,239,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,705,708,709,710,712,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,705],[21,52,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,704,708,711,726,830],[523,533,536],[519],[62,63,64,66,70,85,104,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,534,535,537,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,534],[52,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,520,533,536,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[26,63,141,196,202,223,232,235],[105,141,235],[58,62,63,64,66,70,76,78,79,85,89,108,114,115,116,117,118,121,139,141,143,144,160,164,175,177,178,182,183,185,189,191,196,197,198,199,200,201,205,207,208,217,223,230,232,235,236,239,251,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,197],[22,26,58,78,79,89,108,114,116,117,139,141,143,144,183,189,191,196,202,223,230,235,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[32,35,36,77,113,115,126,222,270,297,314,318,453,458,475,569,572,589,777],[23,63,101,103,124,232,714,720],[101,103,141,235,713],[23,32,57,62,63,64,66,70,85,101,103,114,115,121,139,160,164,175,177,202,232,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,714,717,719,721,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[714,718],[109],[25,107,723,726],[106,722],[25,32,58,62,63,64,66,70,78,79,85,89,92,108,114,115,116,117,121,139,141,143,144,160,164,175,177,183,189,191,202,217,230,232,235,239,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,722,724,725,727,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,724],[58,78,79,89,108,110,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,722,723,726,773,830],[31,32,34,73,108,115,141,159,207,217,222,223,232,236,239,252,289,382,383,385,389,458,484,560,688,728,772],[63,232,730,733],[25,105],[25,55,62,63,64,66,70,85,92,114,121,139,160,164,175,177,202,232,239,284,330,338,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,681,685,692,697,702,708,711,717,720,726,729,731,732,734,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[731],[52,55,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,730,733,830],[25,77,141,217,223,232,233,234,235,239],[63,217,368,375],[141,235,369,374],[32,62,63,64,66,70,85,87,114,115,121,139,160,164,175,177,202,217,230,232,236,284,361,366,367,372,374,376,380,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[232,374,376],[55,58,78,79,89,108,114,116,117,139,141,143,144,183,189,191,202,224,230,235,251,284,309,330,352,353,360,368,373,375,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[57,63,115,223,236,467,735,737],[32,52,62,63,64,65,66,70,78,85,105,108,114,118,121,127,131,137,139,143,146,160,164,175,177,178,182,183,185,187,189,202,204,205,207,208,209,212,216,217,223,232,239,241,251,252,268,271,275,284,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,365,366,367,368,372,380,387,389,396,398,458,473,475,478,479,480,482,484,485,486,504,507,511,513,517,522,527,531,536,542,546,551,554,559,560,563,569,570,577,579,584,589,600,624,625,626,635,638,640,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,736,738,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[32,58,67,78,79,89,108,114,116,117,139,141,143,144,183,189,191,202,230,235,251,284,309,352,353,360,396,458,459,467,478,485,516,544,554,559,561,589,597,624,641,657,658,681,708,711,726,737,830],[51,52,56,63,78,105,108,118,122,124,141,143,178,182,183,185,207,208,212,213,214,217,232,251,308,321,329,350,365,370,380,398,455,471,473,504,518,554,559,570,600,624,626,631,642,644,657,681,758,847],[102],[62,63,64,66,70,75,85,114,121,128,136,139,160,164,175,177,202,210,214,223,224,232,239,284,293,368,372,458,470,472,474,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[123],[56,75,78,85,108,114,118,121,122,124,127,131,137,139,141,146,178,182,183,185,187,189,202,204,205,207,208,209,213,214,216,217,232,239,241,252,268,271,275,293,303,308,313,314,318,321,326,329,335,338,339,341,346,350,352,354,358,365,366,367,370,387,389,396,398,455,458,472,475,478,479,480,482,484,485,486,504,507,511,513,518,551,554,559,560,563,570,577,579,584,589,600,624,625,631,635,640,644,647,657,658,681,737,830,841,847,926,1022],[32,63,124,232,458,466,475],[36,50,57,62,63,64,66,70,78,85,108,113,114,115,118,121,124,126,139,160,164,175,177,178,182,183,185,200,202,205,207,208,214,217,222,223,232,233,236,270,284,297,308,314,318,326,352,366,368,372,389,396,398,453,458,467,468,469,473,474,478,480,485,504,517,522,527,531,536,542,546,551,554,559,563,569,570,572,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,232,467,468],[52,55,57,58,78,79,80,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,330,352,353,360,365,380,396,459,466,467,475,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[63,742],[675],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,207,230,232,239,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,740,741,743,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[740],[52,105,108,143,191,212,251,365,380,554,642,676,739],[122,744,747],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,207,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,625,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,744,745,746,748,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[745],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,747,830],[63,538,542],[32,57,62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,223,232,236,284,368,372,458,467,473,475,517,522,527,531,536,540,541,543,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[543],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,538,542,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[63,750],[57,62,63,64,65,66,70,85,114,115,121,139,141,160,164,175,177,202,230,232,235,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,749,751,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[676],[214,232,239,473,475],[63,232,753,756],[52,105,106,108,143,212,251,365,380,554,642],[36,62,63,64,66,70,85,113,114,115,121,126,139,160,164,175,177,200,202,223,232,236,270,284,297,314,318,368,372,391,453,458,473,475,517,522,527,531,536,542,546,551,569,572,589,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,753,754,755,757,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[206,232,754],[52,58,78,79,89,105,108,110,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,753,756,773,830],[25,52,66,78,105,108,118,122,124,141,143,178,182,183,185,207,208,212,213,214,217,251,308,321,329,350,365,370,380,398,455,472,504,518,554,559,570,600,624,626,631,642,644,657,681,847],[52,105,108,143,212,251,365,380,554,642],[32,56,58,60,62,63,64,65,67,70,78,79,85,89,108,114,115,116,117,121,139,143,144,160,164,175,177,183,189,191,202,207,230,232,236,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,544,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[55,58,66,78,79,89,108,114,116,117,139,141,143,144,183,189,191,202,224,230,235,251,284,309,330,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[63,223,232,706,708],[39,53,141,235],[58,62,63,64,66,70,78,79,85,89,108,114,116,117,121,139,143,144,160,164,175,177,183,189,191,202,207,230,232,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,707,709,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[21,58,78,79,80,89,108,114,116,117,139,141,143,144,183,189,191,202,230,235,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[32,52,63,101,102,103,105,108,124,128,133,135,139,143,210,212,223,224,232,251,293,365,380,458,554,642],[32,53,55,103,141,235,330,458,681],[26,32,52,57,58,62,63,64,66,70,75,78,79,85,89,101,102,103,105,108,111,114,115,116,117,118,121,122,123,124,136,137,138,139,140,141,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,212,217,223,224,230,232,235,236,239,251,284,308,309,314,318,326,352,353,360,365,366,368,372,380,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,123,140,232],[52,55,58,78,79,80,89,102,105,108,114,116,117,139,141,143,144,178,183,189,191,202,212,230,235,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[51,63,84,232,472],[54],[62,63,64,66,70,85,114,121,128,139,160,164,175,177,202,210,214,232,284,293,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,758,760,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,81,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,761,830],[140,713,717],[57,62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,232,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,715,716,718,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[718],[52,58,78,79,89,105,108,114,116,117,123,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,713,717,726,830],[63,68,101,130,232,569],[53,101,103],[32,35,36,62,63,64,66,70,85,101,113,114,115,121,126,130,137,139,160,164,175,177,200,202,220,222,232,239,270,284,297,314,318,368,372,453,458,473,475,517,522,527,531,536,542,546,551,566,567,568,572,589,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,214,566],[55,58,78,79,80,89,108,114,116,117,130,139,143,144,183,189,191,202,230,251,284,309,330,352,353,360,396,459,467,478,485,516,554,559,561,569,589,597,624,641,657,658,681,708,711,726,830],[23,56,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,643,647,648,657,681,847],[647,648],[32,52,63,105,108,115,143,208,212,232,236,251,365,380,458,554,640,642,648],[39,52,105,108,141,143,208,212,224,235,251,365,380,554,641,642],[57,62,63,64,66,70,78,85,108,114,115,118,121,139,159,160,164,175,177,178,182,183,185,202,205,207,208,217,223,232,236,239,284,308,314,318,326,352,366,368,372,389,396,398,458,467,473,475,478,480,485,504,517,522,527,531,536,542,546,551,554,559,563,569,570,589,600,624,625,626,627,628,638,639,641,643,647,648,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[214,641,643],[39,49,52,55,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,208,212,214,224,230,235,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,640,641,642,643,647,657,658,681,708,711,726,830],[214,645],[207,214,217,232,239,626,633,643,644,645,646],[23,214,626,643,647,648],[52,56,57,58,63,78,79,85,89,105,108,114,116,117,118,121,122,124,139,141,143,144,178,182,183,185,189,191,202,205,207,212,213,214,217,224,230,232,251,284,308,309,314,318,321,326,329,350,352,353,360,365,366,370,380,389,396,398,455,458,459,467,472,475,478,480,485,504,516,518,551,554,559,561,563,570,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,737,830,841,847,926],[63,207,214,539,546],[141,235,538],[32,57,62,63,64,66,67,70,85,114,115,121,139,160,164,175,177,202,207,223,232,236,239,284,368,372,458,467,473,475,517,522,527,531,536,542,544,545,547,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[544],[52,58,67,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,539,543,546,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[58,60,78,79,89,108,114,116,117,121,139,143,144,183,189,191,202,207,214,230,232,239,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[154,155,165,214],[63,154,161,164,167,232],[21,153,166,167],[25,57,62,63,64,66,70,85,92,114,115,121,139,158,159,160,162,163,165,166,167,175,177,202,223,232,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[26,65,154,165,167,214,223],[21,58,78,79,89,108,114,116,117,139,143,144,156,164,166,167,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[217,626,627,631],[55,214,330,631,681],[239,626,631,633,635],[52,78,85,105,108,118,127,131,137,143,146,183,187,189,204,207,209,212,214,216,217,232,241,251,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,365,366,367,380,387,389,479,482,484,486,507,511,513,554,560,563,577,579,584,589,600,626,631,634,638,642,647,657,681,737,1022],[56,63,78,84,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,630,638,643,644,648,657,681,847],[54,629,642],[54,57,62,63,64,66,70,85,114,115,121,139,159,160,164,175,177,189,202,217,223,230,232,233,236,239,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,626,630,631,632,635,636,637,639,640,648,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[214,232,631,636],[52,58,78,79,81,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,629,630,635,638,641,642,657,658,681,708,711,726,830],[214,762,765],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,625,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,763,764,766,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[763],[52,58,67,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,544,554,559,561,589,597,624,641,642,657,658,681,708,711,726,762,765,830],[32,63,122,458,767,769,770],[50,62,63,64,66,70,75,85,87,114,115,117,119,121,139,141,160,164,175,177,202,203,207,215,217,222,227,232,235,236,251,275,284,309,311,334,346,350,352,353,354,367,368,372,458,473,475,481,511,517,522,527,531,536,542,546,551,569,585,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,768,769,771,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,116,458],[223,230,232,768],[31,63,65,76,107,108,109,114,115,159,207,214,223,232,236,239,252,385,484,560,729],[55,108,141,235,330,681],[32,75,106,108,109,114,115,214,223,224,232,236,458],[52,58,78,79,89,105,108,109,114,116,117,139,143,144,183,185,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[58,62,63,64,65,66,70,78,79,85,89,107,108,110,111,112,113,115,116,117,118,121,139,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,217,223,230,232,236,239,251,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,773,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,65,78,79,89,108,114,116,117,139,143,144,183,189,191,202,214,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[52,58,67,78,79,89,105,106,108,109,114,115,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,544,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[32,63,458,773],[21,63,110,115,207,232,236,239,774],[63,778],[68],[62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,207,214,222,232,236,239,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,775,776,777,779,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[775],[52,80,105,108,143,212,251,365,380,554,642],[32,36,77,113,126,200,222,270,297,314,318,453,458,475,569,572,589],[22,25,32,55,56,58,64,66,75,78,79,85,87,88,89,92,108,114,115,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,178,182,183,185,187,189,191,202,204,205,207,208,209,210,213,214,216,217,222,223,230,232,236,239,241,251,252,268,271,275,284,293,303,308,309,313,314,318,321,326,329,330,335,338,339,341,343,346,350,352,353,354,358,360,365,366,367,370,380,387,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,503,504,507,511,513,516,518,551,554,559,560,561,563,570,573,577,579,581,584,589,597,600,624,625,626,631,635,640,641,644,656,657,658,681,708,711,726,737,830,841,847,848,926,1022],[68,781,784],[53],[32,62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,239,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,782,783,785,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[782],[52,58,78,79,80,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,781,784,830],[727,786,789],[723],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,787,788,790,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[787],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,724,726,786,789,830],[734,791,794],[730],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,792,793,795,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[792],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,731,791,794,830],[63,796,799],[52,62,63,64,66,70,85,105,108,114,121,139,141,143,160,164,175,177,202,207,212,224,232,235,251,284,365,368,372,380,458,473,475,517,522,527,531,536,542,546,551,554,569,638,640,642,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,797,798,800,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[115,797],[52,105,108,141,143,212,235,251,365,380,554,642,676,796],[154,160,232],[55,154,214,330,681],[63,153,160,208,214,232],[105,141,155,208,235],[57,62,63,64,66,70,85,114,115,121,139,153,154,155,156,157,158,159,164,167,175,176,177,202,208,217,223,232,233,236,239,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,154,160,183,189,191,202,214,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[21,52,58,71,78,79,89,105,108,114,116,117,139,141,143,144,153,154,155,160,183,189,191,202,208,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[53,56,70],[62,63,64,66,68,69,80,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,70,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[52,53,58,67,70,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,544,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[70,232,801,804],[62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,232,236,284,338,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,802,803,805,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[802],[79,80,143,801],[47,58,63,78,79,85,89,108,114,115,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,214,217,222,223,230,232,236,239,251,284,308,309,314,318,326,352,353,360,366,389,396,398,458,459,467,475,478,480,485,504,516,551,554,559,561,563,570,589,597,600,624,625,626,640,641,657,681,708,711,726,737,830,841,926],[75,223,232,638,640],[738,806,809],[735],[32,62,63,64,66,70,85,114,115,121,139,160,164,175,177,202,232,236,284,356,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,807,808,810,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[807],[55,58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,330,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,736,806,809,830],[56,59,64],[32,60,61,62,63,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,64,67,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,544,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[653,811,814],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,812,813,815,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[812],[52,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,651,657,658,681,708,711,726,811,814,830],[111,141,149,176,235,820,821],[63,223,232,816,820,822],[142,821],[23,55,62,63,64,66,70,85,92,111,114,115,121,139,159,160,164,175,176,177,202,223,232,236,239,284,330,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,816,817,818,819,821,822,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[821],[21,39,55,58,78,79,89,91,108,114,116,117,139,141,143,144,183,189,191,202,230,235,251,284,309,330,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,816,820,830],[63,232,821,822],[23,62,63,64,66,70,85,103,114,121,136,137,139,160,164,175,177,202,223,224,232,239,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,623,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,823,824,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[823],[58,78,79,89,108,114,116,117,123,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,623,624,641,657,658,681,708,711,726,825,830],[32,63,178,232,458,826,830],[141,235,466],[58,62,63,64,66,70,78,79,85,88,89,108,114,116,117,118,121,139,143,144,160,164,175,177,178,182,183,185,189,191,202,204,205,207,208,217,230,232,239,251,284,308,309,314,318,326,343,352,353,354,360,366,368,372,380,389,396,398,458,459,467,473,475,478,480,485,503,504,511,516,517,522,527,531,536,542,546,551,554,559,560,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,827,828,829,831,835,841,846,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[827],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,826,830],[25,32,55,63,214,223,232,239,330,458,681,827,830,831],[55,141,214,235,330,681,836],[32,52,63,105,108,143,212,214,223,232,251,365,380,458,554,642,832,835,837],[52,837],[25,26,52,57,58,62,63,64,66,70,78,79,85,89,92,105,108,114,115,116,117,121,139,143,144,160,164,175,177,183,189,191,202,204,212,223,230,232,236,251,284,309,352,353,360,365,368,372,380,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,832,833,834,836,837,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,214,833,836],[52,58,67,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,544,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830,832,835,837],[169,175],[21,52,63,105,108,143,167,168,170,175,212,214,232,251,365,380,554,642],[63,170,175],[63,65,168,169,171,172,175,214,223,232],[142,171,172],[26,57,62,63,64,66,70,85,92,114,115,121,139,148,159,160,163,164,169,170,171,172,173,174,176,177,202,222,223,232,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,172],[26,36,52,55,79,91,105,108,113,126,141,143,144,170,171,200,212,214,223,235,251,270,297,314,318,330,365,380,453,475,554,569,572,589,642,681,777],[23,149],[25,148,177],[57,63,124,142,147,149,177,232,467],[26,50,55,57,62,63,64,66,70,85,91,92,114,115,121,124,139,141,142,144,146,148,149,150,151,152,160,164,175,176,178,202,207,217,223,232,233,235,236,239,284,330,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[63,65,91,144,148,232],[21,22,39,52,55,58,78,79,80,89,91,105,108,114,116,117,139,141,142,143,144,177,183,189,191,202,212,230,234,235,237,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[52,105,108,141,143,160,175,207,212,214,232,233,235,251,365,380,554,642],[107,838,841],[106],[62,63,64,66,70,78,85,108,114,118,121,139,160,164,175,177,178,182,183,185,202,205,207,208,217,232,284,308,314,318,326,352,366,368,372,389,396,398,458,473,475,478,480,485,504,517,522,527,531,536,542,546,551,554,559,563,569,570,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,839,840,842,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[839],[52,58,78,79,89,105,108,110,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,773,830,838,841],[23,55,86,87,88,182,183,204,217,223,230,232,239,330,343,354,380,389,503,511,560,624,657,681,830,847],[56,63,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,232,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,843,846],[62,63,64,66,70,85,114,118,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,844,845,847,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[844],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830,843,846],[68,849,852],[32,62,63,64,66,70,75,85,114,115,121,139,160,164,175,177,202,232,236,239,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,850,851,853,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[850],[52,58,78,79,80,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830,849,852],[63,232,854,858],[23,32,55,57,58,62,63,64,66,70,75,78,79,85,89,108,114,115,116,117,121,132,139,143,144,147,160,164,175,177,183,189,191,202,223,230,232,233,236,251,284,309,330,352,353,360,368,372,390,392,393,394,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,855,856,857,859,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,856],[21,39,52,55,58,78,79,80,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,330,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830,854,858],[23,132,232,390,393,854],[25,121,214,232,548,551],[25,32,50,57,62,63,64,66,70,78,85,108,114,115,118,121,139,160,164,175,177,178,182,183,185,202,205,207,208,217,230,232,236,284,308,314,318,326,352,357,366,368,372,389,396,398,458,467,473,475,478,480,485,504,517,522,527,531,536,542,546,549,550,552,554,559,563,569,570,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[65,549],[39,52,58,78,79,89,105,108,114,116,117,139,141,143,144,183,189,191,202,212,230,235,251,284,309,352,353,360,365,380,396,459,467,478,485,516,548,551,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[121,232,860,863],[32,50,57,62,63,64,66,70,75,85,114,115,121,139,160,164,175,177,201,202,217,232,236,239,284,368,372,458,467,473,475,500,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,861,862,864,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[861],[52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830,860,863],[24,63,232,394,865,868,869],[23,24,57,62,63,64,66,70,85,114,115,121,139,147,160,164,175,177,202,207,223,232,236,239,284,368,372,394,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,866,867,869,870,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[866],[26,52,58,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,223,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830,865,868],[23,204,232,239,394,868,870],[25,29,56,63,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,232,308,321,329,350,365,369,372,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[47,58,62,63,64,66,70,78,79,85,89,104,108,114,115,116,117,121,139,143,144,160,164,175,177,183,189,191,202,207,230,232,233,236,239,251,284,309,352,353,360,368,369,370,371,373,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[232,370,373],[55,58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,330,352,353,360,369,372,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[38,232],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,873,874,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[26,223,282,872],[283,875],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,876,877,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[282],[283,878],[62,63,64,65,66,70,85,114,121,139,160,164,175,177,202,232,239,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,879,880,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[21,58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,282,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830,881],[283,881],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,883,884,886,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[882],[885,887],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,891,892,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[26,52,105,108,143,212,223,251,282,365,380,554,642,872],[283,893],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,894,895,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[891],[892,896],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,888,889,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,890],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,897,898,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[282,872],[283,899],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,900,901,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,902],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,909,910,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[885,911],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,903,904,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,905],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,906,907,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,908],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,912,913,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[885,914],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,921,922,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,923],[62,63,64,65,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,915,916,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,917],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,918,919,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,920],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,882,885,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,884],[32,56,58,62,63,64,66,70,78,79,85,89,108,114,116,117,118,121,139,141,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,217,223,230,232,233,235,251,280,281,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,500,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,924,925,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[26,52,105,108,141,143,212,223,235,251,282,365,380,554,642,924,926],[283,926],[207],[66,280],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,927,928,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,929],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,930,931,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[26,223,282],[283,932],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,934,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,935],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,935,936,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[933],[934,937],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,935,937,939,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[934,940],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,935,937,940,942,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[934,943],[21,62,63,64,66,70,85,114,121,139,160,164,175,177,202,207,223,232,239,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,945,946,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[21,26,58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,223,230,251,282,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830,947],[283,947],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,948,949,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,950],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,951,952,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,953],[32,56,63,115,214,232,236,282,283,284,458],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,954,955,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,956],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,207,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,957,958,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[52,105,108,143,212,251,282,365,380,554,642],[283,959],[62,63,64,65,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,871,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,960,961,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,962],[32,56,63,66,223,232,280,281,458,969,970],[63,283,971],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,963,964,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[885,965],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,972,973,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,974],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,966,967,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,968],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,975,976,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,977],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,978,979,983,986,989,992,995,998,1001,1004,1007,1010,1013],[283,980],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,982,983,985,989,992,995,998,1001,1004,1007,1010,1013],[872,981],[984,986],[58,62,63,64,66,70,78,79,85,89,108,114,116,117,121,139,143,144,160,164,175,177,183,189,191,202,217,230,232,251,280,281,282,283,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[67,544],[56,284],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,871,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,981,984,986,989,992,995,998,1001,1004,1007,1010,1013],[26,52,105,108,143,191,212,223,251,282,365,380,554,642,872],[283,983],[62,63,64,65,66,70,85,114,121,139,141,160,164,175,177,202,223,232,235,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,987,988,992,995,998,1001,1004,1007,1010,1013],[26,56,66,141,223,235,282,987],[283,989],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,990,991,995,998,1001,1004,1007,1010,1013],[885,992],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,996,997,1001,1004,1007,1010,1013],[283,998],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,993,994,998,1001,1004,1007,1010,1013],[283,995],[26,32,50,58,62,63,64,66,70,75,78,79,85,89,108,114,115,116,117,118,121,139,143,144,160,164,175,177,183,189,191,202,203,217,223,230,231,232,236,239,251,280,281,284,309,346,352,353,354,355,357,358,360,368,372,380,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,999,1000,1004,1007,1010,1013],[55,191,282,330,681,1001],[63,1001],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,217,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1002,1003,1007,1010,1013],[283,1004],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,871,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1008,1009,1013],[283,1010],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1005,1006,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,282,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830,1007],[283,1007],[62,63,64,66,70,85,114,121,139,160,164,175,177,202,232,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1011,1012],[283,1013],[36,78,85,108,113,114,118,121,126,127,131,137,139,146,178,182,183,185,187,189,200,202,204,205,207,208,209,216,217,232,239,241,252,268,270,271,275,293,297,303,308,313,318,319,326,329,335,338,339,341,346,352,354,358,366,367,387,389,396,398,453,458,475,478,479,480,482,484,485,486,504,507,511,513,551,554,559,560,563,569,570,572,577,579,584,589,600,624,625,626,635,640,657,658,681,737,777,830,841,926,1022],[26,32,62,64,66,70,85,87,114,117,121,128,139,160,164,175,177,195,202,203,207,210,215,217,220,222,223,227,230,232,239,251,275,284,293,309,310,311,313,314,318,334,346,350,352,353,354,367,368,372,458,473,475,481,511,517,522,527,531,536,542,546,551,569,585,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[36,77,78,85,108,113,114,118,121,126,139,178,182,183,185,195,200,202,205,207,208,217,220,230,232,239,270,297,308,314,315,316,317,326,352,366,389,396,398,453,458,475,478,480,485,504,551,554,559,563,569,570,572,589,600,624,625,626,640,657,658,681,737,777,830,841,926],[63,65,233,251,309],[36,58,62,64,66,70,78,79,85,87,89,90,101,108,113,114,116,117,121,126,139,141,143,144,146,160,164,175,177,183,187,189,191,192,200,202,203,204,215,217,218,227,230,232,235,240,251,267,270,275,284,289,297,300,309,310,311,314,318,332,334,339,340,344,346,350,352,353,354,358,360,367,368,372,387,388,389,396,453,458,459,467,473,475,478,481,482,485,511,516,517,522,527,531,536,542,546,551,554,559,560,561,569,572,577,585,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[58,78,79,89,90,101,108,114,116,117,139,143,144,146,183,187,189,191,192,202,215,217,218,220,230,232,238,239,240,251,267,275,284,289,300,309,310,319,332,334,339,340,344,352,353,358,360,387,388,389,396,459,467,478,482,485,516,554,559,560,561,577,589,597,624,641,657,658,681,708,711,726,830,1014,1022],[26,27,65,78,85,87,88,117,118,127,131,137,146,182,183,187,189,192,194,203,204,207,209,215,216,217,220,223,227,230,232,237,239,240,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,341,343,346,350,352,353,354,358,366,367,380,387,389,479,481,482,484,486,503,507,511,513,560,563,577,579,584,585,589,600,624,626,635,657,681,737,770,830,848,1022],[193,204,217,220,230,232,239],[65,192,204],[21,22,26,79,89,90,101,146,183,187,191,215,217,218,223,237,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[32,78,85,118,127,128,131,137,146,183,187,189,204,207,209,210,216,217,220,222,223,230,232,239,241,252,268,271,275,293,303,310,311,312,314,326,329,335,338,339,341,346,354,358,366,367,387,389,458,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[65,310],[79,89,90,101,141,146,183,187,192,215,217,218,235,240,251,267,275,289,300,309,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[27,38,217,232,1016,1020],[118,203,207,220,231,232,266,291,293,346,352,353,354,355,357,358,380,1017,1018,1020],[27,62,64,65,66,70,85,87,114,117,118,121,128,139,160,164,175,177,202,203,210,215,227,231,232,239,251,266,267,275,284,293,300,301,309,311,334,346,350,352,353,354,355,357,358,367,368,372,380,458,473,475,481,493,511,517,522,527,531,536,542,546,551,569,585,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1019,1020,1021],[1016],[27,78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,220,232,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,573,577,579,581,584,589,597,600,626,635,657,681,737,1016,1018,1021,1022],[267],[118,128,196,197,198,203,207,209,210,214,217,220,223,231,232,291,293,300,346,352,353,354,355,357,358,380,1019],[78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,240,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[58,78,79,85,89,90,101,108,114,116,117,118,127,131,137,139,143,144,146,183,187,189,191,192,202,204,207,209,214,215,216,217,218,223,230,240,241,248,249,250,251,252,267,268,271,275,284,289,293,300,303,305,306,307,308,309,310,313,314,320,322,323,326,327,328,329,332,334,335,338,339,340,341,344,346,352,353,354,358,360,366,367,387,388,389,396,459,467,478,479,482,484,485,486,507,511,513,516,554,559,560,561,563,577,579,584,589,597,600,624,626,635,641,657,658,681,708,711,726,737,830,1022],[27,33,73,223,232,242,243,247,248,335],[254,263,264,289,290,295,296,297,298,302],[27,242,249],[27,38,217,249,303],[56,78,85,108,114,118,121,122,124,139,141,178,182,183,184,185,189,202,205,207,208,213,214,217,242,246,249,308,314,318,321,326,329,335,350,352,365,366,370,389,396,398,455,458,472,475,478,480,485,504,518,551,554,559,563,570,589,600,624,625,626,631,640,644,657,658,681,737,830,841,847,926],[217,242,246,249,335],[242,249],[27,204,217,223,242,249,303,335],[52,105,108,143,207,212,251,335,365,380,554,642],[207,243,303,335],[207,214,217,242,249,322,326],[56,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,335,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[78,85,108,114,118,121,127,131,137,139,146,178,182,183,185,187,189,202,204,205,207,208,209,214,216,217,241,242,243,252,268,271,275,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,366,367,387,389,396,398,458,475,478,479,480,482,484,485,486,504,507,511,513,551,554,559,560,563,570,577,579,584,589,600,624,625,626,635,640,657,658,681,737,830,841,926,1022],[27,223,242,246,249],[27,31,78,85,108,115,118,127,131,137,146,159,183,187,189,204,207,209,216,217,223,236,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,385,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,729,737,772,1022],[56,78,85,108,118,122,124,127,131,137,141,146,178,182,183,185,187,189,204,207,208,209,213,214,216,217,235,241,252,268,271,275,293,303,308,313,314,321,326,329,335,338,339,341,346,350,354,358,365,366,367,370,387,389,398,455,472,479,482,484,486,504,507,511,513,518,554,559,560,563,570,577,579,584,589,600,624,626,631,635,644,657,681,737,847,1022],[55,79,89,90,101,141,146,183,187,192,215,217,218,235,240,251,267,275,289,300,309,310,330,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,681,1022],[27,217,242,243,306,335],[217],[251],[79,87,89,90,101,117,146,183,187,192,203,215,217,218,227,240,251,267,275,289,300,309,310,311,332,334,339,340,344,346,350,352,353,354,358,360,367,387,388,389,459,481,482,511,560,561,577,585,597,770,1022],[27,37,73,223,335],[37,246,335],[27,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[27,73,207,214,217,223,230,335],[27],[27,33,232],[26,27,115,207,217,223,224,236],[27,32,72,73,223,224,387,458],[19,22,23,24,28,32,49,58,78,79,87,88,89,108,114,116,117,118,128,139,143,144,180,182,183,189,191,195,202,203,204,207,210,214,215,217,223,224,227,228,230,231,240,251,275,284,293,309,311,334,343,346,350,352,353,354,355,357,358,360,367,380,389,396,458,459,467,478,481,485,503,511,516,554,559,560,561,585,589,597,624,641,657,658,681,708,711,726,770,830,848],[56,78,79,87,89,90,101,108,117,118,122,124,141,146,178,180,182,183,185,187,192,195,203,207,208,213,214,215,217,218,227,230,240,251,267,275,289,300,308,309,310,311,321,329,332,334,337,339,340,344,346,350,352,353,354,355,357,358,360,365,367,370,380,387,388,389,398,455,459,472,481,482,504,511,518,554,559,560,561,570,577,585,597,600,624,626,631,644,657,681,770,847,1022],[32,58,78,79,85,87,89,108,114,116,117,118,121,139,143,144,178,180,182,183,185,189,191,195,202,203,205,207,208,215,217,227,230,231,251,275,284,308,309,311,314,318,326,334,346,350,351,352,353,354,355,357,358,360,366,367,380,389,396,398,458,459,467,475,478,480,481,485,504,511,516,551,554,559,561,563,570,585,589,597,600,624,625,626,640,641,657,658,681,708,711,726,737,770,830,841,926],[32,56,57,58,74,78,79,85,88,89,90,101,108,114,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,178,181,182,183,184,185,187,189,191,192,202,204,205,207,208,209,210,213,214,215,216,217,218,224,230,234,235,240,241,251,252,267,268,271,275,284,289,293,300,303,308,309,310,313,314,318,321,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,358,360,365,366,367,370,380,387,388,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,503,504,507,511,513,516,518,551,554,559,560,561,563,570,577,579,584,589,597,600,624,625,626,631,635,640,641,644,657,658,681,708,711,726,737,830,841,847,848,926,1022],[56,58,74,78,79,85,89,108,114,116,117,118,121,122,124,139,141,143,144,178,182,183,185,189,191,202,205,207,208,213,214,217,230,235,251,284,308,309,314,318,321,326,329,350,352,353,360,365,366,370,389,396,398,455,458,459,467,472,475,478,480,485,504,516,518,551,554,559,561,563,570,589,597,600,624,625,626,631,640,641,644,657,658,681,708,711,726,737,830,841,847,926],[183],[87,117,118,141,180,195,203,214,215,217,227,234,235,251,275,309,311,334,346,350,352,353,354,355,357,367,380,481,511,585,770],[20,58,78,79,87,89,108,114,116,117,118,139,143,144,180,183,189,191,195,202,203,215,227,230,231,240,251,275,284,309,311,334,346,350,352,353,354,355,357,358,360,367,380,396,459,467,478,481,485,504,511,516,554,559,561,585,589,597,624,641,657,658,681,708,711,726,770,830],[24,32,78,85,86,87,88,117,118,127,131,137,141,146,180,182,183,187,189,195,203,204,207,209,214,215,216,217,223,227,230,231,235,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,341,343,346,350,352,353,354,355,357,358,366,367,380,387,389,458,479,481,482,484,486,503,507,511,513,560,563,573,577,579,581,584,585,589,600,624,626,635,657,681,737,770,830,848,1022],[118,180,195,203,230,231,311,346,350,352,353,354,355,357,358,380,585],[118,180,195,203,204,230,311,350,352,353,354,355,357,380,585],[19,20,58,78,79,87,89,108,114,116,117,118,139,143,144,180,183,189,191,195,202,203,207,215,217,227,230,231,240,251,275,284,309,311,334,346,350,352,353,354,355,357,358,360,367,380,396,459,467,478,481,485,504,511,516,554,559,561,585,589,597,624,641,657,658,681,708,711,726,770,830],[32,217,223,225,226,227,230,346,458],[32,87,117,203,215,225,226,227,228,230,251,275,309,311,334,346,350,352,353,354,367,458,481,511,585,770],[23,32,78,85,87,117,118,127,131,137,146,183,187,189,203,204,207,209,214,215,216,217,225,226,227,230,231,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,340,341,343,344,346,350,352,353,354,355,357,358,366,367,380,387,389,458,479,481,482,484,486,507,511,513,560,563,577,579,584,585,589,600,626,635,657,681,737,770,1022],[87,117,118,180,195,203,215,227,230,251,275,309,310,311,313,334,346,350,352,353,354,355,357,367,380,481,511,585,770],[87,117,181,203,215,227,251,275,309,311,334,343,344,346,350,352,353,354,367,481,511,585,770],[56,78,85,108,114,117,118,119,121,122,124,127,131,137,139,141,146,178,180,182,183,185,187,189,195,202,203,204,205,207,208,209,213,214,216,217,223,230,231,241,252,268,271,275,293,303,308,311,313,314,318,321,326,329,335,338,339,341,346,350,352,353,354,355,357,358,365,366,367,370,380,387,389,396,398,455,458,472,475,478,479,480,482,484,485,486,504,507,511,513,518,551,554,559,560,563,570,577,579,584,585,589,600,624,625,626,631,635,640,644,657,658,681,737,830,841,847,926,1022],[22,25,92,117,118,223,230],[20,23,32,86,87,117,203,215,222,223,227,230,251,275,309,311,334,346,350,352,353,354,367,458,481,504,511,560,585,770,848],[87],[52,87,88,105,108,117,118,143,180,182,183,195,203,204,207,212,215,217,227,230,231,251,275,309,311,334,343,346,350,352,353,354,355,357,358,365,367,368,377,378,380,389,481,503,511,554,560,585,624,642,657,770,830,848],[87,223,377,380],[92,118,119,180,195,203,217,230,231,311,346,350,352,353,354,355,357,358,380,585],[78,79,85,87,88,89,90,101,117,118,127,131,137,146,182,183,187,189,192,203,204,207,209,215,216,217,218,227,230,231,240,241,251,252,267,268,271,275,289,293,300,303,309,310,311,313,314,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,355,357,358,360,366,367,380,387,388,389,459,479,481,482,484,486,503,507,511,513,560,561,563,577,579,584,585,589,597,600,624,626,635,657,681,737,770,830,848,1022],[22,25,26,27,49,56,58,62,64,66,70,78,79,85,87,88,89,90,101,108,114,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,160,164,175,177,178,182,183,185,187,189,191,192,202,203,204,205,207,208,209,210,213,214,215,216,217,218,222,223,224,227,230,231,240,241,251,252,267,268,271,275,284,289,293,300,303,308,309,310,311,313,314,318,321,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,355,357,358,360,365,366,367,368,370,372,380,387,388,389,396,398,455,458,459,467,472,473,475,478,479,480,481,482,484,485,486,503,504,507,511,513,516,517,518,522,527,531,536,542,546,551,554,559,560,561,563,569,570,573,577,579,581,584,585,589,597,600,624,625,626,631,635,638,640,641,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[72,74,78,79,85,89,90,101,118,127,131,137,141,146,183,187,189,192,204,207,209,215,216,217,218,235,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,337,338,339,340,341,344,346,350,354,358,360,366,367,386,387,388,389,459,479,482,484,486,507,511,513,560,561,563,573,577,579,581,584,589,597,600,626,635,657,681,737,1022],[78,85,91,118,127,131,137,146,183,187,189,204,207,209,216,217,241,252,267,268,271,275,277,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[27,79,89,90,101,146,183,187,192,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[27,32,78,79,85,89,90,101,118,126,127,128,131,136,137,140,146,183,187,189,192,204,207,209,215,216,217,218,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,458,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[25,27,32,34,73,78,79,85,87,88,89,90,101,108,114,117,118,121,127,131,137,139,141,146,178,182,183,185,187,189,192,202,203,204,205,207,208,209,215,216,217,218,222,223,227,230,240,241,251,252,267,268,271,275,289,293,300,303,308,309,310,311,313,314,318,326,329,332,334,335,338,339,340,341,343,344,346,350,352,353,354,358,360,366,367,380,385,387,388,389,396,398,458,459,475,478,479,480,481,482,484,485,486,503,504,507,511,513,551,554,559,560,561,563,570,577,579,584,585,589,597,600,624,625,626,635,640,657,658,681,688,729,737,770,830,841,848,926,1022],[21,141,235],[79,89,90,101,146,183,187,192,215,217,218,220,238,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1015,1022],[58,78,79,87,89,108,114,116,117,131,139,143,144,183,185,187,189,191,202,203,207,215,217,227,230,251,275,284,309,311,334,346,350,352,353,354,360,367,387,396,459,467,478,481,485,486,507,511,513,516,554,559,561,573,581,585,589,597,624,641,657,658,681,708,711,726,770,830],[23,390,391,392],[272],[25,26,27,28,49,58,78,79,85,89,108,114,116,117,118,127,131,137,139,143,144,146,183,185,186,187,189,191,202,204,207,209,214,216,217,223,224,230,241,251,252,268,271,275,284,293,303,309,313,314,326,329,335,338,339,341,346,352,353,354,358,360,366,367,387,389,396,459,467,478,479,482,484,485,486,507,511,513,516,554,559,560,561,563,577,579,584,589,597,600,624,626,635,641,657,658,681,708,711,726,737,830,1022],[56,78,85,88,108,114,118,121,122,124,139,141,178,182,183,184,185,189,202,204,205,207,208,213,214,217,308,314,318,321,326,329,343,350,352,354,365,366,370,380,389,396,398,455,458,472,475,478,480,485,503,504,511,518,551,554,559,560,563,570,589,600,624,625,626,631,640,644,657,658,681,737,830,841,847,848,926],[23,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,241,252,268,271,275,293,303,313,314,326,329,335,337,338,339,341,346,350,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[27,79,89,90,101,128,146,183,187,192,209,210,215,217,218,240,251,267,275,289,293,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[25,27,78,79,85,89,90,101,115,118,127,128,131,137,146,183,187,189,192,204,207,209,210,214,215,216,217,218,223,230,236,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[26,37,115,223,236],[25,26,27,34,73,141,222,223,289,385,389,688,729],[21,22,25,26,27,28,29,30,31,32,108,115,141,159,207,222,223,224,235,236,252,385,458,484,560,729,772],[32,141,223,224,235,382,385,458],[22,25,26,32,36,113,115,126,141,200,222,223,235,236,270,297,314,318,453,458,475,569,572,589,777],[21,23,25,26,27,28,30,32,33,34,35,36,38,73,92,113,115,126,141,200,223,224,236,237,270,289,297,314,318,385,389,453,458,475,569,572,589,688,729,777],[23,31,32,34,73,108,115,141,159,207,222,223,236,252,289,337,350,381,384,385,386,389,458,484,560,688,729,772],[32,35,36,113,115,126,200,270,297,314,318,453,458,475,569,572,589,777],[222,223],[78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[21,22,23,25,31,32,52,55,56,58,76,78,79,85,89,92,105,107,108,114,115,116,117,118,121,122,124,139,141,143,144,159,178,182,183,185,189,191,202,205,207,208,212,213,214,217,223,224,230,236,251,252,284,308,309,314,318,321,326,329,330,350,352,353,360,365,366,370,380,385,389,396,398,455,458,459,467,472,475,478,480,484,485,504,516,518,551,554,559,560,561,563,570,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,729,737,772,830,841,847,926],[48,58,78,79,85,89,108,114,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,217,224,230,251,284,308,309,314,318,326,352,353,360,366,389,396,398,458,459,467,475,478,480,485,504,516,551,554,559,561,563,570,589,597,600,624,625,626,640,641,657,658,681,708,711,726,737,830,841,926],[41,48,52,58,66,78,79,89,105,108,114,116,117,139,143,144,183,189,191,202,212,230,251,284,309,352,353,360,365,380,396,459,467,478,485,516,554,559,561,589,597,624,641,642,657,658,681,708,711,726,830],[32,49,52,56,57,78,92,105,108,115,118,122,124,141,143,178,182,183,185,207,208,211,212,213,214,217,223,224,232,235,236,251,308,321,329,350,365,370,380,398,455,458,467,472,504,518,554,559,570,600,624,626,631,642,644,657,681,847],[25,31,32,36,47,49,50,51,52,56,57,58,62,63,64,66,70,78,79,85,89,105,108,113,114,115,116,117,118,121,122,124,126,127,128,131,137,139,141,143,144,146,159,160,164,175,177,178,182,183,185,187,189,191,200,202,203,204,205,207,208,209,210,212,213,214,216,217,223,224,230,231,232,235,236,241,251,252,268,270,271,275,284,293,297,303,308,309,313,314,318,321,326,329,335,338,339,341,346,350,352,353,354,355,357,358,360,365,366,367,368,370,372,380,385,387,389,396,398,453,455,458,459,467,472,473,475,478,479,480,482,484,485,486,504,507,511,513,516,517,518,522,527,531,536,542,546,551,554,559,560,561,563,569,570,572,577,579,584,589,597,600,624,625,626,631,635,638,640,641,642,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,729,733,737,742,747,750,756,758,761,765,770,772,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[56,58,78,79,85,89,108,114,116,117,118,121,122,124,139,141,143,144,178,182,183,185,189,191,202,205,207,208,213,214,217,230,251,284,308,309,314,318,321,326,329,350,352,353,358,360,365,366,370,389,396,398,455,458,459,467,472,475,478,480,485,504,516,518,551,554,559,561,563,570,589,597,600,624,625,626,631,640,641,644,657,658,681,708,711,726,737,830,841,847,926],[62,64,66,70,85,114,121,139,160,164,175,177,202,207,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[19,20,79,89,90,101,146,183,187,192,203,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,353,358,360,387,388,389,459,482,504,560,561,577,597,1022],[23,24,56,58,78,79,85,89,108,114,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,178,182,183,185,187,189,191,202,204,205,207,208,209,210,213,214,216,217,222,223,230,241,251,252,268,271,275,284,293,303,308,309,313,314,318,321,326,329,335,338,339,341,346,350,352,353,354,358,360,365,366,367,370,387,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,504,507,511,513,516,518,551,554,559,560,561,563,570,577,579,584,589,597,600,624,625,626,631,635,640,641,644,657,658,681,708,711,726,737,830,841,847,926,1022],[26,27,33,37,58,78,79,89,108,114,115,116,117,118,139,143,144,183,189,191,202,203,207,217,223,230,231,236,240,251,284,309,346,352,353,354,355,357,358,360,380,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[41,400,402,410,413,414,415,417,419,420],[41,43,48,400,401,409,415,417,419,420,444,446,448,450,452],[41,400,403,410,413,415,416,417,419,420],[41,400,404,410,413,415,417,418,419,420],[41,400,407,408,410,413,415,417,419,420],[41,48,402,406,407,409,410,414,416,418],[41,48,406,407,408,410,414,416,418],[41,48,403,406,407,409,414,416,418],[41,48,406,407,409,410,414,416,418],[41,48,406,407,408,409,414,416,418],[41,48,405,410],[400,415,417,419,420],[41,45,46,47],[41,46,48],[48,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441],[41,42,43,45,48,443,444,446,448,450,452],[41,43,44,48,444,446,448,450,452],[41,43,45,48,444,445,446,448,450,452],[41,43,45,48,442,444,446,447,448,450,452],[41,43,45,48,444,446,448,449,450,452],[41,43,45,48,444,446,448,450,451,452],[25,79,89,90,101,118,146,183,187,192,203,209,215,217,218,222,223,224,231,240,251,254,255,256,258,260,262,263,264,265,267,275,289,290,293,295,296,297,298,300,301,302,309,310,332,334,339,340,344,346,352,353,354,355,357,358,360,380,387,388,389,459,482,487,488,489,490,491,492,493,494,495,496,497,560,561,577,597,1022],[209,217,223,263,264,293,300,301],[301],[115,223,236,251,253,260,262,289,300,302],[223,251,254,260,261,289,290,295,296,297,298,300],[25,118,203,223,231,251,254,260,261,263,264,289,290,295,296,297,298,300,346,352,353,354,355,357,358,380],[22,23,25,36,113,115,126,200,222,223,236,251,254,260,261,262,263,264,270,289,290,295,296,297,298,300,302,314,318,453,475,569,572,589,777],[32,34,38,73,79,89,90,101,141,146,183,187,192,215,217,218,222,223,240,251,253,254,260,261,267,275,289,290,295,296,297,298,300,309,310,332,334,339,340,344,358,360,385,387,388,389,458,459,482,560,561,577,597,688,729,1022],[223,255,256,257,258,262,263,302],[25,256,258,259,261,263,264,300,302],[23,128,210,223,254,257,262,289,290,293,295,296,297,298,301,302],[23,207,230,256,258,262,263,264,302],[27,78,85,91,118,127,128,131,137,146,183,187,189,204,207,209,210,216,217,241,252,266,267,268,271,275,277,287,293,300,302,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1017,1019,1022],[209],[27,217,278,279,285,286,301,302],[287,301,302],[209,293],[217,287,301,302],[287,302],[257,265,300,487,488,489,490,491,492,493,494,495,496,497],[256,258,263,265,300,301,487,488,489,490,491,492,493,494,495,496,497],[141,235,251,260,265,487,488,489,490,491,492,493,494,495,496,497],[21,263,265,487,488,489,490,491,492,493,494,495,496,497],[257,265,487,488,489,490,491,492,493,494,495,496,497],[23,263,264,265,487,488,489,490,491,492,493,494,495,496,497],[26,39,71,223,251,255,256,258,260,263,265,300,301,302,487,488,489,490,491,492,493,494,495,496,497],[23,251,256,258,260,263,264,265,300,487,488,489,490,491,492,493,494,495,496,497],[32,257,265,300,458,487,488,489,490,491,492,493,494,495,496,497],[256,257,258,263,265,487,488,489,490,491,492,493,494,495,496,497],[251,256,258,260,261,263,265,300,301,487,488,489,490,491,492,493,494,495,496,497],[32,36,113,126,200,222,270,297,314,318,453,458,475,569,572,589,777],[63,207,217,230,233],[25,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,223,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,465,478,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[52,58,63,78,79,85,89,105,108,114,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,212,214,217,230,251,284,308,309,314,318,326,352,353,360,365,366,380,389,396,398,458,459,465,467,475,478,479,480,485,504,516,551,554,559,561,563,570,589,597,600,624,625,626,640,641,642,657,658,681,708,711,726,737,830,841,926],[207,217,459,461,480],[85],[63,78,85,108,114,118,121,139,178,182,183,185,202,205,207,208,217,308,314,318,326,352,366,389,396,398,458,459,465,475,478,480,485,504,551,554,559,563,570,589,600,624,625,626,640,657,658,681,737,830,841,926],[35,115,207,222,223,236],[78,79,85,89,90,91,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,223,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[79,89,90,91,101,146,183,187,192,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[21,22,26,39,71,87,117,203,215,223,227,228,230,240,251,275,309,311,334,346,350,352,353,354,367,481,511,585,770],[78,79,85,87,89,90,101,117,118,127,131,137,146,183,187,189,192,203,204,207,209,215,216,217,218,227,230,240,241,251,252,267,268,271,275,289,293,300,303,309,310,311,313,314,326,329,332,334,335,338,339,340,341,344,346,350,352,353,354,358,360,366,367,387,388,389,409,459,479,481,482,484,486,507,511,513,560,561,563,577,579,584,585,589,597,600,626,635,657,681,737,770,1022],[47,78,207,230,504],[88,182,183,191,204,217,230,343,354,380,389,503,511,560,624,657,830,848],[20,47,52,56,62,64,66,70,78,85,105,108,114,118,121,122,124,139,141,143,160,164,175,177,178,182,183,185,190,202,203,205,207,208,212,213,214,217,251,284,308,314,318,321,326,329,350,352,353,365,366,368,370,372,380,389,396,398,455,458,472,473,475,478,480,485,501,504,517,518,522,527,531,536,542,546,551,554,559,563,569,570,589,600,624,625,626,631,638,640,642,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,223,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1022],[554],[25,78,85,118,127,128,131,137,146,183,187,189,204,207,209,210,214,216,217,223,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,555,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1022],[23,32,52,56,58,78,79,85,89,105,108,114,116,117,118,121,122,124,128,139,141,143,144,178,182,183,185,189,191,202,205,207,208,210,212,213,214,217,223,230,251,284,293,308,309,314,318,321,326,329,350,352,353,360,365,366,370,380,389,396,398,455,458,459,467,472,475,478,480,485,504,513,516,518,551,554,555,559,561,563,570,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,737,830,841,847,926],[128,210,223,230,293,508],[508],[78,85,87,88,117,118,127,131,137,146,182,183,187,189,203,204,207,209,215,216,217,227,230,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,341,343,346,350,352,353,354,358,366,367,380,387,389,479,481,482,484,486,503,507,508,510,511,513,560,563,577,579,584,585,589,600,624,626,635,657,681,737,770,830,848,1022],[25,31,52,58,62,64,66,70,78,79,85,86,87,88,89,90,101,105,108,114,115,116,117,118,121,127,131,137,139,141,143,144,146,159,160,164,175,177,182,183,187,189,191,192,202,204,207,209,212,214,215,216,217,218,222,223,224,230,235,236,240,241,251,252,267,268,271,275,284,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,343,344,346,352,353,354,358,360,365,366,367,368,372,380,385,387,388,389,396,458,459,467,473,475,478,479,482,484,485,486,503,507,511,513,516,517,522,527,531,536,542,546,551,554,557,559,560,561,563,569,577,579,584,589,597,600,624,626,635,638,640,641,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,729,733,737,742,747,750,756,761,765,770,772,778,784,789,794,799,804,809,814,820,825,830,835,841,846,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[557],[56,58,62,64,66,70,78,79,85,89,108,114,116,117,118,121,122,124,139,141,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,213,214,217,230,251,284,308,309,314,318,321,326,329,350,352,353,360,365,366,368,370,372,389,396,398,455,458,459,467,472,473,475,478,480,485,504,516,517,518,522,527,531,536,542,546,551,554,559,560,561,563,569,570,589,597,600,624,625,626,631,638,640,641,644,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,847,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[38,78,85,108,114,118,121,127,131,137,139,146,178,182,183,185,187,189,202,204,205,207,208,209,216,217,241,252,268,271,275,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,366,367,387,389,396,398,458,475,478,479,480,482,484,485,486,504,507,511,513,551,554,559,560,563,570,577,579,584,589,600,624,625,626,635,640,657,658,681,737,830,841,926,1022],[27,33,78,79,85,87,89,90,91,101,117,118,127,131,137,146,183,187,189,192,203,204,207,209,215,216,217,218,222,223,224,227,240,241,251,252,267,268,271,275,276,277,289,293,300,303,309,310,311,313,314,326,329,332,334,335,338,339,340,341,344,346,350,352,353,354,358,360,366,367,387,388,389,459,479,481,482,484,486,507,511,513,560,561,563,573,577,579,581,584,585,589,597,600,626,635,657,681,737,770,1022],[91,251,267,276,277,561],[36,113,126,200,222,270,297,314,318,453,475,569,572,589,777],[78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[79,143],[23,52,56,58,78,79,85,89,90,101,105,108,114,116,117,118,121,122,124,139,141,143,144,146,178,182,183,185,187,189,191,192,202,205,207,208,212,213,214,215,217,218,223,230,240,251,267,275,284,289,300,308,309,310,314,318,321,326,329,332,334,339,340,344,350,352,353,358,360,365,366,370,380,387,388,389,396,398,455,458,459,467,472,475,478,480,482,485,504,516,518,551,554,559,560,561,563,570,577,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,737,830,841,847,926,1022],[70,79,89,90,101,146,183,187,192,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,577,597,1022],[79,89,90,101,146,183,187,192,215,217,218,240,251,267,275,289,300,309,310,332,334,339,340,344,358,360,387,388,389,459,482,560,561,575,577,597,1022],[78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,223,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,575,577,579,584,589,597,600,626,635,657,681,737,1022],[78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,240,241,251,252,267,268,271,275,276,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[251,276,561],[25,31,78,85,108,118,127,131,137,146,159,183,187,189,204,207,209,216,217,223,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,385,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,729,737,772,1022],[88,182,183,204,209,217,223,340,341,343,346,354,380,389,503,511,560,624,657,830,848],[78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,343,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[340],[87,117,118,180,195,203,215,227,230,251,275,309,311,334,346,350,352,353,354,355,357,367,380,481,511,584,585,770],[78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,230,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1022],[207,584],[21,25,34,56,73,78,108,115,118,122,124,141,178,182,183,185,207,208,213,214,217,222,223,224,235,236,289,308,321,329,350,365,370,385,389,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,688,729,847],[58,78,79,85,87,89,108,114,116,117,118,121,139,141,143,144,178,182,183,185,189,191,202,203,205,207,208,215,217,223,227,230,235,251,275,284,308,309,311,314,318,326,334,346,350,352,353,354,360,366,367,389,396,398,458,459,467,475,478,480,481,485,504,511,516,551,554,559,561,563,570,585,589,597,600,624,625,626,640,641,657,658,681,708,711,726,737,770,830,841,926],[25,27,78,85,118,127,131,137,146,183,187,189,204,207,209,216,217,222,223,230,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1022],[36,58,78,79,85,89,108,113,114,116,117,118,121,126,127,131,137,139,143,144,146,178,182,183,185,187,189,191,200,202,204,205,207,208,209,216,217,222,223,230,241,251,252,268,270,271,275,284,293,297,303,308,309,313,314,318,326,329,335,338,339,341,346,352,353,354,358,360,366,367,387,389,396,398,453,458,459,467,475,478,479,480,482,484,485,486,504,507,511,513,516,551,554,559,560,561,563,569,570,572,577,579,584,586,589,597,600,624,625,626,635,640,641,657,658,681,708,711,726,737,777,830,841,926,1022],[594],[56,78,85,108,114,118,121,122,124,127,131,137,139,141,146,178,182,183,185,187,189,202,204,205,207,208,209,213,214,216,217,241,252,268,271,275,293,303,308,313,314,318,321,326,329,335,338,339,341,346,350,352,354,358,365,366,367,370,387,389,396,398,455,458,472,475,478,479,480,482,484,485,486,504,507,511,513,518,551,554,559,560,563,570,577,579,584,589,590,592,593,596,599,600,624,625,626,631,635,640,644,657,658,681,737,830,841,847,926,1022],[590,591],[214,217,592,593,594],[217,596],[78,85,87,117,118,127,131,137,146,183,187,189,203,204,207,209,215,216,217,227,230,241,251,252,268,271,275,293,303,309,311,313,314,326,329,334,335,338,339,341,346,350,352,353,354,358,366,367,387,389,479,481,482,484,486,507,511,513,560,563,577,579,584,585,589,600,626,635,657,681,737,770,1022],[31,108,159,207,223,252,385,484,560,729,772],[32,115,214,217,223,236,360,362,366,458],[78,85,108,114,118,121,127,131,137,139,146,178,182,183,185,187,189,202,204,205,207,208,209,214,216,217,223,241,252,268,271,275,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,360,362,363,366,367,387,389,396,398,458,475,478,479,480,482,484,485,486,504,507,511,513,551,554,559,560,563,570,577,579,584,589,600,624,625,626,635,640,657,658,681,737,830,841,926,1022],[23,52,56,78,105,108,118,122,124,141,143,178,182,183,185,207,208,212,213,214,217,251,308,321,329,350,360,365,366,370,374,380,398,455,472,504,518,554,559,570,600,624,626,631,642,644,657,681,847],[78,85,101,102,103,118,127,130,131,137,146,183,187,189,204,207,209,216,217,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,573,577,579,581,584,589,600,626,635,657,681,737,1022],[78,85,90,118,127,131,137,146,183,187,189,204,207,209,216,217,222,223,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[90],[127,128,137,209,210,293],[23,25,101,103,135,137,223,224],[32,93,99,100,101,103,458],[804],[517,522,531,536,656,685,737,784],[64,66,70,114,121,458,654,668],[239,284,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,971,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[239,284,884],[239,415,417,419,420,444,446,448,450,452],[239,789],[239,1025,1026,1027],[139,239,475,569,717,1031],[239,542,678,1034,1035,1036],[177,239,820],[115,154,208,236,659,662],[57,58,62,64,66,70,78,79,85,89,108,114,115,116,117,121,139,143,144,158,160,164,175,177,183,189,191,202,207,230,236,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,660,662,663,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,62,64,66,70,78,85,108,114,118,121,139,160,164,175,177,178,182,183,185,202,205,207,208,217,284,308,314,318,326,352,366,368,372,389,396,398,455,456,458,473,475,478,480,485,504,517,522,527,531,536,542,546,551,554,559,563,569,570,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[458],[32,56,78,92,108,118,122,124,141,178,182,183,185,207,208,213,214,217,223,308,321,329,350,365,370,398,455,458,472,504,514,517,518,554,559,570,600,624,626,631,644,657,681,847],[32,36,52,62,64,66,70,85,105,108,113,114,121,126,139,143,160,164,175,177,200,202,212,223,230,251,270,284,297,314,318,346,365,368,372,380,453,458,473,475,516,517,518,522,527,531,536,542,546,551,554,569,572,589,638,640,642,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,651,653,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,650,654,655,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,667,668,669,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[52,62,64,66,70,85,105,108,114,121,139,143,160,164,175,177,202,212,251,284,365,368,372,380,458,473,475,517,522,527,531,536,542,546,551,554,569,625,638,640,642,654,656,662,668,671,673,674,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,473,475,517,520,522,523,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[520],[189,217],[185],[22,25,26,56,71,78,81,85,89,108,114,115,118,121,122,124,139,141,178,182,183,184,185,186,189,202,205,207,208,213,214,217,223,235,236,251,308,314,318,321,326,329,350,352,365,366,370,389,396,398,455,458,472,475,478,480,485,504,518,551,554,559,563,570,589,600,624,625,626,631,640,644,657,658,681,737,830,841,847,926],[32,54,68,85,458],[51,57,62,64,66,70,78,81,84,85,108,114,115,118,121,127,128,131,137,139,146,160,164,175,177,178,182,183,185,187,189,202,204,205,207,208,209,210,214,216,217,230,236,241,252,268,271,275,284,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,366,367,368,372,387,389,396,398,458,467,472,473,475,478,479,480,482,484,485,486,504,507,511,513,517,522,527,531,536,542,546,551,554,559,560,563,569,570,577,579,584,589,600,624,625,626,635,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,758,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[50,62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,524,527,528,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[57,62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,676,678,679,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[39,56,57,68,70,78,108,115,118,122,124,141,178,182,183,185,207,208,213,214,217,235,236,308,321,329,350,365,370,398,455,467,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[121],[25,39,57,58,62,64,66,70,78,79,85,89,104,108,114,115,116,117,118,121,122,139,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,217,223,230,236,251,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,121,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[21,55,56,58,78,79,85,89,108,114,116,117,118,119,121,122,124,127,131,137,139,141,143,144,146,178,182,183,185,187,189,191,202,204,205,207,208,209,213,214,216,217,223,230,241,251,252,268,271,275,284,293,303,308,309,313,314,318,321,326,329,330,335,337,338,339,341,346,350,352,353,354,358,360,365,366,367,370,387,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,504,507,511,513,516,518,551,554,559,560,561,563,570,577,579,584,589,597,600,624,625,626,631,635,640,641,644,657,658,681,708,711,726,737,830,841,847,926,1022],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,683,685,686,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[122,518,529,531],[62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,473,475,517,522,527,530,531,532,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[23,32,34,73,115,141,217,222,223,236,289,383,385,389,458,688,729],[122,689,692],[62,64,66,70,85,114,121,139,160,164,175,177,202,222,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,690,692,693,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[141,235,386],[56,58,78,79,85,88,89,108,114,116,117,118,121,122,124,139,141,143,144,178,182,183,185,189,191,202,204,205,207,208,213,214,217,230,251,284,308,309,314,318,321,326,329,343,350,352,353,354,360,365,366,370,380,389,396,398,455,458,459,467,472,475,478,480,485,503,504,511,516,518,551,554,559,560,561,563,570,589,597,600,624,625,626,631,640,641,644,657,658,681,708,711,726,737,830,841,847,848,926],[92,115,154,223,236,694,697],[62,64,66,70,85,114,121,139,158,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,695,697,698,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,85,89,108,114,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,217,230,251,284,308,309,314,318,326,352,353,360,366,389,396,398,458,459,467,475,478,480,485,504,516,551,554,559,561,563,570,589,597,600,624,625,626,640,641,657,658,681,708,711,726,737,830,841,926],[62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,700,702,703,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,128,139,143,144,183,189,191,202,207,210,214,217,230,251,284,293,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,647,657,658,681,708,711,726,830],[223,518,704,711],[58,62,64,66,70,78,79,85,89,104,108,114,115,116,117,121,139,141,143,144,160,164,175,177,183,189,191,202,230,235,236,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,705,708,709,711,712,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[705],[62,64,66,70,85,104,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,534,536,537,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[534],[26,122,141,196,202,223,235],[58,62,64,66,70,78,79,85,89,108,114,115,116,117,118,121,139,141,143,144,160,164,175,177,178,182,183,185,189,191,196,197,198,200,201,202,205,207,208,217,230,235,236,251,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[197],[23,124,714,715,720],[23,32,57,62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,714,717,719,720,721,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[25,58,62,64,66,70,78,79,85,89,92,108,114,116,117,121,139,141,143,144,160,164,175,177,183,189,191,202,217,230,235,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,722,724,726,727,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[724],[31,32,34,73,108,115,141,159,207,222,223,236,252,289,383,385,389,458,484,560,688,729,772],[121,730,733],[55,62,64,66,70,85,92,114,121,139,160,164,175,177,202,222,284,330,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,681,685,692,697,702,708,711,717,720,726,731,733,734,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[217,368,370,375],[62,64,66,70,85,87,114,121,139,160,164,175,177,202,207,217,230,284,368,372,374,376,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[374],[57,115,214,223,236,467,735,737],[52,62,64,66,70,78,85,105,108,114,118,121,127,131,137,139,143,146,160,164,175,177,178,182,183,185,187,189,202,204,205,207,208,209,212,216,217,223,241,251,252,268,271,275,284,293,303,308,313,314,318,326,329,335,338,339,341,346,352,354,358,365,366,367,368,372,380,387,389,396,398,458,473,475,478,479,480,482,484,485,486,504,507,511,513,517,522,527,531,536,542,546,551,554,559,560,563,569,570,577,579,584,589,600,624,625,626,635,638,640,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,736,737,738,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1022],[51,52,56,78,105,108,118,122,124,140,141,143,178,182,183,185,207,208,212,213,214,217,251,308,321,329,350,365,370,380,398,455,471,472,473,504,518,554,559,570,600,624,626,631,642,644,657,681,758,847],[62,64,66,70,85,114,121,128,136,139,160,164,175,177,202,210,214,223,284,293,368,372,458,470,472,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[56,78,85,108,114,118,121,122,124,127,131,137,139,141,146,178,182,183,185,187,189,202,204,205,207,208,209,213,214,216,217,241,252,268,271,275,293,303,308,313,314,318,321,326,329,335,338,339,341,346,350,352,354,358,365,366,367,370,387,389,396,398,455,458,472,475,478,479,480,482,484,485,486,504,507,511,513,518,551,554,559,560,563,570,577,579,584,589,600,624,625,626,631,635,640,644,647,657,658,681,737,830,841,847,926,1022],[32,68,124,458,466,475],[36,50,57,62,64,66,70,78,85,108,113,114,115,118,121,124,126,139,160,164,175,177,178,182,183,185,200,202,205,207,208,214,217,223,236,270,284,297,308,314,318,326,352,366,368,372,389,396,398,453,458,467,468,473,475,478,480,485,504,517,522,527,531,536,542,546,551,554,559,563,569,570,572,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[467],[679,742],[62,64,66,70,85,114,121,139,160,164,175,177,202,207,230,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,740,742,743,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,625,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,744,745,747,748,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[122,538,542],[32,57,62,64,66,70,85,114,115,121,139,160,164,175,177,202,223,236,284,368,372,458,467,473,475,517,522,527,531,536,540,542,543,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[678,750],[57,62,64,66,70,85,114,115,121,139,141,160,164,175,177,202,235,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,749,750,751,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[214,473,475],[107,214,753,756],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,391,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,754,756,757,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[754],[32,56,58,62,64,66,67,70,78,79,85,89,108,114,116,117,121,139,143,144,160,164,175,177,183,189,191,202,207,230,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,544,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[68,214,223,706,708,712],[58,62,64,66,70,78,79,85,89,108,114,116,117,121,139,143,144,160,164,175,177,183,189,191,202,207,230,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,707,708,709,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,52,68,101,102,103,105,108,124,128,135,139,143,210,212,223,224,251,293,365,380,458,554,642],[52,57,58,62,64,66,70,78,79,85,89,101,102,103,105,108,111,114,115,116,117,118,121,123,124,137,139,140,141,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,212,217,223,224,230,235,236,251,284,308,309,314,318,326,352,353,360,365,366,368,372,380,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,642,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[51,84,140,472,758],[62,64,66,70,85,114,121,128,139,160,164,175,177,202,210,214,284,293,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,758,760,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[57,62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,715,717,718,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[68,70,101,130,569],[32,35,36,62,64,66,70,85,101,113,114,115,121,126,130,137,139,160,164,175,177,200,202,220,270,284,297,314,318,368,372,453,458,473,475,517,522,527,531,536,542,546,551,566,567,569,572,589,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,777,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[566],[56,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[32,52,105,108,115,143,208,212,214,236,251,365,380,458,554,640,642,648],[57,58,62,64,66,70,78,79,85,89,108,114,115,116,117,118,121,139,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,217,230,236,251,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,627,638,640,641,643,647,648,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[641],[207,214,217,626,643,645,646],[626],[52,56,57,58,78,79,85,89,105,108,114,116,117,118,121,122,124,139,141,143,144,178,182,183,185,189,191,202,205,207,208,212,213,214,217,224,230,251,284,308,309,314,318,321,326,329,350,352,353,360,365,366,370,380,389,396,398,455,458,459,467,472,475,478,480,485,504,516,518,551,554,559,561,563,570,589,597,600,624,625,626,631,640,641,642,644,657,658,681,708,711,726,737,830,841,847,926],[207,214,539,542,546],[32,57,62,64,66,70,85,114,115,121,139,160,164,175,177,202,207,223,236,284,368,372,458,467,473,475,517,522,527,531,536,542,544,546,547,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,207,214,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[154,161,164,167],[57,58,62,64,66,70,78,79,85,89,92,108,114,115,116,117,121,139,143,144,158,160,164,165,166,167,175,177,183,189,191,202,207,230,236,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[167],[52,78,85,105,108,118,127,131,137,143,146,183,187,189,204,207,209,212,214,216,217,241,251,252,268,271,275,293,303,313,314,326,329,335,338,339,341,346,354,358,365,366,367,380,387,389,479,482,484,486,507,511,513,554,560,563,577,579,584,589,600,626,631,635,638,642,647,657,681,737,1022],[56,78,84,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,630,631,638,643,644,648,657,681,847],[57,62,64,66,70,85,114,115,121,139,160,164,175,177,189,202,217,223,230,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,630,631,632,635,636,638,640,648,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[636],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,625,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,763,765,766,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,122,458,767,770],[50,62,64,66,70,85,87,114,115,117,121,139,141,160,164,175,177,202,203,215,227,235,236,251,275,284,309,311,334,346,350,352,353,354,367,368,372,458,473,475,481,511,517,522,527,531,536,542,546,551,569,585,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,768,770,771,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[223,230,768],[31,108,114,159,207,223,252,385,484,560,729,772],[32,106,108,114,115,214,223,224,236,458],[58,62,64,66,70,78,79,85,89,107,108,110,111,114,116,117,118,121,139,143,144,160,164,175,177,178,182,183,185,189,191,202,205,207,208,217,223,230,251,284,308,309,314,318,326,352,353,360,366,368,372,389,396,398,458,459,467,473,475,478,480,485,504,516,517,522,527,531,536,542,546,551,554,559,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,773,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[32,107,458,773],[21,110,114,115,207,236,773,774],[68,778],[62,64,66,70,85,114,115,121,139,160,164,175,177,202,207,214,222,236,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,775,778,779,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[56,58,64,66,78,79,85,87,88,89,108,114,115,116,117,118,121,122,124,127,128,131,137,139,141,143,144,146,178,182,183,185,187,189,191,202,204,205,207,208,209,210,213,214,216,217,223,230,236,241,251,252,268,271,275,284,293,303,308,309,313,314,318,321,326,329,335,338,339,341,343,346,350,352,353,354,358,360,365,366,367,370,380,387,389,396,398,455,458,459,467,472,475,478,479,480,482,484,485,486,503,504,507,511,513,516,518,551,554,559,560,561,563,570,573,577,579,581,584,589,597,600,624,625,626,631,635,640,641,644,656,657,658,681,708,711,726,737,830,841,847,848,926,1022],[32,62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,782,784,785,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,787,789,790,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,792,794,795,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[122,796,799],[52,62,64,66,70,85,105,108,114,121,139,141,143,160,164,175,177,202,207,212,224,235,251,284,365,368,372,380,458,473,475,517,522,527,531,536,542,546,551,554,569,638,640,642,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,797,799,800,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[797],[154,160],[121,153,160,208],[57,58,62,64,66,70,78,79,85,89,108,114,115,116,117,121,139,143,144,153,154,155,156,158,160,164,167,175,177,183,189,191,202,207,208,217,223,230,236,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[58,78,79,89,108,114,116,117,139,143,144,160,183,189,191,202,230,251,284,309,352,353,360,396,459,467,478,485,516,554,559,561,589,597,624,641,657,658,681,708,711,726,830],[58,62,64,66,68,70,78,79,80,85,89,108,114,116,117,121,139,143,144,160,164,175,177,183,189,191,202,207,230,251,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[68,801,804],[62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,802,804,805,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[47,58,78,79,85,89,108,114,115,116,117,118,121,139,143,144,178,182,183,185,189,191,202,205,207,208,217,223,230,236,251,284,308,309,314,318,326,352,353,360,366,389,396,398,458,459,467,475,478,480,485,504,516,551,554,559,561,563,570,589,597,600,624,625,626,640,641,657,658,681,708,711,726,737,830,841,926],[223,638,640],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,356,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,807,809,810,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,60,61,62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,812,814,815,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[148,214,223,816,820,822],[23,55,62,64,66,70,85,92,111,114,121,139,160,164,175,177,202,284,330,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,816,817,818,820,821,822,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[152,821,822],[23,62,64,66,70,85,103,114,121,136,139,160,164,175,177,202,223,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,823,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,178,458,468,826,830],[58,62,64,66,70,78,79,85,88,89,108,114,116,117,118,121,139,143,144,160,164,175,177,178,182,183,185,189,191,202,204,205,207,208,217,230,251,284,308,309,314,318,326,343,352,353,354,360,366,368,372,380,389,396,398,458,459,467,473,475,478,480,485,503,504,511,516,517,522,527,531,536,542,546,551,554,559,560,561,563,569,570,589,597,600,624,625,626,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,827,829,830,831,835,841,846,848,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[25,32,55,214,223,330,458,681,827,830,831],[32,52,56,105,108,143,212,214,251,365,380,458,554,642,832,835,837],[25,57,62,64,66,70,85,92,114,115,121,139,160,164,175,177,202,204,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,832,833,835,836,837,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[833],[21,52,105,108,122,143,167,168,170,175,212,251,365,380,554,642],[149,170,175],[57,148,168,169,171,172,175,223,467],[57,62,64,66,70,85,92,114,115,121,139,148,160,164,169,170,171,172,173,175,177,202,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[172],[57,68,107,124,142,147,149,177,467],[50,55,57,62,64,66,70,85,91,92,114,115,121,124,139,141,144,148,149,150,152,160,164,175,176,177,178,202,207,217,223,235,236,284,330,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[91,144],[52,105,108,141,143,160,175,207,212,214,235,251,365,380,554,642],[62,64,66,70,78,85,108,114,118,121,139,160,164,175,177,178,182,183,185,202,205,207,208,217,284,308,314,318,326,352,366,368,372,389,396,398,458,473,475,478,480,485,504,517,522,527,531,536,542,546,551,554,559,563,569,570,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,839,841,842,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[23,86,87,88,182,183,204,217,230,343,354,380,389,503,511,560,624,657,830,848],[56,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,350,365,370,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,843,846,847],[62,64,66,70,85,87,114,121,139,160,164,175,177,202,230,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,844,846,847,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,850,852,853,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[68,854,858],[23,57,62,64,66,70,85,114,115,121,139,160,164,175,177,202,236,284,368,372,390,392,394,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,855,856,858,859,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[856],[23,132,390,393,854],[25,121,548,551],[32,50,57,62,64,66,70,78,85,108,114,115,118,121,139,160,164,175,177,178,182,183,185,202,205,207,208,217,230,236,284,308,314,318,326,352,357,366,368,372,389,396,398,458,467,473,475,478,480,485,504,517,522,527,531,536,542,546,549,551,552,554,559,563,569,570,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[549],[121,860,863],[32,50,57,62,64,66,70,85,114,115,121,139,160,164,175,177,201,202,217,236,284,368,372,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,861,863,864,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[24,122,394,865,868,869],[23,24,57,62,64,66,70,85,114,115,121,139,160,164,175,177,202,207,236,284,368,372,394,458,467,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,866,868,869,870,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[23,394,868,870],[25,29,56,78,108,118,122,124,141,178,182,183,185,207,208,213,214,217,308,321,329,350,365,369,370,372,398,455,472,504,518,554,559,570,600,624,626,631,644,657,681,847],[47,62,64,66,70,85,104,114,121,139,160,164,175,177,202,207,230,284,368,369,370,372,373,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[373],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,873,874,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,876,877,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,879,880,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,883,884,886,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,891,892,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,894,895,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,888,889,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,897,898,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,900,901,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,909,910,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,903,904,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,906,907,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,912,913,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,921,922,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,915,916,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,918,919,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,882,884,885,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,56,62,64,66,70,78,85,108,114,118,121,139,160,164,175,177,178,182,183,185,202,205,207,208,217,223,280,281,284,308,314,318,326,352,366,368,372,389,396,398,458,473,475,478,480,485,504,517,522,527,531,536,542,546,551,554,559,563,569,570,589,600,624,625,626,638,640,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,924,925,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,927,928,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,930,931,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,934,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,935,936,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,935,937,939,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,933,935,937,940,942,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,207,223,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,945,946,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,948,949,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,951,952,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[115,236,282,283,284],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,954,955,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,957,958,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,960,961,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[32,56,66,280,281,284,458,969,970],[283,971],[62,64,66,70,85,114,121,139,160,164,175,177,202,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,963,964,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,972,973,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,966,967,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,975,976,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,978,979,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,982,983,985,986,989,992,995,998,1001,1004,1007,1010,1013],[58,62,64,66,70,78,79,85,89,108,114,116,117,121,139,143,144,160,164,175,177,183,189,191,202,217,230,251,280,281,282,283,284,309,352,353,360,368,372,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,981,983,984,986,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,987,988,989,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,990,991,992,995,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,996,997,998,1001,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,993,994,995,998,1001,1004,1007,1010,1013],[26,50,58,62,64,66,70,78,79,85,89,108,114,116,117,118,121,139,143,144,160,164,175,177,183,189,191,202,203,217,223,230,231,251,280,281,284,309,346,352,353,354,355,357,358,360,368,372,380,396,458,459,467,473,475,478,485,516,517,522,527,531,536,542,546,551,554,559,561,569,589,597,624,638,640,641,654,656,657,658,662,668,673,678,681,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,999,1000,1001,1004,1007,1010,1013],[283,1001],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1002,1003,1004,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1008,1009,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1005,1006,1007,1010,1013],[62,64,66,70,85,114,121,139,160,164,175,177,202,280,281,284,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1011,1012,1013],[36,78,85,108,113,114,118,121,126,127,131,137,139,146,178,182,183,185,187,189,200,202,204,205,207,208,209,216,217,241,252,268,270,271,275,293,297,303,308,313,314,318,319,326,329,335,338,339,341,346,352,354,358,366,367,387,389,396,398,453,458,475,478,479,480,482,484,485,486,504,507,511,513,551,554,559,560,563,569,570,572,577,579,584,589,600,624,625,626,635,640,657,658,681,737,777,830,841,926,1022],[62,64,66,70,85,114,121,128,139,160,164,175,177,195,202,207,210,217,223,230,251,284,293,309,310,313,368,372,458,473,475,517,522,527,531,536,542,546,551,569,638,640,654,656,662,668,673,678,685,692,697,702,708,711,717,720,726,733,737,742,747,750,756,761,765,770,778,784,789,794,799,804,809,814,820,825,830,835,841,846,852,858,863,868,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,937,940,943,947,950,953,956,959,962,965,968,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013],[36,78,85,108,113,114,118,121,126,139,178,182,183,185,200,202,205,207,208,217,230,270,297,308,314,318,326,352,366,389,396,398,453,458,475,478,480,485,504,551,554,559,563,569,570,572,589,600,624,625,626,640,657,658,681,737,777,830,841,926],[251,309],[36,113,126,200,270,297,314,318,453,475,569,572,589,777],[58,78,79,89,90,101,108,114,116,117,139,143,144,146,183,187,189,191,192,202,215,217,218,220,230,238,240,251,267,275,284,289,300,309,310,319,332,334,339,340,344,352,353,358,360,387,388,389,396,459,467,478,482,485,516,554,559,560,561,577,589,597,624,641,657,658,681,708,711,726,830,1015,1022],[27,78,85,88,118,127,131,137,146,182,183,187,189,192,204,207,209,216,217,223,230,240,241,252,268,271,275,293,303,313,314,326,329,335,338,339,341,343,346,354,358,366,367,380,387,389,479,482,484,486,503,507,511,513,560,563,577,579,584,589,600,624,626,635,657,681,737,830,848,1022],[204,217,230],[192,204],[32,78,85,118,127,128,131,137,146,183,187,189,204,207,209,210,216,217,222,223,230,241,252,268,271,275,293,303,310,313,314,326,329,335,338,339,341,346,354,358,366,367,387,389,458,479,482,484,486,507,511,513,560,563,577,579,584,589,600,626,635,657,681,737,1022],[310],[27,217,1016],[118,203,231,266,293,346,352,353,354,355,357,358,380,1017,1019,1020],[266,267,1017,1019],[78,79,85,89,90,101,118,127,131,137,146,183,187,189,192,204,207,209,215,216,217,218,240,241,251,252,267,268,271,275,289,293,300,303,309,310,313,314,326,329,332,334,335,338,339,340,341,344,346,354,358,360,366,367,387,388,389,459,479,482,484,486,507,511,513,560,561,563,577,579,584,589,597,600,626,635,657,681,737,1016,1021,1022],[118,128,196,203,207,209,210,217,231,293,300,346,352,353,354,355,357,358,380]],"referencedMap":[[1174,1],[1176,2],[241,3],[335,4],[249,5],[304,6],[250,7],[305,8],[308,9],[306,10],[320,11],[323,12],[324,13],[322,14],[327,15],[321,16],[326,17],[328,18],[252,19],[329,20],[330,21],[307,22],[242,23],[331,24],[251,25],[334,26],[333,27],[332,28],[246,29],[248,30],[303,31],[245,32],[247,33],[243,34],[244,35],[224,36],[75,37],[74,38],[230,39],[350,40],[348,41],[347,42],[180,43],[229,44],[88,45],[215,46],[231,47],[352,48],[183,49],[178,50],[179,51],[181,52],[359,53],[353,54],[354,55],[355,56],[195,57],[203,58],[225,59],[226,60],[228,61],[227,62],[346,63],[345,64],[344,65],[311,66],[356,67],[118,68],[117,69],[119,70],[87,71],[349,72],[20,73],[380,74],[377,75],[379,76],[357,77],[358,78],[217,79],[387,80],[219,81],[268,82],[187,83],[388,84],[137,85],[389,86],[233,87],[235,88],[234,89],[65,90],[220,91],[188,92],[390,93],[393,94],[391,93],[132,93],[392,95],[239,96],[238,97],[273,98],[325,99],[189,100],[184,101],[89,102],[182,103],[338,104],[336,105],[218,106],[209,107],[210,108],[25,109],[26,110],[38,111],[73,112],[337,93],[29,113],[77,114],[395,115],[76,116],[30,90],[237,117],[381,118],[236,119],[382,120],[384,121],[223,122],[386,123],[92,124],[383,118],[222,125],[385,126],[113,127],[36,128],[221,129],[339,130],[108,131],[55,132],[396,133],[397,134],[214,135],[213,136],[212,137],[211,138],[207,139],[398,140],[206,141],[205,142],[58,143],[63,144],[62,145],[57,146],[71,147],[240,148],[78,149],[79,150],[232,151],[415,152],[402,153],[410,154],[401,155],[417,156],[403,157],[419,158],[404,153],[420,159],[408,160],[414,161],[409,162],[416,163],[418,164],[407,165],[399,166],[412,167],[411,168],[405,169],[48,170],[47,171],[442,172],[422,173],[423,174],[424,175],[425,175],[426,175],[427,175],[428,175],[429,175],[430,175],[431,175],[432,175],[433,175],[434,175],[435,175],[436,175],[437,175],[438,175],[439,175],[440,175],[441,175],[444,176],[443,177],[45,178],[42,179],[44,180],[446,181],[445,182],[448,183],[447,182],[450,184],[449,182],[452,185],[451,182],[300,186],[302,187],[294,188],[301,189],[264,190],[261,191],[296,192],[288,193],[290,194],[298,195],[297,196],[260,197],[289,198],[295,199],[256,200],[257,201],[262,202],[259,203],[255,204],[263,205],[258,206],[293,207],[292,208],[267,209],[291,210],[287,211],[279,212],[299,213],[285,214],[286,215],[265,216],[487,217],[488,218],[489,219],[491,220],[493,221],[492,222],[494,223],[495,224],[496,225],[490,226],[497,227],[453,228],[499,229],[477,230],[479,231],[459,232],[478,233],[465,234],[498,90],[460,235],[461,236],[464,237],[462,238],[463,239],[480,240],[115,241],[146,242],[145,243],[91,244],[481,245],[482,246],[501,247],[500,248],[505,249],[503,250],[502,235],[191,251],[504,252],[507,253],[483,254],[556,255],[555,256],[553,257],[512,258],[513,259],[554,260],[510,261],[509,262],[508,263],[511,264],[560,265],[558,266],[557,267],[559,268],[563,269],[562,270],[561,271],[275,272],[269,273],[276,274],[270,275],[271,276],[277,277],[565,278],[143,279],[570,280],[571,281],[572,282],[574,283],[573,284],[576,285],[575,286],[577,287],[579,288],[578,289],[580,290],[484,291],[343,292],[341,293],[342,294],[340,295],[585,296],[584,297],[582,298],[581,299],[583,300],[141,301],[485,302],[486,303],[589,304],[587,305],[586,306],[588,305],[591,307],[595,308],[597,309],[600,310],[593,311],[592,116],[596,312],[590,116],[594,313],[599,314],[367,315],[159,316],[601,317],[602,318],[603,319],[604,320],[605,320],[606,318],[607,317],[608,320],[609,319],[610,317],[611,320],[612,321],[613,320],[614,317],[363,322],[364,323],[360,324],[615,23],[366,325],[362,326],[365,327],[378,116],[103,328],[131,329],[127,330],[125,331],[90,332],[128,333],[126,334],[133,335],[136,336],[129,337],[101,338],[135,339],[93,340],[100,341],[95,342],[94,343],[96,342],[97,342],[99,344],[98,342],[616,345],[617,346],[618,346],[619,346],[620,346],[621,346],[623,347],[622,346],[1023,348],[1029,349],[1030,350],[1024,351],[1033,352],[1038,353],[1041,354],[1042,355],[1043,356],[1044,357],[1045,358],[1046,359],[1047,360],[1048,361],[1049,362],[1050,363],[1051,364],[1052,365],[1053,366],[1054,367],[1055,368],[1056,369],[1057,290],[1058,370],[1059,371],[1060,372],[1061,373],[1062,374],[1063,375],[1064,376],[1065,377],[1066,378],[1067,379],[1068,380],[1069,381],[1070,382],[1071,383],[1072,384],[1073,385],[1074,386],[1075,387],[1076,388],[1077,389],[1078,390],[1079,391],[1080,392],[1081,393],[1082,394],[1083,395],[1084,396],[1085,397],[1086,398],[1087,399],[1089,400],[1088,401],[1090,402],[1091,403],[1092,404],[1093,405],[1034,406],[1094,407],[1031,408],[1095,409],[1096,410],[1097,411],[1098,412],[1035,413],[1099,414],[1100,415],[1101,416],[1102,417],[1103,418],[1104,419],[1105,420],[1106,421],[1107,422],[1108,423],[1109,424],[1110,425],[1111,426],[1028,427],[1112,428],[1113,429],[1114,430],[1115,431],[1116,432],[1117,433],[1118,434],[1119,435],[1032,436],[1120,437],[1036,438],[1039,439],[1121,440],[1122,441],[1123,442],[1124,443],[1125,444],[1126,445],[1127,446],[1025,447],[1128,448],[1129,449],[1130,450],[1131,451],[1132,452],[1133,453],[1134,454],[1135,455],[1136,456],[1137,457],[1138,458],[1026,459],[1139,460],[1037,461],[1140,462],[1141,463],[1142,464],[1143,465],[1144,466],[1145,467],[1146,468],[1147,469],[1148,470],[1149,471],[1150,472],[1151,473],[1152,474],[1153,475],[1154,476],[1027,477],[1040,478],[1155,479],[1156,480],[1157,481],[1158,482],[1159,483],[1160,484],[1161,485],[1162,486],[1163,487],[1164,488],[1165,489],[1166,490],[1167,491],[1168,492],[663,493],[659,494],[662,495],[661,496],[660,497],[455,498],[454,499],[458,500],[457,501],[456,502],[664,503],[515,504],[518,505],[514,506],[517,507],[665,508],[516,509],[653,510],[652,511],[654,512],[651,513],[650,514],[649,515],[656,516],[655,517],[669,518],[666,519],[668,520],[667,521],[674,522],[670,523],[673,524],[672,525],[671,526],[523,527],[519,528],[522,529],[521,530],[520,531],[83,532],[82,533],[185,534],[84,535],[54,536],[85,537],[81,538],[528,539],[525,540],[527,541],[526,542],[524,543],[679,544],[675,545],[678,546],[677,547],[676,548],[111,549],[124,550],[680,551],[122,552],[105,553],[121,554],[120,555],[116,556],[681,557],[686,558],[682,519],[685,559],[684,560],[683,561],[532,562],[529,515],[531,563],[530,564],[688,565],[693,566],[689,519],[692,567],[691,568],[690,569],[687,570],[624,571],[698,572],[694,494],[697,573],[696,574],[695,575],[625,576],[703,577],[699,519],[702,578],[701,579],[700,580],[648,581],[147,582],[712,583],[704,584],[711,585],[710,586],[705,587],[537,588],[533,589],[536,590],[535,591],[534,592],[198,593],[196,594],[202,595],[199,596],[197,597],[200,598],[721,599],[714,600],[720,601],[719,602],[722,603],[727,604],[723,605],[726,606],[725,607],[724,608],[729,609],[734,610],[730,611],[733,612],[732,613],[731,614],[728,615],[376,616],[375,617],[368,618],[361,619],[374,620],[738,621],[735,499],[737,622],[736,623],[472,624],[471,625],[473,626],[470,627],[626,628],[468,629],[466,536],[475,630],[469,631],[467,632],[743,633],[739,634],[742,635],[741,636],[740,637],[748,638],[744,519],[747,639],[746,640],[745,641],[540,642],[538,519],[542,643],[541,644],[543,645],[751,646],[752,634],[750,647],[749,648],[474,649],[757,650],[753,651],[756,652],[755,653],[754,654],[56,655],[52,656],[66,657],[67,658],[709,659],[706,660],[708,661],[707,662],[140,663],[102,664],[139,665],[138,666],[123,667],[758,668],[759,669],[761,670],[760,671],[715,672],[713,625],[717,673],[716,674],[718,675],[567,676],[130,677],[569,678],[568,679],[566,680],[644,681],[627,682],[643,683],[642,684],[640,685],[628,686],[641,687],[646,688],[645,99],[647,689],[633,690],[208,691],[547,692],[539,693],[546,694],[545,695],[544,696],[201,697],[166,698],[165,699],[161,700],[164,701],[162,702],[167,703],[632,704],[629,705],[634,706],[635,707],[631,708],[630,709],[638,710],[637,711],[636,712],[766,713],[762,499],[765,714],[764,715],[763,716],[163,118],[771,717],[767,519],[770,718],[768,719],[769,720],[772,721],[109,722],[107,723],[106,724],[114,725],[112,726],[110,727],[774,728],[773,729],[779,730],[780,731],[778,732],[776,733],[775,734],[777,735],[657,736],[785,737],[781,738],[784,739],[783,740],[782,741],[790,742],[786,743],[789,744],[788,745],[787,746],[795,747],[791,748],[794,749],[793,750],[792,751],[800,752],[796,519],[799,753],[798,754],[797,755],[158,756],[155,757],[154,758],[153,759],[160,760],[157,761],[156,762],[68,763],[53,499],[70,764],[69,765],[80,766],[805,767],[801,738],[804,768],[803,769],[802,770],[658,771],[639,772],[810,773],[806,774],[809,775],[808,776],[807,777],[60,778],[59,499],[64,779],[61,780],[815,781],[811,523],[814,782],[813,783],[812,784],[822,785],[817,786],[816,787],[820,788],[819,789],[821,790],[818,791],[825,792],[824,793],[823,794],[831,795],[826,796],[830,797],[828,798],[827,799],[829,800],[837,801],[836,802],[832,803],[835,804],[834,805],[833,806],[173,807],[171,808],[169,809],[170,810],[168,811],[175,812],[174,813],[172,814],[150,815],[149,816],[148,817],[142,738],[177,818],[151,819],[144,820],[176,821],[842,822],[838,823],[841,824],[840,825],[839,826],[848,827],[847,828],[843,519],[846,829],[845,830],[844,831],[853,832],[849,738],[852,833],[851,834],[850,835],[859,836],[854,738],[858,837],[857,838],[856,839],[855,840],[552,841],[548,519],[551,842],[550,843],[549,844],[864,845],[860,519],[863,846],[862,847],[861,848],[870,849],[865,519],[868,850],[867,851],[866,852],[869,853],[370,854],[369,594],[372,855],[371,856],[373,857],[278,858],[875,859],[873,860],[874,861],[878,862],[876,863],[877,864],[881,865],[879,866],[880,867],[887,868],[883,869],[886,870],[893,871],[891,872],[892,873],[896,874],[894,875],[895,876],[890,877],[888,863],[889,878],[899,879],[897,880],[898,881],[902,882],[900,863],[901,883],[911,884],[909,869],[910,885],[905,886],[903,863],[904,887],[908,888],[906,863],[907,889],[914,890],[912,869],[913,891],[923,892],[921,863],[922,893],[917,894],[915,860],[916,895],[920,896],[918,863],[919,897],[884,898],[882,863],[885,899],[926,900],[925,901],[924,902],[280,903],[281,904],[929,905],[927,863],[928,906],[932,907],[930,908],[931,909],[935,910],[933,863],[934,911],[937,912],[938,913],[936,914],[940,915],[941,913],[939,916],[943,917],[944,913],[942,918],[947,919],[945,920],[946,921],[950,922],[948,863],[949,923],[953,924],[951,863],[952,925],[872,926],[956,927],[954,863],[955,928],[959,929],[957,930],[958,931],[962,932],[960,860],[961,933],[971,934],[969,863],[970,935],[965,936],[963,869],[964,937],[974,938],[972,908],[973,939],[968,940],[966,863],[967,941],[977,942],[975,863],[976,943],[980,944],[978,863],[979,945],[986,946],[982,947],[985,948],[284,949],[282,950],[283,951],[983,952],[981,953],[984,954],[989,955],[988,956],[987,957],[992,958],[990,869],[991,959],[998,960],[996,863],[997,961],[995,962],[993,863],[994,963],[1001,964],[999,965],[1000,966],[1004,967],[1002,863],[1003,968],[1010,969],[1008,863],[1009,970],[1007,971],[1005,972],[1006,973],[1013,974],[1011,863],[1012,975],[314,976],[319,977],[318,978],[315,979],[309,980],[316,127],[1015,981],[1014,28],[204,982],[194,983],[193,984],[192,985],[313,986],[312,987],[310,988],[1021,989],[1019,990],[1017,991],[1018,992],[1022,993],[1016,994],[1020,995],[317,23]],"exportedModulesMap":[[1174,1],[1176,2],[241,996],[335,997],[249,998],[304,999],[250,1000],[305,1001],[308,1002],[306,1003],[320,1004],[323,1005],[324,1006],[322,1007],[327,1008],[321,1009],[326,1010],[328,1011],[252,1012],[329,1013],[330,1014],[307,1015],[242,1016],[331,1017],[251,25],[334,1018],[333,27],[332,28],[246,1019],[248,1020],[303,1021],[245,1022],[247,1023],[243,1024],[244,1023],[224,36],[75,1025],[74,1026],[230,1027],[350,1028],[348,41],[347,42],[180,43],[229,42],[88,45],[215,46],[231,47],[352,1029],[183,1030],[178,1031],[179,1032],[181,1033],[359,53],[353,1034],[354,1035],[355,1036],[195,1037],[203,1038],[225,59],[226,60],[228,1039],[227,1040],[346,1041],[345,64],[344,65],[311,1042],[356,1043],[118,1044],[117,69],[119,1045],[87,1046],[349,1047],[20,73],[380,1048],[377,75],[379,1049],[357,1050],[358,1051],[217,1052],[387,1053],[219,284],[268,1054],[187,83],[388,1055],[137,1056],[389,1057],[233,1058],[235,88],[234,89],[220,1059],[188,1060],[390,93],[393,1061],[391,93],[132,93],[392,95],[239,96],[238,97],[273,1062],[325,99],[189,1063],[184,101],[89,102],[182,1064],[338,1065],[336,1066],[218,106],[209,1067],[210,108],[25,109],[26,110],[38,1068],[73,1069],[337,93],[29,113],[77,115],[395,115],[30,90],[237,117],[381,118],[236,119],[382,120],[384,121],[223,1070],[386,1071],[92,1072],[383,118],[222,1073],[385,1074],[113,1075],[36,128],[221,1076],[339,1077],[108,1078],[55,132],[396,1079],[397,1080],[214,1081],[213,136],[212,137],[211,138],[207,1082],[398,1083],[206,145],[205,142],[58,143],[63,1084],[62,145],[57,146],[71,1016],[240,1085],[78,1086],[79,150],[232,1087],[415,1088],[402,153],[410,1089],[401,155],[417,1090],[403,157],[419,1091],[404,153],[420,1092],[408,160],[414,1093],[409,1094],[416,1095],[418,1096],[407,1097],[399,166],[412,1098],[411,168],[405,1099],[48,1100],[47,1101],[442,1102],[422,173],[423,174],[424,174],[425,174],[426,174],[427,174],[428,174],[429,174],[430,174],[431,174],[432,174],[433,174],[434,174],[435,174],[436,174],[437,174],[438,174],[439,174],[440,174],[441,174],[444,1103],[443,177],[45,1104],[42,179],[44,180],[446,1105],[445,182],[448,1106],[447,182],[450,1107],[449,182],[452,1108],[451,182],[300,1109],[302,1110],[294,1111],[301,189],[264,190],[261,1112],[296,1113],[288,193],[290,1114],[298,1113],[297,1115],[260,197],[289,1116],[295,1113],[256,1117],[257,201],[262,1118],[259,203],[255,1119],[263,1120],[258,206],[293,1121],[292,994],[267,209],[291,1122],[287,1123],[279,1124],[299,1125],[285,1126],[286,1127],[265,216],[487,1128],[488,1129],[489,1130],[491,1131],[493,1132],[492,1133],[494,1134],[495,1135],[496,1136],[490,1137],[497,1138],[453,1139],[499,1140],[479,1141],[459,232],[478,1142],[465,234],[460,235],[461,236],[464,1143],[462,1144],[463,239],[480,1145],[115,1146],[146,1147],[145,1148],[91,244],[481,1149],[482,1150],[501,248],[500,248],[505,1151],[503,1152],[502,235],[191,251],[504,1153],[507,1154],[556,255],[555,256],[553,1155],[512,258],[513,1156],[554,1157],[510,1158],[509,1159],[508,263],[511,1160],[560,1161],[558,1162],[557,267],[559,1163],[563,1164],[562,270],[561,271],[275,1165],[269,1166],[276,274],[270,1167],[271,1168],[277,277],[565,1169],[143,279],[570,1170],[571,1171],[572,1167],[574,1016],[573,284],[576,1172],[575,286],[577,1173],[579,1174],[578,1175],[580,290],[484,1176],[343,1177],[341,1178],[342,1179],[340,295],[585,1180],[584,1181],[582,298],[581,299],[583,1182],[141,1183],[485,1184],[486,1185],[589,1186],[587,305],[586,306],[588,305],[591,307],[595,1187],[597,309],[600,1188],[593,1189],[596,1190],[594,313],[599,1191],[367,1192],[159,1193],[601,28],[602,28],[603,28],[604,28],[605,28],[606,28],[607,28],[608,28],[609,28],[610,28],[611,28],[612,28],[613,28],[614,28],[363,1194],[364,323],[360,324],[615,1016],[366,1195],[362,95],[365,1196],[103,328],[131,1197],[127,1198],[125,1199],[90,332],[128,1200],[126,334],[133,335],[136,1201],[129,340],[101,338],[135,1202],[93,340],[100,341],[95,342],[94,343],[96,342],[97,342],[99,344],[98,342],[616,345],[617,346],[618,346],[619,346],[620,346],[621,346],[623,347],[622,346],[1023,1203],[1029,349],[1030,1204],[1024,1205],[1033,352],[1038,353],[1041,354],[1042,355],[1043,356],[1044,357],[1045,358],[1046,359],[1047,360],[1048,361],[1049,362],[1050,363],[1051,364],[1052,365],[1053,366],[1054,367],[1055,368],[1056,369],[1057,290],[1058,370],[1059,1206],[1060,1207],[1061,373],[1062,374],[1063,375],[1064,376],[1065,377],[1066,378],[1067,379],[1068,380],[1069,381],[1070,382],[1071,383],[1072,384],[1073,385],[1074,386],[1075,387],[1076,388],[1077,389],[1078,390],[1079,391],[1080,392],[1081,393],[1082,394],[1083,395],[1084,396],[1085,397],[1086,398],[1087,290],[1089,400],[1088,290],[1090,402],[1091,290],[1092,290],[1093,290],[1034,290],[1094,407],[1031,290],[1095,290],[1096,290],[1097,1208],[1098,290],[1035,290],[1099,290],[1100,415],[1101,416],[1102,290],[1103,290],[1104,290],[1105,420],[1106,290],[1107,290],[1108,423],[1109,290],[1110,1209],[1111,290],[1028,1210],[1112,428],[1113,290],[1114,430],[1115,290],[1116,432],[1117,433],[1118,434],[1119,435],[1032,1211],[1120,290],[1036,290],[1039,290],[1121,290],[1122,290],[1123,290],[1124,443],[1125,290],[1126,290],[1127,446],[1025,290],[1128,290],[1129,449],[1130,290],[1131,290],[1132,452],[1133,453],[1134,454],[1135,290],[1136,290],[1137,457],[1138,290],[1026,290],[1139,290],[1037,1212],[1140,462],[1141,1213],[1142,290],[1143,290],[1144,290],[1145,467],[1146,468],[1147,290],[1148,290],[1149,471],[1150,290],[1151,473],[1152,474],[1153,475],[1154,476],[1027,290],[1040,478],[1155,290],[1156,290],[1157,290],[1158,290],[1159,290],[1160,290],[1161,290],[1162,290],[1163,290],[1164,290],[1165,290],[1166,290],[1167,290],[1168,290],[663,1214],[659,494],[662,1215],[661,496],[660,497],[455,498],[454,499],[458,1216],[457,501],[456,502],[664,1217],[515,504],[518,1218],[514,506],[517,1219],[665,508],[516,509],[653,510],[652,511],[654,1220],[651,513],[650,514],[649,515],[656,1221],[655,517],[669,518],[666,519],[668,1222],[667,521],[674,522],[670,523],[673,1223],[672,525],[671,526],[523,527],[519,528],[522,1224],[521,1225],[520,531],[83,1226],[82,1227],[185,1228],[84,1229],[54,536],[85,1230],[81,538],[528,539],[525,540],[527,1231],[526,542],[524,543],[679,544],[675,545],[678,1232],[677,648],[676,548],[111,145],[124,1233],[680,1234],[122,552],[105,553],[121,1235],[120,1236],[116,556],[681,1237],[686,558],[682,519],[685,1238],[684,560],[683,561],[532,1239],[529,515],[531,1240],[530,564],[688,1241],[693,1242],[689,519],[692,1243],[691,568],[690,569],[687,1244],[624,1245],[698,1246],[694,494],[697,1247],[696,574],[695,575],[625,1248],[703,577],[699,519],[702,1249],[701,579],[700,580],[648,1250],[147,582],[712,1251],[704,584],[711,1252],[710,1253],[705,587],[537,588],[533,589],[536,1254],[535,1255],[534,592],[198,1256],[196,594],[202,1257],[199,1258],[197,597],[200,1167],[721,1259],[714,600],[720,1260],[719,602],[722,603],[727,604],[723,605],[726,1261],[725,1262],[724,608],[729,1263],[734,1264],[730,611],[733,1265],[732,613],[731,614],[728,1244],[376,1266],[375,617],[368,1267],[361,1268],[374,620],[738,1269],[735,499],[737,1270],[736,623],[472,1271],[471,625],[473,1272],[470,627],[626,1273],[468,1274],[466,536],[475,1275],[469,1276],[467,632],[743,1277],[739,634],[742,1278],[741,636],[740,637],[748,638],[744,519],[747,1279],[746,640],[745,641],[540,1280],[538,519],[542,1281],[541,644],[543,645],[751,1282],[752,634],[750,1283],[749,648],[474,1284],[757,1285],[753,651],[756,1286],[755,1287],[754,654],[56,655],[52,656],[66,1288],[67,658],[709,1289],[706,660],[708,1290],[707,662],[140,1291],[102,664],[139,1292],[138,627],[123,667],[758,1293],[759,669],[761,1294],[760,671],[715,672],[713,625],[717,1295],[716,674],[718,675],[567,1296],[130,677],[569,1297],[568,1298],[566,680],[644,1299],[627,682],[643,1300],[642,684],[640,1301],[628,1302],[641,687],[646,688],[645,99],[647,1303],[633,1304],[208,1305],[547,1306],[539,693],[546,1307],[545,695],[544,696],[201,1308],[166,698],[165,1309],[161,700],[164,1310],[162,1311],[167,703],[632,704],[629,705],[634,1304],[635,1312],[631,1313],[630,709],[638,1314],[637,1315],[636,712],[766,713],[762,499],[765,1316],[764,715],[763,716],[163,118],[771,1317],[767,519],[770,1318],[768,719],[769,1319],[772,1320],[109,722],[107,1321],[106,724],[114,1322],[112,1323],[110,727],[774,1324],[773,1325],[779,1326],[780,731],[778,1327],[776,733],[775,734],[777,1167],[657,1328],[785,737],[781,738],[784,1329],[783,740],[782,741],[790,742],[786,743],[789,1330],[788,745],[787,746],[795,747],[791,748],[794,1331],[793,750],[792,751],[800,1332],[796,519],[799,1333],[798,1334],[797,755],[158,1335],[155,757],[154,1336],[153,759],[160,1337],[157,1338],[156,762],[68,763],[53,499],[70,1339],[69,765],[80,766],[805,1340],[801,738],[804,1341],[803,769],[802,770],[658,1342],[639,1343],[810,773],[806,774],[809,1344],[808,776],[807,777],[60,778],[59,499],[64,1345],[61,780],[815,781],[811,523],[814,1346],[813,783],[812,784],[822,785],[817,1347],[816,787],[820,1348],[819,789],[821,790],[818,1349],[825,1350],[824,793],[823,794],[831,1351],[826,796],[830,1352],[828,798],[827,799],[829,1353],[837,801],[836,1354],[832,803],[835,1355],[834,1356],[833,806],[173,807],[171,1357],[169,1358],[170,1359],[168,811],[175,1360],[174,1361],[172,814],[150,815],[149,816],[148,1362],[142,738],[177,1363],[151,1364],[144,820],[176,1365],[842,822],[838,823],[841,1366],[840,825],[839,826],[848,1367],[847,1368],[843,519],[846,1369],[845,830],[844,831],[853,832],[849,738],[852,1370],[851,834],[850,835],[859,1371],[854,738],[858,1372],[857,1373],[856,839],[855,1374],[552,1375],[548,519],[551,1376],[550,1377],[549,844],[864,1378],[860,519],[863,1379],[862,847],[861,848],[870,1380],[865,519],[868,1381],[867,851],[866,852],[869,1382],[370,1383],[369,594],[372,1384],[371,1385],[373,857],[875,1386],[873,860],[874,861],[878,1387],[876,863],[877,864],[881,1388],[879,866],[880,867],[887,1389],[883,869],[886,870],[893,1390],[891,872],[892,873],[896,1391],[894,875],[895,876],[890,1392],[888,863],[889,878],[899,1393],[897,880],[898,881],[902,1394],[900,863],[901,883],[911,1395],[909,869],[910,885],[905,1396],[903,863],[904,887],[908,1397],[906,863],[907,889],[914,1398],[912,869],[913,891],[923,1399],[921,863],[922,893],[917,1400],[915,860],[916,895],[920,1401],[918,863],[919,897],[884,1402],[882,863],[885,899],[926,1403],[925,901],[924,902],[280,903],[281,904],[929,1404],[927,863],[928,906],[932,1405],[930,908],[931,909],[935,1406],[933,863],[934,911],[937,1407],[938,913],[936,914],[940,1408],[941,913],[939,916],[943,1409],[944,913],[942,918],[947,1410],[945,920],[946,921],[950,1411],[948,863],[949,923],[953,1412],[951,863],[952,925],[872,1413],[956,1414],[954,863],[955,928],[959,1415],[957,930],[958,931],[962,1416],[960,860],[961,933],[971,1417],[969,863],[970,1418],[965,1419],[963,869],[964,937],[974,1420],[972,908],[973,939],[968,1421],[966,863],[967,941],[977,1422],[975,863],[976,943],[980,1423],[978,863],[979,945],[986,1424],[982,947],[985,948],[284,1425],[282,950],[283,951],[983,1426],[981,953],[984,954],[989,1427],[988,956],[987,957],[992,1428],[990,869],[991,959],[998,1429],[996,863],[997,961],[995,1430],[993,863],[994,963],[1001,1431],[999,965],[1000,1432],[1004,1433],[1002,863],[1003,968],[1010,1434],[1008,863],[1009,970],[1007,1435],[1005,972],[1006,973],[1013,1436],[1011,863],[1012,975],[314,1437],[319,1438],[318,1439],[315,1440],[309,980],[316,1441],[1015,1442],[1014,28],[204,1443],[194,1444],[193,1445],[192,985],[313,1446],[312,1447],[310,988],[1021,1448],[1019,1449],[1017,1450],[1018,992],[1022,1451],[1016,994],[1020,1452],[317,1016]],"semanticDiagnosticsPerFile":[1174,1170,1169,1172,1171,1173,1176,1175,17,18,4,6,5,2,7,8,9,10,11,12,13,14,3,15,16,1,241,335,249,304,250,305,308,306,320,323,324,322,327,321,326,328,252,329,330,307,242,331,251,334,333,332,246,248,303,245,247,243,244,224,75,74,72,230,350,348,347,180,229,88,215,231,351,352,183,178,179,181,359,353,354,355,195,203,225,226,228,227,346,345,344,311,356,118,117,119,87,349,86,19,20,380,377,379,357,358,49,217,387,219,216,268,187,388,137,389,233,21,235,234,65,220,33,40,188,390,393,391,132,392,134,239,238,273,272,325,189,184,186,89,182,338,336,218,209,210,22,25,26,39,27,28,38,37,73,394,337,23,29,77,395,76,30,24,237,381,236,382,384,223,386,31,92,32,383,222,385,34,35,113,36,221,339,50,108,55,396,397,51,214,213,212,211,207,398,206,205,58,63,62,57,71,240,78,79,232,415,402,410,401,400,417,403,419,404,420,408,414,409,406,416,418,407,399,41,412,411,405,48,47,46,442,422,423,421,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,444,443,45,42,44,43,446,445,448,447,450,449,452,451,300,302,294,301,264,261,296,288,290,298,297,253,260,289,295,254,256,257,262,259,255,263,258,293,292,266,267,291,287,279,299,285,286,265,487,488,489,491,493,492,494,495,496,490,497,453,499,477,476,479,459,478,465,498,460,461,464,462,463,480,115,146,145,91,481,482,501,500,190,505,503,502,191,504,507,506,483,556,555,553,512,513,554,510,509,508,511,560,558,557,559,563,562,561,275,269,276,270,271,277,564,565,143,570,571,572,574,573,576,575,577,579,578,580,484,343,341,342,340,585,584,582,581,583,141,485,274,486,589,587,586,588,591,595,597,598,600,593,592,596,590,594,599,367,159,601,602,603,604,605,606,607,608,609,610,611,612,613,614,363,364,360,615,366,362,365,378,103,131,127,125,90,128,126,133,136,129,101,135,93,100,95,94,96,97,99,98,616,617,618,619,620,621,623,622,1023,1029,1030,1024,1033,1038,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1089,1088,1090,1091,1092,1093,1034,1094,1031,1095,1096,1097,1098,1035,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1028,1112,1113,1114,1115,1116,1117,1118,1119,1032,1120,1036,1039,1121,1122,1123,1124,1125,1126,1127,1025,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1026,1139,1037,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1027,1040,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,663,659,662,661,660,455,454,458,457,456,664,515,518,514,517,665,516,653,652,654,651,650,649,656,655,669,666,668,667,674,670,673,672,671,523,519,522,521,520,83,82,185,84,54,85,81,528,525,527,526,524,679,675,678,677,676,111,124,680,104,122,105,121,120,116,681,686,682,685,684,683,532,529,531,530,688,693,689,692,691,690,687,624,698,694,697,696,695,625,703,699,702,701,700,648,147,712,704,711,710,705,537,533,536,535,534,198,196,202,199,197,200,721,714,720,719,722,727,723,726,725,724,729,734,730,733,732,731,728,376,375,368,361,374,738,735,737,736,472,471,473,470,626,468,466,475,469,467,743,739,742,741,740,748,744,747,746,745,540,538,542,541,543,751,752,750,749,474,757,753,756,755,754,56,52,66,67,709,706,708,707,140,102,139,138,123,758,759,761,760,715,713,717,716,718,567,130,569,568,566,644,627,643,642,640,628,641,646,645,647,633,208,547,539,546,545,544,201,166,165,161,164,162,167,632,629,634,635,631,630,638,637,636,766,762,765,764,763,163,771,767,770,768,769,772,109,107,106,114,112,110,774,773,779,780,778,776,775,777,657,785,781,784,783,782,790,786,789,788,787,795,791,794,793,792,800,796,799,798,797,158,155,154,153,160,157,156,68,53,70,69,80,805,801,804,803,802,658,639,810,806,809,808,807,60,59,64,61,815,811,814,813,812,822,817,816,820,819,821,818,825,824,823,831,826,830,828,827,829,837,836,832,835,834,833,173,171,169,170,168,175,174,172,150,149,148,142,177,151,144,152,176,842,838,841,840,839,848,847,843,846,845,844,853,849,852,851,850,859,854,858,857,856,855,552,548,551,550,549,864,860,863,862,861,870,865,868,867,866,869,370,369,372,371,373,278,413,875,873,874,878,876,877,881,879,880,887,883,886,893,891,892,896,894,895,871,890,888,889,899,897,898,902,900,901,911,909,910,905,903,904,908,906,907,914,912,913,923,921,922,917,915,916,920,918,919,884,882,885,926,925,924,280,281,929,927,928,932,930,931,935,933,934,937,938,936,940,941,939,943,944,942,947,945,946,950,948,949,953,951,952,872,956,954,955,959,957,958,962,960,961,971,969,970,965,963,964,974,972,973,968,966,967,977,975,976,980,978,979,986,982,985,284,282,283,983,981,984,989,988,987,992,990,991,998,996,997,995,993,994,1001,999,1000,1004,1002,1003,1010,1008,1009,1007,1005,1006,1013,1011,1012,314,319,318,315,309,316,1015,1014,204,194,193,192,313,312,310,1021,1019,1017,1018,1022,1016,1020,317],"latestChangedDtsFile":"./masters/themes/sunset.src.d.ts"},"version":"5.4.5"} \ No newline at end of file diff --git a/highcharts-3d.js b/highcharts-3d.js index 3c7da313f8..8958ebfbf6 100644 --- a/highcharts-3d.js +++ b/highcharts-3d.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts-3d * @requires highcharts * * 3D features for Highcharts JS * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.Series,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Series.types.scatter):"function"==typeof define&&define.amd?define("highcharts/highcharts-3d",["highcharts/highcharts"],function(t){return e(t,t.Color,t.SeriesRegistry,t.RendererRegistry,t.Series,t.StackItem,t.Axis,t.Series,["types"],["scatter"])}):"object"==typeof exports?exports["highcharts/highcharts-3d"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.Series,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Series.types.scatter):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.Series,t.Highcharts.StackItem,t.Highcharts.Axis,t.Highcharts.Series.types.scatter)}("undefined"==typeof window?this:window,(t,e,i,s,o,a,r,h)=>(()=>{"use strict";var n,l,p={532:t=>{t.exports=r},620:t=>{t.exports=e},608:t=>{t.exports=s},632:t=>{t.exports=h},820:t=>{t.exports=o},512:t=>{t.exports=i},184:t=>{t.exports=a},944:e=>{e.exports=t}},c={};function d(t){var e=c[t];if(void 0!==e)return e.exports;var i=c[t]={exports:{}};return p[t](i,i.exports,d),i.exports}d.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return d.d(e,{a:e}),e},d.d=(t,e)=>{for(var i in e)d.o(e,i)&&!d.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},d.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var x={};d.d(x,{default:()=>eZ});var y=d(944),f=/*#__PURE__*/d.n(y),u=d(620),z=/*#__PURE__*/d.n(u);let{deg2rad:g}=f(),{pick:b}=f();function m(t,e,i,s){let o=e.options.chart.options3d,a=b(s,!!i&&e.inverted),r={x:e.plotWidth/2,y:e.plotHeight/2,z:o.depth/2,vd:b(o.depth,1)*b(o.viewDistance,0)},h=e.scale3d||1,n=g*o.beta*(a?-1:1),l=g*o.alpha*(a?-1:1),p={cosA:Math.cos(l),cosB:Math.cos(-n),sinA:Math.sin(l),sinB:Math.sin(-n)};return i||(r.x+=e.plotLeft,r.y+=e.plotTop),t.map(function(t){var e,i,s;let o=(e=(a?t.y:t.x)-r.x,i=(a?t.x:t.y)-r.y,s=(t.z||0)-r.z,{x:p.cosB*e-p.sinB*s,y:-p.sinA*p.sinB*e+p.cosA*i-p.cosB*p.sinA*s,z:p.cosA*p.sinB*e+p.sinA*i+p.cosA*p.cosB*s}),n=v(o,r,r.vd);return n.x=n.x*h+r.x,n.y=n.y*h+r.y,n.z=o.z*h+r.z,{x:a?n.y:n.x,y:a?n.x:n.y,z:n.z}})}function v(t,e,i){let s=i>0&&i=0?0:360),t.beta=t.beta%360+(t.beta>=0?0:360));let e=this.inverted,i=this.clipBox,s=this.margin;i[e?"y":"x"]=-(s[3]||0),i[e?"x":"y"]=-(s[0]||0),i[e?"height":"width"]=this.chartWidth+(s[3]||0)+(s[1]||0),i[e?"width":"height"]=this.chartHeight+(s[0]||0)+(s[2]||0),this.scale3d=1,!0===t.fitToPlot&&(this.scale3d=this.chart3d.getScale(t.depth)),this.chart3d.frame3d=this.chart3d.get3dFrame()}}function r(){this.is3d()&&(this.isDirtyBox=!0)}function h(){this.chart3d&&this.is3d()&&(this.chart3d.frame3d=this.chart3d.get3dFrame())}function n(){this.chart3d||(this.chart3d=new d(this))}function l(t){return this.is3d()||t.apply(this,[].slice.call(arguments,1))}function p(t){let e,i=this.series.length;if(this.is3d())for(;i--;)(e=this.series[i]).translate(),e.render();else t.call(this)}function c(t){t.apply(this,[].slice.call(arguments,1)),this.is3d()&&(this.container.className+=" highcharts-3d-chart")}t.defaultOptions={chart:{options3d:{enabled:!1,alpha:0,beta:0,depth:100,fitToPlot:!0,viewDistance:25,axisLabelPosition:null,frame:{visible:"default",size:1,bottom:{},top:{},left:{},right:{},back:{},front:{}}}}},t.compose=function(d,x){let y=d.prototype,f=x.prototype;y.is3d=function(){return!!this.options.chart.options3d?.enabled},y.propsRequireDirtyBox.push("chart.options3d"),y.propsRequireUpdateSeries.push("chart.options3d"),f.matrixSetter=function(){let t;if(this.pos<1&&(D(this.start)||D(this.end))){let e=this.start||[1,0,0,1,0,0],i=this.end||[1,0,0,1,0,0];t=[];for(let s=0;s<6;s++)t.push(this.pos*i[s]+(1-this.pos)*e[s])}else t=this.end;this.elem.attr(this.prop,t,null,!0)},L(!0,k,t.defaultOptions),I(d,"init",n),I(d,"addSeries",e),I(d,"afterDrawChartBox",i),I(d,"afterGetContainer",s),I(d,"afterInit",o),I(d,"afterSetChartSize",a),I(d,"beforeRedraw",r),I(d,"beforeRender",h),X(y,"isInsidePlot",l),X(y,"renderSeries",p),X(y,"setClassName",c)};class d{constructor(t){this.chart=t}get3dFrame(){let t=this.chart,e=t.options.chart.options3d,i=e.frame,s=t.plotLeft,o=t.plotLeft+t.plotWidth,a=t.plotTop,r=t.plotTop+t.plotHeight,h=e.depth,n=function(e){let i=w(e,t);return i>.5?1:i<-.5?-1:0},l=n([{x:s,y:r,z:h},{x:o,y:r,z:h},{x:o,y:r,z:0},{x:s,y:r,z:0}]),p=n([{x:s,y:a,z:0},{x:o,y:a,z:0},{x:o,y:a,z:h},{x:s,y:a,z:h}]),c=n([{x:s,y:a,z:0},{x:s,y:a,z:h},{x:s,y:r,z:h},{x:s,y:r,z:0}]),d=n([{x:o,y:a,z:h},{x:o,y:a,z:0},{x:o,y:r,z:0},{x:o,y:r,z:h}]),x=n([{x:s,y:r,z:0},{x:o,y:r,z:0},{x:o,y:a,z:0},{x:s,y:a,z:0}]),y=n([{x:s,y:a,z:h},{x:o,y:a,z:h},{x:o,y:r,z:h},{x:s,y:r,z:h}]),f=!1,u=!1,z=!1,g=!1;[].concat(t.xAxis,t.yAxis,t.zAxis).forEach(function(t){t&&(t.horiz?t.opposite?u=!0:f=!0:t.opposite?g=!0:z=!0)});let b=function(t,e,i){let s=["size","color","visible"],o={};for(let e=0;e0),{size:T(o.size,1),color:T(o.color,"none"),frontFacing:e>0,visible:a}},m={axes:{},bottom:b([i.bottom,i.top,i],l,f),top:b([i.top,i.bottom,i],p,u),left:b([i.left,i.right,i.side,i],c,z),right:b([i.right,i.left,i.side,i],d,g),back:b([i.back,i.front,i],y,!0),front:b([i.front,i.back,i],x,!1)};if("auto"===e.axisLabelPosition){let e=function(t,e){return t.visible!==e.visible||t.visible&&e.visible&&t.frontFacing!==e.frontFacing},i=[];e(m.left,m.front)&&i.push({y:(a+r)/2,x:s,z:0,xDir:{x:1,y:0,z:0}}),e(m.left,m.back)&&i.push({y:(a+r)/2,x:s,z:h,xDir:{x:0,y:0,z:-1}}),e(m.right,m.front)&&i.push({y:(a+r)/2,x:o,z:0,xDir:{x:0,y:0,z:1}}),e(m.right,m.back)&&i.push({y:(a+r)/2,x:o,z:h,xDir:{x:-1,y:0,z:0}});let n=[];e(m.bottom,m.front)&&n.push({x:(s+o)/2,y:r,z:0,xDir:{x:1,y:0,z:0}}),e(m.bottom,m.back)&&n.push({x:(s+o)/2,y:r,z:h,xDir:{x:-1,y:0,z:0}});let l=[];e(m.top,m.front)&&l.push({x:(s+o)/2,y:a,z:0,xDir:{x:1,y:0,z:0}}),e(m.top,m.back)&&l.push({x:(s+o)/2,y:a,z:h,xDir:{x:-1,y:0,z:0}});let p=[];e(m.bottom,m.left)&&p.push({z:(0+h)/2,y:r,x:s,xDir:{x:0,y:0,z:-1}}),e(m.bottom,m.right)&&p.push({z:(0+h)/2,y:r,x:o,xDir:{x:0,y:0,z:1}});let c=[];e(m.top,m.left)&&c.push({z:(0+h)/2,y:a,x:s,xDir:{x:0,y:0,z:-1}}),e(m.top,m.right)&&c.push({z:(0+h)/2,y:a,x:o,xDir:{x:0,y:0,z:1}});let d=function(e,i,s){if(0===e.length)return null;if(1===e.length)return e[0];let o=S(e,t,!1),a=0;for(let t=1;ts*o[a][i]?a=t:s*o[t][i]==s*o[a][i]&&o[t].zn.minX&&(p=Math.min(p,1-Math.abs((i+r)/(n.minX+r))%1)),sn.minY&&(p=n.minY<0?Math.min(p,(o+h)/(-n.minY+o+h)):Math.min(p,1-(o+h)/(n.minY+h)%1)),a({plotX:t.x,plotY:t.y,plotZ:t.z})),this.group&&r&&r.depth&&r.beta&&(this.markerGroup&&(this.markerGroup.add(this.group),this.markerGroup.attr({translateX:0,translateY:0})),this.group.attr({zIndex:Math.max(1,r.beta>270||r.beta<90?r.depth-Math.round(this.zPadding||0):Math.round(this.zPadding||0))})),a.reversed=!0;let h=i.call(this,a,!0,!0);if(h[0]&&"M"===h[0][0]&&(h[0]=["L",h[0][1],h[0][2]]),this.areaPath){let t=this.areaPath.splice(0,this.areaPath.length/2).concat(h);t.xMap=this.areaPath.xMap,this.areaPath=t}return this.graphPath=e,e}let _={labels:{position3d:"offset",skew3d:!1},title:{position3d:null,skew3d:null}},{composed:B}=f(),{addEvent:G,extend:N,pushUnique:j,wrap:U}=f();function V(t){let e=this.axis.axis3D;e&&N(t.pos,e.fix3dPosition(t.pos))}function q(t){let e=this.axis.axis3D,i=t.apply(this,[].slice.call(arguments,1));if(e){let t=i[0],s=i[1];if("M"===t[0]&&"L"===s[0]){let i=[e.fix3dPosition({x:t[1],y:t[2],z:0}),e.fix3dPosition({x:s[1],y:s[2],z:0})];return this.axis.chart.renderer.toLineSegments(i)}}return i}let J={compose:function(t){j(B,"Axis.Tick3D")&&(G(t,"afterGetLabelPosition",V),U(t.prototype,"getMarkPath",q))}},{defaultOptions:K}=f(),{deg2rad:Q}=f(),{perspective:$,perspective3D:tt,shapeArea:te}=P,{addEvent:ti,merge:ts,pick:to,wrap:ta}=f();function tr(){let t=this.chart,e=this.options;t.is3d&&t.is3d()&&"colorAxis"!==this.coll&&(e.tickWidth=to(e.tickWidth,0),e.gridLineWidth=to(e.gridLineWidth,1))}function th(t){this.chart.is3d()&&"colorAxis"!==this.coll&&t.point&&(t.point.crosshairPos=this.isXAxis?t.point.axisXpos:this.len-t.point.axisYpos)}function tn(){this.axis3D||(this.axis3D=new ty(this))}function tl(t){return this.chart.is3d()&&"colorAxis"!==this.coll?[]:t.apply(this,[].slice.call(arguments,1))}function tp(t){if(!this.chart.is3d()||"colorAxis"===this.coll)return t.apply(this,[].slice.call(arguments,1));let e=arguments,i=e[1],s=e[2],o=[],a=this.getPlotLinePath({value:i}),r=this.getPlotLinePath({value:s});if(a&&r)for(let t=0;tte($([t,{x:t.x+f.x,y:t.y+f.y,z:t.z+f.z},{x:t.x+u.x,y:t.y+u.y,z:t.z+u.z}],i.chart))&&(f={x:-f.x,y:-f.y,z:-f.z});let e=$([{x:t.x,y:t.y,z:t.z},{x:t.x+f.x,y:t.y+f.y,z:t.z+f.z},{x:t.x+u.x,y:t.y+u.y,z:t.z+u.z}],i.chart);g.matrix=[e[1].x-e[0].x,e[1].y-e[0].y,e[2].x-e[0].x,e[2].y-e[0].y,g.x,g.y],g.matrix[4]-=g.x*g.matrix[0]+g.y*g.matrix[2],g.matrix[5]-=g.x*g.matrix[1]+g.y*g.matrix[3]}return g}swapZ(t,e){let i=this.axis;if(i.isZAxis){let s=e?0:i.chart.plotLeft;return{x:s+t.z,y:t.y,z:t.x-s}}return t}}var tf=d(608),tu=/*#__PURE__*/d.n(tf),tz=d(820),tg=/*#__PURE__*/d.n(tz);let{composed:tb}=f(),{perspective:tm}=P,{addEvent:tv,extend:tM,isNumber:tP,merge:tA,pick:tk,pushUnique:tS}=f();class tw extends tg(){static compose(t){tS(tb,"Core.Series3D")&&(tv(t,"afterTranslate",function(){this.chart.is3d()&&this.translate3dPoints()}),tM(t.prototype,{translate3dPoints:tw.prototype.translate3dPoints}))}translate3dPoints(){let t,e;let i=this,s=i.options,o=i.chart,a=tk(i.zAxis,o.options.zAxis[0]),r=[],h=[],n=s.stacking?tP(s.stack)?s.stack:0:i.index||0;i.zPadding=n*(s.depth||0+(s.groupZPadding||1)),i.data.forEach(t=>{a&&a.translate?(e=a.logarithmic&&a.val2lin?a.val2lin(t.z):t.z,t.plotZ=a.translate(e),t.isInside=!!t.isInside&&e>=a.min&&e<=a.max):t.plotZ=i.zPadding,t.axisXpos=t.plotX,t.axisYpos=t.plotY,t.axisZpos=t.plotZ,r.push({x:t.plotX,y:t.plotY,z:t.plotZ}),h.push(t.plotX||0)}),i.rawPointsX=h;let l=tm(r,o,!0);i.data.forEach((e,i)=>{t=l[i],e.plotX=t.x,e.plotY=t.y,e.plotZ=t.z})}}tw.defaultOptions=tA(tg().defaultOptions);var tI=d(184),tD=/*#__PURE__*/d.n(tI);let{parse:tL}=z(),{Element:tT}=tu().getRendererType().prototype,{defined:tX,pick:tY}=f();class tH extends tT{constructor(){super(...arguments),this.parts=["front","top","side"],this.pathType="cuboid"}initArgs(t){let e=this.renderer,i=e[this.pathType+"Path"](t),s=i.zIndexes;for(let t of this.parts){let o={class:"highcharts-3d-"+t,zIndex:s[t]||0};e.styledMode&&("top"===t?o.filter="url(#highcharts-brighter)":"side"===t&&(o.filter="url(#highcharts-darker)")),this[t]=e.path(i[t]).attr(o).add(this)}this.attr({"stroke-linejoin":"round",zIndex:s.group}),this.forcedSides=i.forcedSides}singleSetterForParts(t,e,i,s,o,a){let r={},h=[null,null,s||"attr",o,a],n=i&&i.zIndexes;if(i){for(let e of(n&&n.group&&this.attr({zIndex:n.group}),Object.keys(i)))r[e]={},r[e][t]=i[e],n&&(r[e].zIndex=i.zIndexes[e]||0);h[1]=r}else r[t]=e,h[0]=r;return this.processParts.apply(this,h)}processParts(t,e,i,s,o){for(let a of this.parts)e&&(t=tY(e[a],!1)),!1!==t&&this[a][i](t,s,o);return this}destroy(){return this.processParts(null,null,"destroy"),super.destroy()}attr(t,e,i,s){if("string"==typeof t&&void 0!==e){let i=t;(t={})[i]=e}return t.shapeArgs||tX(t.x)?this.singleSetterForParts("d",null,this.renderer[this.pathType+"Path"](t.shapeArgs||t)):super.attr(t,void 0,i,s)}animate(t,e,i){if(tX(t.x)&&tX(t.y)){let s=this.renderer[this.pathType+"Path"](t),o=s.forcedSides;this.singleSetterForParts("d",null,s,"animate",e,i),this.attr({zIndex:s.zIndexes.group}),o===this.forcedSides||(this.forcedSides=o,this.renderer.styledMode||this.fillSetter(this.fill))}else super.animate(t,e,i);return this}fillSetter(t){return this.forcedSides=this.forcedSides||[],this.singleSetterForParts("fill",null,{front:t,top:tL(t).brighten(this.forcedSides.indexOf("top")>=0?0:.1).get(),side:tL(t).brighten(this.forcedSides.indexOf("side")>=0?0:-.1).get()}),this.color=this.fill=t,this}}tH.types={base:tH,cuboid:tH};let{animObject:tZ}=f(),{parse:tO}=z(),{charts:tC,deg2rad:tE}=f(),{perspective:tF,shapeArea:tR}=P,{defined:tW,extend:t_,merge:tB,pick:tG}=f(),tN=Math.cos,tj=Math.sin,tU=Math.PI,tV=4*(Math.sqrt(2)-1)/3/(tU/2);function tq(t,e,i,s,o,a,r,h){let n=a-o,l=[];return a>o&&a-o>Math.PI/2+1e-4?l=(l=l.concat(tq(t,e,i,s,o,o+Math.PI/2,r,h))).concat(tq(t,e,i,s,o+Math.PI/2,a,r,h)):aMath.PI/2+1e-4?l=(l=l.concat(tq(t,e,i,s,o,o-Math.PI/2,r,h))).concat(tq(t,e,i,s,o-Math.PI/2,a,r,h)):[["C",t+i*Math.cos(o)-i*tV*n*Math.sin(o)+r,e+s*Math.sin(o)+s*tV*n*Math.cos(o)+h,t+i*Math.cos(a)+i*tV*n*Math.sin(a)+r,e+s*Math.sin(a)-s*tV*n*Math.cos(a)+h,t+i*Math.cos(a)+r,e+s*Math.sin(a)+h]]}!function(t){function e(t,e){let i=[];for(let e of t)i.push(["L",e.x,e.y]);return t.length&&(i[0][0]="M",e&&i.push(["Z"])),i}function i(t){let e=[],i=!0;for(let s of t)e.push(i?["M",s.x,s.y]:["L",s.x,s.y]),i=!i;return e}function s(t){let e=this,i=e.Element.prototype,s=e.createElement("path");return s.vertexes=[],s.insidePlotArea=!1,s.enabled=!0,s.attr=function(t){if("object"==typeof t&&(tW(t.enabled)||tW(t.vertexes)||tW(t.insidePlotArea))){this.enabled=tG(t.enabled,this.enabled),this.vertexes=tG(t.vertexes,this.vertexes),this.insidePlotArea=tG(t.insidePlotArea,this.insidePlotArea),delete t.enabled,delete t.vertexes,delete t.insidePlotArea;let i=tC[e.chartIndex],s=tF(this.vertexes,i,this.insidePlotArea),o=e.toLinePath(s,!0),a=tR(s);t.d=o,t.visibility=this.enabled&&a>0?"inherit":"hidden"}return i.attr.apply(this,arguments)},s.animate=function(t){if("object"==typeof t&&(tW(t.enabled)||tW(t.vertexes)||tW(t.insidePlotArea))){this.enabled=tG(t.enabled,this.enabled),this.vertexes=tG(t.vertexes,this.vertexes),this.insidePlotArea=tG(t.insidePlotArea,this.insidePlotArea),delete t.enabled,delete t.vertexes,delete t.insidePlotArea;let i=tC[e.chartIndex],s=tF(this.vertexes,i,this.insidePlotArea),o=e.toLinePath(s,!0),a=tR(s),r=this.enabled&&a>0?"visible":"hidden";t.d=o,this.attr("visibility",r)}return i.animate.apply(this,arguments)},s.attr(t)}function o(t){let e=this,i=e.Element.prototype,s=e.g(),o=s.destroy;return this.styledMode||s.attr({"stroke-linejoin":"round"}),s.faces=[],s.destroy=function(){for(let t=0;tt.faces.length;)s.faces.pop().destroy();for(;s.faces.lengtht.faces.length;)s.faces.pop().destroy();for(;s.faces.length0===o&&t>1&&t<6?{x:d[t].x,y:d[t].y+10,z:d[t].z}:d[0].x===d[7].x&&t>=4?{x:d[t].x+10,y:d[t].y,z:d[t].z}:0===r&&t<2||t>5?{x:d[t].x,y:d[t].y,z:d[t].z+10}:d[t],y=t=>d[t],f=(t,e,i)=>{let s=t.map(y),o=e.map(y),a=t.map(x),r=e.map(x),h=[[],-1];return 0>tR(s)?h=[s,0]:0>tR(o)?h=[o,1]:i&&(l.push(i),h=0>tR(a)?[s,0]:0>tR(r)?[o,1]:[s,0]),h},u=(p=f([3,2,1,0],[7,6,5,4],"front"))[0],z=p[1],g=(p=f([1,6,7,0],[4,5,2,3],"top"))[0],b=p[1],m=(p=f([1,2,5,6],[0,7,4,3],"side"))[0],v=p[1];return 1===v?c+=1e6*(h.plotWidth-e):v||(c+=1e6*e),c+=10*(!b||n>=0&&n<=180||n<360&&n>357.5?h.plotHeight-i:10+i),1===z?c+=100*s:z||(c+=100*(1e3-s)),{front:this.toLinePath(u,!0),top:this.toLinePath(g,!0),side:this.toLinePath(m,!0),zIndexes:{group:Math.round(c)},forcedSides:l,isFront:z,isTop:b}}function n(t){let e=this.g(),i=this.Element.prototype,s=["alpha","beta","x","y","r","innerR","start","end","depth"];function o(t){let e;let i={};for(e in t=tB(t))-1!==s.indexOf(e)&&(i[e]=t[e],delete t[e]);return!!Object.keys(i).length&&[i,t]}for(let i of((t=tB(t)).alpha=(t.alpha||0)*tE,t.beta=(t.beta||0)*tE,e.top=this.path(),e.side1=this.path(),e.side2=this.path(),e.inn=this.path(),e.out=this.path(),e.onAdd=function(){let t=e.parentGroup,i=e.attr("class");for(let s of(e.top.add(e),["out","inn","side1","side2"]))e[s].attr({class:i+" highcharts-3d-side"}).add(t)},["addClass","removeClass"]))e[i]=function(){let t=arguments;for(let s of["top","out","inn","side1","side2"])e[s][i].apply(e[s],t)};for(let i of(e.setPaths=function(t){let i=e.renderer.arc3dPath(t),s=100*i.zTop;e.attribs=t,e.top.attr({d:i.top,zIndex:i.zTop}),e.inn.attr({d:i.inn,zIndex:i.zInn}),e.out.attr({d:i.out,zIndex:i.zOut}),e.side1.attr({d:i.side1,zIndex:i.zSide1}),e.side2.attr({d:i.side2,zIndex:i.zSide2}),e.zIndex=s,e.attr({zIndex:s}),t.center&&(e.top.setRadialReference(t.center),delete t.center)},e.setPaths(t),e.fillSetter=function(t){let e=tO(t).brighten(-.1).get();return this.fill=t,this.side1.attr({fill:e}),this.side2.attr({fill:e}),this.inn.attr({fill:e}),this.out.attr({fill:e}),this.top.attr({fill:t}),this},["opacity","translateX","translateY","visibility"]))e[i+"Setter"]=function(t,i){for(let s of(e[i]=t,["out","inn","side1","side2","top"]))e[s].attr(i,t)};return e.attr=function(t){if("object"==typeof t){let i=o(t);if(i){let t=i[0];arguments[0]=i[1],void 0!==t.alpha&&(t.alpha*=tE),void 0!==t.beta&&(t.beta*=tE),t_(e.attribs,t),e.attribs&&e.setPaths(e.attribs)}}return i.attr.apply(e,arguments)},e.animate=function(t,s,a){let r=this.attribs,h="data-"+Math.random().toString(26).substring(2,9);delete t.center,delete t.z;let n=tZ(tG(s,this.renderer.globalAnimation));if(n.duration){let i=o(t);if(e[h]=0,t[h]=1,e[h+"Setter"]=f().noop,i){let t=i[0],e=(e,i)=>r[e]+(tG(t[e],r[e])-r[e])*i;n.step=function(t,i){i.prop===h&&i.elem.setPaths(tB(r,{x:e("x",i.pos),y:e("y",i.pos),r:e("r",i.pos),innerR:e("innerR",i.pos),start:e("start",i.pos),end:e("end",i.pos),depth:e("depth",i.pos)}))}}s=n}return i.animate.call(this,t,s,a)},e.destroy=function(){return this.top.destroy(),this.out.destroy(),this.inn.destroy(),this.side1.destroy(),this.side2.destroy(),i.destroy.call(this)},e.hide=function(){this.top.hide(),this.out.hide(),this.inn.hide(),this.side1.hide(),this.side2.hide()},e.show=function(t){this.top.show(t),this.out.show(t),this.inn.show(t),this.side1.show(t),this.side2.show(t)},e}function l(t){let e=t.x||0,i=t.y||0,s=t.start||0,o=(t.end||0)-1e-5,a=t.r||0,r=t.innerR||0,h=t.depth||0,n=t.alpha||0,l=t.beta||0,p=Math.cos(s),c=Math.sin(s),d=Math.cos(o),x=Math.sin(o),y=a*Math.cos(l),f=a*Math.cos(n),u=r*Math.cos(l),z=r*Math.cos(n),g=h*Math.sin(l),b=h*Math.sin(n),m=[["M",e+y*p,i+f*c]];(m=m.concat(tq(e,i,y,f,s,o,0,0))).push(["L",e+u*d,i+z*x]),(m=m.concat(tq(e,i,u,z,o,s,0,0))).push(["Z"]);let v=l>0?Math.PI/2:0,M=n>0?0:Math.PI/2,P=s>-v?s:o>-v?-v:s,A=ok&&stU-M&&sMath.PI&&(t=2*Math.PI-t),t}T=H(T),X=H(X);let Z=1e5*(Y=H(Y)),O=1e5*X,C=1e5*T;return{top:m,zTop:1e5*Math.PI+1,out:S,zOut:Math.max(Z,O,C),inn:w,zInn:Math.max(Z,O,C),side1:I,zSide1:.99*C,side2:D,zSide2:.99*O}}t.compose=function(t){let p=t.prototype;p.element3d||t_(p,{Element3D:tH,arc3d:n,arc3dPath:l,cuboid:r,cuboidPath:h,element3d:a,face3d:s,polyhedron:o,toLinePath:e,toLineSegments:i})}}(l||(l={}));let tJ=l;var tK=d(532),tQ=/*#__PURE__*/d.n(tK);let{defaultOptions:t$}=f(),{addEvent:t0,merge:t1,pick:t3,splat:t2}=f();function t5(t){return new t9(this,t)}function t6(){let t=this.options.zAxis=t2(this.options.zAxis||{});this.is3d()&&(this.zAxis=[],t.forEach(t=>{this.addZAxis(t).setScale()}))}class t9 extends tQ(){constructor(){super(...arguments),this.isZAxis=!0}static compose(t){let e=t.prototype;e.addZAxis||(t$.zAxis=t1(t$.xAxis,{offset:0,lineWidth:0}),e.addZAxis=t5,e.collectionsWithInit.zAxis=[e.addZAxis],e.collectionsWithUpdate.push("zAxis"),t0(t,"afterCreateAxes",t6))}init(t,e){this.isZAxis=!0,super.init(t,e,"zAxis")}getSeriesExtremes(){this.hasVisibleSeries=!1,this.dataMin=this.dataMax=this.ignoreMinPadding=this.ignoreMaxPadding=void 0,this.stacking&&this.stacking.buildStacks(),this.series.forEach(t=>{if(t.reserveSpace()){let e=t.options.threshold;this.hasVisibleSeries=!0,this.positiveValuesOnly&&e<=0&&(e=void 0);let i=t.getColumn("z");i.length&&(this.dataMin=Math.min(t3(this.dataMin,i[0]),Math.min.apply(null,i)),this.dataMax=Math.max(t3(this.dataMax,i[0]),Math.max.apply(null,i)))}})}setAxisSize(){let t=this.chart;super.setAxisSize(),this.width=this.len=t.options.chart.options3d&&t.options.chart.options3d.depth||0,this.right=t.chartWidth-this.width-this.left}}let{composed:t4}=f(),{perspective:t7}=P,{addEvent:t8,extend:et,pick:ee,pushUnique:ei,wrap:es}=f();function eo(){let t=this.chart,e=this.options,i=e.depth,s=(e.stacking?e.stack||0:this.index)*(i+(e.groupZPadding||1)),o=this.borderWidth%2?.5:0,a;for(let r of(t.inverted&&!this.yAxis.reversed&&(o*=-1),!1!==e.grouping&&(s=0),s+=e.groupZPadding||1,this.points))if(r.outside3dPlot=null,null!==r.y){let e;let h=et({x:0,y:0,width:0,height:0},r.shapeArgs||{}),n=[["x","width"],["y","height"]],l=r.tooltipPos;for(let t of n)if((e=h[t[0]]-o)<0&&(h[t[1]]+=h[t[0]]+o,h[t[0]]=-o,e=0),e+h[t[1]]>this[t[0]+"Axis"].len&&0!==h[t[1]]&&(h[t[1]]=this[t[0]+"Axis"].len-h[t[0]]),0!==h[t[1]]&&(h[t[0]]>=this[t[0]+"Axis"].len||h[t[0]]+h[t[1]]<=o)){for(let t in h)h[t]="y"===t?-9999:0;r.outside3dPlot=!0}if("roundedRect"===r.shapeType&&(r.shapeType="cuboid"),r.shapeArgs=et(h,{z:s,depth:i,insidePlotArea:!0}),a={x:h.x+h.width/2,y:h.y,z:s+i/2},t.inverted&&(a.x=h.height,a.y=r.clientX||0),r.axisXpos=a.x,r.axisYpos=a.y,r.axisZpos=a.z,r.plot3d=t7([a],t,!0,!1)[0],l){let e=t7([{x:l[0],y:l[1],z:s+i/2}],t,!0,!1)[0];r.tooltipPos=[e.x,e.y]}}this.z=s}function ea(){if(this.chart.is3d()){let t=this.options,e=t.grouping,i=t.stacking,s=this.yAxis.options.reversedStacks,o=0;if(!(void 0!==e&&!e)){let e;let a=function(t,e){let i=t.series,s={totalStacks:0},o,a=1;return i.forEach(function(t){s[o=ee(t.options.stack,e?0:i.length-1-t.index)]?s[o].series.push(t):(s[o]={series:[t],position:a},a++)}),s.totalStacks=a+1,s}(this.chart,i),r=t.stack||0;for(e=0;e=90&&r.alpha<=270&&(n.y+=e.shapeArgs.width)),n=t7([n],a,!0,!1)[0],o.x=n.x-h,o.y=e.outside3dPlot?-9e9:n.y}t.apply(this,[].slice.call(arguments,1))}function ey(t){return!arguments[2].outside3dPlot&&t.apply(this,[].slice.call(arguments,1))}function ef(t,e){let i=t.apply(this,[].slice.call(arguments,1)),s=this.axis.chart,{width:o}=e;if(s.is3d()&&this.base){let t=+this.base.split(",")[0],e=s.series[t],a=s.options.chart.options3d;if(e&&"column"===e.type){let t={x:i.x+(s.inverted?i.height:o/2),y:i.y,z:e.options.depth/2};s.inverted&&(i.width=0,a.alpha>=90&&a.alpha<=270&&(t.y+=o)),t=t7([t],s,!0,!1)[0],i.x=t.x-o/2,i.y=t.y}}return i}let{pie:{prototype:{pointClass:eu}}}=Z().seriesTypes,ez=class extends eu{haloPath(){return this.series?.chart.is3d()?[]:super.haloPath.apply(this,arguments)}},{composed:eg,deg2rad:eb}=f(),{pie:em}=Z().seriesTypes,{extend:ev,pick:eM,pushUnique:eP}=f();class eA extends em{static compose(t){eP(eg,"Pie3D")&&(t.types.pie=eA)}addPoint(){super.addPoint.apply(this,arguments),this.chart.is3d()&&this.update(this.userOptions,!0)}animate(t){if(this.chart.is3d()){let e=this.center,i=this.group,s=this.markerGroup,o=this.options.animation,a;!0===o&&(o={}),t?(i.oldtranslateX=eM(i.oldtranslateX,i.translateX),i.oldtranslateY=eM(i.oldtranslateY,i.translateY),a={translateX:e[0],translateY:e[1],scaleX:.001,scaleY:.001},i.attr(a),s&&(s.attrSetters=i.attrSetters,s.attr(a))):(a={translateX:i.oldtranslateX,translateY:i.oldtranslateY,scaleX:1,scaleY:1},i.animate(a,o),s&&s.animate(a,o))}else super.animate.apply(this,arguments)}getDataLabelPosition(t,e){let i=super.getDataLabelPosition(t,e);if(this.chart.is3d()){let e=this.chart.options.chart.options3d,s=t.shapeArgs,o=s.r,a=(s.alpha||e?.alpha)*eb,r=(s.beta||e?.beta)*eb,h=(s.start+s.end)/2,n=i.connectorPosition,l=-o*(1-Math.cos(a))*Math.sin(h),p=o*(Math.cos(r)-1)*Math.cos(h);for(let t of[i?.natural,n.breakAt,n.touchingSliceAt])t.x+=p,t.y+=l}return i}pointAttribs(t){let e=super.pointAttribs.apply(this,arguments),i=this.options;return this.chart.is3d()&&!this.chart.styledMode&&(e.stroke=i.edgeColor||t.color||this.color,e["stroke-width"]=eM(i.edgeWidth,1)),e}translate(){if(super.translate.apply(this,arguments),!this.chart.is3d())return;let t=this.options,e=t.depth||0,i=this.chart.options.chart.options3d,s=i.alpha,o=i.beta,a=t.stacking?(t.stack||0)*e:this._i*e;for(let i of(a+=e/2,!1!==t.grouping&&(a=0),this.points)){let r=i.shapeArgs;i.shapeType="arc3d",r.z=a,r.depth=.75*e,r.alpha=s,r.beta=o,r.center=this.center;let h=(r.end+r.start)/2;i.slicedTranslation={translateX:Math.round(Math.cos(h)*t.slicedOffset*Math.cos(s*eb)),translateY:Math.round(Math.sin(h)*t.slicedOffset*Math.cos(s*eb))}}}drawTracker(){if(super.drawTracker.apply(this,arguments),this.chart.is3d()){for(let t of this.points)if(t.graphic)for(let e of["out","inn","side1","side2"])t.graphic&&(t.graphic[e].element.point=t)}}}ev(eA.prototype,{pointClass:ez});var ek=d(632),eS=/*#__PURE__*/d.n(ek);let{pointClass:ew}=eS().prototype,{defined:eI}=f(),eD=class extends ew{applyOptions(){return super.applyOptions.apply(this,arguments),eI(this.z)||(this.z=0),this}},{pointCameraDistance:eL}=P,{extend:eT,merge:eX}=f();class eY extends eS(){pointAttribs(t){let e=super.pointAttribs.apply(this,arguments);return this.chart.is3d()&&t&&(e.zIndex=eL(t,this.chart)),e}}eY.defaultOptions=eX(eS().defaultOptions,{tooltip:{pointFormat:"x: {point.x}
y: {point.y}
z: {point.z}
"}}),eT(eY.prototype,{axisTypes:["xAxis","yAxis","zAxis"],directTouch:!0,parallelArrays:["x","y","z"],pointArrayMap:["x","y","z"],pointClass:eD}),Z().registerSeriesType("scatter3d",eY);let eH=f();({compose:function(t){F(O,"Area3DSeries")&&R(t.prototype,"getGraphPath",W)}}).compose(eH.seriesTypes.area),ty.compose(eH.Axis,eH.Tick),Y.compose(eH.Chart,eH.Fx),({compose:function(t,e){if(ei(t4,"Column3D")){let i=t.prototype,s=e.prototype,{column:o,columnRange:a}=t.types;if(es(i,"alignDataLabel",ex),es(i,"justifyDataLabel",ey),es(s,"getStackBox",ef),o){let t=o.prototype,e=t.pointClass.prototype;t.translate3dPoints=()=>void 0,t.translate3dShapes=eo,t8(t,"afterInit",ea),es(e,"hasNewShapeType",er),es(t,"animate",eh),es(t,"plotGroup",en),es(t,"pointAttribs",el),es(t,"setState",ep),es(t,"setVisible",ec),es(t,"translate",ed)}if(a){let t=a.prototype;es(t.pointClass.prototype,"hasNewShapeType",er),es(t,"plotGroup",en),es(t,"pointAttribs",el),es(t,"setState",ep),es(t,"setVisible",ec)}}}}).compose(eH.Series,tD()),eA.compose(eH.Series),tw.compose(eH.Series),tJ.compose(tu().getRendererType()),t9.compose(eH.Chart);let eZ=eH;return x.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.Series,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Series.types.scatter):"function"==typeof define&&define.amd?define("highcharts/highcharts-3d",["highcharts/highcharts"],function(t){return e(t,t.Color,t.SeriesRegistry,t.RendererRegistry,t.Series,t.StackItem,t.Axis,t.Series,["types"],["scatter"])}):"object"==typeof exports?exports["highcharts/highcharts-3d"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.Series,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Series.types.scatter):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.Series,t.Highcharts.StackItem,t.Highcharts.Axis,t.Highcharts.Series.types.scatter)}("undefined"==typeof window?this:window,(t,e,i,s,o,a,r,h)=>(()=>{"use strict";var n,l,p={532:t=>{t.exports=r},620:t=>{t.exports=e},608:t=>{t.exports=s},632:t=>{t.exports=h},820:t=>{t.exports=o},512:t=>{t.exports=i},184:t=>{t.exports=a},944:e=>{e.exports=t}},c={};function d(t){var e=c[t];if(void 0!==e)return e.exports;var i=c[t]={exports:{}};return p[t](i,i.exports,d),i.exports}d.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return d.d(e,{a:e}),e},d.d=(t,e)=>{for(var i in e)d.o(e,i)&&!d.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},d.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var x={};d.d(x,{default:()=>eZ});var y=d(944),f=d.n(y),u=d(620),z=d.n(u);let{deg2rad:g}=f(),{pick:b}=f();function m(t,e,i,s){let o=e.options.chart.options3d,a=b(s,!!i&&e.inverted),r={x:e.plotWidth/2,y:e.plotHeight/2,z:o.depth/2,vd:b(o.depth,1)*b(o.viewDistance,0)},h=e.scale3d||1,n=g*o.beta*(a?-1:1),l=g*o.alpha*(a?-1:1),p={cosA:Math.cos(l),cosB:Math.cos(-n),sinA:Math.sin(l),sinB:Math.sin(-n)};return i||(r.x+=e.plotLeft,r.y+=e.plotTop),t.map(function(t){var e,i,s;let o=(e=(a?t.y:t.x)-r.x,i=(a?t.x:t.y)-r.y,s=(t.z||0)-r.z,{x:p.cosB*e-p.sinB*s,y:-p.sinA*p.sinB*e+p.cosA*i-p.cosB*p.sinA*s,z:p.cosA*p.sinB*e+p.sinA*i+p.cosA*p.cosB*s}),n=v(o,r,r.vd);return n.x=n.x*h+r.x,n.y=n.y*h+r.y,n.z=o.z*h+r.z,{x:a?n.y:n.x,y:a?n.x:n.y,z:n.z}})}function v(t,e,i){let s=i>0&&i=0?0:360),t.beta=t.beta%360+(t.beta>=0?0:360));let e=this.inverted,i=this.clipBox,s=this.margin;i[e?"y":"x"]=-(s[3]||0),i[e?"x":"y"]=-(s[0]||0),i[e?"height":"width"]=this.chartWidth+(s[3]||0)+(s[1]||0),i[e?"width":"height"]=this.chartHeight+(s[0]||0)+(s[2]||0),this.scale3d=1,!0===t.fitToPlot&&(this.scale3d=this.chart3d.getScale(t.depth)),this.chart3d.frame3d=this.chart3d.get3dFrame()}}function r(){this.is3d()&&(this.isDirtyBox=!0)}function h(){this.chart3d&&this.is3d()&&(this.chart3d.frame3d=this.chart3d.get3dFrame())}function n(){this.chart3d||(this.chart3d=new d(this))}function l(t){return this.is3d()||t.apply(this,[].slice.call(arguments,1))}function p(t){let e,i=this.series.length;if(this.is3d())for(;i--;)(e=this.series[i]).translate(),e.render();else t.call(this)}function c(t){t.apply(this,[].slice.call(arguments,1)),this.is3d()&&(this.container.className+=" highcharts-3d-chart")}t.defaultOptions={chart:{options3d:{enabled:!1,alpha:0,beta:0,depth:100,fitToPlot:!0,viewDistance:25,axisLabelPosition:null,frame:{visible:"default",size:1,bottom:{},top:{},left:{},right:{},back:{},front:{}}}}},t.compose=function(d,x){let y=d.prototype,f=x.prototype;y.is3d=function(){return!!this.options.chart.options3d?.enabled},y.propsRequireDirtyBox.push("chart.options3d"),y.propsRequireUpdateSeries.push("chart.options3d"),f.matrixSetter=function(){let t;if(this.pos<1&&(D(this.start)||D(this.end))){let e=this.start||[1,0,0,1,0,0],i=this.end||[1,0,0,1,0,0];t=[];for(let s=0;s<6;s++)t.push(this.pos*i[s]+(1-this.pos)*e[s])}else t=this.end;this.elem.attr(this.prop,t,null,!0)},L(!0,k,t.defaultOptions),I(d,"init",n),I(d,"addSeries",e),I(d,"afterDrawChartBox",i),I(d,"afterGetContainer",s),I(d,"afterInit",o),I(d,"afterSetChartSize",a),I(d,"beforeRedraw",r),I(d,"beforeRender",h),X(y,"isInsidePlot",l),X(y,"renderSeries",p),X(y,"setClassName",c)};class d{constructor(t){this.chart=t}get3dFrame(){let t=this.chart,e=t.options.chart.options3d,i=e.frame,s=t.plotLeft,o=t.plotLeft+t.plotWidth,a=t.plotTop,r=t.plotTop+t.plotHeight,h=e.depth,n=function(e){let i=w(e,t);return i>.5?1:i<-.5?-1:0},l=n([{x:s,y:r,z:h},{x:o,y:r,z:h},{x:o,y:r,z:0},{x:s,y:r,z:0}]),p=n([{x:s,y:a,z:0},{x:o,y:a,z:0},{x:o,y:a,z:h},{x:s,y:a,z:h}]),c=n([{x:s,y:a,z:0},{x:s,y:a,z:h},{x:s,y:r,z:h},{x:s,y:r,z:0}]),d=n([{x:o,y:a,z:h},{x:o,y:a,z:0},{x:o,y:r,z:0},{x:o,y:r,z:h}]),x=n([{x:s,y:r,z:0},{x:o,y:r,z:0},{x:o,y:a,z:0},{x:s,y:a,z:0}]),y=n([{x:s,y:a,z:h},{x:o,y:a,z:h},{x:o,y:r,z:h},{x:s,y:r,z:h}]),f=!1,u=!1,z=!1,g=!1;[].concat(t.xAxis,t.yAxis,t.zAxis).forEach(function(t){t&&(t.horiz?t.opposite?u=!0:f=!0:t.opposite?g=!0:z=!0)});let b=function(t,e,i){let s=["size","color","visible"],o={};for(let e=0;e0),{size:T(o.size,1),color:T(o.color,"none"),frontFacing:e>0,visible:a}},m={axes:{},bottom:b([i.bottom,i.top,i],l,f),top:b([i.top,i.bottom,i],p,u),left:b([i.left,i.right,i.side,i],c,z),right:b([i.right,i.left,i.side,i],d,g),back:b([i.back,i.front,i],y,!0),front:b([i.front,i.back,i],x,!1)};if("auto"===e.axisLabelPosition){let e=function(t,e){return t.visible!==e.visible||t.visible&&e.visible&&t.frontFacing!==e.frontFacing},i=[];e(m.left,m.front)&&i.push({y:(a+r)/2,x:s,z:0,xDir:{x:1,y:0,z:0}}),e(m.left,m.back)&&i.push({y:(a+r)/2,x:s,z:h,xDir:{x:0,y:0,z:-1}}),e(m.right,m.front)&&i.push({y:(a+r)/2,x:o,z:0,xDir:{x:0,y:0,z:1}}),e(m.right,m.back)&&i.push({y:(a+r)/2,x:o,z:h,xDir:{x:-1,y:0,z:0}});let n=[];e(m.bottom,m.front)&&n.push({x:(s+o)/2,y:r,z:0,xDir:{x:1,y:0,z:0}}),e(m.bottom,m.back)&&n.push({x:(s+o)/2,y:r,z:h,xDir:{x:-1,y:0,z:0}});let l=[];e(m.top,m.front)&&l.push({x:(s+o)/2,y:a,z:0,xDir:{x:1,y:0,z:0}}),e(m.top,m.back)&&l.push({x:(s+o)/2,y:a,z:h,xDir:{x:-1,y:0,z:0}});let p=[];e(m.bottom,m.left)&&p.push({z:(0+h)/2,y:r,x:s,xDir:{x:0,y:0,z:-1}}),e(m.bottom,m.right)&&p.push({z:(0+h)/2,y:r,x:o,xDir:{x:0,y:0,z:1}});let c=[];e(m.top,m.left)&&c.push({z:(0+h)/2,y:a,x:s,xDir:{x:0,y:0,z:-1}}),e(m.top,m.right)&&c.push({z:(0+h)/2,y:a,x:o,xDir:{x:0,y:0,z:1}});let d=function(e,i,s){if(0===e.length)return null;if(1===e.length)return e[0];let o=S(e,t,!1),a=0;for(let t=1;ts*o[a][i]?a=t:s*o[t][i]==s*o[a][i]&&o[t].zn.minX&&(p=Math.min(p,1-Math.abs((i+r)/(n.minX+r))%1)),sn.minY&&(p=n.minY<0?Math.min(p,(o+h)/(-n.minY+o+h)):Math.min(p,1-(o+h)/(n.minY+h)%1)),a({plotX:t.x,plotY:t.y,plotZ:t.z})),this.group&&r&&r.depth&&r.beta&&(this.markerGroup&&(this.markerGroup.add(this.group),this.markerGroup.attr({translateX:0,translateY:0})),this.group.attr({zIndex:Math.max(1,r.beta>270||r.beta<90?r.depth-Math.round(this.zPadding||0):Math.round(this.zPadding||0))})),a.reversed=!0;let h=i.call(this,a,!0,!0);if(h[0]&&"M"===h[0][0]&&(h[0]=["L",h[0][1],h[0][2]]),this.areaPath){let t=this.areaPath.splice(0,this.areaPath.length/2).concat(h);t.xMap=this.areaPath.xMap,this.areaPath=t}return this.graphPath=e,e}let _={labels:{position3d:"offset",skew3d:!1},title:{position3d:null,skew3d:null}},{composed:B}=f(),{addEvent:G,extend:N,pushUnique:j,wrap:U}=f();function V(t){let e=this.axis.axis3D;e&&N(t.pos,e.fix3dPosition(t.pos))}function q(t){let e=this.axis.axis3D,i=t.apply(this,[].slice.call(arguments,1));if(e){let t=i[0],s=i[1];if("M"===t[0]&&"L"===s[0]){let i=[e.fix3dPosition({x:t[1],y:t[2],z:0}),e.fix3dPosition({x:s[1],y:s[2],z:0})];return this.axis.chart.renderer.toLineSegments(i)}}return i}let J={compose:function(t){j(B,"Axis.Tick3D")&&(G(t,"afterGetLabelPosition",V),U(t.prototype,"getMarkPath",q))}},{defaultOptions:K}=f(),{deg2rad:Q}=f(),{perspective:$,perspective3D:tt,shapeArea:te}=P,{addEvent:ti,merge:ts,pick:to,wrap:ta}=f();function tr(){let t=this.chart,e=this.options;t.is3d&&t.is3d()&&"colorAxis"!==this.coll&&(e.tickWidth=to(e.tickWidth,0),e.gridLineWidth=to(e.gridLineWidth,1))}function th(t){this.chart.is3d()&&"colorAxis"!==this.coll&&t.point&&(t.point.crosshairPos=this.isXAxis?t.point.axisXpos:this.len-t.point.axisYpos)}function tn(){this.axis3D||(this.axis3D=new ty(this))}function tl(t){return this.chart.is3d()&&"colorAxis"!==this.coll?[]:t.apply(this,[].slice.call(arguments,1))}function tp(t){if(!this.chart.is3d()||"colorAxis"===this.coll)return t.apply(this,[].slice.call(arguments,1));let e=arguments,i=e[1],s=e[2],o=[],a=this.getPlotLinePath({value:i}),r=this.getPlotLinePath({value:s});if(a&&r)for(let t=0;tte($([t,{x:t.x+f.x,y:t.y+f.y,z:t.z+f.z},{x:t.x+u.x,y:t.y+u.y,z:t.z+u.z}],i.chart))&&(f={x:-f.x,y:-f.y,z:-f.z});let e=$([{x:t.x,y:t.y,z:t.z},{x:t.x+f.x,y:t.y+f.y,z:t.z+f.z},{x:t.x+u.x,y:t.y+u.y,z:t.z+u.z}],i.chart);g.matrix=[e[1].x-e[0].x,e[1].y-e[0].y,e[2].x-e[0].x,e[2].y-e[0].y,g.x,g.y],g.matrix[4]-=g.x*g.matrix[0]+g.y*g.matrix[2],g.matrix[5]-=g.x*g.matrix[1]+g.y*g.matrix[3]}return g}swapZ(t,e){let i=this.axis;if(i.isZAxis){let s=e?0:i.chart.plotLeft;return{x:s+t.z,y:t.y,z:t.x-s}}return t}}var tf=d(608),tu=d.n(tf),tz=d(820),tg=d.n(tz);let{composed:tb}=f(),{perspective:tm}=P,{addEvent:tv,extend:tM,isNumber:tP,merge:tA,pick:tk,pushUnique:tS}=f();class tw extends tg(){static compose(t){tS(tb,"Core.Series3D")&&(tv(t,"afterTranslate",function(){this.chart.is3d()&&this.translate3dPoints()}),tM(t.prototype,{translate3dPoints:tw.prototype.translate3dPoints}))}translate3dPoints(){let t,e;let i=this,s=i.options,o=i.chart,a=tk(i.zAxis,o.options.zAxis[0]),r=[],h=[],n=s.stacking?tP(s.stack)?s.stack:0:i.index||0;i.zPadding=n*(s.depth||0+(s.groupZPadding||1)),i.data.forEach(t=>{a&&a.translate?(e=a.logarithmic&&a.val2lin?a.val2lin(t.z):t.z,t.plotZ=a.translate(e),t.isInside=!!t.isInside&&e>=a.min&&e<=a.max):t.plotZ=i.zPadding,t.axisXpos=t.plotX,t.axisYpos=t.plotY,t.axisZpos=t.plotZ,r.push({x:t.plotX,y:t.plotY,z:t.plotZ}),h.push(t.plotX||0)}),i.rawPointsX=h;let l=tm(r,o,!0);i.data.forEach((e,i)=>{t=l[i],e.plotX=t.x,e.plotY=t.y,e.plotZ=t.z})}}tw.defaultOptions=tA(tg().defaultOptions);var tI=d(184),tD=d.n(tI);let{parse:tL}=z(),{Element:tT}=tu().getRendererType().prototype,{defined:tX,pick:tY}=f();class tH extends tT{constructor(){super(...arguments),this.parts=["front","top","side"],this.pathType="cuboid"}initArgs(t){let e=this.renderer,i=e[this.pathType+"Path"](t),s=i.zIndexes;for(let t of this.parts){let o={class:"highcharts-3d-"+t,zIndex:s[t]||0};e.styledMode&&("top"===t?o.filter="url(#highcharts-brighter)":"side"===t&&(o.filter="url(#highcharts-darker)")),this[t]=e.path(i[t]).attr(o).add(this)}this.attr({"stroke-linejoin":"round",zIndex:s.group}),this.forcedSides=i.forcedSides}singleSetterForParts(t,e,i,s,o,a){let r={},h=[null,null,s||"attr",o,a],n=i&&i.zIndexes;if(i){for(let e of(n&&n.group&&this.attr({zIndex:n.group}),Object.keys(i)))r[e]={},r[e][t]=i[e],n&&(r[e].zIndex=i.zIndexes[e]||0);h[1]=r}else r[t]=e,h[0]=r;return this.processParts.apply(this,h)}processParts(t,e,i,s,o){for(let a of this.parts)e&&(t=tY(e[a],!1)),!1!==t&&this[a][i](t,s,o);return this}destroy(){return this.processParts(null,null,"destroy"),super.destroy()}attr(t,e,i,s){if("string"==typeof t&&void 0!==e){let i=t;(t={})[i]=e}return t.shapeArgs||tX(t.x)?this.singleSetterForParts("d",null,this.renderer[this.pathType+"Path"](t.shapeArgs||t)):super.attr(t,void 0,i,s)}animate(t,e,i){if(tX(t.x)&&tX(t.y)){let s=this.renderer[this.pathType+"Path"](t),o=s.forcedSides;this.singleSetterForParts("d",null,s,"animate",e,i),this.attr({zIndex:s.zIndexes.group}),o===this.forcedSides||(this.forcedSides=o,this.renderer.styledMode||this.fillSetter(this.fill))}else super.animate(t,e,i);return this}fillSetter(t){return this.forcedSides=this.forcedSides||[],this.singleSetterForParts("fill",null,{front:t,top:tL(t).brighten(this.forcedSides.indexOf("top")>=0?0:.1).get(),side:tL(t).brighten(this.forcedSides.indexOf("side")>=0?0:-.1).get()}),this.color=this.fill=t,this}}tH.types={base:tH,cuboid:tH};let{animObject:tZ}=f(),{parse:tO}=z(),{charts:tC,deg2rad:tE}=f(),{perspective:tF,shapeArea:tR}=P,{defined:tW,extend:t_,merge:tB,pick:tG}=f(),tN=Math.cos,tj=Math.sin,tU=Math.PI,tV=4*(Math.sqrt(2)-1)/3/(tU/2);function tq(t,e,i,s,o,a,r,h){let n=a-o,l=[];return a>o&&a-o>Math.PI/2+1e-4?l=(l=l.concat(tq(t,e,i,s,o,o+Math.PI/2,r,h))).concat(tq(t,e,i,s,o+Math.PI/2,a,r,h)):aMath.PI/2+1e-4?l=(l=l.concat(tq(t,e,i,s,o,o-Math.PI/2,r,h))).concat(tq(t,e,i,s,o-Math.PI/2,a,r,h)):[["C",t+i*Math.cos(o)-i*tV*n*Math.sin(o)+r,e+s*Math.sin(o)+s*tV*n*Math.cos(o)+h,t+i*Math.cos(a)+i*tV*n*Math.sin(a)+r,e+s*Math.sin(a)-s*tV*n*Math.cos(a)+h,t+i*Math.cos(a)+r,e+s*Math.sin(a)+h]]}!function(t){function e(t,e){let i=[];for(let e of t)i.push(["L",e.x,e.y]);return t.length&&(i[0][0]="M",e&&i.push(["Z"])),i}function i(t){let e=[],i=!0;for(let s of t)e.push(i?["M",s.x,s.y]:["L",s.x,s.y]),i=!i;return e}function s(t){let e=this,i=e.Element.prototype,s=e.createElement("path");return s.vertexes=[],s.insidePlotArea=!1,s.enabled=!0,s.attr=function(t){if("object"==typeof t&&(tW(t.enabled)||tW(t.vertexes)||tW(t.insidePlotArea))){this.enabled=tG(t.enabled,this.enabled),this.vertexes=tG(t.vertexes,this.vertexes),this.insidePlotArea=tG(t.insidePlotArea,this.insidePlotArea),delete t.enabled,delete t.vertexes,delete t.insidePlotArea;let i=tC[e.chartIndex],s=tF(this.vertexes,i,this.insidePlotArea),o=e.toLinePath(s,!0),a=tR(s);t.d=o,t.visibility=this.enabled&&a>0?"inherit":"hidden"}return i.attr.apply(this,arguments)},s.animate=function(t){if("object"==typeof t&&(tW(t.enabled)||tW(t.vertexes)||tW(t.insidePlotArea))){this.enabled=tG(t.enabled,this.enabled),this.vertexes=tG(t.vertexes,this.vertexes),this.insidePlotArea=tG(t.insidePlotArea,this.insidePlotArea),delete t.enabled,delete t.vertexes,delete t.insidePlotArea;let i=tC[e.chartIndex],s=tF(this.vertexes,i,this.insidePlotArea),o=e.toLinePath(s,!0),a=tR(s),r=this.enabled&&a>0?"visible":"hidden";t.d=o,this.attr("visibility",r)}return i.animate.apply(this,arguments)},s.attr(t)}function o(t){let e=this,i=e.Element.prototype,s=e.g(),o=s.destroy;return this.styledMode||s.attr({"stroke-linejoin":"round"}),s.faces=[],s.destroy=function(){for(let t=0;tt.faces.length;)s.faces.pop().destroy();for(;s.faces.lengtht.faces.length;)s.faces.pop().destroy();for(;s.faces.length0===o&&t>1&&t<6?{x:d[t].x,y:d[t].y+10,z:d[t].z}:d[0].x===d[7].x&&t>=4?{x:d[t].x+10,y:d[t].y,z:d[t].z}:0===r&&t<2||t>5?{x:d[t].x,y:d[t].y,z:d[t].z+10}:d[t],y=t=>d[t],f=(t,e,i)=>{let s=t.map(y),o=e.map(y),a=t.map(x),r=e.map(x),h=[[],-1];return 0>tR(s)?h=[s,0]:0>tR(o)?h=[o,1]:i&&(l.push(i),h=0>tR(a)?[s,0]:0>tR(r)?[o,1]:[s,0]),h},u=(p=f([3,2,1,0],[7,6,5,4],"front"))[0],z=p[1],g=(p=f([1,6,7,0],[4,5,2,3],"top"))[0],b=p[1],m=(p=f([1,2,5,6],[0,7,4,3],"side"))[0],v=p[1];return 1===v?c+=1e6*(h.plotWidth-e):v||(c+=1e6*e),c+=10*(!b||n>=0&&n<=180||n<360&&n>357.5?h.plotHeight-i:10+i),1===z?c+=100*s:z||(c+=100*(1e3-s)),{front:this.toLinePath(u,!0),top:this.toLinePath(g,!0),side:this.toLinePath(m,!0),zIndexes:{group:Math.round(c)},forcedSides:l,isFront:z,isTop:b}}function n(t){let e=this.g(),i=this.Element.prototype,s=["alpha","beta","x","y","r","innerR","start","end","depth"];function o(t){let e;let i={};for(e in t=tB(t))-1!==s.indexOf(e)&&(i[e]=t[e],delete t[e]);return!!Object.keys(i).length&&[i,t]}for(let i of((t=tB(t)).alpha=(t.alpha||0)*tE,t.beta=(t.beta||0)*tE,e.top=this.path(),e.side1=this.path(),e.side2=this.path(),e.inn=this.path(),e.out=this.path(),e.onAdd=function(){let t=e.parentGroup,i=e.attr("class");for(let s of(e.top.add(e),["out","inn","side1","side2"]))e[s].attr({class:i+" highcharts-3d-side"}).add(t)},["addClass","removeClass"]))e[i]=function(){let t=arguments;for(let s of["top","out","inn","side1","side2"])e[s][i].apply(e[s],t)};for(let i of(e.setPaths=function(t){let i=e.renderer.arc3dPath(t),s=100*i.zTop;e.attribs=t,e.top.attr({d:i.top,zIndex:i.zTop}),e.inn.attr({d:i.inn,zIndex:i.zInn}),e.out.attr({d:i.out,zIndex:i.zOut}),e.side1.attr({d:i.side1,zIndex:i.zSide1}),e.side2.attr({d:i.side2,zIndex:i.zSide2}),e.zIndex=s,e.attr({zIndex:s}),t.center&&(e.top.setRadialReference(t.center),delete t.center)},e.setPaths(t),e.fillSetter=function(t){let e=tO(t).brighten(-.1).get();return this.fill=t,this.side1.attr({fill:e}),this.side2.attr({fill:e}),this.inn.attr({fill:e}),this.out.attr({fill:e}),this.top.attr({fill:t}),this},["opacity","translateX","translateY","visibility"]))e[i+"Setter"]=function(t,i){for(let s of(e[i]=t,["out","inn","side1","side2","top"]))e[s].attr(i,t)};return e.attr=function(t){if("object"==typeof t){let i=o(t);if(i){let t=i[0];arguments[0]=i[1],void 0!==t.alpha&&(t.alpha*=tE),void 0!==t.beta&&(t.beta*=tE),t_(e.attribs,t),e.attribs&&e.setPaths(e.attribs)}}return i.attr.apply(e,arguments)},e.animate=function(t,s,a){let r=this.attribs,h="data-"+Math.random().toString(26).substring(2,9);delete t.center,delete t.z;let n=tZ(tG(s,this.renderer.globalAnimation));if(n.duration){let i=o(t);if(e[h]=0,t[h]=1,e[h+"Setter"]=f().noop,i){let t=i[0],e=(e,i)=>r[e]+(tG(t[e],r[e])-r[e])*i;n.step=function(t,i){i.prop===h&&i.elem.setPaths(tB(r,{x:e("x",i.pos),y:e("y",i.pos),r:e("r",i.pos),innerR:e("innerR",i.pos),start:e("start",i.pos),end:e("end",i.pos),depth:e("depth",i.pos)}))}}s=n}return i.animate.call(this,t,s,a)},e.destroy=function(){return this.top.destroy(),this.out.destroy(),this.inn.destroy(),this.side1.destroy(),this.side2.destroy(),i.destroy.call(this)},e.hide=function(){this.top.hide(),this.out.hide(),this.inn.hide(),this.side1.hide(),this.side2.hide()},e.show=function(t){this.top.show(t),this.out.show(t),this.inn.show(t),this.side1.show(t),this.side2.show(t)},e}function l(t){let e=t.x||0,i=t.y||0,s=t.start||0,o=(t.end||0)-1e-5,a=t.r||0,r=t.innerR||0,h=t.depth||0,n=t.alpha||0,l=t.beta||0,p=Math.cos(s),c=Math.sin(s),d=Math.cos(o),x=Math.sin(o),y=a*Math.cos(l),f=a*Math.cos(n),u=r*Math.cos(l),z=r*Math.cos(n),g=h*Math.sin(l),b=h*Math.sin(n),m=[["M",e+y*p,i+f*c]];(m=m.concat(tq(e,i,y,f,s,o,0,0))).push(["L",e+u*d,i+z*x]),(m=m.concat(tq(e,i,u,z,o,s,0,0))).push(["Z"]);let v=l>0?Math.PI/2:0,M=n>0?0:Math.PI/2,P=s>-v?s:o>-v?-v:s,A=ok&&stU-M&&sMath.PI&&(t=2*Math.PI-t),t}T=H(T),X=H(X);let Z=1e5*(Y=H(Y)),O=1e5*X,C=1e5*T;return{top:m,zTop:1e5*Math.PI+1,out:S,zOut:Math.max(Z,O,C),inn:w,zInn:Math.max(Z,O,C),side1:I,zSide1:.99*C,side2:D,zSide2:.99*O}}t.compose=function(t){let p=t.prototype;p.element3d||t_(p,{Element3D:tH,arc3d:n,arc3dPath:l,cuboid:r,cuboidPath:h,element3d:a,face3d:s,polyhedron:o,toLinePath:e,toLineSegments:i})}}(l||(l={}));let tJ=l;var tK=d(532),tQ=d.n(tK);let{defaultOptions:t$}=f(),{addEvent:t0,merge:t1,pick:t3,splat:t2}=f();function t5(t){return new t9(this,t)}function t6(){let t=this.options.zAxis=t2(this.options.zAxis||{});this.is3d()&&(this.zAxis=[],t.forEach(t=>{this.addZAxis(t).setScale()}))}class t9 extends tQ(){constructor(){super(...arguments),this.isZAxis=!0}static compose(t){let e=t.prototype;e.addZAxis||(t$.zAxis=t1(t$.xAxis,{offset:0,lineWidth:0}),e.addZAxis=t5,e.collectionsWithInit.zAxis=[e.addZAxis],e.collectionsWithUpdate.push("zAxis"),t0(t,"afterCreateAxes",t6))}init(t,e){this.isZAxis=!0,super.init(t,e,"zAxis")}getSeriesExtremes(){this.hasVisibleSeries=!1,this.dataMin=this.dataMax=this.ignoreMinPadding=this.ignoreMaxPadding=void 0,this.stacking&&this.stacking.buildStacks(),this.series.forEach(t=>{if(t.reserveSpace()){let e=t.options.threshold;this.hasVisibleSeries=!0,this.positiveValuesOnly&&e<=0&&(e=void 0);let i=t.getColumn("z");i.length&&(this.dataMin=Math.min(t3(this.dataMin,i[0]),Math.min.apply(null,i)),this.dataMax=Math.max(t3(this.dataMax,i[0]),Math.max.apply(null,i)))}})}setAxisSize(){let t=this.chart;super.setAxisSize(),this.width=this.len=t.options.chart.options3d&&t.options.chart.options3d.depth||0,this.right=t.chartWidth-this.width-this.left}}let{composed:t4}=f(),{perspective:t7}=P,{addEvent:t8,extend:et,pick:ee,pushUnique:ei,wrap:es}=f();function eo(){let t=this.chart,e=this.options,i=e.depth,s=(e.stacking?e.stack||0:this.index)*(i+(e.groupZPadding||1)),o=this.borderWidth%2?.5:0,a;for(let r of(t.inverted&&!this.yAxis.reversed&&(o*=-1),!1!==e.grouping&&(s=0),s+=e.groupZPadding||1,this.points))if(r.outside3dPlot=null,null!==r.y){let e;let h=et({x:0,y:0,width:0,height:0},r.shapeArgs||{}),n=[["x","width"],["y","height"]],l=r.tooltipPos;for(let t of n)if((e=h[t[0]]-o)<0&&(h[t[1]]+=h[t[0]]+o,h[t[0]]=-o,e=0),e+h[t[1]]>this[t[0]+"Axis"].len&&0!==h[t[1]]&&(h[t[1]]=this[t[0]+"Axis"].len-h[t[0]]),0!==h[t[1]]&&(h[t[0]]>=this[t[0]+"Axis"].len||h[t[0]]+h[t[1]]<=o)){for(let t in h)h[t]="y"===t?-9999:0;r.outside3dPlot=!0}if("roundedRect"===r.shapeType&&(r.shapeType="cuboid"),r.shapeArgs=et(h,{z:s,depth:i,insidePlotArea:!0}),a={x:h.x+h.width/2,y:h.y,z:s+i/2},t.inverted&&(a.x=h.height,a.y=r.clientX||0),r.axisXpos=a.x,r.axisYpos=a.y,r.axisZpos=a.z,r.plot3d=t7([a],t,!0,!1)[0],l){let e=t7([{x:l[0],y:l[1],z:s+i/2}],t,!0,!1)[0];r.tooltipPos=[e.x,e.y]}}this.z=s}function ea(){if(this.chart.is3d()){let t=this.options,e=t.grouping,i=t.stacking,s=this.yAxis.options.reversedStacks,o=0;if(!(void 0!==e&&!e)){let e;let a=function(t,e){let i=t.series,s={totalStacks:0},o,a=1;return i.forEach(function(t){s[o=ee(t.options.stack,e?0:i.length-1-t.index)]?s[o].series.push(t):(s[o]={series:[t],position:a},a++)}),s.totalStacks=a+1,s}(this.chart,i),r=t.stack||0;for(e=0;e=90&&r.alpha<=270&&(n.y+=e.shapeArgs.width)),n=t7([n],a,!0,!1)[0],o.x=n.x-h,o.y=e.outside3dPlot?-9e9:n.y}t.apply(this,[].slice.call(arguments,1))}function ey(t){return!arguments[2].outside3dPlot&&t.apply(this,[].slice.call(arguments,1))}function ef(t,e){let i=t.apply(this,[].slice.call(arguments,1)),s=this.axis.chart,{width:o}=e;if(s.is3d()&&this.base){let t=+this.base.split(",")[0],e=s.series[t],a=s.options.chart.options3d;if(e&&"column"===e.type){let t={x:i.x+(s.inverted?i.height:o/2),y:i.y,z:e.options.depth/2};s.inverted&&(i.width=0,a.alpha>=90&&a.alpha<=270&&(t.y+=o)),t=t7([t],s,!0,!1)[0],i.x=t.x-o/2,i.y=t.y}}return i}let{pie:{prototype:{pointClass:eu}}}=Z().seriesTypes,ez=class extends eu{haloPath(){return this.series?.chart.is3d()?[]:super.haloPath.apply(this,arguments)}},{composed:eg,deg2rad:eb}=f(),{pie:em}=Z().seriesTypes,{extend:ev,pick:eM,pushUnique:eP}=f();class eA extends em{static compose(t){eP(eg,"Pie3D")&&(t.types.pie=eA)}addPoint(){super.addPoint.apply(this,arguments),this.chart.is3d()&&this.update(this.userOptions,!0)}animate(t){if(this.chart.is3d()){let e=this.center,i=this.group,s=this.markerGroup,o=this.options.animation,a;!0===o&&(o={}),t?(i.oldtranslateX=eM(i.oldtranslateX,i.translateX),i.oldtranslateY=eM(i.oldtranslateY,i.translateY),a={translateX:e[0],translateY:e[1],scaleX:.001,scaleY:.001},i.attr(a),s&&(s.attrSetters=i.attrSetters,s.attr(a))):(a={translateX:i.oldtranslateX,translateY:i.oldtranslateY,scaleX:1,scaleY:1},i.animate(a,o),s&&s.animate(a,o))}else super.animate.apply(this,arguments)}getDataLabelPosition(t,e){let i=super.getDataLabelPosition(t,e);if(this.chart.is3d()){let e=this.chart.options.chart.options3d,s=t.shapeArgs,o=s.r,a=(s.alpha||e?.alpha)*eb,r=(s.beta||e?.beta)*eb,h=(s.start+s.end)/2,n=i.connectorPosition,l=-o*(1-Math.cos(a))*Math.sin(h),p=o*(Math.cos(r)-1)*Math.cos(h);for(let t of[i?.natural,n.breakAt,n.touchingSliceAt])t.x+=p,t.y+=l}return i}pointAttribs(t){let e=super.pointAttribs.apply(this,arguments),i=this.options;return this.chart.is3d()&&!this.chart.styledMode&&(e.stroke=i.edgeColor||t.color||this.color,e["stroke-width"]=eM(i.edgeWidth,1)),e}translate(){if(super.translate.apply(this,arguments),!this.chart.is3d())return;let t=this.options,e=t.depth||0,i=this.chart.options.chart.options3d,s=i.alpha,o=i.beta,a=t.stacking?(t.stack||0)*e:this._i*e;for(let i of(a+=e/2,!1!==t.grouping&&(a=0),this.points)){let r=i.shapeArgs;i.shapeType="arc3d",r.z=a,r.depth=.75*e,r.alpha=s,r.beta=o,r.center=this.center;let h=(r.end+r.start)/2;i.slicedTranslation={translateX:Math.round(Math.cos(h)*t.slicedOffset*Math.cos(s*eb)),translateY:Math.round(Math.sin(h)*t.slicedOffset*Math.cos(s*eb))}}}drawTracker(){if(super.drawTracker.apply(this,arguments),this.chart.is3d()){for(let t of this.points)if(t.graphic)for(let e of["out","inn","side1","side2"])t.graphic&&(t.graphic[e].element.point=t)}}}ev(eA.prototype,{pointClass:ez});var ek=d(632),eS=d.n(ek);let{pointClass:ew}=eS().prototype,{defined:eI}=f(),eD=class extends ew{applyOptions(){return super.applyOptions.apply(this,arguments),eI(this.z)||(this.z=0),this}},{pointCameraDistance:eL}=P,{extend:eT,merge:eX}=f();class eY extends eS(){pointAttribs(t){let e=super.pointAttribs.apply(this,arguments);return this.chart.is3d()&&t&&(e.zIndex=eL(t,this.chart)),e}}eY.defaultOptions=eX(eS().defaultOptions,{tooltip:{pointFormat:"x: {point.x}
y: {point.y}
z: {point.z}
"}}),eT(eY.prototype,{axisTypes:["xAxis","yAxis","zAxis"],directTouch:!0,parallelArrays:["x","y","z"],pointArrayMap:["x","y","z"],pointClass:eD}),Z().registerSeriesType("scatter3d",eY);let eH=f();({compose:function(t){F(O,"Area3DSeries")&&R(t.prototype,"getGraphPath",W)}}).compose(eH.seriesTypes.area),ty.compose(eH.Axis,eH.Tick),Y.compose(eH.Chart,eH.Fx),({compose:function(t,e){if(ei(t4,"Column3D")){let i=t.prototype,s=e.prototype,{column:o,columnRange:a}=t.types;if(es(i,"alignDataLabel",ex),es(i,"justifyDataLabel",ey),es(s,"getStackBox",ef),o){let t=o.prototype,e=t.pointClass.prototype;t.translate3dPoints=()=>void 0,t.translate3dShapes=eo,t8(t,"afterInit",ea),es(e,"hasNewShapeType",er),es(t,"animate",eh),es(t,"plotGroup",en),es(t,"pointAttribs",el),es(t,"setState",ep),es(t,"setVisible",ec),es(t,"translate",ed)}if(a){let t=a.prototype;es(t.pointClass.prototype,"hasNewShapeType",er),es(t,"plotGroup",en),es(t,"pointAttribs",el),es(t,"setState",ep),es(t,"setVisible",ec)}}}}).compose(eH.Series,tD()),eA.compose(eH.Series),tw.compose(eH.Series),tJ.compose(tu().getRendererType()),t9.compose(eH.Chart);let eZ=eH;return x.default})()); \ No newline at end of file diff --git a/highcharts-3d.src.js b/highcharts-3d.src.js index effdb8a830..f5e995375c 100644 --- a/highcharts-3d.src.js +++ b/highcharts-3d.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts-3d * @requires highcharts * diff --git a/highcharts-gantt.js b/highcharts-gantt.js index 1e39c3d626..72e9c3ff28 100644 --- a/highcharts-gantt.js +++ b/highcharts-gantt.js @@ -1,16 +1,16 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i,s,o;var r,n,a,h,l,d,c,p,u,g,f,m,x,y,b,v,M,k,w,S,A,T,P={};P.d=(t,e)=>{for(var i in e)P.o(e,i)&&!P.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},P.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var C={};P.d(C,{default:()=>gi}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.0.2",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(r||(r={}));let O=r,{charts:E,doc:L,win:B}=O;function I(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=H(t),n=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(n+="?"),Z(s,function(e,i){t+=` - - ${i}: ${e}`,r&&(n+=encodeURI(i)+"="+encodeURI(e))}),n+=t}J(O,"displayError",{chart:i,code:t,message:n,params:s},function(){if(e)throw Error(n);B.console&&-1===I.messages.indexOf(n)&&console.warn(n)}),I.messages.push(n)}function D(t,e){return parseInt(t,e||10)}function R(t){return"string"==typeof t}function N(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function z(t,e){return!!t&&"object"==typeof t&&(!e||!N(t))}function W(t){return z(t)&&"number"==typeof t.nodeType}function G(t){let e=t&&t.constructor;return!!(z(t,!0)&&!W(t)&&e&&e.name&&"Object"!==e.name)}function H(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function F(t){return null!=t}function X(t,e,i){let s;let o=R(e)&&!F(i),r=(e,i)=>{F(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return R(e)?r(i,e):Z(e,r),s}function Y(t){return N(t)?t:[t]}function j(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function U(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(I||(I={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let q=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let Q=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();B.jQuery&&(B.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new O[R(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):E[X(this[0],"data-highcharts-chart")]});let tt={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;O.Point&&t instanceof O.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let n=t.addEventListener;n&&n.call(t,e,i,!!O.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let a={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(a),r[e].sort((t,e)=>t.order-e.order),function(){K(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=Y(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let n=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!n?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=B.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),U(s,"opacity"!==i)&&(o=D(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(a<=(e[r]+(e[r+1]||e[r]))/2)));r++);return _(n*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:Z,offset:function(t){let e=L.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(B.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(B.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:U,pInt:D,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:K,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:Y,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return R(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:Q,useSerialIds:function(e){return t=U(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:te}=O,{defined:ti,error:ts,extend:to,isNumber:tr,isObject:tn,isString:ta,merge:th,objectEach:tl,pad:td,splat:tc,timeUnits:tp,ucfirst:tu}=tt,tg=O.isSafari&&te.Intl&&!te.Intl.DateTimeFormat.prototype.formatRange,tf=t=>void 0===t.main,tm=t=>["D","L","M","X","J","V","S"].indexOf(t),tx=class{constructor(t){this.options={},this.variableTimezone=!1,this.Date=te.Date,this.update(t)}update(t={}){let e=t.timezone??"UTC";this.dTLCache={},this.options=t=th(!0,this.options,t);let{timezoneOffset:i,useUTC:s}=t;this.Date=t.Date||te.Date||Date,ti(s)&&(e=s?"UTC":void 0),i&&i%60==0&&(e="Etc/GMT"+(i>0?"+":"")+i/60),this.variableTimezone="UTC"!==e&&e?.indexOf("Etc/GMT")!==0,this.timezone=e,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,n,a]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,n,a,Math.floor(Number(t)||0)%1e3,tm(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;ta(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(ts(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):ts(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&to(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,n){let a=this.Date.UTC(t,e,i,s,o||0,r||0,n||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(a);if(a+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(a);t!==e?a+=e-t:t-36e5!==this.getTimezoneOffset(a-36e5)||tg||(a-=36e5)}}return a}parse(t){if(!ta(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(tr(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),n=-(36e5*(s+r/60));if(tr(n))return n}return 0}dateFormat(t,e,i){let s=O.defaultOptions?.lang;if(!ti(e)||isNaN(e))return s?.invalidDate||"";if(ta(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(ta(t)&&-1!==t.indexOf("%")){let i=this,[o,r,n,a,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,f=s?.shortMonths||this.shortMonths;tl(to({a:u?u[c]:p[c].substr(0,3),A:p[c],d:td(n),e:td(n,2," "),w:c,b:f[r],B:g[r],m:td(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:td(a),k:a,I:td(a%12||12),l:a%12||12,M:td(h),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:td(l),L:td(d,3)},O.dateFormats),function(s,o){if(ta(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(tn(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.options.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(to({timeZone:s},t),e)+r}return i?tu(t):t}resolveDTLFormat(t){return tn(t,!0)?tn(t,!0)&&tf(t)?{main:t}:t:{main:(t=tc(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],n={},{count:a=1,unitRange:h}=t,[l,d,c,p,u,g]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),ti(e)){if(f=h>=tp.second?0:a*Math.floor(f/a),h>=tp.second&&(g=h>=tp.minute?0:a*Math.floor(g/a)),h>=tp.minute&&(u=h>=tp.hour?0:a*Math.floor(u/a)),h>=tp.hour&&(p=h>=tp.day?0:a*Math.floor(p/a)),h>=tp.day&&(c=h>=tp.month?1:Math.max(1,a*Math.floor(c/a))),h>=tp.month&&(d=h>=tp.year?0:a*Math.floor(d/a)),h>=tp.year&&(l-=l%a),h===tp.week){a&&(e=o.makeTime(l,d,c,p,u,g,f));let t=tm(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*tp.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*a):t+=h*a,x++;r.push(t),h<=tp.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(n[t]="day")})}return r.info=to(t,{higherRanks:n,totalRange:h*a}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",n={millisecond:15,second:12,minute:9,hour:6,day:3},a="millisecond",h=a;for(a in tp){if(t===tp.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){a="week";break}if(tp[a]>t){a=h;break}if(n[a]&&o.substr(n[a])!==r.substr(n[a]))break;"week"!==a&&(h=a)}return this.resolveDTLFormat(s[a]).main}},{isTouchDevice:ty}=O,{fireEvent:tb,merge:tv}=tt,tM={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:ty?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tM.chart.styledMode=!0,tM.chart.styledMode=!1;let tk=new tx(tM.time),tw={defaultOptions:tM,defaultTime:tk,getOptions:function(){return tM},setOptions:function(t){return tb(O,"setOptions",{options:t}),tv(!0,tM,t),t.time&&tk.update(tM.time),t.lang&&"locale"in t.lang&&tk.update({locale:t.lang.locale}),tM}},{isNumber:tS,merge:tA,pInt:tT,defined:tP}=tt;class tC{static parse(t){return t?new tC(t):tC.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=O.Color;if(r&&r!==tC)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tC(t[1]));else if("string"==typeof t)for(this.input=t=tC.names[t.toLowerCase()]||t,s=tC.parsers.length;s--&&!i;)(e=(o=tC.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tA(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tS(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tS(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tT(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tS(i[0])||!tS(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3];return(o?"rgba(":"rgb(")+Math.round(s[0]+(i[0]-s[0])*(1-e))+","+Math.round(s[1]+(i[1]-s[1])*(1-e))+","+Math.round(s[2]+(i[2]-s[2])*(1-e))+(o?","+(s[3]+(i[3]-s[3])*(1-e)):"")+")"}}tC.names={white:"#ffffff",black:"#000000"},tC.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tT(t[1]+t[1],16),tT(t[2]+t[2],16),tT(t[3]+t[3],16),tP(t[4])?tT(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tT(t[1],16),tT(t[2],16),tT(t[3],16),tP(t[4])?tT(t[4],16)/255:1]}}],tC.None=new tC("");let{parse:tO}=tC,{win:tE}=O,{isNumber:tL,objectEach:tB}=tt;class tI{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=a+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tB(h,function(t){!0!==t&&(i=!1)}),i&&n&&n.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/a),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),n=t.isArea,a=n?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,u=e&&e.slice();if(!u||h)return[r,r];function g(t,e){for(;t.length{let i=tX(t.options.animation);r=tW(e)&&tD(e.defer)?s.defer:Math.max(r,i.duration+i.defer),n=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-n),duration:Math.min(r,n)}},setAnimation:function(t,e){e.renderer.globalAnimation=tF(t,e.options.chart.animation,!0)},stop:tY},{SVG_NS:tU,win:tV}=O,{attr:t$,createElement:t_,css:tq,error:tZ,isFunction:tK,isString:tJ,objectEach:tQ,splat:t0}=tt,{trustedTypes:t1}=tV,t2=t1&&tK(t1.createPolicy)&&t1.createPolicy("highcharts",{createHTML:t=>t}),t3=t2?t2.createHTML(""):"";class t5{static filterUserAttributes(t){return tQ(t,(e,i)=>{let s=!0;-1===t5.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tJ(e)&&t5.allowedReferences.some(t=>0===e.indexOf(t))),s||(tZ(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tJ(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t5.emptyHTML,e&&new t5(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t0(e).forEach(function(e){let o;let r=e.tagName,n=e.textContent?O.doc.createTextNode(e.textContent):void 0,a=t5.bypassHTMLFiltering;if(r){if("#text"===r)o=n;else if(-1!==t5.allowedTags.indexOf(r)||a){let s="svg"===r?tU:i.namespaceURI||tU,h=O.doc.createElementNS(s,r),l=e.attributes||{};tQ(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),t$(h,a?l:t5.filterUserAttributes(l)),e.style&&tq(h,e.style),n&&h.appendChild(n),t(e.children||[],h),o=h}else tZ(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t2?t2.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=t_("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t5.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t5.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t5.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t5.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t5.emptyHTML=t3,t5.bypassHTMLFiltering=!1;let{defaultOptions:t6,defaultTime:t9}=tw,{doc:t4}=O,{extend:t8,getNestedProperty:t7,isArray:et,isNumber:ee,isObject:ei,pick:es,ucfirst:eo}=tt,er={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!et(t)&&t.map((i,s)=>ea(e.body,t8(ei(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:eo,unless:t=>!t},en={};function ea(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu,r=[],n=/f$/,a=/\.(\d)/,h=i?.options.lang||t6.lang,l=i&&i.time||t9,d=i&&i.numberFormatter||eh,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:/^["'].+["']$/.test(t)?t.slice(1,-1):t7(t,e))},p,u,g=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),u&&u.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let n=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");er[n]&&(u.isBlock&&n===u.fn&&g++,u.fn||(u.fn=n));let a="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||a)){if(g)!a&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],a||(r.push(u),u=void 0)}}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let o,r;let{body:p,elseBody:u,expression:g,fn:m}=s;if(m){let t=[s],n=[],a=g.length,h=0,l;for(r=0;r<=a;r++){let t=g.charAt(r);l||'"'!==t&&"'"!==t?l===t&&(l=""):l=t,l||" "!==t&&r!==a||(n.push(g.substr(h,r-h)),h=r+1)}for(r=er[m].length;r--;)t.unshift(c(n[r+1]));o=er[m].apply(e,t),s.isBlock&&"boolean"==typeof o&&(o=ea(o?p:u,e,i))}else{let t=g.split(":");if(o=c(t.shift()||""),t.length&&"number"==typeof o){let e=t.join(":");if(n.test(e)){let t=parseInt((e.match(a)||["","-1"])[1],10);null!==o&&(o=d(o,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else o=l.dateFormat(e,o),f&&(o=`"${o}"`)}}t=t.replace(s.find,es(o,""))}),f?ea(t,e,i):t}function eh(t,e,i,s){e=+e;let o,r,[n,a]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||t6.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):ee(e)?e&&a<0&&((r=e+a)>=0?(n=+n.toExponential(r).split("e")[0],e=r):(n=Math.floor(n),t=e<20?+(n*Math.pow(10,a)).toFixed(e):0,a=0)):e=2,a&&(e??(e=2),t=n),ee(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||h.locale||t4.body.closest("[lang]")?.lang,g=JSON.stringify(c)+u;return o=(en[g]??(en[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(a<0)||d)||(o="0"),a&&0!=+o&&(o+="e"+(a<0?"":"+")+a),o}let el={dateFormat:function(t,e,i){return t9.dateFormat(t,e,i)},format:ea,helpers:er,numberFormat:eh};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,O.Renderer=s)}}(n||(n={}));let ed=n,{clamp:ec,pick:ep,pushUnique:eu,stableSort:eg}=tt;(a||(a={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,n=(t,e)=>t.target-e.target,a=[],h=e.length,l=[],d=a.push,c,p,u,g=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(eg(e,(t,e)=>(e.rank||0)-(t.rank||0)),u=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?u:h-1;u&&x>r;)f=e[c=Math.floor(p)],eu(l,c)&&(x-=f.size),p+=u,y&&p>=e.length&&(u/=2,p=u);l.sort((t,e)=>e-t).forEach(t=>d.apply(a,e.splice(t,1)))}for(eg(e,n),e=e.map(t=>({size:t.size,targets:[t.target],align:ep(t.align,.5)}));g;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=ec(m-f.size*f.align,0,i-f.size);for(c=e.length,g=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),g=!0)}return d.apply(o,a),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),eg(o,n),o};let ef=a,{animate:em,animObject:ex,stop:ey}=tj,{deg2rad:eb,doc:ev,svg:eM,SVG_NS:ek,win:ew,isFirefox:eS}=O,{addEvent:eA,attr:eT,createElement:eP,crisp:eC,css:eO,defined:eE,erase:eL,extend:eB,fireEvent:eI,getAlignFactor:eD,isArray:eR,isFunction:eN,isNumber:ez,isObject:eW,isString:eG,merge:eH,objectEach:eF,pick:eX,pInt:eY,pushUnique:ej,replaceNested:eU,syncTimeout:eV,uniqueKey:e$}=tt;class e_{_defaultGetter(t){let e=eX(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={},r=this.renderer,n=r.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||eG(i)?i||"renderer":void 0;h&&(a&&ej(n,this),i=void 0);let l=eX(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eD(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eD(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=ex(eX(e,this.renderer.globalAnimation,!0)),o=s.defer;return ev.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eV(()=>{this.element&&em(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eF(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&O.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=ev.createElementNS(ek,"tspan");eT(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let n=ev.createElementNS(ek,"tspan");n.textContent="​",eT(n,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(n),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=e_.symbolCustomAttribs,n,a,h=this,l;return"string"==typeof t&&void 0!==e&&(n=t,(t={})[n]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eF(t,function(e,i){l=!1,s||ey(this,i),this.symbolName&&-1!==r.indexOf(i)&&(a||(this.symbolAttr(t),a=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=e$()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eB(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,n=eC(i,e),a=eC(s,e);return eB(t,{x:n,y:a,width:eC(o,e)-n,height:eC(r,e)-a}),eE(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,n,a,h,l,d,c,p,u,g=[],f;eI(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(n=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eR(n)&&(t[r]=n={x1:n[0],y1:n[1],x2:n[2],y2:n[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eE(n.gradientUnits)&&(a=n,n=eH(n,s.getRadialAttr(p,a),{gradientUnits:"userSpaceOnUse"})),eF(n,function(t,e){"id"!==e&&g.push(e,t)}),eF(l,function(t){g.push(t)}),h[g=g.join(",")])u=h[g].attr("id");else{n.id=u=e$();let t=h[g]=s.createElement(r).attr(n).add(s.defs);t.radAttr=a,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tC.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+u+")",i.setAttribute(e,f),i.gradient=g,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eF(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eB(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eY(t.width)),eB(this.styles,t),o&&!eM&&this.renderer.forExport&&delete t.width;let r=eS&&t.fontSize||null;r&&(ez(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let n=eH(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>n&&delete n[t]),n.color&&(n.fill=n.color)),eO(s,n)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eY(s[e])*eX(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,n;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ey(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(n=0;ne&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:n,element:a,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,u=a.namespaceURI===this.SVG_NS,g=eX(e,this.rotation,0),f=h.styledMode?a&&e_.prototype.getStyle.call(a,"font-size"):l.fontSize;if(eE(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,g,this.textWidth,n,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||h.forExport){try{o=this.fakeTS&&function(t){let e=a.querySelector(".highcharts-text-outline");e&&eO(e,{display:t})},eN(o)&&o("none"),i=a.getBBox?eB({},a.getBBox()):{width:a.offsetWidth,height:a.offsetHeight,x:0,y:0},eN(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};eI(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:n,translateY:a,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eD(n),c=Number(this.element.getAttribute("y")||0)-(a?0:s),p=e*eb,u=(e-90)*eb,g=Math.cos(p),f=Math.sin(p),m=o*g,x=o*f,y=Math.cos(u),b=Math.sin(u),[[v,M],[k,w]]=[h,l].map(t=>[t-t*g,t*f]),S=i+d*(o-m)+v+w+c*y,A=S+m,T=A-r*y,P=T-m,C=s+c-d*x-M+k+c*b,O=C+x,E=O-r*b,L=E-x,B=Math.min(S,A,T,P),I=Math.min(C,O,E,L),D=Math.max(S,A,T,P)-B,R=Math.max(C,O,E,L)-I;return{x:B,y:I,width:D,height:R,polygon:[[S,C],[A,O],[T,E],[P,L]]}}getStyle(t){return ew.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=ek,this.element="span"===e||"body"===e?eP(e):ev.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eI(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eA(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eG(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eH(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eW(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eY(t):""!==t&&(eT(i=ev.createElementNS(ek,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;e_.symbolCustomAttribs.forEach(function(i){e[i]=eX(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||ev.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eU(eX(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:n,scaleY:a,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];eE(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+eX(o,e.getAttribute("x"),0)+" "+eX(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eE(n)||eE(a))&&d.push("scale("+eX(n,1)+" "+eX(a,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,n=o===i.box,a,h,l,d=!1,c,p=this.added,u;if(eE(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eE(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(a=o.childNodes).length-1;u>=0&&!d;u--)c=!eE(l=(h=a[u]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!n&&!u?(o.insertBefore(r,a[u]),d=!0):(eY(l)<=t||c&&(!eE(t)||t>=0))&&(o.insertBefore(r,a[u+1]),d=!0));d||(o.insertBefore(r,a[n?3:0]),d=!0)}return d}}e_.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],e_.prototype.strokeSetter=e_.prototype.fillSetter,e_.prototype.yGetter=e_.prototype.xGetter,e_.prototype.matrixSetter=e_.prototype.rotationOriginXSetter=e_.prototype.rotationOriginYSetter=e_.prototype.rotationSetter=e_.prototype.scaleXSetter=e_.prototype.scaleYSetter=e_.prototype.translateXSetter=e_.prototype.translateYSetter=e_.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eq=e_,{defined:eZ,extend:eK,getAlignFactor:eJ,isNumber:eQ,merge:e0,pick:e1,removeEvent:e2}=tt;class e3 extends eq{constructor(t,e,i,s,o,r,n,a,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=n,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,a).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e3.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=eJ(t);e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&eQ(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e0(t),e3.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eq.prototype.css.call(this,t)}destroy(){e2(this.element,"mouseenter"),e2(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eq.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:n=0}=this,a=e1(this.paddingLeft,i),h=e??(this.rotation||0),l={width:n,height:s,x:o+this.bBox.x-a,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:e1(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&eZ(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){eQ(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!eQ(this.widthSetting)||!eQ(this.heightSetting)||this.textAlign)&&eZ(e.textStr)?e.getBBox(void 0,0):e3.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(eK(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text;if(!t.textPath){this.updateBoxSize();let e=this.baseline?0:this.baselineOffset,i=(this.paddingLeft??this.padding)+(eZ(this.widthSetting)&&this.bBox?eJ(this.textAlign)*(this.widthSetting-this.bBox.width):0);(i!==t.x||e!==t.y)&&(t.attr("x",i),t.hasBoxWidthChanged&&(this.bBox=t.getBBox(!0)),void 0!==e&&t.attr("y",e)),t.x=i,t.y=e}}widthSetter(t){this.widthSetting=eQ(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=e1(this.paddingLeft,t),i=e1(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}e3.emptyBBox={width:0,height:0,x:0,y:0},e3.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e5,isNumber:e6,pick:e9}=tt;function e4(t,e,i,s,o){let r=[];if(o){let n=o.start||0,a=e9(o.r,i),h=e9(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(a,1)),d=Math.abs((o.end||0)-n-2*Math.PI)0&&h0)return l;if(t+a>i-n){if(h>e+n&&he+n&&h0){let i=hs&&an&&l.splice(1,1,["L",a-6,e],["L",a,e-6],["L",a+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return e4(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:e8,roundedRect:e7,square:e8,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:ie,SVG_NS:ii,win:is}=O,{attr:io,extend:ir,fireEvent:ia,isString:ih,objectEach:il,pick:id}=tt,ic=(t,e)=>t.substring(0,e)+"…",ip=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=id(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,n=!t.added&&i.box,a=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(a!==t.textCache){t.textCache=a,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){n&&n.appendChild(e);let i=new t5(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),n&&n.removeChild(e)}}else e.appendChild(ie.createTextNode(this.unescapeEntities(s)));ih(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=io(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),io(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",n=r.replace(/([^\^])-/g,"$1- ").split(" "),a=!this.noWrap&&(n.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(a){let r=[],a=[];for(;o.firstChild&&o.firstChild!==t;)a.push(o.firstChild),o.removeChild(o.firstChild);for(;n.length;)if(n.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=n.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,n,0===d&&c||0,s,l,(t,e)=>n.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){n.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,ic),t.textContent=t.textContent?.replace("…","")+"…");break}a.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(ie.createTextNode(e),t);let s=ie.createElementNS(ii,"tspan");s.textContent="​",io(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,ic)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===is.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===is.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:n={},tagName:a}=i,h=this.renderer.styledMode;if("b"===a||"strong"===a?h?o.class="highcharts-strong":n.fontWeight="bold":("i"===a||"em"===a)&&(h?o.class="highcharts-emphasized":n.fontStyle="italic"),n&&n.color&&(n.fill=n.color),"br"===a){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===a&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==a&&"a"!==a&&(i.tagName="tspan"),ir(i,{attributes:o,style:n}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),ia(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,n){let a,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let f=function(e,o){let r=o||e,n=t.parentNode;if(n&&void 0===c[r]&&n.getSubStringLength)try{c[r]=s+n.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(a=n(i,g)),h=f(g,a&&a.length-1),p===u?p=u+1:h>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=a||n(e||i,g)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,ic)}i&&i.splice(0,g),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return il(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:iu}=tw,{charts:ig,deg2rad:im,doc:ix,isFirefox:iy,isMS:ib,isWebKit:iv,noop:iM,SVG_NS:ik,symbolSizes:iw,win:iS}=O,{addEvent:iA,attr:iT,createElement:iP,crisp:iC,css:iO,defined:iE,destroyObjectProperties:iL,extend:iB,isArray:iI,isNumber:iD,isObject:iR,isString:iN,merge:iz,pick:iW,pInt:iG,replaceNested:iH,uniqueKey:iF}=tt;class iX{constructor(t,e,i,s,o,r,n){let a,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;n||l.css(this.getStyle(s||{})),t.appendChild(d),iT(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iT(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ix.createTextNode("Created with Highcharts 12.0.2")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=n,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),iy&&t.getBoundingClientRect&&((a=function(){iO(t,{left:0,top:0}),h=t.getBoundingClientRect(),iO(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=iA(iS,"resize",a))}definition(t){return new t5([t]).addToDOM(this.defs.element)}getReferenceURL(){if((iy||iv)&&ix.getElementsByTagName("base").length){if(!iE(e)){let t=iF(),i=new t5([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ix.body);iO(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ix.elementFromPoint(6,6);e="hitme"===(s&&s.id),ix.body.removeChild(i)}if(e)return iH(iS.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iB({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iL(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iz({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ip(t).buildSVG()}getContrast(t){let e=tC.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,n,a,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=iz(iu.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t5.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iz(m[0],t5.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),iA(d.element,ib?"mouseover":"mouseenter",function(){3!==u&&d.setState(1)}),iA(d.element,ib?"mouseout":"mouseleave",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iR(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iB({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==u&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iE(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iC(i[1],e)),iE(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iC(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iI(t)?e.d=t:iR(t)&&iB(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iR(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let n;iR(t)?(e=(n=t).y,i=n.r,s=n.innerR,o=n.start,r=n.end,t=n.x):n={innerR:s,start:o,end:r};let a=this.symbol("arc",t,e,i,i,n);return a.r=i,a}rect(t,e,i,s,o,r){let n=iR(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},a=this.createElement("rect");return this.styledMode||(void 0!==r&&(n["stroke-width"]=r,iB(n,a.crisp(n))),n.fill="none"),a.rSetter=function(t,e,i){a.r=t,iT(i,{rx:t,ry:t})},a.rGetter=function(){return a.r||0},a.attr(n)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iW(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let n={preserveAspectRatio:"none"};iD(e)&&(n.x=e),iD(i)&&(n.y=i),iD(s)&&(n.width=s),iD(o)&&(n.height=o);let a=this.createElement("image").attr(n),h=function(e){a.attr({href:t}),r.call(a,e)};if(r){a.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iS.Image;iA(e,"load",h),e.src=t,e.complete&&h({})}else a.attr({href:t});return a}symbol(t,e,i,s,o,r){let n,a,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(a=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),n=this.path(a),d.styledMode||n.attr("fill","none"),iB(n,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&iB(n,r);else if(p){h=t.match(c)[1];let s=n=this.image(h);s.imgwidth=iW(r&&r.width,iw[h]&&iw[h].width),s.imgheight=iW(r&&r.height,iw[h]&&iw[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:n,imgwidth:a,imgheight:h}=this,l="width"===e?a:h,d=1;r&&"within"===r.backgroundSize&&o&&n&&a&&h?(d=Math.min(o/a,n/h),iT(s,{width:Math.round(a*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&a&&h&&this.translate(((o||0)-a*d)/2,((n||0)-h*d)/2)}}),iE(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iE(s.imgwidth)&&iE(s.imgheight)?l(s):(s.attr({width:0,height:0}),iP("img",{onload:function(){let t=ig[d.chartIndex];0===this.width&&(iO(this,{position:"absolute",top:"-999em"}),ix.body.appendChild(this)),iw[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return n}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iE(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iB(iX.prototype,{Element:eq,SVG_NS:ik,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:it,draw:iM}),ed.registerRendererType("svg",iX,!0);let{composed:iY}=O,{attr:ij,css:iU,createElement:iV,defined:i$,extend:i_,getAlignFactor:iq,isNumber:iZ,pInt:iK,pushUnique:iJ}=tt;function iQ(t,e,i){let s=this.div?.style||i.style;eq.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i0=(t,e)=>{if(!t.div){let i=ij(t.element,"class"),s=t.css,o=iV("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=iQ,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eq.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class i1 extends eq{static compose(t){iJ(iY,this.compose)&&(t.prototype.html=function(t,e,i){return new i1(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=iK(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),iZ(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),i_(this.styles,t),iU(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:n,styles:a,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,{display:g="block",whiteSpace:f}=a;if(iU(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let a=[i,h,t.innerHTML,l,this.textAlign].join(","),d=-(this.parentGroup?.padding*1)||0,c,m=!1;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iU(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iU(t,{width:e>s||i||r?l+"px":"auto",display:g,whiteSpace:f||"normal"}),this.oldTextWidth=l,m=!0)}this.hasBoxWidthChanged=m,a!==this.cTT&&(c=e.fontMetrics(t).b,i$(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,d,d),this.getSpanCorrection(!i$(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,c,iq(h)));let{xCorr:x=0,yCorr:y=0}=this,b={left:`${p+x}px`,top:`${u+y}px`,textAlign:h,transformOrigin:`${(s??p)-x-p-d}px ${(o??u)-y-u-d}px`};(r||n)&&(b.transform=`scale(${r??1},${n??1})`),iU(t,b),this.cTT=a,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){iU(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=i0(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t5.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i2=i1.prototype;i2.visibilitySetter=i2.opacitySetter=iQ,i2.ySetter=i2.rotationSetter=i2.rotationOriginXSetter=i2.rotationOriginYSetter=i2.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(h||(h={}));let i3=h,{addEvent:i5,isFunction:i6,objectEach:i9,removeEvent:i4}=tt;(l||(l={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i9(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i4(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i6(e)&&(t.eventOptions[i]=e,i5(t,i,e,{order:0})))})};let i8=l,{deg2rad:i7}=O,{clamp:st,correctFloat:se,defined:si,destroyObjectProperties:ss,extend:so,fireEvent:sr,getAlignFactor:sn,isNumber:sa,merge:sh,objectEach:sl,pick:sd}=tt,sc=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,sr(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,n=e.names,a=t.pos,h=sd(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=a===l[0],c=a===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,u=l.info,g=t.label,f,m,x,y=this.parameters.category||(o?sd(o[a],n[a],a):a);r&&sa(y)&&(y=se(r.lin2log(y))),e.dateTime&&(u?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&u.higherRanks[a]||u.unitName])).main:sa(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:a,tick:t,tickPositionInfo:u,value:y};sr(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),el.format(h.format,t,s)):e.defaultLabelFormatter.call(t),M=v.call(b,b),k=m&&m.list;k?t.shortenLabel=function(){for(x=0;x0&&s+d*c>a&&(x=Math.round((o-s)/Math.cos(l*i7))):(f=s-d*c,m=s+(1-d)*c,fa&&(u=a-t.x+u*d,g=-1),(u=Math.min(p,u))u||e.autoRotation&&(h.styles||{}).width)&&(x=u)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(so({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,n;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sl(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(n=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,n),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,n=sd(this.tickmarkOffset,s.tickmarkOffset),a=this.getPosition(o,r,n,e),h=a.x,l=a.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(se(p)c)&&(i=0);let u=sd(i,this.label&&this.label.newOpacity,1);i=sd(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(a,i),this.renderLabel(a,e,u,t),this.isNew=!1,sr(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,n=this.type,a=sd(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),n||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(n?n+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+a,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,n=i.tickSize(r?r+"Tick":"tick"),a=t.x,h=t.y,l=sd(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;n&&(i.opposite&&(n[0]=-n[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(a,h,n[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,n=o.options,a=this.label,h=n.labels,l=h.step,d=sd(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;a&&sa(c)&&(a.xy=t=this.getLabelPosition(c,p,a,r,h,d,s,l),(!this.isFirst||this.isLast||n.showFirstLabel)&&(!this.isLast||this.isFirst||n.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):u=!1,l&&s%l&&(u=!1),u&&sa(t.y)?(t.opacity=i,a[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(a.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sp}=tj,{xAxis:su,yAxis:sg}=i3,{defaultOptions:sf}=tw,{registerEventOptions:sm}=i8,{deg2rad:sx}=O,{arrayMax:sy,arrayMin:sb,clamp:sv,correctFloat:sM,defined:sk,destroyObjectProperties:sw,erase:sS,error:sA,extend:sT,fireEvent:sP,getClosestDistance:sC,insertItem:sO,isArray:sE,isNumber:sL,isString:sB,merge:sI,normalizeTickInterval:sD,objectEach:sR,pick:sN,relativeLength:sz,removeEvent:sW,splat:sG,syncTimeout:sH}=tt,sF=(t,e)=>sD(e,void 0,void 0,sN(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sT(sf,{xAxis:su,yAxis:sI(su,sg)});class sX{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sP(this,"init",{userOptions:e}),this.opposite=sN(e.opposite,this.opposite),this.side=sN(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,n=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sP(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sN(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sE(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sk(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let a=sN(r.crosshair,sG(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===a?{}:a,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sO(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sk(this.reversed)&&(this.reversed=!0),this.labelRotation=sL(n.rotation)?n.rotation:void 0,sm(this,r),sP(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sI(e,sf[this.coll],t),sP(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sL(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,n=sf.lang,a=n.numericSymbols,h=n.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=a&&a.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&a&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==a[d]&&0!==i&&(p=e(i/c,-1)+a[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sP(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,n,a;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,n=(t=i.getXExtremes(o)).min,a=t.max,sL(n)||n instanceof Date||(o=o.filter(sL),n=(t=i.getXExtremes(o)).min,a=t.max),o.length&&(e.dataMin=Math.min(sN(e.dataMin,n),n),e.dataMax=Math.max(sN(e.dataMax,a),a)));else{let t=i.applyExtremes();sL(t.dataMin)&&(n=t.dataMin,e.dataMin=Math.min(sN(e.dataMin,n),n)),sL(t.dataMax)&&(a=t.dataMax,e.dataMax=Math.max(sN(e.dataMax,a),a)),sk(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sP(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let n=this.linkedParent||this,a=s&&n.old?n.old.min:n.min;if(!sL(a))return NaN;let h=n.minPixelPadding,l=(n.isOrdinal||n.brokenAxis?.hasBreaks||n.logarithmic&&o)&&n.lin2val,d=1,c=0,p=s&&n.old?n.old.transA:n.transA,u=0;return p||(p=n.transA),i&&(d*=-1,c=n.len),n.reversed&&(d*=-1,c-=d*(n.sector||n.len)),e?(u=(t=t*d+c-h)/p+a,l&&(u=n.lin2val(u))):(l&&(t=n.val2lin(t)),u=d*(t-a)*p+c+d*h+(sL(r)?p*r:0),n.isRadial||(u=sM(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,n=t.value,a=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sv(t,e,i):x=!0),t}let b={value:n,lineWidth:a,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sP(this,"getPlotLinePath",b,function(t){u=f=(c=sv(c=sN(c,e.translate(n,void 0,void 0,r)),-1e9,1e9))+d,g=m=h-c-d,sL(c)?e.horiz?(g=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=f=y(u,s,s+e.width)):(u=s,f=l-e.right+(i.scrollablePixelsX||0),g=m=y(g,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",f,m]],a||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let n=sM(Math.floor(e/t)*t),a=sM(Math.ceil(i/t)*t),h=[];if(sM(n+t)===n&&(r=20),this.single)return[e];for(s=n;s<=a&&(h.push(s),(s=sM(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sN(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,n=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,a=[],h;if(n&&n/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sL(s)&&sL(o)&&sL(r)&&s-o=r,n=(r-s+o)/2,h=[o-n,i.parse(t.min)??o-n],a&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sy(h))+r,i.parse(t.max)??o+r],a&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sb(l))-ot-e),t=sC([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sE(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sk(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sN(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sL(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,n,a=0,h=0,l,d=t.transA;(o||s||r)&&(n=t.getClosest(),i?(a=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sN(e.options.pointRange,n,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;a=Math.max(a,t&&sB(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&n?t.ordinal.slope/n:1,t.minPointOffset=a*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&n&&(t.closestPointRange=n)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*a,sP(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sL(t)&&sL(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:n,logarithmic:a,options:h,softThreshold:l}=this,d=i.time,c=sL(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:f,softMax:m,softMin:x}=h,y=sL(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,M=h.minPadding,k=0,w,S=sL(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,A,T,P,C;if(r||e||y||this.getTickAmount(),P=sN(this.userMin,d.parse(h.min)),C=sN(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,w=y.getExtremes(),this.min=sN(w.min,w.dataMin),this.max=sN(w.max,w.dataMax),this.type!==y.type&&sA(11,!0,i)):(l&&sk(c)&&sL(s)&&sL(o)&&(o>=c?(A=c,M=0):s<=c&&(T=c,v=0)),this.min=sN(P,A,o),this.max=sN(C,T,s)),sL(this.max)&&sL(this.min)&&(a&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sN(o,this.min))&&sA(10,!0,i),this.min=sM(a.log2lin(this.min),16),this.max=sM(a.log2lin(this.max),16)),this.range&&sL(o)&&(this.userMin=this.min=P=Math.max(o,this.minFromRange()||0),this.userMax=C=this.max,this.range=void 0)),sP(this,"foundExtremes"),this.adjustForMinRange(),sL(this.min)&&sL(this.max)){if(!sL(this.userMin)&&sL(x)&&xthis.max&&(this.max=C=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(k=this.max-this.min)||(!sk(P)&&M&&(this.min-=k*M),sk(C)||!v||(this.max+=k*v)),!sL(this.userMin)&&sL(g)&&(this.min=Math.max(this.min,g)),!sL(this.userMax)&&sL(u)&&(this.max=Math.min(this.max,u)),l&&sL(o)&&sL(s)){let t=c||0;!sk(P)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sk(C)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sk(h.min)?this.max=this.min:sk(h.max)&&(this.min=this.max)),k=this.max-this.min}if(this.min!==this.max&&sL(this.min)&&sL(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sN(S,this.tickAmount?k/Math.max(this.tickAmount-1,1):void 0,e?1:k*b/Math.max(this.len,b)):this.tickInterval=1,n&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sP(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sP(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let O=sN(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))a=[this.min,this.max],sA(19,!1,this.chart);else if(this.dateTime)a=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)a=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(a=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&a.length>this.tickAmount)this.tickInterval=sF(this,e*=1.1);else break}a.length>this.len&&(a=[a[0],a[a.length-1]])[0]===a[1]&&(a.length=1),i&&(this.tickPositions=a,(h=i.apply(this,[this.min,this.max]))&&(a=h))}this.tickPositions=a,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=a.slice(0),this.trimTicks(a,r,n),!this.isLinked&&sL(this.min)&&sL(this.max)&&(this.single&&a.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sP(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sP(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:n}=i;n.length&&n.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&n){s.forEach(t=>{let i=t.getThresholdAlignment(e);sL(i)&&a.push(i)});let t=a.length>1?a.reduce((t,e)=>t+=e,0)/a.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sL(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sL(this.threshold)){let t=sv((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sk(t.tickInterval)||i||!(this.lenr.push(sM(r[r.length-1]+p)),f=()=>r.unshift(sM(r[0]-p));if(sL(a)&&(u=a<.5?Math.ceil(a*(n-1)):Math.floor(a*(n-1)),o.reversed&&(u=n-1-u)),t.hasData()&&sL(s)&&sL(i)){let a=()=>{t.transA*=(h-1)/(n-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sL(u)&&sL(t.threshold)){for(;r[u]!==l||r.length!==n||r[0]>s||r[r.length-1]t.threshold?f():g();if(p>8*t.tickInterval)break;p*=2}a()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sP(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sP(this,"setExtremes",o=sT(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sz(sN(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sz(sN(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),n=this.top=Math.round(sz(sN(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),a=this.left=Math.round(sz(sN(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-n,this.right=t.chartWidth-o-a,this.len=Math.max(s?o:r,0),this.pos=s?a:n}getExtremes(){let t=this.logarithmic;return{min:t?sM(t.lin2log(this.min)):this.min,max:t?sM(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sN(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sP(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,n=sM(.8*this.labelMetrics().h),a=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>a&&t!==1/0&&o!==1/0&&a&&(i=Math.ceil(a/s)),sM(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sL(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(n/Math.sin(sx*i))))+Math.abs(i/360))g&&(g=i)}),this.maxLabelLength=g,this.autoRotation?g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0:a&&(p=h),l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,n={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sT(n,{width:`${p}px`,lineClamp:u})):!i.styles.width||n.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sk(this.min)&&sk(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,n=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),n||this.axisTitle.css(sI(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),n||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sc(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,n)=>o.g(e).attr({zIndex:n}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:n,coll:a}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sL(s.crossing),u=e.axisOffset,g=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,M,k;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(n.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sN(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&n.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sR(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sk(y=d.offset)?0:sN(d.margin,i?5:10))),t.renderLine(),t.offset=f*sN(s.offset,u[o]?u[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},k=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,M=Math.abs(v)+b,v&&(M-=k,M+=f*(i?sN(c.y,t.tickRotCorr.y+f*c.distance):sN(c.x,f*c.distance))),t.axisTitleMargin=sN(y,M),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,n)),"colorAxis"!==a&&g){let e=this.tickSize("tick");u[o]=Math.max(u[o],(t.axisTitleMargin||0)+x+f*t.offset,M,n&&n.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[h]=Math.max(g[h],i)}sP(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,n=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?n:this.top],["L",o?e.chartWidth-this.right:r,o?n:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,n=e?i:s,a=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:n+(e?0:o),middle:n+o/2,high:n+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(a?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?u+l:g+(a?this.width:0)+h+l,y:e?g+d-(a?this.height:0)+h:u+d};return sP(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sc(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new sc(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,n=i.options,a=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=n.stackLabels,g=n.alternateGridColor,f=n.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sp(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sR(t,function(t){t.isActive=!1})}),sL(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||a){let r=i.chart.hasRendered&&i.old&&sL(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sc(i,-1,null,!0)),d[-1].render(-1))),g&&h.forEach(function(r,n){e=void 0!==h[n+1]?h[n+1]+m:i.max-m,n%2==0&&r=.5)t=Math.round(t),a=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,n,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&a.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():n.tickInterval,c=n.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sq(t=sZ("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),a=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),a}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(c||(c={}));let sK=c,{erase:sJ,extend:sQ,isNumber:s0}=tt;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,n=!s0(this.min)||!s0(this.max)||tthis.max&&e>this.max,a=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(a&&s)for(n&&(d=a.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s1.compose(oi,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){s8(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:n=0}=e,{renderer:a,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),u=e.borderWidth,g=e.label,{label:f,svgElem:m}=this,x=[],y,b=s6(c)&&s6(d),v=s6(p),M=!m,k={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},w=b?"bands":"lines";if(!t.chart.styledMode&&(v?(k.stroke=o||"#999999",k["stroke-width"]=oe(e.width,1),e.dashStyle&&(k.dashstyle=e.dashStyle)):b&&(k.fill=o||"#e6e9ff",u&&(k.stroke=e.borderColor,k["stroke-width"]=u))),l.zIndex=n,w+="-"+n,(y=t.plotLinesAndBandsGroups[w])||(t.plotLinesAndBandsGroups[w]=y=a.g("plot-"+w).attr(l).add()),m||(this.svgElem=m=a.path().attr(k).add(y)),s6(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s6(c)&&s6(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(ot(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(M||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),g&&(s6(g.text)||s6(g.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(g=s7({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},g),this.renderLabel(g,x,b,n)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,n=t.inside,a=this.label;a||(this.label=a=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||a.css(s7({fontSize:"0.8em",textOverflow:i&&!n?"":"ellipsis"},t.style)),a.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s5(h),c=s5(l),p=s3(h)-d;a.align(t,!1,{x:d,y:c,width:p,height:s3(l)-c}),(!a.alignValue||"left"===a.alignValue||s6(n))&&a.css({width:(t.style?.width||(i&&n?p:90===a.rotation?o.height-(a.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(a.alignAttr.x-o.left)))+"px"}),a.show(!0)}getLabelText(t){return s6(t.formatter)?t.formatter.call(this):t.text}destroy(){s4(this.axis.plotLinesAndBands,this),delete this.axis,s9(this)}}let{animObject:os}=tj,{format:oo}=el,{composed:or,dateFormats:on,doc:oa,isSafari:oh}=O,{distribute:ol}=ef,{addEvent:od,clamp:oc,css:op,discardElement:ou,extend:og,fireEvent:of,isArray:om,isNumber:ox,isObject:oy,isString:ob,merge:ov,pick:oM,pushUnique:ok,splat:ow,syncTimeout:oS}=tt;class oA{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||ow(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),ou(this.container)),tt.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,n=s.plotTop,a=s.plotLeft;if((t=ow(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-a,e.chartY-n];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-a,o-n]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+oM(t.colorIndex,o.colorIndex),r&&r.className].filter(ob).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,n=this.container,a=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=ed.getRendererType();this.container=n=O.doc.createElement("div"),n.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),op(n,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=a=new i(n,0,0,e,void 0,void 0,a.styledMode)}if(r?this.label=a.g("tooltip"):(this.label=a.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,n&&(n.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return n&&!n.parentElement&&O.doc.body.appendChild(n),this.label}getPlayingField(){let{body:t,documentElement:e}=oa,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:n}=this,{inverted:a,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=a&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=n.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let n="x"===i;return[i,n?m:f,n?t:e].concat(r?[n?y(t):b(e),n?x.left-s+y(c+h):x.top-s+b(p+l),0,n?m:f]:[n?t:e,n?c+h:p+l,n?h:l,n?h+o.plotWidth:l+o.plotHeight])},M=v("y"),k=v("x"),w,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let A=!this.followPointer&&oM(i.ttBelow,!d&&!a===S),T=function(t,e,i,o,n,a,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+g)}},P=function(t,e,i,o,r){if(re-s)return!1;re-o/2?u[t]=e-o-2:u[t]=r-i/2},C=function(t){[M,k]=[k,M],w=t},O=()=>{!1!==T.apply(0,M)?!1!==P.apply(0,k)||w||(C(!0),O()):w?u.x=u.y=0:(C(!0),O())};return(a&&!d||this.len>1)&&C(),O(),u}hide(t){let e=this;tt.clearTimeout(this.hideTimer),t=oM(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oS(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=oM(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=os(!o.isHidden&&o.options.animation),n=o.followPointer||(o.len||0)>1,a={x:t,y:e};n||(a.anchorX=i,a.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(a,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,n=ow(t),a=n[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!a.series)return;tt.clearTimeout(this.hideTimer),this.allowShared=!(!om(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&a.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(n),n.forEach(t=>t.setState("hover")),a.points=n),this.len=n.length;let f=ob(h)?oo(h,a,i):l.call(a,this);a.points=void 0;let m=a.series;if(this.distance=oM(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,n);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||n.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(a),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:oc(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||a.color||m.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:a.negative,ttBelow:a.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}of(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:n,plotLeft:a,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{positioner:g},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?oa.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,M=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:k,top:w}=f.getChartPosition(),S=h+x,A=0,T=n-l;function P(t,e,s,o,r=!0){let n,a;return s?(n=M?0:T,a=oc(t-o/2,y.left,y.right-o-(i.outside?k:0))):(n=e-S,a=oc(a=r?t-o-p:t+p,r?a:y.left,y.right)),{x:a,y:n}}ob(t)&&(t=[!1,t]);let C=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:n,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:n}=e;if(!o){let t={padding:u.padding,r:u.borderRadius};c||(t.fill=u.backgroundColor,t["stroke-width"]=u.borderWidth??1),o=v.label("",0,0,u[r?"headerShape":"shape"],void 0,void 0,u.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(u.style).attr({stroke:u.borderColor||e.color||n.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(A=m.height,T+=A,M&&(S-=A));let{anchorX:k,anchorY:w}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(a+o,a),i=h+n/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+oc(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=oc(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof w){let e=m.height+1,s=g?g.call(i,x,e,r):P(k,w,l,x);t.push({align:g?0:void 0,anchorX:k,anchorY:w,boxWidth:x,point:r,rank:oM(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!g&&C.some(t=>{let{outside:e}=i,s=(e?k:0)+t.anchorX;return ss})&&(C=C.map(t=>{let{x:e,y:i}=P(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return og(t,{target:i,x:e})})),i.cleanSplit(),ol(C,T);let O={left:k,right:k};C.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&k+eO.right&&(O.right=k+e))}),C.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:n}}=t,a={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(n||(a.x=e+t,a.anchorX=s+t),n&&(a.x=(O.right-O.left)/2,a.anchorX=s+t))}t.tt.attr(a)});let{container:E,outside:L,renderer:B}=i;if(L&&E&&B){let{width:t,height:e,x:i,y:s}=b.getBBox();B.setSize(t+i,e+s,!1),E.style.left=O.left+"px",E.style.top=w+"px"}oh&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,n={isFooter:e,point:t},a=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return of(this,"headerFormatter",n,function(e){if(r&&!a&&ox(t.key)&&(a=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&a){if(oy(a)){let t=a;on[0]=e=>i.chart.time.dateFormat(t,e),a="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${a})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=oo(h,t,this.chart)}),n.text||""}update(t){this.destroy(),this.init(this.chart,ov(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:n}=this,{height:a=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),u=(o.positioner||this.getPosition).call(this,h,a,t),g=O.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;n&&i&&(o.positioner&&(u.x+=l-s,u.y+=d-s),x=(o.borderWidth||0)+2*s+2,n.setSize(oc(h+x,0,g.documentElement.clientWidth)-1,a+x,!1),(1!==c||1!==p)&&(op(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-u.x,m+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),f,m)}}!function(t){t.compose=function(e){ok(or,"Core.Tooltip")&&od(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oA||(oA={}));let oT=oA,{animObject:oP}=tj,{defaultOptions:oC}=tw,{format:oO}=el,{addEvent:oE,crisp:oL,erase:oB,extend:oI,fireEvent:oD,getNestedProperty:oR,isArray:oN,isFunction:oz,isNumber:oW,isObject:oG,merge:oH,pick:oF,syncTimeout:oX,removeEvent:oY,uniqueKey:oj}=tt;class oU{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oI({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oI(this,t=oU.prototype.optionsToObject.call(this,t)),this.options=this.options?oI(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oU.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oW(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oW(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oP(t.series.chart.renderer.globalAnimation),n=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oY(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oB(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oX(n,r.duration)):n(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oD(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oR(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oj()),this.resolveColor(),t.chart.pointCount++,oD(this,"afterInit")}isValid(){return(oW(this.x)||this.x instanceof Date)&&oW(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},n,a=0,h=0;if(oW(t)||null===t)r[s[0]]=t;else if(oN(t))for(!i&&t.length>o&&("string"==(n=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===n&&(r.x=t[0]),a++);h0?oU.prototype.setNestedProperty(r,t[a],s[h]):r[s[h]]=t[a]),a++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:n}=s,a=0,h=0;if(oW(i)&&oW(e))return t&&(a=r?r.pos:o.plotLeft,h=n?n.pos:o.plotTop),o.inverted&&r&&n?[n.len-e+h,r.len-i+a]:[i+a,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,n;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),n=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),n=t.colorIndex),this.colorIndex=oF(this.options.colorIndex,n),this.color=oF(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oG(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:n=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||n)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+n)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oO(t,this,e)}update(t,e,i,s){let o;let r=this,n=r.series,a=r.graphic,h=n.chart,l=n.options;function d(){r.applyOptions(t);let s=a&&r.hasMockGraphic,d=null===r.y?!s:s;a&&d&&(r.graphic=a.destroy(),delete r.hasMockGraphic),oG(t,!0)&&(a&&a.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=a.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of n.dataColumnKeys())c[t]=r[t];n.dataTable.setRow(c,o),l.data[o]=oG(l.data[o],!0)||oG(t,!0)?r.options:oF(t,l.data[o]),n.isDirty=n.isDirtyData=!0,!n.fixedBox&&n.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oF(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oF(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oH(this.series.options.point,this.options),i=e.events?.[t];oz(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oE(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oY(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oC.plotOptions[i.type].marker&&i.options.marker,n=r&&!1===r.enabled,a=r&&r.states&&r.states[t||"normal"]||{},h=!1===a.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||n&&!1===a.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),f=oF(d.options.chart.animation,o.animation);let e=g.opacity;i.options.inactiveOtherPoints&&oW(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(g,f)}u&&this.graphic.animate(u,oF(d.options.chart.animation,a.animation,r.animation)),m&&m.hide()}else t&&a&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),u&&(m?m[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,u.x,u.y,u.width,u.height,oH(r,a)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oF(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oI({fill:this.color||i.color,"fill-opacity":y.opacity},t5.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oD(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oL(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oV=oU,{parse:o$}=tC,{charts:o_,composed:oq,isTouchDevice:oZ}=O,{addEvent:oK,attr:oJ,css:oQ,extend:o0,find:o1,fireEvent:o2,isNumber:o3,isObject:o5,objectEach:o6,offset:o9,pick:o4,pushUnique:o8,splat:o7}=tt;class rt{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!O.chartCount&&(rt.unbindDocumentMouseUp.forEach(t=>t.unbind()),rt.unbindDocumentMouseUp.length=0,rt.unbindDocumentTouchEnd&&(rt.unbindDocumentTouchEnd=rt.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),o6(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o2(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:n}=this,{mouseDownX:a=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=n?1:o.plotHeight,r&&(s=t-a,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+a),n&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:n}=e.options.chart,a=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o5(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(ua+l&&(u=a+l),gh+d&&(g=h+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){f=e.isInsidePlot(i-a,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(u,g);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:n||o$("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o2(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o3(i.index)&&(this.selectionMarker=s.destroy())}i&&o3(i.index)&&(oQ(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o5(r,!0)&&r.series&&(!o5(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,n=t.plotY||0;return t.isNode&&o&&o3(o.x)&&o3(o.y)&&(r=o.x,n=o.y),e?{chartX:s.len+s.pos-n,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:n+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o9(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let n=[],a=function(t){return t.visible&&!(!o&&t.directTouch)&&o4(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o2(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||a)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):a(t)&&!t.noSharedTooltip})).forEach(function(t){let e=o1(t.points,function(t){return t.x===c.x&&!t.isNull});o5(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),n.push(e))}):n.push(c)),o2(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:n}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=oJ(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o2(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o4(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o0(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o2(i.series,"click",o0(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(o0(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o2(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),O.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=o_[o4(rt.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){o_[o4(rt.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),n=r.length,a=1===n&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===n&&o4(h?.options.followTouchMove,!0);n>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!a&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o2(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,n=i.tooltip,a=n&&n.shared?r:o;t&&a&&o7(a).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?n&&a&&o7(a).length&&(n.refresh(a),n.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),n&&n.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,n=!!r&&r.shared,a=e||s.hoverPoint,h=a&&a.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(a,h,o,l,n,t);a=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,u=n&&h&&!h.noSharedTooltip;if(a&&(i||a!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!a.series)return;s.hoverPoints=c,s.hoverPoint=a,a.firePointEvent("mouseOver",void 0,()=>{r&&a&&r.refresh(u?c:a,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oK(s.container.ownerDocument,"mousemove",t=>o_[rt.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o4((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=o1(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oK(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oK(t,"mouseleave",this.onContainerMouseLeave.bind(this))),rt.unbindDocumentMouseUp.some(t=>t.doc===e)||rt.unbindDocumentMouseUp.push({doc:e,unbind:oK(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oK(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oK(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oK(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),rt.unbindDocumentTouchEnd||(rt.unbindDocumentTouchEnd=oK(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oK(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oZ)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o4(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oK(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oK(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||oQ(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||oQ(i,{"touch-action":o4(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=O.charts[o4(rt.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(rt.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o4(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o4(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}rt.unbindDocumentMouseUp=[],function(t){t.compose=function(e){o8(oq,"Core.Pointer")&&oK(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(rt||(rt={}));let re=rt,{fireEvent:ri,isArray:rs,objectEach:ro,uniqueKey:rr}=tt,rn=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||rr(),this.modified=this,this.rowCount=0,this.versionTag=rr();let e=0;ro(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,ro(this.columns,e=>{rs(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;ro(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ri(this,"afterSetColumns"),this.versionTag=rr())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;ro(t,(t,n)=>{let a=o[n]||s?.addColumns!==!1&&Array(r);a&&(i?a.splice(e,0,t):a[e]=t,o[n]=a)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(ri(this,"afterSetRows"),this.versionTag=rr())}},{extend:ra,merge:rh,pick:rl}=tt;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:n=0,symbolWidth:a,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,u=n-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),g={},f,m=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"===r.linecap||(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),a)/2),a){let t=[["M",x,u],["L",a-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",a-x,n],["L",x,n]]})}if(m&&!1!==m.enabled&&a){let t=Math.min(rl(m.radius,d),d);0===l.indexOf("url")&&(m=rh(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,a/2-t,u-t,2*t,2*t,ra({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,n=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,n,o,rl(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(u||(u={}));let rd=u,{defaultOptions:rc}=tw,{extend:rp,extendClass:ru,merge:rg}=tt;!function(t){function e(e,i){let s=rc.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oV),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=O.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,n){let a=rc.plotOptions||{};if(s=s||"",a[i]=rg(a[s],o),delete t.seriesTypes[i],e(i,ru(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,n){class e extends oV{}rp(e.prototype,n),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(g||(g={}));let rf=g,{animObject:rm,setAnimation:rx}=tj,{defaultOptions:ry}=tw,{registerEventOptions:rb}=i8,{svg:rv,win:rM}=O,{seriesTypes:rk}=rf,{arrayMax:rw,arrayMin:rS,clamp:rA,correctFloat:rT,crisp:rP,defined:rC,destroyObjectProperties:rO,diffObjects:rE,erase:rL,error:rB,extend:rI,find:rD,fireEvent:rR,getClosestDistance:rN,getNestedProperty:rz,insertItem:rW,isArray:rG,isNumber:rH,isString:rF,merge:rX,objectEach:rY,pick:rj,removeEvent:rU,syncTimeout:rV}=tt;class r${constructor(){this.zoneAxis="y"}init(t,e){let i;rR(this,"init",{options:e}),this.dataTable??(this.dataTable=new rn);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rI(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rb(this,o);let n=o.events;(n&&n.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rj(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rW(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rR(this,"afterInit")}is(t){return rk[t]&&this instanceof rk[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rR(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rj(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rW(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rB(18,!0,s)})}),rR(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,n=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rj(this.pointInterval,i.pointInterval,1),o&&rH(t)&&(e*=t),s){let t=r.toParts(n);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-n}return o&&rH(t)?n+e:(this.xIncrement=n+e,n)}setDataSortingOptions(){let t=this.options;rI(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rC(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rX(t),n=i.styledMode,a={plotOptions:s,userOptions:r};rR(this,"setOptions",a);let h=a.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=ry.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=a.userOptions;let u=rX(h,s.series,p,r);this.tooltipOptions=rX(ry.tooltip,ry.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rj(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===h.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map(t=>({...t}));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},n||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&rC(g[g.length-1].value)&&g.push(n?{}:{color:this.color,fillColor:this.fillColor}),rR(this,"afterSetOptions",{options:u}),u}getName(){return rj(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,n=`${t}Index`,a=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rC(o=rj("color"===t?this.options.colorIndex:void 0,this[n]))?s=o:(r.series.length||(r[a]=0),s=r[a]%h,r[a]+=1),i&&(e=i[s])),void 0!==s&&(this[n]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||ry.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,n=t.x,a=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oV&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rD(a,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rH(n)&&(o=this.getColumn("x").indexOf(n,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rH(o)&&a[o]&&a[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],n=this.requireSorting,a=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rC(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rH(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,n&&(c=l+1)):o[l]&&(o[l].touched=!0),(!a||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!a||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=rw(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,n=this.options,a=this.chart,h=n.dataSorting,l=this.xAxis,d=n.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),u=this.pointValKey||"y",g=(this.pointArrayMap||[]).length,f=n.keys,m,x,y=0,b=1,v;a.options.chart.allowMutatingData||(n.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rX(!0,t));let M=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),a.options.chart.allowMutatingData&&!1!==s&&M&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&M>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,M-1,-1),o=t=>!!(rG(t)&&(f||rH(t[0])));if(rH(i)&&rH(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[u]:i})}else if(o(i)&&o(s)){if(g){let e=i.length===g?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=g;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[u]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rz(i,t),o=rz(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,n=o.cropThreshold,a=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,u,g,f,m=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,f=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!a&&(!n||l>n||e.forceCrop)&&(m[l-1]f?x=new rn:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,g,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rN([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rB(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rR(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},n,a,h=0,l=o;for(n=0;n=e){h=Math.max(0,n-1);break}for(a=n;ai){l=a+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rn({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,n=this.cropStart||0,a=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?n:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],u=this.dataColumnKeys(),g,f,m,x,y=this.data,b;if(!y&&!a){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&a&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,u=o||this.cropped||!i,g,f,m,x=0,y=0;for(i&&(x=(g=i.getExtremes()).min,y=g.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rH(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rS(d),dataMax:rw(d)};return rR(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),a.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rY(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rR(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,n,a;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||"markerGroup"],g=this.xAxis,f=rj(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,a.x,a.y,a.width,a.height,n?r:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(a),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,n={},a,h,l=rj(o.radius,s&&s.radius);e&&(a=s.states[e],l=rj((h=o.states&&o.states[e])&&h.radius,a&&a.radius,l&&l+(a&&a.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rH(l)&&d&&(i.crisp&&(d[0]=rP(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),n.x=d[0]-l,n.y=d[1]-l),l&&(n.width=n.height=2*l),n}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,n=t&&t.color,a=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,u=rj(o.lineWidth,i.lineWidth),g=1;return d=r||a||n||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},u=rj((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,u+rj(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":u,fill:c,opacity:g=rj(l.opacity,h.opacity,g)}}destroy(t){let e,i,s;let o=this,r=o.chart,n=/AppleWebKit\/533/.test(rM.navigator.userAgent),a=o.data||[];for(rR(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rL(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=a.length;e--;)(i=a[e])&&i.destroy&&i.destroy();for(let t of o.zones)rO(t,void 0,!0);tt.clearTimeout(o.animationTimeout),rY(o,function(t,e){t instanceof eq&&!t.survive&&t[n&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rL(r.series,o),r.orderItems("series"),rY(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:n,zoneAxis:a}=this,{inverted:h,renderer:l}=e,d=this[`${a}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rA(d.toPixels(rj(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===a&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:a,simpleClip:d}=e,p=0,u=0,f=r.len,y=n.len;c?(p=o,f=x):(u=o,y=x);let b=[["M",p,u],["L",f,u],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(g(v),t&&g(b)),a?(a.animate({d:v}),d?.animate({d:b})):(a=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(a),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],n=!r,a={visibility:i,zIndex:s||.1};return rC(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(a.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rC(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(a)[n?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rU(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rm(i.animation),r=t.visible?"inherit":"hidden",n=i.zIndex,a=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rR(this,"render"),t.plotGroup("group","series",r,n,a),t.markerGroup=t.plotGroup("markerGroup","markers",r,n,a),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rV(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rR(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rV(function(){e.kdTree=function t(i,s,o){let r,n;let a=i?.length;if(a)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[n=Math.floor(a/2)],left:t(i.slice(0,n),s+1,o),right:t(i.slice(n+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i){let s=this,[o,r]=this.kdAxisArray,n=e?"distX":"dist",a=(s.options.findNearestPointBy||"").indexOf("y")>-1?2:1,h=!!s.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,a,l){let d=i.point,c=s.kdAxisArray[a%l],p,u,g=d;!function(t,e){let i=t[o],s=e[o],n=rC(i)&&rC(s)?i-s:null,a=t[r],l=e[r],d=rC(a)&&rC(l)?a-l:0,c=h&&e.marker?.radius||0;e.dist=Math.sqrt((n&&n*n||0)+d*d)-c,e.distX=rC(n)?Math.abs(n)-c:Number.MAX_VALUE}(e,d);let f=(e[c]||0)-(d[c]||0)+(h&&d.marker?.radius||0),m=f<0?"left":"right",x=f<0?"right":"left";return i[m]&&(g=(p=t(e,i[m],a+1,l))[n]=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,n=o.renderer,a=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(rv?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=n.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*a)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rR(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,n;let a=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,u=a.data,g=this.getColumn("x");e=rj(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(n=g.length,this.requireSorting&&mm;)n--;d.setRow(f,n,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),u?.splice(n,0,t),(r||this.processedData)&&(this.data.splice(n,0,null),this.processData()),"point"===a.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,u,...Object.values(d.getColumns())].filter(rC).forEach(t=>{t.shift()}),d.rowCount-=1,rR(d,"afterDeleteRows"))),!1!==o&&rR(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:n,dataTable:a}=s,h=r[t],l=function(){[n?.length===r.length?n:void 0,r,s.options.data,...Object.values(a.getColumns())].filter(rC).forEach(e=>{e.splice(t,1)}),a.rowCount-=1,rR(a,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rx(i,o),e=rj(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function n(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rj(t,!0)&&r.redraw(e)}!1!==i?rR(o,"remove",null,n):n()}update(t,e){rR(this,"update",{options:t=rE(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,n=s.options.plotOptions,a=rk[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],u=t.type||o.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));u=u||r,g?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rI(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rX(o,{index:void 0===o.index?i.index:o.index,pointStart:n?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!g&&{data:i.options.data},t,h),g&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rk[u]){if(f=u!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rk[u].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in a)i[c]=void 0;rI(i,rk[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rB(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rR(this,"afterUpdate"),rj(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rj(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rC(r)?i!==o:i!==rj(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rR(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rR(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,n=s.states,a=rj(n[t||"normal"]&&n[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(n[t]&&!1===n[t].enabled)return;if(t&&(h=n[t].lineWidth||h+(n[t].lineWidthPlus||0),l=rj(n[t].opacity,l)),o&&!o.dashstyle&&rH(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},a);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},a)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let n=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[n]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rR(i,n),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rR(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rd[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}r$.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},r$.types=rf.seriesTypes,r$.registerType=rf.registerSeriesType,rI(r$.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oV,requireSorting:!0,sorted:!0}),rf.series=r$;let r_=r$,{animObject:rq,setAnimation:rZ}=tj,{registerEventOptions:rK}=i8,{composed:rJ,marginNames:rQ}=O,{distribute:r0}=ef,{format:r1}=el,{addEvent:r2,createElement:r3,css:r5,defined:r6,discardElement:r9,find:r4,fireEvent:r8,isNumber:r7,merge:nt,pick:ne,pushUnique:ni,relativeLength:ns,stableSort:no,syncTimeout:nr}=tt;class nn{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rK(this,e),r2(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r2(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=ne(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=nt(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=ne(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(nt(!0,this.options,t)),"events"in this.options&&rK(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,ne(e,!0)&&i.redraw(),r8(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:n,symbol:a}=t.legendItem||{};if((t instanceof r_||t instanceof oV)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(nt(e?this.itemStyle:i)),n?.attr(p({stroke:d||t.color})),a&&a.attr(p(c&&a.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,r8(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,n=!o.rtl,a=t.checkbox;if(e&&e.element){let o={translateX:n?i:this.legendWidth-i-2*r-4,translateY:s};e[r6(e.translateY)?"animate":"attr"](o,void 0,()=>{r8(this,"afterPositionItem",{item:t})})}a&&(a.x=i,a.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r9(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let n=o.checkbox;n&&(r=t+s+n.y+(this.scrollOffset||0)+3,r5(n,{left:e.translateX+o.checkboxOffset+n.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*M?v.height:M))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,n=this.itemMarginTop,a=s?ne(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=n+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=n+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=n+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:a):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&ne(i.showInLegend,!r6(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),r8(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,n){r.test(o)&&!r6(t[n])&&(i[rQ[n]]=Math.max(i[rQ[n]],i.legend[(n+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][n]*s[n%2?"x":"y"]+ne(s.margin,12)+e[n]+(i.titleOffset[n]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,n=s,a,h;t.yAxis&&(t.xAxis.options.reversed&&(n=!n),t.points&&(o=r4(n?t.points:t.points.slice(0).reverse(),function(t){return r7(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,a=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:a,size:r,item:t}))},this),r0(i,e.plotHeight)))t=o.item.legendItem||{},r7(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,n,a,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ns(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),no(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),n=(this.widthOption||this.offsetWidth)+s,a=this.lastItemY+this.lastLineHeight+this.titleHeight,a=this.handleOverflow(a)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),n>0&&a>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:n,height:a},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(n=a=0),this.legendWidth=n,this.legendHeight=a,r&&this.align(),this.proximate||this.positionItems(),r8(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=nt(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(nt(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,n="top"===o.verticalAlign,a=this.padding,h=o.maxHeight,l=o.navigation,d=ne(l.animation,!0),c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?M.attr({height:t}):M&&(e.clipRect=M.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+a+"px,9999px,"+(a+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(n?-r:r)-a,v=this.nav,M=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-a,0),this.currentPage=ne(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((u[e-1].legendItem||{}).pageIx=o-1),e===u.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),M||(M=e.clipRect=s.clipRect(0,a-2,9999,0),e.contentGroup.clip(M)),g(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,n=this.options.navigation,a=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&rZ(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),a.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?n.inactiveColor:n.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?n.inactiveColor:n.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),nr(()=>{r8(this,"afterScroll",{currentPage:l})},rq(ne(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,n=t instanceof oV,a=t instanceof r_,h="highcharts-legend-"+(n?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!n)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(nt(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),r8(s,"itemClick",{browserEvent:e,legendItem:t},i),n?t.firePointEvent("legendItemClick",{browserEvent:e}):a&&r8(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=r3("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r2(t.checkbox,"click",function(e){let i=e.target;r8(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){ni(rJ,"Core.Legend")&&r2(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(nn||(nn={}));let na=nn,{animate:nh,animObject:nl,setAnimation:nd}=tj,{defaultOptions:nc}=tw,{numberFormat:np}=el,{registerEventOptions:nu}=i8,{charts:ng,doc:nf,marginNames:nm,svg:nx,win:ny}=O,{seriesTypes:nb}=rf,{addEvent:nv,attr:nM,createElement:nk,css:nw,defined:nS,diffObjects:nA,discardElement:nT,erase:nP,error:nC,extend:nO,find:nE,fireEvent:nL,getAlignFactor:nB,getStyle:nI,isArray:nD,isNumber:nR,isObject:nN,isString:nz,merge:nW,objectEach:nG,pick:nH,pInt:nF,relativeLength:nX,removeEvent:nY,splat:nj,syncTimeout:nU,uniqueKey:nV}=tt;class n${static chart(t,e,i){return new n$(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(nz(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:nH(t.zoomType,e.type),key:nH(t.zoomKey,e.key),pinchType:nH(t.pinchType,e.pinchType),singleTouch:nH(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:nW(e.resetButton,t.resetZoomButton)}}init(t,e){nL(this,"init",{args:arguments},function(){let i=nW(nc,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=nO({},t),(this.renderTo=nz(o)?nf.getElementById(o):o)||nC(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tx(nO(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||np).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ng.length,ng.push(this),O.chartCount++,nu(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),nL(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=nb[i];s||nC(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=nj(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?nj(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:n,len:1/0},e=i.paneCoordinates?t.pos+u:n+u;e>=Math.max(l+n,t.pos)&&e<=Math.min(l+n+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return nL(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){nL(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,n=this.renderer,a=n.isHidden(),h=[],l,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(n.rootFontSize=n.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),nd(!!this.hasRendered&&t,this),a&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),u=!0):r&&(r.labelFormatter||r.labelFormat)&&(u=!0)),t.isDirtyData&&nL(t,"updatedData")}),u&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){nL(t,"afterSetExtremes",nO(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),nL(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),n.draw(),nL(this,"redraw"),nL(this,"render"),a&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=nE(this.axes,i)||nE(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{nH(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=nW(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(nO("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],n=nW(o),a=i?.textPxLength||0;if(i&&r){nL(this,"layOutTitle",{alignTo:n,key:t,textPxLength:a});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(n.width/a,1),f=Math.max(p,g),m=nW({y:"bottom"===d?h:u+h},{align:"title"===t?gp?this.chartWidth:n.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,n).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${n.x+a*f*nB(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,nL(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:nI(this.renderTo,"width",!0)||0,height:nI(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,nX(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(nw(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(nf.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(nf.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,nf.body.appendChild(e)),("none"===nI(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),nw(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==nf.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=nV(),r=this.renderTo,n=nF(nM(r,s));nR(n)&&ng[n]&&ng[n].hasRendered&&ng[n].destroy(),nM(r,s,this.index),r.innerHTML=t5.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let a=this.chartHeight,h=this.chartWidth;nw(r,{overflow:"hidden"}),this.styledMode||(t=nO({position:"relative",overflow:"hidden",width:h+"px",height:a+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=nk("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||nw(l,{width:nH(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!nx?ed.getRendererType(i.renderer):iX;if(this.renderer=new d(l,h,a,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),nd(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,nL(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!nS(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!nS(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),nL(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),nm.forEach(function(i,o){nS(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return nA(this.userOptions,nc)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(tt.clearTimeout(e.reflowTimeout),e.reflowTimeout=nU(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=nv(ny,"resize",e);nv(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,nd(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:n,chartHeight:a,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||n!==s.oldChartWidth||a!==s.oldChartHeight)&&(s.styledMode||(r?nh:nw)(s.container,{width:`${n+h}px`,height:`${a+l}px`},r),s.setChartSize(!0),o.setSize(n,a,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,nL(s,"resize"),setTimeout(()=>{s&&nL(s,"endResize")},nl(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:n,inverted:a,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[a?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(n-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=a?o:s,this.plotSizeY=a?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:n-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),nL(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){nL(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=nN(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=nH(e[i+s],o[r])})}),nm.forEach(function(e,i){t[e]=nH(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,n=t.backgroundColor,a=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,M,k="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),k="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),M={fill:n||"none"},(b||m["stroke-width"])&&(M.stroke=t.borderColor,M["stroke-width"]=b),m.attr(M).shadow(t.shadow)),m[k]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),k="animate",x||(k="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[k](u),!o&&(x.attr({fill:a||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(u)):this.plotBGImage=e.image(h,l,d,c,p).add())),g?g.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),k="animate",y||(k="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[k](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,nL(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(n){for(e=nb[o.type],i=o[n]||e&&e.prototype[n],t=r&&r.length;!i&&t--;)(e=nb[r[t].type])&&e.prototype[n]&&(i=!0);s[n]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(nz(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=nH(t.options.visible,s.options.visible,t.visible))}}),nL(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,n=!0,a,h=0;for(let e of(this.setTitle(),nL(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sc(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&nH(i.reserveSpace,!nR(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(n||a||s>1)&&h(h?1:1.1),a=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=nW(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(ny.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(nL(e,"destroy"),e.renderer.forExport?nP(ng,e):ng[e.index]=void 0,O.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),nY(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t5.emptyHTML,nY(o),r&&nT(o)),nG(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=nD(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),nL(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),nL(this,"load"),nL(this,"render"),nS(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),n=i.options.chart;n?.panning&&(n.panning=s),nL(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),nw(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:n={},trigger:a}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:u,minPointOffset:g=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=nH(n[x],t.len),v=nH(s[x],t.len),M=10>Math.abs(b)?1:b/v,k=(s[y]||0)+v/2-t.pos,w=k-((n[y]??t.pos)+b/2-t.pos)/M,S=m&&!h||!m&&h?-1:1;if(!o&&(k<0||k>t.len))continue;let A=t.toValue(w,!0)+(r||t.isOrdinal?0:g*S),T=t.toValue(w+u/M,!0)-(r||t.isOrdinal?0:g*S||0),P=t.allExtremes;if(A>T&&([A,T]=[T,A]),1===M&&!o&&"yAxis"===t.coll&&!P){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);P??(P={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),nR(t.dataMin)&&nR(t.dataMax)&&(P.dataMin=Math.min(t.dataMin,P.dataMin),P.dataMax=Math.max(t.dataMax,P.dataMax))}t.allExtremes=P}let{dataMin:C,dataMax:O,min:E,max:L}=nO(t.getExtremes(),P||{}),B=l.parse(f.min),I=l.parse(f.max),D=C??B,R=O??I,N=T-A,z=t.categories?0:Math.min(N,R-D),W=D-z*(nS(B)?0:f.minPadding),G=R+z*(nS(I)?0:f.maxPadding),H=t.allowZoomOutside||1===M||"zoom"!==a&&M>1,F=Math.min(B??W,W,H?E:W),X=Math.max(I??G,G,H?L:G);(!t.isOrdinal||t.options.overscroll||1!==M||o)&&(A=1&&(T=A+N)),T>X&&(T=X,M>=1&&(A=T-N)),(o||t.series.length&&(A!==E||T!==L)&&A>=F&&T<=X)&&(r?r[t.coll].push({axis:t,min:A,max:T}):(t.isPanning="zoom"!==a,t.isPanning&&(p=!0),t.setExtremes(o?void 0:A,o?void 0:T,!1,!1,{move:w,trigger:a,scale:M}),!o&&(A>F||T{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===a&&(this.options.chart.animation??this.pointCount<100)))),d}}nO(n$.prototype,{callbacks:[],collectionsWithInit:{xAxis:[n$.prototype.addAxis,[!0]],yAxis:[n$.prototype.addAxis,[!1]],series:[n$.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let n_=n$,{stop:nq}=tj,{composed:nZ}=O,{addEvent:nK,createElement:nJ,css:nQ,defined:n0,erase:n1,merge:n2,pushUnique:n3}=tt;function n5(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new n9(this)),t?.applyFixed()}function n6(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class n9{static compose(t,e,i){n3(nZ,this.compose)&&(nK(t,"afterInit",n6),nK(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),nK(e,"render",n5),nK(i,"show",n6))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:n}=t.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=n2(t.plotBox),h.width=t.plotWidth+=i,a[l?"height":"width"]+=i,o=!0)):n&&(t.scrollablePixelsY=s=Math.max(0,n-t.chartHeight),n0(s)&&(t.scrollablePlotBox=n2(t.plotBox),h.height=t.plotHeight+=s,a[l?"width":"height"]+=s,o=!1)),n0(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=ed.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),n={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(n.overflowX="auto"),t.scrollablePixelsY&&(n.overflowY="auto"),this.chart=t;let a=this.parentDiv=nJ("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=nJ("div",{className:"highcharts-scrolling"},n,a),l=this.innerContainer=nJ("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=nJ("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),nQ(t.renderTo,{overflow:"visible"}),nK(t,"afterShowResetZoom",r),nK(t,"afterApplyDrilldown",r),nK(t,"afterLayOutTitles",r),nK(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:n,container:a,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=n+u;e.setSize(r,n),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),nq(t.container),nQ(a,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),nQ(s,{width:`${r}px`,height:`${n}px`}),n0(i)||(s.scrollLeft=p*g,s.scrollTop=u*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,M=l+c+o[1]+1,k=l+c-p,w=d+h-u,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",k,y],["L",r,y],["L",r,v],["L",k,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",M,d-1],["L",M,0],["Z"],["M",b,w],["L",b,n],["L",M,n],["L",M,w],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,n=n9.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])n3(n,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])n1(n,e);for(let t of n)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}n9.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:n4}=el,{series:n8}=rf,{destroyObjectProperties:n7,fireEvent:at,getAlignFactor:ae,isNumber:ai,pick:as}=tt,ao=class{constructor(t,e,i,s,o){let r=t.chart.inverted,n=t.reversed;this.axis=t;let a=this.isNegative=!!i!=!!n;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?a?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":a?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?a?"right":"left":"center")}destroy(){n7(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?n4(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:as(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,at(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:n,axis:a,label:h,options:l,textAlign:d}=this,c=a.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=n;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===as(l.overflow,"justify"),s;n.x=l.x||0,n.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,h.align(n,!1,p),(s=c.isInsidePlot(h.alignAttr.x+n.x+o,h.alignAttr.y+n.y+r))||(i=!1),i&&n8.prototype.justifyDataLabel.call(a,h,n,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*ae(l.textAlign||"center"),rotationOriginY:t.height/2}),as(!i&&l.crop,!0)&&(s=ai(h.x)&&ai(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}at(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*ae(i)-1),y:t.height/2*2*(1-ae(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:n,boxBottom:a}=t,h=e.stacking.usePercentage?100:as(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=as(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(a||ai(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?l:l-p)-i.plotLeft,y:d.height-c-n+d.top-i.plotTop,width:p,height:n}:{x:c+d.transB-i.plotLeft,y:(g?l-p:l)-i.plotTop,width:n,height:p}}},{getDeferredAnimation:ar}=tj,{series:{prototype:an}}=rf,{addEvent:aa,correctFloat:ah,defined:al,destroyObjectProperties:ad,fireEvent:ac,isNumber:ap,objectEach:au,pick:ag}=tt;function af(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,ag(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function am(){let t=this.stacking;if(t){let e=t.stacks;au(e,(t,i)=>{ad(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function ax(){this.stacking||(this.stacking=new aw(this))}function ay(t,e,i,s){return!al(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function ab(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),n=e.options.stacking,a=e[n+"Stacker"];a&&[s,"-"+s].forEach(i=>{let s=r.length,n,h,l;for(;s--;)n=r[s],t=e.getStackIndicator(t,n,e.index,i),h=o[i]?.[n],(l=h?.points[t.key||""])&&a.call(e,l,h,s)})}function av(t,e,i){let s=e.total?100/e.total:0;t[0]=ah(t[0]*s),t[1]=ah(t[1]*s),this.stackedYData[i]=t[1]}function aM(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?an.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function ak(t,e){let i,s,o,r,n,a,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,f=g.threshold||0,m=g.startFromThreshold?f:0,x=g.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,M=t.stacking,k=M.stacks,w=M.oldStacks;for(M.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[a][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[a],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&k[r]?.[e]?(r=k[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):ah(S+Math.abs(g))):"group"===l?ap(u)&&S++:S=ah(S+g),"group"===l?o.cumulative=(S||1)-1:o.cumulative=ah(ag(o.cumulative,m)+g),o.total=S,null!==u&&(o.points[a].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(M.usePercentage=!0),"group"!==l&&(this.stackedYData=p),M.oldStacks={}}class aw{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,n=s.length;for(this.resetStacks(),this.usePercentage=!1,e=n;e--;)t=s[r?e:n-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{au(t,t=>{t.cumulative=t.total})}))}resetStacks(){au(this.stacks,t=>{au(t,(e,i)=>{ap(e.touched)&&e.touched{au(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(f||(f={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(aa(t,"init",ax),aa(t,"destroy",am),s.getStacks=af,o.getStackIndicator=ay,o.modifyStacks=ab,o.percentStacker=av,o.setGroupedPoints=aM,o.setStackedPoints=ak)};let aS=f,{defined:aA,merge:aT,isObject:aP}=tt;class aC extends r_{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,n=s.graph,a=n?"animate":"attr",h=s.dashStyle||t.dashStyle;n?(n.endX=this.preventGraphAnimation?null:e.xMap,n.animate({d:e})):e.length&&(s.graph=n=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),n&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),n[a](r).shadow(t.shadow&&aT({filterUnits:"userSpaceOnUse"},aP(t.shadow)?t.shadow:{}))),n&&(n.startX=e.xMap,n.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],n=[],a,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,u=l.plotY,g=t[d-1],f=l.isNull||"number"!=typeof u;(l.leftCliff||g&&g.rightCliff)&&!i&&(a=!0),f&&!aA(e)&&d>0?a=!o.connectNulls:f&&!e?a=!0:(0===d||a?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",g.plotX,u]]:2===h?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],n.push(l.x),h&&(n.push(l.x),2===h&&n.push(l.x)),r.push.apply(r,c),a=!1)}),r.xMap=n,s.graphPath=r,r}}aC.defaultOptions=aT(r_.defaultOptions,{legendSymbol:"lineMarker"}),rf.registerSeriesType("line",aC);let{seriesTypes:{line:aO}}=rf,{extend:aE,merge:aL,objectEach:aB,pick:aI}=tt;class aD extends aO{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,n=i.area,a=n?"animate":"attr";n?(n.endX=this.preventGraphAnimation?null:t.xMap,n.animate({d:t})):(o.zIndex=0,(n=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,n.css({pointerEvents:this.stickyTracking?"none":"auto"})),n[a](o),n.startX=t.xMap,n.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=aO.prototype.getGraphPath,r=this.options,n=r.stacking,a=this.yAxis,h=[],l=[],d=this.index,c=a.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(a.getThreshold(r.threshold)),g=aI(r.connectNulls,"percent"===n),f=function(i,s,o){let r=t[i],g=n&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?g[0]:g[1])+m,y=g[0]+m,b=!!f):!n&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?u:a.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?u:a.getThreshold(y),doCurve:!1}))};t=t||this.points,n&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&n&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,n=r.stacking.stacks[this.stackKey],a={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,u){let g=0,f,m;if(a[t]&&!a[t].isNull)i.push(a[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=n[s[u+i]],g=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),n=2*h-o):op&&n>h?(n=Math.max(p,h),o=2*h-n):n1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,n=0;a3(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],a={};if(e&&aQ(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(aZ(s)){if(a0(a[s]))return t===e&&(t=a[s]),!1;a[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),n=i.length}}),r=this.xAxis.reversed?n-1-r:r;let a=(n-1)*s.paddedWidth+e;t=(i.plotX||0)+a/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=a2(i.borderWidth,s?0:1),r=t.xAxis,n=t.yAxis,a=i.threshold,h=a2(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=n.getThreshold(a),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),r_.prototype.translate.apply(t),t.points.forEach(function(s){let o=a2(s.yBottom,g),m=999+Math.abs(o),x=s.plotX||0,y=a_(s.plotY,-m,n.len+m),b,v=Math.min(y,o),M=Math.max(y,o)-v,k=d,w=x+c,S=f;h&&Math.abs(M)h?o-h:g-(b?h:0)),aZ(s.options.pointWidth)&&(w-=Math.round(((k=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(w=t.adjustForMissingColumns(w,k,s,l)),s.barX=w,s.pointWidth=k,s.tooltipPos=e.inverted?[a_(n.len+n.pos-e.plotLeft-y,n.pos-e.plotLeft,n.len+n.pos-e.plotLeft),r.len+r.pos-e.plotTop-w-S/2,M]:[r.left-e.plotLeft+w+S/2,a_(y+n.pos-e.plotTop,n.pos-e.plotTop,n.len+n.pos-e.plotTop),M],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(w,s.isNull?g:v,S,s.isNull?0:M)}),aJ(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",n,a,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,u=a2(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(a=t.getZone(),l=t.options.color||a&&(a.color||t.nonZonedColor)||this.color,a&&(d=a.borderColor||d,c=a.dashStyle||c,p=a.borderWidth||p)),e&&t&&(h=(n=a1(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=n.color||void 0!==h&&aV(l).brighten(n.brightness).get()||l,d=n[o]||d,p=n[r]||p,c=n.dashStyle||c,u=a2(n.opacity,u));let g={fill:l,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,n=o.animationLimit||250;t.forEach(function(t){let a=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:n}=this,a=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=a8(h)&&a8(l)&&r.isInsidePlot(h,Math.round(l),{inverted:a,paneCoordinates:!0,series:this}),p=0===d&&"justify"===hn(i.overflow,n?"none":"justify"),u=this.visible&&!1!==t.visible&&a8(h)&&(t.series.forceDL||n&&!p||c||hn(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,a?s.x+1:s.y+s.height-1,{inverted:a,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=a7({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[a?"x":"y"]=0,s[a?"width":"height"]=this.yAxis?.len||0),a7(i,{width:h.width,height:h.height}),f=s,n&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(ho(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=he(i.align)*(l.width-h.width),e.alignAttr.y+=he(i.verticalAlign)*(l.height-h.height),e[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(hn(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&n&&(e.placed=!1),u||n&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:n,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(hs(l)&&l||hs(n)&&n||"#000000"),c=h(i),{animation:p,defer:u}=c[0],g=u?a9(s,p,i):{defer:0,duration:0};ht(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach(t=>{let n=t.dataLabels||[];hh(a(c,t.dlOptions||t.options?.dataLabels)).forEach((a,h)=>{let l=a.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,a),{backgroundColor:c,borderColor:p,distance:u,style:g={}}=a,f,m,x,y={},b=n[h],v=!b,M;l&&(m=a8(f=hn(a[t.formatPrefix+"Format"],a.format))?a4(f,t,s):(a[t.formatPrefix+"Formatter"]||a.formatter).call(t,a),x=a.rotation,!s.styledMode&&(g.color=hn(a.color,g.color,hs(i.color)?i.color:void 0,"#000000"),"contrast"===g.color?("none"!==c&&(M=c),t.contrastColor=r.getContrast("auto"!==M&&M||t.color||i.color),g.color=M||!a8(u)&&a.inside||0>ha(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(g.cursor=o.cursor)),y={r:a.borderRadius||0,rotation:x,padding:a.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=a.borderWidth),hr(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&a8(m)&&!!b.div==!!a.useHTML&&(b.rotation&&a.rotation||b.rotation===a.rotation)||(b=void 0,v=!0),l&&a8(m)&&(b?y.text=m:(b=r.label(m,0,0,a.shape,void 0,void 0,a.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(a.className||"")+(a.useHTML?" highcharts-tracker":"")),b&&(b.options=a,b.attr(y),s.styledMode?g.width&&b.css({width:g.width,textOverflow:g.textOverflow,whiteSpace:g.whiteSpace}):b.css(g).shadow(a.shadow),ht(b,"beforeAddingDataLabel",{labelOptions:a,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,a,void 0,v),b.isActive=!0,n[h]&&n[h]!==b&&n[h].destroy(),n[h]=b))});let h=n.length;for(;h--;)n[h]&&n[h].isActive?n[h].isActive=!1:(n[h]?.destroy(),n.splice(h,1));t.dataLabel=n[0],t.dataLabels=n})),ht(this,"afterDrawDataLabels")}function n(t,e,i,s,o,r){let n=this.chart,a=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=n.inverted?this.yAxis:this.xAxis,c=d?d.left-n.plotLeft:0,p=n.inverted?this.xAxis:this.yAxis,u=p?p.top-n.plotTop:0,{x:g=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===a&&g>=0?(e.align="left",e.inside=!0):g-=m,x=!0),(m=(i.x||0)+s.width-l+c)>n.plotWidth&&("left"===a&&g<=0?(e.align="right",e.inside=!0):g+=n.plotWidth-m,x=!0),(m=i.y+l+u)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+u)>n.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=n.plotHeight-m,x=!0),x&&(e.x=g,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function a(t,e){let i=[],s;if(hi(t)&&!hi(e))i=t.map(function(t){return ho(t,e)});else if(hi(e)&&!hi(t))i=e.map(function(e){return ho(t,e)});else if(hi(t)||hi(e)){if(hi(t)&&hi(e))for(s=Math.max(t.length,e.length);s--;)i[s]=ho(t[s],e[s])}else i=ho(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return hh(a(a(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,n=r.inverted,a=this.xAxis,h=a.reversed,l=((n?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=n?o.x:h?-l-c:a.width-l+c,e.startYPos=n?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let a=t.prototype;a.initDataLabels||(a.initDataLabels=o,a.initDataLabelsGroup=s,a.alignDataLabel=i,a.drawDataLabels=r,a.justifyDataLabel=n,a.setDataLabelStartPos=l,a.hasDataLabels=e)}}(m||(m={}));let hl=m,{composed:hd}=O,{series:hc}=rf,{merge:hp,pick:hu,pushUnique:hg}=tt;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,n=t.series,a=(n.xAxis?n.xAxis.len:this.chart.plotSizeX)||0,h=(n.yAxis?n.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=hu(t.below,t.plotY>hu(this.translatedThreshold,h)),c=hu(i.inside,!!this.options.stacking);if(l){if(s=hp(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),hk(hS.prototype,{drawTracker:hb.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hM(hS,"afterTranslate",function(){this.applyJitter()}),rf.registerSeriesType("scatter",hS);let{deg2rad:hA}=O,{fireEvent:hT,isNumber:hP,pick:hC,relativeLength:hO}=tt;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,n=Math.min(s,o),a=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let u=[hC(r?.[0],"50%"),hC(r?.[1],"50%"),hC(l&&l<0?void 0:t.size,"100%"),hC(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof r_||(u[3]=0),c=0;c<4;++c)p=u[c],h=c<2||2===c&&/%$/.test(p),u[c]=hO(p,[s,o,n,u[2]][c])+(h?i:0);return u[3]>u[2]&&(u[3]=u[2]),hP(a)&&2*a0&&(u[3]=u[2]-2*a),hT(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=hP(t)?t:0,s=hP(e)&&e>i&&e-i<360?e:i+360;return{start:hA*(i+-90),end:hA*(s+-90)}}}(y||(y={}));let hE=y,{setAnimation:hL}=tj,{addEvent:hB,defined:hI,extend:hD,isNumber:hR,pick:hN,relativeLength:hz}=tt;class hW extends oV{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hB(this,"select",s),hB(this,"unselect",s)}isValid(){return hR(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hL(i,s.chart),e=hN(e,!0),this.sliced=this.options.sliced=t=hI(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hD(hW.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:n}=this,[a,h,l]=n.center,d=l/2,{plotLeft:c,plotWidth:p}=n.chart,u="left"===t.alignment,{x:g,y:f}=t,m=o.x;if(i.crookDistance){let t=hz(i.crookDistance,1);m=u?a+d+(p+c-a-d)*(1-t):c+(a-d)*t}else m=a+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",g,f]];return(u?m<=g&&m>=o.x:m>=g&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hG}=hE,{noop:hH}=O,{clamp:hF,extend:hX,fireEvent:hY,merge:hj,pick:hU}=tt;class hV extends r_{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hU(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:it.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,n=s.dataLabelPosition,a=n?.distance||0,h=Math.asin(hF((t-o[1])/(r+a),-1,1));return o[0]+Math.cos(h)*(r+a)*(e?-1:1)+(a>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(n){let a={};e=n.graphic,!n.isNull&&e?(s=n.shapeArgs,t=n.getTranslate(),r.styledMode||(i=o.pointAttribs(n,n.selected&&"select")),n.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),n.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||hj(!0,a,i),hj(!0,a,s,t),e.animate(a)),e.attr({visibility:n.visible?"inherit":"hidden"}),e.addClass(n.getClassName(),!0)):e&&(n.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hY(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hG(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,n=this.points,a=e.ignoreHiddenPoint,h=n.length,l,d,c,p,u,g,f,m=0;for(t||(this.center=t=this.getCenter()),g=0;g1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*u],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}hY(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hV.defaultOptions=hj(r_.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hX(hV.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:a6.prototype.drawTracker,getCenter:hE.getCenter,getSymbol:hH,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:a6.prototype.pointAttribs,pointClass:hW,requireSorting:!1,searchPoint:hH,trackerGroups:["group","dataLabelsGroup"]}),rf.registerSeriesType("pie",hV);let{composed:h$,noop:h_}=O,{distribute:hq}=ef,{series:hZ}=rf,{arrayMax:hK,clamp:hJ,defined:hQ,pick:h0,pushUnique:h1,relativeLength:h2}=tt;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:n,options:a}=this,h=n[2]/2,l=Math.cos(r),d=Math.sin(r),c=n[0]+l*h,p=n[1]+d*h,u=Math.min((a.slicedOffset||0)+(a.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,n=Math.round(i.chartWidth/3),a=t.center,h=a[2]/2,l=a[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,g,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),hZ.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=a[2]/2,o=e.options,r=h2(o?.distance||0,s);0===i&&d[t.half].push(t),!hQ(o?.style?.width)&&e.getBBox().width>n&&(e.css({width:Math.round(.7*n)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,n)=>{let d=e.length,u=[],x,y,b=0,v;d&&(t.sortByAngle(e,n-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),hq(u,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,M=(v-l.getBBox().height)/2,k=0,w=y,S="inherit";if(x){if(u&&hQ(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,w=p.radialDistributionY(i,l))),d.justify)k=p.justify(i,l,h,a);else switch(d.alignTo){case"connectors":k=p.alignToConnectors(e,n,s,r);break;case"plotEdges":k=p.alignToPlotEdges(l,n,s,r);break;default:k=p.radialDistributionX(t,i,w-M,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:k+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:w+(d.y||0)-v/2},x.computed.x=k,x.computed.y=w-M,h0(d.crop,!0)){let t;k-(g=l.getBBox().width)s-b&&0===n&&(t=Math.round(k+g-s+b),c[1]=Math.max(t,c[1])),w-f/2<0?c[0]=Math.max(Math.round(-w+f/2),c[0]):w+f/2>o&&(c[2]=Math.max(Math.round(w+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===hK(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},n=s.dataLabelPosition;if(r){let a;u=s.connector,n&&n.distance>0?(a=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||u.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),u[a?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:n.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,n=null!==i.size;return!n&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=hJ(r,o,e[2]-Math.max(t[0],t[2])):(r=hJ(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,n=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-a)/(l-a)+s&&(n=!n)}return n}}(v||(v={}));let{pointInPolygon:h5}=v,{addEvent:h6,fireEvent:h9,objectEach:h4,pick:h8}=tt;function h7(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(h5({x:i[0],y:i[1]},e))return!0;return!1},o,r,n,a,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{h4(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=h8(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,lt(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let li={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=h7,h6(t,"render",le))}},{defaultOptions:ls}=tw,{noop:lo}=O,{addEvent:lr,extend:ln,isObject:la,merge:lh,relativeLength:ll}=tt,ld={radius:0,scope:"stack",where:void 0},lc=lo,lp=lo;function lu(t,e,i,s,o={}){let r=lc(t,e,i,s,o),{innerR:n=0,r:a=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(ll(o.borderRadius||0,a-n),(a-n)/2,a*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*n),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r;let n=t[e],a=t[e+1];if("Z"===a[0]&&(a=t[0]),("M"===n[0]||"L"===n[0])&&"A"===a[0]?(s=n,o=a,r=!0):"A"===n[0]&&("M"===a[0]||"L"===a[0])&&(s=a,o=n),s&&o&&o.params){let n=o[1],a=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,u=a?n-i:n+i,g=u?Math.asin(i/u):0,f=a?g:-g,m=Math.cos(g)*u;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+n*Math.cos(h.start),p+n*Math.sin(h.start)])):(h.end=d-f,o[6]=c+n*Math.cos(h.end),o[7]=p+n*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?u:p);return r}function lg(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=ls.plotOptions?.[this.type]?.borderRadius,o=lf(t.borderRadius,la(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:n}=s;if("roundedRect"===s.shapeType&&n){let{width:a=0,height:h=0,y:l=0}=n,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),n=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=n.y,c=n.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(ll(o.radius,a),a/2,"all"===u?h/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),ln(n,{brBoxHeight:c,brBoxY:d,r:g})}}}}function lf(t,e){return la(t)||(t={radius:t||0}),lh(ld,e,t)}function lm(){let t=lf(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=ll(t.radius,(i.r||0)-(i.innerR||0)))}}function lx(t,e,i,s,o={}){let r=lp(t,e,i,s,o),{r:n=0,brBoxHeight:a=s,brBoxY:h=e}=o,l=e-h,d=h+a-(e+s),c=l-n>-.1?0:n,p=d-n>-.1?0:n,u=Math.max(c&&l,0),g=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],M=[t,e+s-p],k=[t,e+c],w=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=w(c,c-u);f[0]-=t,m[0]+=t,x[1]=k[1]=e+c-u}if(s=lk(i.minWidth,0)&&this.chartHeight>=lk(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lw()),this.matchResponsiveRule(t,o)},this);let n=lM(...o.map(t=>lv((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));n.isResponsiveOptions=!0,o=o.toString()||void 0;let a=s&&s.ruleIds;o===a||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=ly(n,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:n,undoOptions:r},this.updatingResponsive||this.update(n,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lb(s,{matchResponsiveRule:e,setResponsive:i}),t}}(M||(M={}));let lS=M;function lA(t,e,i,s){return[["M",t,e+s/2],["L",t+i,e],["L",t,e+s/2],["L",t+i,e+s]]}function lT(t,e,i,s){return lA(t,e,i/2,s)}function lP(t,e,i,s){return[["M",t+i,e],["L",t,e+s/2],["L",t+i,e+s],["Z"]]}function lC(t,e,i,s){return lP(t,e,i/2,s)}O.AST=t5,O.Axis=sX,O.Chart=n_,O.Color=tC,O.DataLabel=hl,O.DataTableCore=rn,O.Fx=tI,O.HTMLElement=i1,O.Legend=na,O.LegendSymbol=rd,O.OverlappingDataLabels=O.OverlappingDataLabels||li,O.PlotLineOrBand=oi,O.Point=oV,O.Pointer=re,O.RendererRegistry=ed,O.Series=r_,O.SeriesRegistry=rf,O.StackItem=ao,O.SVGElement=eq,O.SVGRenderer=iX,O.Templating=el,O.Tick=sc,O.Time=tx,O.Tooltip=oT,O.animate=tj.animate,O.animObject=tj.animObject,O.chart=n_.chart,O.color=tC.parse,O.dateFormat=el.dateFormat,O.defaultOptions=tw.defaultOptions,O.distribute=ef.distribute,O.format=el.format,O.getDeferredAnimation=tj.getDeferredAnimation,O.getOptions=tw.getOptions,O.numberFormat=el.numberFormat,O.seriesType=rf.seriesType,O.setAnimation=tj.setAnimation,O.setOptions=tw.setOptions,O.stop=tj.stop,O.time=tw.defaultTime,O.timers=tI.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;lr(t,"afterColumnTranslate",lg,{order:9}),lr(s,"afterTranslate",lm),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),lc=o.arc,lp=o.roundedRect,o.arc=lu,o.roundedRect=lx}},optionsToObject:lf}).compose(O.Series,O.SVGElement,O.SVGRenderer),hf.compose(O.Series.types.column),hl.compose(O.Series),s$.compose(O.Axis),i1.compose(O.SVGRenderer),na.compose(O.Chart),sK.compose(O.Axis),li.compose(O.Chart),h3.compose(O.Series.types.pie),oi.compose(O.Chart,O.Axis),re.compose(O.Chart),lS.compose(O.Chart),n9.compose(O.Axis,O.Chart,O.Series),aS.compose(O.Axis,O.Chart,O.Series),oT.compose(O.Pointer),tt.extend(O,tt);let lO={compose:function(t){let e=t.prototype.symbols;e.arrow=lA,e["arrow-filled"]=lP,e["arrow-filled-half"]=lC,e["arrow-half"]=lT,e["triangle-left"]=lP,e["triangle-left-half"]=lC}},{defined:lE,error:lL,merge:lB,objectEach:lI}=tt,lD=O.deg2rad,lR=Math.max,lN=Math.min,lz=class{constructor(t,e,i){this.init(t,e,i)}init(t,e,i){this.fromPoint=t,this.toPoint=e,this.options=i,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let i=this.chart,s=i.styledMode,o=this.pathfinder,r={},n=this.graphics&&this.graphics.path;o.group||(o.group=i.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(i.seriesGroup)),o.group.translate(i.plotLeft,i.plotTop),n&&n.renderer||(n=i.renderer.path().add(o.group),s||n.attr({opacity:0})),n.attr(e),r.d=t,s||(r.opacity=1),n.animate(r),this.graphics=this.graphics||{},this.graphics.path=n}addMarker(t,e,i){let s,o,r,n,a,h,l,d;let c=this.fromPoint.series.chart,p=c.pathfinder,u=c.renderer,g="start"===t?this.fromPoint:this.toPoint,f=g.getPathfinderAnchorPoint(e);e.enabled&&((d="start"===t?i[1]:i[i.length-2])&&"M"===d[0]||"L"===d[0])&&(l={x:d[1],y:d[2]},o=g.getRadiansToVector(l,f),s=g.getMarkerVector(o,e.radius,f),r=-o/lD,e.width&&e.height?(a=e.width,h=e.height):a=h=2*e.radius,this.graphics=this.graphics||{},n={x:s.x-a/2,y:s.y-h/2,width:a,height:h,rotation:r,rotationOriginX:s.x,rotationOriginY:s.y},this.graphics[t]?this.graphics[t].animate(n):(this.graphics[t]=u.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(n).add(p.group),u.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},g.series.options.animation)))}getPath(t){let e=this.pathfinder,i=this.chart,s=e.algorithms[t.type],o=e.chartObstacles;return"function"!=typeof s?(lL('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(s.requiresObstacles&&!o&&(o=e.chartObstacles=e.getChartObstacles(t),i.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(o)),s(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),lB({chartObstacles:o,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:i.plotWidth,yMin:0,yMax:i.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,i=e.chart,s=i.pathfinder,o={},r=lB(i.options.connectors,e.options.connectors,t.options.connectors,this.options);!i.styledMode&&(o.stroke=r.lineColor||t.color,o["stroke-width"]=r.lineWidth,r.dashStyle&&(o.dashstyle=r.dashStyle)),o.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,lE((r=lB(o,r)).marker.radius)||(r.marker.radius=lN(lR(Math.ceil((r.algorithmMargin||8)/2)-1,1),5));let n=this.getPath(r),a=n.path;n.obstacles&&(s.lineObstacles=s.lineObstacles||[],s.lineObstacles=s.lineObstacles.concat(n.obstacles)),this.renderPath(a,o),this.addMarker("start",lB(r.marker,r.startMarker),a),this.addMarker("end",lB(r.marker,r.endMarker),a)}destroy(){this.graphics&&(lI(this.graphics,function(t){t.destroy()}),delete this.graphics)}},{composed:lW}=O,{addEvent:lG,merge:lH,pushUnique:lF,wrap:lX}=tt,lY={color:"#ccd3ff",width:2,label:{format:"%[abdYHM]",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t,!0)},rotation:0,style:{fontSize:"0.7em"}}};function lj(){let t=this.options,e=t.currentDateIndicator;if(e){let i="object"==typeof e?lH(lY,e):lH(lY);i.value=Date.now(),i.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(i)}}function lU(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function lV(t,e){let i=this.options;return i&&i.className&&-1!==i.className.indexOf("highcharts-current-date-indicator")&&i.label&&"function"==typeof i.label.formatter?(i.value=Date.now(),i.label.formatter.call(this,i.value,i.label.format)):t.call(this,e)}let{defaultOptions:l$}=tw,{isArray:l_,merge:lq,splat:lZ}=tt;class lK extends n_{init(t,e){let i;let s=t.xAxis,o=t.yAxis;t.xAxis=t.yAxis=void 0;let r=lq(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},t,{isGantt:!0});t.xAxis=s,t.yAxis=o,r.xAxis=(l_(t.xAxis)?t.xAxis:[t.xAxis||{},{}]).map((t,e)=>(1===e&&(i=0),lq({grid:{borderColor:"#cccccc",enabled:!0},opposite:l$.xAxis?.opposite??t.opposite??!0,linkedTo:i},t,{type:"datetime"}))),r.yAxis=lZ(t.yAxis||{}).map(t=>lq({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:t.categories?t.type:"treegrid"},t)),super.init(r,e)}}!function(t){t.ganttChart=function(e,i,s){return new t(e,i,s)}}(lK||(lK={}));let lJ=lK,{isTouchDevice:lQ}=O,{addEvent:l0,merge:l1,pick:l2}=tt,l3=[];function l5(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function l6(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:n}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+n):(o.left=l2(e.left,this.plotLeft+n),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+l2(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function l9(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this),l2(t.redraw,!0)&&this.redraw(t.animation))}function l4(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this))}function l8(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!lQ&&"x"===this.zooming.type||lQ&&"x"===this.zooming.pinchType))return!1}function l7(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function dt(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(l1(!0,this.options.navigator,e),l1(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let de={compose:function(t,e){if(tt.pushUnique(l3,t)){let s=t.prototype;i=e,s.callbacks.push(l7),l0(t,"afterAddSeries",l5),l0(t,"afterSetChartSize",l6),l0(t,"afterUpdate",l9),l0(t,"beforeRender",l4),l0(t,"beforeShowResetZoom",l8),l0(t,"update",dt)}}},{isTouchDevice:di}=O,{addEvent:ds,correctFloat:dr,defined:dn,isNumber:da,pick:dh}=tt;function dl(){this.navigatorAxis||(this.navigatorAxis=new dc(this))}function dd(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,n=i.zooming.pinchType,a=s.rangeSelector,h=i.zooming.type;if(this.isXAxis&&(o?.enabled||a?.enabled)){if("y"===h&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===h||di&&"xy"===n)&&this.options.range){let e=r.previousZoom;dn(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class dc{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),ds(t,"init",dl),ds(t,"setExtremes",dd))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,n=dh(i,o.translate(t,!0,!o.horiz)),a=dh(s,o.translate(e,!0,!o.horiz));return dn(i)||(n=dr(n+r)),dn(s)||(a=dr(a-r)),da(n)&&da(a)||(n=a=void 0),{min:n,max:a}}}let{parse:dp}=tC,{seriesTypes:du}=rf,dg={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:dp("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===du.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{relativeLength:df}=tt,dm={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,n=df(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...it.rect(-r-1,.5,2*r+1,s,{r:n})]}},{defined:dx}=tt,{setOptions:dy}=tw,{composed:db}=O,{getRendererType:dv}=ed,{setFixedRange:dM}={setFixedRange:function(t){let e=this.xAxis[0];dx(e.dataMax)&&dx(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{addEvent:dk,extend:dw,pushUnique:dS}=tt;function dA(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let dT={compose:function(t,e,i){dc.compose(e),dS(db,"Navigator")&&(t.prototype.setFixedRange=dM,dw(dv().prototype.symbols,dm),dk(i,"afterUpdate",dA),dy({navigator:dg}))}},{composed:dP}=O,{addEvent:dC,defined:dO,pick:dE,pushUnique:dL}=tt;!function(t){let e;function i(t){let e=dE(t.options&&t.options.min,t.min),i=dE(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:dO(t.dataMin)?Math.min(e,t.min,t.dataMin,dE(t.threshold,1/0)):e,scrollMax:dO(t.dataMax)?Math.max(i,t.max,t.dataMax,dE(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),dC(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:n,scrollMin:a,scrollMax:h}=i(t),l=h-a;if(dO(r)&&dO(n)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=a+l*this.to,o=a+l*this.from):(s=a+l*(1-this.from),o=a+l*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),n=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(n&&h){if(this.horiz)this.opposite||(h[1]+=a),n.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let e;this.opposite&&(h[0]+=a),e=n.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,n.position(e,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=n.size+(n.options.margin||0),isNaN(o)||isNaN(r)||!dO(this.min)||!dO(this.max)||this.dataMin===this.dataMax)n.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),n.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?n.setRange(e,s):n.setRange(1-s,1-e)}}t.compose=function(t,i){dL(dP,"Axis.Scrollbar")&&(e=i,dC(t,"afterGetOffset",s),dC(t,"afterInit",o),dC(t,"afterRender",r))}}(k||(k={}));let dB=k,dI={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:dD}=tw,{addEvent:dR,correctFloat:dN,crisp:dz,defined:dW,destroyObjectProperties:dG,fireEvent:dH,merge:dF,pick:dX,removeEvent:dY}=tt;class dj{static compose(t){dB.compose(t,dj)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,dG(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let n=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||n.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),n.attr(n.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},n.strokeWidth()));let a=e.path(dj.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=dF(dI,dD.scrollbar,e),this.options.margin=dX(this.options.margin,10),this.chart=i,this.size=dX(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&dH(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&dH(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:n}=this.options,a=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=h,this.yOffset=l,n?(this.width=this.yOffset=i=l=this.size,this.xOffset=h=0,this.yOffset=l=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[a]({translateX:t,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:n?0:i-h,translateY:n?s-l:0})}removeEvents(){this._events.forEach(function(t){dY.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-dz(0,r),y:-dz(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(dj.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-dz(0,this.scrollbarStrokeWidth),-dz(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,n=o.minWidth,a=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!dW(a))return;let l=a*Math.min(e,1);i=Math.ceil(a*(t=Math.max(t,0))),this.calculatedWidth=s=dN(l-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return dX(this.options.liveRedraw,O.svg&&!O.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!dW(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),dH(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,dF(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=dN(1-dN(e-t)),e=1),t<0&&(e=dN(e-t),t=0),this.from=t,this.to=e}}dj.defaultOptions=dI,dD.scrollbar=dF(!0,dj.defaultOptions,dD.scrollbar);let{defaultOptions:dU}=tw,{isTouchDevice:dV}=O,{prototype:{symbols:d$}}=iX,{addEvent:d_,clamp:dq,correctFloat:dZ,defined:dK,destroyObjectProperties:dJ,erase:dQ,extend:d0,find:d1,fireEvent:d2,isArray:d3,isNumber:d5,merge:d6,pick:d9,removeEvent:d4,splat:d8}=tt;function d7(t,...e){let i=[].filter.call(e,d5);if(i.length)return Math[t].apply(0,i)}class ct{static compose(t,e,i){de.compose(t,ct),dT.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),n=r/2,a=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,p=d-n,u=d+c,g=this.left,f,m;i?(f=d+e+a,e=d+t+a,m=[["M",g+c,d-h-a],["L",g+c,f],["L",g,f],["M",g,e],["L",g+c,e],["L",g+c,d+l+h]],o&&m.push(["M",g+c,f-n],["L",g+c,e+n])):(g-=h,t+=g+h-a,e+=g+h-a,m=[["M",g,p],["L",t,p],["L",t,u],["M",e,u],["L",e,p],["L",g+l+2*h,p]],o&&m.push(["M",t-n,p],["L",e+n,p])),this.outline[s]({d:m})}drawMasks(t,e,i,s){let o,r,n,a;let h=this.left,l=this.top,d=this.height;i?(n=[h,h,h],a=[l,l+t,l+e],r=[d,d,d],o=[t,e-t,this.size-e]):(n=[h,h+t,h+e],a=[l,l,l],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:n[e],y:a[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,n={cursor:o?"ns-resize":"ew-resize"},a=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let h=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(a));s.styledMode||(h.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&h.css(n))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:h}=i;[0,1].forEach(e=>{let l=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===l){if(!t.handles[e].isImg&&t.handles[e].symbolName!==l){let i=d$[l].call(d$,-h/2-1,0,h,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=l}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(l,-h/2-1,0,h,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(a),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(o+h)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-h/2-1,y:0}).css(n)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(d6(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),dK(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{d4(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(d_(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,n=r.pointRange||0,a=r.navigatorAxis.fake?o.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,f,m,x=this.scrollbarHeight,y,b;if(this.hasDragged&&!dK(i))return;if(this.isDirty&&this.renderElements(),t=dZ(t-n/2),e=dZ(e+n/2),!d5(t)||!d5(e)){if(!l)return;i=0,s=d9(r.width,a.width)}this.left=d9(r.left,o.plotLeft+u+(d?o.plotWidth:0));let v=this.size=y=d9(r.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?x:y+2*u,i=d9(i,r.toPixels(t,!0)),s=d9(s,r.toPixels(e,!0)),d5(i)&&Math.abs(i)!==1/0||(i=0,s=g);let M=r.toValue(i,!0),k=r.toValue(s,!0),w=Math.abs(dZ(k-M));wp&&(this.grabbedLeft?i=r.toPixels(k-p-n,!0):this.grabbedRight&&(s=r.toPixels(M+p+n,!0))),this.zoomedMax=dq(Math.max(i,s),0,v),this.zoomedMin=dq(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let S=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),b=l&&!this.hasDragged?"animate":"attr",this.drawMasks(S,v,d,b),this.drawOutline(S,v,d,b),this.navigatorOptions.handles.enabled&&(this.drawHandle(S,0,d,b),this.drawHandle(v,1,d,b))),this.scrollbar&&(d?(m=this.top-u,f=this.left-x+(h||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),x=y+2*u):(m=this.top+(h?this.height:-x),f=this.left-u),this.scrollbar.position(f,m,g,x),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,this.isDirty=!1,d2(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(d_(e.renderTo,"mousemove",o),d_(i.ownerDocument,"mouseup",r),d_(e.renderTo,"touchmove",o),d_(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(d_(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(d_(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,n=this.range,a=this.left,h=t.chartX,l,d,c,p;i.inverted&&(h=t.chartY,a=this.top),1===e?(this.grabbedCenter=h,this.fixedWidth=n,this.dragOffset=h-o):(p=h-a-n/2,0===e?p=Math.max(0,p):2===e&&p+n>=r&&(p=r-n,this.reversedExtremes?(p-=n,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=n,dK((c=s.navigatorAxis.toFixedRange(p,p+n,d,l)).min)&&d2(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,n=i.inverted,a=e.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=i.pointer?.normalize(t)||t).chartX,n&&(a=e.top,h=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,h-a,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,h-a)):e.grabbedCenter&&(e.hasDragged=!0,hs+r-o&&(h=s+r-o),e.render(0,0,h-r,h-r+o)),e.hasDragged&&e.scrollbar&&d9(e.scrollbar.options.liveRedraw,!dV&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,n;let a=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=a.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),dK((n=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&d2(this,"setRange",{min:Math.min(n.min,n.max),max:Math.max(n.min,n.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&d5(this.zoomedMin)&&d5(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){d4(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&d4(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,n=s&&i.height||0,a=r&&o.height||0,h=o.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=n,this.scrollbarHeight=a,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,p=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let e=this.getXAxisOffsets();l.xAxis=new sX(t,d6({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:n}:{offsets:e,height:n}),"xAxis"),l.yAxis=new sX(t,d6(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:d9(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:n}:{height:n}),"yAxis"),d||i.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=d_(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*h,n=d7("min",s.options.min,o.dataMin),a=d7("max",s.options.max,o.dataMax)-n;return i?e*a/r+n:r*(e-n)/a},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=dc.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=d6(t.options.scrollbar,{vertical:t.inverted});!d5(e.margin)&&l.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new dj(t.renderer,e,t),d_(l.scrollbar,"changed",function(t){let e=l.size,i=e*this.to,s=e*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=d9(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,n=i.options;return t&&null===i.dataMin||(e={dataMin:d9(s.parse(r?.min),d7("min",s.parse(n.min),i.dataMin,o.dataMin,o.min)),dataMax:d9(s.parse(r?.max),d7("max",s.parse(n.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?d1(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},n=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(d4(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),a,h,l=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=d0({color:t.color,visible:t.visible},d3(l)?dU.navigator.series:l);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(a=t.options||{}).navigatorOptions||{},p.dataLabels=d8(p.dataLabels),(h=d6(a,r,p,d)).pointRange=d9(p.pointRange,d.pointRange,dU.plotOptions[h.type||"line"].pointRange);let u=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!u,h.data=u||a.data?.slice(0),c&&c.options?c.update(h,e):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,n.push(t.navigatorSeries))}),(l.data&&!(o&&o.length)||d3(l))&&(i.hasNavigatorData=!1,(l=d8(l)).forEach((t,e)=>{r.name="Navigator "+(n.length+1),(h=d6(dU.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,h.data&&(i.hasNavigatorData=!0,n.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(d_(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(d_(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(d_(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(d_(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(d_(i,"remove",function(){e&&dQ(e,i),this.navigatorSeries&&t.series&&(dQ(t.series,this.navigatorSeries),dK(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,n=s.dataMin,a=s.dataMax,h=r-o,l=i.stickToMin,d=i.stickToMax,c=d9(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(e=n)+h),d&&(t=a+c,l||(e=Math.max(n,t-h,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),u&&(l||d)&&d5(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=d9(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,n=s.options.range;return!!(d5(o)&&d5(r))&&(n&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{dJ(t)}),this.navigatorEnabled=!1}}let ce={lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"→"},rangeSelector:{allButtonsEnabled:!1,buttons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%[ebY]",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}},{defaultOptions:ci}=tw,{composed:cs}=O,{addEvent:co,defined:cr,extend:cn,isNumber:ca,merge:ch,pick:cl,pushUnique:cd}=tt,cc=[];function cp(){let t,e;let i=this.range,s=i.type,o=this.max,r=this.chart.time,n=function(t,e){let i=r.toParts(t),o=i.slice();"year"===s?o[0]+=e:o[1]+=e;let n=r.makeTime.apply(r,o),a=r.toParts(n);return"month"===s&&i[1]===a[1]&&1===Math.abs(e)&&(o[0]=i[0],o[1]=i[1],o[2]=0),(n=r.makeTime.apply(r,o))-t};ca(i)?(t=o-i,e=i):i&&(t=o+n(o,-(i.count||1)),this.chart&&this.chart.setFixedRange(o-t));let a=cl(this.dataMin,Number.MIN_VALUE);return ca(t)||(t=a),t<=a&&(t=a,void 0===e&&(e=n(t,i.count)),this.newMax=Math.min(t+e,cl(this.dataMax,Number.MAX_VALUE))),ca(o)?!ca(i)&&i&&i._offsetMin&&(t+=i._offsetMin):t=void 0,t}function cu(){this.rangeSelector?.redrawElements()}function cg(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new s(this))}function cf(){let t=this.rangeSelector;if(t){ca(t.deferredYTDClick)&&(t.clickButton(t.deferredYTDClick),delete t.deferredYTDClick);let e=t.options.verticalAlign;t.options.floating||("bottom"===e?this.extraBottomMargin=!0:"top"!==e||(this.extraTopMargin=!0))}}function cm(){let t;let e=this.rangeSelector;if(!e)return;let i=this.xAxis[0].getExtremes(),s=this.legend,o=e&&e.options.verticalAlign;ca(i.min)&&e.render(i.min,i.max),s.display&&"top"===o&&o===s.options.verticalAlign&&(t=ch(this.spacingBox),"vertical"===s.options.layout?t.y=this.plotTop:t.y+=e.getHeight(),s.group.placed=!1,s.align(t))}function cx(){for(let t=0,e=cc.length;tt()),cc.splice(t,1);return}}}function cy(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function cb(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,o=this.extraTopMargin,r=this.rangeSelector;if(e&&e.enabled&&!cr(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new s(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){let t=e&&e.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==o)&&(this.isDirtyBox=!0)}}let cv={compose:function(t,e,i){if(s=i,cd(cs,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=cp,co(e,"afterGetContainer",cg),co(e,"beforeRender",cf),co(e,"destroy",cx),co(e,"getMargins",cy),co(e,"redraw",cm),co(e,"update",cb),co(e,"beforeRedraw",cu),i.callbacks.push(cm),cn(ci,{rangeSelector:ce.rangeSelector}),cn(ci.lang,ce.lang)}}},{addEvent:cM,correctFloat:ck,css:cw,defined:cS,error:cA,isNumber:cT,pick:cP,timeUnits:cC,isString:cO}=tt;!function(t){function e(t,i,s,o,r=[],n=0,a){let h={},l=this.options.tickPixelInterval,d=this.chart.time,c=[],p,u,g,f,m,x=0,y=[],b=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!r||r.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let v=r.length;for(p=0;ps,r[p]5*n||m){if(r[p]>b){for(u=d.getTimeTicks(t,r[x],r[p],o);u.length&&u[0]<=b;)u.shift();u.length&&(b=u[u.length-1]),c.push(y.length),y=y.concat(u)}x=p+1}if(m)break}if(u){if(f=u.info,a&&f.unitRange<=cC.hour){for(x=1,p=y.length-1;xt-e),(a=i[Math.floor(i.length/2)])<.6*l&&(a=null),c=y[t-1]>s?t-1:t,n=void 0;c--;)d=Math.abs(n-(r=e[c])),n&&d<.8*l&&(null===a||d<.8*a)?(h[y[c]]&&!h[y[c+1]]?(o=c+1,n=r):o=c,y.splice(o,1)):n=r}return y}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let r=ck((t-i)*s+this.minPixelPadding),n=ck(e.getIndexOfPoint(r,o)),a=ck(n%1);if(n>=0&&n<=o.length-1){let t=o[Math.floor(n)],e=o[Math.ceil(n)];return o[Math.floor(n)]+a*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function r(){this.ordinal||(this.ordinal=new t.Additions(this))}function n(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&cS(e.overscroll)&&0!==e.overscroll&&cT(this.max)&&cT(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&cS(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function a(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function h(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function l(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,r=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let n=this.mouseDownX,a=e.getExtremes(),h=a.dataMin,l=a.dataMax,d=a.min,c=a.max,p=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((n-s)/(e.translationSlope*(e.ordinal.slope||u))),f=e.ordinal.getExtendedPositions(),m={ordinal:{positions:f,extendedOrdinalPositions:f}},x=e.index2val,y=e.val2lin;if(d<=h&&g<0||c+i>=l&&g>0)return;m.ordinal.positions?Math.abs(g)>1&&(p&&p.forEach(function(t){t.setState()}),l>(o=m.ordinal.positions)[o.length-1]&&o.push(l),this.setFixedRange(c-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,x.apply(m,[y.apply(m,[d,!0])+g]),x.apply(m,[y.apply(m,[c,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],c)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,cw(this.container,{cursor:"move"})):r=!0}else r=!0;r||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function c(t,e){let i;let s=this.ordinal,r=s.positions,n=s.slope,a;if(!r)return t;let h=r.length;if(r[0]<=t&&r[h-1]>=t)i=o(r,t);else{if(!((a=s.getExtendedPositions&&s.getExtendedPositions())&&a.length))return t;let h=a.length;n||(n=(a[h-1]-a[0])/h);let l=o(a,r[0]);if(t>=a[0]&&t<=a[h-1])i=o(a,t)-l;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(x=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(y=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||r)&&(a=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),f=Math.min(f,cP(t.closestPointRange,f)),a)){for(e=0;e2){for(l=g[1]-g[0],u=a-1;u--&&!m;)g[u+1]-g[u]!==l&&(m=!0);!t.options.keepOrdinalPadding&&(g[0]-s>l||o-g[g.length-1]>l)&&(m=!0)}else t.options.overscroll&&(2===a?f=g[1]-g[0]:1===a?(f=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+f]):f=e.overscrollPointsRange);m||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=f,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),c=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=p=(o-s)/(c-d),e.offset=s-d*p):(e.overscrollPointsRange=cP(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=n&&m,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,r;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),n=t?i.ordinal.convertOverscroll(i.options.overscroll):0,a=i.getExtremes(),h,l,d=e.index;return d||(d=e.index={}),!d[r]&&((h={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:a.dataMin,max:a.dataMax+n}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=h,i.series.forEach(i=>{l={xAxis:h,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:O.noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);l.dataTable=new rn({columns:{x:s}}),l.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},h.series.push(l),i.processData.apply(l)}),h.applyGrouping({hasExtremesChanged:!0}),l?.closestPointRange!==l?.basePointRange&&l.currentDataGrouping&&(h.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:h}),!i.ordinal.originalOrdinalRange&&h.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=h.ordinal.originalOrdinalRange),h.ordinal.positions&&(d[r]=h.ordinal.positions)),d[r]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,r=[],n,a,h=this.groupIntervalFactor;if(!h){for(a=0;a-1!==t.indexOf("%"+e)):t.dateStyle||t.day||t.month||t.year,i=cX(t)?["H","k","I","l","M","S"].some(e=>-1!==t.indexOf("%"+e)):t.timeStyle||t.hour||t.minute||t.second;return e&&i?"datetime-local":e?"date":i?"time":"text"}class c_{static compose(t,e){cv.compose(t,e,c_)}constructor(t){this.isDirty=!1,this.buttonOptions=c_.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],r=i.scroller&&i.scroller.getUnionExtremes()||o||{},n=s.type,a=s.dataGrouping,h=r.dataMin,l=r.dataMax,d,c=cF(o?.max)?Math.round(Math.min(o.max,l??o.max)):void 0,p,u=s._range,g,f,m,x=!0;if(null!==h&&null!==l){if(this.setSelected(t),a&&(this.forcedDataGrouping=!0,sX.prototype.setDataGrouping.call(o||{chart:this.chart},a,!1),this.frozenStates=s.preserveDataGrouping),"month"===n||"year"===n)o?(f={range:s,max:c,chart:i,dataMin:h,dataMax:l},d=o.minFromRange.call(f),cF(f.newMax)&&(c=f.newMax),x=!1):u=s;else if(u)cF(c)&&(c=Math.min((d=Math.max(c-u,h))+u,l),x=!1);else if("ytd"===n){if(o)!o.hasData()||cF(l)&&cF(h)||(h=Number.MAX_VALUE,l=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(h=Math.min(e[0],h),l=Math.max(e[e.length-1],l))}),e=!1),cF(l)&&cF(h)&&(d=g=(m=this.getYTDExtremes(l,h)).min,c=m.max);else{this.deferredYTDClick=t;return}}else"all"===n&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=h,c=l);if(x&&s._offsetMin&&cR(d)&&(d+=s._offsetMin),s._offsetMax&&cR(c)&&(c+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)cF(d)&&cF(c)&&(o.setExtremes(d,c,cU(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{p=cV(i.options.xAxis||{})[0];let t=cB(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});cB(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=p.range,e.options.min=p.min,t()})}cH(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,r=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&cH(t,"blur"),i&&i.blur&&cH(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(cB(t.container,"mousedown",r)),this.eventsToUnbind.push(cB(t,"resize",r)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(cB(t,"load",function(){t.xAxis&&t.xAxis[0]&&cB(t.xAxis[0],"setExtremes",function(i){cF(this.max)&&cF(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],r=Math.round(o.max-o.min),n=!o.hasVisibleSeries,a=24*36e5,h=e.scroller&&e.scroller.getUnionExtremes()||o,l=h.dataMin,d=h.dataMax,c=t.getYTDExtremes(d,l),p=c.min,u=c.max,g=t.selected,f=t.options.allButtonsEnabled,m=Array(t.buttonOptions.length).fill(0),x=cF(g),y=t.buttons,b=!1,v=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,h=e.type,c=e.count||1,y=e._offsetMax-e._offsetMin,M=i===g,k=s>d-l,w=ss&&(A=!0)}else("month"===h||"year"===h)&&r+36e5>=({month:28,year:365})[h]*a*c-y&&r-36e5<=({month:31,year:366})[h]*a*c+y?A=!0:"ytd"===h?(A=u-p+y===r,S=!M):"all"===h&&(A=o.max-o.min>=d-l);let T=!f&&!(b&&"all"===h)&&(k||w||n),P=b&&"all"===h||!S&&A||M&&t.frozenStates;T?m[i]=3:P&&(!x||i===g)&&(v=i)}),null!==v?(m[v]=2,t.setSelected(v)):(t.setSelected(),s&&(s.setState(0),s.attr({text:(cL.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?c=void 0:ch&&(c=h)),void 0!==c&&r.setExtremes(l?c:r.min,l?r.max:c,void 0,void 0,{trigger:"rangeSelectorInput"}))}let c=h[l?"rangeSelectorFrom":"rangeSelectorTo"]||"",p=n.label(c,0).addClass("highcharts-range-label").attr({padding:c?2:0,height:c?a.inputBoxHeight:0}).add(s),u=n.label("",0).addClass("highcharts-range-input").attr({padding:2,width:a.inputBoxWidth,height:a.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:a.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=cI("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",c$(a.inputDateFormat||"%e %b %Y")),e.styledMode||(p.css(cY(r,a.labelStyle)),u.css(cY({color:"#333333"},r,a.inputStyle)),cD(g,cG({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:r.fontSize,fontFamily:r.fontFamily,top:"-9999em"},a.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===O.doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let f=!1;return g.onchange=()=>{f||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{f=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{f=!1},{dateBox:u,input:g,label:p}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,r=o.inputEnabled,n=cU(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=cI("div",void 0,{position:"relative",height:0,zIndex:n}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),r&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(cR(o.dataMin)&&cR(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=cL.lang,o=e.renderer,r=cY(i.buttonTheme),n=r&&r.states;delete r.width,delete r.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let a=this.dropdown=cI("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),h=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},cY(r,{"stroke-width":cU(r["stroke-width"],0),width:"auto",paddingLeft:cU(i.buttonTheme.paddingLeft,h?.padding,8),paddingRight:cU(i.buttonTheme.paddingRight,h?.padding,8)}),n&&n.hover,n&&n.select,n&&n.disabled).hide().add(this.group),cB(a,"touchstart",()=>{a.style.fontSize="16px"});let l=O.isMS?"mouseover":"mouseenter",d=O.isMS?"mouseout":"mouseleave";cB(a,l,()=>{cH(this.dropdownLabel.element,l)}),cB(a,d,()=>{cH(this.dropdownLabel.element,d)}),cB(a,"change",()=>{cH(this.buttons[a.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),cI("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,a),this.createButtons()}createButtons(){let{options:t}=this,e=cY(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:r,chart:n,options:a}=this,h=n.renderer,l=cY(a.buttonTheme);o?.add(cI("option",{textContent:t.title||t.text}),e+2),r[e]=h.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},l,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&r[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:r,zoomText:n}=this,a=i.options,h=a.exporting&&!1!==a.exporting.enabled&&a.navigation&&a.navigation.buttonOptions,{buttonPosition:l,inputPosition:d,verticalAlign:c}=r,p=(t,e)=>h&&this.titleCollision(i)&&"top"===c&&"right"===e.align&&e.y-t.getBBox().height-12<(h.y||0)+(h.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&l&&d){let a=l.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;n&&(t+=n.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=r.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=p(t,l);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let h=0;r.inputEnabled&&o&&(h=p(o,d),"left"===d.align?a=u:"right"===d.align&&(a=-Math.max(i.axisOffset[1],-h)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+a-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(h),s.align({verticalAlign:c},!0,i.spacingBox);let g=s.alignAttr.translateY,f=s.getBBox().height+20,m=0;if("bottom"===c){let t=i.legend&&i.legend.options;m=g-(f=f+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+cU(t.margin,10):0)-20)-(r.floating?0:r.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===c?(r.floating&&(m=0),i.titleOffset&&i.titleOffset[0]&&(m=i.titleOffset[0]),m+=i.margin[0]-i.spacing[0]||0):"middle"===c&&(d.y===l.y?m=g:(d.y||l.y)&&(d.y<0||l.y<0?m-=Math.min(d.y,l.y):m=g-f)),s.translate(r.x,r.y+Math.floor(m));let{minInput:x,maxInput:y,dropdown:b}=this;r.inputEnabled&&x&&y&&(x.style.marginTop=s.translateY+"px",y.style.marginTop=s.translateY+"px"),b&&(b.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=cY(s.buttonTheme),r=o&&o.states,n=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(cz(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,n,r),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},h=e=>{if(s?.alignOptions&&i){let r=s.alignAttr.translateX+s.alignOptions.x-t+s.getBBox().x+2,a=s.alignOptions.width||0,h=i.alignAttr.translateX+i.getBBox().x;return h+e>r&&r+a>h&&o.y{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};if(i){if("always"===r){this.collapseButtons(),h(a())&&l();return}"never"===r&&this.expandButtons()}s&&i?n.align===o.align||h(this.initialButtonGroupWidth+20)?"responsive"===r?(this.collapseButtons(),h(a())&&l()):l():"responsive"===r&&this.expandButtons():i&&"responsive"===r&&(this.initialButtonGroupWidth>e.plotWidth?this.collapseButtons():this.expandButtons())}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,chart:e,dropdownLabel:i,dropdown:s}=this;if(t&&s){let{translateX:o=0,translateY:r=0}=t,n=e.plotLeft+o;i.attr({x:n,y:r}).show(),cD(s,{left:n+"px",top:r+"px",visibility:"inherit"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),cD(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,r=s.y,n=i.y,a=0;if(t.height)return t.height;this.alignElements(),a=e?e.getBBox(!0).height+13+o:0;let h=Math.min(n,r);return(n<0&&r<0||n>0&&r>0)&&(a+=Math.abs(h)),a}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(cY(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),cR(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),cN(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),cj(t,function(e,i){e&&"chart"!==i&&(e instanceof eq?e.destroy():e instanceof window.HTMLElement&&cW(e),delete t[i]),e!==c_.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}cG(c_.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});let cq={applyRadius:function(t,e){let i=[];for(let s=0;s>1].xMin)>0)o=n+1;else{if(!(a<0))return n;r=n-1}return o>0?o-1:0}function c1(t,e){let i=c0(t,e.x+1)+1;for(;i--;){var s;if(t[i].xMax>=e.x&&(s=t[i],e.x<=s.xMax&&e.x>=s.xMin&&e.y<=s.yMax&&e.y>=s.yMin))return i}return -1}function c2(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let i=0;icQ(e.y-t.y))?"x":"y",l,d,c,p;function u(t,e,i,s,o){let r={x:t.x,y:t.y};return r[e]=i[s||e]+(o||0),r}function g(t,e,i){let s=cQ(e[i]-t[i+"Min"])>cQ(e[i]-t[i+"Max"]);return u(e,i,t,i+(s?"Max":"Min"),s?1:-1)}n>-1?(a={start:d=g(o[n],e,h),end:e},p=d):p=e,r>-1&&(d=g(l=o[r],t,h),s.push({start:t,end:d}),d[h]>=t[h]==d[h]>=p[h]&&(c=t[h="y"===h?"x":"y"]cQ(e.y-t.y)),o=s?"x":"y",r=[],n=i.obstacleMetrics,a=cK(t.x,e.x)-n.maxWidth-10,h=cJ(t.x,e.x)+n.maxWidth+10,l=cK(t.y,e.y)-n.maxHeight-10,d=cJ(t.y,e.y)+n.maxHeight+10,c,p,u,g=!1,f=i.chartObstacles,m=c0(f,h),x=c0(f,a);function y(t,e,i){let s,o,r,n;let a=t.x0&&f[h].xMin<=o.x||a<0&&f[h].xMax>=s.x);){if(f[h].xMin<=o.x&&f[h].xMax>=s.x&&f[h].yMin<=r.y&&f[h].yMax>=n.y){if(i)return{y:t.y,x:t.x=r[a+"Max"],c=t[a+"Min"]<=r[a+"Min"],p=t[a+"Max"]>=n[a+"Max"],u=t[a+"Min"]<=n[a+"Min"],g=cQ(t[a+"Min"]-e[a]),f=cQ(t[a+"Max"]-e[a]),m=10>cQ(g-f)?e[a]-1&&(u=function(t,e,s){let o=cK(t.xMax-e.x,e.x-t.xMin)-1;)p=e[o]-t[o]<0,(u={x:e.x,y:e.y})[o]=f[m][p?o+"Max":o+"Min"]+(p?1:-1),r.push({end:e,start:u}),e=u;return{path:c2(c=(c=function t(e,s,o){let r,n,c,p,u,m,x;if(e.x===s.x&&e.y===s.y)return[];let v=o?"x":"y",M=i.obstacleOptions.margin,k={soft:{xMin:a,xMax:h,yMin:l,yMax:d},hard:i.hardBounds};return(u=c1(f,e))>-1?(p=b(u=f[u],e,s,o,k),c3(u,i.hardBounds),x=o?{y:e.y,x:u[p?"xMax":"xMin"]+(p?1:-1)}:{x:e.x,y:u[p?"yMax":"yMin"]+(p?1:-1)},(m=c1(f,x))>-1&&(c3(m=f[m],i.hardBounds),x[v]=p?cJ(u[v+"Max"]-M+1,(m[v+"Min"]+u[v+"Max"])/2):cK(u[v+"Min"]+M-1,(m[v+"Max"]+u[v+"Min"])/2),e.x===x.x&&e.y===x.y?(g&&(x[v]=p?cJ(u[v+"Max"],m[v+"Max"])+1:cK(u[v+"Min"],m[v+"Min"])-1),g=!g):g=!1),n=[{start:e,end:x}]):(r=y(e,{x:o?s.x:e.x,y:o?e.y:s.y},o),n=[{start:e,end:{x:r.x,y:r.y}}],r[o?"x":"y"]!==s[o?"x":"y"]&&(p=b(r.obstacle,r,s,!o,k),c3(r.obstacle,i.hardBounds),c={x:o?r.x:r.obstacle[p?"xMax":"xMin"]+(p?1:-1),y:o?r.obstacle[p?"yMax":"yMin"]+(p?1:-1):r.y},o=!o,n=n.concat(t({x:r.x,y:r.y},c,o)))),n=n.concat(t(n[n.length-1].end,s,!o))}(t,e,s)).concat(r.reverse())),obstacles:c}}c5.requiresObstacles=!0,c6.requiresObstacles=!0;let c9={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:c4}=tw,{defined:c8,error:c7,merge:pt}=tt;function pe(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let i=t.graphic&&t.graphic.getBBox();return i?{xMin:t.plotX-i.width/2,xMax:t.plotX+i.width/2,yMin:t.plotY-i.height/2,yMax:t.plotY+i.height/2}:null}!function(t){function e(t){let e,i;let s=pe(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":i="yMin";break;case"bottom":i="yMax"}return{x:e?s[e]:(s.xMin+s.xMax)/2,y:i?s[i]:(s.yMin+s.yMax)/2}}function i(t,e){let i;return!c8(e)&&(i=pe(this))&&(e={x:(i.xMin+i.xMax)/2,y:(i.yMin+i.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function s(t,e,i){let s=2*Math.PI,o=pe(this),r=o.xMax-o.xMin,n=o.yMax-o.yMin,a=Math.atan2(n,r),h=r/2,l=n/2,d=o.xMin+h,c=o.yMin+l,p={x:d,y:c},u=t,g=1,f=!1,m=1,x=1;for(;u<-Math.PI;)u+=s;for(;u>Math.PI;)u-=s;return g=Math.tan(u),u>-a&&u<=a?(x=-1,f=!0):u>a&&u<=Math.PI-a?x=-1:u>Math.PI-a||u<=-(Math.PI-a)?(m=-1,f=!0):m=-1,f?(p.x+=m*h,p.y+=x*h*g):(p.x+=n/(2*g)*m,p.y+=x*l),i.x!==d&&(p.x=i.x),i.y!==c&&(p.y=i.y),{x:p.x+e*Math.cos(u),y:p.y-e*Math.sin(u)}}t.compose=function(t,o,r){let n=r.prototype;n.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&pt(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&(pt(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),c7('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new o(this),this.pathfinder.update(!0))}),n.getMarkerVector=s,n.getPathfinderAnchorPoint=e,n.getRadiansToVector=i,c4(c9))}}(S||(S={}));let pi=S,{addEvent:ps,defined:po,pick:pr,splat:pn}=tt,pa=Math.max,ph=Math.min;class pl{static compose(t,e){pi.compose(t,pl,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],ps(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,i=this,s=i.connections;i.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let s;let o=t.options;o&&o.dependency&&(o.connect=o.dependency);let r=t.options?.connect?pn(t.options.connect):[];t.visible&&!1!==t.isInside&&r.forEach(o=>{let r="string"==typeof o?o:o.to;r&&(s=e.get(r)),s instanceof oV&&s.series.visible&&s.visible&&!1!==s.isInside&&i.connections.push(new lz(t,s,"string"==typeof o?{}:o))})})});for(let t=0,e,o,r=s.length,n=i.connections.length;ti.yMin-o&&e.yMin-oi.xMin-o&&e.xMin-oi.xMax?e.xMin-i.xMax:i.xMin-e.xMax:1/0,h=n?e.yMin>i.yMax?e.yMin-i.yMax:i.yMin-e.yMax:1/0;return n&&r?o?t(e,i,Math.floor(o/2)):1/0:ph(a,h)}(t[o],t[r]))<80&&s.push(e);return s.push(80),pa(Math.floor(s.sort(function(t,e){return t-e})[Math.floor(s.length/10)]/2-1),1)}(s),s.forEach(function(t){t.xMin-=o,t.xMax+=o,t.yMin-=o,t.yMax+=o})),s}getObstacleMetrics(t){let e=0,i=0,s,o,r=t.length;for(;r--;)s=t[r].xMax-t[r].xMin,o=t[r].yMax-t[r].yMin,e=1&&(e.plotHeight=o,e.redrawTrigger="adjustHeight",e.setSize(void 0,e.chartHeight+r,i)),t.series.forEach(function(t){let i=t.sharedClipKey&&e.sharedClips[t.sharedClipKey];i&&i.attr(e.inverted?{width:e.plotHeight}:{height:e.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}let pm={compose:function(t,e){let i=e.prototype;i.adjustHeight||(pd(t,"afterSetOptions",pg),i.adjustHeight=pf,pd(e,"render",i.adjustHeight))}};pm.compose(O.Axis,O.Chart);let{correctFloat:px,isNumber:py,isObject:pb}=tt,{column:{prototype:{pointClass:pv}}}=rf.seriesTypes,{extend:pM}=tt;class pk extends pv{static getColorByCategory(t,e){let i=t.options.colors||t.chart.options.colors,s=i?i.length:t.chart.options.chart.colorCount,o=e.y%s,r=i&&i[o];return{colorIndex:o,color:r}}resolveColor(){let t=this.series;if(t.options.colorByPoint&&!this.options.color){let e=pk.getColorByCategory(t,this);t.chart.styledMode||(this.color=e.color),this.options.colorIndex||(this.colorIndex=e.colorIndex)}else this.color=this.options.color||t.color}constructor(t,e){super(t,e),this.y||(this.y=0)}applyOptions(t,e){return super.applyOptions(t,e),this.x2=this.series.chart.time.parse(this.x2),this.isNull=!this.isValid?.(),this}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}pM(pk.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]});let{composed:pw,noop:pS}=O,{parse:pA}=tC,{column:pT}=rf.seriesTypes,{addEvent:pP,clamp:pC,crisp:pO,defined:pE,extend:pL,find:pB,isNumber:pI,isObject:pD,merge:pR,pick:pN,pushUnique:pz,relativeLength:pW}=tt;function pG(){let t,e;if(this.isXAxis){for(let i of(t=pN(this.dataMax,-Number.MAX_VALUE),this.series)){let s=i.dataTable.getColumn("x2",!0)||i.dataTable.getColumn("end",!0);if(s)for(let i of s)pI(i)&&i>t&&(t=i,e=!0)}e&&(this.dataMax=t)}}class pH extends pT{static compose(t){pz(pw,"Series.XRange")&&pP(t,"afterGetSeriesExtremes",pG)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let t=()=>{for(let t of this.chart.series){let e=t.xAxis;t.xAxis=t.yAxis,t.yAxis=e}};t();let e=super.getColumnMetrics();return t(),e}cropData(t,e,i){let s=t.getColumn("x")||[],o=t.getColumn("x2");t.setColumn("x",o,void 0,{silent:!0});let r=super.cropData(t,e,i);return t.setColumn("x",s.slice(r.start,r.end),void 0,{silent:!0}),r}findPointIndex(t){let e;let{cropStart:i,points:s}=this,{id:o}=t;if(o){let t=pB(s,t=>t.id===o);e=t?t.index:void 0}if(void 0===e){let i=pB(s,e=>e.x===t.x&&e.x2===t.x2&&!e.touched);e=i?i.index:void 0}return this.cropped&&pI(e)&&pI(i)&&e>=i&&(e-=i),e}alignDataLabel(t){let e=t.plotX;t.plotX=pN(t.dlBox&&t.dlBox.centerX,t.plotX),t.dataLabel&&t.shapeArgs?.width&&t.dataLabel.css({width:`${t.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),t.plotX=e}translatePoint(t){let e=this.xAxis,i=this.yAxis,s=this.columnMetrics,o=this.options,r=o.minPointLength||0,n=(t.shapeArgs&&t.shapeArgs.width||0)/2,a=this.pointXOffset=s.offset,h=pN(t.x2,t.x+(t.len||0)),l=o.borderRadius,d=this.chart.plotTop,c=this.chart.plotLeft,p=t.plotX,u=e.translate(h,0,0,0,1),g=Math.abs(u-p),f=this.chart.inverted,m=pN(o.borderWidth,1),x,y,b=s.offset,v=Math.round(s.width),M,k,w,S;r&&((x=r-g)<0&&(x=0),p-=x/2,u+=x/2),p=Math.max(p,-10),u=pC(u,-10,e.len+10),pE(t.options.pointWidth)&&(b-=(Math.ceil(t.options.pointWidth)-v)/2,v=Math.ceil(t.options.pointWidth)),o.pointPlacement&&pI(t.plotY)&&i.categories&&(t.plotY=i.translate(t.y,0,1,0,1,o.pointPlacement));let A=pO(Math.min(p,u),m),T=pO(Math.max(p,u),m)-A,P=Math.min(pW("object"==typeof l?l.radius:l||0,v),Math.min(T,v)/2),C={x:A,y:pO((t.plotY||0)+b,m),width:T,height:v,r:P};t.shapeArgs=C,f?t.tooltipPos[1]+=a+n:t.tooltipPos[0]-=n+a-C.width/2,k=(M=C.x)+C.width,M<0||k>e.len?(M=pC(M,0,e.len),w=(k=pC(k,0,e.len))-M,t.dlBox=pR(C,{x:M,width:k-M,centerX:w?w/2:null})):t.dlBox=null;let O=t.tooltipPos,E=f?1:0,L=f?0:1,B=this.columnMetrics?this.columnMetrics.offset:-s.width/2;f?O[E]+=C.width/2:O[E]=pC(O[E]+(e.reversed?-1:0)*C.width,e.left-c,e.left+e.len-c-1),O[L]=pC(O[L]+(f?-1:1)*B,i.top-d,i.top+i.len-d-1),(y=t.partialFill)&&(pD(y)&&(y=y.amount),pI(y)||(y=0),t.partShapeArgs=pR(C),S=Math.max(Math.round(g*y+t.plotX-p),0),t.clipRectArgs={x:e.reversed?C.x+g-S:C.x,y:C.y,width:S,height:C.height}),t.key=t.category||t.name,t.yCategory=i.categories?.[t.y??-1]}translate(){for(let t of(super.translate.apply(this,arguments),this.points))this.translatePoint(t)}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeType,r=t.shapeArgs,n=t.partShapeArgs,a=t.clipRectArgs,h=t.state,l=i.states[h||"normal"]||{},d=void 0===h?"attr":e,c=this.pointAttribs(t,h),p=pN(this.chart.options.chart.animation,l.animation),u=t.graphic,g=t.partialFill;if(t.isNull||!1===t.visible)u&&(t.graphic=u.destroy());else if(u?u.rect[e](r):(t.graphic=u=s.g("point").addClass(t.getClassName()).add(t.group||this.group),u.rect=s[o](pR(r)).addClass(t.getClassName()).addClass("highcharts-partfill-original").add(u)),n&&(u.partRect?(u.partRect[e](pR(n)),u.partialClipRect[e](pR(a))):(u.partialClipRect=s.clipRect(a.x,a.y,a.width,a.height),u.partRect=s[o](n).addClass("highcharts-partfill-overlay").add(u).clip(u.partialClipRect))),!this.chart.styledMode&&(u.rect[e](c,p).shadow(i.shadow),n)){pD(g)||(g={}),pD(i.partialFill)&&(g=pR(i.partialFill,g));let e=g.fill||pA(c.fill).brighten(-.3).get()||pA(t.color||this.color).brighten(-.3).get();c.fill=e,u.partRect[d](c,p).shadow(i.shadow)}}drawPoints(){let t=this.getAnimationVerb();for(let e of this.points)this.drawPoint(e,t)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(t){let e=t.shapeArgs,i=t.plotX,s=t.plotY;return e?void 0!==i&&void 0!==s&&s>=0&&s<=this.yAxis.len&&(e.x||0)+(e.width||0)>=0&&i<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}pH.defaultOptions=pR(pT.defaultOptions,{colorByPoint:!0,dataLabels:{formatter:function(){let t=this.partialFill;if(pb(t)&&(t=t.amount),py(t)&&t>0)return px(100*t)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{ucfirst point.x} - {point.x2}
',pointFormat:' {series.name}: {point.yCategory}
'},borderRadius:3,pointRange:0}),pL(pH.prototype,{pointClass:pk,pointArrayMap:["x2","y"],getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:rf.series.prototype.animate,autoIncrement:pS,buildKDTree:pS}),rf.registerSeriesType("xrange",pH),pH.compose(O.Axis);let{xrange:{prototype:{pointClass:pF}}}=rf.seriesTypes;class pX extends pF{static setGanttPointAliases(t,e){t.x=t.start=e.time.parse(t.start??t.x),t.x2=t.end=e.time.parse(t.end??t.x2),t.partialFill=t.completed=t.completed??t.partialFill}applyOptions(t,e){let i=super.applyOptions(t,e);return pX.setGanttPointAliases(i,i.series.chart),this.isNull=!this.isValid?.(),i}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}let{isNumber:pY}=tt,{addEvent:pj,find:pU,fireEvent:pV,isArray:p$,isNumber:p_,pick:pq}=tt;!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,n;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(n&&!1!==n.visible||(n=i[r+1]),t=i[r],!1!==n.visible&&!1!==t.visible){if(n.x-t.x>o){let e=(t.x+n.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new ao(s,s.options.stackLabels,!1,e,this.stack)).total=0)}n=t}}return this.getGraphPath(i)}t.compose=function(t,l){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),pj(t,"init",o),pj(t,"afterInit",e),pj(t,"afterSetTickPositions",s),pj(t,"afterSetOptions",i);let d=l.prototype;d.drawBreaks=a,d.gappedPath=h,pj(l,"afterGeneratePoints",r),pj(l,"afterRender",n)}return t};class l{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(l.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return pU(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==l.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=l.lin2Val,s.val2lin=l.val2Lin,s.setExtremes=function(t,e,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=h;for(;p{t.getOffset()})}i&&t.apply(this)}function ue(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:e,height:i,horiz:s,left:o,offset:r,opposite:n,options:a,top:h,width:l}=this,d=this.tickSize(),c=e&&e.getBBox().width,p=a.title.x,u=a.title.y,g=p6(a.title.margin,s?5:10),f=e?this.chart.renderer.fontMetrics(e).f:0,m=(s?h+i:o)+(s?1:-1)*(n?-1:1)*(d?d[0]/2:0)+(this.side===T.bottom?f:0);t.titlePosition.x=s?o-(c||0)/2-g+p:m+(n?l:0)+r+p,t.titlePosition.y=s?m-(n?i:0)+(n?f:-f)/2+r+u:h-g+u}}function ui(){let{chart:t,options:{grid:e={}},userOptions:i}=this;if(e.enabled&&function(t){let e=t.options;e.labels.align=p6(e.labels.align,"center"),t.categories||(e.showLastLabel=!1),t.labelRotation=0,e.labels.rotation=0,e.minTickInterval=1}(this),e.columns){let s=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++ot.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,e;let i=this.tickmarkOffset,r=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(e=this.hiddenMarks.pop())&&e.element;)e.show();(t=this.ticks[n].label)&&(s-n>i?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[r].label)&&(r-o>i?this.hiddenLabels.push(t.hide()):t.show());let a=this.ticks[r].mark;a&&r-o0&&this.ticks[r].isLast&&this.hiddenMarks.push(a.hide())}}}function uo(){let t=this.tickPositions&&this.tickPositions.info,e=this.options,i=e.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&e.dateTimeLabelFormats&&e.labels&&!pQ(s.align)&&(!1===e.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(e.labels.align="left",pQ(s.x)||(e.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function ur(t){let e;let i=this.options,s=t.userOptions,o=i&&p8(i.grid)?i.grid:{};!0===o.enabled&&(e=p5(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(pQ(s.linkedTo)&&!pQ(s.tickPixelInterval)&&(e.tickPixelInterval=350),!(!pQ(s.tickPixelInterval)&&pQ(s.linkedTo))||pQ(s.tickPositioner)||pQ(s.tickInterval)||pQ(s.units)||(e.tickPositioner=function(t,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=e.units||[],r,n=1,a="year";for(let t=0;tt.setScale())}function uh(t){let{horiz:e,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=e?s.cellHeight||o+i.height:o+i.width;p2(t.tickSize)?t.tickSize[0]=r:t.tickSize=[r,0]}}function ul(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function ud(t){let{grid:e}=this;(e.columns||[]).forEach(e=>e.destroy(t.keepEvents)),e.columns=void 0}function uc(t){let e=t.userOptions||{},i=e.grid||{};i.enabled&&pQ(i.borderColor)&&(e.tickColor=e.lineColor=i.borderColor),this.grid||(this.grid=new um(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function up(t){let e=this.label,i=this.axis,s=i.reversed,o=i.chart,r=i.options.grid||{},n=i.options.labels,a=n.align,h=T[i.side],l=t.tickmarkOffset,d=i.tickPositions,c=this.pos-l,p=p3(d[t.index+1])?d[t.index+1]-l:(i.max||0)+l,u=i.tickSize("tick"),g=u?u[0]:0,f=u?u[1]/2:0;if(!0===r.enabled){let r,l,d,u;if("top"===h?l=(r=i.top+i.offset)-g:"bottom"===h?r=(l=o.chartHeight-i.bottom+i.offset)+g:(r=i.top+i.len-(i.translate(s?p:c)||0),l=i.top+i.len-(i.translate(s?c:p)||0)),"right"===h?u=(d=o.chartWidth-i.right+i.offset)+g:"left"===h?d=(u=i.left+i.offset)-g:(d=Math.round(i.left+(i.translate(s?p:c)||0))-f,u=Math.min(Math.round(i.left+(i.translate(s?c:p)||0))-f,i.left+i.len)),this.slotWidth=u-d,t.pos.x="left"===a?d:"right"===a?u:d+(u-d)/2,t.pos.y=l+(r-l)/2,e){let i=o.renderer.fontMetrics(e),s=e.getBBox().height;if(n.useHTML)t.pos.y+=i.b+-(s/2);else{let e=Math.round(s/i.h);t.pos.y+=(i.b-(i.h-i.f))/2+-((e-1)*i.h/2)}}t.pos.x+=i.horiz&&n.x||0}}function uu(t){let{axis:e,value:i}=t;if(e.options.grid&&e.options.grid.enabled){let s;let o=e.tickPositions,r=(e.linkedParent||e).series[0],n=i===o[0],a=i===o[o.length-1],h=r&&p1(r.options.data,function(t){return t[e.isXAxis?"x":"y"]===i});h&&r.is("gantt")&&(s=p5(h),O.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,e.chart)),t.isFirst=n,t.isLast=a,t.point=s}}function ug(){let t=this.options,e=t.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],a=s[s.length-2],h=this.linkedParent&&this.linkedParent.min,l=this.linkedParent&&this.linkedParent.max,d=h||this.min,c=l||this.max,p=this.tickInterval,u=p3(d)&&d>=o+p&&dd,f=p3(c)&&n>c&&n-pa;!0===e.enabled&&!i&&(this.isXAxis||this.isLinked)&&((g||u)&&!t.startOnTick&&(s[0]=d),(f||m)&&!t.endOnTick&&(s[s.length-1]=c))}function uf(t){var e;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:t.apply(this,(e=arguments,Array.prototype.slice.call(e,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(T||(T={}));class um{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,e=t.chart,i=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],o=i?t.linkedParent:t,r=-1,n=0;return 3===t.side&&!e.inverted&&s.length?!t.linkedParent:((e[t.coll]||[]).forEach((e,i)=>{e.side!==t.side||e.options.isInternal||(n=i,e!==o||(r=i))}),n===r&&(!p3(i)||s.length===i))}renderBorder(t){let e=this.axis,i=e.chart.renderer,s=e.options,o=i.path(t).addClass("highcharts-axis-line").add(e.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}pK.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},pK.W=function(t){let e=this.toParts(t),i=(e[7]+6)%7,s=e.slice(0);s[2]=e[2]-i+3;let o=this.toParts(this.makeTime(s[0],0,1));return 4!==o[7]&&(e[1]=0,e[2]=1+(11-o[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(o[0],o[1],o[2]))/6048e5)).toString()};let ux={compose:function(t,e,i){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=p7,p4(t.prototype,"unsquish",uf),p4(t.prototype,"getOffset",ut),pJ(t,"init",uc),pJ(t,"afterGetTitlePosition",ue),pJ(t,"afterInit",ui),pJ(t,"afterRender",us),pJ(t,"afterSetAxisTranslation",uo),pJ(t,"afterSetOptions",ur),pJ(t,"afterSetOptions",un),pJ(t,"afterSetScale",ua),pJ(t,"afterTickSize",uh),pJ(t,"trimTicks",ug),pJ(t,"destroy",ud),pJ(e,"afterSetChartSize",ul),pJ(i,"afterGetLabelPosition",up),pJ(i,"labelFormat",uu)),t}},{extend:uy,isNumber:ub,pick:uv}=tt;function uM(t,e,i,s,o,r){let n=r&&r.after,a=r&&r.before,h={data:s,depth:i-1,id:t,level:i,parent:e||""},l=0,d=0,c,p;"function"==typeof a&&a(h,r);let u=(o[t]||[]).map(e=>{let s=uM(e.id,t,i+1,e,o,r),n=e.start||NaN,a=!0===e.milestone?n:e.end||NaN;return c=!ub(c)||np?a:p,l=l+1+s.descendants,d=Math.max(s.height+1,d),s});return s&&(s.start=uv(s.start,c),s.end=uv(s.end,p)),uy(h,{children:u,descendants:l,height:d}),"function"==typeof n&&n(h,r),h}let uk={getNode:uM,getTree:function(t,e){return uM("",null,1,null,function(t){let e=[],i=t.reduce((t,i)=>{let{parent:s="",id:o}=i;return void 0===t[s]&&(t[s]=[]),t[s].push(i),o&&e.push(o),t},{});return Object.keys(i).forEach(t=>{if(""!==t&&-1===e.indexOf(t)){let e=i[t].map(function(t){let{...e}=t;return e});i[""].push(...e),delete i[t]}}),i}(t),e)}},{addEvent:uw,removeEvent:uS,isObject:uA,isNumber:uT,pick:uP,wrap:uC}=tt;function uO(){this.treeGrid||(this.treeGrid=new uB(this))}function uE(t,e,i,s,o,r,n,a,h){let l,d,c;let p=uP(this.options&&this.options.labels,r),u=this.pos,g=this.axis,f="treegrid"===g.type,m=t.apply(this,[e,i,s,o,p,n,a,h]);if(f){let{width:t=0,padding:e=g.linkedParent?0:5}=p&&uA(p.symbol,!0)?p.symbol:{},i=p&&uT(p.indentation)?p.indentation:0;c=(d=(l=g.treeGrid.mapOfPosToGridNode)&&l[u])&&d.depth||1,m.x+=t+2*e+(c-1)*i}return m}function uL(t){let e,i,s;let{pos:o,axis:r,label:n,treeGrid:a,options:h}=this,l=a?.labelIcon,d=n?.element,{treeGrid:c,options:p,chart:u,tickPositions:g}=r,f=c.mapOfPosToGridNode,m=uP(h?.labels,p?.labels),x=m&&uA(m.symbol,!0)?m.symbol:{},y=f&&f[o],{descendants:b,depth:v}=y||{},M=y&&b&&b>0,k="treegrid"===r.type&&d,w=g.indexOf(o)>-1,S="highcharts-treegrid-node-",A=S+"level-",T=u.styledMode;k&&y&&n.removeClass(RegExp(A+".*")).addClass(A+v),t.apply(this,Array.prototype.slice.call(arguments,1)),k&&M?(e=c.isCollapsed(y),function(t,e){let i=t.treeGrid,s=!i.labelIcon,o=e.renderer,r=e.xy,n=e.options,a=n.width||0,h=n.height||0,l=n.padding??t.axis.linkedParent?0:5,d={x:r.x-a/2-l,y:r.y-h/2},c=e.collapsed?90:180,p=e.show&&uT(d.y),u=i.labelIcon;u||(i.labelIcon=u=o.path(o.symbols[n.type](n.x||0,n.y||0,a,h)).addClass("highcharts-label-icon").add(e.group)),u[p?"show":"hide"](),o.styledMode||u.attr({cursor:"pointer",fill:uP(e.color,"#666666"),"stroke-width":1,stroke:n.lineColor,strokeWidth:n.lineWidth||0}),u[s?"attr":"animate"]({translateX:d.x,translateY:d.y,rotation:c})}(this,{color:!T&&n.styles.color||"",collapsed:e,group:n.parentGroup,options:x,renderer:n.renderer,show:w,xy:n.xy}),i=S+(e?"collapsed":"expanded"),s=S+(e?"expanded":"collapsed"),n.addClass(i).removeClass(s),T||n.css({cursor:"pointer"}),[n,l].forEach(t=>{t&&!t.attachedTreeGridEvents&&(uw(t.element,"mouseover",function(){n.addClass("highcharts-treegrid-node-active"),n.renderer.styledMode||n.css({textDecoration:"underline"})}),uw(t.element,"mouseout",function(){!function(t,e){let i=uA(e.style)?e.style:{};t.removeClass("highcharts-treegrid-node-active"),t.renderer.styledMode||t.css({textDecoration:i.textDecoration||"none"})}(n,m)}),uw(t.element,"click",function(){a.toggleCollapse()}),t.attachedTreeGridEvents=!0)})):l&&(uS(d),n?.css({cursor:"default"}),l.destroy())}class uB{static compose(t){let e=t.prototype;e.toggleCollapse||(uw(t,"init",uO),uC(e,"getLabelPosition",uE),uC(e,"renderLabel",uL),e.collapse=function(t){this.treeGrid.collapse(t)},e.expand=function(t){this.treeGrid.expand(t)},e.toggleCollapse=function(t){this.treeGrid.toggleCollapse(t)})}constructor(t){this.tick=t}collapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.collapse(r);s.setBreaks(n,uP(t,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(t){let{pos:e,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,r=s.mapOfPosToGridNode;if(o&&r){let i=r[e],n=s.expand(i);o.setBreaks(n,uP(t,!0))}}toggleCollapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.toggleCollapse(r);s.setBreaks(n,uP(t,!0))}}}let{extend:uI,isArray:uD,isNumber:uR,isObject:uN,merge:uz,pick:uW,relativeLength:uG}=tt,{getLevelOptions:uH}={getColor:function(t,e){let i,s,o,r,n,a;let h=e.index,l=e.mapOptionsToLevel,d=e.parentColor,c=e.parentColorIndex,p=e.series,u=e.colors,g=e.siblings,f=p.points,m=p.chart.options.chart;return t&&(i=f[t.i],s=l[t.level]||{},i&&s.colorByPoint&&(r=i.index%(u?u.length:m.colorCount),o=u&&u[r]),p.chart.styledMode||(n=uW(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&h&&g?tC.parse(t).brighten(e.to*(h/g)).get():t})(d),p.color)),a=uW(i&&i.options.colorIndex,s&&s.colorIndex,r,c,e.colorIndex)),{color:n,colorIndex:a}},getLevelOptions:function(t){let e,i,s,o,r,n;let a={};if(uN(t))for(o=uR(t.from)?t.from:1,n=t.levels,i={},e=uN(t.defaults)?t.defaults:{},uD(n)&&(i=n.reduce((t,i)=>{let s,r,n;return uN(i)&&uR(i.level)&&(r=uW((n=uz({},i)).levelIsConstant,e.levelIsConstant),delete n.levelIsConstant,delete n.level,uN(t[s=i.level+(r?0:o-1)])?uz(!0,t[s],n):t[s]=n),t},{})),r=uR(t.to)?t.to:1,s=0;s<=r;s++)a[s]=uz({},e,uN(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(n+t)/(e||1)-t}return uG(r,n)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],n=!1!==i.levelIsConstant,a=i.points[e.i],h=a&&a.options||{},l=[],d=0;e.levelDynamic=e.level-(n?0:r.level),e.name=uW(a&&a.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=uI({},i);uI(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),l.push(s),s.visible&&(d+=s.val)});let c=uW(h.value,d);return e.visible=c>=0&&(d>0||e.visible),e.children=l,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=c,e},updateRootId:function(t){let e,i;return uN(t)&&(i=uN(t.options)?t.options:{},e=uW(t.rootNode,i.rootId,""),uN(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:uF,isArray:uX,splat:uY,find:uj,fireEvent:uU,isObject:uV,isString:u$,merge:u_,pick:uq,removeEvent:uZ,wrap:uK}=tt;function uJ(t,e){let i=t.collapseEnd||0,s=t.collapseStart||0;return i>=e&&(s-=.5),{from:s,to:i,showPoints:!1}}function uQ(t,e,i){let s=[],o=[],r={},n=e||!1,a={},h=-1,l=uk.getTree(t,{after:function(t){let e=a[t.pos],i=0,s=0;e.children.forEach(function(t){s+=(t.descendants||0)+1,i=Math.max((t.height||0)+1,i)}),e.descendants=s,e.height=i,e.collapsed&&o.push(e)},before:function(t){let e,i;let o=uV(t.data,!0)?t.data:{},l=u$(o.name)?o.name:"",d=r[t.parent],c=uV(d,!0)?a[d.pos]:null;n&&uV(c,!0)&&(e=uj(c.children,function(t){return t.name===l}))?(i=e.pos,e.nodes.push(t)):i=h++,!a[i]&&(a[i]=e={depth:c?c.depth+1:0,name:l,id:o.id,nodes:[t],children:[],pos:i},-1!==i&&s.push(l),uV(c,!0)&&c.children.push(e)),u$(t.id)&&(r[t.id]=t),e&&!0===o.collapsed&&(e.collapsed=!0),t.pos=i}});return{categories:s,mapOfIdToNode:r,mapOfPosToGridNode:a=function(t,e){let i=function(t,s,o){let r=t.nodes,n=s+(-1===s?0:e-1),a=(n-s)/2,h=s+a;return r.forEach(function(t){let e=t.data;uV(e,!0)&&(e.y=s+(e.seriesIndex||0),delete e.seriesIndex),t.pos=h}),o[h]=t,t.pos=h,t.tickmarkOffset=a+.5,t.collapseStart=n+.5,t.children.forEach(function(t){i(t,n+1,o),n=(t.collapseEnd||0)-.5}),t.collapseEnd=n+.5,o};return i(t["-1"],-1,{})}(a,i),collapsedNodes:o,tree:l}}function u0(t){let e=t.target;e.axes.filter(t=>"treegrid"===t.type).forEach(function(i){let s=i.options||{},o=s.labels,r=i.uniqueNames,n=e.time.parse(s.max),a=!i.treeGrid.mapOfPosToGridNode||i.series.some(function(t){return!t.hasRendered||t.isDirtyData||t.isDirty}),h=0,l,d;if(a){let s=[];if(l=i.series.reduce(function(t,i){let o=i.options.data||[],n=o[0],a=Array.isArray(n)&&!n.find(t=>"object"==typeof t);return s.push(a),i.visible&&(o.forEach(function(s){(a||i.options.keys&&i.options.keys.length)&&(s=i.pointClass.prototype.optionsToObject.call({series:i},s),i.pointClass.setGanttPointAliases(s,e)),uV(s,!0)&&(s.seriesIndex=h,t.push(s))}),!0===r&&h++),t},[]),n&&l.length=0&&e.indexOf(t.x2||0)>=0&&(i=t)}),uV(i,!0)?u_(i):i});t.visible&&t.setData(i,!1)}),i.treeGrid.mapOptionsToLevel=uH({defaults:o,from:1,levels:o&&o.levels,to:i.treeGrid.tree&&i.treeGrid.tree.height}),"beforeRender"===t.type&&(i.treeGrid.collapsedNodes=d.collapsedNodes)}})}function u1(t,e){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.type,r=this.ticks,n=r[e],a,h,l;s&&this.treeGrid.mapOfPosToGridNode?((a=i[(l=this.treeGrid.mapOfPosToGridNode[e]).depth])&&(h={labels:a}),!n&&o?r[e]=n=new o(this,e,void 0,void 0,{category:l.name,tickmarkOffset:l.tickmarkOffset,options:h}):(n.parameters.category=l.name,n.options=h,n.addLabel())):t.apply(this,Array.prototype.slice.call(arguments,1))}function u2(t,e,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new u6(o)),r&&(uF(e,"beforeRender",u0),uF(e,"beforeRedraw",u0),uF(e,"addSeries",function(t){if(t.options.data){let e=uQ(t.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(e.collapsedNodes)}}),uF(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(t){let e=o.treeGrid.collapse(t);o.brokenAxis&&(o.brokenAxis.setBreaks(e,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(e=>t.collapseStart!==e.collapseStart||t.collapseEnd!==e.collapseEnd)))})}),uF(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=u_({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),t.apply(o,[e,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function u3(t){let e=this.options,i=this.chart.time,s="number"==typeof e.linkedTo?this.chart[this.coll]?.[e.linkedTo]:void 0;if("treegrid"===this.type){if(this.min=this.userMin??i.parse(e.min)??this.dataMin,this.max=this.userMax??i.parse(e.max)??this.dataMax,uU(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],s){let t=s.getExtremes();this.min=uq(t.min,t.dataMin),this.max=uq(t.max,t.dataMax),this.tickPositions=s.tickPositions}this.linkedParent=s}else t.apply(this,Array.prototype.slice.call(arguments,1))}function u5(t){let e=this;"treegrid"===this.type&&e.visible&&e.tickPositions.forEach(function(t){let i=e.ticks[t];i.label&&i.label.attachedTreeGridEvents&&(uZ(i.label.element),i.label.attachedTreeGridEvents=!1)}),t.apply(e,Array.prototype.slice.call(arguments,1))}class u6{static compose(t,e,i,s){if(!t.keepProps.includes("treeGrid")){let e=t.prototype;t.keepProps.push("treeGrid"),uK(e,"generateTick",u1),uK(e,"init",u2),uK(e,"setTickInterval",u3),uK(e,"redraw",u5),e.utils={getNode:uk.getNode},o||(o=s)}return ux.compose(t,e,s),pZ.compose(t,i),uB.compose(s),t}constructor(t){this.axis=t}setCollapsedStatus(t){let e=this.axis,i=e.chart;e.series.forEach(function(e){let s=e.options.data;if(t.id&&s){let o=i.get(t.id),r=s[e.data.indexOf(o)];o&&r&&(o.collapsed=t.collapsed,r.collapsed=t.collapsed)}})}collapse(t){let e=this.axis,i=e.options.breaks||[],s=uJ(t,e.max);return i.push(s),t.collapsed=!0,e.treeGrid.setCollapsedStatus(t),i}expand(t){let e=this.axis,i=e.options.breaks||[],s=uJ(t,e.max);return t.collapsed=!1,e.treeGrid.setCollapsedStatus(t),i.reduce(function(t,e){return(e.to!==s.to||e.from!==s.from)&&t.push(e),t},[])}getTickPositions(){let t=this.axis,e=Math.floor(t.min/t.tickInterval)*t.tickInterval,i=Math.ceil(t.max/t.tickInterval)*t.tickInterval;return Object.keys(t.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=e&&r<=i&&!(t.brokenAxis&&t.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(t){let e=this.axis,i=e.options.breaks||[],s=uJ(t,e.max);return i.some(function(t){return t.from===s.from&&t.to===s.to})}toggleCollapse(t){return this.isCollapsed(t)?this.expand(t):this.collapse(t)}}let{series:u9,seriesTypes:{xrange:u4}}=rf,{extend:u8,isNumber:u7,merge:gt}=tt;class ge extends u4{static compose(t,e,i,s){u4.compose(t),e&&(pm.compose(t,e),i)&&(pl.compose(e,i.prototype.pointClass),s&&u6.compose(t,e,i,s))}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeArgs,r=t.plotY,n=t.selected&&"select",a=i.stacking&&!i.borderRadius,h=t.graphic,l;t.options.milestone?u7(r)&&null!==t.y&&!1!==t.visible?(l=s.symbols.diamond(o.x||0,o.y||0,o.width||0,o.height||0),h?h[e]({d:l}):t.graphic=h=s.path(l).addClass(t.getClassName(),!0).add(t.group||this.group),this.chart.styledMode||t.graphic.attr(this.pointAttribs(t,n)).shadow(i.shadow,null,a)):h&&(t.graphic=h.destroy()):super.drawPoint(t,e)}translatePoint(t){let e,i;super.translatePoint(t),t.options.milestone&&(i=(e=t.shapeArgs).height||0,t.shapeArgs={x:(e.x||0)-i/2,y:e.y,width:i,height:i})}}ge.defaultOptions=gt(u4.defaultOptions,{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
',pointFormat:null,pointFormatter:function(){let t=this.series,e=t.xAxis,i=t.tooltipOptions.dateTimeLabelFormats,s=e.options.startOfWeek,o=t.tooltipOptions,r=this.options.milestone,n=o.xDateFormat,a=""+(this.name||this.yCategory)+"";if(o.pointFormat)return this.tooltipFormatter(o.pointFormat);!n&&pY(this.start)&&(n=t.chart.time.getDateFormat(e.closestPointRange,this.start,s,i||{}));let h=t.chart.time.dateFormat(n,this.start),l=t.chart.time.dateFormat(n,this.end);return a+="
",r?a+=h+"
":a+="Start: "+h+"
End: "+l+"
",a}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}),u8(ge.prototype,{pointArrayMap:["start","end","y"],pointClass:pX,setData:u9.prototype.setData}),rf.registerSeriesType("gantt",ge),O.Connection=O.Connection||lz,O.GanttChart=O.GanttChart||lJ,O.Navigator=O.Navigator||ct,O.RangeSelector=O.RangeSelector||c_,O.Scrollbar=O.Scrollbar||dj,O.ganttChart=O.GanttChart.ganttChart,lO.compose(O.SVGRenderer),({compose:function(t,e){lF(lW,"CurrentDateIndication")&&(lG(t,"afterSetOptions",lj),lG(e,"render",lU),lX(e.prototype,"getLabelText",lV))}}).compose(O.Axis,O.PlotLineOrBand),ge.compose(O.Axis,O.Chart,O.Series,O.Tick),O.Navigator.compose(O.Chart,O.Axis,O.Series),O.RangeSelector.compose(O.Axis,O.Chart),O.Scrollbar.compose(O.Axis),/** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i,s,o;var r,n,a,h,l,d,c,p,u,g,f,m,x,y,b,v,M,k,w,S,A,T,P={};P.d=(t,e)=>{for(var i in e)P.o(e,i)&&!P.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},P.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var C={};P.d(C,{default:()=>go}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.1.0",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(r||(r={}));let O=r,{charts:E,doc:L,win:B}=O;function I(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=H(t),n=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(n+="?"),Z(s,function(e,i){t+=` + - ${i}: ${e}`,r&&(n+=encodeURI(i)+"="+encodeURI(e))}),n+=t}J(O,"displayError",{chart:i,code:t,message:n,params:s},function(){if(e)throw Error(n);B.console&&-1===I.messages.indexOf(n)&&console.warn(n)}),I.messages.push(n)}function D(t,e){return parseInt(t,e||10)}function R(t){return"string"==typeof t}function N(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function z(t,e){return!!t&&"object"==typeof t&&(!e||!N(t))}function W(t){return z(t)&&"number"==typeof t.nodeType}function G(t){let e=t&&t.constructor;return!!(z(t,!0)&&!W(t)&&e&&e.name&&"Object"!==e.name)}function H(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function F(t){return null!=t}function X(t,e,i){let s;let o=R(e)&&!F(i),r=(e,i)=>{F(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return R(e)?r(i,e):Z(e,r),s}function Y(t){return N(t)?t:[t]}function j(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function U(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(I||(I={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let q=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let Q=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();B.jQuery&&(B.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new O[R(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):E[X(this[0],"data-highcharts-chart")]});let tt={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;O.Point&&t instanceof O.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let n=t.addEventListener;n&&n.call(t,e,i,!!O.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let a={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(a),r[e].sort((t,e)=>t.order-e.order),function(){K(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=Y(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let n=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!n?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=B.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),U(s,"opacity"!==i)&&(o=D(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(a<=(e[r]+(e[r+1]||e[r]))/2)));r++);return _(n*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:Z,offset:function(t){let e=L.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(B.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(B.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:U,pInt:D,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:K,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:Y,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return R(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:Q,useSerialIds:function(e){return t=U(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:te}=O,{defined:ti,error:ts,extend:to,isNumber:tr,isObject:tn,isString:ta,merge:th,objectEach:tl,pad:td,splat:tc,timeUnits:tp,ucfirst:tu}=tt,tg=O.isSafari&&te.Intl&&!te.Intl.DateTimeFormat.prototype.formatRange,tf=t=>void 0===t.main,tm=t=>["D","L","M","X","J","V","S"].indexOf(t),tx=class{constructor(t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=te.Date,this.update(t)}update(t={}){this.dTLCache={},this.options=t=th(!0,this.options,t);let{timezoneOffset:e,useUTC:i}=t;this.Date=t.Date||te.Date||Date;let s=t.timezone;ti(i)&&(s=i?"UTC":void 0),e&&e%60==0&&(s="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==s&&s?.indexOf("Etc/GMT")!==0,this.timezone=s,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,n,a]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,n,a,Math.floor(Number(t)||0)%1e3,tm(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;ta(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(ts(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):ts(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&to(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,n){let a=this.Date.UTC(t,e,i,s,o||0,r||0,n||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(a);if(a+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(a);t!==e?a+=e-t:t-36e5!==this.getTimezoneOffset(a-36e5)||tg||(a-=36e5)}}return a}parse(t){if(!ta(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(tr(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),n=-(36e5*(s+r/60));if(tr(n))return n}return 0}dateFormat(t,e,i){let s=O.defaultOptions?.lang;if(!ti(e)||isNaN(e))return s?.invalidDate||"";if(ta(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(ta(t)&&-1!==t.indexOf("%")){let i=this,[o,r,n,a,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,f=s?.shortMonths||this.shortMonths;tl(to({a:u?u[c]:p[c].substr(0,3),A:p[c],d:td(n),e:td(n,2," "),w:c,b:f[r],B:g[r],m:td(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:td(a),k:a,I:td(a%12||12),l:a%12||12,M:td(h),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:td(l),L:td(d,3)},O.dateFormats),function(s,o){if(ta(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(tn(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(to({timeZone:s},t),e)+r}return i?tu(t):t}resolveDTLFormat(t){return tn(t,!0)?tn(t,!0)&&tf(t)?{main:t}:t:{main:(t=tc(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],n={},{count:a=1,unitRange:h}=t,[l,d,c,p,u,g]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),ti(e)){if(f=h>=tp.second?0:a*Math.floor(f/a),h>=tp.second&&(g=h>=tp.minute?0:a*Math.floor(g/a)),h>=tp.minute&&(u=h>=tp.hour?0:a*Math.floor(u/a)),h>=tp.hour&&(p=h>=tp.day?0:a*Math.floor(p/a)),h>=tp.day&&(c=h>=tp.month?1:Math.max(1,a*Math.floor(c/a))),h>=tp.month&&(d=h>=tp.year?0:a*Math.floor(d/a)),h>=tp.year&&(l-=l%a),h===tp.week){a&&(e=o.makeTime(l,d,c,p,u,g,f));let t=tm(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*tp.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*a):t+=h*a,x++;r.push(t),h<=tp.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(n[t]="day")})}return r.info=to(t,{higherRanks:n,totalRange:h*a}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",n={millisecond:15,second:12,minute:9,hour:6,day:3},a="millisecond",h=a;for(a in tp){if(t===tp.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){a="week";break}if(tp[a]>t){a=h;break}if(n[a]&&o.substr(n[a])!==r.substr(n[a]))break;"week"!==a&&(h=a)}return this.resolveDTLFormat(s[a]).main}},{isTouchDevice:ty}=O,{fireEvent:tb,merge:tv}=tt,tM={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:ty?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tM.chart.styledMode=!0,tM.chart.styledMode=!1;let tk=new tx(tM.time),tw={defaultOptions:tM,defaultTime:tk,getOptions:function(){return tM},setOptions:function(t){return tb(O,"setOptions",{options:t}),tv(!0,tM,t),t.time&&tk.update(tM.time),t.lang&&"locale"in t.lang&&tk.update({locale:t.lang.locale}),tM}},{isNumber:tS,merge:tA,pInt:tT,defined:tP}=tt;class tC{static parse(t){return t?new tC(t):tC.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=O.Color;if(r&&r!==tC)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tC(t[1]));else if("string"==typeof t)for(this.input=t=tC.names[t.toLowerCase()]||t,s=tC.parsers.length;s--&&!i;)(e=(o=tC.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tA(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tS(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tS(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tT(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tS(i[0])||!tS(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),n=s.slice(0,3).map(r).map(Math.round);return o&&n.push(r(s[3],3)),(o?"rgba(":"rgb(")+n.join(",")+")"}}tC.names={white:"#ffffff",black:"#000000"},tC.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tT(t[1]),tT(t[2]),tT(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tT(t[1]+t[1],16),tT(t[2]+t[2],16),tT(t[3]+t[3],16),tP(t[4])?tT(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tT(t[1],16),tT(t[2],16),tT(t[3],16),tP(t[4])?tT(t[4],16)/255:1]}}],tC.None=new tC("");let{parse:tO}=tC,{win:tE}=O,{isNumber:tL,objectEach:tB}=tt;class tI{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=a+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tB(h,function(t){!0!==t&&(i=!1)}),i&&n&&n.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/a),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),n=t.isArea,a=n?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,u=e&&e.slice();if(!u||h)return[r,r];function g(t,e){for(;t.length{let i=tX(t.options.animation);r=tW(e)&&tD(e.defer)?s.defer:Math.max(r,i.duration+i.defer),n=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-n),duration:Math.min(r,n)}},setAnimation:function(t,e){e.renderer.globalAnimation=tF(t,e.options.chart.animation,!0)},stop:tY},{SVG_NS:tU,win:tV}=O,{attr:t$,createElement:t_,css:tq,error:tZ,isFunction:tK,isString:tJ,objectEach:tQ,splat:t0}=tt,{trustedTypes:t1}=tV,t2=t1&&tK(t1.createPolicy)&&t1.createPolicy("highcharts",{createHTML:t=>t}),t3=t2?t2.createHTML(""):"";class t5{static filterUserAttributes(t){return tQ(t,(e,i)=>{let s=!0;-1===t5.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tJ(e)&&t5.allowedReferences.some(t=>0===e.indexOf(t))),s||(tZ(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tJ(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t5.emptyHTML,e&&new t5(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t0(e).forEach(function(e){let o;let r=e.tagName,n=e.textContent?O.doc.createTextNode(e.textContent):void 0,a=t5.bypassHTMLFiltering;if(r){if("#text"===r)o=n;else if(-1!==t5.allowedTags.indexOf(r)||a){let s="svg"===r?tU:i.namespaceURI||tU,h=O.doc.createElementNS(s,r),l=e.attributes||{};tQ(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),t$(h,a?l:t5.filterUserAttributes(l)),e.style&&tq(h,e.style),n&&h.appendChild(n),t(e.children||[],h),o=h}else tZ(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t2?t2.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=t_("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t5.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t5.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t5.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t5.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t5.emptyHTML=t3,t5.bypassHTMLFiltering=!1;let{defaultOptions:t6,defaultTime:t9}=tw,{doc:t4}=O,{extend:t8,getNestedProperty:t7,isArray:et,isNumber:ee,isObject:ei,isString:es,pick:eo,ucfirst:er}=tt,en={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!et(t)&&t.map((i,s)=>el(e.body,t8(ei(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:er,unless:t=>!t},ea={},eh=t=>/^["'].+["']$/.test(t);function el(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu,r=[],n=/f$/,a=/\.(\d)/,h=i?.options.lang||t6.lang,l=i&&i.time||t9,d=i&&i.numberFormatter||ed,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:eh(t)?t.slice(1,-1):t7(t,e))},p,u,g=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),u&&u.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let n=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");en[n]&&(u.isBlock&&n===u.fn&&g++,u.fn||(u.fn=n));let a="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||a)){if(g)!a&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],a||(r.push(u),u=void 0)}}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let r,p;let{body:u,elseBody:g,expression:f,fn:m}=s;if(m){let t=[s],o=[],n=f.length,a=0,h;for(p=0;p<=n;p++){let t=f.charAt(p);h||'"'!==t&&"'"!==t?h===t&&(h=""):h=t,h||" "!==t&&p!==n||(o.push(f.substr(a,p-a)),a=p+1)}for(p=en[m].length;p--;)t.unshift(c(o[p+1]));r=en[m].apply(e,t),s.isBlock&&"boolean"==typeof r&&(r=el(r?u:g,e,i))}else{let t=eh(f)?[f]:f.split(":");if(r=c(t.shift()||""),t.length&&"number"==typeof r){let e=t.join(":");if(n.test(e)){let t=parseInt((e.match(a)||["","-1"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&es(r)&&(r=`"${r}"`)}t=t.replace(s.find,eo(r,""))}),f?el(t,e,i):t}function ed(t,e,i,s){e=+e;let o,r,[n,a]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||t6.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):ee(e)?e&&a<0&&((r=e+a)>=0?(n=+n.toExponential(r).split("e")[0],e=r):(n=Math.floor(n),t=e<20?+(n*Math.pow(10,a)).toFixed(e):0,a=0)):e=2,a&&(e??(e=2),t=n),ee(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||h.locale||t4.body.closest("[lang]")?.lang,g=JSON.stringify(c)+u;return o=(ea[g]??(ea[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(a<0)||d)||(o="0"),a&&0!=+o&&(o+="e"+(a<0?"":"+")+a),o}let ec={dateFormat:function(t,e,i){return t9.dateFormat(t,e,i)},format:el,helpers:en,numberFormat:ed};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,O.Renderer=s)}}(n||(n={}));let ep=n,{clamp:eu,pick:eg,pushUnique:ef,stableSort:em}=tt;(a||(a={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,n=(t,e)=>t.target-e.target,a=[],h=e.length,l=[],d=a.push,c,p,u,g=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(em(e,(t,e)=>(e.rank||0)-(t.rank||0)),u=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?u:h-1;u&&x>r;)f=e[c=Math.floor(p)],ef(l,c)&&(x-=f.size),p+=u,y&&p>=e.length&&(u/=2,p=u);l.sort((t,e)=>e-t).forEach(t=>d.apply(a,e.splice(t,1)))}for(em(e,n),e=e.map(t=>({size:t.size,targets:[t.target],align:eg(t.align,.5)}));g;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=eu(m-f.size*f.align,0,i-f.size);for(c=e.length,g=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),g=!0)}return d.apply(o,a),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),em(o,n),o};let ex=a,{animate:ey,animObject:eb,stop:ev}=tj,{deg2rad:eM,doc:ek,svg:ew,SVG_NS:eS,win:eA,isFirefox:eT}=O,{addEvent:eP,attr:eC,createElement:eO,crisp:eE,css:eL,defined:eB,erase:eI,extend:eD,fireEvent:eR,getAlignFactor:eN,isArray:ez,isFunction:eW,isNumber:eG,isObject:eH,isString:eF,merge:eX,objectEach:eY,pick:ej,pInt:eU,pushUnique:eV,replaceNested:e$,syncTimeout:e_,uniqueKey:eq}=tt;class eZ{_defaultGetter(t){let e=ej(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={"text-align":t?.align},r=this.renderer,n=r.alignedObjects,a=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||eF(i)?i||"renderer":void 0;h&&(a&&eV(n,this),i=void 0);let l=ej(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eN(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eN(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=eb(ej(e,this.renderer.globalAnimation,!0)),o=s.defer;return ek.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),e_(()=>{this.element&&ey(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eY(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&O.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=ek.createElementNS(eS,"tspan");eC(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let n=ek.createElementNS(eS,"tspan");n.textContent="​",eC(n,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(n),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eZ.symbolCustomAttribs,n,a,h=this,l;return"string"==typeof t&&void 0!==e&&(n=t,(t={})[n]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eY(t,function(e,i){l=!1,s||ev(this,i),this.symbolName&&-1!==r.indexOf(i)&&(a||(this.symbolAttr(t),a=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eq()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eD(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,n=eE(i,e),a=eE(s,e);return eD(t,{x:n,y:a,width:eE(o,e)-n,height:eE(r,e)-a}),eB(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,n,a,h,l,d,c,p,u,g=[],f;eR(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(n=t[r],h=s.gradients,l=t.stops,p=i.radialReference,ez(n)&&(t[r]=n={x1:n[0],y1:n[1],x2:n[2],y2:n[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eB(n.gradientUnits)&&(a=n,n=eX(n,s.getRadialAttr(p,a),{gradientUnits:"userSpaceOnUse"})),eY(n,function(t,e){"id"!==e&&g.push(e,t)}),eY(l,function(t){g.push(t)}),h[g=g.join(",")])u=h[g].attr("id");else{n.id=u=eq();let t=h[g]=s.createElement(r).attr(n).add(s.defs);t.radAttr=a,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tC.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+u+")",i.setAttribute(e,f),i.gradient=g,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eY(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eD(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eU(t.width)),eD(this.styles,t),o&&!ew&&this.renderer.forExport&&delete t.width;let r=eT&&t.fontSize||null;r&&(eG(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let n=eX(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>n&&delete n[t]),n.color&&(n.fill=n.color)),eL(s,n)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eU(s[e])*ej(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,n;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ev(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(n=0;ne&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:n,element:a,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,u=a.namespaceURI===this.SVG_NS,g=ej(e,this.rotation,0),f=h.styledMode?a&&eZ.prototype.getStyle.call(a,"font-size"):l.fontSize;if(eB(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,g,this.textWidth,n,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||h.forExport){try{o=this.fakeTS&&function(t){let e=a.querySelector(".highcharts-text-outline");e&&eL(e,{display:t})},eW(o)&&o("none"),i=a.getBBox?eD({},a.getBBox()):{width:a.offsetWidth,height:a.offsetHeight,x:0,y:0},eW(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};eR(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:n,translateY:a,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eN(n),c=Number(this.element.getAttribute("y")||0)-(a?0:s),p=e*eM,u=(e-90)*eM,g=Math.cos(p),f=Math.sin(p),m=o*g,x=o*f,y=Math.cos(u),b=Math.sin(u),[[v,M],[k,w]]=[h,l].map(t=>[t-t*g,t*f]),S=i+d*(o-m)+v+w+c*y,A=S+m,T=A-r*y,P=T-m,C=s+c-d*x-M+k+c*b,O=C+x,E=O-r*b,L=E-x,B=Math.min(S,A,T,P),I=Math.min(C,O,E,L),D=Math.max(S,A,T,P)-B,R=Math.max(C,O,E,L)-I;return{x:B,y:I,width:D,height:R,polygon:[[S,C],[A,O],[T,E],[P,L]]}}getStyle(t){return eA.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=eS,this.element="span"===e||"body"===e?eO(e):ek.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eR(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eP(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eF(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eX(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eH(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eU(t):""!==t&&(eC(i=ek.createElementNS(eS,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eZ.symbolCustomAttribs.forEach(function(i){e[i]=ej(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||ek.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=e$(ej(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:n,scaleY:a,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];eB(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+ej(o,e.getAttribute("x"),0)+" "+ej(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eB(n)||eB(a))&&d.push("scale("+ej(n,1)+" "+ej(a,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,n=o===i.box,a,h,l,d=!1,c,p=this.added,u;if(eB(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eB(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(a=o.childNodes).length-1;u>=0&&!d;u--)c=!eB(l=(h=a[u]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!n&&!u?(o.insertBefore(r,a[u]),d=!0):(eU(l)<=t||c&&(!eB(t)||t>=0))&&(o.insertBefore(r,a[u+1]),d=!0));d||(o.insertBefore(r,a[n?3:0]),d=!0)}return d}}eZ.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],eZ.prototype.strokeSetter=eZ.prototype.fillSetter,eZ.prototype.yGetter=eZ.prototype.xGetter,eZ.prototype.matrixSetter=eZ.prototype.rotationOriginXSetter=eZ.prototype.rotationOriginYSetter=eZ.prototype.rotationSetter=eZ.prototype.scaleXSetter=eZ.prototype.scaleYSetter=eZ.prototype.translateXSetter=eZ.prototype.translateYSetter=eZ.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eK=eZ,{defined:eJ,extend:eQ,getAlignFactor:e0,isNumber:e1,merge:e2,pick:e3,removeEvent:e5}=tt;class e6 extends eK{constructor(t,e,i,s,o,r,n,a,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=n,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,a).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e6.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=e0(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&e1(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e2(t),e6.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eK.prototype.css.call(this,t)}destroy(){e5(this.element,"mouseenter"),e5(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eK.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:n=0}=this,a=e3(this.paddingLeft,i),h=e??(this.rotation||0),l={width:n,height:s,x:o+this.bBox.x-a,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:e3(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&eJ(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){e1(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!e1(this.widthSetting)||!e1(this.heightSetting)||this.textAlign)&&eJ(e.textStr)?e.getBBox(void 0,0):e6.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(eQ(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+e0(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=e1(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=e3(this.paddingLeft,t),i=e3(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}e6.emptyBBox={width:0,height:0,x:0,y:0},e6.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e9,isNumber:e4,pick:e8}=tt;function e7(t,e,i,s,o){let r=[];if(o){let n=o.start||0,a=e8(o.r,i),h=e8(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(a,1)),d=Math.abs((o.end||0)-n-2*Math.PI)0&&h0)return l;if(t+a>i-n){if(h>e+n&&he+n&&h0){let i=hs&&an&&l.splice(1,1,["L",a-6,e],["L",a,e-6],["L",a+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return e7(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:it,roundedRect:ie,square:it,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:is,SVG_NS:io,win:ir}=O,{attr:ia,extend:ih,fireEvent:il,isString:id,objectEach:ic,pick:ip}=tt,iu=(t,e)=>t.substring(0,e)+"…",ig=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=ip(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,n=!t.added&&i.box,a=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(a!==t.textCache){t.textCache=a,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){n&&n.appendChild(e);let i=new t5(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),n&&n.removeChild(e)}}else e.appendChild(is.createTextNode(this.unescapeEntities(s)));id(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=ia(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),ia(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",n=r.replace(/([^\^])-/g,"$1- ").split(" "),a=!this.noWrap&&(n.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(a){let r=[],a=[];for(;o.firstChild&&o.firstChild!==t;)a.push(o.firstChild),o.removeChild(o.firstChild);for(;n.length;)if(n.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=n.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,n,0===d&&c||0,s,l,(t,e)=>n.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){n.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,iu),t.textContent=t.textContent?.replace("…","")+"…");break}a.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(is.createTextNode(e),t);let s=is.createElementNS(io,"tspan");s.textContent="​",ia(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,iu)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ir.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ir.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:n={},tagName:a}=i,h=this.renderer.styledMode;if("b"===a||"strong"===a?h?o.class="highcharts-strong":n.fontWeight="bold":("i"===a||"em"===a)&&(h?o.class="highcharts-emphasized":n.fontStyle="italic"),n&&n.color&&(n.fill=n.color),"br"===a){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===a&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==a&&"a"!==a&&(i.tagName="tspan"),ih(i,{attributes:o,style:n}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),il(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,n){let a,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let f=function(e,o){let r=o||e,n=t.parentNode;if(n&&void 0===c[r]&&n.getSubStringLength)try{c[r]=s+n.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(a=n(i,g)),h=f(g,a&&a.length-1),p===u?p=u+1:h>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=a||n(e||i,g)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,iu)}i&&i.splice(0,g),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return ic(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:im}=tw,{charts:ix,deg2rad:iy,doc:ib,isFirefox:iv,isMS:iM,isWebKit:ik,noop:iw,SVG_NS:iS,symbolSizes:iA,win:iT}=O,{addEvent:iP,attr:iC,createElement:iO,crisp:iE,css:iL,defined:iB,destroyObjectProperties:iI,extend:iD,isArray:iR,isNumber:iN,isObject:iz,isString:iW,merge:iG,pick:iH,pInt:iF,replaceNested:iX,uniqueKey:iY}=tt;class ij{constructor(t,e,i,s,o,r,n){let a,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;n||l.css(this.getStyle(s||{})),t.appendChild(d),iC(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iC(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ib.createTextNode("Created with Highcharts 12.1.0")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=n,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),iv&&t.getBoundingClientRect&&((a=function(){iL(t,{left:0,top:0}),h=t.getBoundingClientRect(),iL(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=iP(iT,"resize",a))}definition(t){return new t5([t]).addToDOM(this.defs.element)}getReferenceURL(){if((iv||ik)&&ib.getElementsByTagName("base").length){if(!iB(e)){let t=iY(),i=new t5([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ib.body);iL(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ib.elementFromPoint(6,6);e="hitme"===(s&&s.id),ib.body.removeChild(i)}if(e)return iX(iT.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iD({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iI(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iG({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ig(t).buildSVG()}getContrast(t){let e=tC.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,n,a,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=iG(im.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t5.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iG(m[0],t5.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),iP(d.element,iM?"mouseover":"mouseenter",function(){3!==u&&d.setState(1)}),iP(d.element,iM?"mouseout":"mouseleave",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iz(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iD({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==u&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iB(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iE(i[1],e)),iB(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iE(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iR(t)?e.d=t:iz(t)&&iD(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iz(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let n;iz(t)?(e=(n=t).y,i=n.r,s=n.innerR,o=n.start,r=n.end,t=n.x):n={innerR:s,start:o,end:r};let a=this.symbol("arc",t,e,i,i,n);return a.r=i,a}rect(t,e,i,s,o,r){let n=iz(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},a=this.createElement("rect");return this.styledMode||(void 0!==r&&(n["stroke-width"]=r,iD(n,a.crisp(n))),n.fill="none"),a.rSetter=function(t,e,i){a.r=t,iC(i,{rx:t,ry:t})},a.rGetter=function(){return a.r||0},a.attr(n)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iH(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let n={preserveAspectRatio:"none"};iN(e)&&(n.x=e),iN(i)&&(n.y=i),iN(s)&&(n.width=s),iN(o)&&(n.height=o);let a=this.createElement("image").attr(n),h=function(e){a.attr({href:t}),r.call(a,e)};if(r){a.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iT.Image;iP(e,"load",h),e.src=t,e.complete&&h({})}else a.attr({href:t});return a}symbol(t,e,i,s,o,r){let n,a,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(a=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),n=this.path(a),d.styledMode||n.attr("fill","none"),iD(n,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&iD(n,r);else if(p){h=t.match(c)[1];let s=n=this.image(h);s.imgwidth=iH(r&&r.width,iA[h]&&iA[h].width),s.imgheight=iH(r&&r.height,iA[h]&&iA[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:n,imgwidth:a,imgheight:h}=this,l="width"===e?a:h,d=1;r&&"within"===r.backgroundSize&&o&&n&&a&&h?(d=Math.min(o/a,n/h),iC(s,{width:Math.round(a*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&a&&h&&this.translate(((o||0)-a*d)/2,((n||0)-h*d)/2)}}),iB(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iB(s.imgwidth)&&iB(s.imgheight)?l(s):(s.attr({width:0,height:0}),iO("img",{onload:function(){let t=ix[d.chartIndex];0===this.width&&(iL(this,{position:"absolute",top:"-999em"}),ib.body.appendChild(this)),iA[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return n}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iB(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iD(ij.prototype,{Element:eK,SVG_NS:iS,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:ii,draw:iw}),ep.registerRendererType("svg",ij,!0);let{composed:iU}=O,{attr:iV,css:i$,createElement:i_,defined:iq,extend:iZ,getAlignFactor:iK,isNumber:iJ,pInt:iQ,pushUnique:i0}=tt;function i1(t,e,i){let s=this.div?.style||i.style;eK.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i2=(t,e)=>{if(!t.div){let i=iV(t.element,"class"),s=t.css,o=i_("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=i1,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eK.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class i3 extends eK{static compose(t){i0(iU,this.compose)&&(t.prototype.html=function(t,e,i){return new i3(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=iQ(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),iJ(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),iZ(this.styles,t),i$(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:n,styles:a,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,{display:g="block",whiteSpace:f}=a;if(i$(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let a;let d=[i,h,t.innerHTML,l,this.textAlign].join(","),c=-(this.parentGroup?.padding*1)||0;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(i$(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(i$(t,{width:e>s||i||r?l+"px":"auto",display:g,whiteSpace:f||"normal"}),this.oldTextWidth=l)}d!==this.cTT&&(a=e.fontMetrics(t).b,iq(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,c,c),this.getSpanCorrection(!iq(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,a,iK(h)));let{xCorr:m=0,yCorr:x=0}=this,y={left:`${p+m}px`,top:`${u+x}px`,textAlign:h,transformOrigin:`${(s??p)-m-p-c}px ${(o??u)-x-u-c}px`};(r||n)&&(y.transform=`scale(${r??1},${n??1})`),i$(t,y),this.cTT=d,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){i$(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=i2(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t5.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i5=i3.prototype;i5.visibilitySetter=i5.opacitySetter=i1,i5.ySetter=i5.rotationSetter=i5.rotationOriginXSetter=i5.rotationOriginYSetter=i5.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(h||(h={}));let i6=h,{addEvent:i9,isFunction:i4,objectEach:i8,removeEvent:i7}=tt;(l||(l={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i8(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i7(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i4(e)&&(t.eventOptions[i]=e,i9(t,i,e,{order:0})))})};let st=l,{deg2rad:se}=O,{clamp:si,correctFloat:ss,defined:so,destroyObjectProperties:sr,extend:sn,fireEvent:sa,getAlignFactor:sh,isNumber:sl,merge:sd,objectEach:sc,pick:sp}=tt,su=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,sa(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,n=e.names,a=t.pos,h=sp(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=a===l[0],c=a===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,u=l.info,g=t.label,f,m,x,y=this.parameters.category||(o?sp(o[a],n[a],a):a);r&&sl(y)&&(y=ss(r.lin2log(y))),e.dateTime&&(u?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&u.higherRanks[a]||u.unitName])).main:sl(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:a,tick:t,tickPositionInfo:u,value:y};sa(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),ec.format(h.format,t,s)):e.defaultLabelFormatter.call(t),M=v.call(b,b),k=m&&m.list;k?t.shortenLabel=function(){for(x=0;x0&&s+d*c>a&&(x=Math.round((o-s)/Math.cos(l*se))):(f=s-d*c,m=s+(1-d)*c,fa&&(u=a-t.x+u*d,g=-1),(u=Math.min(p,u))u||e.autoRotation&&(h.styles||{}).width)&&(x=u)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(sn({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,n;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sc(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(n=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,n),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,n=sp(this.tickmarkOffset,s.tickmarkOffset),a=this.getPosition(o,r,n,e),h=a.x,l=a.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(ss(p)c)&&(i=0);let u=sp(i,this.label&&this.label.newOpacity,1);i=sp(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(a,i),this.renderLabel(a,e,u,t),this.isNew=!1,sa(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,n=this.type,a=sp(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),n||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(n?n+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+a,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,n=i.tickSize(r?r+"Tick":"tick"),a=t.x,h=t.y,l=sp(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;n&&(i.opposite&&(n[0]=-n[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(a,h,n[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,n=o.options,a=this.label,h=n.labels,l=h.step,d=sp(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;a&&sl(c)&&(a.xy=t=this.getLabelPosition(c,p,a,r,h,d,s,l),(!this.isFirst||this.isLast||n.showFirstLabel)&&(!this.isLast||this.isFirst||n.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):u=!1,l&&s%l&&(u=!1),u&&sl(t.y)?(t.opacity=i,a[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(a.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sg}=tj,{xAxis:sf,yAxis:sm}=i6,{defaultOptions:sx}=tw,{registerEventOptions:sy}=st,{deg2rad:sb}=O,{arrayMax:sv,arrayMin:sM,clamp:sk,correctFloat:sw,defined:sS,destroyObjectProperties:sA,erase:sT,error:sP,extend:sC,fireEvent:sO,getClosestDistance:sE,insertItem:sL,isArray:sB,isNumber:sI,isString:sD,merge:sR,normalizeTickInterval:sN,objectEach:sz,pick:sW,relativeLength:sG,removeEvent:sH,splat:sF,syncTimeout:sX}=tt,sY=(t,e)=>sN(e,void 0,void 0,sW(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sC(sx,{xAxis:sf,yAxis:sR(sf,sm)});class sj{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sO(this,"init",{userOptions:e}),this.opposite=sW(e.opposite,this.opposite),this.side=sW(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,n=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sO(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sW(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sB(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sS(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let a=sW(r.crosshair,sF(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===a?{}:a,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sL(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sS(this.reversed)&&(this.reversed=!0),this.labelRotation=sI(n.rotation)?n.rotation:void 0,sy(this,r),sO(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sR(e,sx[this.coll],t),sO(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sI(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,n=sx.lang,a=n.numericSymbols,h=n.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=a&&a.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&a&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==a[d]&&0!==i&&(p=e(i/c,-1)+a[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sO(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,n,a;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,n=(t=i.getXExtremes(o)).min,a=t.max,sI(n)||n instanceof Date||(o=o.filter(sI),n=(t=i.getXExtremes(o)).min,a=t.max),o.length&&(e.dataMin=Math.min(sW(e.dataMin,n),n),e.dataMax=Math.max(sW(e.dataMax,a),a)));else{let t=i.applyExtremes();sI(t.dataMin)&&(n=t.dataMin,e.dataMin=Math.min(sW(e.dataMin,n),n)),sI(t.dataMax)&&(a=t.dataMax,e.dataMax=Math.max(sW(e.dataMax,a),a)),sS(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sO(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let n=this.linkedParent||this,a=s&&n.old?n.old.min:n.min;if(!sI(a))return NaN;let h=n.minPixelPadding,l=(n.isOrdinal||n.brokenAxis?.hasBreaks||n.logarithmic&&o)&&n.lin2val,d=1,c=0,p=s&&n.old?n.old.transA:n.transA,u=0;return p||(p=n.transA),i&&(d*=-1,c=n.len),n.reversed&&(d*=-1,c-=d*(n.sector||n.len)),e?(u=(t=t*d+c-h)/p+a,l&&(u=n.lin2val(u))):(l&&(t=n.val2lin(t)),u=d*(t-a)*p+c+d*h+(sI(r)?p*r:0),n.isRadial||(u=sw(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,n=t.value,a=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sk(t,e,i):x=!0),t}let b={value:n,lineWidth:a,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sO(this,"getPlotLinePath",b,function(t){u=f=(c=sk(c=sW(c,e.translate(n,void 0,void 0,r)),-1e9,1e9))+d,g=m=h-c-d,sI(c)?e.horiz?(g=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=f=y(u,s,s+e.width)):(u=s,f=l-e.right+(i.scrollablePixelsX||0),g=m=y(g,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",f,m]],a||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let n=sw(Math.floor(e/t)*t),a=sw(Math.ceil(i/t)*t),h=[];if(sw(n+t)===n&&(r=20),this.single)return[e];for(s=n;s<=a&&(h.push(s),(s=sw(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sW(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,n=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,a=[],h;if(n&&n/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sI(s)&&sI(o)&&sI(r)&&s-o=r,n=(r-s+o)/2,h=[o-n,i.parse(t.min)??o-n],a&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sv(h))+r,i.parse(t.max)??o+r],a&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sM(l))-ot-e),t=sE([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sB(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sS(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sW(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sI(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,n,a=0,h=0,l,d=t.transA;(o||s||r)&&(n=t.getClosest(),i?(a=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sW(e.options.pointRange,n,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;a=Math.max(a,t&&sD(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&n?t.ordinal.slope/n:1,t.minPointOffset=a*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&n&&(t.closestPointRange=n)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*a,sO(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sI(t)&&sI(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:n,logarithmic:a,options:h,softThreshold:l}=this,d=i.time,c=sI(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:f,softMax:m,softMin:x}=h,y=sI(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,M=h.minPadding,k=0,w,S=sI(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,A,T,P,C;if(r||e||y||this.getTickAmount(),P=sW(this.userMin,d.parse(h.min)),C=sW(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,w=y.getExtremes(),this.min=sW(w.min,w.dataMin),this.max=sW(w.max,w.dataMax),this.type!==y.type&&sP(11,!0,i)):(l&&sS(c)&&sI(s)&&sI(o)&&(o>=c?(A=c,M=0):s<=c&&(T=c,v=0)),this.min=sW(P,A,o),this.max=sW(C,T,s)),sI(this.max)&&sI(this.min)&&(a&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sW(o,this.min))&&sP(10,!0,i),this.min=sw(a.log2lin(this.min),16),this.max=sw(a.log2lin(this.max),16)),this.range&&sI(o)&&(this.userMin=this.min=P=Math.max(o,this.minFromRange()||0),this.userMax=C=this.max,this.range=void 0)),sO(this,"foundExtremes"),this.adjustForMinRange(),sI(this.min)&&sI(this.max)){if(!sI(this.userMin)&&sI(x)&&xthis.max&&(this.max=C=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(k=this.max-this.min)||(!sS(P)&&M&&(this.min-=k*M),sS(C)||!v||(this.max+=k*v)),!sI(this.userMin)&&sI(g)&&(this.min=Math.max(this.min,g)),!sI(this.userMax)&&sI(u)&&(this.max=Math.min(this.max,u)),l&&sI(o)&&sI(s)){let t=c||0;!sS(P)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sS(C)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sS(h.min)?this.max=this.min:sS(h.max)&&(this.min=this.max)),k=this.max-this.min}if(this.min!==this.max&&sI(this.min)&&sI(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sW(S,this.tickAmount?k/Math.max(this.tickAmount-1,1):void 0,e?1:k*b/Math.max(this.len,b)):this.tickInterval=1,n&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sO(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sO(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let O=sW(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))a=[this.min,this.max],sP(19,!1,this.chart);else if(this.dateTime)a=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)a=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(a=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&a.length>this.tickAmount)this.tickInterval=sY(this,e*=1.1);else break}a.length>this.len&&(a=[a[0],a[a.length-1]])[0]===a[1]&&(a.length=1),i&&(this.tickPositions=a,(h=i.apply(this,[this.min,this.max]))&&(a=h))}this.tickPositions=a,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=a.slice(0),this.trimTicks(a,r,n),!this.isLinked&&sI(this.min)&&sI(this.max)&&(this.single&&a.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sO(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sO(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:n}=i;n.length&&n.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&n){s.forEach(t=>{let i=t.getThresholdAlignment(e);sI(i)&&a.push(i)});let t=a.length>1?a.reduce((t,e)=>t+=e,0)/a.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sI(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sI(this.threshold)){let t=sk((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sS(t.tickInterval)||i||!(this.lenr.push(sw(r[r.length-1]+p)),f=()=>r.unshift(sw(r[0]-p));if(sI(a)&&(u=a<.5?Math.ceil(a*(n-1)):Math.floor(a*(n-1)),o.reversed&&(u=n-1-u)),t.hasData()&&sI(s)&&sI(i)){let a=()=>{t.transA*=(h-1)/(n-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sI(u)&&sI(t.threshold)){for(;r[u]!==l||r.length!==n||r[0]>s||r[r.length-1]t.threshold?f():g();if(p>8*t.tickInterval)break;p*=2}a()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sO(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sO(this,"setExtremes",o=sC(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sG(sW(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sG(sW(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),n=this.top=Math.round(sG(sW(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),a=this.left=Math.round(sG(sW(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-n,this.right=t.chartWidth-o-a,this.len=Math.max(s?o:r,0),this.pos=s?a:n}getExtremes(){let t=this.logarithmic;return{min:t?sw(t.lin2log(this.min)):this.min,max:t?sw(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sW(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sO(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,n=sw(.8*this.labelMetrics().h),a=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>a&&t!==1/0&&o!==1/0&&a&&(i=Math.ceil(a/s)),sw(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sI(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(n/Math.sin(sb*i))))+Math.abs(i/360))g&&(g=i)}),this.maxLabelLength=g,this.autoRotation?g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0:a&&(p=h),l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,n={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sC(n,{width:`${p}px`,lineClamp:u})):!i.styles.width||n.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sS(this.min)&&sS(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,n=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),n||this.axisTitle.css(sR(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),n||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new su(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,n)=>o.g(e).attr({zIndex:n}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:n,coll:a}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sI(s.crossing),u=e.axisOffset,g=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,M,k;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(n.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sW(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&n.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sz(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sS(y=d.offset)?0:sW(d.margin,i?5:10))),t.renderLine(),t.offset=f*sW(s.offset,u[o]?u[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},k=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,M=Math.abs(v)+b,v&&(M-=k,M+=f*(i?sW(c.y,t.tickRotCorr.y+f*c.distance):sW(c.x,f*c.distance))),t.axisTitleMargin=sW(y,M),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,n)),"colorAxis"!==a&&g){let e=this.tickSize("tick");u[o]=Math.max(u[o],(t.axisTitleMargin||0)+x+f*t.offset,M,n&&n.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[h]=Math.max(g[h],i)}sO(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,n=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?n:this.top],["L",o?e.chartWidth-this.right:r,o?n:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,n=e?i:s,a=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:n+(e?0:o),middle:n+o/2,high:n+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(a?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?u+l:g+(a?this.width:0)+h+l,y:e?g+d-(a?this.height:0)+h:u+d};return sO(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new su(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new su(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,n=i.options,a=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=n.stackLabels,g=n.alternateGridColor,f=n.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sg(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sz(t,function(t){t.isActive=!1})}),sI(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||a){let r=i.chart.hasRendered&&i.old&&sI(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new su(i,-1,null,!0)),d[-1].render(-1))),g&&h.forEach(function(r,n){e=void 0!==h[n+1]?h[n+1]+m:i.max-m,n%2==0&&r=.5)t=Math.round(t),a=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,n,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&a.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():n.tickInterval,c=n.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sK(t=sJ("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),a=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),a}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(c||(c={}));let sQ=c,{erase:s0,extend:s1,isNumber:s2}=tt;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,n=!s2(this.min)||!s2(this.max)||tthis.max&&e>this.max,a=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(a&&s)for(n&&(d=a.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s3.compose(oo,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){ot(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:n=0}=e,{renderer:a,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),u=e.borderWidth,g=e.label,{label:f,svgElem:m}=this,x=[],y,b=s4(c)&&s4(d),v=s4(p),M=!m,k={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},w=b?"bands":"lines";if(!t.chart.styledMode&&(v?(k.stroke=o||"#999999",k["stroke-width"]=os(e.width,1),e.dashStyle&&(k.dashstyle=e.dashStyle)):b&&(k.fill=o||"#e6e9ff",u&&(k.stroke=e.borderColor,k["stroke-width"]=u))),l.zIndex=n,w+="-"+n,(y=t.plotLinesAndBandsGroups[w])||(t.plotLinesAndBandsGroups[w]=y=a.g("plot-"+w).attr(l).add()),m||(this.svgElem=m=a.path().attr(k).add(y)),s4(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s4(c)&&s4(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(oi(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(M||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),g&&(s4(g.text)||s4(g.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(g=oe({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},g),this.renderLabel(g,x,b,n)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,n=t.inside,a=this.label;a||(this.label=a=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||a.css(oe({fontSize:"0.8em",textOverflow:i&&!n?"":"ellipsis"},t.style)),a.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s9(h),c=s9(l),p=s6(h)-d;a.align(t,!1,{x:d,y:c,width:p,height:s6(l)-c}),(!a.alignValue||"left"===a.alignValue||s4(n))&&a.css({width:(t.style?.width||(i&&n?p:90===a.rotation?o.height-(a.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(a.alignAttr.x-o.left)))+"px"}),a.show(!0)}getLabelText(t){return s4(t.formatter)?t.formatter.call(this):t.text}destroy(){s7(this.axis.plotLinesAndBands,this),delete this.axis,s8(this)}}let{animObject:or}=tj,{format:on}=ec,{composed:oa,dateFormats:oh,doc:ol,isSafari:od}=O,{distribute:oc}=ex,{addEvent:op,clamp:ou,css:og,discardElement:of,extend:om,fireEvent:ox,isArray:oy,isNumber:ob,isObject:ov,isString:oM,merge:ok,pick:ow,pushUnique:oS,splat:oA,syncTimeout:oT}=tt;class oP{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||oA(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),of(this.container)),tt.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,n=s.plotTop,a=s.plotLeft;if((t=oA(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-a,e.chartY-n];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-a,o-n]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+ow(t.colorIndex,o.colorIndex),r&&r.className].filter(oM).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,n=this.container,a=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=ep.getRendererType();this.container=n=O.doc.createElement("div"),n.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),og(n,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=a=new i(n,0,0,e,void 0,void 0,a.styledMode)}if(r?this.label=a.g("tooltip"):(this.label=a.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,n&&(n.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return n&&!n.parentElement&&O.doc.body.appendChild(n),this.label}getPlayingField(){let{body:t,documentElement:e}=ol,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:n}=this,{inverted:a,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=a&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=n.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let n="x"===i;return[i,n?m:f,n?t:e].concat(r?[n?y(t):b(e),n?x.left-s+y(c+h):x.top-s+b(p+l),0,n?m:f]:[n?t:e,n?c+h:p+l,n?h:l,n?h+o.plotWidth:l+o.plotHeight])},M=v("y"),k=v("x"),w,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let A=!this.followPointer&&ow(i.ttBelow,!d&&!a===S),T=function(t,e,i,o,n,a,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+g)}},P=function(t,e,i,o,r){if(re-s)return!1;re-o/2?u[t]=e-o-2:u[t]=r-i/2},C=function(t){[M,k]=[k,M],w=t},O=()=>{!1!==T.apply(0,M)?!1!==P.apply(0,k)||w||(C(!0),O()):w?u.x=u.y=0:(C(!0),O())};return(a&&!d||this.len>1)&&C(),O(),u}hide(t){let e=this;tt.clearTimeout(this.hideTimer),t=ow(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oT(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=ow(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=or(!o.isHidden&&o.options.animation),n=o.followPointer||(o.len||0)>1,a={x:t,y:e};n||(a.anchorX=i,a.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(a,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,n=oA(t),a=n[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!a.series)return;tt.clearTimeout(this.hideTimer),this.allowShared=!(!oy(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&a.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(n),n.forEach(t=>t.setState("hover")),a.points=n),this.len=n.length;let f=oM(h)?on(h,a,i):l.call(a,this);a.points=void 0;let m=a.series;if(this.distance=ow(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,n);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||n.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(a),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:ou(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||a.color||m.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:a.negative,ttBelow:a.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ox(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:n,plotLeft:a,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{positioner:g},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?ol.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,M=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:k,top:w}=f.getChartPosition(),S=h+x,A=0,T=n-l;function P(t,e,s,o,r=!0){let n,a;return s?(n=M?0:T,a=ou(t-o/2,y.left,y.right-o-(i.outside?k:0))):(n=e-S,a=ou(a=r?t-o-p:t+p,r?a:y.left,y.right)),{x:a,y:n}}oM(t)&&(t=[!1,t]);let C=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:n,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:n}=e;if(!o){let t={padding:u.padding,r:u.borderRadius};c||(t.fill=u.backgroundColor,t["stroke-width"]=u.borderWidth??1),o=v.label("",0,0,u[r?"headerShape":"shape"],void 0,void 0,u.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(u.style).attr({stroke:u.borderColor||e.color||n.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(A=m.height,T+=A,M&&(S-=A));let{anchorX:k,anchorY:w}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(a+o,a),i=h+n/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+ou(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=ou(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof w){let e=m.height+1,s=g?g.call(i,x,e,r):P(k,w,l,x);t.push({align:g?0:void 0,anchorX:k,anchorY:w,boxWidth:x,point:r,rank:ow(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!g&&C.some(t=>{let{outside:e}=i,s=(e?k:0)+t.anchorX;return ss})&&(C=C.map(t=>{let{x:e,y:i}=P(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return om(t,{target:i,x:e})})),i.cleanSplit(),oc(C,T);let O={left:k,right:k};C.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&k+eO.right&&(O.right=k+e))}),C.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:n}}=t,a={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(n||(a.x=e+t,a.anchorX=s+t),n&&(a.x=(O.right-O.left)/2,a.anchorX=s+t))}t.tt.attr(a)});let{container:E,outside:L,renderer:B}=i;if(L&&E&&B){let{width:t,height:e,x:i,y:s}=b.getBBox();B.setSize(t+i,e+s,!1),E.style.left=O.left+"px",E.style.top=w+"px"}od&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,n={isFooter:e,point:t},a=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return ox(this,"headerFormatter",n,function(e){if(r&&!a&&ob(t.key)&&(a=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&a){if(ov(a)){let t=a;oh[0]=e=>i.chart.time.dateFormat(t,e),a="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${a})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=on(h,t,this.chart)}),n.text||""}update(t){this.destroy(),this.init(this.chart,ok(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:n}=this,{height:a=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),u=(o.positioner||this.getPosition).call(this,h,a,t),g=O.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;n&&i&&(o.positioner&&(u.x+=l-s,u.y+=d-s),x=(o.borderWidth||0)+2*s+2,n.setSize(ou(h+x,0,g.documentElement.clientWidth)-1,a+x,!1),(1!==c||1!==p)&&(og(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-u.x,m+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),f,m)}}!function(t){t.compose=function(e){oS(oa,"Core.Tooltip")&&op(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oP||(oP={}));let oC=oP,{animObject:oO}=tj,{defaultOptions:oE}=tw,{format:oL}=ec,{addEvent:oB,crisp:oI,erase:oD,extend:oR,fireEvent:oN,getNestedProperty:oz,isArray:oW,isFunction:oG,isNumber:oH,isObject:oF,merge:oX,pick:oY,syncTimeout:oj,removeEvent:oU,uniqueKey:oV}=tt;class o${animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oR({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oR(this,t=o$.prototype.optionsToObject.call(this,t)),this.options=this.options?oR(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=o$.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oH(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oH(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oO(t.series.chart.renderer.globalAnimation),n=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oU(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oD(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oj(n,r.duration)):n(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oN(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oz(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oV()),this.resolveColor(),t.chart.pointCount++,oN(this,"afterInit")}isValid(){return(oH(this.x)||this.x instanceof Date)&&oH(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},n,a=0,h=0;if(oH(t)||null===t)r[s[0]]=t;else if(oW(t))for(!i&&t.length>o&&("string"==(n=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===n&&(r.x=t[0]),a++);h0?o$.prototype.setNestedProperty(r,t[a],s[h]):r[s[h]]=t[a]),a++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:n}=s,a=0,h=0;if(oH(i)&&oH(e))return t&&(a=r?r.pos:o.plotLeft,h=n?n.pos:o.plotTop),o.inverted&&r&&n?[n.len-e+h,r.len-i+a]:[i+a,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,n;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),n=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),n=t.colorIndex),this.colorIndex=oY(this.options.colorIndex,n),this.color=oY(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oF(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:n=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||n)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+n)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oL(t,this,e)}update(t,e,i,s){let o;let r=this,n=r.series,a=r.graphic,h=n.chart,l=n.options;function d(){r.applyOptions(t);let s=a&&r.hasMockGraphic,d=null===r.y?!s:s;a&&d&&(r.graphic=a.destroy(),delete r.hasMockGraphic),oF(t,!0)&&(a&&a.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=a.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of n.dataColumnKeys())c[t]=r[t];n.dataTable.setRow(c,o),l.data[o]=oF(l.data[o],!0)||oF(t,!0)?r.options:oY(t,l.data[o]),n.isDirty=n.isDirtyData=!0,!n.fixedBox&&n.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oY(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oY(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oX(this.series.options.point,this.options),i=e.events?.[t];oG(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oB(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oU(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oE.plotOptions[i.type].marker&&i.options.marker,n=r&&!1===r.enabled,a=r&&r.states&&r.states[t||"normal"]||{},h=!1===a.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||n&&!1===a.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),f=oY(d.options.chart.animation,o.animation);let e=g.opacity;i.options.inactiveOtherPoints&&oH(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(g,f)}u&&this.graphic.animate(u,oY(d.options.chart.animation,a.animation,r.animation)),m&&m.hide()}else t&&a&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),u&&(m?m[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,u.x,u.y,u.width,u.height,oX(r,a)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oY(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oR({fill:this.color||i.color,"fill-opacity":y.opacity},t5.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oN(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oI(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let o_=o$,{parse:oq}=tC,{charts:oZ,composed:oK,isTouchDevice:oJ}=O,{addEvent:oQ,attr:o0,css:o1,extend:o2,find:o3,fireEvent:o5,isNumber:o6,isObject:o9,objectEach:o4,offset:o8,pick:o7,pushUnique:rt,splat:re}=tt;class ri{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!O.chartCount&&(ri.unbindDocumentMouseUp.forEach(t=>t.unbind()),ri.unbindDocumentMouseUp.length=0,ri.unbindDocumentTouchEnd&&(ri.unbindDocumentTouchEnd=ri.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),o4(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o5(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:n}=this,{mouseDownX:a=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=n?1:o.plotHeight,r&&(s=t-a,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+a),n&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:n}=e.options.chart,a=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o9(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(ua+l&&(u=a+l),gh+d&&(g=h+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){f=e.isInsidePlot(i-a,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(u,g);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:n||oq("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o5(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o6(i.index)&&(this.selectionMarker=s.destroy())}i&&o6(i.index)&&(o1(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o9(r,!0)&&r.series&&(!o9(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,n=t.plotY||0;return t.isNode&&o&&o6(o.x)&&o6(o.y)&&(r=o.x,n=o.y),e?{chartX:s.len+s.pos-n,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:n+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o8(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let n=[],a=function(t){return t.visible&&!(!o&&t.directTouch)&&o7(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o5(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||a)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):a(t)&&!t.noSharedTooltip})).forEach(function(t){let e=o3(t.points,function(t){return t.x===c.x&&!t.isNull});o9(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),n.push(e))}):n.push(c)),o5(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:n}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=o0(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o5(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o7(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o2(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o5(i.series,"click",o2(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(o2(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o5(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),O.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oZ[o7(ri.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oZ[o7(ri.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),n=r.length,a=1===n&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===n&&o7(h?.options.followTouchMove,!0);n>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!a&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o5(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,n=i.tooltip,a=n&&n.shared?r:o;t&&a&&re(a).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?n&&a&&re(a).length&&(n.refresh(a),n.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),n&&n.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,n=!!r&&r.shared,a=e||s.hoverPoint,h=a&&a.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(a,h,o,l,n,t);a=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,u=n&&h&&!h.noSharedTooltip;if(a&&(i||a!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!a.series)return;s.hoverPoints=c,s.hoverPoint=a,a.firePointEvent("mouseOver",void 0,()=>{r&&a&&r.refresh(u?c:a,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oQ(s.container.ownerDocument,"mousemove",t=>oZ[ri.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o7((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=o3(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oQ(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oQ(t,"mouseleave",this.onContainerMouseLeave.bind(this))),ri.unbindDocumentMouseUp.some(t=>t.doc===e)||ri.unbindDocumentMouseUp.push({doc:e,unbind:oQ(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oQ(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oQ(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oQ(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),ri.unbindDocumentTouchEnd||(ri.unbindDocumentTouchEnd=oQ(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oQ(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oJ)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o7(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oQ(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oQ(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||o1(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||o1(i,{"touch-action":o7(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=O.charts[o7(ri.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(ri.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o7(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o7(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}ri.unbindDocumentMouseUp=[],function(t){t.compose=function(e){rt(oK,"Core.Pointer")&&oQ(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(ri||(ri={}));let rs=ri,{fireEvent:ro,isArray:rr,objectEach:rn,uniqueKey:ra}=tt,rh=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||ra(),this.modified=this,this.rowCount=0,this.versionTag=ra();let e=0;rn(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rn(this.columns,e=>{rr(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rn(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ro(this,"afterSetColumns"),this.versionTag=ra())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rn(t,(t,n)=>{let a=o[n]||s?.addColumns!==!1&&Array(r);a&&(i?a.splice(e,0,t):a[e]=t,o[n]=a)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(ro(this,"afterSetRows"),this.versionTag=ra())}},{extend:rl,merge:rd,pick:rc}=tt;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:n=0,symbolWidth:a,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,u=n-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),g={},f,m=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"===r.linecap||(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),a)/2),a){let t=[["M",x,u],["L",a-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",a-x,n],["L",x,n]]})}if(m&&!1!==m.enabled&&a){let t=Math.min(rc(m.radius,d),d);0===l.indexOf("url")&&(m=rd(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,a/2-t,u-t,2*t,2*t,rl({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,n=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,n,o,rc(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(u||(u={}));let rp=u,{defaultOptions:ru}=tw,{extend:rg,extendClass:rf,merge:rm}=tt;!function(t){function e(e,i){let s=ru.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=o_),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=O.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,n){let a=ru.plotOptions||{};if(s=s||"",a[i]=rm(a[s],o),delete t.seriesTypes[i],e(i,rf(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,n){class e extends o_{}rg(e.prototype,n),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(g||(g={}));let rx=g,{animObject:ry,setAnimation:rb}=tj,{defaultOptions:rv}=tw,{registerEventOptions:rM}=st,{svg:rk,win:rw}=O,{seriesTypes:rS}=rx,{arrayMax:rA,arrayMin:rT,clamp:rP,correctFloat:rC,crisp:rO,defined:rE,destroyObjectProperties:rL,diffObjects:rB,erase:rI,error:rD,extend:rR,find:rN,fireEvent:rz,getClosestDistance:rW,getNestedProperty:rG,insertItem:rH,isArray:rF,isNumber:rX,isString:rY,merge:rj,objectEach:rU,pick:rV,removeEvent:r$,syncTimeout:r_}=tt;class rq{constructor(){this.zoneAxis="y"}init(t,e){let i;rz(this,"init",{options:e}),this.dataTable??(this.dataTable=new rh);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rR(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rM(this,o);let n=o.events;(n&&n.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rV(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rH(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rz(this,"afterInit")}is(t){return rS[t]&&this instanceof rS[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rz(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rV(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rH(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rD(18,!0,s)})}),rz(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,n=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rV(this.pointInterval,i.pointInterval,1),o&&rX(t)&&(e*=t),s){let t=r.toParts(n);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-n}return o&&rX(t)?n+e:(this.xIncrement=n+e,n)}setDataSortingOptions(){let t=this.options;rR(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rE(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rj(t),n=i.styledMode,a={plotOptions:s,userOptions:r};rz(this,"setOptions",a);let h=a.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rv.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=a.userOptions;let u=rj(h,s.series,p,r);this.tooltipOptions=rj(rv.tooltip,rv.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rV(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===h.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map(t=>({...t}));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},n||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&rE(g[g.length-1].value)&&g.push(n?{}:{color:this.color,fillColor:this.fillColor}),rz(this,"afterSetOptions",{options:u}),u}getName(){return rV(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,n=`${t}Index`,a=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rE(o=rV("color"===t?this.options.colorIndex:void 0,this[n]))?s=o:(r.series.length||(r[a]=0),s=r[a]%h,r[a]+=1),i&&(e=i[s])),void 0!==s&&(this[n]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rv.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,n=t.x,a=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof o_&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rN(a,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rX(n)&&(o=this.getColumn("x").indexOf(n,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rX(o)&&a[o]&&a[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],n=this.requireSorting,a=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rE(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rX(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,n&&(c=l+1)):o[l]&&(o[l].touched=!0),(!a||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!a||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=rA(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,n=this.options,a=this.chart,h=n.dataSorting,l=this.xAxis,d=n.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),u=this.pointValKey||"y",g=(this.pointArrayMap||[]).length,f=n.keys,m,x,y=0,b=1,v;a.options.chart.allowMutatingData||(n.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rj(!0,t));let M=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),a.options.chart.allowMutatingData&&!1!==s&&M&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&M>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,M-1,-1),o=t=>!!(rF(t)&&(f||rX(t[0])));if(rX(i)&&rX(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[u]:i})}else if(o(i)&&o(s)){if(g){let e=i.length===g?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=g;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[u]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rG(i,t),o=rG(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,n=o.cropThreshold,a=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,u,g,f,m=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,f=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!a&&(!n||l>n||e.forceCrop)&&(m[l-1]f?x=new rh:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,g,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rW([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rD(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rz(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},n,a,h=0,l=o;for(n=0;n=e){h=Math.max(0,n-1);break}for(a=n;ai){l=a+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rh({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,n=this.cropStart||0,a=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?n:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],u=this.dataColumnKeys(),g,f,m,x,y=this.data,b;if(!y&&!a){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&a&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,u=o||this.cropped||!i,g,f,m,x=0,y=0;for(i&&(x=(g=i.getExtremes()).min,y=g.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rX(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rT(d),dataMax:rA(d)};return rz(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),a.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rU(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rz(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,n,a;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||"markerGroup"],g=this.xAxis,f=rV(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,a.x,a.y,a.width,a.height,n?r:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(a),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,n={},a,h,l=rV(o.radius,s&&s.radius);e&&(a=s.states[e],l=rV((h=o.states&&o.states[e])&&h.radius,a&&a.radius,l&&l+(a&&a.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rX(l)&&d&&(i.crisp&&(d[0]=rO(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),n.x=d[0]-l,n.y=d[1]-l),l&&(n.width=n.height=2*l),n}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,n=t&&t.color,a=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,u=rV(o.lineWidth,i.lineWidth),g=1;return d=r||a||n||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},u=rV((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,u+rV(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":u,fill:c,opacity:g=rV(l.opacity,h.opacity,g)}}destroy(t){let e,i,s;let o=this,r=o.chart,n=/AppleWebKit\/533/.test(rw.navigator.userAgent),a=o.data||[];for(rz(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rI(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=a.length;e--;)(i=a[e])&&i.destroy&&i.destroy();for(let t of o.zones)rL(t,void 0,!0);tt.clearTimeout(o.animationTimeout),rU(o,function(t,e){t instanceof eK&&!t.survive&&t[n&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rI(r.series,o),r.orderItems("series"),rU(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:n,zoneAxis:a}=this,{inverted:h,renderer:l}=e,d=this[`${a}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rP(d.toPixels(rV(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===a&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:a,simpleClip:d}=e,p=0,u=0,f=r.len,y=n.len;c?(p=o,f=x):(u=o,y=x);let b=[["M",p,u],["L",f,u],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(g(v),t&&g(b)),a?(a.animate({d:v}),d?.animate({d:b})):(a=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(a),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],n=!r,a={visibility:i,zIndex:s||.1};return rE(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(a.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rE(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(a)[n?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||r$(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=ry(i.animation),r=t.visible?"inherit":"hidden",n=i.zIndex,a=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rz(this,"render"),t.plotGroup("group","series",r,n,a),t.markerGroup=t.plotGroup("markerGroup","markers",r,n,a),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=r_(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rz(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,r_(function(){e.kdTree=function t(i,s,o){let r,n;let a=i?.length;if(a)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[n=Math.floor(a/2)],left:t(i.slice(0,n),s+1,o),right:t(i.slice(n+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[n,a]=this.kdAxisArray,h=e?"distX":"dist",l=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>[(t[i]||0)<(e[i]||0)?t:e,!1]),p=o||((t,e)=>t=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,n=o.renderer,a=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(rk?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=n.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*a)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rz(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,n;let a=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,u=a.data,g=this.getColumn("x");e=rV(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(n=g.length,this.requireSorting&&mm;)n--;d.setRow(f,n,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),u?.splice(n,0,t),(r||this.processedData)&&(this.data.splice(n,0,null),this.processData()),"point"===a.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,u,...Object.values(d.getColumns())].filter(rE).forEach(t=>{t.shift()}),d.rowCount-=1,rz(d,"afterDeleteRows"))),!1!==o&&rz(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:n,dataTable:a}=s,h=r[t],l=function(){[n?.length===r.length?n:void 0,r,s.options.data,...Object.values(a.getColumns())].filter(rE).forEach(e=>{e.splice(t,1)}),a.rowCount-=1,rz(a,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rb(i,o),e=rV(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function n(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rV(t,!0)&&r.redraw(e)}!1!==i?rz(o,"remove",null,n):n()}update(t,e){rz(this,"update",{options:t=rB(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,n=s.options.plotOptions,a=rS[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],u=t.type||o.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));u=u||r,g?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rR(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rj(o,{index:void 0===o.index?i.index:o.index,pointStart:n?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!g&&{data:i.options.data},t,h),g&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rS[u]){if(f=u!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rS[u].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in a)i[c]=void 0;rR(i,rS[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rD(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rz(this,"afterUpdate"),rV(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rV(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rE(r)?i!==o:i!==rV(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rz(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rz(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,n=s.states,a=rV(n[t||"normal"]&&n[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(n[t]&&!1===n[t].enabled)return;if(t&&(h=n[t].lineWidth||h+(n[t].lineWidthPlus||0),l=rV(n[t].opacity,l)),o&&!o.dashstyle&&rX(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},a);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},a)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let n=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[n]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rz(i,n),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rz(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rp[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rq.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rq.types=rx.seriesTypes,rq.registerType=rx.registerSeriesType,rR(rq.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:o_,requireSorting:!0,sorted:!0}),rx.series=rq;let rZ=rq,{animObject:rK,setAnimation:rJ}=tj,{registerEventOptions:rQ}=st,{composed:r0,marginNames:r1}=O,{distribute:r2}=ex,{format:r3}=ec,{addEvent:r5,createElement:r6,css:r9,defined:r4,discardElement:r8,find:r7,fireEvent:nt,isNumber:ne,merge:ni,pick:ns,pushUnique:no,relativeLength:nr,stableSort:nn,syncTimeout:na}=tt;class nh{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rQ(this,e),r5(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r5(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=ns(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=ni(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=ns(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(ni(!0,this.options,t)),"events"in this.options&&rQ(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,ns(e,!0)&&i.redraw(),nt(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:n,symbol:a}=t.legendItem||{};if((t instanceof rZ||t instanceof o_)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(ni(e?this.itemStyle:i)),n?.attr(p({stroke:d||t.color})),a&&a.attr(p(c&&a.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,nt(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,n=!o.rtl,a=t.checkbox;if(e&&e.element){let o={translateX:n?i:this.legendWidth-i-2*r-4,translateY:s};e[r4(e.translateY)?"animate":"attr"](o,void 0,()=>{nt(this,"afterPositionItem",{item:t})})}a&&(a.x=i,a.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r8(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let n=o.checkbox;n&&(r=t+s+n.y+(this.scrollOffset||0)+3,r9(n,{left:e.translateX+o.checkboxOffset+n.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*M?v.height:M))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,n=this.itemMarginTop,a=s?ns(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=n+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=n+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=n+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:a):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&ns(i.showInLegend,!r4(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),nt(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,n){r.test(o)&&!r4(t[n])&&(i[r1[n]]=Math.max(i[r1[n]],i.legend[(n+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][n]*s[n%2?"x":"y"]+ns(s.margin,12)+e[n]+(i.titleOffset[n]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,n=s,a,h;t.yAxis&&(t.xAxis.options.reversed&&(n=!n),t.points&&(o=r7(n?t.points:t.points.slice(0).reverse(),function(t){return ne(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,a=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:a,size:r,item:t}))},this),r2(i,e.plotHeight)))t=o.item.legendItem||{},ne(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,n,a,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=nr(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),nn(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),n=(this.widthOption||this.offsetWidth)+s,a=this.lastItemY+this.lastLineHeight+this.titleHeight,a=this.handleOverflow(a)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),n>0&&a>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:n,height:a},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(n=a=0),this.legendWidth=n,this.legendHeight=a,r&&this.align(),this.proximate||this.positionItems(),nt(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=ni(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(ni(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,n="top"===o.verticalAlign,a=this.padding,h=o.maxHeight,l=o.navigation,d=ns(l.animation,!0),c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?M.attr({height:t}):M&&(e.clipRect=M.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+a+"px,9999px,"+(a+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(n?-r:r)-a,v=this.nav,M=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-a,0),this.currentPage=ns(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((u[e-1].legendItem||{}).pageIx=o-1),e===u.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),M||(M=e.clipRect=s.clipRect(0,a-2,9999,0),e.contentGroup.clip(M)),g(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,n=this.options.navigation,a=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&rJ(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),a.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?n.inactiveColor:n.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?n.inactiveColor:n.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),na(()=>{nt(this,"afterScroll",{currentPage:l})},rK(ns(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,n=t instanceof o_,a=t instanceof rZ,h="highcharts-legend-"+(n?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!n)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(ni(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),nt(s,"itemClick",{browserEvent:e,legendItem:t},i),n?t.firePointEvent("legendItemClick",{browserEvent:e}):a&&nt(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=r6("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r5(t.checkbox,"click",function(e){let i=e.target;nt(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){no(r0,"Core.Legend")&&r5(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(nh||(nh={}));let nl=nh,{animate:nd,animObject:nc,setAnimation:np}=tj,{defaultOptions:nu}=tw,{numberFormat:ng}=ec,{registerEventOptions:nf}=st,{charts:nm,doc:nx,marginNames:ny,svg:nb,win:nv}=O,{seriesTypes:nM}=rx,{addEvent:nk,attr:nw,createElement:nS,css:nA,defined:nT,diffObjects:nP,discardElement:nC,erase:nO,error:nE,extend:nL,find:nB,fireEvent:nI,getAlignFactor:nD,getStyle:nR,isArray:nN,isNumber:nz,isObject:nW,isString:nG,merge:nH,objectEach:nF,pick:nX,pInt:nY,relativeLength:nj,removeEvent:nU,splat:nV,syncTimeout:n$,uniqueKey:n_}=tt;class nq{static chart(t,e,i){return new nq(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(nG(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:nX(t.zoomType,e.type),key:nX(t.zoomKey,e.key),pinchType:nX(t.pinchType,e.pinchType),singleTouch:nX(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:nH(e.resetButton,t.resetZoomButton)}}init(t,e){nI(this,"init",{args:arguments},function(){let i=nH(nu,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=nL({},t),(this.renderTo=nG(o)?nx.getElementById(o):o)||nE(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tx(nL(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||ng).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=nm.length,nm.push(this),O.chartCount++,nf(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),nI(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=nM[i];s||nE(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=nV(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?nV(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:n,len:1/0},e=i.paneCoordinates?t.pos+u:n+u;e>=Math.max(l+n,t.pos)&&e<=Math.min(l+n+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return nI(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){nI(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,n=this.renderer,a=n.isHidden(),h=[],l,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(n.rootFontSize=n.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),np(!!this.hasRendered&&t,this),a&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),u=!0):r&&(r.labelFormatter||r.labelFormat)&&(u=!0)),t.isDirtyData&&nI(t,"updatedData")}),u&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){nI(t,"afterSetExtremes",nL(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),nI(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),n.draw(),nI(this,"redraw"),nI(this,"render"),a&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=nB(this.axes,i)||nB(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{nX(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=nH(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(nL("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],n=nH(o),a=i?.textPxLength||0;if(i&&r){nI(this,"layOutTitle",{alignTo:n,key:t,textPxLength:a});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(n.width/a,1),f=Math.max(p,g),m=nH({y:"bottom"===d?h:u+h},{align:"title"===t?gp?this.chartWidth:n.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,n).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${n.x+a*f*nD(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,nI(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:nR(this.renderTo,"width",!0)||0,height:nR(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,nj(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(nA(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(nx.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(nx.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,nx.body.appendChild(e)),("none"===nR(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),nA(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==nx.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=n_(),r=this.renderTo,n=nY(nw(r,s));nz(n)&&nm[n]&&nm[n].hasRendered&&nm[n].destroy(),nw(r,s,this.index),r.innerHTML=t5.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let a=this.chartHeight,h=this.chartWidth;nA(r,{overflow:"hidden"}),this.styledMode||(t=nL({position:"relative",overflow:"hidden",width:h+"px",height:a+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=nS("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||nA(l,{width:nX(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!nb?ep.getRendererType(i.renderer):ij;if(this.renderer=new d(l,h,a,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),np(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,nI(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!nT(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!nT(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),nI(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),ny.forEach(function(i,o){nT(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return nP(this.userOptions,nu)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(tt.clearTimeout(e.reflowTimeout),e.reflowTimeout=n$(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=nk(nv,"resize",e);nk(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,np(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:n,chartHeight:a,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||n!==s.oldChartWidth||a!==s.oldChartHeight)&&(s.styledMode||(r?nd:nA)(s.container,{width:`${n+h}px`,height:`${a+l}px`},r),s.setChartSize(!0),o.setSize(n,a,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,nI(s,"resize"),setTimeout(()=>{s&&nI(s,"endResize")},nc(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:n,inverted:a,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[a?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(n-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=a?o:s,this.plotSizeY=a?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:n-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),nI(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){nI(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=nW(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=nX(e[i+s],o[r])})}),ny.forEach(function(e,i){t[e]=nX(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,n=t.backgroundColor,a=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,M,k="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),k="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),M={fill:n||"none"},(b||m["stroke-width"])&&(M.stroke=t.borderColor,M["stroke-width"]=b),m.attr(M).shadow(t.shadow)),m[k]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),k="animate",x||(k="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[k](u),!o&&(x.attr({fill:a||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(u)):this.plotBGImage=e.image(h,l,d,c,p).add())),g?g.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),k="animate",y||(k="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[k](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,nI(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(n){for(e=nM[o.type],i=o[n]||e&&e.prototype[n],t=r&&r.length;!i&&t--;)(e=nM[r[t].type])&&e.prototype[n]&&(i=!0);s[n]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(nG(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=nX(t.options.visible,s.options.visible,t.visible))}}),nI(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,n=!0,a,h=0;for(let e of(this.setTitle(),nI(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new su(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&nX(i.reserveSpace,!nz(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(n||a||s>1)&&h(h?1:1.1),a=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=nH(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(nv.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(nI(e,"destroy"),e.renderer.forExport?nO(nm,e):nm[e.index]=void 0,O.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),nU(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t5.emptyHTML,nU(o),r&&nC(o)),nF(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=nN(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),nI(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),nI(this,"load"),nI(this,"render"),nT(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),n=i.options.chart;n?.panning&&(n.panning=s),nI(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),nA(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:n={},trigger:a}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:u,minPointOffset:g=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=nX(n[x],t.len),v=nX(s[x],t.len),M=10>Math.abs(b)?1:b/v,k=(s[y]||0)+v/2-t.pos,w=k-((n[y]??t.pos)+b/2-t.pos)/M,S=m&&!h||!m&&h?-1:1;if(!o&&(k<0||k>t.len))continue;let A=t.toValue(w,!0)+(r||t.isOrdinal?0:g*S),T=t.toValue(w+u/M,!0)-(r||t.isOrdinal?0:g*S||0),P=t.allExtremes;if(A>T&&([A,T]=[T,A]),1===M&&!o&&"yAxis"===t.coll&&!P){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);P??(P={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),nz(t.dataMin)&&nz(t.dataMax)&&(P.dataMin=Math.min(t.dataMin,P.dataMin),P.dataMax=Math.max(t.dataMax,P.dataMax))}t.allExtremes=P}let{dataMin:C,dataMax:O,min:E,max:L}=nL(t.getExtremes(),P||{}),B=l.parse(f.min),I=l.parse(f.max),D=C??B,R=O??I,N=T-A,z=t.categories?0:Math.min(N,R-D),W=D-z*(nT(B)?0:f.minPadding),G=R+z*(nT(I)?0:f.maxPadding),H=t.allowZoomOutside||1===M||"zoom"!==a&&M>1,F=Math.min(B??W,W,H?E:W),X=Math.max(I??G,G,H?L:G);(!t.isOrdinal||t.options.overscroll||1!==M||o)&&(A=1&&(T=A+N)),T>X&&(T=X,M>=1&&(A=T-N)),(o||t.series.length&&(A!==E||T!==L)&&A>=F&&T<=X)&&(r?r[t.coll].push({axis:t,min:A,max:T}):(t.isPanning="zoom"!==a,t.isPanning&&(p=!0),t.setExtremes(o?void 0:A,o?void 0:T,!1,!1,{move:w,trigger:a,scale:M}),!o&&(A>F||T{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===a&&(this.options.chart.animation??this.pointCount<100)))),d}}nL(nq.prototype,{callbacks:[],collectionsWithInit:{xAxis:[nq.prototype.addAxis,[!0]],yAxis:[nq.prototype.addAxis,[!1]],series:[nq.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let nZ=nq,{stop:nK}=tj,{composed:nJ}=O,{addEvent:nQ,createElement:n0,css:n1,defined:n2,erase:n3,merge:n5,pushUnique:n6}=tt;function n9(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new n8(this)),t?.applyFixed()}function n4(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class n8{static compose(t,e,i){n6(nJ,this.compose)&&(nQ(t,"afterInit",n4),nQ(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),nQ(e,"render",n9),nQ(i,"show",n4))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:n}=t.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=n5(t.plotBox),h.width=t.plotWidth+=i,a[l?"height":"width"]+=i,o=!0)):n&&(t.scrollablePixelsY=s=Math.max(0,n-t.chartHeight),n2(s)&&(t.scrollablePlotBox=n5(t.plotBox),h.height=t.plotHeight+=s,a[l?"width":"height"]+=s,o=!1)),n2(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=ep.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),n={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(n.overflowX="auto"),t.scrollablePixelsY&&(n.overflowY="auto"),this.chart=t;let a=this.parentDiv=n0("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=n0("div",{className:"highcharts-scrolling"},n,a),l=this.innerContainer=n0("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=n0("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),n1(t.renderTo,{overflow:"visible"}),nQ(t,"afterShowResetZoom",r),nQ(t,"afterApplyDrilldown",r),nQ(t,"afterLayOutTitles",r),nQ(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:n,container:a,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=n+u;e.setSize(r,n),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),nK(t.container),n1(a,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),n1(s,{width:`${r}px`,height:`${n}px`}),n2(i)||(s.scrollLeft=p*g,s.scrollTop=u*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,M=l+c+o[1]+1,k=l+c-p,w=d+h-u,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",k,y],["L",r,y],["L",r,v],["L",k,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",M,d-1],["L",M,0],["Z"],["M",b,w],["L",b,n],["L",M,n],["L",M,w],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,n=n8.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])n6(n,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])n3(n,e);for(let t of n)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}n8.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:n7}=ec,{series:at}=rx,{destroyObjectProperties:ae,fireEvent:ai,getAlignFactor:as,isNumber:ao,pick:ar}=tt,an=class{constructor(t,e,i,s,o){let r=t.chart.inverted,n=t.reversed;this.axis=t;let a=this.isNegative=!!i!=!!n;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?a?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":a?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?a?"right":"left":"center")}destroy(){ae(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?n7(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:ar(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,ai(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:n,axis:a,label:h,options:l,textAlign:d}=this,c=a.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=n;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===ar(l.overflow,"justify"),s;n.x=l.x||0,n.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,h.align(n,!1,p),(s=c.isInsidePlot(h.alignAttr.x+n.x+o,h.alignAttr.y+n.y+r))||(i=!1),i&&at.prototype.justifyDataLabel.call(a,h,n,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*as(l.textAlign||"center"),rotationOriginY:t.height/2}),ar(!i&&l.crop,!0)&&(s=ao(h.x)&&ao(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}ai(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*as(i)-1),y:t.height/2*2*(1-as(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:n,boxBottom:a}=t,h=e.stacking.usePercentage?100:ar(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=ar(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(a||ao(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?l:l-p)-i.plotLeft,y:d.height-c-n+d.top-i.plotTop,width:p,height:n}:{x:c+d.transB-i.plotLeft,y:(g?l-p:l)-i.plotTop,width:n,height:p}}},{getDeferredAnimation:aa}=tj,{series:{prototype:ah}}=rx,{addEvent:al,correctFloat:ad,defined:ac,destroyObjectProperties:ap,fireEvent:au,isNumber:ag,objectEach:af,pick:am}=tt;function ax(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,am(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function ay(){let t=this.stacking;if(t){let e=t.stacks;af(e,(t,i)=>{ap(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function ab(){this.stacking||(this.stacking=new aA(this))}function av(t,e,i,s){return!ac(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function aM(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),n=e.options.stacking,a=e[n+"Stacker"];a&&[s,"-"+s].forEach(i=>{let s=r.length,n,h,l;for(;s--;)n=r[s],t=e.getStackIndicator(t,n,e.index,i),h=o[i]?.[n],(l=h?.points[t.key||""])&&a.call(e,l,h,s)})}function ak(t,e,i){let s=e.total?100/e.total:0;t[0]=ad(t[0]*s),t[1]=ad(t[1]*s),this.stackedYData[i]=t[1]}function aw(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?ah.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function aS(t,e){let i,s,o,r,n,a,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,f=g.threshold||0,m=g.startFromThreshold?f:0,x=g.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,M=t.stacking,k=M.stacks,w=M.oldStacks;for(M.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[a][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[a],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&k[r]?.[e]?(r=k[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):ad(S+Math.abs(g))):"group"===l?ag(u)&&S++:S=ad(S+g),"group"===l?o.cumulative=(S||1)-1:o.cumulative=ad(am(o.cumulative,m)+g),o.total=S,null!==u&&(o.points[a].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(M.usePercentage=!0),"group"!==l&&(this.stackedYData=p),M.oldStacks={}}class aA{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,n=s.length;for(this.resetStacks(),this.usePercentage=!1,e=n;e--;)t=s[r?e:n-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{af(t,t=>{t.cumulative=t.total})}))}resetStacks(){af(this.stacks,t=>{af(t,(e,i)=>{ag(e.touched)&&e.touched{af(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(f||(f={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(al(t,"init",ab),al(t,"destroy",ay),s.getStacks=ax,o.getStackIndicator=av,o.modifyStacks=aM,o.percentStacker=ak,o.setGroupedPoints=aw,o.setStackedPoints=aS)};let aT=f,{defined:aP,merge:aC,isObject:aO}=tt;class aE extends rZ{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,n=s.graph,a=n?"animate":"attr",h=s.dashStyle||t.dashStyle;n?(n.endX=this.preventGraphAnimation?null:e.xMap,n.animate({d:e})):e.length&&(s.graph=n=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),n&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),n[a](r).shadow(t.shadow&&aC({filterUnits:"userSpaceOnUse"},aO(t.shadow)?t.shadow:{}))),n&&(n.startX=e.xMap,n.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],n=[],a,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,u=l.plotY,g=t[d-1],f=l.isNull||"number"!=typeof u;(l.leftCliff||g&&g.rightCliff)&&!i&&(a=!0),f&&!aP(e)&&d>0?a=!o.connectNulls:f&&!e?a=!0:(0===d||a?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",g.plotX,u]]:2===h?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],n.push(l.x),h&&(n.push(l.x),2===h&&n.push(l.x)),r.push.apply(r,c),a=!1)}),r.xMap=n,s.graphPath=r,r}}aE.defaultOptions=aC(rZ.defaultOptions,{legendSymbol:"lineMarker"}),rx.registerSeriesType("line",aE);let{seriesTypes:{line:aL}}=rx,{extend:aB,merge:aI,objectEach:aD,pick:aR}=tt;class aN extends aL{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,n=i.area,a=n?"animate":"attr";n?(n.endX=this.preventGraphAnimation?null:t.xMap,n.animate({d:t})):(o.zIndex=0,(n=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,n.css({pointerEvents:this.stickyTracking?"none":"auto"})),n[a](o),n.startX=t.xMap,n.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=aL.prototype.getGraphPath,r=this.options,n=r.stacking,a=this.yAxis,h=[],l=[],d=this.index,c=a.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(a.getThreshold(r.threshold)),g=aR(r.connectNulls,"percent"===n),f=function(i,s,o){let r=t[i],g=n&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?g[0]:g[1])+m,y=g[0]+m,b=!!f):!n&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?u:a.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?u:a.getThreshold(y),doCurve:!1}))};t=t||this.points,n&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&n&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,n=r.stacking.stacks[this.stackKey],a={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,u){let g=0,f,m;if(a[t]&&!a[t].isNull)i.push(a[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=n[s[u+i]],g=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),n=2*h-o):op&&n>h?(n=Math.max(p,h),o=2*h-n):n1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,n=0;a6(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],a={};if(e&&a1(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(aJ(s)){if(a2(a[s]))return t===e&&(t=a[s]),!1;a[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),n=i.length}}),r=this.xAxis.reversed?n-1-r:r;let a=(n-1)*s.paddedWidth+e;t=(i.plotX||0)+a/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=a5(i.borderWidth,s?0:1),r=t.xAxis,n=t.yAxis,a=i.threshold,h=a5(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=n.getThreshold(a),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),rZ.prototype.translate.apply(t),t.points.forEach(function(s){let o=a5(s.yBottom,g),m=999+Math.abs(o),x=s.plotX||0,y=aZ(s.plotY,-m,n.len+m),b,v=Math.min(y,o),M=Math.max(y,o)-v,k=d,w=x+c,S=f;h&&Math.abs(M)h?o-h:g-(b?h:0)),aJ(s.options.pointWidth)&&(w-=Math.round(((k=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(w=t.adjustForMissingColumns(w,k,s,l)),s.barX=w,s.pointWidth=k,s.tooltipPos=e.inverted?[aZ(n.len+n.pos-e.plotLeft-y,n.pos-e.plotLeft,n.len+n.pos-e.plotLeft),r.len+r.pos-e.plotTop-w-S/2,M]:[r.left-e.plotLeft+w+S/2,aZ(y+n.pos-e.plotTop,n.pos-e.plotTop,n.len+n.pos-e.plotTop),M],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(w,s.isNull?g:v,S,s.isNull?0:M)}),a0(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",n,a,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,u=a5(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(a=t.getZone(),l=t.options.color||a&&(a.color||t.nonZonedColor)||this.color,a&&(d=a.borderColor||d,c=a.dashStyle||c,p=a.borderWidth||p)),e&&t&&(h=(n=a3(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=n.color||void 0!==h&&a_(l).brighten(n.brightness).get()||l,d=n[o]||d,p=n[r]||p,c=n.dashStyle||c,u=a5(n.opacity,u));let g={fill:l,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,n=o.animationLimit||250;t.forEach(function(t){let a=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:n}=this,a=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=ht(h)&&ht(l)&&r.isInsidePlot(h,Math.round(l),{inverted:a,paneCoordinates:!0,series:this}),p=0===d&&"justify"===hh(i.overflow,n?"none":"justify"),u=this.visible&&!1!==t.visible&&ht(h)&&(t.series.forceDL||n&&!p||c||hh(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,a?s.x+1:s.y+s.height-1,{inverted:a,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=he({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[a?"x":"y"]=0,s[a?"width":"height"]=this.yAxis?.len||0),he(i,{width:h.width,height:h.height}),f=s,n&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(hn(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=hs(i.align)*(l.width-h.width),e.alignAttr.y+=hs(i.verticalAlign)*(l.height-h.height),e.attr({"text-align":e.alignAttr["text-align"]||"center"})[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(hh(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&n&&(e.placed=!1),u||n&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:n,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(hr(l)&&l||hr(n)&&n||"#000000"),c=h(i),{animation:p,defer:u}=c[0],g=u?a8(s,p,i):{defer:0,duration:0};hi(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach(t=>{let n=t.dataLabels||[];hd(a(c,t.dlOptions||t.options?.dataLabels)).forEach((a,h)=>{let l=a.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,a),{backgroundColor:c,borderColor:p,distance:u,style:g={}}=a,f,m,x,y={},b=n[h],v=!b,M;l&&(m=ht(f=hh(a[t.formatPrefix+"Format"],a.format))?a7(f,t,s):(a[t.formatPrefix+"Formatter"]||a.formatter).call(t,a),x=a.rotation,!s.styledMode&&(g.color=hh(a.color,g.color,hr(i.color)?i.color:void 0,"#000000"),"contrast"===g.color?("none"!==c&&(M=c),t.contrastColor=r.getContrast("auto"!==M&&M||t.color||i.color),g.color=M||!ht(u)&&a.inside||0>hl(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(g.cursor=o.cursor)),y={r:a.borderRadius||0,rotation:x,padding:a.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=a.borderWidth),ha(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&ht(m)&&!!b.div==!!a.useHTML&&(b.rotation&&a.rotation||b.rotation===a.rotation)||(b=void 0,v=!0),l&&ht(m)&&(b?y.text=m:(b=r.label(m,0,0,a.shape,void 0,void 0,a.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(a.className||"")+(a.useHTML?" highcharts-tracker":"")),b&&(b.options=a,b.attr(y),s.styledMode?g.width&&b.css({width:g.width,textOverflow:g.textOverflow,whiteSpace:g.whiteSpace}):b.css(g).shadow(a.shadow),hi(b,"beforeAddingDataLabel",{labelOptions:a,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,a,void 0,v),b.isActive=!0,n[h]&&n[h]!==b&&n[h].destroy(),n[h]=b))});let h=n.length;for(;h--;)n[h]&&n[h].isActive?n[h].isActive=!1:(n[h]?.destroy(),n.splice(h,1));t.dataLabel=n[0],t.dataLabels=n})),hi(this,"afterDrawDataLabels")}function n(t,e,i,s,o,r){let n=this.chart,a=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=n.inverted?this.yAxis:this.xAxis,c=d?d.left-n.plotLeft:0,p=n.inverted?this.xAxis:this.yAxis,u=p?p.top-n.plotTop:0,{x:g=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===a&&g>=0?(e.align="left",e.inside=!0):g-=m,x=!0),(m=(i.x||0)+s.width-l+c)>n.plotWidth&&("left"===a&&g<=0?(e.align="right",e.inside=!0):g+=n.plotWidth-m,x=!0),(m=i.y+l+u)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+u)>n.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=n.plotHeight-m,x=!0),x&&(e.x=g,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function a(t,e){let i=[],s;if(ho(t)&&!ho(e))i=t.map(function(t){return hn(t,e)});else if(ho(e)&&!ho(t))i=e.map(function(e){return hn(t,e)});else if(ho(t)||ho(e)){if(ho(t)&&ho(e))for(s=Math.max(t.length,e.length);s--;)i[s]=hn(t[s],e[s])}else i=hn(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return hd(a(a(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,n=r.inverted,a=this.xAxis,h=a.reversed,l=((n?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=n?o.x:h?-l-c:a.width-l+c,e.startYPos=n?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let a=t.prototype;a.initDataLabels||(a.initDataLabels=o,a.initDataLabelsGroup=s,a.alignDataLabel=i,a.drawDataLabels=r,a.justifyDataLabel=n,a.setDataLabelStartPos=l,a.hasDataLabels=e)}}(m||(m={}));let hc=m,{composed:hp}=O,{series:hu}=rx,{merge:hg,pick:hf,pushUnique:hm}=tt;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,n=t.series,a=(n.xAxis?n.xAxis.len:this.chart.plotSizeX)||0,h=(n.yAxis?n.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=hf(t.below,t.plotY>hf(this.translatedThreshold,h)),c=hf(i.inside,!!this.options.stacking);if(l){if(s=hg(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),hS(hT.prototype,{drawTracker:hM.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hw(hT,"afterTranslate",function(){this.applyJitter()}),rx.registerSeriesType("scatter",hT);let{deg2rad:hP}=O,{fireEvent:hC,isNumber:hO,pick:hE,relativeLength:hL}=tt;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,n=Math.min(s,o),a=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let u=[hE(r?.[0],"50%"),hE(r?.[1],"50%"),hE(l&&l<0?void 0:t.size,"100%"),hE(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rZ||(u[3]=0),c=0;c<4;++c)p=u[c],h=c<2||2===c&&/%$/.test(p),u[c]=hL(p,[s,o,n,u[2]][c])+(h?i:0);return u[3]>u[2]&&(u[3]=u[2]),hO(a)&&2*a0&&(u[3]=u[2]-2*a),hC(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=hO(t)?t:0,s=hO(e)&&e>i&&e-i<360?e:i+360;return{start:hP*(i+-90),end:hP*(s+-90)}}}(y||(y={}));let hB=y,{setAnimation:hI}=tj,{addEvent:hD,defined:hR,extend:hN,isNumber:hz,pick:hW,relativeLength:hG}=tt;class hH extends o_{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hD(this,"select",s),hD(this,"unselect",s)}isValid(){return hz(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hI(i,s.chart),e=hW(e,!0),this.sliced=this.options.sliced=t=hR(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hN(hH.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:n}=this,[a,h,l]=n.center,d=l/2,{plotLeft:c,plotWidth:p}=n.chart,u="left"===t.alignment,{x:g,y:f}=t,m=o.x;if(i.crookDistance){let t=hG(i.crookDistance,1);m=u?a+d+(p+c-a-d)*(1-t):c+(a-d)*t}else m=a+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",g,f]];return(u?m<=g&&m>=o.x:m>=g&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hF}=hB,{noop:hX}=O,{clamp:hY,extend:hj,fireEvent:hU,merge:hV,pick:h$}=tt;class h_ extends rZ{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:h$(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:ii.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,n=s.dataLabelPosition,a=n?.distance||0,h=Math.asin(hY((t-o[1])/(r+a),-1,1));return o[0]+Math.cos(h)*(r+a)*(e?-1:1)+(a>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(n){let a={};e=n.graphic,!n.isNull&&e?(s=n.shapeArgs,t=n.getTranslate(),r.styledMode||(i=o.pointAttribs(n,n.selected&&"select")),n.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),n.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||hV(!0,a,i),hV(!0,a,s,t),e.animate(a)),e.attr({visibility:n.visible?"inherit":"hidden"}),e.addClass(n.getClassName(),!0)):e&&(n.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hU(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hF(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,n=this.points,a=e.ignoreHiddenPoint,h=n.length,l,d,c,p,u,g,f,m=0;for(t||(this.center=t=this.getCenter()),g=0;g1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*u],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}hU(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}h_.defaultOptions=hV(rZ.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hj(h_.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:a4.prototype.drawTracker,getCenter:hB.getCenter,getSymbol:hX,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:a4.prototype.pointAttribs,pointClass:hH,requireSorting:!1,searchPoint:hX,trackerGroups:["group","dataLabelsGroup"]}),rx.registerSeriesType("pie",h_);let{composed:hq,noop:hZ}=O,{distribute:hK}=ex,{series:hJ}=rx,{arrayMax:hQ,clamp:h0,defined:h1,pick:h2,pushUnique:h3,relativeLength:h5}=tt;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:n,options:a}=this,h=n[2]/2,l=Math.cos(r),d=Math.sin(r),c=n[0]+l*h,p=n[1]+d*h,u=Math.min((a.slicedOffset||0)+(a.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,n=Math.round(i.chartWidth/3),a=t.center,h=a[2]/2,l=a[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,g,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),hJ.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=a[2]/2,o=e.options,r=h5(o?.distance||0,s);0===i&&d[t.half].push(t),!h1(o?.style?.width)&&e.getBBox().width>n&&(e.css({width:Math.round(.7*n)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,n)=>{let d=e.length,u=[],x,y,b=0,v;d&&(t.sortByAngle(e,n-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),hK(u,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,M=(v-l.getBBox().height)/2,k=0,w=y,S="inherit";if(x){if(u&&h1(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,w=p.radialDistributionY(i,l))),d.justify)k=p.justify(i,l,h,a);else switch(d.alignTo){case"connectors":k=p.alignToConnectors(e,n,s,r);break;case"plotEdges":k=p.alignToPlotEdges(l,n,s,r);break;default:k=p.radialDistributionX(t,i,w-M,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:k+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:w+(d.y||0)-v/2},x.computed.x=k,x.computed.y=w-M,h2(d.crop,!0)){let t;k-(g=l.getBBox().width)s-b&&0===n&&(t=Math.round(k+g-s+b),c[1]=Math.max(t,c[1])),w-f/2<0?c[0]=Math.max(Math.round(-w+f/2),c[0]):w+f/2>o&&(c[2]=Math.max(Math.round(w+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===hQ(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},n=s.dataLabelPosition;if(r){let a;u=s.connector,n&&n.distance>0?(a=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||u.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),u[a?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:n.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,n=null!==i.size;return!n&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=h0(r,o,e[2]-Math.max(t[0],t[2])):(r=h0(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,n=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-a)/(l-a)+s&&(n=!n)}return n}}(v||(v={}));let{pointInPolygon:h9}=v,{addEvent:h4,fireEvent:h8,objectEach:h7,pick:lt}=tt;function le(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(h9({x:i[0],y:i[1]},e))return!0;return!1},o,r,n,a,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{h7(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=lt(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,li(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let lo={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=le,h4(t,"render",ls))}},{defaultOptions:lr}=tw,{noop:ln}=O,{addEvent:la,extend:lh,isObject:ll,merge:ld,relativeLength:lc}=tt,lp={radius:0,scope:"stack",where:void 0},lu=ln,lg=ln;function lf(t,e,i,s,o={}){let r=lu(t,e,i,s,o),{innerR:n=0,r:a=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(lc(o.borderRadius||0,a-n),(a-n)/2,a*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*n),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r;let n=t[e],a=t[e+1];if("Z"===a[0]&&(a=t[0]),("M"===n[0]||"L"===n[0])&&"A"===a[0]?(s=n,o=a,r=!0):"A"===n[0]&&("M"===a[0]||"L"===a[0])&&(s=a,o=n),s&&o&&o.params){let n=o[1],a=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,u=a?n-i:n+i,g=u?Math.asin(i/u):0,f=a?g:-g,m=Math.cos(g)*u;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+n*Math.cos(h.start),p+n*Math.sin(h.start)])):(h.end=d-f,o[6]=c+n*Math.cos(h.end),o[7]=p+n*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?u:p);return r}function lm(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=lr.plotOptions?.[this.type]?.borderRadius,o=lx(t.borderRadius,ll(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:n}=s;if("roundedRect"===s.shapeType&&n){let{width:a=0,height:h=0,y:l=0}=n,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),n=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=n.y,c=n.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(lc(o.radius,a),a/2,"all"===u?h/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),lh(n,{brBoxHeight:c,brBoxY:d,r:g})}}}}function lx(t,e){return ll(t)||(t={radius:t||0}),ld(lp,e,t)}function ly(){let t=lx(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=lc(t.radius,(i.r||0)-(i.innerR||0)))}}function lb(t,e,i,s,o={}){let r=lg(t,e,i,s,o),{r:n=0,brBoxHeight:a=s,brBoxY:h=e}=o,l=e-h,d=h+a-(e+s),c=l-n>-.1?0:n,p=d-n>-.1?0:n,u=Math.max(c&&l,0),g=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],M=[t,e+s-p],k=[t,e+c],w=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=w(c,c-u);f[0]-=t,m[0]+=t,x[1]=k[1]=e+c-u}if(s=lS(i.minWidth,0)&&this.chartHeight>=lS(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lA()),this.matchResponsiveRule(t,o)},this);let n=lw(...o.map(t=>lk((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));n.isResponsiveOptions=!0,o=o.toString()||void 0;let a=s&&s.ruleIds;o===a||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lv(n,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:n,undoOptions:r},this.updatingResponsive||this.update(n,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lM(s,{matchResponsiveRule:e,setResponsive:i}),t}}(M||(M={}));let lT=M;function lP(t,e,i,s){return[["M",t,e+s/2],["L",t+i,e],["L",t,e+s/2],["L",t+i,e+s]]}function lC(t,e,i,s){return lP(t,e,i/2,s)}function lO(t,e,i,s){return[["M",t+i,e],["L",t,e+s/2],["L",t+i,e+s],["Z"]]}function lE(t,e,i,s){return lO(t,e,i/2,s)}O.AST=t5,O.Axis=sj,O.Chart=nZ,O.Color=tC,O.DataLabel=hc,O.DataTableCore=rh,O.Fx=tI,O.HTMLElement=i3,O.Legend=nl,O.LegendSymbol=rp,O.OverlappingDataLabels=O.OverlappingDataLabels||lo,O.PlotLineOrBand=oo,O.Point=o_,O.Pointer=rs,O.RendererRegistry=ep,O.Series=rZ,O.SeriesRegistry=rx,O.StackItem=an,O.SVGElement=eK,O.SVGRenderer=ij,O.Templating=ec,O.Tick=su,O.Time=tx,O.Tooltip=oC,O.animate=tj.animate,O.animObject=tj.animObject,O.chart=nZ.chart,O.color=tC.parse,O.dateFormat=ec.dateFormat,O.defaultOptions=tw.defaultOptions,O.distribute=ex.distribute,O.format=ec.format,O.getDeferredAnimation=tj.getDeferredAnimation,O.getOptions=tw.getOptions,O.numberFormat=ec.numberFormat,O.seriesType=rx.seriesType,O.setAnimation=tj.setAnimation,O.setOptions=tw.setOptions,O.stop=tj.stop,O.time=tw.defaultTime,O.timers=tI.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;la(t,"afterColumnTranslate",lm,{order:9}),la(s,"afterTranslate",ly),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),lu=o.arc,lg=o.roundedRect,o.arc=lf,o.roundedRect=lb}},optionsToObject:lx}).compose(O.Series,O.SVGElement,O.SVGRenderer),hx.compose(O.Series.types.column),hc.compose(O.Series),sq.compose(O.Axis),i3.compose(O.SVGRenderer),nl.compose(O.Chart),sQ.compose(O.Axis),lo.compose(O.Chart),h6.compose(O.Series.types.pie),oo.compose(O.Chart,O.Axis),rs.compose(O.Chart),lT.compose(O.Chart),n8.compose(O.Axis,O.Chart,O.Series),aT.compose(O.Axis,O.Chart,O.Series),oC.compose(O.Pointer),tt.extend(O,tt);let lL={compose:function(t){let e=t.prototype.symbols;e.arrow=lP,e["arrow-filled"]=lO,e["arrow-filled-half"]=lE,e["arrow-half"]=lC,e["triangle-left"]=lO,e["triangle-left-half"]=lE}},{defined:lB,error:lI,merge:lD,objectEach:lR}=tt,lN=O.deg2rad,lz=Math.max,lW=Math.min,lG=class{constructor(t,e,i){this.init(t,e,i)}init(t,e,i){this.fromPoint=t,this.toPoint=e,this.options=i,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let i=this.chart,s=i.styledMode,o=this.pathfinder,r={},n=this.graphics&&this.graphics.path;o.group||(o.group=i.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(i.seriesGroup)),o.group.translate(i.plotLeft,i.plotTop),n&&n.renderer||(n=i.renderer.path().add(o.group),s||n.attr({opacity:0})),n.attr(e),r.d=t,s||(r.opacity=1),n.animate(r),this.graphics=this.graphics||{},this.graphics.path=n}addMarker(t,e,i){let s,o,r,n,a,h,l,d;let c=this.fromPoint.series.chart,p=c.pathfinder,u=c.renderer,g="start"===t?this.fromPoint:this.toPoint,f=g.getPathfinderAnchorPoint(e);e.enabled&&((d="start"===t?i[1]:i[i.length-2])&&"M"===d[0]||"L"===d[0])&&(l={x:d[1],y:d[2]},o=g.getRadiansToVector(l,f),s=g.getMarkerVector(o,e.radius,f),r=-o/lN,e.width&&e.height?(a=e.width,h=e.height):a=h=2*e.radius,this.graphics=this.graphics||{},n={x:s.x-a/2,y:s.y-h/2,width:a,height:h,rotation:r,rotationOriginX:s.x,rotationOriginY:s.y},this.graphics[t]?this.graphics[t].animate(n):(this.graphics[t]=u.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(n).add(p.group),u.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},g.series.options.animation)))}getPath(t){let e=this.pathfinder,i=this.chart,s=e.algorithms[t.type],o=e.chartObstacles;return"function"!=typeof s?(lI('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(s.requiresObstacles&&!o&&(o=e.chartObstacles=e.getChartObstacles(t),i.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(o)),s(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),lD({chartObstacles:o,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:i.plotWidth,yMin:0,yMax:i.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,i=e.chart,s=i.pathfinder,o={},r=lD(i.options.connectors,e.options.connectors,t.options.connectors,this.options);!i.styledMode&&(o.stroke=r.lineColor||t.color,o["stroke-width"]=r.lineWidth,r.dashStyle&&(o.dashstyle=r.dashStyle)),o.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,lB((r=lD(o,r)).marker.radius)||(r.marker.radius=lW(lz(Math.ceil((r.algorithmMargin||8)/2)-1,1),5));let n=this.getPath(r),a=n.path;n.obstacles&&(s.lineObstacles=s.lineObstacles||[],s.lineObstacles=s.lineObstacles.concat(n.obstacles)),this.renderPath(a,o),this.addMarker("start",lD(r.marker,r.startMarker),a),this.addMarker("end",lD(r.marker,r.endMarker),a)}destroy(){this.graphics&&(lR(this.graphics,function(t){t.destroy()}),delete this.graphics)}},{composed:lH}=O,{addEvent:lF,merge:lX,pushUnique:lY,wrap:lj}=tt,lU={color:"#ccd3ff",width:2,label:{format:"%[abdYHM]",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t,!0)},rotation:0,style:{fontSize:"0.7em"}}};function lV(){let t=this.options,e=t.currentDateIndicator;if(e){let i="object"==typeof e?lX(lU,e):lX(lU);i.value=Date.now(),i.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(i)}}function l$(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function l_(t,e){let i=this.options;return i&&i.className&&-1!==i.className.indexOf("highcharts-current-date-indicator")&&i.label&&"function"==typeof i.label.formatter?(i.value=Date.now(),i.label.formatter.call(this,i.value,i.label.format)):t.call(this,e)}let{defaultOptions:lq}=tw,{isArray:lZ,merge:lK,splat:lJ}=tt;class lQ extends nZ{init(t,e){let i;let s=t.xAxis,o=t.yAxis;t.xAxis=t.yAxis=void 0;let r=lK(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},t,{isGantt:!0});t.xAxis=s,t.yAxis=o,r.xAxis=(lZ(t.xAxis)?t.xAxis:[t.xAxis||{},{}]).map((t,e)=>(1===e&&(i=0),lK({grid:{borderColor:"#cccccc",enabled:!0},opposite:lq.xAxis?.opposite??t.opposite??!0,linkedTo:i},t,{type:"datetime"}))),r.yAxis=lJ(t.yAxis||{}).map(t=>lK({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:t.categories?t.type:"treegrid"},t)),super.init(r,e)}}!function(t){t.ganttChart=function(e,i,s){return new t(e,i,s)}}(lQ||(lQ={}));let l0=lQ,{isTouchDevice:l1}=O,{addEvent:l2,merge:l3,pick:l5}=tt,l6=[];function l9(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function l4(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:n}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+n):(o.left=l5(e.left,this.plotLeft+n),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+l5(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function l8(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this),l5(t.redraw,!0)&&this.redraw(t.animation))}function l7(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this))}function dt(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!l1&&"x"===this.zooming.type||l1&&"x"===this.zooming.pinchType))return!1}function de(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function di(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(l3(!0,this.options.navigator,e),l3(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let ds={compose:function(t,e){if(tt.pushUnique(l6,t)){let s=t.prototype;i=e,s.callbacks.push(de),l2(t,"afterAddSeries",l9),l2(t,"afterSetChartSize",l4),l2(t,"afterUpdate",l8),l2(t,"beforeRender",l7),l2(t,"beforeShowResetZoom",dt),l2(t,"update",di)}}},{isTouchDevice:dr}=O,{addEvent:dn,correctFloat:da,defined:dh,isNumber:dl,pick:dd}=tt;function dc(){this.navigatorAxis||(this.navigatorAxis=new du(this))}function dp(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,n=i.zooming.pinchType,a=s.rangeSelector,h=i.zooming.type;if(this.isXAxis&&(o?.enabled||a?.enabled)){if("y"===h&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===h||dr&&"xy"===n)&&this.options.range){let e=r.previousZoom;dh(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class du{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),dn(t,"init",dc),dn(t,"setExtremes",dp))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,n=dd(i,o.translate(t,!0,!o.horiz)),a=dd(s,o.translate(e,!0,!o.horiz));return dh(i)||(n=da(n+r)),dh(s)||(a=da(a-r)),dl(n)&&dl(a)||(n=a=void 0),{min:n,max:a}}}let{parse:dg}=tC,{seriesTypes:df}=rx,dm={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:dg("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===df.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{relativeLength:dx}=tt,dy={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,n=dx(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...ii.rect(-r-1,.5,2*r+1,s,{r:n})]}},{defined:db}=tt,{setOptions:dv}=tw,{composed:dM}=O,{getRendererType:dk}=ep,{setFixedRange:dw}={setFixedRange:function(t){let e=this.xAxis[0];db(e.dataMax)&&db(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{addEvent:dS,extend:dA,pushUnique:dT}=tt;function dP(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let dC={compose:function(t,e,i){du.compose(e),dT(dM,"Navigator")&&(t.prototype.setFixedRange=dw,dA(dk().prototype.symbols,dy),dS(i,"afterUpdate",dP),dv({navigator:dm}))}},{composed:dO}=O,{addEvent:dE,defined:dL,pick:dB,pushUnique:dI}=tt;!function(t){let e;function i(t){let e=dB(t.options&&t.options.min,t.min),i=dB(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:dL(t.dataMin)?Math.min(e,t.min,t.dataMin,dB(t.threshold,1/0)):e,scrollMax:dL(t.dataMax)?Math.max(i,t.max,t.dataMax,dB(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),dE(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:n,scrollMin:a,scrollMax:h}=i(t),l=h-a;if(dL(r)&&dL(n)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=a+l*this.to,o=a+l*this.from):(s=a+l*(1-this.from),o=a+l*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),n=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(n&&h){if(this.horiz)this.opposite||(h[1]+=a),n.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let e;this.opposite&&(h[0]+=a),e=n.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,n.position(e,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=n.size+(n.options.margin||0),isNaN(o)||isNaN(r)||!dL(this.min)||!dL(this.max)||this.dataMin===this.dataMax)n.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),n.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?n.setRange(e,s):n.setRange(1-s,1-e)}}t.compose=function(t,i){dI(dO,"Axis.Scrollbar")&&(e=i,dE(t,"afterGetOffset",s),dE(t,"afterInit",o),dE(t,"afterRender",r))}}(k||(k={}));let dD=k,dR={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:dN}=tw,{addEvent:dz,correctFloat:dW,crisp:dG,defined:dH,destroyObjectProperties:dF,fireEvent:dX,merge:dY,pick:dj,removeEvent:dU}=tt;class dV{static compose(t){dD.compose(t,dV)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,dF(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let n=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||n.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),n.attr(n.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},n.strokeWidth()));let a=e.path(dV.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=dY(dR,dN.scrollbar,e),this.options.margin=dj(this.options.margin,10),this.chart=i,this.size=dj(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&dX(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&dX(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:n}=this.options,a=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=h,this.yOffset=l,n?(this.width=this.yOffset=i=l=this.size,this.xOffset=h=0,this.yOffset=l=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[a]({translateX:t,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:n?0:i-h,translateY:n?s-l:0})}removeEvents(){this._events.forEach(function(t){dU.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-dG(0,r),y:-dG(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(dV.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-dG(0,this.scrollbarStrokeWidth),-dG(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,n=o.minWidth,a=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!dH(a))return;let l=a*Math.min(e,1);i=Math.ceil(a*(t=Math.max(t,0))),this.calculatedWidth=s=dW(l-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return dj(this.options.liveRedraw,O.svg&&!O.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!dH(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),dX(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,dY(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=dW(1-dW(e-t)),e=1),t<0&&(e=dW(e-t),t=0),this.from=t,this.to=e}}dV.defaultOptions=dR,dN.scrollbar=dY(!0,dV.defaultOptions,dN.scrollbar);let{defaultOptions:d$}=tw,{isTouchDevice:d_}=O,{prototype:{symbols:dq}}=ij,{addEvent:dZ,clamp:dK,correctFloat:dJ,defined:dQ,destroyObjectProperties:d0,erase:d1,extend:d2,find:d3,fireEvent:d5,isArray:d6,isNumber:d9,merge:d4,pick:d8,removeEvent:d7,splat:ct}=tt;function ce(t,...e){let i=[].filter.call(e,d9);if(i.length)return Math[t].apply(0,i)}class ci{static compose(t,e,i){ds.compose(t,ci),dC.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),n=r/2,a=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,p=d-n,u=d+c,g=this.left,f,m;i?(f=d+e+a,e=d+t+a,m=[["M",g+c,d-h-a],["L",g+c,f],["L",g,f],["M",g,e],["L",g+c,e],["L",g+c,d+l+h]],o&&m.push(["M",g+c,f-n],["L",g+c,e+n])):(g-=h,t+=g+h-a,e+=g+h-a,m=[["M",g,p],["L",t,p],["L",t,u],["M",e,u],["L",e,p],["L",g+l+2*h,p]],o&&m.push(["M",t-n,p],["L",e+n,p])),this.outline[s]({d:m})}drawMasks(t,e,i,s){let o,r,n,a;let h=this.left,l=this.top,d=this.height;i?(n=[h,h,h],a=[l,l+t,l+e],r=[d,d,d],o=[t,e-t,this.size-e]):(n=[h,h+t,h+e],a=[l,l,l],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:n[e],y:a[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,n={cursor:o?"ns-resize":"ew-resize"},a=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let h=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(a));s.styledMode||(h.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&h.css(n))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:h}=i;[0,1].forEach(e=>{let l=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===l){if(!t.handles[e].isImg&&t.handles[e].symbolName!==l){let i=dq[l].call(dq,-h/2-1,0,h,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=l}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(l,-h/2-1,0,h,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(a),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(o+h)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-h/2-1,y:0}).css(n)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(d4(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),dQ(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{d7(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(dZ(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,n=r.pointRange||0,a=r.navigatorAxis.fake?o.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,f,m,x=this.scrollbarHeight,y,b;if(this.hasDragged&&!dQ(i))return;if(this.isDirty&&this.renderElements(),t=dJ(t-n/2),e=dJ(e+n/2),!d9(t)||!d9(e)){if(!l)return;i=0,s=d8(r.width,a.width)}this.left=d8(r.left,o.plotLeft+u+(d?o.plotWidth:0));let v=this.size=y=d8(r.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?x:y+2*u,i=d8(i,r.toPixels(t,!0)),s=d8(s,r.toPixels(e,!0)),d9(i)&&Math.abs(i)!==1/0||(i=0,s=g);let M=r.toValue(i,!0),k=r.toValue(s,!0),w=Math.abs(dJ(k-M));wp&&(this.grabbedLeft?i=r.toPixels(k-p-n,!0):this.grabbedRight&&(s=r.toPixels(M+p+n,!0))),this.zoomedMax=dK(Math.max(i,s),0,v),this.zoomedMin=dK(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let S=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),b=l&&!this.hasDragged?"animate":"attr",this.drawMasks(S,v,d,b),this.drawOutline(S,v,d,b),this.navigatorOptions.handles.enabled&&(this.drawHandle(S,0,d,b),this.drawHandle(v,1,d,b))),this.scrollbar&&(d?(m=this.top-u,f=this.left-x+(h||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),x=y+2*u):(m=this.top+(h?this.height:-x),f=this.left-u),this.scrollbar.position(f,m,g,x),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,this.isDirty=!1,d5(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(dZ(e.renderTo,"mousemove",o),dZ(i.ownerDocument,"mouseup",r),dZ(e.renderTo,"touchmove",o),dZ(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(dZ(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(dZ(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,n=this.range,a=this.left,h=t.chartX,l,d,c,p;i.inverted&&(h=t.chartY,a=this.top),1===e?(this.grabbedCenter=h,this.fixedWidth=n,this.dragOffset=h-o):(p=h-a-n/2,0===e?p=Math.max(0,p):2===e&&p+n>=r&&(p=r-n,this.reversedExtremes?(p-=n,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=n,dQ((c=s.navigatorAxis.toFixedRange(p,p+n,d,l)).min)&&d5(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,n=i.inverted,a=e.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=i.pointer?.normalize(t)||t).chartX,n&&(a=e.top,h=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,h-a,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,h-a)):e.grabbedCenter&&(e.hasDragged=!0,hs+r-o&&(h=s+r-o),e.render(0,0,h-r,h-r+o)),e.hasDragged&&e.scrollbar&&d8(e.scrollbar.options.liveRedraw,!d_&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,n;let a=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=a.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),dQ((n=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&d5(this,"setRange",{min:Math.min(n.min,n.max),max:Math.max(n.min,n.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&d9(this.zoomedMin)&&d9(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){d7(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&d7(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,n=s&&i.height||0,a=r&&o.height||0,h=o.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=n,this.scrollbarHeight=a,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,p=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let e=this.getXAxisOffsets();l.xAxis=new sj(t,d4({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:n}:{offsets:e,height:n}),"xAxis"),l.yAxis=new sj(t,d4(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:d8(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:n}:{height:n}),"yAxis"),d||i.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=dZ(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*h,n=ce("min",s.options.min,o.dataMin),a=ce("max",s.options.max,o.dataMax)-n;return i?e*a/r+n:r*(e-n)/a},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=du.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=d4(t.options.scrollbar,{vertical:t.inverted});!d9(e.margin)&&l.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new dV(t.renderer,e,t),dZ(l.scrollbar,"changed",function(t){let e=l.size,i=e*this.to,s=e*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=d8(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,n=i.options;return t&&null===i.dataMin||(e={dataMin:d8(s.parse(r?.min),ce("min",s.parse(n.min),i.dataMin,o.dataMin,o.min)),dataMax:d8(s.parse(r?.max),ce("max",s.parse(n.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?d3(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},n=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(d7(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),a,h,l=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=d2({color:t.color,visible:t.visible},d6(l)?d$.navigator.series:l);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(a=t.options||{}).navigatorOptions||{},p.dataLabels=ct(p.dataLabels),(h=d4(a,r,p,d)).pointRange=d8(p.pointRange,d.pointRange,d$.plotOptions[h.type||"line"].pointRange);let u=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!u,h.data=u||a.data?.slice(0),c&&c.options?c.update(h,e):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,n.push(t.navigatorSeries))}),(l.data&&!(o&&o.length)||d6(l))&&(i.hasNavigatorData=!1,(l=ct(l)).forEach((t,e)=>{r.name="Navigator "+(n.length+1),(h=d4(d$.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,h.data&&(i.hasNavigatorData=!0,n.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(dZ(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(dZ(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(dZ(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(dZ(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(dZ(i,"remove",function(){e&&d1(e,i),this.navigatorSeries&&t.series&&(d1(t.series,this.navigatorSeries),dQ(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,n=s.dataMin,a=s.dataMax,h=r-o,l=i.stickToMin,d=i.stickToMax,c=d8(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(e=n)+h),d&&(t=a+c,l||(e=Math.max(n,t-h,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),u&&(l||d)&&d9(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=d8(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,n=s.options.range;return!!(d9(o)&&d9(r))&&(n&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{d0(t)}),this.navigatorEnabled=!1}}let cs={lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"→"},rangeSelector:{allButtonsEnabled:!1,buttons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%[ebY]",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}},{defaultOptions:co}=tw,{composed:cr}=O,{addEvent:cn,defined:ca,extend:ch,isNumber:cl,merge:cd,pick:cc,pushUnique:cp}=tt,cu=[];function cg(){let t,e;let i=this.range,s=i.type,o=this.max,r=this.chart.time,n=function(t,e){let i=r.toParts(t),o=i.slice();"year"===s?o[0]+=e:o[1]+=e;let n=r.makeTime.apply(r,o),a=r.toParts(n);return"month"===s&&i[1]===a[1]&&1===Math.abs(e)&&(o[0]=i[0],o[1]=i[1],o[2]=0),(n=r.makeTime.apply(r,o))-t};cl(i)?(t=o-i,e=i):i&&(t=o+n(o,-(i.count||1)),this.chart&&this.chart.setFixedRange(o-t));let a=cc(this.dataMin,Number.MIN_VALUE);return cl(t)||(t=a),t<=a&&(t=a,void 0===e&&(e=n(t,i.count)),this.newMax=Math.min(t+e,cc(this.dataMax,Number.MAX_VALUE))),cl(o)?!cl(i)&&i&&i._offsetMin&&(t+=i._offsetMin):t=void 0,t}function cf(){this.rangeSelector?.redrawElements()}function cm(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new s(this))}function cx(){let t=this.rangeSelector;if(t){cl(t.deferredYTDClick)&&(t.clickButton(t.deferredYTDClick),delete t.deferredYTDClick);let e=t.options.verticalAlign;t.options.floating||("bottom"===e?this.extraBottomMargin=!0:"top"!==e||(this.extraTopMargin=!0))}}function cy(){let t;let e=this.rangeSelector;if(!e)return;let i=this.xAxis[0].getExtremes(),s=this.legend,o=e&&e.options.verticalAlign;cl(i.min)&&e.render(i.min,i.max),s.display&&"top"===o&&o===s.options.verticalAlign&&(t=cd(this.spacingBox),"vertical"===s.options.layout?t.y=this.plotTop:t.y+=e.getHeight(),s.group.placed=!1,s.align(t))}function cb(){for(let t=0,e=cu.length;tt()),cu.splice(t,1);return}}}function cv(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function cM(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,o=this.extraTopMargin,r=this.rangeSelector;if(e&&e.enabled&&!ca(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new s(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){let t=e&&e.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==o)&&(this.isDirtyBox=!0)}}let ck={compose:function(t,e,i){if(s=i,cp(cr,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=cg,cn(e,"afterGetContainer",cm),cn(e,"beforeRender",cx),cn(e,"destroy",cb),cn(e,"getMargins",cv),cn(e,"redraw",cy),cn(e,"update",cM),cn(e,"beforeRedraw",cf),i.callbacks.push(cy),ch(co,{rangeSelector:cs.rangeSelector}),ch(co.lang,cs.lang)}}},{addEvent:cw,correctFloat:cS,css:cA,defined:cT,error:cP,isNumber:cC,pick:cO,timeUnits:cE,isString:cL}=tt;!function(t){function e(t,i,s,o,r=[],n=0,a){let h={},l=this.options.tickPixelInterval,d=this.chart.time,c=[],p,u,g,f,m,x=0,y=[],b=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!r||r.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let v=r.length;for(p=0;ps,r[p]5*n||m){if(r[p]>b){for(u=d.getTimeTicks(t,r[x],r[p],o);u.length&&u[0]<=b;)u.shift();u.length&&(b=u[u.length-1]),c.push(y.length),y=y.concat(u)}x=p+1}if(m)break}if(u){if(f=u.info,a&&f.unitRange<=cE.hour){for(x=1,p=y.length-1;xt-e),(a=i[Math.floor(i.length/2)])<.6*l&&(a=null),c=y[t-1]>s?t-1:t,n=void 0;c--;)d=Math.abs(n-(r=e[c])),n&&d<.8*l&&(null===a||d<.8*a)?(h[y[c]]&&!h[y[c+1]]?(o=c+1,n=r):o=c,y.splice(o,1)):n=r}return y}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let r=cS((t-i)*s+this.minPixelPadding),n=cS(e.getIndexOfPoint(r,o)),a=cS(n%1);if(n>=0&&n<=o.length-1){let t=o[Math.floor(n)],e=o[Math.ceil(n)];return o[Math.floor(n)]+a*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function r(){this.ordinal||(this.ordinal=new t.Additions(this))}function n(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&cT(e.overscroll)&&0!==e.overscroll&&cC(this.max)&&cC(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&cT(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function a(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function h(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function l(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,r=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let n=this.mouseDownX,a=e.getExtremes(),h=a.dataMin,l=a.dataMax,d=a.min,c=a.max,p=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((n-s)/(e.translationSlope*(e.ordinal.slope||u))),f=e.ordinal.getExtendedPositions(),m={ordinal:{positions:f,extendedOrdinalPositions:f}},x=e.index2val,y=e.val2lin;if(d<=h&&g<0||c+i>=l&&g>0)return;m.ordinal.positions?Math.abs(g)>1&&(p&&p.forEach(function(t){t.setState()}),l>(o=m.ordinal.positions)[o.length-1]&&o.push(l),this.setFixedRange(c-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,x.apply(m,[y.apply(m,[d,!0])+g]),x.apply(m,[y.apply(m,[c,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],c)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,cA(this.container,{cursor:"move"})):r=!0}else r=!0;r||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function c(t,e){let i;let s=this.ordinal,r=s.positions,n=s.slope,a;if(!r)return t;let h=r.length;if(r[0]<=t&&r[h-1]>=t)i=o(r,t);else{if(!((a=s.getExtendedPositions&&s.getExtendedPositions())&&a.length))return t;let h=a.length;n||(n=(a[h-1]-a[0])/h);let l=o(a,r[0]);if(t>=a[0]&&t<=a[h-1])i=o(a,t)-l;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(x=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(y=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||r)&&(a=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),f=Math.min(f,cO(t.closestPointRange,f)),a)){for(e=0;e2){for(l=g[1]-g[0],u=a-1;u--&&!m;)g[u+1]-g[u]!==l&&(m=!0);!t.options.keepOrdinalPadding&&(g[0]-s>l||o-g[g.length-1]>l)&&(m=!0)}else t.options.overscroll&&(2===a?f=g[1]-g[0]:1===a?(f=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+f]):f=e.overscrollPointsRange);m||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=f,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),c=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=p=(o-s)/(c-d),e.offset=s-d*p):(e.overscrollPointsRange=cO(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=n&&m,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,r;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),n=t?i.ordinal.convertOverscroll(i.options.overscroll):0,a=i.getExtremes(),h,l,d=e.index;return d||(d=e.index={}),!d[r]&&((h={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:a.dataMin,max:a.dataMax+n}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=h,i.series.forEach(i=>{l={xAxis:h,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:O.noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);l.dataTable=new rh({columns:{x:s}}),l.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},h.series.push(l),i.processData.apply(l)}),h.applyGrouping({hasExtremesChanged:!0}),l?.closestPointRange!==l?.basePointRange&&l.currentDataGrouping&&(h.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:h}),!i.ordinal.originalOrdinalRange&&h.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=h.ordinal.originalOrdinalRange),h.ordinal.positions&&(d[r]=h.ordinal.positions)),d[r]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,r=[],n,a,h=this.groupIntervalFactor;if(!h){for(a=0;aRegExp(`%[[a-zA-Z]*${e}`).test(t);if(cj(t)?-1!==t.indexOf("%L"):t.fractionalSecondDigits)return"text";let i=cj(t)?["a","A","d","e","w","b","B","m","o","y","Y"].some(e):t.dateStyle||t.day||t.month||t.year,s=cj(t)?["H","k","I","l","M","S"].some(e):t.timeStyle||t.hour||t.minute||t.second;return i&&s?"datetime-local":i?"date":s?"time":"text"}class cZ{static compose(t,e){ck.compose(t,e,cZ)}constructor(t){this.isDirty=!1,this.buttonOptions=cZ.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.maxButtonWidth=()=>{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],r=i.scroller&&i.scroller.getUnionExtremes()||o||{},n=s.type,a=s.dataGrouping,h=r.dataMin,l=r.dataMax,d,c=cY(o?.max)?Math.round(Math.min(o.max,l??o.max)):void 0,p,u=s._range,g,f,m,x=!0;if(null!==h&&null!==l){if(this.setSelected(t),a&&(this.forcedDataGrouping=!0,sj.prototype.setDataGrouping.call(o||{chart:this.chart},a,!1),this.frozenStates=s.preserveDataGrouping),"month"===n||"year"===n)o?(f={range:s,max:c,chart:i,dataMin:h,dataMax:l},d=o.minFromRange.call(f),cY(f.newMax)&&(c=f.newMax),x=!1):u=s;else if(u)cY(c)&&(c=Math.min((d=Math.max(c-u,h))+u,l),x=!1);else if("ytd"===n){if(o)!o.hasData()||cY(l)&&cY(h)||(h=Number.MAX_VALUE,l=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(h=Math.min(e[0],h),l=Math.max(e[e.length-1],l))}),e=!1),cY(l)&&cY(h)&&(d=g=(m=this.getYTDExtremes(l,h)).min,c=m.max);else{this.deferredYTDClick=t;return}}else"all"===n&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=h,c=l);if(x&&s._offsetMin&&cz(d)&&(d+=s._offsetMin),s._offsetMax&&cz(c)&&(c+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)cY(d)&&cY(c)&&(o.setExtremes(d,c,c$(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{p=c_(i.options.xAxis||{})[0];let t=cD(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});cD(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=p.range,e.options.min=p.min,t()})}cX(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,r=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&cX(t,"blur"),i&&i.blur&&cX(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(cD(t.container,"mousedown",r)),this.eventsToUnbind.push(cD(t,"resize",r)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(cD(t,"load",function(){t.xAxis&&t.xAxis[0]&&cD(t.xAxis[0],"setExtremes",function(i){cY(this.max)&&cY(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],r=Math.round(o.max-o.min),n=!o.hasVisibleSeries,a=24*36e5,h=e.scroller&&e.scroller.getUnionExtremes()||o,l=h.dataMin,d=h.dataMax,c=t.getYTDExtremes(d,l),p=c.min,u=c.max,g=t.selected,f=t.options.allButtonsEnabled,m=Array(t.buttonOptions.length).fill(0),x=cY(g),y=t.buttons,b=!1,v=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,h=e.type,c=e.count||1,y=e._offsetMax-e._offsetMin,M=i===g,k=s>d-l,w=ss&&(A=!0)}else("month"===h||"year"===h)&&r+36e5>=({month:28,year:365})[h]*a*c-y&&r-36e5<=({month:31,year:366})[h]*a*c+y?A=!0:"ytd"===h?(A=u-p+y===r,S=!M):"all"===h&&(A=o.max-o.min>=d-l);let T=!f&&!(b&&"all"===h)&&(k||w||n),P=b&&"all"===h||!S&&A||M&&t.frozenStates;T?m[i]=3:P&&(!x||i===g)&&(v=i)}),null!==v?(m[v]=2,t.setSelected(v),this.dropdown&&(this.dropdown.selectedIndex=v+1)):(t.setSelected(),this.dropdown&&(this.dropdown.selectedIndex=-1),s&&(s.setState(0),s.attr({text:(cI.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?c=void 0:ch&&(c=h)),void 0!==c&&r.setExtremes(l?c:r.min,l?r.max:c,void 0,void 0,{trigger:"rangeSelectorInput"}))}let c=h[l?"rangeSelectorFrom":"rangeSelectorTo"]||"",p=n.label(c,0).addClass("highcharts-range-label").attr({padding:c?2:0,height:c?a.inputBoxHeight:0}).add(s),u=n.label("",0).addClass("highcharts-range-input").attr({padding:2,width:a.inputBoxWidth,height:a.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:a.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=cR("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",cq(a.inputDateFormat||"%e %b %Y")),e.styledMode||(p.css(cU(r,a.labelStyle)),u.css(cU({color:"#333333"},r,a.inputStyle)),cN(g,cF({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:r.fontSize,fontFamily:r.fontFamily,top:"-9999em"},a.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===O.doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let f=!1;return g.onchange=()=>{f||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{f=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{f=!1},{dateBox:u,input:g,label:p}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,r=o.inputEnabled,n=c$(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=cR("div",void 0,{position:"relative",height:0,zIndex:n}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),r&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(cz(o.dataMin)&&cz(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=cI.lang,o=e.renderer,r=cU(i.buttonTheme),n=r&&r.states;delete r.width,delete r.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let a=this.dropdown=cR("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),h=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},cU(r,{"stroke-width":c$(r["stroke-width"],0),width:"auto",paddingLeft:c$(i.buttonTheme.paddingLeft,h?.padding,8),paddingRight:c$(i.buttonTheme.paddingRight,h?.padding,8)}),n&&n.hover,n&&n.select,n&&n.disabled).hide().add(this.group),cD(a,"touchstart",()=>{a.style.fontSize="16px"});let l=O.isMS?"mouseover":"mouseenter",d=O.isMS?"mouseout":"mouseleave";cD(a,l,()=>{cX(this.dropdownLabel.element,l)}),cD(a,d,()=>{cX(this.dropdownLabel.element,d)}),cD(a,"change",()=>{cX(this.buttons[a.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),cR("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,a),this.createButtons()}createButtons(){let{options:t}=this,e=cU(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:r,chart:n,options:a}=this,h=n.renderer,l=cU(a.buttonTheme);o?.add(cR("option",{textContent:t.title||t.text}),e+2),r[e]=h.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},l,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&r[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:r,zoomText:n}=this,a=i.options,h=a.exporting&&!1!==a.exporting.enabled&&a.navigation&&a.navigation.buttonOptions,{buttonPosition:l,inputPosition:d,verticalAlign:c}=r,p=(t,e,s)=>h&&this.titleCollision(i)&&"top"===c&&s&&e.y-t.getBBox().height-12<(h.y||0)+(h.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&l&&d){let a=l.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;n&&(t+=n.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=r.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=p(t,l,"right"===l.align||"right"===d.align);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let h=0;r.inputEnabled&&o&&(h=p(o,d,"right"===l.align||"right"===d.align),"left"===d.align?a=u:"right"===d.align&&(a=-Math.max(i.axisOffset[1],-h)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+a-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(h),s.align({verticalAlign:c},!0,i.spacingBox);let g=s.alignAttr.translateY,f=s.getBBox().height+20,m=0;if("bottom"===c){let t=i.legend&&i.legend.options;m=g-(f=f+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+c$(t.margin,10):0)-20)-(r.floating?0:r.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===c?(r.floating&&(m=0),i.titleOffset&&i.titleOffset[0]&&(m=i.titleOffset[0]),m+=i.margin[0]-i.spacing[0]||0):"middle"===c&&(d.y===l.y?m=g:(d.y||l.y)&&(d.y<0||l.y<0?m-=Math.min(d.y,l.y):m=g-f)),s.translate(r.x,r.y+Math.floor(m));let{minInput:x,maxInput:y,dropdown:b}=this;r.inputEnabled&&x&&y&&(x.style.marginTop=s.translateY+"px",y.style.marginTop=s.translateY+"px"),b&&(b.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=cU(s.buttonTheme),r=o&&o.states,n=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(cG(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,n,r),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};s&&i&&(n.align===o.align?(a(),this.initialButtonGroupWidth>e.plotWidth+t-20?this.collapseButtons():this.expandButtons()):this.initialButtonGroupWidth-t+s.getBBox().width>e.plotWidth?"responsive"===r?this.collapseButtons():a():this.expandButtons()),i&&("always"===r&&this.collapseButtons(),"never"===r&&this.expandButtons()),this.alignButtonGroup(t)}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,dropdownLabel:e,dropdown:i}=this;t&&i&&(e.show(),cN(i,{visibility:"inherit"}),this.hasVisibleDropdown=!0)}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),cN(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,r=s.y,n=i.y,a=0;if(t.height)return t.height;this.alignElements(),a=e?e.getBBox(!0).height+13+o:0;let h=Math.min(n,r);return(n<0&&r<0||n>0&&r>0)&&(a+=Math.abs(h)),a}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(cU(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),cz(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),cW(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),cV(t,function(e,i){e&&"chart"!==i&&(e instanceof eK?e.destroy():e instanceof window.HTMLElement&&cH(e),delete t[i]),e!==cZ.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}cF(cZ.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});let cK={applyRadius:function(t,e){let i=[];for(let s=0;s>1].xMin)>0)o=n+1;else{if(!(a<0))return n;r=n-1}return o>0?o-1:0}function c3(t,e){let i=c2(t,e.x+1)+1;for(;i--;){var s;if(t[i].xMax>=e.x&&(s=t[i],e.x<=s.xMax&&e.x>=s.xMin&&e.y<=s.yMax&&e.y>=s.yMin))return i}return -1}function c5(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let i=0;ic1(e.y-t.y))?"x":"y",l,d,c,p;function u(t,e,i,s,o){let r={x:t.x,y:t.y};return r[e]=i[s||e]+(o||0),r}function g(t,e,i){let s=c1(e[i]-t[i+"Min"])>c1(e[i]-t[i+"Max"]);return u(e,i,t,i+(s?"Max":"Min"),s?1:-1)}n>-1?(a={start:d=g(o[n],e,h),end:e},p=d):p=e,r>-1&&(d=g(l=o[r],t,h),s.push({start:t,end:d}),d[h]>=t[h]==d[h]>=p[h]&&(c=t[h="y"===h?"x":"y"]c1(e.y-t.y)),o=s?"x":"y",r=[],n=i.obstacleMetrics,a=cQ(t.x,e.x)-n.maxWidth-10,h=c0(t.x,e.x)+n.maxWidth+10,l=cQ(t.y,e.y)-n.maxHeight-10,d=c0(t.y,e.y)+n.maxHeight+10,c,p,u,g=!1,f=i.chartObstacles,m=c2(f,h),x=c2(f,a);function y(t,e,i){let s,o,r,n;let a=t.x0&&f[h].xMin<=o.x||a<0&&f[h].xMax>=s.x);){if(f[h].xMin<=o.x&&f[h].xMax>=s.x&&f[h].yMin<=r.y&&f[h].yMax>=n.y){if(i)return{y:t.y,x:t.x=r[a+"Max"],c=t[a+"Min"]<=r[a+"Min"],p=t[a+"Max"]>=n[a+"Max"],u=t[a+"Min"]<=n[a+"Min"],g=c1(t[a+"Min"]-e[a]),f=c1(t[a+"Max"]-e[a]),m=10>c1(g-f)?e[a]-1&&(u=function(t,e,s){let o=cQ(t.xMax-e.x,e.x-t.xMin)-1;)p=e[o]-t[o]<0,(u={x:e.x,y:e.y})[o]=f[m][p?o+"Max":o+"Min"]+(p?1:-1),r.push({end:e,start:u}),e=u;return{path:c5(c=(c=function t(e,s,o){let r,n,c,p,u,m,x;if(e.x===s.x&&e.y===s.y)return[];let v=o?"x":"y",M=i.obstacleOptions.margin,k={soft:{xMin:a,xMax:h,yMin:l,yMax:d},hard:i.hardBounds};return(u=c3(f,e))>-1?(p=b(u=f[u],e,s,o,k),c6(u,i.hardBounds),x=o?{y:e.y,x:u[p?"xMax":"xMin"]+(p?1:-1)}:{x:e.x,y:u[p?"yMax":"yMin"]+(p?1:-1)},(m=c3(f,x))>-1&&(c6(m=f[m],i.hardBounds),x[v]=p?c0(u[v+"Max"]-M+1,(m[v+"Min"]+u[v+"Max"])/2):cQ(u[v+"Min"]+M-1,(m[v+"Max"]+u[v+"Min"])/2),e.x===x.x&&e.y===x.y?(g&&(x[v]=p?c0(u[v+"Max"],m[v+"Max"])+1:cQ(u[v+"Min"],m[v+"Min"])-1),g=!g):g=!1),n=[{start:e,end:x}]):(r=y(e,{x:o?s.x:e.x,y:o?e.y:s.y},o),n=[{start:e,end:{x:r.x,y:r.y}}],r[o?"x":"y"]!==s[o?"x":"y"]&&(p=b(r.obstacle,r,s,!o,k),c6(r.obstacle,i.hardBounds),c={x:o?r.x:r.obstacle[p?"xMax":"xMin"]+(p?1:-1),y:o?r.obstacle[p?"yMax":"yMin"]+(p?1:-1):r.y},o=!o,n=n.concat(t({x:r.x,y:r.y},c,o)))),n=n.concat(t(n[n.length-1].end,s,!o))}(t,e,s)).concat(r.reverse())),obstacles:c}}c9.requiresObstacles=!0,c4.requiresObstacles=!0;let c8={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:c7}=tw,{defined:pt,error:pe,merge:pi}=tt;function ps(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let i=t.graphic&&t.graphic.getBBox();return i?{xMin:t.plotX-i.width/2,xMax:t.plotX+i.width/2,yMin:t.plotY-i.height/2,yMax:t.plotY+i.height/2}:null}!function(t){function e(t){let e,i;let s=ps(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":i="yMin";break;case"bottom":i="yMax"}return{x:e?s[e]:(s.xMin+s.xMax)/2,y:i?s[i]:(s.yMin+s.yMax)/2}}function i(t,e){let i;return!pt(e)&&(i=ps(this))&&(e={x:(i.xMin+i.xMax)/2,y:(i.yMin+i.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function s(t,e,i){let s=2*Math.PI,o=ps(this),r=o.xMax-o.xMin,n=o.yMax-o.yMin,a=Math.atan2(n,r),h=r/2,l=n/2,d=o.xMin+h,c=o.yMin+l,p={x:d,y:c},u=t,g=1,f=!1,m=1,x=1;for(;u<-Math.PI;)u+=s;for(;u>Math.PI;)u-=s;return g=Math.tan(u),u>-a&&u<=a?(x=-1,f=!0):u>a&&u<=Math.PI-a?x=-1:u>Math.PI-a||u<=-(Math.PI-a)?(m=-1,f=!0):m=-1,f?(p.x+=m*h,p.y+=x*h*g):(p.x+=n/(2*g)*m,p.y+=x*l),i.x!==d&&(p.x=i.x),i.y!==c&&(p.y=i.y),{x:p.x+e*Math.cos(u),y:p.y-e*Math.sin(u)}}t.compose=function(t,o,r){let n=r.prototype;n.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&pi(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&(pi(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new o(this),this.pathfinder.update(!0))}),n.getMarkerVector=s,n.getPathfinderAnchorPoint=e,n.getRadiansToVector=i,c7(c8))}}(S||(S={}));let po=S,{addEvent:pr,defined:pn,pick:pa,splat:ph}=tt,pl=Math.max,pd=Math.min;class pc{static compose(t,e){po.compose(t,pc,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],pr(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,i=this,s=i.connections;i.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let s;let o=t.options;o&&o.dependency&&(o.connect=o.dependency);let r=t.options?.connect?ph(t.options.connect):[];t.visible&&!1!==t.isInside&&r.forEach(o=>{let r="string"==typeof o?o:o.to;r&&(s=e.get(r)),s instanceof o_&&s.series.visible&&s.visible&&!1!==s.isInside&&i.connections.push(new lG(t,s,"string"==typeof o?{}:o))})})});for(let t=0,e,o,r=s.length,n=i.connections.length;ti.yMin-o&&e.yMin-oi.xMin-o&&e.xMin-oi.xMax?e.xMin-i.xMax:i.xMin-e.xMax:1/0,h=n?e.yMin>i.yMax?e.yMin-i.yMax:i.yMin-e.yMax:1/0;return n&&r?o?t(e,i,Math.floor(o/2)):1/0:pd(a,h)}(t[o],t[r]))<80&&s.push(e);return s.push(80),pl(Math.floor(s.sort(function(t,e){return t-e})[Math.floor(s.length/10)]/2-1),1)}(s),s.forEach(function(t){t.xMin-=o,t.xMax+=o,t.yMin-=o,t.yMax+=o})),s}getObstacleMetrics(t){let e=0,i=0,s,o,r=t.length;for(;r--;)s=t[r].xMax-t[r].xMin,o=t[r].yMax-t[r].yMin,e=1&&(e.plotHeight=o,e.redrawTrigger="adjustHeight",e.setSize(void 0,e.chartHeight+r,i)),t.series.forEach(function(t){let i=t.sharedClipKey&&e.sharedClips[t.sharedClipKey];i&&i.attr(e.inverted?{width:e.plotHeight}:{height:e.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}let py={compose:function(t,e){let i=e.prototype;i.adjustHeight||(pp(t,"afterSetOptions",pm),i.adjustHeight=px,pp(e,"render",i.adjustHeight))}};py.compose(O.Axis,O.Chart);let{correctFloat:pb,isNumber:pv,isObject:pM}=tt,{column:{prototype:{pointClass:pk}}}=rx.seriesTypes,{extend:pw}=tt;class pS extends pk{static getColorByCategory(t,e){let i=t.options.colors||t.chart.options.colors,s=i?i.length:t.chart.options.chart.colorCount,o=e.y%s,r=i&&i[o];return{colorIndex:o,color:r}}resolveColor(){let t=this.series;if(t.options.colorByPoint&&!this.options.color){let e=pS.getColorByCategory(t,this);t.chart.styledMode||(this.color=e.color),this.options.colorIndex||(this.colorIndex=e.colorIndex)}else this.color=this.options.color||t.color}constructor(t,e){super(t,e),this.y||(this.y=0)}applyOptions(t,e){return super.applyOptions(t,e),this.x2=this.series.chart.time.parse(this.x2),this.isNull=!this.isValid?.(),this}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}pw(pS.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]});let{composed:pA,noop:pT}=O,{parse:pP}=tC,{column:pC}=rx.seriesTypes,{addEvent:pO,clamp:pE,crisp:pL,defined:pB,extend:pI,find:pD,isNumber:pR,isObject:pN,merge:pz,pick:pW,pushUnique:pG,relativeLength:pH}=tt;function pF(){let t,e;if(this.isXAxis){for(let i of(t=pW(this.dataMax,-Number.MAX_VALUE),this.series)){let s=i.dataTable.getColumn("x2",!0)||i.dataTable.getColumn("end",!0);if(s)for(let i of s)pR(i)&&i>t&&(t=i,e=!0)}e&&(this.dataMax=t)}}class pX extends pC{static compose(t){pG(pA,"Series.XRange")&&pO(t,"afterGetSeriesExtremes",pF)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let t=()=>{for(let t of this.chart.series){let e=t.xAxis;t.xAxis=t.yAxis,t.yAxis=e}};t();let e=super.getColumnMetrics();return t(),e}cropData(t,e,i){let s=t.getColumn("x")||[],o=t.getColumn("x2");t.setColumn("x",o,void 0,{silent:!0});let r=super.cropData(t,e,i);return t.setColumn("x",s.slice(r.start,r.end),void 0,{silent:!0}),r}findPointIndex(t){let e;let{cropStart:i,points:s}=this,{id:o}=t;if(o){let t=pD(s,t=>t.id===o);e=t?t.index:void 0}if(void 0===e){let i=pD(s,e=>e.x===t.x&&e.x2===t.x2&&!e.touched);e=i?i.index:void 0}return this.cropped&&pR(e)&&pR(i)&&e>=i&&(e-=i),e}alignDataLabel(t){let e=t.plotX;t.plotX=pW(t.dlBox&&t.dlBox.centerX,t.plotX),t.dataLabel&&t.shapeArgs?.width&&t.dataLabel.css({width:`${t.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),t.plotX=e}translatePoint(t){let e=this.xAxis,i=this.yAxis,s=this.columnMetrics,o=this.options,r=o.minPointLength||0,n=(t.shapeArgs&&t.shapeArgs.width||0)/2,a=this.pointXOffset=s.offset,h=pW(t.x2,t.x+(t.len||0)),l=o.borderRadius,d=this.chart.plotTop,c=this.chart.plotLeft,p=t.plotX,u=e.translate(h,0,0,0,1),g=Math.abs(u-p),f=this.chart.inverted,m=pW(o.borderWidth,1),x,y,b=s.offset,v=Math.round(s.width),M,k,w,S;r&&((x=r-g)<0&&(x=0),p-=x/2,u+=x/2),p=Math.max(p,-10),u=pE(u,-10,e.len+10),pB(t.options.pointWidth)&&(b-=(Math.ceil(t.options.pointWidth)-v)/2,v=Math.ceil(t.options.pointWidth)),o.pointPlacement&&pR(t.plotY)&&i.categories&&(t.plotY=i.translate(t.y,0,1,0,1,o.pointPlacement));let A=pL(Math.min(p,u),m),T=pL(Math.max(p,u),m)-A,P=Math.min(pH("object"==typeof l?l.radius:l||0,v),Math.min(T,v)/2),C={x:A,y:pL((t.plotY||0)+b,m),width:T,height:v,r:P};t.shapeArgs=C,f?t.tooltipPos[1]+=a+n:t.tooltipPos[0]-=n+a-C.width/2,k=(M=C.x)+C.width,M<0||k>e.len?(M=pE(M,0,e.len),w=(k=pE(k,0,e.len))-M,t.dlBox=pz(C,{x:M,width:k-M,centerX:w?w/2:null})):t.dlBox=null;let O=t.tooltipPos,E=f?1:0,L=f?0:1,B=this.columnMetrics?this.columnMetrics.offset:-s.width/2;f?O[E]+=C.width/2:O[E]=pE(O[E]+(e.reversed?-1:0)*C.width,e.left-c,e.left+e.len-c-1),O[L]=pE(O[L]+(f?-1:1)*B,i.top-d,i.top+i.len-d-1),(y=t.partialFill)&&(pN(y)&&(y=y.amount),pR(y)||(y=0),t.partShapeArgs=pz(C),S=Math.max(Math.round(g*y+t.plotX-p),0),t.clipRectArgs={x:e.reversed?C.x+g-S:C.x,y:C.y,width:S,height:C.height}),t.key=t.category||t.name,t.yCategory=i.categories?.[t.y??-1]}translate(){for(let t of(super.translate.apply(this,arguments),this.points))this.translatePoint(t)}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeType,r=t.shapeArgs,n=t.partShapeArgs,a=t.clipRectArgs,h=t.state,l=i.states[h||"normal"]||{},d=void 0===h?"attr":e,c=this.pointAttribs(t,h),p=pW(this.chart.options.chart.animation,l.animation),u=t.graphic,g=t.partialFill;if(t.isNull||!1===t.visible)u&&(t.graphic=u.destroy());else if(u?u.rect[e](r):(t.graphic=u=s.g("point").addClass(t.getClassName()).add(t.group||this.group),u.rect=s[o](pz(r)).addClass(t.getClassName()).addClass("highcharts-partfill-original").add(u)),n&&(u.partRect?(u.partRect[e](pz(n)),u.partialClipRect[e](pz(a))):(u.partialClipRect=s.clipRect(a.x,a.y,a.width,a.height),u.partRect=s[o](n).addClass("highcharts-partfill-overlay").add(u).clip(u.partialClipRect))),!this.chart.styledMode&&(u.rect[e](c,p).shadow(i.shadow),n)){pN(g)||(g={}),pN(i.partialFill)&&(g=pz(i.partialFill,g));let e=g.fill||pP(c.fill).brighten(-.3).get()||pP(t.color||this.color).brighten(-.3).get();c.fill=e,u.partRect[d](c,p).shadow(i.shadow)}}drawPoints(){let t=this.getAnimationVerb();for(let e of this.points)this.drawPoint(e,t)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(t){let e=t.shapeArgs,i=t.plotX,s=t.plotY;return e?void 0!==i&&void 0!==s&&s>=0&&s<=this.yAxis.len&&(e.x||0)+(e.width||0)>=0&&i<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}pX.defaultOptions=pz(pC.defaultOptions,{colorByPoint:!0,dataLabels:{formatter:function(){let t=this.partialFill;if(pM(t)&&(t=t.amount),pv(t)&&t>0)return pb(100*t)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{ucfirst point.x} - {point.x2}
',pointFormat:' {series.name}: {point.yCategory}
'},borderRadius:3,pointRange:0}),pI(pX.prototype,{pointClass:pS,pointArrayMap:["x2","y"],getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:rx.series.prototype.animate,autoIncrement:pT,buildKDTree:pT}),rx.registerSeriesType("xrange",pX),pX.compose(O.Axis);let{xrange:{prototype:{pointClass:pY}}}=rx.seriesTypes;class pj extends pY{static setGanttPointAliases(t,e){t.x=t.start=e.time.parse(t.start??t.x),t.x2=t.end=e.time.parse(t.end??t.x2),t.partialFill=t.completed=t.completed??t.partialFill}applyOptions(t,e){let i=super.applyOptions(t,e);return pj.setGanttPointAliases(i,i.series.chart),this.isNull=!this.isValid?.(),i}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}let{isNumber:pU}=tt,{addEvent:pV,find:p$,fireEvent:p_,isArray:pq,isNumber:pZ,pick:pK}=tt;!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,n;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(n&&!1!==n.visible||(n=i[r+1]),t=i[r],!1!==n.visible&&!1!==t.visible){if(n.x-t.x>o){let e=(t.x+n.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new an(s,s.options.stackLabels,!1,e,this.stack)).total=0)}n=t}}return this.getGraphPath(i)}t.compose=function(t,l){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),pV(t,"init",o),pV(t,"afterInit",e),pV(t,"afterSetTickPositions",s),pV(t,"afterSetOptions",i);let d=l.prototype;d.drawBreaks=a,d.gappedPath=h,pV(l,"afterGeneratePoints",r),pV(l,"afterRender",n)}return t};class l{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(l.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return p$(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==l.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=l.lin2Val,s.val2lin=l.val2Lin,s.setExtremes=function(t,e,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=h;for(;p{t.getOffset()})}i&&t.apply(this)}function us(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:e,height:i,horiz:s,left:o,offset:r,opposite:n,options:a,top:h,width:l}=this,d=this.tickSize(),c=e&&e.getBBox().width,p=a.title.x,u=a.title.y,g=p4(a.title.margin,s?5:10),f=e?this.chart.renderer.fontMetrics(e).f:0,m=(s?h+i:o)+(s?1:-1)*(n?-1:1)*(d?d[0]/2:0)+(this.side===T.bottom?f:0);t.titlePosition.x=s?o-(c||0)/2-g+p:m+(n?l:0)+r+p,t.titlePosition.y=s?m-(n?i:0)+(n?f:-f)/2+r+u:h-g+u}}function uo(){let{chart:t,options:{grid:e={}},userOptions:i}=this;if(e.enabled&&function(t){let e=t.options;e.labels.align=p4(e.labels.align,"center"),t.categories||(e.showLastLabel=!1),t.labelRotation=0,e.labels.rotation=0,e.minTickInterval=1}(this),e.columns){let s=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++ot.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,e;let i=this.tickmarkOffset,r=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(e=this.hiddenMarks.pop())&&e.element;)e.show();(t=this.ticks[n].label)&&(s-n>i?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[r].label)&&(r-o>i?this.hiddenLabels.push(t.hide()):t.show());let a=this.ticks[r].mark;a&&r-o0&&this.ticks[r].isLast&&this.hiddenMarks.push(a.hide())}}}function un(){let t=this.tickPositions&&this.tickPositions.info,e=this.options,i=e.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&e.dateTimeLabelFormats&&e.labels&&!p1(s.align)&&(!1===e.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(e.labels.align="left",p1(s.x)||(e.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function ua(t){let e;let i=this.options,s=t.userOptions,o=i&&ut(i.grid)?i.grid:{};!0===o.enabled&&(e=p9(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(p1(s.linkedTo)&&!p1(s.tickPixelInterval)&&(e.tickPixelInterval=350),!(!p1(s.tickPixelInterval)&&p1(s.linkedTo))||p1(s.tickPositioner)||p1(s.tickInterval)||p1(s.units)||(e.tickPositioner=function(t,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=e.units||[],r,n=1,a="year";for(let t=0;tt.setScale())}function ud(t){let{horiz:e,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=e?s.cellHeight||o+i.height:o+i.width;p5(t.tickSize)?t.tickSize[0]=r:t.tickSize=[r,0]}}function uc(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function up(t){let{grid:e}=this;(e.columns||[]).forEach(e=>e.destroy(t.keepEvents)),e.columns=void 0}function uu(t){let e=t.userOptions||{},i=e.grid||{};i.enabled&&p1(i.borderColor)&&(e.tickColor=e.lineColor=i.borderColor),this.grid||(this.grid=new uy(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function ug(t){let e=this.label,i=this.axis,s=i.reversed,o=i.chart,r=i.options.grid||{},n=i.options.labels,a=n.align,h=T[i.side],l=t.tickmarkOffset,d=i.tickPositions,c=this.pos-l,p=p6(d[t.index+1])?d[t.index+1]-l:(i.max||0)+l,u=i.tickSize("tick"),g=u?u[0]:0,f=u?u[1]/2:0;if(!0===r.enabled){let r,l,d,u;if("top"===h?l=(r=i.top+i.offset)-g:"bottom"===h?r=(l=o.chartHeight-i.bottom+i.offset)+g:(r=i.top+i.len-(i.translate(s?p:c)||0),l=i.top+i.len-(i.translate(s?c:p)||0)),"right"===h?u=(d=o.chartWidth-i.right+i.offset)+g:"left"===h?d=(u=i.left+i.offset)-g:(d=Math.round(i.left+(i.translate(s?p:c)||0))-f,u=Math.min(Math.round(i.left+(i.translate(s?c:p)||0))-f,i.left+i.len)),this.slotWidth=u-d,t.pos.x="left"===a?d:"right"===a?u:d+(u-d)/2,t.pos.y=l+(r-l)/2,e){let i=o.renderer.fontMetrics(e),s=e.getBBox().height;if(n.useHTML)t.pos.y+=i.b+-(s/2);else{let e=Math.round(s/i.h);t.pos.y+=(i.b-(i.h-i.f))/2+-((e-1)*i.h/2)}}t.pos.x+=i.horiz&&n.x||0}}function uf(t){let{axis:e,value:i}=t;if(e.options.grid&&e.options.grid.enabled){let s;let o=e.tickPositions,r=(e.linkedParent||e).series[0],n=i===o[0],a=i===o[o.length-1],h=r&&p3(r.options.data,function(t){return t[e.isXAxis?"x":"y"]===i});h&&r.is("gantt")&&(s=p9(h),O.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,e.chart)),t.isFirst=n,t.isLast=a,t.point=s}}function um(){let t=this.options,e=t.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],a=s[s.length-2],h=this.linkedParent&&this.linkedParent.min,l=this.linkedParent&&this.linkedParent.max,d=h||this.min,c=l||this.max,p=this.tickInterval,u=p6(d)&&d>=o+p&&dd,f=p6(c)&&n>c&&n-pa;!0===e.enabled&&!i&&(this.isXAxis||this.isLinked)&&((g||u)&&!t.startOnTick&&(s[0]=d),(f||m)&&!t.endOnTick&&(s[s.length-1]=c))}function ux(t){var e;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:t.apply(this,(e=arguments,Array.prototype.slice.call(e,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(T||(T={}));class uy{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,e=t.chart,i=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],o=i?t.linkedParent:t,r=-1,n=0;return 3===t.side&&!e.inverted&&s.length?!t.linkedParent:((e[t.coll]||[]).forEach((e,i)=>{e.side!==t.side||e.options.isInternal||(n=i,e!==o||(r=i))}),n===r&&(!p6(i)||s.length===i))}renderBorder(t){let e=this.axis,i=e.chart.renderer,s=e.options,o=i.path(t).addClass("highcharts-axis-line").add(e.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}pQ.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},pQ.W=function(t){let e=this.toParts(t),i=(e[7]+6)%7,s=e.slice(0);s[2]=e[2]-i+3;let o=this.toParts(this.makeTime(s[0],0,1));return 4!==o[7]&&(e[1]=0,e[2]=1+(11-o[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(o[0],o[1],o[2]))/6048e5)).toString()};let ub={compose:function(t,e,i){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=ue,p7(t.prototype,"unsquish",ux),p7(t.prototype,"getOffset",ui),p0(t,"init",uu),p0(t,"afterGetTitlePosition",us),p0(t,"afterInit",uo),p0(t,"afterRender",ur),p0(t,"afterSetAxisTranslation",un),p0(t,"afterSetOptions",ua),p0(t,"afterSetOptions",uh),p0(t,"afterSetScale",ul),p0(t,"afterTickSize",ud),p0(t,"trimTicks",um),p0(t,"destroy",up),p0(e,"afterSetChartSize",uc),p0(i,"afterGetLabelPosition",ug),p0(i,"labelFormat",uf)),t}},{extend:uv,isNumber:uM,pick:uk}=tt;function uw(t,e,i,s,o,r){let n=r&&r.after,a=r&&r.before,h={data:s,depth:i-1,id:t,level:i,parent:e||""},l=0,d=0,c,p;"function"==typeof a&&a(h,r);let u=(o[t]||[]).map(e=>{let s=uw(e.id,t,i+1,e,o,r),n=e.start||NaN,a=!0===e.milestone?n:e.end||NaN;return c=!uM(c)||np?a:p,l=l+1+s.descendants,d=Math.max(s.height+1,d),s});return s&&(s.start=uk(s.start,c),s.end=uk(s.end,p)),uv(h,{children:u,descendants:l,height:d}),"function"==typeof n&&n(h,r),h}let uS={getNode:uw,getTree:function(t,e){return uw("",null,1,null,function(t){let e=[],i=t.reduce((t,i)=>{let{parent:s="",id:o}=i;return void 0===t[s]&&(t[s]=[]),t[s].push(i),o&&e.push(o),t},{});return Object.keys(i).forEach(t=>{if(""!==t&&-1===e.indexOf(t)){let e=i[t].map(function(t){let{...e}=t;return e});i[""].push(...e),delete i[t]}}),i}(t),e)}},{addEvent:uA,removeEvent:uT,isObject:uP,isNumber:uC,pick:uO,wrap:uE}=tt;function uL(){this.treeGrid||(this.treeGrid=new uD(this))}function uB(t,e,i,s,o,r,n,a,h){let l,d,c;let p=uO(this.options&&this.options.labels,r),u=this.pos,g=this.axis,f="treegrid"===g.type,m=t.apply(this,[e,i,s,o,p,n,a,h]);if(f){let{width:t=0,padding:e=g.linkedParent?0:5}=p&&uP(p.symbol,!0)?p.symbol:{},i=p&&uC(p.indentation)?p.indentation:0;c=(d=(l=g.treeGrid.mapOfPosToGridNode)&&l[u])&&d.depth||1,m.x+=t+2*e+(c-1)*i}return m}function uI(t){let e,i,s;let{pos:o,axis:r,label:n,treeGrid:a,options:h}=this,l=a?.labelIcon,d=n?.element,{treeGrid:c,options:p,chart:u,tickPositions:g}=r,f=c.mapOfPosToGridNode,m=uO(h?.labels,p?.labels),x=m&&uP(m.symbol,!0)?m.symbol:{},y=f&&f[o],{descendants:b,depth:v}=y||{},M=y&&b&&b>0,k="treegrid"===r.type&&d,w=g.indexOf(o)>-1,S="highcharts-treegrid-node-",A=S+"level-",T=u.styledMode;k&&y&&n.removeClass(RegExp(A+".*")).addClass(A+v),t.apply(this,Array.prototype.slice.call(arguments,1)),k&&M?(e=c.isCollapsed(y),function(t,e){let i=t.treeGrid,s=!i.labelIcon,o=e.renderer,r=e.xy,n=e.options,a=n.width||0,h=n.height||0,l=n.padding??t.axis.linkedParent?0:5,d={x:r.x-a/2-l,y:r.y-h/2},c=e.collapsed?90:180,p=e.show&&uC(d.y),u=i.labelIcon;u||(i.labelIcon=u=o.path(o.symbols[n.type](n.x||0,n.y||0,a,h)).addClass("highcharts-label-icon").add(e.group)),u[p?"show":"hide"](),o.styledMode||u.attr({cursor:"pointer",fill:uO(e.color,"#666666"),"stroke-width":1,stroke:n.lineColor,strokeWidth:n.lineWidth||0}),u[s?"attr":"animate"]({translateX:d.x,translateY:d.y,rotation:c})}(this,{color:!T&&n.styles.color||"",collapsed:e,group:n.parentGroup,options:x,renderer:n.renderer,show:w,xy:n.xy}),i=S+(e?"collapsed":"expanded"),s=S+(e?"expanded":"collapsed"),n.addClass(i).removeClass(s),T||n.css({cursor:"pointer"}),[n,l].forEach(t=>{t&&!t.attachedTreeGridEvents&&(uA(t.element,"mouseover",function(){n.addClass("highcharts-treegrid-node-active"),n.renderer.styledMode||n.css({textDecoration:"underline"})}),uA(t.element,"mouseout",function(){!function(t,e){let i=uP(e.style)?e.style:{};t.removeClass("highcharts-treegrid-node-active"),t.renderer.styledMode||t.css({textDecoration:i.textDecoration||"none"})}(n,m)}),uA(t.element,"click",function(){a.toggleCollapse()}),t.attachedTreeGridEvents=!0)})):l&&(uT(d),n?.css({cursor:"default"}),l.destroy())}class uD{static compose(t){let e=t.prototype;e.toggleCollapse||(uA(t,"init",uL),uE(e,"getLabelPosition",uB),uE(e,"renderLabel",uI),e.collapse=function(t){this.treeGrid.collapse(t)},e.expand=function(t){this.treeGrid.expand(t)},e.toggleCollapse=function(t){this.treeGrid.toggleCollapse(t)})}constructor(t){this.tick=t}collapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.collapse(r);s.setBreaks(n,uO(t,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(t){let{pos:e,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,r=s.mapOfPosToGridNode;if(o&&r){let i=r[e],n=s.expand(i);o.setBreaks(n,uO(t,!0))}}toggleCollapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.toggleCollapse(r);s.setBreaks(n,uO(t,!0))}}}let{extend:uR,isArray:uN,isNumber:uz,isObject:uW,merge:uG,pick:uH,relativeLength:uF}=tt,{getLevelOptions:uX}={getColor:function(t,e){let i,s,o,r,n,a;let h=e.index,l=e.mapOptionsToLevel,d=e.parentColor,c=e.parentColorIndex,p=e.series,u=e.colors,g=e.siblings,f=p.points,m=p.chart.options.chart;return t&&(i=f[t.i],s=l[t.level]||{},i&&s.colorByPoint&&(r=i.index%(u?u.length:m.colorCount),o=u&&u[r]),p.chart.styledMode||(n=uH(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&h&&g?tC.parse(t).brighten(e.to*(h/g)).get():t})(d),p.color)),a=uH(i&&i.options.colorIndex,s&&s.colorIndex,r,c,e.colorIndex)),{color:n,colorIndex:a}},getLevelOptions:function(t){let e,i,s,o,r,n;let a={};if(uW(t))for(o=uz(t.from)?t.from:1,n=t.levels,i={},e=uW(t.defaults)?t.defaults:{},uN(n)&&(i=n.reduce((t,i)=>{let s,r,n;return uW(i)&&uz(i.level)&&(r=uH((n=uG({},i)).levelIsConstant,e.levelIsConstant),delete n.levelIsConstant,delete n.level,uW(t[s=i.level+(r?0:o-1)])?uG(!0,t[s],n):t[s]=n),t},{})),r=uz(t.to)?t.to:1,s=0;s<=r;s++)a[s]=uG({},e,uW(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(n+t)/(e||1)-t}return uF(r,n)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],n=!1!==i.levelIsConstant,a=i.points[e.i],h=a&&a.options||{},l=[],d=0;e.levelDynamic=e.level-(n?0:r.level),e.name=uH(a&&a.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=uR({},i);uR(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),l.push(s),s.visible&&(d+=s.val)});let c=uH(h.value,d);return e.visible=c>=0&&(d>0||e.visible),e.children=l,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=c,e},updateRootId:function(t){let e,i;return uW(t)&&(i=uW(t.options)?t.options:{},e=uH(t.rootNode,i.rootId,""),uW(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:uY,isArray:uj,splat:uU,find:uV,fireEvent:u$,isObject:u_,isString:uq,merge:uZ,pick:uK,removeEvent:uJ,wrap:uQ}=tt;function u0(t,e){let i=t.collapseEnd||0,s=t.collapseStart||0;return i>=e&&(s-=.5),{from:s,to:i,showPoints:!1}}function u1(t,e,i){let s=[],o=[],r={},n=e||!1,a={},h=-1,l=uS.getTree(t,{after:function(t){let e=a[t.pos],i=0,s=0;e.children.forEach(function(t){s+=(t.descendants||0)+1,i=Math.max((t.height||0)+1,i)}),e.descendants=s,e.height=i,e.collapsed&&o.push(e)},before:function(t){let e,i;let o=u_(t.data,!0)?t.data:{},l=uq(o.name)?o.name:"",d=r[t.parent],c=u_(d,!0)?a[d.pos]:null;n&&u_(c,!0)&&(e=uV(c.children,function(t){return t.name===l}))?(i=e.pos,e.nodes.push(t)):i=h++,!a[i]&&(a[i]=e={depth:c?c.depth+1:0,name:l,id:o.id,nodes:[t],children:[],pos:i},-1!==i&&s.push(l),u_(c,!0)&&c.children.push(e)),uq(t.id)&&(r[t.id]=t),e&&!0===o.collapsed&&(e.collapsed=!0),t.pos=i}});return{categories:s,mapOfIdToNode:r,mapOfPosToGridNode:a=function(t,e){let i=function(t,s,o){let r=t.nodes,n=s+(-1===s?0:e-1),a=(n-s)/2,h=s+a;return r.forEach(function(t){let e=t.data;u_(e,!0)&&(e.y=s+(e.seriesIndex||0),delete e.seriesIndex),t.pos=h}),o[h]=t,t.pos=h,t.tickmarkOffset=a+.5,t.collapseStart=n+.5,t.children.forEach(function(t){i(t,n+1,o),n=(t.collapseEnd||0)-.5}),t.collapseEnd=n+.5,o};return i(t["-1"],-1,{})}(a,i),collapsedNodes:o,tree:l}}function u2(t){let e=t.target;e.axes.filter(t=>"treegrid"===t.type).forEach(function(i){let s=i.options||{},o=s.labels,r=i.uniqueNames,n=e.time.parse(s.max),a=!i.treeGrid.mapOfPosToGridNode||i.series.some(function(t){return!t.hasRendered||t.isDirtyData||t.isDirty}),h=0,l,d;if(a){let s=[];if(l=i.series.reduce(function(t,i){let o=i.options.data||[],n=o[0],a=Array.isArray(n)&&!n.find(t=>"object"==typeof t);return s.push(a),i.visible&&(o.forEach(function(s){(a||i.options.keys&&i.options.keys.length)&&(s=i.pointClass.prototype.optionsToObject.call({series:i},s),i.pointClass.setGanttPointAliases(s,e)),u_(s,!0)&&(s.seriesIndex=h,t.push(s))}),!0===r&&h++),t},[]),n&&l.length=0&&e.indexOf(t.x2||0)>=0&&(i=t)}),u_(i,!0)?uZ(i):i});t.visible&&t.setData(i,!1)}),i.treeGrid.mapOptionsToLevel=uX({defaults:o,from:1,levels:o&&o.levels,to:i.treeGrid.tree&&i.treeGrid.tree.height}),"beforeRender"===t.type&&(i.treeGrid.collapsedNodes=d.collapsedNodes)}})}function u3(t,e){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.type,r=this.ticks,n=r[e],a,h,l;s&&this.treeGrid.mapOfPosToGridNode?((a=i[(l=this.treeGrid.mapOfPosToGridNode[e]).depth])&&(h={labels:a}),!n&&o?r[e]=n=new o(this,e,void 0,void 0,{category:l.name,tickmarkOffset:l.tickmarkOffset,options:h}):(n.parameters.category=l.name,n.options=h,n.addLabel())):t.apply(this,Array.prototype.slice.call(arguments,1))}function u5(t,e,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new u4(o)),r&&(uY(e,"beforeRender",u2),uY(e,"beforeRedraw",u2),uY(e,"addSeries",function(t){if(t.options.data){let e=u1(t.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(e.collapsedNodes)}}),uY(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(t){let e=o.treeGrid.collapse(t);o.brokenAxis&&(o.brokenAxis.setBreaks(e,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(e=>t.collapseStart!==e.collapseStart||t.collapseEnd!==e.collapseEnd)))})}),uY(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=uZ({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),t.apply(o,[e,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function u6(t){let e=this.options,i=this.chart.time,s="number"==typeof e.linkedTo?this.chart[this.coll]?.[e.linkedTo]:void 0;if("treegrid"===this.type){if(this.min=this.userMin??i.parse(e.min)??this.dataMin,this.max=this.userMax??i.parse(e.max)??this.dataMax,u$(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],s){let t=s.getExtremes();this.min=uK(t.min,t.dataMin),this.max=uK(t.max,t.dataMax),this.tickPositions=s.tickPositions}this.linkedParent=s}else t.apply(this,Array.prototype.slice.call(arguments,1))}function u9(t){let e=this;"treegrid"===this.type&&e.visible&&e.tickPositions.forEach(function(t){let i=e.ticks[t];i.label&&i.label.attachedTreeGridEvents&&(uJ(i.label.element),i.label.attachedTreeGridEvents=!1)}),t.apply(e,Array.prototype.slice.call(arguments,1))}class u4{static compose(t,e,i,s){if(!t.keepProps.includes("treeGrid")){let e=t.prototype;t.keepProps.push("treeGrid"),uQ(e,"generateTick",u3),uQ(e,"init",u5),uQ(e,"setTickInterval",u6),uQ(e,"redraw",u9),e.utils={getNode:uS.getNode},o||(o=s)}return ub.compose(t,e,s),pJ.compose(t,i),uD.compose(s),t}constructor(t){this.axis=t}setCollapsedStatus(t){let e=this.axis,i=e.chart;e.series.forEach(function(e){let s=e.options.data;if(t.id&&s){let o=i.get(t.id),r=s[e.data.indexOf(o)];o&&r&&(o.collapsed=t.collapsed,r.collapsed=t.collapsed)}})}collapse(t){let e=this.axis,i=e.options.breaks||[],s=u0(t,e.max);return i.push(s),t.collapsed=!0,e.treeGrid.setCollapsedStatus(t),i}expand(t){let e=this.axis,i=e.options.breaks||[],s=u0(t,e.max);return t.collapsed=!1,e.treeGrid.setCollapsedStatus(t),i.reduce(function(t,e){return(e.to!==s.to||e.from!==s.from)&&t.push(e),t},[])}getTickPositions(){let t=this.axis,e=Math.floor(t.min/t.tickInterval)*t.tickInterval,i=Math.ceil(t.max/t.tickInterval)*t.tickInterval;return Object.keys(t.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=e&&r<=i&&!(t.brokenAxis&&t.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(t){let e=this.axis,i=e.options.breaks||[],s=u0(t,e.max);return i.some(function(t){return t.from===s.from&&t.to===s.to})}toggleCollapse(t){return this.isCollapsed(t)?this.expand(t):this.collapse(t)}}let{series:u8,seriesTypes:{xrange:u7}}=rx,{extend:gt,isNumber:ge,merge:gi}=tt;class gs extends u7{static compose(t,e,i,s){u7.compose(t),e&&(py.compose(t,e),i)&&(pc.compose(e,i.prototype.pointClass),s&&u4.compose(t,e,i,s))}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeArgs,r=t.plotY,n=t.selected&&"select",a=i.stacking&&!i.borderRadius,h=t.graphic,l;t.options.milestone?ge(r)&&null!==t.y&&!1!==t.visible?(l=s.symbols.diamond(o.x||0,o.y||0,o.width||0,o.height||0),h?h[e]({d:l}):t.graphic=h=s.path(l).addClass(t.getClassName(),!0).add(t.group||this.group),this.chart.styledMode||t.graphic.attr(this.pointAttribs(t,n)).shadow(i.shadow,null,a)):h&&(t.graphic=h.destroy()):super.drawPoint(t,e)}translatePoint(t){let e,i;super.translatePoint(t),t.options.milestone&&(i=(e=t.shapeArgs).height||0,t.shapeArgs={x:(e.x||0)-i/2,y:e.y,width:i,height:i})}}gs.defaultOptions=gi(u7.defaultOptions,{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
',pointFormat:null,pointFormatter:function(){let t=this.series,e=t.xAxis,i=t.tooltipOptions.dateTimeLabelFormats,s=e.options.startOfWeek,o=t.tooltipOptions,r=this.options.milestone,n=o.xDateFormat,a=""+(this.name||this.yCategory)+"";if(o.pointFormat)return this.tooltipFormatter(o.pointFormat);!n&&pU(this.start)&&(n=t.chart.time.getDateFormat(e.closestPointRange,this.start,s,i||{}));let h=t.chart.time.dateFormat(n,this.start),l=t.chart.time.dateFormat(n,this.end);return a+="
",r?a+=h+"
":a+="Start: "+h+"
End: "+l+"
",a}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}),gt(gs.prototype,{pointArrayMap:["start","end","y"],pointClass:pj,setData:u8.prototype.setData}),rx.registerSeriesType("gantt",gs),O.Connection=O.Connection||lG,O.GanttChart=O.GanttChart||l0,O.Navigator=O.Navigator||ci,O.RangeSelector=O.RangeSelector||cZ,O.Scrollbar=O.Scrollbar||dV,O.ganttChart=O.GanttChart.ganttChart,lL.compose(O.SVGRenderer),({compose:function(t,e){lY(lH,"CurrentDateIndication")&&(lF(t,"afterSetOptions",lV),lF(e,"render",l$),lj(e.prototype,"getLabelText",l_))}}).compose(O.Axis,O.PlotLineOrBand),gs.compose(O.Axis,O.Chart,O.Series,O.Tick),O.Navigator.compose(O.Chart,O.Axis,O.Series),O.RangeSelector.compose(O.Axis,O.Chart),O.Scrollbar.compose(O.Axis),/** + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/highcharts-gantt * * (c) 2017-2024 Lars Cabrera, Torstein Honsi, Jon Arild Nygard & Oystein Moseng * * License: www.highcharts.com/license - */O.product="Highcharts Gantt";let gi=O;return C.default})()); \ No newline at end of file + */O.product="Highcharts Gantt";let go=O;return C.default})()); \ No newline at end of file diff --git a/highcharts-gantt.src.js b/highcharts-gantt.src.js index 01e3547f40..713c42e535 100644 --- a/highcharts-gantt.src.js +++ b/highcharts-gantt.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi @@ -74,7 +74,7 @@ var Globals; * Constants * * */ - Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.0.2', Globals.win = (typeof window !== 'undefined' ? + Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.1.0', Globals.win = (typeof window !== 'undefined' ? window : {}), // eslint-disable-line node/no-unsupported-features/es-builtins Globals.doc = Globals.win.document, Globals.svg = (Globals.doc && @@ -1275,7 +1275,7 @@ function getNestedProperty(path, parent) { } return thisProp ?? parent; } - const child = parent[pathElement]; + const child = parent[pathElement.replace(/[\\'"]/g, '')]; // Filter on the child if (!defined(child) || typeof child === 'function' || @@ -3582,7 +3582,9 @@ class Time { * Properties * * */ - this.options = {}; + this.options = { + timezone: 'UTC' + }; this.variableTimezone = false; this.Date = Time_win.Date; this.update(options); @@ -3604,12 +3606,13 @@ class Time { * */ update(options = {}) { - let timezone = options.timezone ?? 'UTC'; this.dTLCache = {}; this.options = options = Time_merge(true, this.options, options); const { timezoneOffset, useUTC } = options; // Allow using a different Date class this.Date = options.Date || Time_win.Date || Date; + // Assign the time zone. Handle the legacy, deprecated `useUTC` option. + let timezone = options.timezone; if (Time_defined(useUTC)) { timezone = useUTC ? 'UTC' : void 0; } @@ -4052,7 +4055,7 @@ class Time { } else if (Time_isObject(format)) { const tzHours = (this.getTimezoneOffset(timestamp) || 0) / - (60000 * 60), timeZone = this.options.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; + (60000 * 60), timeZone = this.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; format = prefix + this.dateTimeFormat(Time_extend({ timeZone }, format), timestamp) + suffix; } // Optionally sentence-case the string and return @@ -7460,18 +7463,11 @@ class Color { } // Check for has alpha, because rgba colors perform worse due to // lack of support in WebKit. - const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1); - return (hasAlpha ? 'rgba(' : 'rgb(') + - Math.round(toRgba[0] + (fromRgba[0] - toRgba[0]) * (1 - pos)) + - ',' + - Math.round(toRgba[1] + (fromRgba[1] - toRgba[1]) * (1 - pos)) + - ',' + - Math.round(toRgba[2] + (fromRgba[2] - toRgba[2]) * (1 - pos)) + - (hasAlpha ? - (',' + - (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))) : - '') + - ')'; + const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1), channel = (to, i) => to + (fromRgba[i] - to) * (1 - pos), rgba = toRgba.slice(0, 3).map(channel).map(Math.round); + if (hasAlpha) { + rgba.push(channel(toRgba[3], 3)); + } + return (hasAlpha ? 'rgba(' : 'rgb(') + rgba.join(',') + ')'; } } /* * @@ -8840,7 +8836,7 @@ const { defaultOptions: Templating_defaultOptions, defaultTime: Templating_defau const { doc: Templating_doc } = Core_Globals; -const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; +const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, isString: Templating_isString, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; const helpers = { // Built-in helpers add: (a, b) => a + b, @@ -8875,6 +8871,8 @@ const numberFormatCache = {}; * Functions * * */ +// Internal convenience function +const isQuotedString = (str) => /^["'].+["']$/.test(str); /** * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a * human readable date string. The format is a subset of the formats for PHP's @@ -8952,11 +8950,11 @@ function dateFormat(format, timestamp, upperCaseFirst) { * The formatted string. */ function format(str = '', ctx, chart) { - const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu, + const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu, // The sub expression regex is the same as the top expression regex, // but except parens and block helpers (#), and surrounded by parens // instead of curly brackets. - subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; + subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; /* * Get a literal or variable value inside a template expression. May be * extended with other types like string or null if needed, but keep it @@ -8974,7 +8972,7 @@ function format(str = '', ctx, chart) { if ((n = Number(key)).toString() === key) { return n; } - if (/^["'].+["']$/.test(key)) { + if (isQuotedString(key)) { return key.slice(1, -1); } // Variables and constants @@ -9087,7 +9085,8 @@ function format(str = '', ctx, chart) { // Simple variable replacement } else { - const valueAndFormat = expression.split(':'); + const valueAndFormat = isQuotedString(expression) ? + [expression] : expression.split(':'); replacement = resolveProperty(valueAndFormat.shift() || ''); // Format the replacement if (valueAndFormat.length && typeof replacement === 'number') { @@ -9100,13 +9099,14 @@ function format(str = '', ctx, chart) { } else { replacement = time.dateFormat(segment, replacement); - // Use string literal in order to be preserved in the outer - // expression - if (hasSub) { - replacement = `"${replacement}"`; - } } } + // Use string literal in order to be preserved in the outer + // expression + subRegex.lastIndex = 0; + if (subRegex.test(match.find) && Templating_isString(replacement)) { + replacement = `"${replacement}"`; + } } str = str.replace(match.find, Templating_pick(replacement, '')); }); @@ -9691,7 +9691,9 @@ class SVGElement { * @return {Highcharts.SVGElement} Returns the SVGElement for chaining. */ align(alignOptions, alignByTranslate, alignTo, redraw = true) { - const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); + const attribs = { + 'text-align': alignOptions?.align + }, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); // First call on instanciate if (alignOptions) { this.alignOptions = alignOptions; @@ -11431,6 +11433,7 @@ class SVGLabel extends SVG_SVGElement { * */ alignSetter(value) { const alignFactor = SVGLabel_getAlignFactor(value); + this.textAlign = value; if (alignFactor !== this.alignFactor) { this.alignFactor = alignFactor; // Bounding box exists, means we're dynamically changing @@ -11606,6 +11609,7 @@ class SVGLabel extends SVG_SVGElement { } 'text-alignSetter'(value) { this.textAlign = value; + this.updateTextPadding(); } textSetter(text) { if (typeof text !== 'undefined') { @@ -11675,24 +11679,19 @@ class SVGLabel extends SVG_SVGElement { * is changed. */ updateTextPadding() { - const text = this.text; + const text = this.text, textAlign = text.styles.textAlign || this.textAlign; if (!text.textPath) { this.updateBoxSize(); // Determine y based on the baseline const textY = this.baseline ? 0 : this.baselineOffset, textX = (this.paddingLeft ?? this.padding) + // Compensate for alignment - ((SVGLabel_defined(this.widthSetting) && this.bBox) ? - SVGLabel_getAlignFactor(this.textAlign) * - (this.widthSetting - this.bBox.width) : - 0); + SVGLabel_getAlignFactor(textAlign) * (this.widthSetting ?? this.bBox.width); // Update if anything changed if (textX !== text.x || textY !== text.y) { - text.attr('x', textX); - // #8159 - prevent misplaced data labels in treemap - // (useHTML: true) - if (text.hasBoxWidthChanged) { - this.bBox = text.getBBox(true); - } + text.attr({ + align: textAlign, + x: textX + }); if (typeof textY !== 'undefined') { text.attr('y', textY); } @@ -12637,7 +12636,7 @@ class SVGRenderer { this.url = this.getReferenceURL(); // Add description const desc = this.createElement('desc').add(); - desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.0.2')); + desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.1.0')); this.defs = this.createElement('defs').add(); this.allowHTML = allowHTML; this.forExport = forExport; @@ -14604,7 +14603,7 @@ class HTMLElement extends SVG_SVGElement { textWidth, this.textAlign ].join(','), parentPadding = (this.parentGroup?.padding * -1) || 0; - let baseline, hasBoxWidthChanged = false; + let baseline; // Update textWidth. Use the memoized textPxLength if possible, to // avoid the getTextPxLength function using elem.offsetWidth. // Calling offsetWidth affects rendering time as it forces layout @@ -14627,10 +14626,8 @@ class HTMLElement extends SVG_SVGElement { whiteSpace: whiteSpace || 'normal' // #3331 }); this.oldTextWidth = textWidth; - hasBoxWidthChanged = true; // #8159 } } - this.hasBoxWidthChanged = hasBoxWidthChanged; // #8159 // Do the calculations and DOM access only if properties changed if (currentTextTransform !== this.cTT) { baseline = renderer.fontMetrics(element).b; @@ -33086,9 +33083,14 @@ class Series { * @private * @function Highcharts.Series#searchKDTree */ - searchKDTree(point, compareX, e) { + searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator) { const series = this, [kdX, kdY] = this.kdAxisArray, kdComparer = compareX ? 'distX' : 'dist', kdDimensions = (series.options.findNearestPointBy || '') - .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble; + .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble, pointEvaluator = suppliedPointEvaluator || ((p1, p2, comparisonProp) => [ + (p1[comparisonProp] || 0) < (p2[comparisonProp] || 0) ? + p1 : + p2, + false + ]), bSideCheckEvaluator = suppliedBSideCheckEvaluator || ((a, b) => a < b); /** * Set the one and two dimensional distance on the point object. * @private @@ -33103,28 +33105,21 @@ class Series { */ function doSearch(search, tree, depth, dimensions) { const point = tree.point, axis = series.kdAxisArray[depth % dimensions]; - let nPoint1, nPoint2, ret = point; + let ret = point, flip = false; setDistance(search, point); // Pick side based on distance to splitting point const tdist = (search[axis] || 0) - (point[axis] || 0) + (useRadius ? (point.marker?.radius || 0) : 0), sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left'; // End of tree if (tree[sideA]) { - nPoint1 = doSearch(search, tree[sideA], depth + 1, dimensions); - ret = (nPoint1[kdComparer] < - ret[kdComparer] ? - nPoint1 : - point); + [ret, flip] = pointEvaluator(point, doSearch(search, tree[sideA], depth + 1, dimensions), kdComparer); } if (tree[sideB]) { + const sqrtTDist = Math.sqrt(tdist * tdist), retDist = ret[kdComparer]; // Compare distance to current best to splitting point to decide - // whether to check side B or not - if (Math.sqrt(tdist * tdist) < ret[kdComparer]) { - nPoint2 = doSearch(search, tree[sideB], depth + 1, dimensions); - ret = (nPoint2[kdComparer] < - ret[kdComparer] ? - nPoint2 : - ret); + // whether to check side B or no + if (bSideCheckEvaluator(sqrtTDist, retDist, flip)) { + ret = pointEvaluator(ret, doSearch(search, tree[sideB], depth + 1, dimensions), kdComparer)[0]; } } return ret; @@ -42632,7 +42627,9 @@ var DataLabel; (unrotatedbBox.width - bBox.width); dataLabel.alignAttr.y += DataLabel_getAlignFactor(options.verticalAlign) * (unrotatedbBox.height - bBox.height); - dataLabel[dataLabel.placed ? 'animate' : 'attr']({ + dataLabel.attr({ + 'text-align': dataLabel.alignAttr['text-align'] || 'center' + })[dataLabel.placed ? 'animate' : 'attr']({ x: dataLabel.alignAttr.x + (bBox.width - unrotatedbBox.width) / 2, y: dataLabel.alignAttr.y + @@ -51613,8 +51610,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -51654,8 +51654,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -53047,6 +53050,7 @@ const { addEvent: RangeSelector_addEvent, createElement: RangeSelector_createEle * @function preferredInputType */ function preferredInputType(format) { + const hasTimeKey = (char) => new RegExp(`%[[a-zA-Z]*${char}`).test(format); const ms = RangeSelector_isString(format) ? format.indexOf('%L') !== -1 : // Implemented but not typed as of 2024 @@ -53056,11 +53060,10 @@ function preferredInputType(format) { } const date = RangeSelector_isString(format) ? ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y'] - .some((char) => format.indexOf('%' + char) !== -1) : + .some(hasTimeKey) : format.dateStyle || format.day || format.month || format.year; const time = RangeSelector_isString(format) ? - ['H', 'k', 'I', 'l', 'M', 'S'] - .some((char) => format.indexOf('%' + char) !== -1) : + ['H', 'k', 'I', 'l', 'M', 'S'].some(hasTimeKey) : format.timeStyle || format.hour || format.minute || format.second; if (date && time) { return 'datetime-local'; @@ -53107,6 +53110,16 @@ class RangeSelector { this.isDirty = false; this.buttonOptions = RangeSelector.prototype.defaultButtons; this.initialButtonGroupWidth = 0; + this.maxButtonWidth = () => { + let buttonWidth = 0; + this.buttons.forEach((button) => { + const bBox = button.getBBox(); + if (bBox.width > buttonWidth) { + buttonWidth = bBox.width; + } + }); + return buttonWidth; + }; this.init(chart); } /* * @@ -53400,9 +53413,15 @@ class RangeSelector { if (selectedIndex !== null) { buttonStates[selectedIndex] = 2; rangeSelector.setSelected(selectedIndex); + if (this.dropdown) { + this.dropdown.selectedIndex = selectedIndex + 1; + } } else { rangeSelector.setSelected(); + if (this.dropdown) { + this.dropdown.selectedIndex = -1; + } if (dropdownLabel) { dropdownLabel.setState(0); dropdownLabel.attr({ @@ -54021,11 +54040,11 @@ class RangeSelector { const { buttonPosition, inputPosition, verticalAlign } = options; // Get the X offset required to avoid overlapping with the exporting // button. This is used both by the buttonGroup and the inputGroup. - const getXOffsetForExportButton = (group, position) => { + const getXOffsetForExportButton = (group, position, rightAligned) => { if (navButtonOptions && this.titleCollision(chart) && verticalAlign === 'top' && - position.align === 'right' && ((position.y - + rightAligned && ((position.y - group.getBBox().height - 12) < ((navButtonOptions.y || 0) + (navButtonOptions.height || 0) + @@ -54054,7 +54073,8 @@ class RangeSelector { } plotLeft -= chart.spacing[3]; // Detect collision between button group and exporting - const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition); + const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); this.alignButtonGroup(xOffsetForExportButton); if (this.buttonGroup?.translateY) { this.dropdownLabel @@ -54066,7 +54086,8 @@ class RangeSelector { let xOffsetForExportButton = 0; if (options.inputEnabled && inputGroup) { // Detect collision between the input group and exporting button - xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition); + xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); if (inputPosition.align === 'left') { translateX = plotLeft; } @@ -54219,16 +54240,35 @@ class RangeSelector { * @param {number} [width] */ alignButtonGroup(xOffsetForExportButton, width) { - const { chart, options, buttonGroup } = this; + const { chart, options, buttonGroup, dropdown, dropdownLabel } = this; const { buttonPosition } = options; const plotLeft = chart.plotLeft - chart.spacing[3]; let translateX = buttonPosition.x - chart.spacing[3]; + let dropdownTranslateX = chart.plotLeft; if (buttonPosition.align === 'right') { translateX += xOffsetForExportButton - plotLeft; // #13014 + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth + + xOffsetForExportButton - + this.maxButtonWidth() - 20; + } } else if (buttonPosition.align === 'center') { translateX -= plotLeft / 2; + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth / 2 - + this.maxButtonWidth(); + } } + if (dropdown) { + RangeSelector_css(dropdown, { + left: dropdownTranslateX + 'px', + top: buttonGroup?.translateY + 'px' + }); + } + dropdownLabel?.attr({ + x: dropdownTranslateX + }); if (buttonGroup) { // Align button group buttonGroup.align({ @@ -54282,36 +54322,6 @@ class RangeSelector { handleCollision(xOffsetForExportButton) { const { chart, buttonGroup, inputGroup } = this; const { buttonPosition, dropdown, inputPosition } = this.options; - const maxButtonWidth = () => { - let buttonWidth = 0; - this.buttons.forEach((button) => { - const bBox = button.getBBox(); - if (bBox.width > buttonWidth) { - buttonWidth = bBox.width; - } - }); - return buttonWidth; - }; - const groupsOverlap = (buttonGroupWidth) => { - if (inputGroup?.alignOptions && buttonGroup) { - const inputGroupX = (inputGroup.alignAttr.translateX + - inputGroup.alignOptions.x - - xOffsetForExportButton + - // `getBBox` for detecing left margin - inputGroup.getBBox().x + - // 2px padding to not overlap input and label - 2); - const inputGroupWidth = inputGroup.alignOptions.width || 0; - const buttonGroupX = buttonGroup.alignAttr.translateX + - buttonGroup.getBBox().x; - return (buttonGroupX + buttonGroupWidth > inputGroupX) && - (inputGroupX + inputGroupWidth > buttonGroupX) && - (buttonPosition.y < - (inputPosition.y + - inputGroup.getBBox().height)); - } - return false; - }; const moveInputsDown = () => { if (inputGroup && buttonGroup) { inputGroup.attr({ @@ -54323,47 +54333,43 @@ class RangeSelector { }); } }; - if (buttonGroup) { - if (dropdown === 'always') { - this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - // Move the inputs down if there is still a collision - // after collapsing the buttons - moveInputsDown(); - } - return; - } - if (dropdown === 'never') { - this.expandButtons(); - } - } // Detect collision if (inputGroup && buttonGroup) { - if ((inputPosition.align === buttonPosition.align) || - // 20 is minimal spacing between elements - groupsOverlap(this.initialButtonGroupWidth + 20)) { + if (inputPosition.align === buttonPosition.align) { + moveInputsDown(); + if (this.initialButtonGroupWidth > + chart.plotWidth + xOffsetForExportButton - 20) { + this.collapseButtons(); + } + else { + this.expandButtons(); + } + } + else if (this.initialButtonGroupWidth - + xOffsetForExportButton + + inputGroup.getBBox().width > + chart.plotWidth) { if (dropdown === 'responsive') { this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - moveInputsDown(); - } } else { moveInputsDown(); } } - else if (dropdown === 'responsive') { + else { this.expandButtons(); } } - else if (buttonGroup && dropdown === 'responsive') { - if (this.initialButtonGroupWidth > chart.plotWidth) { + // Forced states + if (buttonGroup) { + if (dropdown === 'always') { this.collapseButtons(); } - else { + if (dropdown === 'never') { this.expandButtons(); } } + this.alignButtonGroup(xOffsetForExportButton); } /** * Collapse the buttons and show the select element. @@ -54406,17 +54412,10 @@ class RangeSelector { * @function Highcharts.RangeSelector#showDropdown */ showDropdown() { - const { buttonGroup, chart, dropdownLabel, dropdown } = this; + const { buttonGroup, dropdownLabel, dropdown } = this; if (buttonGroup && dropdown) { - const { translateX = 0, translateY = 0 } = buttonGroup, left = chart.plotLeft + translateX, top = translateY; - dropdownLabel - .attr({ x: left, y: top }) - .show(); - RangeSelector_css(dropdown, { - left: left + 'px', - top: top + 'px', - visibility: 'inherit' - }); + dropdownLabel.show(); + RangeSelector_css(dropdown, { visibility: 'inherit' }); this.hasVisibleDropdown = true; } } @@ -56395,7 +56394,7 @@ Pathfinder.prototype.algorithms = PathfinderAlgorithms; ;// ./code/es-modules/masters/modules/pathfinder.src.js /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/pathfinder * @requires highcharts * @@ -56523,7 +56522,7 @@ const StaticScale = { ;// ./code/es-modules/masters/modules/static-scale.src.js /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/static-scale * @requires highcharts * @@ -57334,7 +57333,7 @@ Series_SeriesRegistry.registerSeriesType('xrange', XRangeSeries); ;// ./code/es-modules/masters/modules/xrange.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/xrange * @requires highcharts * @@ -60882,7 +60881,7 @@ Series_SeriesRegistry.registerSeriesType('gantt', GanttSeries); ;// ./code/es-modules/masters/modules/gantt.src.js /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/gantt * @requires highcharts * @@ -60926,7 +60925,7 @@ gantt_src_G.Scrollbar.compose(gantt_src_G.Axis); ;// ./code/es-modules/masters/highcharts-gantt.src.js /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/highcharts-gantt * * (c) 2017-2024 Lars Cabrera, Torstein Honsi, Jon Arild Nygard & Oystein Moseng diff --git a/highcharts-more.js b/highcharts-more.js index e68352415f..1de99f903c 100644 --- a/highcharts-more.js +++ b/highcharts-more.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts-more * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.Series.types.column,t._Highcharts.Color,t._Highcharts.Templating,t._Highcharts.Point,t._Highcharts.Chart,t._Highcharts.SVGElement,t._Highcharts.StackItem):"function"==typeof define&&define.amd?define("highcharts/highcharts-more",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Series,t.Series,["types"],["column"],t.Color,t.Templating,t.Point,t.Chart,t.SVGElement,t.StackItem)}):"object"==typeof exports?exports["highcharts/highcharts-more"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.Series.types.column,t._Highcharts.Color,t._Highcharts.Templating,t._Highcharts.Point,t._Highcharts.Chart,t._Highcharts.SVGElement,t._Highcharts.StackItem):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Series,t.Highcharts.Series.types.column,t.Highcharts.Color,t.Highcharts.Templating,t.Highcharts.Point,t.Highcharts.Chart,t.Highcharts.SVGElement,t.Highcharts.StackItem)}("undefined"==typeof window?this:window,(t,e,i,s,o,a,r,n,l,h)=>(()=>{"use strict";var p,d,c,u={960:t=>{t.exports=n},620:t=>{t.exports=o},260:t=>{t.exports=r},28:t=>{t.exports=l},448:t=>{t.exports=s},820:t=>{t.exports=i},512:t=>{t.exports=e},184:t=>{t.exports=h},984:t=>{t.exports=a},944:e=>{e.exports=t}},g={};function f(t){var e=g[t];if(void 0!==e)return e.exports;var i=g[t]={exports:{}};return u[t](i,i.exports,f),i.exports}f.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return f.d(e,{a:e}),e},f.d=(t,e)=>{for(var i in e)f.o(e,i)&&!f.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},f.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var m={};f.d(m,{default:()=>oi});var b=f(944),y=/*#__PURE__*/f.n(b),x=f(512),P=/*#__PURE__*/f.n(x),v=f(820),M=/*#__PURE__*/f.n(v);let{deg2rad:L}=y(),{fireEvent:k,isNumber:w,pick:A,relativeLength:S}=y();!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,a=t.center,r=Math.min(s,o),n=t.thickness,l,h=t.size,p=t.innerSize||0,d,c;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof p&&(p=parseFloat(p));let u=[A(a?.[0],"50%"),A(a?.[1],"50%"),A(h&&h<0?void 0:t.size,"100%"),A(p&&p<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof M()||(u[3]=0),d=0;d<4;++d)c=u[d],l=d<2||2===d&&/%$/.test(c),u[d]=S(c,[s,o,r,u[2]][d])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),w(n)&&2*n0&&(u[3]=u[2]-2*n),k(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=w(t)?t:0,s=w(e)&&e>i&&e-i<360?e:i+360;return{start:L*(i+-90),end:L*(s+-90)}}}(p||(p={}));let T=p,{addEvent:C,correctFloat:N,defined:X,pick:Y}=y();function I(t){let e;let i=this;return t&&i.pane.forEach(s=>{R(t.chartX-i.plotLeft,t.chartY-i.plotTop,s.center)&&(e=s)}),e}function R(t,e,i,s,o){let a=!0,r=i[0],n=i[1],l=Math.sqrt(Math.pow(t-r,2)+Math.pow(e-n,2));if(X(s)&&X(o)){let i=Math.atan2(N(e-n,8),N(t-r,8));o!==s&&(a=s>o?i>=s&&i<=Math.PI||i<=o&&i>=-Math.PI:i>=s&&i<=N(o,8))}return l<=Math.ceil(i[2]/2)&&a}function E(t){this.polar&&(t.options.inverted&&([t.x,t.y]=[t.y,t.x]),t.isInsidePlot=this.pane.some(e=>R(t.x,t.y,e.center,e.axis&&e.axis.normalizedStartAngleRad,e.axis&&e.axis.normalizedEndAngleRad)))}function z(t){let e=this.chart;t.hoverPoint&&t.hoverPoint.plotX&&t.hoverPoint.plotY&&e.hoverPane&&!R(t.hoverPoint.plotX,t.hoverPoint.plotY,e.hoverPane.center)&&(t.hoverPoint=void 0)}function D(t){let e=this.chart;e.polar?(e.hoverPane=e.getHoverPane(t),t.filter=function(i){return i.visible&&!(!t.shared&&i.directTouch)&&Y(i.options.enableMouseTracking,!0)&&(!e.hoverPane||i.xAxis.pane===e.hoverPane)}):e.hoverPane=void 0}let O={pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderRadius:0,borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}},{extend:H,merge:B,splat:W}=y();class F{constructor(t,e){this.coll="pane",this.init(t,e)}init(t,e){this.chart=e,this.background=[],e.pane.push(this),this.setOptions(t)}setOptions(t){this.options=t=B(O.pane,this.chart.angular?{background:{}}:void 0,t)}render(){let t=this.options,e=this.chart.renderer;this.group||(this.group=e.g("pane-group").attr({zIndex:t.zIndex||0}).add()),this.updateCenter();let i=this.options.background;if(i){let t=Math.max((i=W(i)).length,this.background.length||0);for(let e=0;ea,e.y=e.high,e._plotY=e.plotY,e.plotY=o,n[t]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=i,h?s.align||(s.align=i?"right":"left"):s.verticalAlign||(s.verticalAlign=i?"top":"bottom")}for(this.options.dataLabels=s,j.drawDataLabels&&j.drawDataLabels.apply(this,arguments),t=r;t--;)(e=a[t])&&(e.dataLabelUpper=e.dataLabel,e.dataLabel=n[t],delete e.dataLabels,e.y=e.low,e.plotY=e._plotY)}if(o.enabled||this.hasDataLabels?.()){for(t=r;t--;)if(e=a[t]){let{plotHigh:t=0,plotLow:s=0}=e;i=o.inside?ts,e.below=!i,h?o.align||(o.align=i?"left":"right"):o.verticalAlign||(o.verticalAlign=i?"bottom":"top")}this.options.dataLabels=o,j.drawDataLabels&&j.drawDataLabels.apply(this,arguments)}if(s.enabled)for(t=r;t--;)(e=a[t])&&(e.dataLabels=[e.dataLabelUpper,e.dataLabel].filter(function(t){return!!t}));this.options.dataLabels=l}}alignDataLabel(){$.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){let t={marker:this.options.marker,symbol:this.symbol};if(this.options.lowMarker){let{options:{marker:t,lowMarker:e}}=this;this.options.marker=to(t,e),e.symbol&&(this.symbol=e.symbol)}return t}restoreMarkerSettings(t){this.options.marker=t.marker,this.symbol=t.symbol}drawPoints(){let t,e;let i=this.points.length,s=this.modifyMarkerSettings();for(j.drawPoints.apply(this,arguments),this.restoreMarkerSettings(s),t=0;t=0&&e.plotY<=this.yAxis.len&&e.plotX>=0&&e.plotX<=this.xAxis.len),t++;for(j.drawPoints.apply(this,arguments),t=0;t● {series.name}: {point.low} - {point.high}
'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),Q(ta,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(t=>{let e=t.high,i=t.plotY;t.isNull?t.plotY=void 0:(t.plotLow=i,t.plotHigh=ti(e)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(e):e,!1,!0,void 0,!0):void 0,this.dataModify&&(t.yBottom=t.plotHigh))})},{order:0}),Q(ta,"afterTranslate",function(){this.points.forEach(t=>{if(this.chart.polar)this.highToXY(t),t.plotLow=t.plotY,t.tooltipPos=[((t.plotHighX||0)+(t.plotLowX||0))/2,((t.plotHigh||0)+(t.plotLow||0))/2];else{let e=t.pos(!1,t.plotLow),i=t.pos(!1,t.plotHigh);e&&i&&(e[0]=(e[0]+i[0])/2,e[1]=(e[1]+i[1])/2),t.tooltipPos=e}})},{order:3}),tt(ta.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:U,pointValKey:"low",setStackedPoints:K}),P().registerSeriesType("arearange",ta);let tr=ta,{spline:{prototype:tn}}=P().seriesTypes,{merge:tl,extend:th}=y();class tp extends tr{}tp.defaultOptions=tl(tr.defaultOptions),th(tp.prototype,{getPointSpline:tn.getPointSpline}),P().registerSeriesType("areasplinerange",tp);var td=f(448),tc=/*#__PURE__*/f.n(td);let{noop:tu}=y(),{crisp:tg,extend:tf,merge:tm,pick:tb,relativeLength:ty}=y();class tx extends tc(){pointAttribs(){return{}}getWhiskerPair(t,e,i,s,o){let a=o.whiskers.strokeWidth(),r=(i,s)=>{let o=ty(i,2*t)/2,r=tg(s,a);return[["M",tg(e-o),r],["L",tg(e+o),r]]};return[...r(i,o.highPlot),...r(s,o.lowPlot)]}translate(){let t=this.yAxis,e=this.pointArrayMap;super.translate.apply(this),this.points.forEach(function(i){e.forEach(function(e){null!==i[e]&&(i[e+"Plot"]=t.translate(i[e],0,1,0,1))}),i.plotHigh=i.highPlot})}drawPoints(){let t,e,i,s,o,a,r,n,l,h,p;let d=this.points,c=this.options,u=this.chart,g=u.renderer,f=!1!==this.doQuartiles,m=this.options.whiskerLength;for(let b of d){let d=(n=b.graphic)?"animate":"attr",y=b.shapeArgs,x={},P={},v={},M={},L=b.color||this.color,k=b.options.whiskerLength||m;if(void 0!==b.plotY){let w;l=y.width,p=(h=y.x)+l,t=f?b.q1Plot:b.lowPlot,e=f?b.q3Plot:b.lowPlot,i=b.highPlot,s=b.lowPlot,n||(b.graphic=n=g.g("point").add(this.group),b.stem=g.path().addClass("highcharts-boxplot-stem").add(n),m&&(b.whiskers=g.path().addClass("highcharts-boxplot-whisker").add(n)),f&&(b.box=g.path(r).addClass("highcharts-boxplot-box").add(n)),b.medianShape=g.path(a).addClass("highcharts-boxplot-median").add(n)),u.styledMode||(P.stroke=b.stemColor||c.stemColor||L,P["stroke-width"]=tb(b.stemWidth,c.stemWidth,c.lineWidth),P.dashstyle=b.stemDashStyle||c.stemDashStyle||c.dashStyle,b.stem.attr(P),k&&(v.stroke=b.whiskerColor||c.whiskerColor||L,v["stroke-width"]=tb(b.whiskerWidth,c.whiskerWidth,c.lineWidth),v.dashstyle=b.whiskerDashStyle||c.whiskerDashStyle||c.dashStyle,b.whiskers.attr(v)),f&&(x.fill=b.fillColor||c.fillColor||L,x.stroke=c.lineColor||L,x["stroke-width"]=c.lineWidth||0,x.dashstyle=b.boxDashStyle||c.boxDashStyle||c.dashStyle,b.box.attr(x)),M.stroke=b.medianColor||c.medianColor||L,M["stroke-width"]=tb(b.medianWidth,c.medianWidth,c.lineWidth),M.dashstyle=b.medianDashStyle||c.medianDashStyle||c.dashStyle,b.medianShape.attr(M));let A=tg((b.plotX||0)+(this.pointXOffset||0)+(this.barW||0)/2,b.stem.strokeWidth());if(w=[["M",A,e],["L",A,i],["M",A,t],["L",A,s]],b.stem[d]({d:w}),f){let i=b.box.strokeWidth();t=tg(t,i),e=tg(e,i),w=[["M",h=tg(h,i),e],["L",h,t],["L",p=tg(p,i),t],["L",p,e],["L",h,e],["Z"]],b.box[d]({d:w})}if(k){let t=l/2,e=this.getWhiskerPair(t,A,b.upperWhiskerLength??c.upperWhiskerLength??k,b.lowerWhiskerLength??c.lowerWhiskerLength??k,b);b.whiskers[d]({d:e})}w=[["M",h,o=tg(b.medianPlot,b.medianShape.strokeWidth())],["L",p,o]],b.medianShape[d]({d:w})}}}toYData(t){return[t.low,t.q1,t.median,t.q3,t.high]}}tx.defaultOptions=tm(tc().defaultOptions,{threshold:null,tooltip:{pointFormat:' {series.name}
Maximum: {point.high}
Upper quartile: {point.q3}
Median: {point.median}
Lower quartile: {point.q1}
Minimum: {point.low}
'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}),tf(tx.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:tu,setStackedPoints:tu}),P().registerSeriesType("boxplot",tx);let tP=tx,tv={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0};var tM=f(620),tL=/*#__PURE__*/f.n(tM),tk=f(984),tw=/*#__PURE__*/f.n(tk);let{parse:tA}=tL(),{noop:tS}=y(),{arrayMax:tT,arrayMin:tC,isNumber:tN,merge:tX,pick:tY,stableSort:tI}=y(),tR=class{constructor(t,e){this.setState=tS,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e;let i=tY(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,a=o.ranges,r=o.connectorDistance;if(!a||!a.length||!tN(a[0].value)){t.options.bubbleLegend.autoRanges=!0;return}tI(a,function(t,e){return e.value-t.value}),this.ranges=a,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=r-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},a={zIndex:e.zIndex,"stroke-width":e.connectorWidth},r={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach(function(h,p){l||(o.stroke=tY(h.borderColor,e.borderColor,i.color),o.fill=tY(h.color,e.color,1!==n?tA(i.color).setOpacity(n).get("rgba"):i.color),a.stroke=tY(h.connectorColor,e.connectorColor,i.color)),t[p].radius=this.getRangeRadius(h.value),t[p]=tX(t[p],{center:t[0].radius-t[p].radius+s}),l||tX(!0,t[p],{bubbleAttribs:tX(o),connectorAttribs:tX(a),labelAttribs:r})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,a=e.ranges[e.ranges.length-1].value,r=e.minSize,n=e.maxSize;return s.getRadius.call(this,a,o,r,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,a=this.chart,r=a.series[s.seriesIndex],n=a.renderer,l=this.symbols,h=l.labels,p=t.center,d=Math.abs(t.radius),c=s.connectorDistance||0,u=o.align,g=i.options.rtl,f=s.borderWidth,m=s.connectorWidth,b=e.radius||0,y=p-d-f/2+m/2,x=(y%1?1:.5)-(m%2?0:.5),P=n.styledMode,v=g||"left"===u?-c:c;"center"===u&&(v=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(b,p+x,d).attr(P?{}:t.bubbleAttribs).addClass((P?"highcharts-color-"+r.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",b,y],["L",b+v,y]],s.connectorWidth)).attr(P?{}:t.connectorAttribs).addClass((P?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let M=n.text(this.formatLabel(t)).attr(P?{}:t.labelAttribs).css(P?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),L={x:b+v+s.labels.x,y:y+s.labels.y+.4*M.getBBox().height};M.attr(L),h.push(M),M.placed=!0,M.alignAttr=L}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?tw().format(s,t,this.chart):i?i.call(t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,a=Number.MAX_VALUE,r=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(tN)).length&&(a=tY(t.options.zMin,Math.min(a,Math.max(tC(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),r=tY(t.options.zMax,Math.max(r,tT(o))))}),s=a===r?[{value:r}]:[{value:a},{value:(a+r)/2},{value:r,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=tX(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,a=t.plotSizeX,r=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),p=Math.ceil(l.maxPxSize),d=Math.min(r,a),c,u=n.options.maxSize;return i||!/%$/.test(u)?c=p:(c=(d+o)*(u=parseFloat(u))/100/(u/100+1),(s&&r-c>=a||!s&&a-c>=r)&&(c=p)),[h,Math.ceil(c)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:tE}=y(),{composed:tz}=y(),{addEvent:tD,objectEach:tO,pushUnique:tH,wrap:tB}=y();function tW(t,e,i){let s,o,a;let r=this.legend,n=tF(this)>=0;r&&r.options.enabled&&r.bubbleLegend&&r.options.bubbleLegend.autoRanges&&n?(s=r.bubbleLegend.options,o=r.bubbleLegend.predictBubbleSizes(),r.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(r.group.placed=!1,r.allItems.forEach(t=>{(a=t.legendItem||{}).group&&(a.group.translateY=void 0)})),r.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),tO(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),r.bubbleLegend.correctSizes(),t_(r,tG(r))):(t.call(this,e,i),r&&r.options.enabled&&r.bubbleLegend&&(r.render(),t_(r,tG(r))))}function tF(t){let e=t.series,i=0;for(;io.height&&(o.height=e[l].itemHeight);o.step=n}return i}function tq(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=tF(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new tR(s,this),this.bubbleLegend.addToLegend(t.allItems))}function tV(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=tF(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function t_(t,e){let i=t.allItems,s=t.options.rtl,o,a,r,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(o=n.group.translateX||0,a=n.y||0,((r=t.movementX)||s&&t.ranges)&&(r=s?o-t.options.maxSize/2:o+r,n.group.attr({translateX:r})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(a+e[l].height/2)}),n.y=a+e[l].height/2)})}let tU={compose:function(t,e){tH(tz,"Series.BubbleLegend")&&(tE({legend:{bubbleLegend:tv}}),tB(t.prototype,"drawChartBox",tW),tD(e,"afterGetAllItems",tq),tD(e,"itemClick",tV))}};var tK=f(260),tZ=/*#__PURE__*/f.n(tK);let{seriesTypes:{scatter:{prototype:{pointClass:tj}}}}=P(),{extend:t$}=y();class tQ extends tj{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series;return o.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return tZ().prototype.haloPath.call(this,e)}}t$(tQ.prototype,{ttBelow:!1});let{parse:tJ}=tL(),{composed:t0,noop:t1}=y(),{series:t2,seriesTypes:{column:{prototype:t3},scatter:t5}}=P(),{addEvent:t8,arrayMax:t6,arrayMin:t4,clamp:t9,extend:t7,isNumber:et,merge:ee,pick:ei,pushUnique:es}=y();function eo(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),a=0,r=t,n=t/o,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(et(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;a=Math.min((e[i]-s)*n-o,a),r=Math.max((e[i]-s)*n+o,r)}}}}),l&&o>0&&!this.logarithmic&&(r-=t,n*=(t+Math.max(0,a)-Math.min(r,t))/t,[["min","userMin",a],["max","userMax",r]].forEach(t=>{void 0===ei(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function ea(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,a=this.options.type;if((o?.length||"category"===a)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let a=t[e[o]],r=a.pos||0;(r>s||r{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(ei(e,o.zMin),o.zMin),i=Math.max(ei(i,o.zMax),o.zMax),t=!0)}}),t?(r={zMin:e,zMax:i},this.chart.bubbleZExtremes=r):r={zMin:0,zMax:0}}for(o=0,s=t.length;o0&&(p=(o-t)/h)}return n&&p>=0&&(p=Math.sqrt(p)),Math.ceil(i+p*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?t7(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=t2.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=tJ(s.fill).setOpacity(i).get("rgba")),s}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let a=t[o],r=i?i[o]:0;"z"===this.zoneAxis&&(a.negative=(a.z||0)<(e.zThreshold||0)),et(r)&&r>=s/2?(a.marker=t7(a.marker,{radius:r,width:2*r,height:2*r}),a.dlBox={x:a.plotX-r,y:a.plotY-r,width:2*r,height:2*r}):(a.shapeArgs=a.plotY=a.dlBox=void 0,a.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(ei(this.options.minSize,8)),s=Math.max(e(ei(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(et);if(e.length){let i=ei(t.zMin,t9(t4(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=ei(t.zMax,t6(e));if(et(i)&&et(s))return{zMin:i,zMax:s}}}}er.defaultOptions=ee(t5.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return et(e)?t(e,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),t7(er.prototype,{alignDataLabel:t3.alignDataLabel,applyZones:t1,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:tQ,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),t8(er,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),t8(er,"remove",t=>{delete t.target.chart.bubbleZExtremes}),P().registerSeriesType("bubble",er);let{seriesTypes:{column:{prototype:{pointClass:{prototype:en}}},arearange:{prototype:{pointClass:el}}}}=P(),{extend:eh,isNumber:ep}=y();class ed extends el{isValid(){return ep(this.low)}}eh(ed.prototype,{setState:en.setState});let{noop:ec}=y(),{seriesTypes:{arearange:eu,column:eg,column:{prototype:ef}}}=P(),{addEvent:em,clamp:eb,extend:ey,isNumber:ex,merge:eP,pick:ev}=y();class eM extends eu{setOptions(){return eP(!0,arguments[0],{stacking:void 0}),eu.prototype.setOptions.apply(this,arguments)}translate(){return ef.translate.apply(this)}pointAttribs(){return ef.pointAttribs.apply(this,arguments)}translate3dPoints(){return ef.translate3dPoints.apply(this,arguments)}translate3dShapes(){return ef.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){let t,e,i,s;let o=this.yAxis,a=this.xAxis,r=a.startAngleRad,n=this.chart,l=this.xAxis.isRadial,h=Math.max(n.chartWidth,n.chartHeight)+999;this.points.forEach(p=>{let d=p.shapeArgs||{},c=this.options.minPointLength,u=p.plotY,g=o.translate(p.high,0,1,0,1);if(ex(g)&&ex(u)){if(p.plotHigh=eb(g,-h,h),p.plotLow=eb(u,-h,h),s=p.plotHigh,Math.abs(t=ev(p.rectPlotY,p.plotY)-p.plotHigh)● {series.name}: {point.low} - {point.high}
'},whiskerWidth:null}),eC(eY,"afterTranslate",function(){for(let t of this.points)t.plotLow=t.plotY},{order:0}),eX(eY.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),P().registerSeriesType("errorbar",eY);let{series:{prototype:{pointClass:eI}}}=P(),{noop:eR}=y(),{series:eE,seriesTypes:{column:ez}}=P(),{clamp:eD,isNumber:eO,extend:eH,merge:eB,pick:eW,pInt:eF,defined:eG}=y();class eq extends eE{translate(){let t=this.yAxis,e=this.options,i=t.center;this.generatePoints(),this.points.forEach(s=>{let o=eB(e.dial,s.dial),a=eF(o.radius)*i[2]/200,r=eF(o.baseLength)*a/100,n=eF(o.rearLength)*a/100,l=o.baseWidth,h=o.topWidth,p=e.overshoot,d=t.startAngleRad+t.translate(s.y,void 0,void 0,void 0,!0);(eO(p)||!1===e.wrap)&&(p=eO(p)?p/180*Math.PI:0,d=eD(d,t.startAngleRad-p,t.endAngleRad+p)),d=180*d/Math.PI,s.shapeType="path";let c=o.path||[["M",-n,-l/2],["L",r,-l/2],["L",a,-h/2],["L",a,h/2],["L",r,l/2],["L",-n,l/2],["Z"]];s.shapeArgs={d:c,translateX:i[0],translateY:i[1],rotation:d},s.plotX=i[0],s.plotY=i[1],eG(s.y)&&t.max-t.min&&(s.percentage=(s.y-t.min)/(t.max-t.min)*100)})}drawPoints(){let t=this,e=t.chart,i=t.yAxis.center,s=t.pivot,o=t.options,a=o.pivot,r=e.renderer;t.points.forEach(i=>{let s=i.graphic,a=i.shapeArgs,n=a.d,l=eB(o.dial,i.dial);s?(s.animate(a),a.d=n):i.graphic=r[i.shapeType](a).addClass("highcharts-dial").add(t.group),e.styledMode||i.graphic[s?"animate":"attr"]({stroke:l.borderColor,"stroke-width":l.borderWidth,fill:l.backgroundColor})}),s?s.animate({translateX:i[0],translateY:i[1]}):a&&(t.pivot=r.circle(0,0,a.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(i[0],i[1]).add(t.group),e.styledMode||t.pivot.attr({fill:a.backgroundColor,stroke:a.borderColor,"stroke-width":a.borderWidth}))}animate(t){let e=this;t||e.points.forEach(t=>{let i=t.graphic;i&&(i.attr({rotation:180*e.yAxis.startAngleRad/Math.PI}),i.animate({rotation:t.shapeArgs.rotation},e.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),eE.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(t,e){eE.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),eW(e,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}eq.defaultOptions=eB(eE.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),eH(eq.prototype,{angular:!0,directTouch:!0,drawGraph:eR,drawTracker:ez.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:class extends eI{setState(t){this.state=t}},trackerGroups:["group","dataLabelsGroup"]}),P().registerSeriesType("gauge",eq);let{composed:eV}=y(),{addEvent:e_,pushUnique:eU}=y();function eK(){let t,e,i;let s=this;s.container&&(t=e_(s.container,"mousedown",t=>{let o=s.hoverPoint;o&&o.series&&o.series.hasDraggableNodes&&o.series.options.draggable&&(o.series.onMouseDown(o,t),e=e_(s.container,"mousemove",t=>o&&o.series&&o.series.onMouseMove(o,t)),i=e_(s.container.ownerDocument,"mouseup",t=>(e(),i(),o&&o.series&&o.series.onMouseUp(o,t))))})),e_(s,"destroy",function(){t()})}let eZ={compose:function(t){eU(eV,"DragNodes")&&e_(t,"load",eK)},onMouseDown:function(t,e){let i=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:i.chartX,chartY:i.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s;let o=this.chart,a=o.pointer?.normalize(e)||e,r=t.fixedPosition.chartX-a.chartX,n=t.fixedPosition.chartY-a.chartY,l=o.graphLayoutsLookup;(Math.abs(r)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-r,s=t.fixedPosition.plotY-n,o.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),l.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath(this.options.states.hover.halo.size)})}},{setAnimation:ej}=y(),{composed:e$}=y(),{addEvent:eQ,pushUnique:eJ}=y();function e0(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function e1(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function e2(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function e3(){let t,e=!1,i=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup){for(ej(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(i);e&&this.series.forEach(t=>{t&&t.layout&&t.render()})}}let e5={compose:function(t){eJ(e$,"GraphLayout")&&(eQ(t,"afterPrint",e0),eQ(t,"beforePrint",e1),eQ(t,"predraw",e2),eQ(t,"render",e3))},integrations:{},layouts:{}};var e8=f(960),e6=/*#__PURE__*/f.n(e8);let{seriesTypes:{bubble:{prototype:{pointClass:e4}}}}=P(),e9=class extends e4{destroy(){return this.series?.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),tZ().prototype.destroy.apply(this,arguments)}firePointEvent(){let t=this.series.options;if(this.isParentNode&&t.parentNode){let e=t.allowPointSelect;t.allowPointSelect=t.parentNode.allowPointSelect,tZ().prototype.firePointEvent.apply(this,arguments),t.allowPointSelect=e}else tZ().prototype.firePointEvent.apply(this,arguments)}select(){let t=this.series.chart;this.isParentNode?(t.getSelectedPoints=t.getSelectedParentNodes,tZ().prototype.select.apply(this,arguments),t.getSelectedPoints=e6().prototype.getSelectedPoints):tZ().prototype.select.apply(this,arguments)}},{isNumber:e7}=y(),it={attractive:function(t,e,i){let s=t.getMass(),o=-i.x*e*this.diffTemperature,a=-i.y*e*this.diffTemperature;t.fromNode.fixedPosition||(t.fromNode.plotX-=o*s.fromNode/t.fromNode.degree,t.fromNode.plotY-=a*s.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.plotX+=o*s.toNode/t.toNode.degree,t.toNode.plotY+=a*s.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return(e-t)/t},barycenter:function(){let t=this.options.gravitationalConstant||0,e=(this.barycenter.xFactor-(this.box.left+this.box.width)/2)*t,i=(this.barycenter.yFactor-(this.box.top+this.box.height)/2)*t;this.nodes.forEach(function(t){t.fixedPosition||(t.plotX-=e/t.mass/t.degree,t.plotY-=i/t.mass/t.degree)})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.5)},integrate:function(t,e){let i=-t.options.friction,s=t.options.maxSpeed,o=e.prevX,a=e.prevY,r=(e.plotX+e.dispX-o)*i,n=(e.plotY+e.dispY-a)*i,l=Math.abs,h=l(r)/(r||1),p=l(n)/(n||1),d=h*Math.min(s,Math.abs(r)),c=p*Math.min(s,Math.abs(n));e.prevX=e.plotX+e.dispX,e.prevY=e.plotY+e.dispY,e.plotX+=d,e.plotY+=c,e.temperature=t.vectorLength({x:d,y:c})},repulsive:function(t,e,i){let s=e*this.diffTemperature/t.mass/t.degree;t.fixedPosition||(t.plotX+=i.x*s,t.plotY+=i.y*s)},repulsiveForceFunction:function(t,e){return(e-t)/t*(e>t?1:0)}},{noop:ie}=y(),ii={barycenter:function(){let t,e;let i=this.options.gravitationalConstant,s=this.box,o=this.nodes;for(let a of o)this.options.splitSeries&&!a.isParentNode?(t=a.series.parentNode.plotX,e=a.series.parentNode.plotY):(t=s.width/2,e=s.height/2),a.fixedPosition||(a.plotX-=(a.plotX-t)*i/(a.mass*Math.sqrt(o.length)),a.plotY-=(a.plotY-e)*i/(a.mass*Math.sqrt(o.length)))},getK:ie,integrate:it.integrate,repulsive:function(t,e,i,s){let o=e*this.diffTemperature/t.mass/t.degree,a=i.x*o,r=i.y*o;t.fixedPosition||(t.plotX+=a,t.plotY+=r),s.fixedPosition||(s.plotX-=a,s.plotY-=r)},repulsiveForceFunction:function(t,e,i,s){return Math.min(t,(i.marker.radius+s.marker.radius)/2)}},is={attractive:function(t,e,i,s){let o=t.getMass(),a=i.x/s*e,r=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=a*o.fromNode/t.fromNode.degree,t.fromNode.dispY-=r*o.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=a*o.toNode/t.toNode.degree,t.toNode.dispY+=r*o.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let o=s.getDegree(),a=o*(1+o/2);s.dispX+=(e-s.plotX)*t*a/s.degree,s.dispY+=(i-s.plotY)*t*a/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}};class io{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let t=this.box.width/2,e=this.box.height/2;this.nodes[0]=new io({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new io({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new io({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new io({left:this.box.left,top:this.box.top+e,width:t,height:e})}getBoxPosition(t){let e=t.plotXthis.step())):(this.simulation=!1,this.series.forEach(t=>{id(t,"afterSimulation")}))}}stop(){this.simulation&&ir.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=ic(t,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new ia(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if(ip(t))for(let e of(t.call(this),this.nodes))ih(e.prevX)||(e.prevX=e.plotX),ih(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else"circle"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t;let e=this.box,i=this.nodes,s=2*Math.PI/(i.length+1),o=i.filter(function(t){return 0===t.linksTo.length}),a={},r=this.options.initialPositionRadius,n=t=>{for(let e of t.linksFrom||[])a[e.toNode.id]||(a[e.toNode.id]=!0,l.push(e.toNode),n(e.toNode))},l=[];for(let t of o)l.push(t),n(t);if(l.length)for(let t of i)-1===l.indexOf(t)&&l.push(t);else l=i;for(let i=0,o=l.length;i{let e=t*t/Math.PI;return e-Math.floor(e)};for(let a=0,r=i.length;athis.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let o of this.nodes)s===o||s.fixedPosition||(i=this.getDistXY(s,o),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force("repulsive",s,t*o.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force("attractive",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let i=t.radius;t.plotX=il(t.plotX,e.left+i,e.width-i),t.plotY=il(t.plotY,e.top+i,e.height-i)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y:s,absX:Math.abs(i),absY:Math.abs(s)}}}let ig=iu,{addEvent:im,pick:ib}=y();function iy(){let t=this.series,e=[];return t.forEach(t=>{t.parentNode&&t.parentNode.selected&&e.push(t.parentNode)}),e}function ix(){this.allDataPoints&&delete this.allDataPoints}class iP extends ig{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(t){ig.compose(t),e5.integrations.packedbubble=ii,e5.layouts.packedbubble=iP;let e=t.prototype;e.getSelectedParentNodes||(im(t,"beforeRedraw",ix),e.getSelectedParentNodes=iy)}beforeStep(){this.options.marker&&this.series.forEach(t=>{t&&t.calculateParentRadius()})}isStable(){let t=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&t<1e-5||this.temperature<=0}setCircularPositions(){let t=this.box,e=this.nodes,i=2*Math.PI/(e.length+1),s=this.options.initialPositionRadius,o,a,r=0;for(let n of e)this.options.splitSeries&&!n.isParentNode?(o=n.series.parentNode.plotX,a=n.series.parentNode.plotY):(o=t.width/2,a=t.height/2),n.plotX=n.prevX=ib(n.plotX,o+s*Math.cos(n.index||r*i)),n.plotY=n.prevY=ib(n.plotY,a+s*Math.sin(n.index||r*i)),n.dispX=0,n.dispY=0,r++}repulsiveForces(){let t,e,i;let s=this,o=s.options.bubblePadding,a=s.nodes;a.forEach(r=>{r.degree=r.mass,r.neighbours=0,a.forEach(a=>{t=0,r!==a&&!r.fixedPosition&&(s.options.seriesInteraction||r.series===a.series)&&(i=s.getDistXY(r,a),(e=s.vectorLength(i)-(r.marker.radius+a.marker.radius+o))<0&&(r.degree+=.01,r.neighbours++,t=s.repulsiveForce(-e/Math.sqrt(r.neighbours),s.k,r,a)),s.force("repulsive",r,t*a.mass,i,a,e))})})}applyLimitBox(t,e){let i,s;this.options.splitSeries&&!t.isParentNode&&this.options.parentNodeLimit&&(i=this.getDistXY(t,t.series.parentNode),(s=t.series.parentNodeRadius-t.marker.radius-this.vectorLength(i))<0&&s>-2*t.marker.radius&&(t.plotX-=.01*i.x,t.plotY-=.01*i.y)),super.applyLimitBox(t,e)}}e5.layouts.packedbubble=iP;let{merge:iv,syncTimeout:iM}=y(),{animObject:iL}=y();var ik=f(28),iw=/*#__PURE__*/f.n(ik);let{deg2rad:iA}=y(),{addEvent:iS,merge:iT,uniqueKey:iC,defined:iN,extend:iX}=y();function iY(t,e){e=iT(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,o=s.textPath,{attributes:a,enabled:r}=e;if(t=t||o&&o.path,o&&o.undo(),t&&r){let e=iS(s,"afterModifyTree",e=>{if(t&&r){let o=t.attr("id");o||t.attr("id",o=iC());let r={x:0,y:0};iN(a.dx)&&(r.dx=a.dx,delete a.dx),iN(a.dy)&&(r.dy=a.dy,delete a.dy),s.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:iX(a,{"text-anchor":a.textAnchor,href:`${i}#${o}`}),children:n}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function iI(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),a=o-s,r=RegExp('(|]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(r,"").split(/]*>/),l=n.length,h=(t,e)=>{let{x:o,y:r}=e,n=(i.getRotationOfChar(t)-90)*iA,l=Math.cos(n),h=Math.sin(n);return[[o-a*l,r-a*h],[o+s*l,r+s*h]]};for(let e=0,s=0;s{this.deferDataLabels=!1},t?iL(t.animation).defer:0):this.deferDataLabels=!1}},{addEvent:iW,clamp:iF,defined:iG,extend:iq,fireEvent:iV,isArray:i_,isNumber:iU,merge:iK,pick:iZ}=y();({compose:function(t){iS(t,"afterGetBBox",iI),iS(t,"beforeAddingDataLabel",iR);let e=t.prototype;e.setTextPath||(e.setTextPath=iY)}}).compose(iw());class ij extends iO{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(t,e,i){iO.compose(t,e,i),eZ.compose(e),iP.compose(e)}accumulateAllPoints(){let t=this.chart,e=[];for(let i of t.series)if(i.is("packedbubble")&&i.reserveSpace()){let t=i.getColumn("value");for(let s=0;s{t.mass=2,t.degree=1,t.collisionNmb=1}),a.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),a.addElementsToCollection([this],a.series),a.addElementsToCollection(this.points,a.nodes)}addSeriesLayout(){let t=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},e=t.type||"packedbubble",i=this.chart.graphLayoutsStorage,s=this.chart.graphLayoutsLookup,o=iK(t,t.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation}),a=i[e+"-series"];a||(i[e+"-series"]=a=new e5.layouts[e],a.init(o),s.splice(a.index,0,a)),this.parentNodeLayout=a,this.createParentNodes()}calculateParentRadius(){let t=this.seriesBox();this.parentNodeRadius=iF(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,t?Math.max(Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let t=this.chart.series,e=this.options.zMin,i=this.options.zMax,s=1/0,o=-1/0;return e&&i?[e,i]:(t.forEach(t=>{t.getColumn("value").forEach(t=>{iG(t)&&(t>o&&(o=t),t{this.parentNodeMass+=Math.PI*Math.pow(t.marker.radius,2)}),this.calculateParentRadius(),i.nodes.forEach(t=>{t.seriesIndex===this.index&&(o=!0)}),i.setArea(0,0,e.plotWidth,e.plotHeight),o||(a||(a=new t(this,{mass:this.parentNodeRadius/2,marker:r,dataLabels:{inside:!1},states:{normal:{marker:r},hover:{marker:r}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(a.plotX=this.parentNode.plotX,a.plotY=this.parentNode.plotY),this.parentNode=a,i.addElementsToCollection([this],i.series),i.addElementsToCollection([a],i.nodes))}deferLayout(){let t=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),t.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(t=>{t.removeElementFromCollection(this,t.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),iD.destroy.apply(this,arguments)}drawDataLabels(){!this.deferDataLabels&&(iD.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",iD.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;let t=this.chart,e=this.layout.options.parentNodeOptions.marker,i={fill:e.fillColor||iE(this.color).brighten(.4).get(),opacity:e.fillOpacity,stroke:e.lineColor||this.color,"stroke-width":iZ(e.lineWidth,this.options.lineWidth)},s={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,t.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&iG(this.parentNode.plotX)&&iG(this.parentNode.plotY)&&iG(this.parentNodeRadius)&&(s=iK({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},i),this.parentNode.graphic||(this.graph=this.parentNode.graphic=t.renderer.symbol(i.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(s))}drawTracker(){let t;let e=this.parentNode;super.drawTracker(),e&&(t=i_(e.dataLabels)?e.dataLabels:e.dataLabel?[e.dataLabel]:[],e.graphic&&(e.graphic.element.point=e),t.forEach(t=>{(t.div||t.element).point=e}))}getPointRadius(){let t,e,i,s;let o=this.chart,a=o.plotWidth,r=o.plotHeight,n=this.options,l=n.useSimulation,h=Math.min(a,r),p={},d=[],c=o.allDataPoints||[],u=c.length;["minSize","maxSize"].forEach(t=>{let e=parseInt(n[t],10),i=/%$/.test(n[t]);p[t]=i?h*e/100:e*Math.sqrt(u)}),o.minRadius=t=p.minSize/Math.sqrt(u),o.maxRadius=e=p.maxSize/Math.sqrt(u);let g=l?this.calculateZExtremes():[t,e];c.forEach((o,a)=>{i=l?iF(o[2],g[0],g[1]):o[2],0===(s=this.getRadius(g[0],g[1],t,e,i))&&(s=null),c[a][2]=s,d.push(s)}),this.radii=d}init(){return iD.init.apply(this,arguments),iB.call(this),this.eventsToUnbind.push(iW(this,"updatedData",function(){this.chart.series.forEach(t=>{t.type===this.type&&(t.isDirty=!0)},this)})),this}onMouseUp(t){if(t.fixedPosition&&!t.removed){let e;let i=this.layout,s=this.parentNodeLayout;s&&i.options.dragBetweenSeries&&s.nodes.forEach(s=>{t&&t.marker&&s!==t.series.parentNode&&(e=i.getDistXY(t,s),i.vectorLength(e)-s.marker.radius-t.marker.radius<0&&(s.series.addPoint(iK(t.options,{plotX:t.plotX,plotY:t.plotY}),!1),i.removeElementFromCollection(t,i.nodes),t.remove()))}),eZ.onMouseUp.apply(this,arguments)}}placeBubbles(t){let e=this.checkOverlap,i=this.positionBubble,s=[],o=1,a=0,r=0,n,l=[],h,p=t.sort((t,e)=>e[2]-t[2]);if(p.length){if(s.push([[0,0,p[0][2],p[0][3],p[0][4]]]),p.length>1)for(s.push([[0,0-p[1][2]-p[0][2],p[1][2],p[1][3],p[1][4]]]),h=2;h1&&s[o-1][r+1]&&e(n,s[o-1][r+1])?(r++,s[o].push(i(s[o][a],s[o-1][r],p[h])),a++):(a++,s[o].push(n));this.chart.stages=s,this.chart.rawPositions=[].concat.apply([],s),this.resizeRadius(),l=this.chart.rawPositions}return l}pointAttribs(t,e){let i=this.options,s=t&&t.isParentNode,o=i.marker;s&&i.layoutAlgorithm&&i.layoutAlgorithm.parentNodeOptions&&(o=i.layoutAlgorithm.parentNodeOptions.marker);let a=o.fillOpacity,r=iD.pointAttribs.call(this,t,e);return 1!==a&&(r["fill-opacity"]=a),r}positionBubble(t,e,i){let s=Math.asin,o=Math.acos,a=Math.pow,r=Math.abs,n=(0,Math.sqrt)(a(t[0]-e[0],2)+a(t[1]-e[1],2)),l=o((a(n,2)+a(i[2]+e[2],2)-a(i[2]+t[2],2))/(2*(i[2]+e[2])*n)),h=s(r(t[0]-e[0])/n),p=(t[1]-e[1]<0?0:Math.PI)+l+h*((t[0]-e[0])*(t[1]-e[1])<0?1:-1),d=Math.cos(p),c=Math.sin(p);return[e[0]+(e[2]+i[2])*c,e[1]-(e[2]+i[2])*d,i[2],i[3],i[4]]}render(){let t=[];iD.render.apply(this,arguments),!this.options.dataLabels.allowOverlap&&(this.data.forEach(e=>{i_(e.dataLabels)&&e.dataLabels.forEach(e=>{t.push(e)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(t))}resizeRadius(){let t,e,i,s,o;let a=this.chart,r=a.rawPositions,n=Math.min,l=Math.max,h=a.plotLeft,p=a.plotTop,d=a.plotHeight,c=a.plotWidth;for(let a of(t=i=Number.POSITIVE_INFINITY,e=s=Number.NEGATIVE_INFINITY,r))o=a[2],t=n(t,a[0]-o),e=l(e,a[0]+o),i=n(i,a[1]-o),s=l(s,a[1]+o);let u=[e-t,s-i],g=[(c-h)/u[0],(d-p)/u[1]],f=n.apply([],g);if(Math.abs(f-1)>1e-10){for(let t of r)t[2]*=f;this.placeBubbles(r)}else a.diffY=d/2+p-i-(s-i)/2,a.diffX=c/2+h-t-(e-t)/2}seriesBox(){let t;let e=this.chart,i=this.data,s=Math.max,o=Math.min,a=[e.plotLeft,e.plotLeft+e.plotWidth,e.plotTop,e.plotTop+e.plotHeight];return i.forEach(e=>{iG(e.plotX)&&iG(e.plotY)&&e.marker.radius&&(t=e.marker.radius,a[0]=o(a[0],e.plotX-t),a[1]=s(a[1],e.plotX+t),a[2]=o(a[2],e.plotY-t),a[3]=s(a[3],e.plotY+t))}),iU(a.width/a.height)?a:null}setVisible(){let t=this;iD.setVisible.apply(t,arguments),t.parentNodeLayout&&t.graph?t.visible?(t.graph.show(),t.parentNode.dataLabel&&t.parentNode.dataLabel.show()):(t.graph.hide(),t.parentNodeLayout.removeElementFromCollection(t.parentNode,t.parentNodeLayout.nodes),t.parentNode.dataLabel&&t.parentNode.dataLabel.hide()):t.layout&&(t.visible?t.layout.addElementsToCollection(t.points,t.layout.nodes):t.points.forEach(e=>{t.layout.removeElementFromCollection(e,t.layout.nodes)}))}translate(){let t,e,i;let s=this.chart,o=this.data,a=this.index,r=this.options.useSimulation;for(let n of(this.generatePoints(),iG(s.allDataPoints)||(s.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),r?i=s.allDataPoints:(i=this.placeBubbles(s.allDataPoints),this.options.draggable=!1),i))n[3]===a&&(t=o[n[4]],e=iZ(n[2],void 0),r||(t.plotX=n[0]-s.plotLeft+s.diffX,t.plotY=n[1]-s.plotTop+s.diffY),iU(e)&&(t.marker=iq(t.marker,{radius:e,width:2*e,height:2*e}),t.radius=e));r&&this.deferLayout(),iV(this,"afterTranslate")}}ij.defaultOptions=iK(iO.defaultOptions,{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return e7(e)?t(e,-1):""},parentNodeFormatter:function(){return this.name||""},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}),iq(ij.prototype,{pointClass:e9,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:iH,alignDataLabel:iD.alignDataLabel,indexateNodes:iz,onMouseDown:eZ.onMouseDown,onMouseMove:eZ.onMouseMove,redrawHalo:eZ.redrawHalo,searchPoint:iz}),P().registerSeriesType("packedbubble",ij);let{noop:i$}=y(),{area:iQ,line:iJ,scatter:i0}=P().seriesTypes,{extend:i1,merge:i2}=y();class i3 extends i0{getGraphPath(){let t=iJ.prototype.getGraphPath.call(this),e=t.length+1;for(;e--;)(e===t.length||"M"===t[e][0])&&e>0&&t.splice(e,0,["Z"]);return this.areaPath=t,t}drawGraph(){this.options.fillColor=this.color,iQ.prototype.drawGraph.call(this)}}i3.defaultOptions=i2(i0.defaultOptions,{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}),i1(i3.prototype,{type:"polygon",drawTracker:iJ.prototype.drawTracker,setStackedPoints:i$}),P().registerSeriesType("polygon",i3);let i5={circular:{gridLineWidth:1,labels:{align:void 0,x:0,y:void 0},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},radial:{gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",padding:5,x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},radialGauge:{endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2}},{defaultOptions:i8}=y(),{composed:i6,noop:i4}=y(),{addEvent:i9,correctFloat:i7,defined:st,extend:se,fireEvent:si,isObject:ss,merge:so,pick:sa,pushUnique:sr,relativeLength:sn,wrap:sl}=y();!function(t){function e(){this.autoConnect=this.isCircular&&void 0===sa(this.userMax,this.options.max)&&i7(this.endAngleRad-this.startAngleRad)===i7(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)}function i(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(t=>this.ticks[t]&&this.ticks[t].label).filter(t=>!!t)}}function s(){return i4}function o(t,e,i){let s=this.pane.center,o=t.value,a,r,n;return this.isCircular?(st(o)?t.point&&(t.point.shapeArgs||{}).start&&(o=this.chart.inverted?this.translate(t.point.rectPlotY,!0):t.point.x):(r=t.chartX||0,n=t.chartY||0,o=this.translate(Math.atan2(n-i,r-e)-this.startAngleRad,!0)),r=(a=this.getPosition(o)).x,n=a.y):(st(o)||(r=t.chartX,n=t.chartY),st(r)&&st(n)&&(i=s[1]+this.chart.plotTop,o=this.translate(Math.min(Math.sqrt(Math.pow(r-e,2)+Math.pow(n-i,2)),s[2]/2)-s[3]/2,!0))),[o,r||0,n||0]}function a(t,e,i){let s=this.pane.center,o=this.chart,a=this.left||0,r=this.top||0,n,l=sa(e,s[2]/2-this.offset),h;return void 0===i&&(i=this.horiz?0:this.center&&-this.center[3]/2),i&&(l+=i),this.isCircular||void 0!==e?((h=this.chart.renderer.symbols.arc(a+s[0],r+s[1],l,l,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})).xBounds=[a+s[0]],h.yBounds=[r+s[1]-l]):(n=this.postTranslate(this.angleRad,l),h=[["M",this.center[0]+o.plotLeft,this.center[1]+o.plotTop],["L",n.x,n.y]]),h}function r(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function n(t,e,i){let s=this.chart,o=t=>{if("string"==typeof t){let e=parseInt(t,10);return d.test(t)&&(e=e*n/100),e}return t},a=this.center,r=this.startAngleRad,n=a[2]/2,l=Math.min(this.offset,0),h=this.left||0,p=this.top||0,d=/%$/,c=this.isCircular,u,g,f,m,b,y,x=sa(o(i.outerRadius),n),P=o(i.innerRadius),v=sa(o(i.thickness),10);if("polygon"===this.options.gridLineInterpolation)y=this.getPlotLinePath({value:t}).concat(this.getPlotLinePath({value:e,reverse:!0}));else{t=Math.max(t,this.min),e=Math.min(e,this.max);let o=this.translate(t),n=this.translate(e);c||(x=o||0,P=n||0),"circle"!==i.shape&&c?(u=r+(o||0),g=r+(n||0)):(u=-Math.PI/2,g=1.5*Math.PI,b=!0),x-=l,v-=l,y=s.renderer.symbols.arc(h+a[0],p+a[1],x,x,{start:Math.min(u,g),end:Math.max(u,g),innerR:sa(P,x-v),open:b,borderRadius:i.borderRadius}),c&&(f=(g+u)/2,m=h+a[0]+a[2]/2*Math.cos(f),y.xBounds=f>-Math.PI/2&&f-Math.PI&&f<0||f>Math.PI?-10:10)}return y}function l(t){let e=this.pane.center,i=this.chart,s=i.inverted,o=t.reverse,a=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},r=a.innerRadius||"0%",n=a.outerRadius||"100%",l=e[0]+i.plotLeft,h=e[1]+i.plotTop,p=this.height,d=t.isCrosshair,c=e[3]/2,u=t.value,g,f,m,b,y,x,P,v,M,L=this.getPosition(u),k=L.x,w=L.y;if(d&&(u=(v=this.getCrosshairPosition(t,l,h))[0],k=v[1],w=v[2]),this.isCircular)f=Math.sqrt(Math.pow(k-l,2)+Math.pow(w-h,2)),m="string"==typeof r?sn(r,1):r/f,b="string"==typeof n?sn(n,1):n/f,e&&c&&(m<(g=c/f)&&(m=g),bp)&&(u=0),"circle"===this.options.gridLineInterpolation)M=this.getLinePath(0,u,c);else if(M=[],i[s?"yAxis":"xAxis"].forEach(t=>{t.pane===this.pane&&(y=t)}),y){P=y.tickPositions,y.autoConnect&&(P=P.concat([P[0]])),o&&(P=P.slice().reverse()),u&&(u+=c);for(let t=0;tMath.PI&&(a-=t),r>Math.PI&&(r-=t),this.normalizedStartAngleRad=a,this.normalizedEndAngleRad=r}}function u(t){this.isRadial&&(t.align=void 0,t.preventDefault())}function g(){if(this.chart&&this.chart.labelCollectors){let t=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;t>=0&&this.chart.labelCollectors.splice(t,1)}}function f(t){let e;let i=this.chart,o=i.angular,a=i.polar,r=this.isXAxis,n=this.coll,l=t.userOptions.pane||0,h=this.pane=i.pane&&i.pane[l];if("colorAxis"===n){this.isRadial=!1;return}o?(o&&r?(this.isHidden=!0,this.createLabelCollector=s,this.getOffset=i4,this.redraw=M,this.render=M,this.setScale=i4,this.setCategories=i4,this.setTitle=i4):d(this),e=!r):a&&(d(this),e=this.horiz),o||a?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&i.labelCollectors.push(this.labelCollector)):this.isRadial=!1,h&&e&&(h.axis=this),this.isCircular=e}function m(){this.isRadial&&this.beforeSetTickPositions()}function b(t){let e=this.label;if(!e)return;let i=this.axis,s=e.getBBox(),o=i.options.labels,a=(i.translate(this.pos)+i.startAngleRad+Math.PI/2)/Math.PI*180%360,r=Math.round(a),n=st(o.y)?0:-(.3*s.height),l=o.y,h,p=20,d=o.align,c="end",u=r<0?r+360:r,g=u,f=0,m=0;i.isRadial&&(h=i.getPosition(this.pos,i.center[2]/2+sn(sa(o.distance,-25),i.center[2]/2,-i.center[2]/2)),"auto"===o.rotation?e.attr({rotation:a}):st(l)||(l=i.chart.renderer.fontMetrics(e).b-s.height/2),st(d)||(i.isCircular?(s.width>i.len*i.tickInterval/(i.max-i.min)&&(p=0),d=a>p&&a<180-p?"left":a>180+p&&a<360-p?"right":"center"):d="center",e.attr({align:d})),"auto"===d&&2===i.tickPositions.length&&i.isCircular&&(u>90&&u<180?u=180-u:u>270&&u<=360&&(u=540-u),g>180&&g<=360&&(g=360-g),(i.pane.options.startAngle===r||i.pane.options.startAngle===r+360||i.pane.options.startAngle===r-360)&&(c="start"),d=r>=-90&&r<=90||r>=-360&&r<=-270||r>=270&&r<=360?"start"===c?"right":"left":"start"===c?"left":"right",g>70&&g<110&&(d="center"),u<15||u>=180&&u<195?f=.3*s.height:u>=15&&u<=35?f="start"===c?0:.75*s.height:u>=195&&u<=215?f="start"===c?.75*s.height:0:u>35&&u<=90?f="start"===c?-(.25*s.height):s.height:u>215&&u<=270&&(f="start"===c?s.height:-(.25*s.height)),g<15?m="start"===c?-(.15*s.height):.15*s.height:g>165&&g<=180&&(m="start"===c?.15*s.height:-(.15*s.height)),e.attr({align:d}),e.translate(m,f+n)),t.pos.x=h.x+(o.x||0),t.pos.y=h.y+(l||0))}function x(t){this.axis.getPosition&&se(t.pos,this.axis.getPosition(this.pos))}function P({options:e}){e.xAxis&&so(!0,t.radialDefaultOptions.circular,e.xAxis),e.yAxis&&so(!0,t.radialDefaultOptions.radialGauge,e.yAxis)}function v(t,e){let i=this.chart,s=this.center;return t=this.startAngleRad+t,{x:i.plotLeft+s[0]+Math.cos(t)*e,y:i.plotTop+s[1]+Math.sin(t)*e}}function M(){this.isDirty=!1}function L(){let t,e;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),t=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(e=this.postTranslate(this.angleRad,t[3]/2),t[0]=e.x-this.chart.plotLeft,t[1]=e.y-this.chart.plotTop),this.len=this.width=this.height=(t[2]-t[3])*sa(this.sector,1)/2)}function k(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.isCircular?this.transA=(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.transA=(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.isXAxis?this.minPixelPadding=this.transA*this.minPointOffset:this.minPixelPadding=0)}function w(e){let{coll:i}=this,{angular:s,inverted:o,polar:a}=this.chart,r={};s?this.isXAxis||(r=so(i8.yAxis,t.radialDefaultOptions.radialGauge)):a&&(r=this.horiz?so(i8.xAxis,t.radialDefaultOptions.circular):so("xAxis"===i?i8.xAxis:i8.yAxis,t.radialDefaultOptions.radial)),o&&"yAxis"===i&&(r.stackLabels=ss(i8.yAxis,!0)?i8.yAxis.stackLabels:{},r.reversedStacks=!0);let n=this.options=so(r,e);n.plotBands||(n.plotBands=[]),si(this,"afterSetOptions")}function A(t,e,i,s,o,a,r){let n;let l=this.axis;return l.isRadial?["M",e,i,"L",(n=l.getPosition(this.pos,l.center[2]/2+s)).x,n.y]:t.call(this,e,i,s,o,a,r)}t.radialDefaultOptions=so(i5),t.compose=function(t,e){return sr(i6,"Axis.Radial")&&(i9(t,"afterInit",c),i9(t,"autoLabelAlign",u),i9(t,"destroy",g),i9(t,"init",f),i9(t,"initialAxisTranslation",m),i9(e,"afterGetLabelPosition",b),i9(e,"afterGetPosition",x),i9(y(),"setOptions",P),sl(e.prototype,"getMarkPath",A)),t}}(d||(d={}));let sh=d,{animObject:sp}=y(),{composed:sd}=y(),{addEvent:sc,defined:su,find:sg,isNumber:sf,merge:sm,pick:sb,pushUnique:sy,relativeLength:sx,splat:sP,uniqueKey:sv,wrap:sM}=y();function sL(){(this.pane||[]).forEach(t=>{t.render()})}function sk(t){let e=t.args[0].xAxis,i=t.args[0].yAxis,s=t.args[0].chart;e&&i&&("polygon"===i.gridLineInterpolation?(e.startOnTick=!0,e.endOnTick=!0):"polygon"===e.gridLineInterpolation&&s.inverted&&(i.startOnTick=!0,i.endOnTick=!0))}function sw(){this.pane||(this.pane=[]),this.options.pane=sP(this.options.pane||{}),this.options.pane.forEach(t=>{new F(t,this)},this)}function sA(t){let e=t.args.marker,i=this.chart.xAxis[0],s=this.chart.yAxis[0],o=this.chart.inverted,a=o?s:i,r=o?i:s;if(this.chart.polar){t.preventDefault();let i=(e.attr?e.attr("start"):e.start)-a.startAngleRad,s=e.attr?e.attr("r"):e.r,o=(e.attr?e.attr("end"):e.end)-a.startAngleRad,n=e.attr?e.attr("innerR"):e.innerR;t.result.x=i+a.pos,t.result.width=o-i,t.result.y=r.len+r.pos-s,t.result.height=s-n}}function sS(t){let e=this.chart;if(e.polar&&e.hoverPane&&e.hoverPane.axis){t.preventDefault();let i=e.hoverPane.center,s=e.mouseDownX||0,o=e.mouseDownY||0,a=t.args.chartY,r=t.args.chartX,n=2*Math.PI,l=e.hoverPane.axis.startAngleRad,h=e.hoverPane.axis.endAngleRad,p=e.inverted?e.xAxis[0]:e.yAxis[0],d={},c="arc";if(d.x=i[0]+e.plotLeft,d.y=i[1]+e.plotTop,this.zoomHor){let t=l>0?h-l:Math.abs(l)+Math.abs(h),u=Math.atan2(o-e.plotTop-i[1],s-e.plotLeft-i[0])-l,g=Math.atan2(a-e.plotTop-i[1],r-e.plotLeft-i[0])-l;d.r=i[2]/2,d.innerR=i[3]/2,u<=0&&(u+=n),g<=0&&(g+=n),gh+(n-t)/2&&(g=u,u=l<=0?l:0);let f=d.start=Math.max(u+l,l),m=d.end=Math.min(g+l,h);if("polygon"===p.options.gridLineInterpolation){let t=e.hoverPane.axis,s=f-t.startAngleRad+t.pos,o=p.getPlotLinePath({value:p.max}),a=t.toValue(s),r=t.toValue(s+(m-f));if(ai[2]/2&&(p=i[2]/2),nt.max?(s[o].isNull=!0,s[o].plotY=NaN):s[o].isNull=s[o].isValid&&!s[o].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(sc(this,"afterRender",function(){let t;i.polar&&!1!==this.options.clip&&(t=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2}):this.clipCircle=function(t,e,i,s,o){let a=sv(),r=t.createElement("clipPath").attr({id:a}).add(t.defs),n=o?t.arc(e,i,s,o,0,2*Math.PI).add(r):t.circle(e,i,s).add(r);return n.id=a,n.clipPath=r,n}(i.renderer,t[0],t[1],t[2]/2,t[3]/2),this.group.clip(this.clipCircle),this.setClip=y().noop)})))}}function sN(t){let e=this.chart,i=this.xAxis,s=this.yAxis,o=i.pane&&i.pane.center,a=t.chartX-(o&&o[0]||0)-e.plotLeft,r=t.chartY-(o&&o[1]||0)-e.plotTop,n=e.inverted?{clientX:t.chartX-s.pos,plotY:t.chartY-i.pos}:{clientX:180+-180/Math.PI*Math.atan2(a,r)};return this.searchKDTree(n)}function sX(t,e,i,s){let o=s.tickInterval,a=s.tickPositions,r=sg(a,t=>t>=i),n=sg([...a].reverse(),t=>t<=e);return su(r)||(r=a[a.length-1]),su(n)||(n=a[0],r+=o,t[0][0]="L",t.unshift(t[t.length-3])),(t=t.slice(a.indexOf(n),a.indexOf(r)+1))[0][0]="M",t}function sY(t,e){return sg(this.pane||[],t=>t.options.id===e)||t.call(this,e)}function sI(t,e,i,s,o,a){let r,n,l;let h=this.chart,p=sb(s.inside,!!this.options.stacking);if(h.polar){if(r=e.rectPlotX/Math.PI*180,h.inverted)this.forceDL=h.isInsidePlot(e.plotX,e.plotY),p&&e.shapeArgs?(n=e.shapeArgs,o=sm(o,{x:(l=this.yAxis.postTranslate(((n.start||0)+(n.end||0))/2-this.xAxis.startAngleRad,e.barX+e.pointWidth/2)).x-h.plotLeft,y:l.y-h.plotTop})):e.tooltipPos&&(o=sm(o,{x:e.tooltipPos[0],y:e.tooltipPos[1]})),s.align=sb(s.align,"center"),s.verticalAlign=sb(s.verticalAlign,"middle");else{var d;let t,e;null===(d=s).align&&(t=r>20&&r<160?"left":r>200&&r<340?"right":"center",d.align=t),null===d.verticalAlign&&(e=r<45||r>315?"bottom":r>135&&r<225?"top":"middle",d.verticalAlign=e),s=d}M().prototype.alignDataLabel.call(this,e,i,s,o,a),this.isRadialBar&&e.shapeArgs&&e.shapeArgs.start===e.shapeArgs.end?i.hide():i.show()}else t.call(this,e,i,s,o,a)}function sR(){let t=this.options,e=t.stacking,i=this.chart,s=this.xAxis,o=this.yAxis,a=o.reversed,r=o.center,n=s.startAngleRad,l=s.endAngleRad-n,h=t.threshold,p=0,d,c,u,g,f,m=0,b=0,x,P,v,M,L,k,w,A;if(s.isRadial)for(u=(d=this.points).length,g=o.translate(o.min),f=o.translate(o.max),h=t.threshold||0,i.inverted&&sf(h)&&su(p=o.translate(h))&&(p<0?p=0:p>l&&(p=l),this.translatedThreshold=p+n);u--;){if(k=(c=d[u]).barX,P=c.x,v=c.y,c.shapeType="arc",i.inverted){c.plotY=o.translate(v),e&&o.stacking?(L=o.stacking.stacks[(v<0?"-":"")+this.stackKey],this.visible&&L&&L[P]&&!c.isNull&&(M=L[P].points[this.getStackIndicator(void 0,P,this.index).key],m=o.translate(M[0]),b=o.translate(M[1]),su(m)&&(m=y().clamp(m,0,l)))):(m=p,b=c.plotY),m>b&&(b=[m,m=b][0]),a?b>g?b=g:mg||bf?b=f:(bf)&&(m=b=0),o.min>o.max&&(m=b=a?l:0),m+=n,b+=n,r&&(c.barX=k+=r[3]/2),w=Math.max(k,0),A=Math.max(k+c.pointWidth,0);let i=t.borderRadius,s=sx(("object"==typeof i?i.radius:i)||0,A-w);c.shapeArgs={x:r[0],y:r[1],r:A,innerR:w,start:m,end:b,borderRadius:s},c.opacity=m===b?0:void 0,c.plotY=(su(this.translatedThreshold)&&(mr[1])}}function sE(t,e){let i,s;let o=this;if(this.chart.polar){e=e||this.points;for(let t=0;t{void 0===t.polarPlotY&&o.polar.toXY(t)})}let a=t.apply(this,[].slice.call(arguments,1));return s&&e.pop(),a}function sz(t,e){let i=this.chart,s={xAxis:[],yAxis:[]};return i.polar?i.axes.forEach(t=>{if("colorAxis"===t.coll)return;let o=t.isXAxis,a=t.center,r=e.chartX-a[0]-i.plotLeft,n=e.chartY-a[1]-i.plotTop;s[o?"xAxis":"yAxis"].push({axis:t,value:t.translate(o?Math.PI-Math.atan2(r,n):Math.sqrt(Math.pow(r,2)+Math.pow(n,2)),!0)})}):s=t.call(this,e),s}function sD(t,e){this.chart.polar||t.call(this,e)}function sO(t,e){let i=this,s=this.chart,o=this.group,a=this.markerGroup,r=this.xAxis&&this.xAxis.center,n=s.plotLeft,l=s.plotTop,h=this.options.animation,p,d,c,u,g,f;s.polar?i.isRadialBar?e||(i.startAngleRad=sb(i.translatedThreshold,i.xAxis.startAngleRad),y().seriesTypes.pie.prototype.animate.call(i,e)):(h=sp(h),i.is("column")?e||(d=r[3]/2,i.points.forEach(t=>{c=t.graphic,g=(u=t.shapeArgs)&&u.r,f=u&&u.innerR,c&&u&&(c.attr({r:d,innerR:d}),c.animate({r:g,innerR:f},i.options.animation))})):e?(p={translateX:r[0]+n,translateY:r[1]+l,scaleX:.001,scaleY:.001},o.attr(p),a&&a.attr(p)):(p={translateX:n,translateY:l,scaleX:1,scaleY:1},o.animate(p,h),a&&a.animate(p,h))):t.call(this,e)}function sH(t,e,i,s){let o,a;if(this.chart.polar){if(s){let t=(a=function t(e,i,s,o){let a,r,n,l,h,p;let d=o?1:0,c=(a=i>=0&&i<=e.length-1?i:i<0?e.length-1+i:0)-1<0?e.length-(1+d):a-1,u=a+1>e.length-1?d:a+1,g=e[c],f=e[u],m=g.plotX,b=g.plotY,y=f.plotX,x=f.plotY,P=e[a].plotX,v=e[a].plotY;r=(1.5*P+m)/2.5,n=(1.5*v+b)/2.5,l=(1.5*P+y)/2.5,h=(1.5*v+x)/2.5;let M=Math.sqrt(Math.pow(r-P,2)+Math.pow(n-v,2)),L=Math.sqrt(Math.pow(l-P,2)+Math.pow(h-v,2)),k=Math.atan2(n-v,r-P);p=Math.PI/2+(k+Math.atan2(h-v,l-P))/2,Math.abs(k-p)>Math.PI/2&&(p-=Math.PI),r=P+Math.cos(p)*M,n=v+Math.sin(p)*M;let w={rightContX:l=P+Math.cos(Math.PI+p)*L,rightContY:h=v+Math.sin(Math.PI+p)*L,leftContX:r,leftContY:n,plotX:P,plotY:v};return s&&(w.prevPointCont=t(e,c,!1,o)),w}(e,s,!0,this.connectEnds)).prevPointCont&&a.prevPointCont.rightContX,i=a.prevPointCont&&a.prevPointCont.rightContY;o=["C",sf(t)?t:a.plotX,sf(i)?i:a.plotY,sf(a.leftContX)?a.leftContX:a.plotX,sf(a.leftContY)?a.leftContY:a.plotY,a.plotX,a.plotY]}else o=["M",i.plotX,i.plotY]}else o=t.call(this,e,i,s);return o}function sB(t,e,i=this.plotY){if(!this.destroyed){let{plotX:s,series:o}=this,{chart:a}=o;return a.polar&&sf(s)&&sf(i)?[s+(e?a.plotLeft:0),i+(e?a.plotTop:0)]:t.call(this,e,i)}}class sW{static compose(t,e,i,s,o,a,r,n,l,h){if(F.compose(e,i),sh.compose(t,o),sy(sd,"Polar")){let t=e.prototype,o=a.prototype,p=i.prototype,d=s.prototype;if(sc(e,"afterDrawChartBox",sL),sc(e,"createAxes",sw),sc(e,"init",sk),sM(t,"get",sY),sM(p,"getCoordinates",sz),sM(p,"pinch",sD),sc(i,"getSelectionMarkerAttrs",sS),sc(i,"getSelectionBox",sA),sc(s,"afterInit",sT),sc(s,"afterTranslate",sC,{order:2}),sc(s,"afterColumnTranslate",sR,{order:4}),sM(d,"animate",sO),sM(o,"pos",sB),n){let t=n.prototype;sM(t,"alignDataLabel",sI),sM(t,"animate",sO)}if(l&&sM(l.prototype,"getGraphPath",sE),h){let t=h.prototype;sM(t,"getPointSpline",sH),r&&(r.prototype.getPointSpline=t.getPointSpline)}}}constructor(t){this.series=t}arc(t,e,i,s){let o=this.series,a=o.xAxis.center,r=o.yAxis.len,n=a[3]/2,l=r-e+n,h=r-sb(t,r)+n;return o.yAxis.reversed&&(l<0&&(l=n),h<0&&(h=n)),{x:a[0],y:a[1],r:l,innerR:h,start:i,end:s}}toXY(t){let e=this.series,i=e.chart,s=e.xAxis,o=e.yAxis,a=t.plotX,r=i.inverted,n=t.y,l=t.plotY,h=r?a:o.len-l,p;if(r&&e&&!e.isRadialBar&&(t.plotY=l=sf(n)?o.translate(n):0),t.rectPlotX=a,t.rectPlotY=l,o.center&&(h+=o.center[3]/2),sf(l)){let e=r?o.postTranslate(l,h):s.postTranslate(a,h);t.plotX=t.polarPlotX=e.x-i.plotLeft,t.plotY=t.polarPlotY=e.y-i.plotTop}e.kdByAngle?((p=(a/Math.PI*180+s.pane.options.startAngle)%360)<0&&(p+=360),t.clientX=p):t.clientX=t.plotX}}var sF=f(184),sG=/*#__PURE__*/f.n(sF);let{composed:sq}=y(),{addEvent:sV,objectEach:s_,pushUnique:sU}=y();!function(t){function e(){let t=this.waterfall.stacks;t&&(t.changed=!1,delete t.alreadyChanged)}function i(){let t=this.options.stackLabels;t&&t.enabled&&this.waterfall.stacks&&this.waterfall.renderStackTotals()}function s(){this.waterfall||(this.waterfall=new a(this))}function o(){let t=this.axes;for(let e of this.series)if(e.options.stacking){for(let e of t)e.isXAxis||(e.waterfall.stacks.changed=!0);break}}t.compose=function(t,a){sU(sq,"Axis.Waterfall")&&(sV(t,"init",s),sV(t,"afterBuildStacks",e),sV(t,"afterRender",i),sV(a,"beforeRedraw",o))};class a{constructor(t){this.axis=t,this.stacks={changed:!1}}renderStackTotals(){let t=this.axis,e=t.waterfall.stacks,i=t.stacking&&t.stacking.stackTotalGroup,s=new(sG())(t,t.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=s,i&&s_(e,t=>{s_(t,(t,e)=>{s.total=t.stackTotal,s.x=+e,t.label&&(s.label=t.label),sG().prototype.render.call(s,i),t.label=s.label,delete s.label})}),s.total=null}}t.Composition=a}(c||(c={}));let sK=c,{isNumber:sZ}=y();class sj extends tc().prototype.pointClass{getClassName(){let t=tZ().prototype.getClassName.call(this);return this.isSum?t+=" highcharts-sum":this.isIntermediateSum&&(t+=" highcharts-intermediate-sum"),t}isValid(){return sZ(this.y)||this.isSum||!!this.isIntermediateSum}}let{column:s$,line:sQ}=P().seriesTypes,{addEvent:sJ,arrayMax:s0,arrayMin:s1,correctFloat:s2,crisp:s3,extend:s5,isNumber:s8,merge:s6,objectEach:s4,pick:s9}=y();function s7(t,e){return Object.hasOwnProperty.call(t,e)}class ot extends s${generatePoints(){s$.prototype.generatePoints.apply(this);let t=this.getColumn("y",!0);for(let e=0,i=this.points.length;e0?i:void 0);let s=s$.prototype.pointAttribs.call(this,t,e);return delete s.dashstyle,s}getGraphPath(){return[["M",0,0]]}getCrispPath(){let t=this.data.filter(t=>s8(t.y)),e=this.yAxis,i=t.length,s=this.graph?.strokeWidth()||0,o=this.xAxis.reversed,a=this.yAxis.reversed,r=this.options.stacking,n=[];for(let l=1;l0?-d.height:0;if(c&&d&&i){let t;let p=c[l-1];if(r){let i=p.connectorThreshold;t=s3(e.translate(i,!1,!0,!1,!0)+(a?u:0),s)}else t=s3(d.y+(h.minPointLengthOffset||0),s);n.push(["M",(d.x||0)+(o?0:d.width||0),t],["L",(i.x||0)+(o&&i.width||0),t])}if(d&&n.length&&(!r&&p<0&&!a||p>0&&a)){let t=n[n.length-2];t&&"number"==typeof t[2]&&(t[2]+=d.height||0);let e=n[n.length-1];e&&"number"==typeof e[2]&&(e[2]+=d.height||0)}}return n}drawGraph(){sQ.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(t){let e=this.options,i=t.waterfall?.stacks,s=e.threshold||0,o=this.stackKey,a=this.getColumn("x"),r=this.getColumn("y"),n=a.length,l=s,h=l,p,d=0,c=0,u=0,g,f,m,b,y,x,P,v,M=(t,e,i,s)=>{if(p){if(g)for(;iP.indexOf(o)&&(v=!0),i[o]||(i[o]={});let t=i[o];if(t)for(let i=0;i=0?p.posTotal+=y:p.negTotal+=y,b=e.data[i],f=p.absolutePos=p.posTotal,m=p.absoluteNeg=p.negTotal,p.stackTotal=f+m,g=p.stackState.length,b&&b.isIntermediateSum?(M(u,c,0,u),u=c,c=s,l^=h,h^=l,l^=h):b&&b.isSum?(M(s,d,g,0),l=s):(M(l,y,0,d),b&&(d+=y,c+=y)),p.stateIndex++,p.threshold=l,l+=p.stackTotal;i.changed=!1,i.alreadyChanged||(i.alreadyChanged=[]),i.alreadyChanged.push(o)}}getExtremes(){let t,e,i;let s=this.options.stacking;return s?(t=this.yAxis.waterfall.stacks,e=this.stackedYNeg=[],i=this.stackedYPos=[],"overlap"===s?s4(t[this.stackKey],function(t){e.push(s1(t.stackState)),i.push(s0(t.stackState))}):s4(t[this.stackKey],function(t){e.push(t.negTotal+t.threshold),i.push(t.posTotal+t.threshold)}),{dataMin:s1(e),dataMax:s0(i)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}ot.defaultOptions=s6(s$.defaultOptions,{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}),ot.compose=sK.compose,s5(ot.prototype,{pointValKey:"y",showLine:!0,pointClass:sj}),sJ(ot,"afterColumnTranslate",function(){let{options:t,points:e,yAxis:i}=this,s=s9(t.minPointLength,5),o=s/2,a=t.threshold||0,r=t.stacking,n=i.waterfall.stacks[this.stackKey],l=this.getColumn("y",!0),h=a,p=a,d,c,u,g;for(let t=0;t=0?c:c-x,s7(e,"absolutePos")&&delete e.absolutePos,s7(e,"absoluteNeg")&&delete e.absoluteNeg):(x>=0?(c=e.threshold+e.posTotal,e.posTotal-=x,d=c):(c=e.threshold+e.negTotal,e.negTotal-=x,d=c-x),!e.posTotal&&s8(e.absolutePos)&&s7(e,"absolutePos")&&(e.posTotal=e.absolutePos,delete e.absolutePos),!e.negTotal&&s8(e.absoluteNeg)&&s7(e,"absoluteNeg")&&(e.negTotal=e.absoluteNeg,delete e.absoluteNeg)),f.isSum||(e.connectorThreshold=e.threshold+e.stackTotal),i.reversed?(u=x>=0?d-x:d+x,g=d):(u=d,g=d-x),f.below=u<=a,b.y=i.translate(u,!1,!0,!1,!0),b.height=Math.abs(b.y-i.translate(g,!1,!0,!1,!0));let s=i.waterfall.dummyStackItem;s&&(s.x=t,s.label=n[t].label,s.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[t],this.stackedYPos[t],void 0,this.xAxis))}}else d=Math.max(p,p+x)+y[0],b.y=i.translate(d,!1,!0,!1,!0),f.isSum?(b.y=i.translate(y[1],!1,!0,!1,!0),b.height=Math.min(i.translate(y[0],!1,!0,!1,!0),i.len)-b.y,f.below=y[1]<=a):f.isIntermediateSum?(x>=0?(u=y[1]+h,g=h):(u=h,g=y[1]+h),i.reversed&&(u^=g,g^=u,u^=g),b.y=i.translate(u,!1,!0,!1,!0),b.height=Math.abs(b.y-Math.min(i.translate(g,!1,!0,!1,!0),i.len)),h+=y[1],f.below=u<=a):(b.height=m>0?i.translate(p,!1,!0,!1,!0)-b.y:i.translate(p,!1,!0,!1,!0)-i.translate(p-m,!1,!0,!1,!0),p+=m,f.below=p(()=>{"use strict";var p,d,c,u={960:t=>{t.exports=n},620:t=>{t.exports=o},260:t=>{t.exports=r},28:t=>{t.exports=l},448:t=>{t.exports=s},820:t=>{t.exports=i},512:t=>{t.exports=e},184:t=>{t.exports=h},984:t=>{t.exports=a},944:e=>{e.exports=t}},g={};function f(t){var e=g[t];if(void 0!==e)return e.exports;var i=g[t]={exports:{}};return u[t](i,i.exports,f),i.exports}f.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return f.d(e,{a:e}),e},f.d=(t,e)=>{for(var i in e)f.o(e,i)&&!f.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},f.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var m={};f.d(m,{default:()=>oi});var b=f(944),y=f.n(b),x=f(512),P=f.n(x),v=f(820),M=f.n(v);let{deg2rad:L}=y(),{fireEvent:k,isNumber:w,pick:A,relativeLength:S}=y();!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,a=t.center,r=Math.min(s,o),n=t.thickness,l,h=t.size,p=t.innerSize||0,d,c;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof p&&(p=parseFloat(p));let u=[A(a?.[0],"50%"),A(a?.[1],"50%"),A(h&&h<0?void 0:t.size,"100%"),A(p&&p<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof M()||(u[3]=0),d=0;d<4;++d)c=u[d],l=d<2||2===d&&/%$/.test(c),u[d]=S(c,[s,o,r,u[2]][d])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),w(n)&&2*n0&&(u[3]=u[2]-2*n),k(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=w(t)?t:0,s=w(e)&&e>i&&e-i<360?e:i+360;return{start:L*(i+-90),end:L*(s+-90)}}}(p||(p={}));let T=p,{addEvent:C,correctFloat:N,defined:X,pick:Y}=y();function I(t){let e;let i=this;return t&&i.pane.forEach(s=>{R(t.chartX-i.plotLeft,t.chartY-i.plotTop,s.center)&&(e=s)}),e}function R(t,e,i,s,o){let a=!0,r=i[0],n=i[1],l=Math.sqrt(Math.pow(t-r,2)+Math.pow(e-n,2));if(X(s)&&X(o)){let i=Math.atan2(N(e-n,8),N(t-r,8));o!==s&&(a=s>o?i>=s&&i<=Math.PI||i<=o&&i>=-Math.PI:i>=s&&i<=N(o,8))}return l<=Math.ceil(i[2]/2)&&a}function E(t){this.polar&&(t.options.inverted&&([t.x,t.y]=[t.y,t.x]),t.isInsidePlot=this.pane.some(e=>R(t.x,t.y,e.center,e.axis&&e.axis.normalizedStartAngleRad,e.axis&&e.axis.normalizedEndAngleRad)))}function z(t){let e=this.chart;t.hoverPoint&&t.hoverPoint.plotX&&t.hoverPoint.plotY&&e.hoverPane&&!R(t.hoverPoint.plotX,t.hoverPoint.plotY,e.hoverPane.center)&&(t.hoverPoint=void 0)}function D(t){let e=this.chart;e.polar?(e.hoverPane=e.getHoverPane(t),t.filter=function(i){return i.visible&&!(!t.shared&&i.directTouch)&&Y(i.options.enableMouseTracking,!0)&&(!e.hoverPane||i.xAxis.pane===e.hoverPane)}):e.hoverPane=void 0}let O={pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderRadius:0,borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}},{extend:H,merge:B,splat:W}=y();class F{constructor(t,e){this.coll="pane",this.init(t,e)}init(t,e){this.chart=e,this.background=[],e.pane.push(this),this.setOptions(t)}setOptions(t){this.options=t=B(O.pane,this.chart.angular?{background:{}}:void 0,t)}render(){let t=this.options,e=this.chart.renderer;this.group||(this.group=e.g("pane-group").attr({zIndex:t.zIndex||0}).add()),this.updateCenter();let i=this.options.background;if(i){let t=Math.max((i=W(i)).length,this.background.length||0);for(let e=0;ea,e.y=e.high,e._plotY=e.plotY,e.plotY=o,n[t]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=i,h?s.align||(s.align=i?"right":"left"):s.verticalAlign||(s.verticalAlign=i?"top":"bottom")}for(this.options.dataLabels=s,j.drawDataLabels&&j.drawDataLabels.apply(this,arguments),t=r;t--;)(e=a[t])&&(e.dataLabelUpper=e.dataLabel,e.dataLabel=n[t],delete e.dataLabels,e.y=e.low,e.plotY=e._plotY)}if(o.enabled||this.hasDataLabels?.()){for(t=r;t--;)if(e=a[t]){let{plotHigh:t=0,plotLow:s=0}=e;i=o.inside?ts,e.below=!i,h?o.align||(o.align=i?"left":"right"):o.verticalAlign||(o.verticalAlign=i?"bottom":"top")}this.options.dataLabels=o,j.drawDataLabels&&j.drawDataLabels.apply(this,arguments)}if(s.enabled)for(t=r;t--;)(e=a[t])&&(e.dataLabels=[e.dataLabelUpper,e.dataLabel].filter(function(t){return!!t}));this.options.dataLabels=l}}alignDataLabel(){$.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){let t={marker:this.options.marker,symbol:this.symbol};if(this.options.lowMarker){let{options:{marker:t,lowMarker:e}}=this;this.options.marker=to(t,e),e.symbol&&(this.symbol=e.symbol)}return t}restoreMarkerSettings(t){this.options.marker=t.marker,this.symbol=t.symbol}drawPoints(){let t,e;let i=this.points.length,s=this.modifyMarkerSettings();for(j.drawPoints.apply(this,arguments),this.restoreMarkerSettings(s),t=0;t=0&&e.plotY<=this.yAxis.len&&e.plotX>=0&&e.plotX<=this.xAxis.len),t++;for(j.drawPoints.apply(this,arguments),t=0;t● {series.name}: {point.low} - {point.high}
'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),Q(ta,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(t=>{let e=t.high,i=t.plotY;t.isNull?t.plotY=void 0:(t.plotLow=i,t.plotHigh=ti(e)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(e):e,!1,!0,void 0,!0):void 0,this.dataModify&&(t.yBottom=t.plotHigh))})},{order:0}),Q(ta,"afterTranslate",function(){this.points.forEach(t=>{if(this.chart.polar)this.highToXY(t),t.plotLow=t.plotY,t.tooltipPos=[((t.plotHighX||0)+(t.plotLowX||0))/2,((t.plotHigh||0)+(t.plotLow||0))/2];else{let e=t.pos(!1,t.plotLow),i=t.pos(!1,t.plotHigh);e&&i&&(e[0]=(e[0]+i[0])/2,e[1]=(e[1]+i[1])/2),t.tooltipPos=e}})},{order:3}),tt(ta.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:U,pointValKey:"low",setStackedPoints:K}),P().registerSeriesType("arearange",ta);let tr=ta,{spline:{prototype:tn}}=P().seriesTypes,{merge:tl,extend:th}=y();class tp extends tr{}tp.defaultOptions=tl(tr.defaultOptions),th(tp.prototype,{getPointSpline:tn.getPointSpline}),P().registerSeriesType("areasplinerange",tp);var td=f(448),tc=f.n(td);let{noop:tu}=y(),{crisp:tg,extend:tf,merge:tm,pick:tb,relativeLength:ty}=y();class tx extends tc(){pointAttribs(){return{}}getWhiskerPair(t,e,i,s,o){let a=o.whiskers.strokeWidth(),r=(i,s)=>{let o=ty(i,2*t)/2,r=tg(s,a);return[["M",tg(e-o),r],["L",tg(e+o),r]]};return[...r(i,o.highPlot),...r(s,o.lowPlot)]}translate(){let t=this.yAxis,e=this.pointArrayMap;super.translate.apply(this),this.points.forEach(function(i){e.forEach(function(e){null!==i[e]&&(i[e+"Plot"]=t.translate(i[e],0,1,0,1))}),i.plotHigh=i.highPlot})}drawPoints(){let t,e,i,s,o,a,r,n,l,h,p;let d=this.points,c=this.options,u=this.chart,g=u.renderer,f=!1!==this.doQuartiles,m=this.options.whiskerLength;for(let b of d){let d=(n=b.graphic)?"animate":"attr",y=b.shapeArgs,x={},P={},v={},M={},L=b.color||this.color,k=b.options.whiskerLength||m;if(void 0!==b.plotY){let w;l=y.width,p=(h=y.x)+l,t=f?b.q1Plot:b.lowPlot,e=f?b.q3Plot:b.lowPlot,i=b.highPlot,s=b.lowPlot,n||(b.graphic=n=g.g("point").add(this.group),b.stem=g.path().addClass("highcharts-boxplot-stem").add(n),m&&(b.whiskers=g.path().addClass("highcharts-boxplot-whisker").add(n)),f&&(b.box=g.path(r).addClass("highcharts-boxplot-box").add(n)),b.medianShape=g.path(a).addClass("highcharts-boxplot-median").add(n)),u.styledMode||(P.stroke=b.stemColor||c.stemColor||L,P["stroke-width"]=tb(b.stemWidth,c.stemWidth,c.lineWidth),P.dashstyle=b.stemDashStyle||c.stemDashStyle||c.dashStyle,b.stem.attr(P),k&&(v.stroke=b.whiskerColor||c.whiskerColor||L,v["stroke-width"]=tb(b.whiskerWidth,c.whiskerWidth,c.lineWidth),v.dashstyle=b.whiskerDashStyle||c.whiskerDashStyle||c.dashStyle,b.whiskers.attr(v)),f&&(x.fill=b.fillColor||c.fillColor||L,x.stroke=c.lineColor||L,x["stroke-width"]=c.lineWidth||0,x.dashstyle=b.boxDashStyle||c.boxDashStyle||c.dashStyle,b.box.attr(x)),M.stroke=b.medianColor||c.medianColor||L,M["stroke-width"]=tb(b.medianWidth,c.medianWidth,c.lineWidth),M.dashstyle=b.medianDashStyle||c.medianDashStyle||c.dashStyle,b.medianShape.attr(M));let A=tg((b.plotX||0)+(this.pointXOffset||0)+(this.barW||0)/2,b.stem.strokeWidth());if(w=[["M",A,e],["L",A,i],["M",A,t],["L",A,s]],b.stem[d]({d:w}),f){let i=b.box.strokeWidth();t=tg(t,i),e=tg(e,i),w=[["M",h=tg(h,i),e],["L",h,t],["L",p=tg(p,i),t],["L",p,e],["L",h,e],["Z"]],b.box[d]({d:w})}if(k){let t=l/2,e=this.getWhiskerPair(t,A,b.upperWhiskerLength??c.upperWhiskerLength??k,b.lowerWhiskerLength??c.lowerWhiskerLength??k,b);b.whiskers[d]({d:e})}w=[["M",h,o=tg(b.medianPlot,b.medianShape.strokeWidth())],["L",p,o]],b.medianShape[d]({d:w})}}}toYData(t){return[t.low,t.q1,t.median,t.q3,t.high]}}tx.defaultOptions=tm(tc().defaultOptions,{threshold:null,tooltip:{pointFormat:' {series.name}
Maximum: {point.high}
Upper quartile: {point.q3}
Median: {point.median}
Lower quartile: {point.q1}
Minimum: {point.low}
'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}),tf(tx.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:tu,setStackedPoints:tu}),P().registerSeriesType("boxplot",tx);let tP=tx,tv={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0};var tM=f(620),tL=f.n(tM),tk=f(984),tw=f.n(tk);let{parse:tA}=tL(),{noop:tS}=y(),{arrayMax:tT,arrayMin:tC,isNumber:tN,merge:tX,pick:tY,stableSort:tI}=y(),tR=class{constructor(t,e){this.setState=tS,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e;let i=tY(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,a=o.ranges,r=o.connectorDistance;if(!a||!a.length||!tN(a[0].value)){t.options.bubbleLegend.autoRanges=!0;return}tI(a,function(t,e){return e.value-t.value}),this.ranges=a,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=r-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},a={zIndex:e.zIndex,"stroke-width":e.connectorWidth},r={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach(function(h,p){l||(o.stroke=tY(h.borderColor,e.borderColor,i.color),o.fill=tY(h.color,e.color,1!==n?tA(i.color).setOpacity(n).get("rgba"):i.color),a.stroke=tY(h.connectorColor,e.connectorColor,i.color)),t[p].radius=this.getRangeRadius(h.value),t[p]=tX(t[p],{center:t[0].radius-t[p].radius+s}),l||tX(!0,t[p],{bubbleAttribs:tX(o),connectorAttribs:tX(a),labelAttribs:r})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,a=e.ranges[e.ranges.length-1].value,r=e.minSize,n=e.maxSize;return s.getRadius.call(this,a,o,r,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,a=this.chart,r=a.series[s.seriesIndex],n=a.renderer,l=this.symbols,h=l.labels,p=t.center,d=Math.abs(t.radius),c=s.connectorDistance||0,u=o.align,g=i.options.rtl,f=s.borderWidth,m=s.connectorWidth,b=e.radius||0,y=p-d-f/2+m/2,x=(y%1?1:.5)-(m%2?0:.5),P=n.styledMode,v=g||"left"===u?-c:c;"center"===u&&(v=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(b,p+x,d).attr(P?{}:t.bubbleAttribs).addClass((P?"highcharts-color-"+r.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",b,y],["L",b+v,y]],s.connectorWidth)).attr(P?{}:t.connectorAttribs).addClass((P?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let M=n.text(this.formatLabel(t)).attr(P?{}:t.labelAttribs).css(P?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),L={x:b+v+s.labels.x,y:y+s.labels.y+.4*M.getBBox().height};M.attr(L),h.push(M),M.placed=!0,M.alignAttr=L}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?tw().format(s,t,this.chart):i?i.call(t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,a=Number.MAX_VALUE,r=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(tN)).length&&(a=tY(t.options.zMin,Math.min(a,Math.max(tC(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),r=tY(t.options.zMax,Math.max(r,tT(o))))}),s=a===r?[{value:r}]:[{value:a},{value:(a+r)/2},{value:r,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=tX(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,a=t.plotSizeX,r=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),p=Math.ceil(l.maxPxSize),d=Math.min(r,a),c,u=n.options.maxSize;return i||!/%$/.test(u)?c=p:(c=(d+o)*(u=parseFloat(u))/100/(u/100+1),(s&&r-c>=a||!s&&a-c>=r)&&(c=p)),[h,Math.ceil(c)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:tE}=y(),{composed:tz}=y(),{addEvent:tD,objectEach:tO,pushUnique:tH,wrap:tB}=y();function tW(t,e,i){let s,o,a;let r=this.legend,n=tF(this)>=0;r&&r.options.enabled&&r.bubbleLegend&&r.options.bubbleLegend.autoRanges&&n?(s=r.bubbleLegend.options,o=r.bubbleLegend.predictBubbleSizes(),r.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(r.group.placed=!1,r.allItems.forEach(t=>{(a=t.legendItem||{}).group&&(a.group.translateY=void 0)})),r.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),tO(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),r.bubbleLegend.correctSizes(),t_(r,tG(r))):(t.call(this,e,i),r&&r.options.enabled&&r.bubbleLegend&&(r.render(),t_(r,tG(r))))}function tF(t){let e=t.series,i=0;for(;io.height&&(o.height=e[l].itemHeight);o.step=n}return i}function tq(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=tF(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new tR(s,this),this.bubbleLegend.addToLegend(t.allItems))}function tV(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=tF(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function t_(t,e){let i=t.allItems,s=t.options.rtl,o,a,r,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(o=n.group.translateX||0,a=n.y||0,((r=t.movementX)||s&&t.ranges)&&(r=s?o-t.options.maxSize/2:o+r,n.group.attr({translateX:r})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(a+e[l].height/2)}),n.y=a+e[l].height/2)})}let tU={compose:function(t,e){tH(tz,"Series.BubbleLegend")&&(tE({legend:{bubbleLegend:tv}}),tB(t.prototype,"drawChartBox",tW),tD(e,"afterGetAllItems",tq),tD(e,"itemClick",tV))}};var tK=f(260),tZ=f.n(tK);let{seriesTypes:{scatter:{prototype:{pointClass:tj}}}}=P(),{extend:t$}=y();class tQ extends tj{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series;return o.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return tZ().prototype.haloPath.call(this,e)}}t$(tQ.prototype,{ttBelow:!1});let{parse:tJ}=tL(),{composed:t0,noop:t1}=y(),{series:t2,seriesTypes:{column:{prototype:t3},scatter:t5}}=P(),{addEvent:t8,arrayMax:t6,arrayMin:t4,clamp:t9,extend:t7,isNumber:et,merge:ee,pick:ei,pushUnique:es}=y();function eo(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),a=0,r=t,n=t/o,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(et(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;a=Math.min((e[i]-s)*n-o,a),r=Math.max((e[i]-s)*n+o,r)}}}}),l&&o>0&&!this.logarithmic&&(r-=t,n*=(t+Math.max(0,a)-Math.min(r,t))/t,[["min","userMin",a],["max","userMax",r]].forEach(t=>{void 0===ei(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function ea(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,a=this.options.type;if((o?.length||"category"===a)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let a=t[e[o]],r=a.pos||0;(r>s||r{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(ei(e,o.zMin),o.zMin),i=Math.max(ei(i,o.zMax),o.zMax),t=!0)}}),t?(r={zMin:e,zMax:i},this.chart.bubbleZExtremes=r):r={zMin:0,zMax:0}}for(o=0,s=t.length;o0&&(p=(o-t)/h)}return n&&p>=0&&(p=Math.sqrt(p)),Math.ceil(i+p*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?t7(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=t2.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=tJ(s.fill).setOpacity(i).get("rgba")),s}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let a=t[o],r=i?i[o]:0;"z"===this.zoneAxis&&(a.negative=(a.z||0)<(e.zThreshold||0)),et(r)&&r>=s/2?(a.marker=t7(a.marker,{radius:r,width:2*r,height:2*r}),a.dlBox={x:a.plotX-r,y:a.plotY-r,width:2*r,height:2*r}):(a.shapeArgs=a.plotY=a.dlBox=void 0,a.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(ei(this.options.minSize,8)),s=Math.max(e(ei(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(et);if(e.length){let i=ei(t.zMin,t9(t4(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=ei(t.zMax,t6(e));if(et(i)&&et(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=t1,o=t1){return s=(t,e,i)=>{let s=t[i]||0,o=e[i]||0,a,r=!1;return s<0&&o<0?(a=s-(t.marker?.radius||0)>=o-(e.marker?.radius||0)?t:e,r=!0):a=s!i&&t>e||t{delete t.target.chart.bubbleZExtremes}),t8(er,"remove",t=>{delete t.target.chart.bubbleZExtremes}),P().registerSeriesType("bubble",er);let{seriesTypes:{column:{prototype:{pointClass:{prototype:en}}},arearange:{prototype:{pointClass:el}}}}=P(),{extend:eh,isNumber:ep}=y();class ed extends el{isValid(){return ep(this.low)}}eh(ed.prototype,{setState:en.setState});let{noop:ec}=y(),{seriesTypes:{arearange:eu,column:eg,column:{prototype:ef}}}=P(),{addEvent:em,clamp:eb,extend:ey,isNumber:ex,merge:eP,pick:ev}=y();class eM extends eu{setOptions(){return eP(!0,arguments[0],{stacking:void 0}),eu.prototype.setOptions.apply(this,arguments)}translate(){return ef.translate.apply(this)}pointAttribs(){return ef.pointAttribs.apply(this,arguments)}translate3dPoints(){return ef.translate3dPoints.apply(this,arguments)}translate3dShapes(){return ef.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){let t,e,i,s;let o=this.yAxis,a=this.xAxis,r=a.startAngleRad,n=this.chart,l=this.xAxis.isRadial,h=Math.max(n.chartWidth,n.chartHeight)+999;this.points.forEach(p=>{let d=p.shapeArgs||{},c=this.options.minPointLength,u=p.plotY,g=o.translate(p.high,0,1,0,1);if(ex(g)&&ex(u)){if(p.plotHigh=eb(g,-h,h),p.plotLow=eb(u,-h,h),s=p.plotHigh,Math.abs(t=ev(p.rectPlotY,p.plotY)-p.plotHigh)● {series.name}: {point.low} - {point.high}
'},whiskerWidth:null}),eC(eY,"afterTranslate",function(){for(let t of this.points)t.plotLow=t.plotY},{order:0}),eX(eY.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),P().registerSeriesType("errorbar",eY);let{series:{prototype:{pointClass:eI}}}=P(),{noop:eR}=y(),{series:eE,seriesTypes:{column:ez}}=P(),{clamp:eD,isNumber:eO,extend:eH,merge:eB,pick:eW,pInt:eF,defined:eG}=y();class eq extends eE{translate(){let t=this.yAxis,e=this.options,i=t.center;this.generatePoints(),this.points.forEach(s=>{let o=eB(e.dial,s.dial),a=eF(o.radius)*i[2]/200,r=eF(o.baseLength)*a/100,n=eF(o.rearLength)*a/100,l=o.baseWidth,h=o.topWidth,p=e.overshoot,d=t.startAngleRad+t.translate(s.y,void 0,void 0,void 0,!0);(eO(p)||!1===e.wrap)&&(p=eO(p)?p/180*Math.PI:0,d=eD(d,t.startAngleRad-p,t.endAngleRad+p)),d=180*d/Math.PI,s.shapeType="path";let c=o.path||[["M",-n,-l/2],["L",r,-l/2],["L",a,-h/2],["L",a,h/2],["L",r,l/2],["L",-n,l/2],["Z"]];s.shapeArgs={d:c,translateX:i[0],translateY:i[1],rotation:d},s.plotX=i[0],s.plotY=i[1],eG(s.y)&&t.max-t.min&&(s.percentage=(s.y-t.min)/(t.max-t.min)*100)})}drawPoints(){let t=this,e=t.chart,i=t.yAxis.center,s=t.pivot,o=t.options,a=o.pivot,r=e.renderer;t.points.forEach(i=>{let s=i.graphic,a=i.shapeArgs,n=a.d,l=eB(o.dial,i.dial);s?(s.animate(a),a.d=n):i.graphic=r[i.shapeType](a).addClass("highcharts-dial").add(t.group),e.styledMode||i.graphic[s?"animate":"attr"]({stroke:l.borderColor,"stroke-width":l.borderWidth,fill:l.backgroundColor})}),s?s.animate({translateX:i[0],translateY:i[1]}):a&&(t.pivot=r.circle(0,0,a.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(i[0],i[1]).add(t.group),e.styledMode||t.pivot.attr({fill:a.backgroundColor,stroke:a.borderColor,"stroke-width":a.borderWidth}))}animate(t){let e=this;t||e.points.forEach(t=>{let i=t.graphic;i&&(i.attr({rotation:180*e.yAxis.startAngleRad/Math.PI}),i.animate({rotation:t.shapeArgs.rotation},e.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),eE.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(t,e){eE.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),eW(e,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}eq.defaultOptions=eB(eE.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),eH(eq.prototype,{angular:!0,directTouch:!0,drawGraph:eR,drawTracker:ez.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:class extends eI{setState(t){this.state=t}},trackerGroups:["group","dataLabelsGroup"]}),P().registerSeriesType("gauge",eq);let{composed:eV}=y(),{addEvent:e_,pushUnique:eU}=y();function eK(){let t,e,i;let s=this;s.container&&(t=e_(s.container,"mousedown",t=>{let o=s.hoverPoint;o&&o.series&&o.series.hasDraggableNodes&&o.series.options.draggable&&(o.series.onMouseDown(o,t),e=e_(s.container,"mousemove",t=>o&&o.series&&o.series.onMouseMove(o,t)),i=e_(s.container.ownerDocument,"mouseup",t=>(e(),i(),o&&o.series&&o.series.onMouseUp(o,t))))})),e_(s,"destroy",function(){t()})}let eZ={compose:function(t){eU(eV,"DragNodes")&&e_(t,"load",eK)},onMouseDown:function(t,e){let i=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:i.chartX,chartY:i.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s;let o=this.chart,a=o.pointer?.normalize(e)||e,r=t.fixedPosition.chartX-a.chartX,n=t.fixedPosition.chartY-a.chartY,l=o.graphLayoutsLookup;(Math.abs(r)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-r,s=t.fixedPosition.plotY-n,o.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),l.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath(this.options.states.hover.halo.size)})}},{setAnimation:ej}=y(),{composed:e$}=y(),{addEvent:eQ,pushUnique:eJ}=y();function e0(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function e1(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function e2(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function e3(){let t,e=!1,i=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup){for(ej(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(i);e&&this.series.forEach(t=>{t&&t.layout&&t.render()})}}let e5={compose:function(t){eJ(e$,"GraphLayout")&&(eQ(t,"afterPrint",e0),eQ(t,"beforePrint",e1),eQ(t,"predraw",e2),eQ(t,"render",e3))},integrations:{},layouts:{}};var e8=f(960),e6=f.n(e8);let{seriesTypes:{bubble:{prototype:{pointClass:e4}}}}=P(),e9=class extends e4{destroy(){return this.series?.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),tZ().prototype.destroy.apply(this,arguments)}firePointEvent(){let t=this.series.options;if(this.isParentNode&&t.parentNode){let e=t.allowPointSelect;t.allowPointSelect=t.parentNode.allowPointSelect,tZ().prototype.firePointEvent.apply(this,arguments),t.allowPointSelect=e}else tZ().prototype.firePointEvent.apply(this,arguments)}select(){let t=this.series.chart;this.isParentNode?(t.getSelectedPoints=t.getSelectedParentNodes,tZ().prototype.select.apply(this,arguments),t.getSelectedPoints=e6().prototype.getSelectedPoints):tZ().prototype.select.apply(this,arguments)}},{isNumber:e7}=y(),it={attractive:function(t,e,i){let s=t.getMass(),o=-i.x*e*this.diffTemperature,a=-i.y*e*this.diffTemperature;t.fromNode.fixedPosition||(t.fromNode.plotX-=o*s.fromNode/t.fromNode.degree,t.fromNode.plotY-=a*s.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.plotX+=o*s.toNode/t.toNode.degree,t.toNode.plotY+=a*s.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return(e-t)/t},barycenter:function(){let t=this.options.gravitationalConstant||0,e=(this.barycenter.xFactor-(this.box.left+this.box.width)/2)*t,i=(this.barycenter.yFactor-(this.box.top+this.box.height)/2)*t;this.nodes.forEach(function(t){t.fixedPosition||(t.plotX-=e/t.mass/t.degree,t.plotY-=i/t.mass/t.degree)})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.5)},integrate:function(t,e){let i=-t.options.friction,s=t.options.maxSpeed,o=e.prevX,a=e.prevY,r=(e.plotX+e.dispX-o)*i,n=(e.plotY+e.dispY-a)*i,l=Math.abs,h=l(r)/(r||1),p=l(n)/(n||1),d=h*Math.min(s,Math.abs(r)),c=p*Math.min(s,Math.abs(n));e.prevX=e.plotX+e.dispX,e.prevY=e.plotY+e.dispY,e.plotX+=d,e.plotY+=c,e.temperature=t.vectorLength({x:d,y:c})},repulsive:function(t,e,i){let s=e*this.diffTemperature/t.mass/t.degree;t.fixedPosition||(t.plotX+=i.x*s,t.plotY+=i.y*s)},repulsiveForceFunction:function(t,e){return(e-t)/t*(e>t?1:0)}},{noop:ie}=y(),ii={barycenter:function(){let t,e;let i=this.options.gravitationalConstant,s=this.box,o=this.nodes;for(let a of o)this.options.splitSeries&&!a.isParentNode?(t=a.series.parentNode.plotX,e=a.series.parentNode.plotY):(t=s.width/2,e=s.height/2),a.fixedPosition||(a.plotX-=(a.plotX-t)*i/(a.mass*Math.sqrt(o.length)),a.plotY-=(a.plotY-e)*i/(a.mass*Math.sqrt(o.length)))},getK:ie,integrate:it.integrate,repulsive:function(t,e,i,s){let o=e*this.diffTemperature/t.mass/t.degree,a=i.x*o,r=i.y*o;t.fixedPosition||(t.plotX+=a,t.plotY+=r),s.fixedPosition||(s.plotX-=a,s.plotY-=r)},repulsiveForceFunction:function(t,e,i,s){return Math.min(t,(i.marker.radius+s.marker.radius)/2)}},is={attractive:function(t,e,i,s){let o=t.getMass(),a=i.x/s*e,r=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=a*o.fromNode/t.fromNode.degree,t.fromNode.dispY-=r*o.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=a*o.toNode/t.toNode.degree,t.toNode.dispY+=r*o.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let o=s.getDegree(),a=o*(1+o/2);s.dispX+=(e-s.plotX)*t*a/s.degree,s.dispY+=(i-s.plotY)*t*a/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}};class io{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let t=this.box.width/2,e=this.box.height/2;this.nodes[0]=new io({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new io({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new io({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new io({left:this.box.left,top:this.box.top+e,width:t,height:e})}getBoxPosition(t){let e=t.plotXthis.step())):(this.simulation=!1,this.series.forEach(t=>{id(t,"afterSimulation")}))}}stop(){this.simulation&&ir.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=ic(t,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new ia(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if(ip(t))for(let e of(t.call(this),this.nodes))ih(e.prevX)||(e.prevX=e.plotX),ih(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else"circle"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t;let e=this.box,i=this.nodes,s=2*Math.PI/(i.length+1),o=i.filter(function(t){return 0===t.linksTo.length}),a={},r=this.options.initialPositionRadius,n=t=>{for(let e of t.linksFrom||[])a[e.toNode.id]||(a[e.toNode.id]=!0,l.push(e.toNode),n(e.toNode))},l=[];for(let t of o)l.push(t),n(t);if(l.length)for(let t of i)-1===l.indexOf(t)&&l.push(t);else l=i;for(let i=0,o=l.length;i{let e=t*t/Math.PI;return e-Math.floor(e)};for(let a=0,r=i.length;athis.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let o of this.nodes)s===o||s.fixedPosition||(i=this.getDistXY(s,o),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force("repulsive",s,t*o.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force("attractive",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let i=t.radius;t.plotX=il(t.plotX,e.left+i,e.width-i),t.plotY=il(t.plotY,e.top+i,e.height-i)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y:s,absX:Math.abs(i),absY:Math.abs(s)}}}let ig=iu,{addEvent:im,pick:ib}=y();function iy(){let t=this.series,e=[];return t.forEach(t=>{t.parentNode&&t.parentNode.selected&&e.push(t.parentNode)}),e}function ix(){this.allDataPoints&&delete this.allDataPoints}class iP extends ig{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(t){ig.compose(t),e5.integrations.packedbubble=ii,e5.layouts.packedbubble=iP;let e=t.prototype;e.getSelectedParentNodes||(im(t,"beforeRedraw",ix),e.getSelectedParentNodes=iy)}beforeStep(){this.options.marker&&this.series.forEach(t=>{t&&t.calculateParentRadius()})}isStable(){let t=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&t<1e-5||this.temperature<=0}setCircularPositions(){let t=this.box,e=this.nodes,i=2*Math.PI/(e.length+1),s=this.options.initialPositionRadius,o,a,r=0;for(let n of e)this.options.splitSeries&&!n.isParentNode?(o=n.series.parentNode.plotX,a=n.series.parentNode.plotY):(o=t.width/2,a=t.height/2),n.plotX=n.prevX=ib(n.plotX,o+s*Math.cos(n.index||r*i)),n.plotY=n.prevY=ib(n.plotY,a+s*Math.sin(n.index||r*i)),n.dispX=0,n.dispY=0,r++}repulsiveForces(){let t,e,i;let s=this,o=s.options.bubblePadding,a=s.nodes;a.forEach(r=>{r.degree=r.mass,r.neighbours=0,a.forEach(a=>{t=0,r!==a&&!r.fixedPosition&&(s.options.seriesInteraction||r.series===a.series)&&(i=s.getDistXY(r,a),(e=s.vectorLength(i)-(r.marker.radius+a.marker.radius+o))<0&&(r.degree+=.01,r.neighbours++,t=s.repulsiveForce(-e/Math.sqrt(r.neighbours),s.k,r,a)),s.force("repulsive",r,t*a.mass,i,a,e))})})}applyLimitBox(t,e){let i,s;this.options.splitSeries&&!t.isParentNode&&this.options.parentNodeLimit&&(i=this.getDistXY(t,t.series.parentNode),(s=t.series.parentNodeRadius-t.marker.radius-this.vectorLength(i))<0&&s>-2*t.marker.radius&&(t.plotX-=.01*i.x,t.plotY-=.01*i.y)),super.applyLimitBox(t,e)}}e5.layouts.packedbubble=iP;let{merge:iv,syncTimeout:iM}=y(),{animObject:iL}=y();var ik=f(28),iw=f.n(ik);let{deg2rad:iA}=y(),{addEvent:iS,merge:iT,uniqueKey:iC,defined:iN,extend:iX}=y();function iY(t,e){e=iT(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,o=s.textPath,{attributes:a,enabled:r}=e;if(t=t||o&&o.path,o&&o.undo(),t&&r){let e=iS(s,"afterModifyTree",e=>{if(t&&r){let o=t.attr("id");o||t.attr("id",o=iC());let r={x:0,y:0};iN(a.dx)&&(r.dx=a.dx,delete a.dx),iN(a.dy)&&(r.dy=a.dy,delete a.dy),s.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:iX(a,{"text-anchor":a.textAnchor,href:`${i}#${o}`}),children:n}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function iI(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),a=o-s,r=RegExp('(|]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(r,"").split(/]*>/),l=n.length,h=(t,e)=>{let{x:o,y:r}=e,n=(i.getRotationOfChar(t)-90)*iA,l=Math.cos(n),h=Math.sin(n);return[[o-a*l,r-a*h],[o+s*l,r+s*h]]};for(let e=0,s=0;s{this.deferDataLabels=!1},t?iL(t.animation).defer:0):this.deferDataLabels=!1}},{addEvent:iW,clamp:iF,defined:iG,extend:iq,fireEvent:iV,isArray:i_,isNumber:iU,merge:iK,pick:iZ}=y();({compose:function(t){iS(t,"afterGetBBox",iI),iS(t,"beforeAddingDataLabel",iR);let e=t.prototype;e.setTextPath||(e.setTextPath=iY)}}).compose(iw());class ij extends iO{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(t,e,i){iO.compose(t,e,i),eZ.compose(e),iP.compose(e)}accumulateAllPoints(){let t=this.chart,e=[];for(let i of t.series)if(i.is("packedbubble")&&i.reserveSpace()){let t=i.getColumn("value");for(let s=0;s{t.mass=2,t.degree=1,t.collisionNmb=1}),a.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),a.addElementsToCollection([this],a.series),a.addElementsToCollection(this.points,a.nodes)}addSeriesLayout(){let t=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},e=t.type||"packedbubble",i=this.chart.graphLayoutsStorage,s=this.chart.graphLayoutsLookup,o=iK(t,t.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation}),a=i[e+"-series"];a||(i[e+"-series"]=a=new e5.layouts[e],a.init(o),s.splice(a.index,0,a)),this.parentNodeLayout=a,this.createParentNodes()}calculateParentRadius(){let t=this.seriesBox();this.parentNodeRadius=iF(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,t?Math.max(Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let t=this.chart.series,e=this.options.zMin,i=this.options.zMax,s=1/0,o=-1/0;return e&&i?[e,i]:(t.forEach(t=>{t.getColumn("value").forEach(t=>{iG(t)&&(t>o&&(o=t),t{this.parentNodeMass+=Math.PI*Math.pow(t.marker.radius,2)}),this.calculateParentRadius(),i.nodes.forEach(t=>{t.seriesIndex===this.index&&(o=!0)}),i.setArea(0,0,e.plotWidth,e.plotHeight),o||(a||(a=new t(this,{mass:this.parentNodeRadius/2,marker:r,dataLabels:{inside:!1},states:{normal:{marker:r},hover:{marker:r}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(a.plotX=this.parentNode.plotX,a.plotY=this.parentNode.plotY),this.parentNode=a,i.addElementsToCollection([this],i.series),i.addElementsToCollection([a],i.nodes))}deferLayout(){let t=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),t.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(t=>{t.removeElementFromCollection(this,t.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),iD.destroy.apply(this,arguments)}drawDataLabels(){!this.deferDataLabels&&(iD.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",iD.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;let t=this.chart,e=this.layout.options.parentNodeOptions.marker,i={fill:e.fillColor||iE(this.color).brighten(.4).get(),opacity:e.fillOpacity,stroke:e.lineColor||this.color,"stroke-width":iZ(e.lineWidth,this.options.lineWidth)},s={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,t.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&iG(this.parentNode.plotX)&&iG(this.parentNode.plotY)&&iG(this.parentNodeRadius)&&(s=iK({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},i),this.parentNode.graphic||(this.graph=this.parentNode.graphic=t.renderer.symbol(i.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(s))}drawTracker(){let t;let e=this.parentNode;super.drawTracker(),e&&(t=i_(e.dataLabels)?e.dataLabels:e.dataLabel?[e.dataLabel]:[],e.graphic&&(e.graphic.element.point=e),t.forEach(t=>{(t.div||t.element).point=e}))}getPointRadius(){let t,e,i,s;let o=this.chart,a=o.plotWidth,r=o.plotHeight,n=this.options,l=n.useSimulation,h=Math.min(a,r),p={},d=[],c=o.allDataPoints||[],u=c.length;["minSize","maxSize"].forEach(t=>{let e=parseInt(n[t],10),i=/%$/.test(n[t]);p[t]=i?h*e/100:e*Math.sqrt(u)}),o.minRadius=t=p.minSize/Math.sqrt(u),o.maxRadius=e=p.maxSize/Math.sqrt(u);let g=l?this.calculateZExtremes():[t,e];c.forEach((o,a)=>{i=l?iF(o[2],g[0],g[1]):o[2],0===(s=this.getRadius(g[0],g[1],t,e,i))&&(s=null),c[a][2]=s,d.push(s)}),this.radii=d}init(){return iD.init.apply(this,arguments),iB.call(this),this.eventsToUnbind.push(iW(this,"updatedData",function(){this.chart.series.forEach(t=>{t.type===this.type&&(t.isDirty=!0)},this)})),this}onMouseUp(t){if(t.fixedPosition&&!t.removed){let e;let i=this.layout,s=this.parentNodeLayout;s&&i.options.dragBetweenSeries&&s.nodes.forEach(s=>{t&&t.marker&&s!==t.series.parentNode&&(e=i.getDistXY(t,s),i.vectorLength(e)-s.marker.radius-t.marker.radius<0&&(s.series.addPoint(iK(t.options,{plotX:t.plotX,plotY:t.plotY}),!1),i.removeElementFromCollection(t,i.nodes),t.remove()))}),eZ.onMouseUp.apply(this,arguments)}}placeBubbles(t){let e=this.checkOverlap,i=this.positionBubble,s=[],o=1,a=0,r=0,n,l=[],h,p=t.sort((t,e)=>e[2]-t[2]);if(p.length){if(s.push([[0,0,p[0][2],p[0][3],p[0][4]]]),p.length>1)for(s.push([[0,0-p[1][2]-p[0][2],p[1][2],p[1][3],p[1][4]]]),h=2;h1&&s[o-1][r+1]&&e(n,s[o-1][r+1])?(r++,s[o].push(i(s[o][a],s[o-1][r],p[h])),a++):(a++,s[o].push(n));this.chart.stages=s,this.chart.rawPositions=[].concat.apply([],s),this.resizeRadius(),l=this.chart.rawPositions}return l}pointAttribs(t,e){let i=this.options,s=t&&t.isParentNode,o=i.marker;s&&i.layoutAlgorithm&&i.layoutAlgorithm.parentNodeOptions&&(o=i.layoutAlgorithm.parentNodeOptions.marker);let a=o.fillOpacity,r=iD.pointAttribs.call(this,t,e);return 1!==a&&(r["fill-opacity"]=a),r}positionBubble(t,e,i){let s=Math.asin,o=Math.acos,a=Math.pow,r=Math.abs,n=(0,Math.sqrt)(a(t[0]-e[0],2)+a(t[1]-e[1],2)),l=o((a(n,2)+a(i[2]+e[2],2)-a(i[2]+t[2],2))/(2*(i[2]+e[2])*n)),h=s(r(t[0]-e[0])/n),p=(t[1]-e[1]<0?0:Math.PI)+l+h*((t[0]-e[0])*(t[1]-e[1])<0?1:-1),d=Math.cos(p),c=Math.sin(p);return[e[0]+(e[2]+i[2])*c,e[1]-(e[2]+i[2])*d,i[2],i[3],i[4]]}render(){let t=[];iD.render.apply(this,arguments),!this.options.dataLabels.allowOverlap&&(this.data.forEach(e=>{i_(e.dataLabels)&&e.dataLabels.forEach(e=>{t.push(e)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(t))}resizeRadius(){let t,e,i,s,o;let a=this.chart,r=a.rawPositions,n=Math.min,l=Math.max,h=a.plotLeft,p=a.plotTop,d=a.plotHeight,c=a.plotWidth;for(let a of(t=i=Number.POSITIVE_INFINITY,e=s=Number.NEGATIVE_INFINITY,r))o=a[2],t=n(t,a[0]-o),e=l(e,a[0]+o),i=n(i,a[1]-o),s=l(s,a[1]+o);let u=[e-t,s-i],g=[(c-h)/u[0],(d-p)/u[1]],f=n.apply([],g);if(Math.abs(f-1)>1e-10){for(let t of r)t[2]*=f;this.placeBubbles(r)}else a.diffY=d/2+p-i-(s-i)/2,a.diffX=c/2+h-t-(e-t)/2}seriesBox(){let t;let e=this.chart,i=this.data,s=Math.max,o=Math.min,a=[e.plotLeft,e.plotLeft+e.plotWidth,e.plotTop,e.plotTop+e.plotHeight];return i.forEach(e=>{iG(e.plotX)&&iG(e.plotY)&&e.marker.radius&&(t=e.marker.radius,a[0]=o(a[0],e.plotX-t),a[1]=s(a[1],e.plotX+t),a[2]=o(a[2],e.plotY-t),a[3]=s(a[3],e.plotY+t))}),iU(a.width/a.height)?a:null}setVisible(){let t=this;iD.setVisible.apply(t,arguments),t.parentNodeLayout&&t.graph?t.visible?(t.graph.show(),t.parentNode.dataLabel&&t.parentNode.dataLabel.show()):(t.graph.hide(),t.parentNodeLayout.removeElementFromCollection(t.parentNode,t.parentNodeLayout.nodes),t.parentNode.dataLabel&&t.parentNode.dataLabel.hide()):t.layout&&(t.visible?t.layout.addElementsToCollection(t.points,t.layout.nodes):t.points.forEach(e=>{t.layout.removeElementFromCollection(e,t.layout.nodes)}))}translate(){let t,e,i;let s=this.chart,o=this.data,a=this.index,r=this.options.useSimulation;for(let n of(this.generatePoints(),iG(s.allDataPoints)||(s.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),r?i=s.allDataPoints:(i=this.placeBubbles(s.allDataPoints),this.options.draggable=!1),i))n[3]===a&&(t=o[n[4]],e=iZ(n[2],void 0),r||(t.plotX=n[0]-s.plotLeft+s.diffX,t.plotY=n[1]-s.plotTop+s.diffY),iU(e)&&(t.marker=iq(t.marker,{radius:e,width:2*e,height:2*e}),t.radius=e));r&&this.deferLayout(),iV(this,"afterTranslate")}}ij.defaultOptions=iK(iO.defaultOptions,{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return e7(e)?t(e,-1):""},parentNodeFormatter:function(){return this.name||""},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}),iq(ij.prototype,{pointClass:e9,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:iH,alignDataLabel:iD.alignDataLabel,indexateNodes:iz,onMouseDown:eZ.onMouseDown,onMouseMove:eZ.onMouseMove,redrawHalo:eZ.redrawHalo,searchPoint:iz}),P().registerSeriesType("packedbubble",ij);let{noop:i$}=y(),{area:iQ,line:iJ,scatter:i0}=P().seriesTypes,{extend:i1,merge:i2}=y();class i3 extends i0{getGraphPath(){let t=iJ.prototype.getGraphPath.call(this),e=t.length+1;for(;e--;)(e===t.length||"M"===t[e][0])&&e>0&&t.splice(e,0,["Z"]);return this.areaPath=t,t}drawGraph(){this.options.fillColor=this.color,iQ.prototype.drawGraph.call(this)}}i3.defaultOptions=i2(i0.defaultOptions,{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}),i1(i3.prototype,{type:"polygon",drawTracker:iJ.prototype.drawTracker,setStackedPoints:i$}),P().registerSeriesType("polygon",i3);let i5={circular:{gridLineWidth:1,labels:{align:void 0,x:0,y:void 0},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},radial:{gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",padding:5,x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},radialGauge:{endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2}},{defaultOptions:i8}=y(),{composed:i6,noop:i4}=y(),{addEvent:i9,correctFloat:i7,defined:st,extend:se,fireEvent:si,isObject:ss,merge:so,pick:sa,pushUnique:sr,relativeLength:sn,wrap:sl}=y();!function(t){function e(){this.autoConnect=this.isCircular&&void 0===sa(this.userMax,this.options.max)&&i7(this.endAngleRad-this.startAngleRad)===i7(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)}function i(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(t=>this.ticks[t]&&this.ticks[t].label).filter(t=>!!t)}}function s(){return i4}function o(t,e,i){let s=this.pane.center,o=t.value,a,r,n;return this.isCircular?(st(o)?t.point&&(t.point.shapeArgs||{}).start&&(o=this.chart.inverted?this.translate(t.point.rectPlotY,!0):t.point.x):(r=t.chartX||0,n=t.chartY||0,o=this.translate(Math.atan2(n-i,r-e)-this.startAngleRad,!0)),r=(a=this.getPosition(o)).x,n=a.y):(st(o)||(r=t.chartX,n=t.chartY),st(r)&&st(n)&&(i=s[1]+this.chart.plotTop,o=this.translate(Math.min(Math.sqrt(Math.pow(r-e,2)+Math.pow(n-i,2)),s[2]/2)-s[3]/2,!0))),[o,r||0,n||0]}function a(t,e,i){let s=this.pane.center,o=this.chart,a=this.left||0,r=this.top||0,n,l=sa(e,s[2]/2-this.offset),h;return void 0===i&&(i=this.horiz?0:this.center&&-this.center[3]/2),i&&(l+=i),this.isCircular||void 0!==e?((h=this.chart.renderer.symbols.arc(a+s[0],r+s[1],l,l,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})).xBounds=[a+s[0]],h.yBounds=[r+s[1]-l]):(n=this.postTranslate(this.angleRad,l),h=[["M",this.center[0]+o.plotLeft,this.center[1]+o.plotTop],["L",n.x,n.y]]),h}function r(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function n(t,e,i){let s=this.chart,o=t=>{if("string"==typeof t){let e=parseInt(t,10);return d.test(t)&&(e=e*n/100),e}return t},a=this.center,r=this.startAngleRad,n=a[2]/2,l=Math.min(this.offset,0),h=this.left||0,p=this.top||0,d=/%$/,c=this.isCircular,u,g,f,m,b,y,x=sa(o(i.outerRadius),n),P=o(i.innerRadius),v=sa(o(i.thickness),10);if("polygon"===this.options.gridLineInterpolation)y=this.getPlotLinePath({value:t}).concat(this.getPlotLinePath({value:e,reverse:!0}));else{t=Math.max(t,this.min),e=Math.min(e,this.max);let o=this.translate(t),n=this.translate(e);c||(x=o||0,P=n||0),"circle"!==i.shape&&c?(u=r+(o||0),g=r+(n||0)):(u=-Math.PI/2,g=1.5*Math.PI,b=!0),x-=l,v-=l,y=s.renderer.symbols.arc(h+a[0],p+a[1],x,x,{start:Math.min(u,g),end:Math.max(u,g),innerR:sa(P,x-v),open:b,borderRadius:i.borderRadius}),c&&(f=(g+u)/2,m=h+a[0]+a[2]/2*Math.cos(f),y.xBounds=f>-Math.PI/2&&f-Math.PI&&f<0||f>Math.PI?-10:10)}return y}function l(t){let e=this.pane.center,i=this.chart,s=i.inverted,o=t.reverse,a=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},r=a.innerRadius||"0%",n=a.outerRadius||"100%",l=e[0]+i.plotLeft,h=e[1]+i.plotTop,p=this.height,d=t.isCrosshair,c=e[3]/2,u=t.value,g,f,m,b,y,x,P,v,M,L=this.getPosition(u),k=L.x,w=L.y;if(d&&(u=(v=this.getCrosshairPosition(t,l,h))[0],k=v[1],w=v[2]),this.isCircular)f=Math.sqrt(Math.pow(k-l,2)+Math.pow(w-h,2)),m="string"==typeof r?sn(r,1):r/f,b="string"==typeof n?sn(n,1):n/f,e&&c&&(m<(g=c/f)&&(m=g),bp)&&(u=0),"circle"===this.options.gridLineInterpolation)M=this.getLinePath(0,u,c);else if(M=[],i[s?"yAxis":"xAxis"].forEach(t=>{t.pane===this.pane&&(y=t)}),y){P=y.tickPositions,y.autoConnect&&(P=P.concat([P[0]])),o&&(P=P.slice().reverse()),u&&(u+=c);for(let t=0;tMath.PI&&(a-=t),r>Math.PI&&(r-=t),this.normalizedStartAngleRad=a,this.normalizedEndAngleRad=r}}function u(t){this.isRadial&&(t.align=void 0,t.preventDefault())}function g(){if(this.chart&&this.chart.labelCollectors){let t=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;t>=0&&this.chart.labelCollectors.splice(t,1)}}function f(t){let e;let i=this.chart,o=i.angular,a=i.polar,r=this.isXAxis,n=this.coll,l=t.userOptions.pane||0,h=this.pane=i.pane&&i.pane[l];if("colorAxis"===n){this.isRadial=!1;return}o?(o&&r?(this.isHidden=!0,this.createLabelCollector=s,this.getOffset=i4,this.redraw=M,this.render=M,this.setScale=i4,this.setCategories=i4,this.setTitle=i4):d(this),e=!r):a&&(d(this),e=this.horiz),o||a?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&i.labelCollectors.push(this.labelCollector)):this.isRadial=!1,h&&e&&(h.axis=this),this.isCircular=e}function m(){this.isRadial&&this.beforeSetTickPositions()}function b(t){let e=this.label;if(!e)return;let i=this.axis,s=e.getBBox(),o=i.options.labels,a=(i.translate(this.pos)+i.startAngleRad+Math.PI/2)/Math.PI*180%360,r=Math.round(a),n=st(o.y)?0:-(.3*s.height),l=o.y,h,p=20,d=o.align,c="end",u=r<0?r+360:r,g=u,f=0,m=0;i.isRadial&&(h=i.getPosition(this.pos,i.center[2]/2+sn(sa(o.distance,-25),i.center[2]/2,-i.center[2]/2)),"auto"===o.rotation?e.attr({rotation:a}):st(l)||(l=i.chart.renderer.fontMetrics(e).b-s.height/2),st(d)||(i.isCircular?(s.width>i.len*i.tickInterval/(i.max-i.min)&&(p=0),d=a>p&&a<180-p?"left":a>180+p&&a<360-p?"right":"center"):d="center",e.attr({align:d})),"auto"===d&&2===i.tickPositions.length&&i.isCircular&&(u>90&&u<180?u=180-u:u>270&&u<=360&&(u=540-u),g>180&&g<=360&&(g=360-g),(i.pane.options.startAngle===r||i.pane.options.startAngle===r+360||i.pane.options.startAngle===r-360)&&(c="start"),d=r>=-90&&r<=90||r>=-360&&r<=-270||r>=270&&r<=360?"start"===c?"right":"left":"start"===c?"left":"right",g>70&&g<110&&(d="center"),u<15||u>=180&&u<195?f=.3*s.height:u>=15&&u<=35?f="start"===c?0:.75*s.height:u>=195&&u<=215?f="start"===c?.75*s.height:0:u>35&&u<=90?f="start"===c?-(.25*s.height):s.height:u>215&&u<=270&&(f="start"===c?s.height:-(.25*s.height)),g<15?m="start"===c?-(.15*s.height):.15*s.height:g>165&&g<=180&&(m="start"===c?.15*s.height:-(.15*s.height)),e.attr({align:d}),e.translate(m,f+n)),t.pos.x=h.x+(o.x||0),t.pos.y=h.y+(l||0))}function x(t){this.axis.getPosition&&se(t.pos,this.axis.getPosition(this.pos))}function P({options:e}){e.xAxis&&so(!0,t.radialDefaultOptions.circular,e.xAxis),e.yAxis&&so(!0,t.radialDefaultOptions.radialGauge,e.yAxis)}function v(t,e){let i=this.chart,s=this.center;return t=this.startAngleRad+t,{x:i.plotLeft+s[0]+Math.cos(t)*e,y:i.plotTop+s[1]+Math.sin(t)*e}}function M(){this.isDirty=!1}function L(){let t,e;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),t=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(e=this.postTranslate(this.angleRad,t[3]/2),t[0]=e.x-this.chart.plotLeft,t[1]=e.y-this.chart.plotTop),this.len=this.width=this.height=(t[2]-t[3])*sa(this.sector,1)/2)}function k(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.isCircular?this.transA=(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.transA=(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.isXAxis?this.minPixelPadding=this.transA*this.minPointOffset:this.minPixelPadding=0)}function w(e){let{coll:i}=this,{angular:s,inverted:o,polar:a}=this.chart,r={};s?this.isXAxis||(r=so(i8.yAxis,t.radialDefaultOptions.radialGauge)):a&&(r=this.horiz?so(i8.xAxis,t.radialDefaultOptions.circular):so("xAxis"===i?i8.xAxis:i8.yAxis,t.radialDefaultOptions.radial)),o&&"yAxis"===i&&(r.stackLabels=ss(i8.yAxis,!0)?i8.yAxis.stackLabels:{},r.reversedStacks=!0);let n=this.options=so(r,e);n.plotBands||(n.plotBands=[]),si(this,"afterSetOptions")}function A(t,e,i,s,o,a,r){let n;let l=this.axis;return l.isRadial?["M",e,i,"L",(n=l.getPosition(this.pos,l.center[2]/2+s)).x,n.y]:t.call(this,e,i,s,o,a,r)}t.radialDefaultOptions=so(i5),t.compose=function(t,e){return sr(i6,"Axis.Radial")&&(i9(t,"afterInit",c),i9(t,"autoLabelAlign",u),i9(t,"destroy",g),i9(t,"init",f),i9(t,"initialAxisTranslation",m),i9(e,"afterGetLabelPosition",b),i9(e,"afterGetPosition",x),i9(y(),"setOptions",P),sl(e.prototype,"getMarkPath",A)),t}}(d||(d={}));let sh=d,{animObject:sp}=y(),{composed:sd}=y(),{addEvent:sc,defined:su,find:sg,isNumber:sf,merge:sm,pick:sb,pushUnique:sy,relativeLength:sx,splat:sP,uniqueKey:sv,wrap:sM}=y();function sL(){(this.pane||[]).forEach(t=>{t.render()})}function sk(t){let e=t.args[0].xAxis,i=t.args[0].yAxis,s=t.args[0].chart;e&&i&&("polygon"===i.gridLineInterpolation?(e.startOnTick=!0,e.endOnTick=!0):"polygon"===e.gridLineInterpolation&&s.inverted&&(i.startOnTick=!0,i.endOnTick=!0))}function sw(){this.pane||(this.pane=[]),this.options.pane=sP(this.options.pane||{}),this.options.pane.forEach(t=>{new F(t,this)},this)}function sA(t){let e=t.args.marker,i=this.chart.xAxis[0],s=this.chart.yAxis[0],o=this.chart.inverted,a=o?s:i,r=o?i:s;if(this.chart.polar){t.preventDefault();let i=(e.attr?e.attr("start"):e.start)-a.startAngleRad,s=e.attr?e.attr("r"):e.r,o=(e.attr?e.attr("end"):e.end)-a.startAngleRad,n=e.attr?e.attr("innerR"):e.innerR;t.result.x=i+a.pos,t.result.width=o-i,t.result.y=r.len+r.pos-s,t.result.height=s-n}}function sS(t){let e=this.chart;if(e.polar&&e.hoverPane&&e.hoverPane.axis){t.preventDefault();let i=e.hoverPane.center,s=e.mouseDownX||0,o=e.mouseDownY||0,a=t.args.chartY,r=t.args.chartX,n=2*Math.PI,l=e.hoverPane.axis.startAngleRad,h=e.hoverPane.axis.endAngleRad,p=e.inverted?e.xAxis[0]:e.yAxis[0],d={},c="arc";if(d.x=i[0]+e.plotLeft,d.y=i[1]+e.plotTop,this.zoomHor){let t=l>0?h-l:Math.abs(l)+Math.abs(h),u=Math.atan2(o-e.plotTop-i[1],s-e.plotLeft-i[0])-l,g=Math.atan2(a-e.plotTop-i[1],r-e.plotLeft-i[0])-l;d.r=i[2]/2,d.innerR=i[3]/2,u<=0&&(u+=n),g<=0&&(g+=n),gh+(n-t)/2&&(g=u,u=l<=0?l:0);let f=d.start=Math.max(u+l,l),m=d.end=Math.min(g+l,h);if("polygon"===p.options.gridLineInterpolation){let t=e.hoverPane.axis,s=f-t.startAngleRad+t.pos,o=p.getPlotLinePath({value:p.max}),a=t.toValue(s),r=t.toValue(s+(m-f));if(ai[2]/2&&(p=i[2]/2),nt.max?(s[o].isNull=!0,s[o].plotY=NaN):s[o].isNull=s[o].isValid&&!s[o].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(sc(this,"afterRender",function(){let t;i.polar&&!1!==this.options.clip&&(t=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2}):this.clipCircle=function(t,e,i,s,o){let a=sv(),r=t.createElement("clipPath").attr({id:a}).add(t.defs),n=o?t.arc(e,i,s,o,0,2*Math.PI).add(r):t.circle(e,i,s).add(r);return n.id=a,n.clipPath=r,n}(i.renderer,t[0],t[1],t[2]/2,t[3]/2),this.group.clip(this.clipCircle),this.setClip=y().noop)})))}}function sN(t){let e=this.chart,i=this.xAxis,s=this.yAxis,o=i.pane&&i.pane.center,a=t.chartX-(o&&o[0]||0)-e.plotLeft,r=t.chartY-(o&&o[1]||0)-e.plotTop,n=e.inverted?{clientX:t.chartX-s.pos,plotY:t.chartY-i.pos}:{clientX:180+-180/Math.PI*Math.atan2(a,r)};return this.searchKDTree(n)}function sX(t,e,i,s){let o=s.tickInterval,a=s.tickPositions,r=sg(a,t=>t>=i),n=sg([...a].reverse(),t=>t<=e);return su(r)||(r=a[a.length-1]),su(n)||(n=a[0],r+=o,t[0][0]="L",t.unshift(t[t.length-3])),(t=t.slice(a.indexOf(n),a.indexOf(r)+1))[0][0]="M",t}function sY(t,e){return sg(this.pane||[],t=>t.options.id===e)||t.call(this,e)}function sI(t,e,i,s,o,a){let r,n,l;let h=this.chart,p=sb(s.inside,!!this.options.stacking);if(h.polar){if(r=e.rectPlotX/Math.PI*180,h.inverted)this.forceDL=h.isInsidePlot(e.plotX,e.plotY),p&&e.shapeArgs?(n=e.shapeArgs,o=sm(o,{x:(l=this.yAxis.postTranslate(((n.start||0)+(n.end||0))/2-this.xAxis.startAngleRad,e.barX+e.pointWidth/2)).x-h.plotLeft,y:l.y-h.plotTop})):e.tooltipPos&&(o=sm(o,{x:e.tooltipPos[0],y:e.tooltipPos[1]})),s.align=sb(s.align,"center"),s.verticalAlign=sb(s.verticalAlign,"middle");else{var d;let t,e;null===(d=s).align&&(t=r>20&&r<160?"left":r>200&&r<340?"right":"center",d.align=t),null===d.verticalAlign&&(e=r<45||r>315?"bottom":r>135&&r<225?"top":"middle",d.verticalAlign=e),s=d}M().prototype.alignDataLabel.call(this,e,i,s,o,a),this.isRadialBar&&e.shapeArgs&&e.shapeArgs.start===e.shapeArgs.end?i.hide():i.show()}else t.call(this,e,i,s,o,a)}function sR(){let t=this.options,e=t.stacking,i=this.chart,s=this.xAxis,o=this.yAxis,a=o.reversed,r=o.center,n=s.startAngleRad,l=s.endAngleRad-n,h=t.threshold,p=0,d,c,u,g,f,m=0,b=0,x,P,v,M,L,k,w,A;if(s.isRadial)for(u=(d=this.points).length,g=o.translate(o.min),f=o.translate(o.max),h=t.threshold||0,i.inverted&&sf(h)&&su(p=o.translate(h))&&(p<0?p=0:p>l&&(p=l),this.translatedThreshold=p+n);u--;){if(k=(c=d[u]).barX,P=c.x,v=c.y,c.shapeType="arc",i.inverted){c.plotY=o.translate(v),e&&o.stacking?(L=o.stacking.stacks[(v<0?"-":"")+this.stackKey],this.visible&&L&&L[P]&&!c.isNull&&(M=L[P].points[this.getStackIndicator(void 0,P,this.index).key],m=o.translate(M[0]),b=o.translate(M[1]),su(m)&&(m=y().clamp(m,0,l)))):(m=p,b=c.plotY),m>b&&(b=[m,m=b][0]),a?b>g?b=g:mg||bf?b=f:(bf)&&(m=b=0),o.min>o.max&&(m=b=a?l:0),m+=n,b+=n,r&&(c.barX=k+=r[3]/2),w=Math.max(k,0),A=Math.max(k+c.pointWidth,0);let i=t.borderRadius,s=sx(("object"==typeof i?i.radius:i)||0,A-w);c.shapeArgs={x:r[0],y:r[1],r:A,innerR:w,start:m,end:b,borderRadius:s},c.opacity=m===b?0:void 0,c.plotY=(su(this.translatedThreshold)&&(mr[1])}}function sE(t,e){let i,s;let o=this;if(this.chart.polar){e=e||this.points;for(let t=0;t{void 0===t.polarPlotY&&o.polar.toXY(t)})}let a=t.apply(this,[].slice.call(arguments,1));return s&&e.pop(),a}function sz(t,e){let i=this.chart,s={xAxis:[],yAxis:[]};return i.polar?i.axes.forEach(t=>{if("colorAxis"===t.coll)return;let o=t.isXAxis,a=t.center,r=e.chartX-a[0]-i.plotLeft,n=e.chartY-a[1]-i.plotTop;s[o?"xAxis":"yAxis"].push({axis:t,value:t.translate(o?Math.PI-Math.atan2(r,n):Math.sqrt(Math.pow(r,2)+Math.pow(n,2)),!0)})}):s=t.call(this,e),s}function sD(t,e){this.chart.polar||t.call(this,e)}function sO(t,e){let i=this,s=this.chart,o=this.group,a=this.markerGroup,r=this.xAxis&&this.xAxis.center,n=s.plotLeft,l=s.plotTop,h=this.options.animation,p,d,c,u,g,f;s.polar?i.isRadialBar?e||(i.startAngleRad=sb(i.translatedThreshold,i.xAxis.startAngleRad),y().seriesTypes.pie.prototype.animate.call(i,e)):(h=sp(h),i.is("column")?e||(d=r[3]/2,i.points.forEach(t=>{c=t.graphic,g=(u=t.shapeArgs)&&u.r,f=u&&u.innerR,c&&u&&(c.attr({r:d,innerR:d}),c.animate({r:g,innerR:f},i.options.animation))})):e?(p={translateX:r[0]+n,translateY:r[1]+l,scaleX:.001,scaleY:.001},o.attr(p),a&&a.attr(p)):(p={translateX:n,translateY:l,scaleX:1,scaleY:1},o.animate(p,h),a&&a.animate(p,h))):t.call(this,e)}function sH(t,e,i,s){let o,a;if(this.chart.polar){if(s){let t=(a=function t(e,i,s,o){let a,r,n,l,h,p;let d=o?1:0,c=(a=i>=0&&i<=e.length-1?i:i<0?e.length-1+i:0)-1<0?e.length-(1+d):a-1,u=a+1>e.length-1?d:a+1,g=e[c],f=e[u],m=g.plotX,b=g.plotY,y=f.plotX,x=f.plotY,P=e[a].plotX,v=e[a].plotY;r=(1.5*P+m)/2.5,n=(1.5*v+b)/2.5,l=(1.5*P+y)/2.5,h=(1.5*v+x)/2.5;let M=Math.sqrt(Math.pow(r-P,2)+Math.pow(n-v,2)),L=Math.sqrt(Math.pow(l-P,2)+Math.pow(h-v,2)),k=Math.atan2(n-v,r-P);p=Math.PI/2+(k+Math.atan2(h-v,l-P))/2,Math.abs(k-p)>Math.PI/2&&(p-=Math.PI),r=P+Math.cos(p)*M,n=v+Math.sin(p)*M;let w={rightContX:l=P+Math.cos(Math.PI+p)*L,rightContY:h=v+Math.sin(Math.PI+p)*L,leftContX:r,leftContY:n,plotX:P,plotY:v};return s&&(w.prevPointCont=t(e,c,!1,o)),w}(e,s,!0,this.connectEnds)).prevPointCont&&a.prevPointCont.rightContX,i=a.prevPointCont&&a.prevPointCont.rightContY;o=["C",sf(t)?t:a.plotX,sf(i)?i:a.plotY,sf(a.leftContX)?a.leftContX:a.plotX,sf(a.leftContY)?a.leftContY:a.plotY,a.plotX,a.plotY]}else o=["M",i.plotX,i.plotY]}else o=t.call(this,e,i,s);return o}function sB(t,e,i=this.plotY){if(!this.destroyed){let{plotX:s,series:o}=this,{chart:a}=o;return a.polar&&sf(s)&&sf(i)?[s+(e?a.plotLeft:0),i+(e?a.plotTop:0)]:t.call(this,e,i)}}class sW{static compose(t,e,i,s,o,a,r,n,l,h){if(F.compose(e,i),sh.compose(t,o),sy(sd,"Polar")){let t=e.prototype,o=a.prototype,p=i.prototype,d=s.prototype;if(sc(e,"afterDrawChartBox",sL),sc(e,"createAxes",sw),sc(e,"init",sk),sM(t,"get",sY),sM(p,"getCoordinates",sz),sM(p,"pinch",sD),sc(i,"getSelectionMarkerAttrs",sS),sc(i,"getSelectionBox",sA),sc(s,"afterInit",sT),sc(s,"afterTranslate",sC,{order:2}),sc(s,"afterColumnTranslate",sR,{order:4}),sM(d,"animate",sO),sM(o,"pos",sB),n){let t=n.prototype;sM(t,"alignDataLabel",sI),sM(t,"animate",sO)}if(l&&sM(l.prototype,"getGraphPath",sE),h){let t=h.prototype;sM(t,"getPointSpline",sH),r&&(r.prototype.getPointSpline=t.getPointSpline)}}}constructor(t){this.series=t}arc(t,e,i,s){let o=this.series,a=o.xAxis.center,r=o.yAxis.len,n=a[3]/2,l=r-e+n,h=r-sb(t,r)+n;return o.yAxis.reversed&&(l<0&&(l=n),h<0&&(h=n)),{x:a[0],y:a[1],r:l,innerR:h,start:i,end:s}}toXY(t){let e=this.series,i=e.chart,s=e.xAxis,o=e.yAxis,a=t.plotX,r=i.inverted,n=t.y,l=t.plotY,h=r?a:o.len-l,p;if(r&&e&&!e.isRadialBar&&(t.plotY=l=sf(n)?o.translate(n):0),t.rectPlotX=a,t.rectPlotY=l,o.center&&(h+=o.center[3]/2),sf(l)){let e=r?o.postTranslate(l,h):s.postTranslate(a,h);t.plotX=t.polarPlotX=e.x-i.plotLeft,t.plotY=t.polarPlotY=e.y-i.plotTop}e.kdByAngle?((p=(a/Math.PI*180+s.pane.options.startAngle)%360)<0&&(p+=360),t.clientX=p):t.clientX=t.plotX}}var sF=f(184),sG=f.n(sF);let{composed:sq}=y(),{addEvent:sV,objectEach:s_,pushUnique:sU}=y();!function(t){function e(){let t=this.waterfall.stacks;t&&(t.changed=!1,delete t.alreadyChanged)}function i(){let t=this.options.stackLabels;t&&t.enabled&&this.waterfall.stacks&&this.waterfall.renderStackTotals()}function s(){this.waterfall||(this.waterfall=new a(this))}function o(){let t=this.axes;for(let e of this.series)if(e.options.stacking){for(let e of t)e.isXAxis||(e.waterfall.stacks.changed=!0);break}}t.compose=function(t,a){sU(sq,"Axis.Waterfall")&&(sV(t,"init",s),sV(t,"afterBuildStacks",e),sV(t,"afterRender",i),sV(a,"beforeRedraw",o))};class a{constructor(t){this.axis=t,this.stacks={changed:!1}}renderStackTotals(){let t=this.axis,e=t.waterfall.stacks,i=t.stacking&&t.stacking.stackTotalGroup,s=new(sG())(t,t.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=s,i&&s_(e,t=>{s_(t,(t,e)=>{s.total=t.stackTotal,s.x=+e,t.label&&(s.label=t.label),sG().prototype.render.call(s,i),t.label=s.label,delete s.label})}),s.total=null}}t.Composition=a}(c||(c={}));let sK=c,{isNumber:sZ}=y();class sj extends tc().prototype.pointClass{getClassName(){let t=tZ().prototype.getClassName.call(this);return this.isSum?t+=" highcharts-sum":this.isIntermediateSum&&(t+=" highcharts-intermediate-sum"),t}isValid(){return sZ(this.y)||this.isSum||!!this.isIntermediateSum}}let{column:s$,line:sQ}=P().seriesTypes,{addEvent:sJ,arrayMax:s0,arrayMin:s1,correctFloat:s2,crisp:s3,extend:s5,isNumber:s8,merge:s6,objectEach:s4,pick:s9}=y();function s7(t,e){return Object.hasOwnProperty.call(t,e)}class ot extends s${generatePoints(){s$.prototype.generatePoints.apply(this);let t=this.getColumn("y",!0);for(let e=0,i=this.points.length;e0?i:void 0);let s=s$.prototype.pointAttribs.call(this,t,e);return delete s.dashstyle,s}getGraphPath(){return[["M",0,0]]}getCrispPath(){let t=this.data.filter(t=>s8(t.y)),e=this.yAxis,i=t.length,s=this.graph?.strokeWidth()||0,o=this.xAxis.reversed,a=this.yAxis.reversed,r=this.options.stacking,n=[];for(let l=1;l0?-d.height:0;if(c&&d&&i){let t;let p=c[l-1];if(r){let i=p.connectorThreshold;t=s3(e.translate(i,!1,!0,!1,!0)+(a?u:0),s)}else t=s3(d.y+(h.minPointLengthOffset||0),s);n.push(["M",(d.x||0)+(o?0:d.width||0),t],["L",(i.x||0)+(o&&i.width||0),t])}if(d&&n.length&&(!r&&p<0&&!a||p>0&&a)){let t=n[n.length-2];t&&"number"==typeof t[2]&&(t[2]+=d.height||0);let e=n[n.length-1];e&&"number"==typeof e[2]&&(e[2]+=d.height||0)}}return n}drawGraph(){sQ.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(t){let e=this.options,i=t.waterfall?.stacks,s=e.threshold||0,o=this.stackKey,a=this.getColumn("x"),r=this.getColumn("y"),n=a.length,l=s,h=l,p,d=0,c=0,u=0,g,f,m,b,y,x,P,v,M=(t,e,i,s)=>{if(p){if(g)for(;iP.indexOf(o)&&(v=!0),i[o]||(i[o]={});let t=i[o];if(t)for(let i=0;i=0?p.posTotal+=y:p.negTotal+=y,b=e.data[i],f=p.absolutePos=p.posTotal,m=p.absoluteNeg=p.negTotal,p.stackTotal=f+m,g=p.stackState.length,b&&b.isIntermediateSum?(M(u,c,0,u),u=c,c=s,l^=h,h^=l,l^=h):b&&b.isSum?(M(s,d,g,0),l=s):(M(l,y,0,d),b&&(d+=y,c+=y)),p.stateIndex++,p.threshold=l,l+=p.stackTotal;i.changed=!1,i.alreadyChanged||(i.alreadyChanged=[]),i.alreadyChanged.push(o)}}getExtremes(){let t,e,i;let s=this.options.stacking;return s?(t=this.yAxis.waterfall.stacks,e=this.stackedYNeg=[],i=this.stackedYPos=[],"overlap"===s?s4(t[this.stackKey],function(t){e.push(s1(t.stackState)),i.push(s0(t.stackState))}):s4(t[this.stackKey],function(t){e.push(t.negTotal+t.threshold),i.push(t.posTotal+t.threshold)}),{dataMin:s1(e),dataMax:s0(i)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}ot.defaultOptions=s6(s$.defaultOptions,{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}),ot.compose=sK.compose,s5(ot.prototype,{pointValKey:"y",showLine:!0,pointClass:sj}),sJ(ot,"afterColumnTranslate",function(){let{options:t,points:e,yAxis:i}=this,s=s9(t.minPointLength,5),o=s/2,a=t.threshold||0,r=t.stacking,n=i.waterfall.stacks[this.stackKey],l=this.getColumn("y",!0),h=a,p=a,d,c,u,g;for(let t=0;t=0?c:c-x,s7(e,"absolutePos")&&delete e.absolutePos,s7(e,"absoluteNeg")&&delete e.absoluteNeg):(x>=0?(c=e.threshold+e.posTotal,e.posTotal-=x,d=c):(c=e.threshold+e.negTotal,e.negTotal-=x,d=c-x),!e.posTotal&&s8(e.absolutePos)&&s7(e,"absolutePos")&&(e.posTotal=e.absolutePos,delete e.absolutePos),!e.negTotal&&s8(e.absoluteNeg)&&s7(e,"absoluteNeg")&&(e.negTotal=e.absoluteNeg,delete e.absoluteNeg)),f.isSum||(e.connectorThreshold=e.threshold+e.stackTotal),i.reversed?(u=x>=0?d-x:d+x,g=d):(u=d,g=d-x),f.below=u<=a,b.y=i.translate(u,!1,!0,!1,!0),b.height=Math.abs(b.y-i.translate(g,!1,!0,!1,!0));let s=i.waterfall.dummyStackItem;s&&(s.x=t,s.label=n[t].label,s.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[t],this.stackedYPos[t],void 0,this.xAxis))}}else d=Math.max(p,p+x)+y[0],b.y=i.translate(d,!1,!0,!1,!0),f.isSum?(b.y=i.translate(y[1],!1,!0,!1,!0),b.height=Math.min(i.translate(y[0],!1,!0,!1,!0),i.len)-b.y,f.below=y[1]<=a):f.isIntermediateSum?(x>=0?(u=y[1]+h,g=h):(u=h,g=y[1]+h),i.reversed&&(u^=g,g^=u,u^=g),b.y=i.translate(u,!1,!0,!1,!0),b.height=Math.abs(b.y-Math.min(i.translate(g,!1,!0,!1,!0),i.len)),h+=y[1],f.below=u<=a):(b.height=m>0?i.translate(p,!1,!0,!1,!0)-b.y:i.translate(p,!1,!0,!1,!0)-i.translate(p-m,!1,!0,!1,!0),p+=m,f.below=p { + const p1Dist = p1[comparisonProp] || 0; + const p2Dist = p2[comparisonProp] || 0; + let ret, flip = false; + if (p1Dist < 0 && p2Dist < 0) { + ret = (p1Dist - (p1.marker?.radius || 0) >= + p2Dist - (p2.marker?.radius || 0)) ? + p1 : + p2; + flip = true; + } + else { + ret = p1Dist < p2Dist ? p1 : p2; + } + return [ret, flip]; + }; + suppliedBSideCheckEvaluator = (a, b, flip) => !flip && (a > b) || (a < b); + return super.searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator); + } } /* * * diff --git a/highcharts.d.ts b/highcharts.d.ts index 81f8965ce6..4d216c118e 100644 --- a/highcharts.d.ts +++ b/highcharts.d.ts @@ -1489,7 +1489,8 @@ export interface AccessibilitySeriesOptions { /** * (Highcharts, Highstock, Highmaps, Gantt) When a series contains more * points than this, we no longer expose information about individual points - * to screen readers. + * to screen readers. Note that the keyboard navigation remains functional, + * but points won't have accessible descriptions unless handled separately. * * Set to `false` to disable. */ @@ -68476,7 +68477,7 @@ export interface PlotTreegraphLevelsDataLabelsOptions { * `ellipsis`, which will keep the text on one line plus it will break * inside long words. */ - style?: CSSObject; + style?: (CSSObject|PlotTreegraphLevelsDataLabelsStyleOptions); /** * (Highcharts) Options for a label text which should follow marker's shape. * Border and background are disabled for a label that follows a path. @@ -68513,617 +68514,337 @@ export interface PlotTreegraphLevelsDataLabelsOptions { */ zIndex?: number; } -export interface PlotTreegraphLinkOptions { - /** - * (Highcharts) The color of the links between nodes. - */ - color?: ColorString; - cursor?: string; - /** - * (Highcharts) The line width of the links connecting nodes, in pixels. - */ - lineWidth?: number; - /** - * (Highcharts) Radius for the rounded corners of the links between nodes. - * Works for `default` link type. - */ - radius?: number; - /** - * (Highcharts) Type of the link shape. - */ - type?: ('curved'|'default'|'straight'); -} /** - * (Highcharts) Options for the _Series on point_ feature. Only `pie` and - * `sunburst` series are supported at this moment. - */ -export interface PlotTreegraphOnPointOptions { - /** - * (Highcharts) Options for the connector in the _Series on point_ feature. - * - * In styled mode, the connector can be styled with the - * `.highcharts-connector-seriesonpoint` class name. - */ - connectorOptions?: (PlotTreegraphOnPointConnectorOptions|SVGAttributes); - /** - * (Highcharts) The `id` of the point that we connect the series to. Only - * points with a given `plotX` and `plotY` values and map points are valid. - */ - id?: string; - /** - * (Highcharts) Options allowing to set a position and an offset of the - * series in the _Series on point_ feature. - */ - position?: (object|PlotTreegraphOnPointPositionOptions); -} -/** - * (Highcharts) A treegraph series is a diagram, which shows a relation between - * ancestors and descendants with a clear parent - child relation. The best - * examples of the dataStructures, which best reflect this chart are e.g. - * genealogy tree or directory structure. - * - * TODO change back the demo path - * - * Configuration options for the series are given in three levels: - * - * 1. Options for all series in a chart are defined in the plotOptions.series - * object. - * - * 2. Options for all `treegraph` series are defined in plotOptions.treegraph. - * - * 3. Options for one single series are given in the series instance array. (see - * online documentation for example) - * - * **TypeScript:** - * - * - the type option must always be set. - * - * - when accessing an array of series, the combined set of all series types is - * represented by Highcharts.SeriesOptionsType . Narrowing down to the specific - * type can be done by checking the `type` property. (see online documentation - * for example) + * (Highcharts) Set options on specific levels. Takes precedence over series + * options, but not point options. */ -export interface PlotTreegraphOptions { - /** - * (Highcharts) Accessibility options for a series. - */ - accessibility?: SeriesAccessibilityOptionsObject; +export interface PlotTreegraphLevelsOptions { /** - * (Highcharts) Allow this series' points to be selected by clicking on the - * graphic (columns, point markers, pie slices, map areas etc). - * - * The selected points can be handled by point select and unselect events, - * or collectively by the getSelectedPoints function. - * - * And alternative way of selecting points is through dragging. - */ - allowPointSelect?: boolean; - /** - * (Highcharts) Enable or disable the initial animation when a series is - * displayed. The animation can also be set as a configuration object. - * Please note that this option only applies to the initial animation of the - * series itself. For other animations, see chart.animation and the - * animation parameter under the API methods. The following properties are - * supported: - * - * - `defer`: The animation delay time in milliseconds. - * - * - `duration`: The duration of the animation in milliseconds. (Defaults to - * `1000`) - * - * - `easing`: Can be a string reference to an easing function set on the - * `Math` object or a function. See the _Custom easing function_ demo below. - * (Defaults to `easeInOutSine`) - * - * Due to poor performance, animation is disabled in old IE browsers for - * several chart types. - */ - animation?: (boolean|AnimationOptionsObject); - /** - * (Highcharts) For some series, there is a limit that shuts down animation - * by default when the total number of points in the chart is too high. For - * example, for a column chart and its derivatives, animation does not run - * if there is more than 250 points totally. To disable this cap, set - * `animationLimit` to `Infinity`. This option works if animation is fired - * on individual points, not on a group of points like e.g. during the - * initial animation. - */ - animationLimit?: number; - /** - * (Highcharts) Sets the color blending in the boost module. - */ - boostBlending?: OptionsBoostBlendingValue; - /** - * (Highcharts) Set the point threshold for when a series should enter boost - * mode. - * - * Setting it to e.g. 2000 will cause the series to enter boost mode when - * there are 2000 or more points in the series. - * - * To disable boosting on the series, set the `boostThreshold` to 0. Setting - * it to 1 will force boosting. - * - * Note that the cropThreshold also affects this setting. When zooming in on - * a series that has fewer points than the `cropThreshold`, all points are - * rendered although outside the visible plot area, and the `boostThreshold` - * won't take effect. - */ - boostThreshold?: number; - /** - * (Highcharts) An additional class name to apply to the series' graphical - * elements. This option does not replace default class names of the - * graphical element. Changes to the series' color will also be reflected in - * a chart's legend and tooltip. + * (Highcharts) Can set a `borderColor` on all points which lies on the same + * level. */ - className?: string; + borderColor?: ColorString; /** - * (Highcharts) Disable this option to allow series rendering in the whole - * plotting area. - * - * **Note:** Clipping should be always enabled when chart.zoomType is set + * (Highcharts) Set the dash style of the border of all the point which lies + * on the level. See plotOptions.scatter.dashStyle for possible options. */ - clip?: boolean; + borderDashStyle?: DashStyleValue; /** - * (Highcharts) Options applied to collapse Button. The collape button is - * the small button which indicates, that the node is collapsable. + * (Highcharts) Can set the borderWidth on all points which lies on the same + * level. */ - collapseButton?: PlotTreegraphCollapseButtonOptions; + borderWidth?: number; /** - * (Highcharts) The main color of the series. In line type series it applies - * to the line and the point markers unless otherwise specified. In bar type - * series it applies to the bars unless a color is specified per point. The - * default value is pulled from the `options.colors` array. - * - * In styled mode, the color can be defined by the colorIndex option. Also, - * the series color can be set with the `.highcharts-series`, - * `.highcharts-color-{n}`, `.highcharts-{type}-series` or - * `.highcharts-series-{n}` class, or individual classes given by the - * `className` option. + * (Highcharts) Can set a color on all points which lies on the same level. */ color?: (ColorString|GradientColorObject|PatternObject); /** - * (Highcharts) When using automatic point colors pulled from the - * `options.colors` collection, this option determines whether the chart - * should receive one color per series or one color per point. + * (Highcharts) A configuration object to define how the color of a child + * varies from the parent's color. The variation is distributed among the + * children of node. For example when setting brightness, the brightness + * change will range from the parent's original brightness on the first + * child, to the amount set in the `to` setting on the last node. This + * allows a gradient-like color scheme that sets children out from each + * other while highlighting the grouping on treemaps and sectors on sunburst + * charts. */ - colorByPoint?: boolean; + colorVariation?: PlotTreegraphLevelsColorVariationOptions; /** - * (Highcharts) Styled mode only. A specific color index to use for the - * series, so its graphic representations are given the class name - * `highcharts-color-{n}`. - * - * Since v11, CSS variables on the form `--highcharts-color-{n}` make - * changing the color scheme very convenient. + * (Highcharts) Can set the options of dataLabels on each point which lies + * on the level. plotOptions.treemap.dataLabels for possible values. */ - colorIndex?: number; + dataLabels?: (PlotTreegraphLevelsDataLabelsOptions|Array); /** - * (Highcharts) A series specific or series type specific color set to apply - * instead of the global colors when colorByPoint is true. + * (Highcharts) Can set the layoutAlgorithm option on a specific level. */ - colors?: Array<(ColorString|GradientColorObject|PatternObject)>; + layoutAlgorithm?: OptionsLayoutAlgorithmValue; /** - * (Highcharts, Highstock, Gantt) When true, each point or column edge is - * rounded to its nearest pixel in order to render sharp on screen. In some - * cases, when there are a lot of densely packed columns, this leads to - * visible difference in column widths or distance between columns. In these - * cases, setting `crisp` to `false` may look better, even though each - * column is rendered blurry. + * (Highcharts) Can set the layoutStartingDirection option on a specific + * level. */ - crisp?: boolean; + layoutStartingDirection?: OptionsLayoutStartingDirectionValue; /** - * (Highcharts) When the series contains less points than the crop - * threshold, all points are drawn, event if the points fall outside the - * visible plot area at the current zoom. The advantage of drawing all - * points (including markers and columns), is that animation is performed on - * updates. On the other hand, when the series contains more points than the - * crop threshold, the series data is cropped to only contain points that - * fall within the plot area. The advantage of cropping away invisible - * points is to increase performance on large series. + * (Highcharts) Decides which level takes effect from the options set in the + * levels object. */ - cropThreshold?: number; + level?: number; +} +/** + * (Highcharts) Options for the connector in the _Series on point_ feature. + * + * In styled mode, the connector can be styled with the + * `.highcharts-connector-seriesonpoint` class name. + */ +export interface PlotTreegraphOnPointConnectorOptions { /** - * (Highcharts) You can set the cursor to "pointer" if you have click events - * attached to the series, to signal to the user that the points and lines - * can be clicked. - * - * In styled mode, the series cursor can be set with the same classes as - * listed under series.color. + * (Highcharts) A name for the dash style to use for the connector. */ - cursor?: (string|CursorValue); + dashstyle?: string; /** - * (Highcharts) A reserved subspace to store options and values for - * customized functionality. Here you can add additional data for your own - * event callbacks and formatter callbacks. + * (Highcharts) Color of the connector line. By default it's the series' + * color. */ - custom?: Dictionary; + stroke?: string; /** - * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels - * appearing on top of the nodes and links. For treegraph charts, data - * labels are visible for the nodes by default, but hidden for links. This - * is controlled by modifying the `nodeFormat`, and the `format` that - * applies to links and is an empty string by default. + * (Highcharts) Pixel width of the connector line. */ - dataLabels?: (SeriesTreegraphDataLabelsOptionsObject|Array); + width?: number; +} +/** + * (Highcharts) Options allowing to set a position and an offset of the series + * in the _Series on point_ feature. + */ +export interface PlotTreegraphOnPointPositionOptions { /** - * (Highcharts) A description of the series to add to the screen reader - * information about the series. + * (Highcharts) Series center offset from the original x position. If + * defined, the connector line is drawn connecting original position with + * new position. */ - description?: string; + offsetX?: number; /** - * (Highcharts) Enable or disable the mouse tracking for a specific series. - * This includes point tooltips and click events on graphs and points. For - * large datasets it improves performance. + * (Highcharts) Series center offset from the original y position. If + * defined, the connector line is drawn from original position to a new + * position. */ - enableMouseTracking?: boolean; + offsetY?: number; /** - * (Highcharts) General event handlers for the series items. These event - * hooks can also be attached to the series at run time using the - * `Highcharts.addEvent` function. + * (Highcharts) X position of the series center. By default, the series is + * displayed on the point that it is connected to. */ - events?: SeriesEventsOptionsObject; + x?: number; /** - * (Highcharts) Whether the treegraph series should fill the entire plot - * area in the X axis direction, even when there are collapsed points. + * (Highcharts) Y position of the series center. By default, the series is + * displayed on the point that it is connected to. */ - fillSpace?: boolean; + y?: number; +} +/** + * (Highcharts) Point accessibility options for a series. + */ +export interface PlotTreemapAccessibilityPointOptions { /** - * (Highcharts) Determines whether the series should look for the nearest - * point in both dimensions or just the x-dimension when hovering the - * series. Defaults to `'xy'` for scatter series and `'x'` for most other - * series. If the data has duplicate x-values, it is recommended to set this - * to `'xy'` to allow hovering over all points. + * (Highcharts) Date format to use for points on datetime axes when + * describing them to screen reader users. * - * Applies only to series types using nearest neighbor search (not direct - * hover) for tooltip. - */ - findNearestPointBy?: OptionsFindNearestPointByValue; - /** - * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total - * chart width or only the zoomed area when zooming in on parts of the X - * axis. By default, the Y axis adjusts to the min and max of the visible - * data. Cartesian series only. - */ - getExtremesFromAll?: boolean; - /** - * (Highcharts) Highlight only the hovered point and fade the remaining - * points. + * Defaults to the same format as in tooltip. * - * Scatter-type series require enabling the 'inactive' marker state and - * adjusting opacity. Note that this approach could affect performance with - * large datasets. + * For an overview of the replacement codes, see dateFormat. */ - inactiveOtherPoints?: boolean; + dateFormat?: string; /** - * (Highcharts) When set to `false` will prevent the series data from being - * included in any form of data export. - * - * Since version 6.0.0 until 7.1.0 the option was existing undocumented as - * `includeInCSVExport`. + * (Highcharts) Formatter function to determine the date/time format used + * with points on datetime axes when describing them to screen reader users. + * Receives one argument, `point`, referring to the point to describe. + * Should return a date format string compatible with dateFormat. */ - includeInDataExport?: boolean; + dateFormatter?: ScreenReaderFormatterCallbackFunction; /** - * (Highcharts) An array specifying which option maps to which key in the - * data point array. This makes it convenient to work with unstructured data - * arrays from different sources. + * (Highcharts) Whether or not to describe points with the value `null` to + * assistive technology, such as screen readers. */ - keys?: Array; + describeNull?: boolean; /** - * (Highcharts, Highstock, Gantt) Series labels are placed as close to the - * series as possible in a natural way, seeking to avoid other series. The - * goal of this feature is to make the chart more easily readable, like if a - * human designer placed the labels in the optimal position. + * (Highcharts) A format string to use instead of the default for point + * descriptions. * - * The series labels currently work with series types having a `graph` or an - * `area`. - */ - label?: SeriesLabelOptionsObject; - /** - * (Highcharts) What type of legend symbol to render for this series. Can be - * one of `areaMarker`, `lineMarker` or `rectangle`. - */ - legendSymbol?: OptionsLegendSymbolValue; - /** - * (Highcharts) Set options on specific levels. Takes precedence over series - * options, but not point options. - */ - levels?: Array; - link?: PlotTreegraphLinkOptions; - /** - * (Highcharts, Highstock, Gantt) The id of another series to link to. - * Additionally, the value can be ":previous" to link to the previous - * series. When two series are linked, only the first one appears in the - * legend. Toggling the visibility of this also toggles the linked series. + * The context of the format string is the point instance. * - * If master series uses data sorting and linked series does not have its - * own sorting definition, the linked series will be sorted in the same - * order as the master one. + * As opposed to accessibility.point.valueDescriptionFormat, this option + * replaces the whole description. */ - linkedTo?: string; + descriptionFormat?: string; /** - * (Highcharts) Options for the point markers of line and scatter-like - * series. Properties like `fillColor`, `lineColor` and `lineWidth` define - * the visual appearance of the markers. The `symbol` option defines the - * shape. Other series types, like column series, don't have markers, but - * have visual options on the series level instead. + * (Highcharts) Formatter function to use instead of the default for point + * descriptions. Same as `accessibility.point.descriptionFormatter`, but + * applies to a series instead of the whole chart. * - * In styled mode, the markers can be styled with the `.highcharts-point`, - * `.highcharts-point-hover` and `.highcharts-point-select` class names. + * Note: Prefer using accessibility.point.valueDescriptionFormat instead if + * possible, as default functionality such as describing annotations will be + * preserved. */ - marker?: PointMarkerOptionsObject; + descriptionFormatter?: ScreenReaderFormatterCallbackFunction; /** - * (Highcharts) The distance between nodes in a tree graph in the - * longitudinal direction. The longitudinal direction means the direction - * that the chart flows - in a horizontal chart the distance is horizontal, - * in an inverted chart (vertical), the distance is vertical. - * - * If a number is given, it denotes pixels. If a percentage string is given, - * the distance is a percentage of the rendered node width. A `nodeDistance` - * of `100%` will render equal widths for the nodes and the gaps between - * them. - * - * This option applies only when the `nodeWidth` option is `auto`, making - * the node width respond to the number of columns. + * (Highcharts) Decimals to use for the values in the point descriptions. + * Uses tooltip.valueDecimals if not defined. */ - nodeDistance?: (number|string); + valueDecimals?: number; /** - * (Highcharts) The pixel width of each node in a, or the height in case the - * chart is inverted. For tree graphs, the node width is only applied if the - * marker symbol is `rect`, otherwise the `marker` sizing options apply. + * (Highcharts) Format to use for describing the values of data points to + * assistive technology - including screen readers. The point context is + * available as `{point}`. * - * Can be a number or a percentage string, or `auto`. If `auto`, the nodes - * are sized to fill up the plot area in the longitudinal direction, - * regardless of the number of levels. - */ - nodeWidth?: (number|string); - /** - * (Highcharts) Options for the _Series on point_ feature. Only `pie` and - * `sunburst` series are supported at this moment. - */ - onPoint?: (object|PlotTreegraphOnPointOptions); - /** - * (Highcharts) The opacity of a point in treemap. When a point has - * children, the visibility of the children is determined by the opacity. - */ - opacity?: number; - /** - * (Highcharts) Properties for each single point. - */ - point?: PlotSeriesPointOptions; - /** - * (Highcharts) Same as accessibility.point.descriptionFormat, but for an - * individual series. Overrides the chart wide configuration. + * Other available context variables include `{index}`, `{value}`, and + * `{xDescription}`. + * + * Additionally, the series name, annotation info, and description added in + * `point.accessibility.description` is added by default if relevant. To + * override this, use the accessibility.point.descriptionFormatter option. */ - pointDescriptionFormat?: Function; + valueDescriptionFormat?: string; /** - * (Highcharts) Same as accessibility.series.descriptionFormatter, but for - * an individual series. Overrides the chart wide configuration. + * (Highcharts) Prefix to add to the values in the point descriptions. Uses + * tooltip.valuePrefix if not defined. */ - pointDescriptionFormatter?: Function; + valuePrefix?: string; /** - * (Highcharts, Highstock, Gantt) If no x values are given for the points in - * a series, `pointInterval` defines the interval of the x values. For - * example, if a series contains one value every decade starting from year - * 0, set `pointInterval` to `10`. In true `datetime` axes, the - * `pointInterval` is set in milliseconds. - * - * It can be also be combined with `pointIntervalUnit` to draw irregular - * time intervals. - * - * If combined with `relativeXValue`, an x value can be set on each point, - * and the `pointInterval` is added x times to the `pointStart` setting. - * - * Please note that this options applies to the _series data_, not the - * interval of the axis ticks, which is independent. + * (Highcharts) Suffix to add to the values in the point descriptions. Uses + * tooltip.valueSuffix if not defined. */ - pointInterval?: number; + valueSuffix?: string; +} +export interface PlotTreemapBreadcrumbsButtonThemeStyleOptions { + color?: string; +} +/** + * (Highcharts) Options for the breadcrumbs, the navigation at the top leading + * the way up through the traversed levels. + */ +export interface PlotTreemapBreadcrumbsOptions { /** - * (Highcharts, Highstock, Gantt) On datetime series, this allows for - * setting the pointInterval to irregular time units, `day`, `month` and - * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit` - * also takes the DST crossover into consideration when dealing with local - * time. Combine this option with `pointInterval` to draw weeks, quarters, 6 - * months, 10 years etc. - * - * Please note that this options applies to the _series data_, not the - * interval of the axis ticks, which is independent. + * (Highcharts) The default padding for each button and separator in each + * direction. */ - pointIntervalUnit?: OptionsPointIntervalUnitValue; + buttonSpacing?: number; /** - * (Highcharts, Highstock, Gantt) If no x values are given for the points in - * a series, `pointStart` defines on what value to start. For example, if a - * series contains one yearly value starting from 1945, set `pointStart` to - * 1945. - * - * The `pointStart` setting can be a number, or a datetime string that is - * parsed according to the `time.timezone` setting. + * (Highcharts) A collection of attributes for the buttons. The object takes + * SVG attributes like `fill`, `stroke`, `stroke-width`, as well as `style`, + * a collection of CSS properties for the text. * - * If combined with `relativeXValue`, an x value can be set on each point. - * The x value from the point options is multiplied by `pointInterval` and - * added to `pointStart` to produce a modified x value. + * The object can also be extended with states, so you can set + * presentational options for `hover`, `select` or `disabled` button states. */ - pointStart?: (number|string); + buttonTheme?: (PlotTreemapBreadcrumbsButtonThemeOptions|SVGAttributes); + events?: PlotTreemapBreadcrumbsEventsOptions; /** - * (Highcharts, Highstock) When true, X values in the data set are relative - * to the current `pointStart`, `pointInterval` and `pointIntervalUnit` - * settings. This allows compression of the data for datasets with irregular - * X values. - * - * The real X values are computed on the formula `f(x) = ax + b`, where `a` - * is the `pointInterval` (optionally with a time unit given by - * `pointIntervalUnit`), and `b` is the `pointStart`. + * (Highcharts) When the breadcrumbs are floating, the plot area will not + * move to make space for it. By default, the chart will not make space for + * the buttons. This property won't work when positioned in the middle. */ - relativeXValue?: boolean; + floating?: boolean; /** - * (Highcharts) Flips the positions of the nodes of a treegraph along the - * horizontal axis (vertical if chart is inverted). + * (Highcharts) A format string for the breadcrumbs button. Variables are + * enclosed by curly brackets. Available values are passed in the declared + * point options. */ - reversed?: boolean; + format?: (string|undefined); /** - * (Highcharts) Whether to select the series initially. If `showCheckbox` is - * true, the checkbox next to the series name in the legend will be checked - * for a selected series. + * (Highcharts) Callback function to format the breadcrumb text from + * scratch. */ - selected?: boolean; + formatter?: BreadcrumbsFormatterCallbackFunction; /** - * (Highcharts) If true, a checkbox is displayed next to the legend item to - * allow selecting the series. The state of the checkbox is determined by - * the `selected` option. + * (Highcharts, Highmaps) Positioning for the button row. The breadcrumbs + * buttons will be aligned properly for the default chart layout (title, + * subtitle, legend, range selector) for the custom chart layout set the + * position properties. */ - showCheckbox?: boolean; + position?: (BreadcrumbsAlignOptions|PlotTreemapBreadcrumbsPositionOptions); /** - * (Highcharts) Whether to display this series type or specific series item - * in the legend. + * (Highcharts, Highmaps) What box to align the button to. Can be either + * `plotBox` or `spacingBox`. */ - showInLegend?: boolean; + relativeTo?: ButtonRelativeToValue; /** - * (Highcharts) If set to `true`, the accessibility module will skip past - * the points in this series for keyboard navigation. + * (Highcharts) Whether to reverse the order of buttons. This is common in + * Arabic and Hebrew. */ - skipKeyboardNavigation?: boolean; + rtl?: boolean; /** - * (Highcharts, Highstock) When this is true, the series will not cause the - * Y axis to cross the zero plane (or threshold option) unless the data - * actually crosses the plane. - * - * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will - * make the Y axis show negative values according to the `minPadding` - * option. If `softThreshold` is `true`, the Y axis starts at 0. + * (Highcharts) Options object for Breadcrumbs separator. */ - softThreshold?: boolean; + separator?: PlotTreemapBreadcrumbsSeparatorOptions; /** - * (Highcharts) Sonification/audio chart options for a series. + * (Highcharts) Show full path or only a single button. */ - sonification?: SeriesSonificationOptions; + showFullPath?: boolean; /** - * (Highcharts, Highstock) Whether to stack the values of each series on top - * of each other. Possible values are `undefined` to disable, `"normal"` to - * stack by value or `"percent"`. - * - * When stacking is enabled, data must be sorted in ascending X order. + * (Highcharts) CSS styles for all breadcrumbs. * - * Some stacking options are related to specific series types. In the - * streamgraph series type, the stacking option is set to `"stream"`. The - * second one is `"overlap"`, which only applies to waterfall series. - */ - stacking?: OptionsStackingValue; - /** - * (Highcharts) A wrapper object for all the series options in specific - * states. + * In styled mode, the breadcrumbs buttons are styled by the + * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its + * different states. */ - states?: SeriesStatesOptionsObject; + style?: SVGAttributes; /** - * (Highcharts, Highstock) Whether to apply steps to the line. Possible - * values are `left`, `center` and `right`. + * (Highcharts) Whether to use HTML to render the breadcrumbs items texts. */ - step?: OptionsStepValue; + useHTML?: boolean; /** - * (Highcharts, Highstock, Highmaps) Sticky tracking of mouse events. When - * true, the `mouseOut` event on a series isn't triggered until the mouse - * moves over another series, or out of the plot area. When false, the - * `mouseOut` event on a series is triggered when the mouse leaves the area - * around the series' graph or markers. This also implies the tooltip. When - * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will - * be hidden when moving the mouse between series. + * (Highcharts) The z index of the breadcrumbs group. */ - stickyTracking?: boolean; + zIndex?: number; +} +/** + * (Highcharts) Options object for Breadcrumbs separator. + */ +export interface PlotTreemapBreadcrumbsSeparatorOptions { /** - * (Highcharts, Highstock, Highmaps) A configuration object for the tooltip - * rendering of each single series. Properties are inherited from tooltip. - * Overridable properties are `headerFormat`, `pointFormat`, `yDecimals`, - * `xDateFormat`, `yPrefix` and `ySuffix`. Unlike other series, in a scatter - * plot the series.name by default shows in the headerFormat and point.x and - * point.y in the pointFormat. + * (Highcharts) CSS styles for the breadcrumbs separator. + * + * In styled mode, the breadcrumbs separators are styled by the + * `.highcharts-separator` rule with its different states. */ - tooltip?: SeriesTooltipOptionsObject; + style?: (CSSObject|PlotTreemapBreadcrumbsSeparatorStyleOptions); + text?: string; +} +export interface PlotTreemapClusterLayoutAlgorithmOptions { + distance?: number; + gridSize?: number; + kmeansThreshold?: number; +} +/** + * (Highcharts) An option to optimize treemap series rendering by grouping + * smaller leaf nodes below a certain square area threshold in pixels. If the + * square area of a point becomes smaller than the specified threshold, + * determined by the `pixelWidth` and/or `pixelHeight` options, then this point + * is moved into one group point per series. + */ +export interface PlotTreemapClusterOptions { /** - * (Highcharts) This option enables automatic traversing to the last child - * level upon node interaction. This feature simplifies navigation by - * immediately focusing on the deepest layer of the data structure without - * intermediate steps. + * (Highcharts) An additional, individual class name for the grouped point's + * graphic representation. */ - traverseToLeaf?: boolean; + className?: string; /** - * (Highcharts, Highstock, Gantt) When a series contains a `data` array that - * is longer than this, the Series class looks for data configurations of - * plain numbers or arrays of numbers. The first and last valid points are - * checked. If found, the rest of the data is assumed to be the same. This - * saves expensive data checking and indexing in long series, and makes - * data-heavy charts render faster. - * - * Set it to `0` disable. - * - * Note: - * - * - In boost mode turbo threshold is forced. Only array of numbers or two - * dimensional arrays are allowed. - * - * - In version 11.4.3 and earlier, if object configurations were passed - * beyond the turbo threshold, a warning was logged in the console and the - * data series didn't render. + * (Highcharts) Individual color for the grouped point. By default the color + * is pulled from the parent color. */ - turboThreshold?: number; + color?: (ColorString|GradientColorObject|PatternObject); /** - * (Highcharts) Set the initial visibility of the series. + * (Highcharts) Enable or disable Treemap grouping. */ - visible?: boolean; -} -/** - * (Highcharts) A collection of attributes for the buttons. The object takes SVG - * attributes like `fill`, `stroke`, `stroke-width`, as well as `style`, a - * collection of CSS properties for the text. - * - * The object can also be extended with states, so you can set presentational - * options for `hover`, `select` or `disabled` button states. - */ -export interface PlotTreemapBreadcrumbsButtonThemeOptions { - style?: PlotTreemapBreadcrumbsButtonThemeStyleOptions; -} -export interface PlotTreemapBreadcrumbsEventsOptions { + enabled?: boolean; + layoutAlgorithm?: PlotTreemapClusterLayoutAlgorithmOptions; + marker?: PlotTreemapClusterMarkerOptions; /** - * (Highcharts) Fires when clicking on the breadcrumbs button. Two arguments - * are passed to the function. First breadcrumb button as an SVG element. - * Second is the breadcrumbs class, containing reference to the chart, - * series etc. (see online documentation for example) - * - * Return false to stop default buttons click action. + * (Highcharts) Defines the minimum number of child nodes required to create + * a group of small nodes. */ - click?: BreadcrumbsClickCallbackFunction; -} -/** - * (Highcharts, Highmaps) Positioning for the button row. The breadcrumbs - * buttons will be aligned properly for the default chart layout (title, - * subtitle, legend, range selector) for the custom chart layout set the - * position properties. - */ -export interface PlotTreemapBreadcrumbsPositionOptions { + minimumClusterSize?: number; /** - * (Highcharts, Highmaps) Horizontal alignment of the breadcrumbs buttons. + * (Highcharts) The name of the point of grouped nodes shown in the tooltip, + * dataLabels, etc. By default it is set to '+ n', where n is number of + * grouped points. */ - align?: AlignValue; + name?: string; /** - * (Highcharts, Highmaps) Vertical alignment of the breadcrumbs buttons. + * (Highcharts) The pixel threshold height of area, which is used in Treemap + * grouping. */ - verticalAlign?: VerticalAlignValue; + pixelHeight?: number; /** - * (Highcharts, Highmaps) The X offset of the breadcrumbs button group. + * (Highcharts) The pixel threshold width of area, which is used in Treemap + * grouping. */ - x?: number; + pixelWidth?: number; /** - * (Highcharts, Highmaps) The Y offset of the breadcrumbs button group. When - * `undefined`, and `floating` is `false`, the `y` position is adapted so - * that the breadcrumbs are rendered outside the target area. + * (Highcharts) A configuration property that specifies the factor by which + * the value and size of a grouped node are reduced. This can be + * particularly useful when a grouped node occupies a disproportionately + * large portion of the graph, ensuring better visual balance and + * readability. */ - y?: (number|undefined); -} -/** - * (Highcharts) CSS styles for the breadcrumbs separator. - * - * In styled mode, the breadcrumbs separators are styled by the - * `.highcharts-separator` rule with its different states. - */ -export interface PlotTreemapBreadcrumbsSeparatorStyleOptions { - color?: string; - fontSize?: number; + reductionFactor?: number; } /** * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels, @@ -69337,7 +69058,7 @@ export interface PlotTreemapDataLabelsOptions { * `ellipsis`, which will keep the text on one line plus it will break * inside long words. */ - style?: CSSObject; + style?: (CSSObject|PlotTreemapDataLabelsStyleOptions); /** * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which * should follow marker's shape. Border and background are disabled for a @@ -69377,256 +69098,54 @@ export interface PlotTreemapDataLabelsOptions { zIndex?: number; } /** - * (Highcharts) A configuration object to define how the color of a child varies - * from the parent's color. The variation is distributed among the children of - * node. For example when setting brightness, the brightness change will range - * from the parent's original brightness on the first child, to the amount set - * in the `to` setting on the last node. This allows a gradient-like color - * scheme that sets children out from each other while highlighting the grouping - * on treemaps and sectors on sunburst charts. + * (Highcharts, Highstock, Gantt) Styles for the series label. The color + * defaults to the series color, or a contrast color if `onArea`. */ -export interface PlotTreemapLevelsColorVariationOptions { - /** - * (Highcharts) The key of a color variation. Currently supports - * `brightness` only. - */ - key?: "brightness"; - /** - * (Highcharts) The ending value of a color variation. The last sibling will - * receive this value. - */ - to?: number; +export interface PlotTreemapLabelStyleOptions { + fontSize?: (number|string); } /** - * (Highcharts) Can set the options of dataLabels on each point which lies on - * the level. plotOptions.treemap.dataLabels for possible values. + * (Highcharts) Enable or disable the initial animation when a series is + * displayed for the `dataLabels`. The animation can also be set as a + * configuration object. Please note that this option only applies to the + * initial animation. + * + * For other animations, see chart.animation and the animation parameter under + * the API methods. The following properties are supported: + * + * - `defer`: The animation delay time in milliseconds. */ -export interface PlotTreemapLevelsDataLabelsOptions { - /** - * (Highcharts) The alignment of the data label compared to the point. If - * `right`, the right side of the label should be touching the point. For - * points with an extent, like columns, the alignments also dictates how to - * align it inside the box, as given with the inside option. Can be one of - * `left`, `center` or `right`. - */ - align?: (AlignValue|null); - /** - * (Highcharts) Alignment method for data labels. If set to `plotEdges`, the - * labels are aligned within the plot area in the direction of the y-axis. - * So in a regular column chart, the labels are aligned vertically according - * to the `verticalAlign` setting. In a bar chart, which is inverted, the - * labels are aligned horizontally according to the `align` setting. Applies - * to cartesian series only. - */ - alignTo?: string; - /** - * (Highcharts) Whether to allow data labels to overlap. To make the labels - * less sensitive for overlapping, the dataLabels.padding can be set to 0. - */ - allowOverlap?: boolean; +export interface PlotTreemapLevelsDataLabelsAnimationOptions { /** - * (Highcharts) Enable or disable the initial animation when a series is - * displayed for the `dataLabels`. The animation can also be set as a - * configuration object. Please note that this option only applies to the - * initial animation. - * - * For other animations, see chart.animation and the animation parameter - * under the API methods. The following properties are supported: - * - * - `defer`: The animation delay time in milliseconds. - */ - animation?: (boolean|PlotTreemapLevelsDataLabelsAnimationOptions|Partial); - /** - * (Highcharts) The background color or gradient for the data label. Setting - * it to `auto` will use the point's color. - */ - backgroundColor?: (ColorString|GradientColorObject|PatternObject); - /** - * (Highcharts) The border color for the data label. Setting it to `auto` - * will use the point's color. Defaults to `undefined`. - */ - borderColor?: (ColorString|GradientColorObject|PatternObject); - /** - * (Highcharts) The border radius in pixels for the data label. - */ - borderRadius?: number; - /** - * (Highcharts) The border width in pixels for the data label. - */ - borderWidth?: number; - /** - * (Highcharts) A class name for the data label. Particularly in styled - * mode, this can be used to give each series' or point's data label unique - * styling. In addition to this option, a default color class name is added - * so that we can give the labels a contrast text shadow. - */ - className?: string; - /** - * (Highcharts) This options is deprecated. Use style.color instead. - * - * The text color for the data labels. Defaults to `undefined`. For certain - * series types, like column or map, the data labels can be drawn inside the - * points. In this case the data label will be drawn with maximum contrast - * by default. Additionally, it will be given a `text-outline` style with - * the opposite color, to further increase the contrast. This can be - * overridden by setting the `text-outline` style to `none` in the - * `dataLabels.style` option. - * - * @deprecated 10.3.0 - */ - color?: ColorType; - /** - * (Highcharts) Whether to hide data labels that are outside the plot area. - * By default, the data label is moved inside the plot area according to the - * overflow option. - */ - crop?: boolean; - /** - * (Highcharts, Highstock, Gantt) Whether to defer displaying the data - * labels until the initial series animation has finished. Setting to - * `false` renders the data label immediately. If set to `true` inherits the - * defer time set in plotOptions.series.animation. - */ - defer?: boolean; - /** - * (Highcharts) Enable or disable the data labels. - */ - enabled?: boolean; - /** - * (Highcharts) A declarative filter to control of which data labels to - * display. The declarative filter is designed for use when callback - * functions are not available, like when the chart options require a pure - * JSON structure or for use with graphical editors. For programmatic - * control, use the `formatter` instead, and return `undefined` to disable a - * single data label. - */ - filter?: DataLabelsFilterOptionsObject; - /** - * (Highcharts) A format string for the data label. Available variables are - * the same as for `formatter`. - */ - format?: string; - /** - * (Highcharts) Callback JavaScript function to format the data label. Note - * that if a `format` is defined, the format takes precedence and the - * formatter is ignored. - */ - formatter?: DataLabelsFormatterCallbackFunction; - /** - * (Highcharts) For points with an extent, like columns or map areas, - * whether to align the data label inside the box or to the actual value - * point. Defaults to `false` in most cases, `true` in stacked columns. - */ - inside?: boolean; - /** - * (Highcharts) Format for points with the value of null. Works analogously - * to format. `nullFormat` can be applied only to series which support - * displaying null points i.e `heatmap` or `tilemap`. Does not work with - * series that don't display null points, like `line`, `column`, `bar` or - * `pie`. - */ - nullFormat?: (boolean|string); - /** - * (Highcharts) Callback JavaScript function that defines formatting for - * points with the value of null. Works analogously to formatter. - * `nullFormatter` can be applied only to series which support displaying - * null points i.e `heatmap` or `tilemap`. Does not work with series that - * don't display null points, like `line`, `column`, `bar` or `pie`. - */ - nullFormatter?: DataLabelsFormatterCallbackFunction; - /** - * (Highcharts) How to handle data labels that flow outside the plot area. - * The default is `"justify"`, which aligns them inside the plot area. For - * columns and bars, this means it will be moved inside the bar. To display - * data labels outside the plot area, set `crop` to `false` and `overflow` - * to `"allow"`. - */ - overflow?: DataLabelsOverflowValue; - /** - * (Highcharts) When either the `borderWidth` or the `backgroundColor` is - * set, this is the padding within the box. - */ - padding?: number; - /** - * (Highcharts) Aligns data labels relative to points. If `center` alignment - * is not possible, it defaults to `right`. - */ - position?: AlignValue; - /** - * (Highcharts) Text rotation in degrees. Note that due to a more complex - * structure, backgrounds, borders and padding will be lost on a rotated - * data label. - */ - rotation?: number; - /** - * (Highcharts) The shadow of the box. Works best with `borderWidth` or - * `backgroundColor`. Since 2.3 the shadow can be an object configuration - * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`. - */ - shadow?: (boolean|ShadowOptionsObject); - /** - * (Highcharts) The name of a symbol to use for the border around the label. - * Symbols are predefined functions on the Renderer object. - */ - shape?: string; - /** - * (Highcharts) Styles for the label. The default `color` setting is - * `"contrast"`, which is a pseudo color that Highcharts picks up and - * applies the maximum contrast to the underlying point item, for example - * the bar in a bar chart. - * - * The `textOutline` is a pseudo property that applies an outline of the - * given width with the given color, which by default is the maximum - * contrast to the text. So a bright text color will result in a black text - * outline for maximum readability on a mixed background. In some cases, - * especially with grayscale text, the text outline doesn't work well, in - * which cases it can be disabled by setting it to `"none"`. When `useHTML` - * is true, the `textOutline` will not be picked up. In this, case, the same - * effect can be acheived through the `text-shadow` CSS property. - * - * For some series types, where each point has an extent, like for example - * tree maps, the data label may overflow the point. There are two - * strategies for handling overflow. By default, the text will wrap to - * multiple lines. The other strategy is to set `style.textOverflow` to - * `ellipsis`, which will keep the text on one line plus it will break - * inside long words. - */ - style?: CSSObject; - /** - * (Highcharts) Options for a label text which should follow marker's shape. - * Border and background are disabled for a label that follows a path. - * - * **Note:** Only SVG-based renderer supports this option. Setting `useHTML` - * to true will disable this option. - */ - textPath?: DataLabelsTextPathOptionsObject; - /** - * (Highcharts) Whether to use HTML to render the labels. - */ - useHTML?: boolean; - /** - * (Highcharts) The vertical alignment of a data label. Can be one of `top`, - * `middle` or `bottom`. The default value depends on the data, for instance - * in a column chart, the label is above positive values and below negative - * values. - */ - verticalAlign?: string; - /** - * (Highcharts) The x position offset of the label relative to the point in - * pixels. - */ - x?: number; - /** - * (Highcharts) The y position offset of the label relative to the point in - * pixels. - */ - y?: number; - /** - * (Highcharts) The z index of the data labels. Use a `zIndex` of 6 to - * display it above the series, or use a `zIndex` of 2 to display it behind - * the series. + * (Highcharts) The animation delay time in milliseconds. Set to `0` to + * render the data labels immediately. As `undefined` inherits defer time + * from the series.animation.defer. */ - zIndex?: number; + defer?: number; +} +/** + * (Highcharts) Styles for the label. The default `color` setting is + * `"contrast"`, which is a pseudo color that Highcharts picks up and applies + * the maximum contrast to the underlying point item, for example the bar in a + * bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the given + * width with the given color, which by default is the maximum contrast to the + * text. So a bright text color will result in a black text outline for maximum + * readability on a mixed background. In some cases, especially with grayscale + * text, the text outline doesn't work well, in which cases it can be disabled + * by setting it to `"none"`. When `useHTML` is true, the `textOutline` will not + * be picked up. In this, case, the same effect can be acheived through the + * `text-shadow` CSS property. + * + * For some series types, where each point has an extent, like for example tree + * maps, the data label may overflow the point. There are two strategies for + * handling overflow. By default, the text will wrap to multiple lines. The + * other strategy is to set `style.textOverflow` to `ellipsis`, which will keep + * the text on one line plus it will break inside long words. + */ +export interface PlotTreemapLevelsDataLabelsStyleOptions { + textOverflow?: string; } /** * (Highcharts) Options for the connector in the _Series on point_ feature. @@ -86167,11 +85686,11 @@ export interface SeriesTooltipOptionsObject { */ changeDecimals?: number; /** - * (Highstock) The HTML of the cluster point's in the tooltip. Works only - * with marker-clusters module and analogously to pointFormat. + * (Highstock) The HTML of the grouped point's nodes in the tooltip. Works + * only for Treemap series grouping and analogously to pointFormat. * - * The cluster tooltip can be also formatted using `tooltip.formatter` - * callback function and `point.isCluster` flag. + * The grouped nodes point tooltip can be also formatted using + * `tooltip.formatter` callback function and `point.isGroupNode` flag. */ clusterFormat?: string; /** @@ -90007,12 +89526,12 @@ export interface TooltipOptions { */ className?: string; /** - * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the cluster point's - * in the tooltip. Works only with marker-clusters module and analogously to - * pointFormat. + * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the grouped point's + * nodes in the tooltip. Works only for Treemap series grouping and + * analogously to pointFormat. * - * The cluster tooltip can be also formatted using `tooltip.formatter` - * callback function and `point.isCluster` flag. + * The grouped nodes point tooltip can be also formatted using + * `tooltip.formatter` callback function and `point.isGroupNode` flag. */ clusterFormat?: string; /** diff --git a/highcharts.js b/highcharts.js index 7f83170c85..00677a8411 100644 --- a/highcharts.js +++ b/highcharts.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e;var i,s,o,r,a,n,h,l,d,c,p,u,g,f,m,x,y,b={};b.d=(t,e)=>{for(var i in e)b.o(e,i)&&!b.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},b.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var v={};b.d(v,{default:()=>lm}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.0.2",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(i||(i={}));let k=i,{charts:w,doc:M,win:S}=k;function T(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=I(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),G(s,function(e,i){t+=` - - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}j(k,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);S.console&&-1===T.messages.indexOf(a)&&console.warn(a)}),T.messages.push(a)}function C(t,e){return parseInt(t,e||10)}function A(t){return"string"==typeof t}function P(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function L(t,e){return!!t&&"object"==typeof t&&(!e||!P(t))}function O(t){return L(t)&&"number"==typeof t.nodeType}function E(t){let e=t&&t.constructor;return!!(L(t,!0)&&!O(t)&&e&&e.name&&"Object"!==e.name)}function I(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function D(t){return null!=t}function B(t,e,i){let s;let o=A(e)&&!D(i),r=(e,i)=>{D(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return A(e)?r(i,e):G(e,r),s}function N(t){return P(t)?t:[t]}function z(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function R(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(T||(T={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let F=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let U=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();S.jQuery&&(S.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new k[A(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):w[B(this[0],"data-highcharts-chart")]});let $={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;k.Point&&t instanceof k.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!k.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){Y(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=N(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=S.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),R(s,"opacity"!==i)&&(o=C(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return X(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:G,offset:function(t){let e=M.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(S.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(S.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:R,pInt:C,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:Y,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:N,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return A(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:U,useSerialIds:function(e){return t=R(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:V}=k,{defined:q,error:Z,extend:_,isNumber:K,isObject:J,isString:Q,merge:tt,objectEach:te,pad:ti,splat:ts,timeUnits:to,ucfirst:tr}=$,ta=k.isSafari&&V.Intl&&!V.Intl.DateTimeFormat.prototype.formatRange,tn=t=>void 0===t.main,th=t=>["D","L","M","X","J","V","S"].indexOf(t),tl=class{constructor(t){this.options={},this.variableTimezone=!1,this.Date=V.Date,this.update(t)}update(t={}){let e=t.timezone??"UTC";this.dTLCache={},this.options=t=tt(!0,this.options,t);let{timezoneOffset:i,useUTC:s}=t;this.Date=t.Date||V.Date||Date,q(s)&&(e=s?"UTC":void 0),i&&i%60==0&&(e="Etc/GMT"+(i>0?"+":"")+i/60),this.variableTimezone="UTC"!==e&&e?.indexOf("Etc/GMT")!==0,this.timezone=e,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,th(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;Q(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(Z(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):Z(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&_(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||ta||(n-=36e5)}}return n}parse(t){if(!Q(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(K(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(K(a))return a}return 0}dateFormat(t,e,i){let s=k.defaultOptions?.lang;if(!q(e)||isNaN(e))return s?.invalidDate||"";if(Q(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(Q(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,f=s?.shortMonths||this.shortMonths;te(_({a:u?u[c]:p[c].substr(0,3),A:p[c],d:ti(a),e:ti(a,2," "),w:c,b:f[r],B:g[r],m:ti(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:ti(n),k:n,I:ti(n%12||12),l:n%12||12,M:ti(h),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:ti(l),L:ti(d,3)},k.dateFormats),function(s,o){if(Q(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(J(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.options.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(_({timeZone:s},t),e)+r}return i?tr(t):t}resolveDTLFormat(t){return J(t,!0)?J(t,!0)&&tn(t)?{main:t}:t:{main:(t=ts(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,u,g]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),q(e)){if(f=h>=to.second?0:n*Math.floor(f/n),h>=to.second&&(g=h>=to.minute?0:n*Math.floor(g/n)),h>=to.minute&&(u=h>=to.hour?0:n*Math.floor(u/n)),h>=to.hour&&(p=h>=to.day?0:n*Math.floor(p/n)),h>=to.day&&(c=h>=to.month?1:Math.max(1,n*Math.floor(c/n))),h>=to.month&&(d=h>=to.year?0:n*Math.floor(d/n)),h>=to.year&&(l-=l%n),h===to.week){n&&(e=o.makeTime(l,d,c,p,u,g,f));let t=th(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*to.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=to.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=_(t,{higherRanks:a,totalRange:h*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in to){if(t===to.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(to[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:td}=k,{fireEvent:tc,merge:tp}=$,tu={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:td?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tu.chart.styledMode=!0,tu.chart.styledMode=!1;let tg=new tl(tu.time),tf={defaultOptions:tu,defaultTime:tg,getOptions:function(){return tu},setOptions:function(t){return tc(k,"setOptions",{options:t}),tp(!0,tu,t),t.time&&tg.update(tu.time),t.lang&&"locale"in t.lang&&tg.update({locale:t.lang.locale}),tu}},{isNumber:tm,merge:tx,pInt:ty,defined:tb}=$;class tv{static parse(t){return t?new tv(t):tv.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=k.Color;if(r&&r!==tv)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tv(t[1]));else if("string"==typeof t)for(this.input=t=tv.names[t.toLowerCase()]||t,s=tv.parsers.length;s--&&!i;)(e=(o=tv.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tx(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tm(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tm(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=ty(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tm(i[0])||!tm(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3];return(o?"rgba(":"rgb(")+Math.round(s[0]+(i[0]-s[0])*(1-e))+","+Math.round(s[1]+(i[1]-s[1])*(1-e))+","+Math.round(s[2]+(i[2]-s[2])*(1-e))+(o?","+(s[3]+(i[3]-s[3])*(1-e)):"")+")"}}tv.names={white:"#ffffff",black:"#000000"},tv.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[ty(t[1]),ty(t[2]),ty(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[ty(t[1]),ty(t[2]),ty(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[ty(t[1]+t[1],16),ty(t[2]+t[2],16),ty(t[3]+t[3],16),tb(t[4])?ty(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[ty(t[1],16),ty(t[2],16),ty(t[3],16),tb(t[4])?ty(t[4],16)/255:1]}}],tv.None=new tv("");let{parse:tk}=tv,{win:tw}=k,{isNumber:tM,objectEach:tS}=$;class tT{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tS(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,u=e&&e.slice();if(!u||h)return[r,r];function g(t,e){for(;t.length{let i=tB(t.options.animation);r=tO(e)&&tC(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tD(t,e.options.chart.animation,!0)},stop:tN},{SVG_NS:tR,win:tW}=k,{attr:tH,createElement:tX,css:tF,error:tG,isFunction:tY,isString:tj,objectEach:tU,splat:t$}=$,{trustedTypes:tV}=tW,tq=tV&&tY(tV.createPolicy)&&tV.createPolicy("highcharts",{createHTML:t=>t}),tZ=tq?tq.createHTML(""):"";class t_{static filterUserAttributes(t){return tU(t,(e,i)=>{let s=!0;-1===t_.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tj(e)&&t_.allowedReferences.some(t=>0===e.indexOf(t))),s||(tG(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tj(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t_.emptyHTML,e&&new t_(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t$(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?k.doc.createTextNode(e.textContent):void 0,n=t_.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==t_.allowedTags.indexOf(r)||n){let s="svg"===r?tR:i.namespaceURI||tR,h=k.doc.createElementNS(s,r),l=e.attributes||{};tU(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),tH(h,n?l:t_.filterUserAttributes(l)),e.style&&tF(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tG(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(tq?tq.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tX("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t_.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t_.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t_.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t_.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t_.emptyHTML=tZ,t_.bypassHTMLFiltering=!1;let{defaultOptions:tK,defaultTime:tJ}=tf,{doc:tQ}=k,{extend:t0,getNestedProperty:t1,isArray:t2,isNumber:t3,isObject:t5,pick:t6,ucfirst:t9}=$,t4={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!t2(t)&&t.map((i,s)=>t7(e.body,t0(t5(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:t9,unless:t=>!t},t8={};function t7(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,h=i?.options.lang||tK.lang,l=i&&i.time||tJ,d=i&&i.numberFormatter||et,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:/^["'].+["']$/.test(t)?t.slice(1,-1):t1(t,e))},p,u,g=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),u&&u.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");t4[a]&&(u.isBlock&&a===u.fn&&g++,u.fn||(u.fn=a));let n="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||n)){if(g)!n&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],n||(r.push(u),u=void 0)}}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let o,r;let{body:p,elseBody:u,expression:g,fn:m}=s;if(m){let t=[s],a=[],n=g.length,h=0,l;for(r=0;r<=n;r++){let t=g.charAt(r);l||'"'!==t&&"'"!==t?l===t&&(l=""):l=t,l||" "!==t&&r!==n||(a.push(g.substr(h,r-h)),h=r+1)}for(r=t4[m].length;r--;)t.unshift(c(a[r+1]));o=t4[m].apply(e,t),s.isBlock&&"boolean"==typeof o&&(o=t7(o?p:u,e,i))}else{let t=g.split(":");if(o=c(t.shift()||""),t.length&&"number"==typeof o){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==o&&(o=d(o,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else o=l.dateFormat(e,o),f&&(o=`"${o}"`)}}t=t.replace(s.find,t6(o,""))}),f?t7(t,e,i):t}function et(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||tK.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):t3(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),t3(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||h.locale||tQ.body.closest("[lang]")?.lang,g=JSON.stringify(c)+u;return o=(t8[g]??(t8[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let ee={dateFormat:function(t,e,i){return tJ.dateFormat(t,e,i)},format:t7,helpers:t4,numberFormat:et};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,k.Renderer=s)}}(s||(s={}));let ei=s,{clamp:es,pick:eo,pushUnique:er,stableSort:ea}=$;(o||(o={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,u,g=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(ea(e,(t,e)=>(e.rank||0)-(t.rank||0)),u=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?u:h-1;u&&x>r;)f=e[c=Math.floor(p)],er(l,c)&&(x-=f.size),p+=u,y&&p>=e.length&&(u/=2,p=u);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(ea(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:eo(t.align,.5)}));g;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=es(m-f.size*f.align,0,i-f.size);for(c=e.length,g=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),g=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),ea(o,a),o};let en=o,{animate:eh,animObject:el,stop:ed}=tz,{deg2rad:ec,doc:ep,svg:eu,SVG_NS:eg,win:ef,isFirefox:em}=k,{addEvent:ex,attr:ey,createElement:eb,crisp:ev,css:ek,defined:ew,erase:eM,extend:eS,fireEvent:eT,getAlignFactor:eC,isArray:eA,isFunction:eP,isNumber:eL,isObject:eO,isString:eE,merge:eI,objectEach:eD,pick:eB,pInt:eN,pushUnique:ez,replaceNested:eR,syncTimeout:eW,uniqueKey:eH}=$;class eX{_defaultGetter(t){let e=eB(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||eE(i)?i||"renderer":void 0;h&&(n&&ez(a,this),i=void 0);let l=eB(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eC(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eC(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=el(eB(e,this.renderer.globalAnimation,!0)),o=s.defer;return ep.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eW(()=>{this.element&&eh(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eD(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&k.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=ep.createElementNS(eg,"tspan");ey(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=ep.createElementNS(eg,"tspan");a.textContent="​",ey(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eX.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eD(t,function(e,i){l=!1,s||ed(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eH()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eS(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=ev(i,e),n=ev(s,e);return eS(t,{x:a,y:n,width:ev(o,e)-a,height:ev(r,e)-n}),ew(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,u,g=[],f;eT(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eA(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!ew(a.gradientUnits)&&(n=a,a=eI(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),eD(a,function(t,e){"id"!==e&&g.push(e,t)}),eD(l,function(t){g.push(t)}),h[g=g.join(",")])u=h[g].attr("id");else{a.id=u=eH();let t=h[g]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tv.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+u+")",i.setAttribute(e,f),i.gradient=g,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eD(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eS(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eN(t.width)),eS(this.styles,t),o&&!eu&&this.renderer.forExport&&delete t.width;let r=em&&t.fontSize||null;r&&(eL(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=eI(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),ek(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eN(s[e])*eB(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ed(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,u=n.namespaceURI===this.SVG_NS,g=eB(e,this.rotation,0),f=h.styledMode?n&&eX.prototype.getStyle.call(n,"font-size"):l.fontSize;if(ew(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,g,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&ek(e,{display:t})},eP(o)&&o("none"),i=n.getBBox?eS({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eP(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};eT(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eC(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*ec,u=(e-90)*ec,g=Math.cos(p),f=Math.sin(p),m=o*g,x=o*f,y=Math.cos(u),b=Math.sin(u),[[v,k],[w,M]]=[h,l].map(t=>[t-t*g,t*f]),S=i+d*(o-m)+v+M+c*y,T=S+m,C=T-r*y,A=C-m,P=s+c-d*x-k+w+c*b,L=P+x,O=L-r*b,E=O-x,I=Math.min(S,T,C,A),D=Math.min(P,L,O,E),B=Math.max(S,T,C,A)-I,N=Math.max(P,L,O,E)-D;return{x:I,y:D,width:B,height:N,polygon:[[S,P],[T,L],[C,O],[A,E]]}}getStyle(t){return ef.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=eg,this.element="span"===e||"body"===e?eb(e):ep.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eT(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=ex(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eE(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eI(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eO(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eN(t):""!==t&&(ey(i=ep.createElementNS(eg,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eX.symbolCustomAttribs.forEach(function(i){e[i]=eB(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||ep.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eR(eB(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];ew(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+eB(o,e.getAttribute("x"),0)+" "+eB(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(ew(a)||ew(n))&&d.push("scale("+eB(a,1)+" "+eB(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,u;if(ew(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):ew(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(n=o.childNodes).length-1;u>=0&&!d;u--)c=!ew(l=(h=n[u]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!a&&!u?(o.insertBefore(r,n[u]),d=!0):(eN(l)<=t||c&&(!ew(t)||t>=0))&&(o.insertBefore(r,n[u+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}eX.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],eX.prototype.strokeSetter=eX.prototype.fillSetter,eX.prototype.yGetter=eX.prototype.xGetter,eX.prototype.matrixSetter=eX.prototype.rotationOriginXSetter=eX.prototype.rotationOriginYSetter=eX.prototype.rotationSetter=eX.prototype.scaleXSetter=eX.prototype.scaleYSetter=eX.prototype.translateXSetter=eX.prototype.translateYSetter=eX.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eF=eX,{defined:eG,extend:eY,getAlignFactor:ej,isNumber:eU,merge:e$,pick:eV,removeEvent:eq}=$;class eZ extends eF{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=eZ.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=ej(t);e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&eU(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e$(t),eZ.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eF.prototype.css.call(this,t)}destroy(){eq(this.element,"mouseenter"),eq(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eF.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=eV(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:eV(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&eG(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){eU(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!eU(this.widthSetting)||!eU(this.heightSetting)||this.textAlign)&&eG(e.textStr)?e.getBBox(void 0,0):eZ.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(eY(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text;if(!t.textPath){this.updateBoxSize();let e=this.baseline?0:this.baselineOffset,i=(this.paddingLeft??this.padding)+(eG(this.widthSetting)&&this.bBox?ej(this.textAlign)*(this.widthSetting-this.bBox.width):0);(i!==t.x||e!==t.y)&&(t.attr("x",i),t.hasBoxWidthChanged&&(this.bBox=t.getBBox(!0)),void 0!==e&&t.attr("y",e)),t.x=i,t.y=e}}widthSetter(t){this.widthSetting=eU(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=eV(this.paddingLeft,t),i=eV(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}eZ.emptyBBox={width:0,height:0,x:0,y:0},eZ.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e_,isNumber:eK,pick:eJ}=$;function eQ(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=eJ(o.r,i),h=eJ(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&h0)return l;if(t+n>i-a){if(h>e+a&&he+a&&h0){let i=hs&&na&&l.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return eQ(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:e0,roundedRect:e1,square:e0,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:e3,SVG_NS:e5,win:e6}=k,{attr:e9,extend:e4,fireEvent:e8,isString:e7,objectEach:it,pick:ie}=$,ii=(t,e)=>t.substring(0,e)+"…",is=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=ie(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new t_(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(e3.createTextNode(this.unescapeEntities(s)));e7(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=e9(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),e9(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,ii),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(e3.createTextNode(e),t);let s=e3.createElementNS(e5,"tspan");s.textContent="​",e9(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,ii)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===e6.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===e6.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),e4(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),e8(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(n=a(i,g)),h=f(g,n&&n.length-1),p===u?p=u+1:h>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=n||a(e||i,g)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,ii)}i&&i.splice(0,g),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return it(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:io}=tf,{charts:ir,deg2rad:ia,doc:ih,isFirefox:il,isMS:id,isWebKit:ic,noop:ip,SVG_NS:iu,symbolSizes:ig,win:im}=k,{addEvent:ix,attr:iy,createElement:ib,crisp:iv,css:ik,defined:iw,destroyObjectProperties:iM,extend:iS,isArray:iT,isNumber:iC,isObject:iA,isString:iP,merge:iL,pick:iO,pInt:iE,replaceNested:iI,uniqueKey:iD}=$;class iB{constructor(t,e,i,s,o,r,a){let n,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iy(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iy(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ih.createTextNode("Created with Highcharts 12.0.2")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),il&&t.getBoundingClientRect&&((n=function(){ik(t,{left:0,top:0}),h=t.getBoundingClientRect(),ik(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=ix(im,"resize",n))}definition(t){return new t_([t]).addToDOM(this.defs.element)}getReferenceURL(){if((il||ic)&&ih.getElementsByTagName("base").length){if(!iw(e)){let t=iD(),i=new t_([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ih.body);ik(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ih.elementFromPoint(6,6);e="hitme"===(s&&s.id),ih.body.removeChild(i)}if(e)return iI(im.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iS({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iM(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iL({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new is(t).buildSVG()}getContrast(t){let e=tv.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=iL(io.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t_.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iL(m[0],t_.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),ix(d.element,id?"mouseover":"mouseenter",function(){3!==u&&d.setState(1)}),ix(d.element,id?"mouseout":"mouseleave",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iA(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iS({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==u&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iw(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iv(i[1],e)),iw(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iv(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iT(t)?e.d=t:iA(t)&&iS(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iA(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iA(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iA(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iS(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iy(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iO(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iC(e)&&(a.x=e),iC(i)&&(a.y=i),iC(s)&&(a.width=s),iC(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new im.Image;ix(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(n=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iS(a,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&iS(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iO(r&&r.width,ig[h]&&ig[h].width),s.imgheight=iO(r&&r.height,ig[h]&&ig[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iy(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iw(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iw(s.imgwidth)&&iw(s.imgheight)?l(s):(s.attr({width:0,height:0}),ib("img",{onload:function(){let t=ir[d.chartIndex];0===this.width&&(ik(this,{position:"absolute",top:"-999em"}),ih.body.appendChild(this)),ig[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iw(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iS(iB.prototype,{Element:eF,SVG_NS:iu,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:e2,draw:ip}),ei.registerRendererType("svg",iB,!0);let{composed:iN}=k,{attr:iz,css:iR,createElement:iW,defined:iH,extend:iX,getAlignFactor:iF,isNumber:iG,pInt:iY,pushUnique:ij}=$;function iU(t,e,i){let s=this.div?.style||i.style;eF.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i$=(t,e)=>{if(!t.div){let i=iz(t.element,"class"),s=t.css,o=iW("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=iU,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eF.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class iV extends eF{static compose(t){ij(iN,this.compose)&&(t.prototype.html=function(t,e,i){return new iV(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=iY(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),iG(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),iX(this.styles,t),iR(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,{display:g="block",whiteSpace:f}=n;if(iR(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n=[i,h,t.innerHTML,l,this.textAlign].join(","),d=-(this.parentGroup?.padding*1)||0,c,m=!1;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iR(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iR(t,{width:e>s||i||r?l+"px":"auto",display:g,whiteSpace:f||"normal"}),this.oldTextWidth=l,m=!0)}this.hasBoxWidthChanged=m,n!==this.cTT&&(c=e.fontMetrics(t).b,iH(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,d,d),this.getSpanCorrection(!iH(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,c,iF(h)));let{xCorr:x=0,yCorr:y=0}=this,b={left:`${p+x}px`,top:`${u+y}px`,textAlign:h,transformOrigin:`${(s??p)-x-p-d}px ${(o??u)-y-u-d}px`};(r||a)&&(b.transform=`scale(${r??1},${a??1})`),iR(t,b),this.cTT=n,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){iR(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=i$(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t_.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let iq=iV.prototype;iq.visibilitySetter=iq.opacitySetter=iU,iq.ySetter=iq.rotationSetter=iq.rotationOriginXSetter=iq.rotationOriginYSetter=iq.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(r||(r={}));let iZ=r,{addEvent:i_,isFunction:iK,objectEach:iJ,removeEvent:iQ}=$;(a||(a={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},iJ(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(iQ(t,i,t.eventOptions[i]),delete t.eventOptions[i]),iK(e)&&(t.eventOptions[i]=e,i_(t,i,e,{order:0})))})};let i0=a,{deg2rad:i1}=k,{clamp:i2,correctFloat:i3,defined:i5,destroyObjectProperties:i6,extend:i9,fireEvent:i4,getAlignFactor:i8,isNumber:i7,merge:st,objectEach:se,pick:si}=$,ss=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,i4(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=si(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,u=l.info,g=t.label,f,m,x,y=this.parameters.category||(o?si(o[n],a[n],n):n);r&&i7(y)&&(y=i3(r.lin2log(y))),e.dateTime&&(u?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&u.higherRanks[n]||u.unitName])).main:i7(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:u,value:y};i4(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),ee.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),w=m&&m.list;w?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(l*i1))):(f=s-d*c,m=s+(1-d)*c,fn&&(u=n-t.x+u*d,g=-1),(u=Math.min(p,u))u||e.autoRotation&&(h.styles||{}).width)&&(x=u)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(i9({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):se(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=si(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(i3(p)c)&&(i=0);let u=si(i,this.label&&this.label.newOpacity,1);i=si(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,u,t),this.isNew=!1,i4(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=si(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,h=t.y,l=si(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=si(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;n&&i7(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):u=!1,l&&s%l&&(u=!1),u&&i7(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:so}=tz,{xAxis:sr,yAxis:sa}=iZ,{defaultOptions:sn}=tf,{registerEventOptions:sh}=i0,{deg2rad:sl}=k,{arrayMax:sd,arrayMin:sc,clamp:sp,correctFloat:su,defined:sg,destroyObjectProperties:sf,erase:sm,error:sx,extend:sy,fireEvent:sb,getClosestDistance:sv,insertItem:sk,isArray:sw,isNumber:sM,isString:sS,merge:sT,normalizeTickInterval:sC,objectEach:sA,pick:sP,relativeLength:sL,removeEvent:sO,splat:sE,syncTimeout:sI}=$,sD=(t,e)=>sC(e,void 0,void 0,sP(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sy(sn,{xAxis:sr,yAxis:sT(sr,sa)});class sB{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sb(this,"init",{userOptions:e}),this.opposite=sP(e.opposite,this.opposite),this.side=sP(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sb(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sP(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sw(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sg(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sP(r.crosshair,sE(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sk(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sg(this.reversed)&&(this.reversed=!0),this.labelRotation=sM(a.rotation)?a.rotation:void 0,sh(this,r),sb(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sT(e,sn[this.coll],t),sb(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sM(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sn.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sb(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sM(a)||a instanceof Date||(o=o.filter(sM),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sP(e.dataMin,a),a),e.dataMax=Math.max(sP(e.dataMax,n),n)));else{let t=i.applyExtremes();sM(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sP(e.dataMin,a),a)),sM(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sP(e.dataMax,n),n)),sg(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sb(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sM(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,u=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(u=(t=t*d+c-h)/p+n,l&&(u=a.lin2val(u))):(l&&(t=a.val2lin(t)),u=d*(t-n)*p+c+d*h+(sM(r)?p*r:0),a.isRadial||(u=su(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sp(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sb(this,"getPlotLinePath",b,function(t){u=f=(c=sp(c=sP(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,g=m=h-c-d,sM(c)?e.horiz?(g=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=f=y(u,s,s+e.width)):(u=s,f=l-e.right+(i.scrollablePixelsX||0),g=m=y(g,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=su(Math.floor(e/t)*t),n=su(Math.ceil(i/t)*t),h=[];if(su(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=su(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sP(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sM(s)&&sM(o)&&sM(r)&&s-o=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sd(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sc(l))-ot-e),t=sv([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sw(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sg(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sP(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sM(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sP(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sS(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sb(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sM(t)&&sM(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sM(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:f,softMax:m,softMin:x}=h,y=sM(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,w=0,M,S=sM(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,T,C,A,P;if(r||e||y||this.getTickAmount(),A=sP(this.userMin,d.parse(h.min)),P=sP(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,M=y.getExtremes(),this.min=sP(M.min,M.dataMin),this.max=sP(M.max,M.dataMax),this.type!==y.type&&sx(11,!0,i)):(l&&sg(c)&&sM(s)&&sM(o)&&(o>=c?(T=c,k=0):s<=c&&(C=c,v=0)),this.min=sP(A,T,o),this.max=sP(P,C,s)),sM(this.max)&&sM(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sP(o,this.min))&&sx(10,!0,i),this.min=su(n.log2lin(this.min),16),this.max=su(n.log2lin(this.max),16)),this.range&&sM(o)&&(this.userMin=this.min=A=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sb(this,"foundExtremes"),this.adjustForMinRange(),sM(this.min)&&sM(this.max)){if(!sM(this.userMin)&&sM(x)&&xthis.max&&(this.max=P=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(w=this.max-this.min)||(!sg(A)&&k&&(this.min-=w*k),sg(P)||!v||(this.max+=w*v)),!sM(this.userMin)&&sM(g)&&(this.min=Math.max(this.min,g)),!sM(this.userMax)&&sM(u)&&(this.max=Math.min(this.max,u)),l&&sM(o)&&sM(s)){let t=c||0;!sg(A)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sg(P)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sg(h.min)?this.max=this.min:sg(h.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&sM(this.min)&&sM(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sP(S,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sb(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sb(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=sP(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sx(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sD(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sM(this.min)&&sM(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sb(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sb(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sM(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sM(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sM(this.threshold)){let t=sp((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sg(t.tickInterval)||i||!(this.lenr.push(su(r[r.length-1]+p)),f=()=>r.unshift(su(r[0]-p));if(sM(n)&&(u=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(u=a-1-u)),t.hasData()&&sM(s)&&sM(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sM(u)&&sM(t.threshold)){for(;r[u]!==l||r.length!==a||r[0]>s||r[r.length-1]t.threshold?f():g();if(p>8*t.tickInterval)break;p*=2}n()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sb(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sb(this,"setExtremes",o=sy(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sL(sP(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sL(sP(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sL(sP(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sL(sP(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?su(t.lin2log(this.min)):this.min,max:t?su(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sP(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sb(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=su(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),su(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sM(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sl*i))))+Math.abs(i/360))g&&(g=i)}),this.maxLabelLength=g,this.autoRotation?g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sy(a,{width:`${p}px`,lineClamp:u})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sg(this.min)&&sg(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sT(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new ss(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sM(s.crossing),u=e.axisOffset,g=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,w;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sP(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sA(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sg(y=d.offset)?0:sP(d.margin,i?5:10))),t.renderLine(),t.offset=f*sP(s.offset,u[o]?u[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},w=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=w,k+=f*(i?sP(c.y,t.tickRotCorr.y+f*c.distance):sP(c.x,f*c.distance))),t.axisTitleMargin=sP(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&g){let e=this.tickSize("tick");u[o]=Math.max(u[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a&&a.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[h]=Math.max(g[h],i)}sb(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?u+l:g+(n?this.width:0)+h+l,y:e?g+d-(n?this.height:0)+h:u+d};return sb(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new ss(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new ss(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=a.stackLabels,g=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=so(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sA(t,function(t){t.isActive=!1})}),sM(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sM(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new ss(i,-1,null,!0)),d[-1].render(-1))),g&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sF(t=sG("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(h||(h={}));let sY=h,{erase:sj,extend:sU,isNumber:s$}=$;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!s$(this.min)||!s$(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),sV.compose(s5,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){s0(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),u=e.borderWidth,g=e.label,{label:f,svgElem:m}=this,x=[],y,b=sK(c)&&sK(d),v=sK(p),k=!m,w={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},M=b?"bands":"lines";if(!t.chart.styledMode&&(v?(w.stroke=o||"#999999",w["stroke-width"]=s3(e.width,1),e.dashStyle&&(w.dashstyle=e.dashStyle)):b&&(w.fill=o||"#e6e9ff",u&&(w.stroke=e.borderColor,w["stroke-width"]=u))),l.zIndex=a,M+="-"+a,(y=t.plotLinesAndBandsGroups[M])||(t.plotLinesAndBandsGroups[M]=y=n.g("plot-"+M).attr(l).add()),m||(this.svgElem=m=n.path().attr(w).add(y)),sK(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(sK(c)&&sK(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(s2(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),g&&(sK(g.text)||sK(g.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(g=s1({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},g),this.renderLabel(g,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(s1({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s_(h),c=s_(l),p=sZ(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:sZ(l)-c}),(!n.alignValue||"left"===n.alignValue||sK(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return sK(t.formatter)?t.formatter.call(this):t.text}destroy(){sQ(this.axis.plotLinesAndBands,this),delete this.axis,sJ(this)}}let{animObject:s6}=tz,{format:s9}=ee,{composed:s4,dateFormats:s8,doc:s7,isSafari:ot}=k,{distribute:oe}=en,{addEvent:oi,clamp:os,css:oo,discardElement:or,extend:oa,fireEvent:on,isArray:oh,isNumber:ol,isObject:od,isString:oc,merge:op,pick:ou,pushUnique:og,splat:of,syncTimeout:om}=$;class ox{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||of(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),or(this.container)),$.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=of(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+ou(t.colorIndex,o.colorIndex),r&&r.className].filter(oc).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=ei.getRendererType();this.container=a=k.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),oo(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&k.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=s7,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v("y"),w=v("x"),M,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let T=!this.followPointer&&ou(i.ttBelow,!d&&!n===S),C=function(t,e,i,o,a,n,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+g)}},A=function(t,e,i,o,r){if(re-s)return!1;re-o/2?u[t]=e-o-2:u[t]=r-i/2},P=function(t){[k,w]=[w,k],M=t},L=()=>{!1!==C.apply(0,k)?!1!==A.apply(0,w)||M||(P(!0),L()):M?u.x=u.y=0:(P(!0),L())};return(n&&!d||this.len>1)&&P(),L(),u}hide(t){let e=this;$.clearTimeout(this.hideTimer),t=ou(t,this.options.hideDelay),this.isHidden||(this.hideTimer=om(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=ou(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=s6(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=of(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;$.clearTimeout(this.hideTimer),this.allowShared=!(!oh(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let f=oc(h)?s9(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=ou(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:os(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}on(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{positioner:g},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?s7.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,k=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:w,top:M}=f.getChartPosition(),S=h+x,T=0,C=a-l;function A(t,e,s,o,r=!0){let a,n;return s?(a=k?0:C,n=os(t-o/2,y.left,y.right-o-(i.outside?w:0))):(a=e-S,n=os(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}oc(t)&&(t=[!1,t]);let P=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:u.padding,r:u.borderRadius};c||(t.fill=u.backgroundColor,t["stroke-width"]=u.borderWidth??1),o=v.label("",0,0,u[r?"headerShape":"shape"],void 0,void 0,u.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(u.style).attr({stroke:u.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(T=m.height,C+=T,k&&(S-=T));let{anchorX:w,anchorY:M}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+os(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=os(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof M){let e=m.height+1,s=g?g.call(i,x,e,r):A(w,M,l,x);t.push({align:g?0:void 0,anchorX:w,anchorY:M,boxWidth:x,point:r,rank:ou(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!g&&P.some(t=>{let{outside:e}=i,s=(e?w:0)+t.anchorX;return ss})&&(P=P.map(t=>{let{x:e,y:i}=A(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return oa(t,{target:i,x:e})})),i.cleanSplit(),oe(P,C);let L={left:w,right:w};P.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&w+eL.right&&(L.right=w+e))}),P.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(L.right-L.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:O,outside:E,renderer:I}=i;if(E&&O&&I){let{width:t,height:e,x:i,y:s}=b.getBBox();I.setSize(t+i,e+s,!1),O.style.left=L.left+"px",O.style.top=M+"px"}ot&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return on(this,"headerFormatter",a,function(e){if(r&&!n&&ol(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(od(n)){let t=n;s8[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=s9(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,op(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),u=(o.positioner||this.getPosition).call(this,h,n,t),g=k.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(u.x+=l-s,u.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(os(h+x,0,g.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(oo(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-u.x,m+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),f,m)}}!function(t){t.compose=function(e){og(s4,"Core.Tooltip")&&oi(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(ox||(ox={}));let oy=ox,{animObject:ob}=tz,{defaultOptions:ov}=tf,{format:ok}=ee,{addEvent:ow,crisp:oM,erase:oS,extend:oT,fireEvent:oC,getNestedProperty:oA,isArray:oP,isFunction:oL,isNumber:oO,isObject:oE,merge:oI,pick:oD,syncTimeout:oB,removeEvent:oN,uniqueKey:oz}=$;class oR{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oT({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oT(this,t=oR.prototype.optionsToObject.call(this,t)),this.options=this.options?oT(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oR.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oO(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oO(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=ob(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oN(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oS(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oB(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oC(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oA(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oz()),this.resolveColor(),t.chart.pointCount++,oC(this,"afterInit")}isValid(){return(oO(this.x)||this.x instanceof Date)&&oO(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(oO(t)||null===t)r[s[0]]=t;else if(oP(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);h0?oR.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oO(i)&&oO(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oD(this.options.colorIndex,a),this.color=oD(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oE(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),ok(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oE(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oE(l.data[o],!0)||oE(t,!0)?r.options:oD(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oD(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oD(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oI(this.series.options.point,this.options),i=e.events?.[t];oL(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=ow(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oN(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=ov.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),f=oD(d.options.chart.animation,o.animation);let e=g.opacity;i.options.inactiveOtherPoints&&oO(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(g,f)}u&&this.graphic.animate(u,oD(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),u&&(m?m[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,u.x,u.y,u.width,u.height,oI(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oD(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oT({fill:this.color||i.color,"fill-opacity":y.opacity},t_.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oC(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oM(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oW=oR,{parse:oH}=tv,{charts:oX,composed:oF,isTouchDevice:oG}=k,{addEvent:oY,attr:oj,css:oU,extend:o$,find:oV,fireEvent:oq,isNumber:oZ,isObject:o_,objectEach:oK,offset:oJ,pick:oQ,pushUnique:o0,splat:o1}=$;class o2{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!k.chartCount&&(o2.unbindDocumentMouseUp.forEach(t=>t.unbind()),o2.unbindDocumentMouseUp.length=0,o2.unbindDocumentTouchEnd&&(o2.unbindDocumentTouchEnd=o2.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),oK(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return oq(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(s=t-n,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+n),a&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o_(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(un+l&&(u=n+l),gh+d&&(g=h+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(u,g);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oH("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return oq(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}oZ(i.index)&&(this.selectionMarker=s.destroy())}i&&oZ(i.index)&&(oU(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o_(r,!0)&&r.series&&(!o_(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&oZ(o.x)&&oZ(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=oJ(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&oQ(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};oq(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=oV(t.points,function(t){return t.x===c.x&&!t.isNull});o_(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),oq(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=oj(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),oq(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):oQ(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o$(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(oq(i.series,"click",o$(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(o$(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&oq(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),k.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oX[oQ(o2.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oX[oQ(o2.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&oQ(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(oq(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&o1(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&o1(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n&&n.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,u=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(u?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oY(s.container.ownerDocument,"mousemove",t=>oX[o2.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=oQ((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=oV(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oY(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oY(t,"mouseleave",this.onContainerMouseLeave.bind(this))),o2.unbindDocumentMouseUp.some(t=>t.doc===e)||o2.unbindDocumentMouseUp.push({doc:e,unbind:oY(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oY(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oY(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oY(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),o2.unbindDocumentTouchEnd||(o2.unbindDocumentTouchEnd=oY(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oY(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oG)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=oQ(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oY(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oY(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||oU(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||oU(i,{"touch-action":oQ(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=k.charts[oQ(o2.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(o2.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),oQ(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=oQ(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}o2.unbindDocumentMouseUp=[],function(t){t.compose=function(e){o0(oF,"Core.Pointer")&&oY(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(o2||(o2={}));let o3=o2,{fireEvent:o5,isArray:o6,objectEach:o9,uniqueKey:o4}=$,o8=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||o4(),this.modified=this,this.rowCount=0,this.versionTag=o4();let e=0;o9(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,o9(this.columns,e=>{o6(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;o9(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(o5(this,"afterSetColumns"),this.versionTag=o4())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;o9(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(o5(this,"afterSetRows"),this.versionTag=o4())}},{extend:o7,merge:rt,pick:re}=$;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,u=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),g={},f,m=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"===r.linecap||(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,u],["L",n-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(re(m.radius,d),d);0===l.indexOf("url")&&(m=rt(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,u-t,2*t,2*t,o7({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,re(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(d||(d={}));let ri=d,{defaultOptions:rs}=tf,{extend:ro,extendClass:rr,merge:ra}=$;!function(t){function e(e,i){let s=rs.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oW),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=k.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rs.plotOptions||{};if(s=s||"",n[i]=ra(n[s],o),delete t.seriesTypes[i],e(i,rr(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oW{}ro(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(c||(c={}));let rn=c,{animObject:rh,setAnimation:rl}=tz,{defaultOptions:rd}=tf,{registerEventOptions:rc}=i0,{svg:rp,win:ru}=k,{seriesTypes:rg}=rn,{arrayMax:rf,arrayMin:rm,clamp:rx,correctFloat:ry,crisp:rb,defined:rv,destroyObjectProperties:rk,diffObjects:rw,erase:rM,error:rS,extend:rT,find:rC,fireEvent:rA,getClosestDistance:rP,getNestedProperty:rL,insertItem:rO,isArray:rE,isNumber:rI,isString:rD,merge:rB,objectEach:rN,pick:rz,removeEvent:rR,syncTimeout:rW}=$;class rH{constructor(){this.zoneAxis="y"}init(t,e){let i;rA(this,"init",{options:e}),this.dataTable??(this.dataTable=new o8);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rT(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rc(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rz(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rO(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rA(this,"afterInit")}is(t){return rg[t]&&this instanceof rg[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rA(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rz(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rO(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rS(18,!0,s)})}),rA(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rz(this.pointInterval,i.pointInterval,1),o&&rI(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rI(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rT(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rv(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rB(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rA(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rd.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=n.userOptions;let u=rB(h,s.series,p,r);this.tooltipOptions=rB(rd.tooltip,rd.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rz(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===h.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map(t=>({...t}));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},a||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&rv(g[g.length-1].value)&&g.push(a?{}:{color:this.color,fillColor:this.fillColor}),rA(this,"afterSetOptions",{options:u}),u}getName(){return rz(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rv(o=rz("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rd.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oW&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rC(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rI(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rI(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rv(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rI(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,a&&(c=l+1)):o[l]&&(o[l].touched=!0),(!n||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=rf(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),u=this.pointValKey||"y",g=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rB(!0,t));let k=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(rE(t)&&(f||rI(t[0])));if(rI(i)&&rI(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[u]:i})}else if(o(i)&&o(s)){if(g){let e=i.length===g?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=g;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[u]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rL(i,t),o=rL(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,u,g,f,m=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,f=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]f?x=new o8:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,g,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rP([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rS(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rA(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a=e){h=Math.max(0,a-1);break}for(n=a;ni){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new o8({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],u=this.dataColumnKeys(),g,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,u=o||this.cropped||!i,g,f,m,x=0,y=0;for(i&&(x=(g=i.getExtremes()).min,y=g.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rI(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rm(d),dataMax:rf(d)};return rA(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rN(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rA(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||"markerGroup"],g=this.xAxis,f=rz(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=rz(o.radius,s&&s.radius);e&&(n=s.states[e],l=rz((h=o.states&&o.states[e])&&h.radius,n&&n.radius,l&&l+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rI(l)&&d&&(i.crisp&&(d[0]=rb(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,u=rz(o.lineWidth,i.lineWidth),g=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},u=rz((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,u+rz(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":u,fill:c,opacity:g=rz(l.opacity,h.opacity,g)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(ru.navigator.userAgent),n=o.data||[];for(rA(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rM(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rk(t,void 0,!0);$.clearTimeout(o.animationTimeout),rN(o,function(t,e){t instanceof eF&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rM(r.series,o),r.orderItems("series"),rN(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rx(d.toPixels(rz(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,u=0,f=r.len,y=a.len;c?(p=o,f=x):(u=o,y=x);let b=[["M",p,u],["L",f,u],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(g(v),t&&g(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rv(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rv(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rR(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rh(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rA(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rW(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rA(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rW(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i){let s=this,[o,r]=this.kdAxisArray,a=e?"distX":"dist",n=(s.options.findNearestPointBy||"").indexOf("y")>-1?2:1,h=!!s.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,n,l){let d=i.point,c=s.kdAxisArray[n%l],p,u,g=d;!function(t,e){let i=t[o],s=e[o],a=rv(i)&&rv(s)?i-s:null,n=t[r],l=e[r],d=rv(n)&&rv(l)?n-l:0,c=h&&e.marker?.radius||0;e.dist=Math.sqrt((a&&a*a||0)+d*d)-c,e.distX=rv(a)?Math.abs(a)-c:Number.MAX_VALUE}(e,d);let f=(e[c]||0)-(d[c]||0)+(h&&d.marker?.radius||0),m=f<0?"left":"right",x=f<0?"right":"left";return i[m]&&(g=(p=t(e,i[m],n+1,l))[a]=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(rp?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rA(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,u=n.data,g=this.getColumn("x");e=rz(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=g.length,this.requireSorting&&mm;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),u?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,u,...Object.values(d.getColumns())].filter(rv).forEach(t=>{t.shift()}),d.rowCount-=1,rA(d,"afterDeleteRows"))),!1!==o&&rA(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rv).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rA(n,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rl(i,o),e=rz(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rz(t,!0)&&r.redraw(e)}!1!==i?rA(o,"remove",null,a):a()}update(t,e){rA(this,"update",{options:t=rw(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rg[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],u=t.type||o.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));u=u||r,g?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rT(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rB(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!g&&{data:i.options.data},t,h),g&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rg[u]){if(f=u!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rg[u].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rT(i,rg[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rS(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rA(this,"afterUpdate"),rz(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rz(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rv(r)?i!==o:i!==rz(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rA(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rA(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rz(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=rz(a[t].opacity,l)),o&&!o.dashstyle&&rI(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rA(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rA(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){ri[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rH.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rH.types=rn.seriesTypes,rH.registerType=rn.registerSeriesType,rT(rH.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oW,requireSorting:!0,sorted:!0}),rn.series=rH;let rX=rH,{animObject:rF,setAnimation:rG}=tz,{registerEventOptions:rY}=i0,{composed:rj,marginNames:rU}=k,{distribute:r$}=en,{format:rV}=ee,{addEvent:rq,createElement:rZ,css:r_,defined:rK,discardElement:rJ,find:rQ,fireEvent:r0,isNumber:r1,merge:r2,pick:r3,pushUnique:r5,relativeLength:r6,stableSort:r9,syncTimeout:r4}=$;class r8{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rY(this,e),rq(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),rq(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=r3(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=r2(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=r3(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(r2(!0,this.options,t)),"events"in this.options&&rY(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,r3(e,!0)&&i.redraw(),r0(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof rX||t instanceof oW)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(r2(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,r0(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[rK(e.translateY)?"animate":"attr"](o,void 0,()=>{r0(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&rJ(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,r_(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?r3(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&r3(i.showInLegend,!rK(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),r0(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!rK(t[a])&&(i[rU[a]]=Math.max(i[rU[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+r3(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=rQ(a?t.points:t.points.slice(0).reverse(),function(t){return r1(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),r$(i,e.plotHeight)))t=o.item.legendItem||{},r1(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=r6(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),r9(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),r0(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=r2(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(r2(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=r3(l.animation,!0),c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?k.attr({height:t}):k&&(e.clipRect=k.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,k=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-n,0),this.currentPage=r3(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((u[e-1].legendItem||{}).pageIx=o-1),e===u.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),k||(k=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(k)),g(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&rG(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),r4(()=>{r0(this,"afterScroll",{currentPage:l})},rF(r3(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oW,n=t instanceof rX,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(r2(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),r0(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&r0(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=rZ("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),rq(t.checkbox,"click",function(e){let i=e.target;r0(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){r5(rj,"Core.Legend")&&rq(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(r8||(r8={}));let r7=r8,{animate:at,animObject:ae,setAnimation:ai}=tz,{defaultOptions:as}=tf,{numberFormat:ao}=ee,{registerEventOptions:ar}=i0,{charts:aa,doc:an,marginNames:ah,svg:al,win:ad}=k,{seriesTypes:ac}=rn,{addEvent:ap,attr:au,createElement:ag,css:af,defined:am,diffObjects:ax,discardElement:ay,erase:ab,error:av,extend:ak,find:aw,fireEvent:aM,getAlignFactor:aS,getStyle:aT,isArray:aC,isNumber:aA,isObject:aP,isString:aL,merge:aO,objectEach:aE,pick:aI,pInt:aD,relativeLength:aB,removeEvent:aN,splat:az,syncTimeout:aR,uniqueKey:aW}=$;class aH{static chart(t,e,i){return new aH(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aL(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aI(t.zoomType,e.type),key:aI(t.zoomKey,e.key),pinchType:aI(t.pinchType,e.pinchType),singleTouch:aI(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aO(e.resetButton,t.resetZoomButton)}}init(t,e){aM(this,"init",{args:arguments},function(){let i=aO(as,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=ak({},t),(this.renderTo=aL(o)?an.getElementById(o):o)||av(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tl(ak(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||ao).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=aa.length,aa.push(this),k.chartCount++,ar(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aM(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=ac[i];s||av(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=az(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?az(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+u:a+u;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return aM(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){aM(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),ai(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),u=!0):r&&(r.labelFormatter||r.labelFormat)&&(u=!0)),t.isDirtyData&&aM(t,"updatedData")}),u&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){aM(t,"afterSetExtremes",ak(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aM(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aM(this,"redraw"),aM(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aw(this.axes,i)||aw(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aI(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aO(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(ak("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aO(o),n=i?.textPxLength||0;if(i&&r){aM(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(a.width/n,1),f=Math.max(p,g),m=aO({y:"bottom"===d?h:u+h},{align:"title"===t?gp?this.chartWidth:a.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${a.x+n*f*aS(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,aM(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:aT(this.renderTo,"width",!0)||0,height:aT(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,aB(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(af(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(an.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(an.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,an.body.appendChild(e)),("none"===aT(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),af(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==an.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=aW(),r=this.renderTo,a=aD(au(r,s));aA(a)&&aa[a]&&aa[a].hasRendered&&aa[a].destroy(),au(r,s,this.index),r.innerHTML=t_.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;af(r,{overflow:"hidden"}),this.styledMode||(t=ak({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=ag("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||af(l,{width:aI(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!al?ei.getRendererType(i.renderer):iB;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),ai(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aM(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!am(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!am(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),aM(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),ah.forEach(function(i,o){am(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return ax(this.userOptions,as)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&($.clearTimeout(e.reflowTimeout),e.reflowTimeout=aR(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=ap(ad,"resize",e);ap(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ai(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?at:af)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aM(s,"resize"),setTimeout(()=>{s&&aM(s,"endResize")},ae(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),aM(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){aM(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=aP(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aI(e[i+s],o[r])})}),ah.forEach(function(e,i){t[e]=aI(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,w="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),w="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),k={fill:a||"none"},(b||m["stroke-width"])&&(k.stroke=t.borderColor,k["stroke-width"]=b),m.attr(k).shadow(t.shadow)),m[w]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),w="animate",x||(w="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[w](u),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(u)):this.plotBGImage=e.image(h,l,d,c,p).add())),g?g.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),w="animate",y||(w="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[w](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,aM(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=ac[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=ac[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aL(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aI(t.options.visible,s.options.visible,t.visible))}}),aM(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),aM(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new ss(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aI(i.reserveSpace,!aA(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aO(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(ad.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(aM(e,"destroy"),e.renderer.forExport?ab(aa,e):aa[e.index]=void 0,k.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),aN(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t_.emptyHTML,aN(o),r&&ay(o)),aE(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aC(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aM(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aM(this,"load"),aM(this,"render"),am(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aM(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),af(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:u,minPointOffset:g=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=aI(a[x],t.len),v=aI(s[x],t.len),k=10>Math.abs(b)?1:b/v,w=(s[y]||0)+v/2-t.pos,M=w-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(w<0||w>t.len))continue;let T=t.toValue(M,!0)+(r||t.isOrdinal?0:g*S),C=t.toValue(M+u/k,!0)-(r||t.isOrdinal?0:g*S||0),A=t.allExtremes;if(T>C&&([T,C]=[C,T]),1===k&&!o&&"yAxis"===t.coll&&!A){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);A??(A={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aA(t.dataMin)&&aA(t.dataMax)&&(A.dataMin=Math.min(t.dataMin,A.dataMin),A.dataMax=Math.max(t.dataMax,A.dataMax))}t.allExtremes=A}let{dataMin:P,dataMax:L,min:O,max:E}=ak(t.getExtremes(),A||{}),I=l.parse(f.min),D=l.parse(f.max),B=P??I,N=L??D,z=C-T,R=t.categories?0:Math.min(z,N-B),W=B-R*(am(I)?0:f.minPadding),H=N+R*(am(D)?0:f.maxPadding),X=t.allowZoomOutside||1===k||"zoom"!==n&&k>1,F=Math.min(I??W,W,X?O:W),G=Math.max(D??H,H,X?E:H);(!t.isOrdinal||t.options.overscroll||1!==k||o)&&(T=1&&(C=T+z)),C>G&&(C=G,k>=1&&(T=C-z)),(o||t.series.length&&(T!==O||C!==E)&&T>=F&&C<=G)&&(r?r[t.coll].push({axis:t,min:T,max:C}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:T,o?void 0:C,!1,!1,{move:M,trigger:n,scale:k}),!o&&(T>F||C{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}ak(aH.prototype,{callbacks:[],collectionsWithInit:{xAxis:[aH.prototype.addAxis,[!0]],yAxis:[aH.prototype.addAxis,[!1]],series:[aH.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let{stop:aX}=tz,{composed:aF}=k,{addEvent:aG,createElement:aY,css:aj,defined:aU,erase:a$,merge:aV,pushUnique:aq}=$;function aZ(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new aK(this)),t?.applyFixed()}function a_(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class aK{static compose(t,e,i){aq(aF,this.compose)&&(aG(t,"afterInit",a_),aG(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),aG(e,"render",aZ),aG(i,"show",a_))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=aV(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),aU(s)&&(t.scrollablePlotBox=aV(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),aU(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=ei.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=aY("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=aY("div",{className:"highcharts-scrolling"},a,n),l=this.innerContainer=aY("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=aY("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),aj(t.renderTo,{overflow:"visible"}),aG(t,"afterShowResetZoom",r),aG(t,"afterApplyDrilldown",r),aG(t,"afterLayOutTitles",r),aG(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+u;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),aX(t.container),aj(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),aj(s,{width:`${r}px`,height:`${a}px`}),aU(i)||(s.scrollLeft=p*g,s.scrollTop=u*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,w=l+c-p,M=d+h-u,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",w,y],["L",r,y],["L",r,v],["L",w,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,M],["L",b,a],["L",k,a],["L",k,M],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=aK.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])aq(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a$(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}aK.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:aJ}=ee,{series:aQ}=rn,{destroyObjectProperties:a0,fireEvent:a1,getAlignFactor:a2,isNumber:a3,pick:a5}=$,a6=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){a0(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?aJ(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:a5(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,a1(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===a5(l.overflow,"justify"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&aQ.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*a2(l.textAlign||"center"),rotationOriginY:t.height/2}),a5(!i&&l.crop,!0)&&(s=a3(h.x)&&a3(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}a1(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*a2(i)-1),y:t.height/2*2*(1-a2(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:a5(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=a5(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||a3(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(g?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:a9}=tz,{series:{prototype:a4}}=rn,{addEvent:a8,correctFloat:a7,defined:nt,destroyObjectProperties:ne,fireEvent:ni,isNumber:ns,objectEach:no,pick:nr}=$;function na(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nr(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function nn(){let t=this.stacking;if(t){let e=t.stacks;no(e,(t,i)=>{ne(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nh(){this.stacking||(this.stacking=new ng(this))}function nl(t,e,i,s){return!nt(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function nd(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function nc(t,e,i){let s=e.total?100/e.total:0;t[0]=a7(t[0]*s),t[1]=a7(t[1]*s),this.stackedYData[i]=t[1]}function np(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?a4.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nu(t,e){let i,s,o,r,a,n,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,f=g.threshold||0,m=g.startFromThreshold?f:0,x=g.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,k=t.stacking,w=k.stacks,M=k.oldStacks;for(k.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&w[r]?.[e]?(r=w[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):a7(S+Math.abs(g))):"group"===l?ns(u)&&S++:S=a7(S+g),"group"===l?o.cumulative=(S||1)-1:o.cumulative=a7(nr(o.cumulative,m)+g),o.total=S,null!==u&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class ng{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{no(t,t=>{t.cumulative=t.total})}))}resetStacks(){no(this.stacks,t=>{no(t,(e,i)=>{ns(e.touched)&&e.touched{no(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(p||(p={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(a8(t,"init",nh),a8(t,"destroy",nn),s.getStacks=na,o.getStackIndicator=nl,o.modifyStacks=nd,o.percentStacker=nc,o.setGroupedPoints=np,o.setStackedPoints=nu)};let nf=p,{defined:nm,merge:nx,isObject:ny}=$;class nb extends rX{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nx({filterUnits:"userSpaceOnUse"},ny(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,u=l.plotY,g=t[d-1],f=l.isNull||"number"!=typeof u;(l.leftCliff||g&&g.rightCliff)&&!i&&(n=!0),f&&!nm(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",g.plotX,u]]:2===h?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nb.defaultOptions=nx(rX.defaultOptions,{legendSymbol:"lineMarker"}),rn.registerSeriesType("line",nb);let{seriesTypes:{line:nv}}=rn,{extend:nk,merge:nw,objectEach:nM,pick:nS}=$;class nT extends nv{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nv.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(n.getThreshold(r.threshold)),g=nS(r.connectNulls,"percent"===a),f=function(i,s,o){let r=t[i],g=a&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?g[0]:g[1])+m,y=g[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?u:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?u:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,u){let g=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[u+i]],g=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),a=2*h-o):op&&a>h?(a=Math.max(p,h),o=2*h-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;nq(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&nj(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(nF(s)){if(nU(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=nV(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,h=nV(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),rX.prototype.translate.apply(t),t.points.forEach(function(s){let o=nV(s.yBottom,g),m=999+Math.abs(o),x=s.plotX||0,y=nH(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,w=d,M=x+c,S=f;h&&Math.abs(k)h?o-h:g-(b?h:0)),nF(s.options.pointWidth)&&(M-=Math.round(((w=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(M=t.adjustForMissingColumns(M,w,s,l)),s.barX=M,s.pointWidth=w,s.tooltipPos=e.inverted?[nH(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-M-S/2,k]:[r.left-e.plotLeft+M+S/2,nH(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(M,s.isNull?g:v,S,s.isNull?0:k)}),nY(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,u=nV(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=n$(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&nR(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,u=nV(a.opacity,u));let g={fill:l,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=nQ(h)&&nQ(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===n4(i.overflow,a?"none":"justify"),u=this.visible&&!1!==t.visible&&nQ(h)&&(t.series.forceDL||a&&!p||c||n4(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=n0({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),n0(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(n6(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=n2(i.align)*(l.width-h.width),e.alignAttr.y+=n2(i.verticalAlign)*(l.height-h.height),e[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(n4(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&a&&(e.placed=!1),u||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(n5(l)&&l||n5(a)&&a||"#000000"),c=h(i),{animation:p,defer:u}=c[0],g=u?nK(s,p,i):{defer:0,duration:0};n1(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach(t=>{let a=t.dataLabels||[];n7(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let l=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:u,style:g={}}=n,f,m,x,y={},b=a[h],v=!b,k;l&&(m=nQ(f=n4(n[t.formatPrefix+"Format"],n.format))?nJ(f,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(g.color=n4(n.color,g.color,n5(i.color)?i.color:void 0,"#000000"),"contrast"===g.color?("none"!==c&&(k=c),t.contrastColor=r.getContrast("auto"!==k&&k||t.color||i.color),g.color=k||!nQ(u)&&n.inside||0>n8(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(g.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),n9(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&nQ(m)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),l&&nQ(m)&&(b?y.text=m:(b=r.label(m,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?g.width&&b.css({width:g.width,textOverflow:g.textOverflow,whiteSpace:g.whiteSpace}):b.css(g).shadow(n.shadow),n1(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[h]&&a[h]!==b&&a[h].destroy(),a[h]=b))});let h=a.length;for(;h--;)a[h]&&a[h].isActive?a[h].isActive=!1:(a[h]?.destroy(),a.splice(h,1));t.dataLabel=a[0],t.dataLabels=a})),n1(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,u=p?p.top-a.plotTop:0,{x:g=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===n&&g>=0?(e.align="left",e.inside=!0):g-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&("left"===n&&g<=0?(e.align="right",e.inside=!0):g+=a.plotWidth-m,x=!0),(m=i.y+l+u)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+u)>a.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=g,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(n3(t)&&!n3(e))i=t.map(function(t){return n6(t,e)});else if(n3(e)&&!n3(t))i=e.map(function(e){return n6(t,e)});else if(n3(t)||n3(e)){if(n3(t)&&n3(e))for(s=Math.max(t.length,e.length);s--;)i[s]=n6(t[s],e[s])}else i=n6(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return n7(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=l,n.hasDataLabels=e)}}(u||(u={}));let ht=u,{composed:he}=k,{series:hi}=rn,{merge:hs,pick:ho,pushUnique:hr}=$;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,h=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=ho(t.below,t.plotY>ho(this.translatedThreshold,h)),c=ho(i.inside,!!this.options.stacking);if(l){if(s=hs(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),hu(hf.prototype,{drawTracker:hd.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hp(hf,"afterTranslate",function(){this.applyJitter()}),rn.registerSeriesType("scatter",hf);let{deg2rad:hm}=k,{fireEvent:hx,isNumber:hy,pick:hb,relativeLength:hv}=$;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let u=[hb(r?.[0],"50%"),hb(r?.[1],"50%"),hb(l&&l<0?void 0:t.size,"100%"),hb(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rX||(u[3]=0),c=0;c<4;++c)p=u[c],h=c<2||2===c&&/%$/.test(p),u[c]=hv(p,[s,o,a,u[2]][c])+(h?i:0);return u[3]>u[2]&&(u[3]=u[2]),hy(n)&&2*n0&&(u[3]=u[2]-2*n),hx(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=hy(t)?t:0,s=hy(e)&&e>i&&e-i<360?e:i+360;return{start:hm*(i+-90),end:hm*(s+-90)}}}(f||(f={}));let hk=f,{setAnimation:hw}=tz,{addEvent:hM,defined:hS,extend:hT,isNumber:hC,pick:hA,relativeLength:hP}=$;class hL extends oW{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hM(this,"select",s),hM(this,"unselect",s)}isValid(){return hC(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hw(i,s.chart),e=hA(e,!0),this.sliced=this.options.sliced=t=hS(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hT(hL.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,u="left"===t.alignment,{x:g,y:f}=t,m=o.x;if(i.crookDistance){let t=hP(i.crookDistance,1);m=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",g,f]];return(u?m<=g&&m>=o.x:m>=g&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hO}=hk,{noop:hE}=k,{clamp:hI,extend:hD,fireEvent:hB,merge:hN,pick:hz}=$;class hR extends rX{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hz(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:e2.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(hI((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||hN(!0,n,i),hN(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hB(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hO(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,u,g,f,m=0;for(t||(this.center=t=this.getCenter()),g=0;g1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*u],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}hB(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hR.defaultOptions=hN(rX.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hD(hR.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:n_.prototype.drawTracker,getCenter:hk.getCenter,getSymbol:hE,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:n_.prototype.pointAttribs,pointClass:hL,requireSorting:!1,searchPoint:hE,trackerGroups:["group","dataLabelsGroup"]}),rn.registerSeriesType("pie",hR);let{composed:hW,noop:hH}=k,{distribute:hX}=en,{series:hF}=rn,{arrayMax:hG,clamp:hY,defined:hj,pick:hU,pushUnique:h$,relativeLength:hV}=$;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,u=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,g,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),hF.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=hV(o?.distance||0,s);0===i&&d[t.half].push(t),!hj(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,u=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),hX(u,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,w=0,M=y,S="inherit";if(x){if(u&&hj(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,M=p.radialDistributionY(i,l))),d.justify)w=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":w=p.alignToConnectors(e,a,s,r);break;case"plotEdges":w=p.alignToPlotEdges(l,a,s,r);break;default:w=p.radialDistributionX(t,i,M-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:w+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:M+(d.y||0)-v/2},x.computed.x=w,x.computed.y=M-k,hU(d.crop,!0)){let t;w-(g=l.getBBox().width)s-b&&0===a&&(t=Math.round(w+g-s+b),c[1]=Math.max(t,c[1])),M-f/2<0?c[0]=Math.max(Math.round(-M+f/2),c[0]):M+f/2>o&&(c[2]=Math.max(Math.round(M+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===hG(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;u=s.connector,a&&a.distance>0?(n=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||u.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),u[n?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:a.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=hY(r,o,e[2]-Math.max(t[0],t[2])):(r=hY(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(x||(x={}));let{pointInPolygon:hZ}=x,{addEvent:h_,fireEvent:hK,objectEach:hJ,pick:hQ}=$;function h0(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(hZ({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{hJ(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=hQ(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,h1(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let h3={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=h0,h_(t,"render",h2))}},{defaultOptions:h5}=tf,{noop:h6}=k,{addEvent:h9,extend:h4,isObject:h8,merge:h7,relativeLength:lt}=$,le={radius:0,scope:"stack",where:void 0},li=h6,ls=h6;function lo(t,e,i,s,o={}){let r=li(t,e,i,s,o),{innerR:a=0,r:n=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(lt(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*a),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,u=n?a-i:a+i,g=u?Math.asin(i/u):0,f=n?g:-g,m=Math.cos(g)*u;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?u:p);return r}function lr(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=h5.plotOptions?.[this.type]?.borderRadius,o=la(t.borderRadius,h8(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(lt(o.radius,n),n/2,"all"===u?h/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),h4(a,{brBoxHeight:c,brBoxY:d,r:g})}}}}function la(t,e){return h8(t)||(t={radius:t||0}),h7(le,e,t)}function ln(){let t=la(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=lt(t.radius,(i.r||0)-(i.innerR||0)))}}function lh(t,e,i,s,o={}){let r=ls(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,u=Math.max(c&&l,0),g=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],w=[t,e+c],M=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=M(c,c-u);f[0]-=t,m[0]+=t,x[1]=w[1]=e+c-u}if(s=lu(i.minWidth,0)&&this.chartHeight>=lu(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lg()),this.matchResponsiveRule(t,o)},this);let a=lp(...o.map(t=>lc((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=ll(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||ld(s,{matchResponsiveRule:e,setResponsive:i}),t}}(y||(y={}));let lf=y;k.AST=t_,k.Axis=sB,k.Chart=aH,k.Color=tv,k.DataLabel=ht,k.DataTableCore=o8,k.Fx=tT,k.HTMLElement=iV,k.Legend=r7,k.LegendSymbol=ri,k.OverlappingDataLabels=k.OverlappingDataLabels||h3,k.PlotLineOrBand=s5,k.Point=oW,k.Pointer=o3,k.RendererRegistry=ei,k.Series=rX,k.SeriesRegistry=rn,k.StackItem=a6,k.SVGElement=eF,k.SVGRenderer=iB,k.Templating=ee,k.Tick=ss,k.Time=tl,k.Tooltip=oy,k.animate=tz.animate,k.animObject=tz.animObject,k.chart=aH.chart,k.color=tv.parse,k.dateFormat=ee.dateFormat,k.defaultOptions=tf.defaultOptions,k.distribute=en.distribute,k.format=ee.format,k.getDeferredAnimation=tz.getDeferredAnimation,k.getOptions=tf.getOptions,k.numberFormat=ee.numberFormat,k.seriesType=rn.seriesType,k.setAnimation=tz.setAnimation,k.setOptions=tf.setOptions,k.stop=tz.stop,k.time=tf.defaultTime,k.timers=tT.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;h9(t,"afterColumnTranslate",lr,{order:9}),h9(s,"afterTranslate",ln),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),li=o.arc,ls=o.roundedRect,o.arc=lo,o.roundedRect=lh}},optionsToObject:la}).compose(k.Series,k.SVGElement,k.SVGRenderer),ha.compose(k.Series.types.column),ht.compose(k.Series),sH.compose(k.Axis),iV.compose(k.SVGRenderer),r7.compose(k.Chart),sY.compose(k.Axis),h3.compose(k.Chart),hq.compose(k.Series.types.pie),s5.compose(k.Chart,k.Axis),o3.compose(k.Chart),lf.compose(k.Chart),aK.compose(k.Axis,k.Chart,k.Series),nf.compose(k.Axis,k.Chart,k.Series),oy.compose(k.Pointer),$.extend(k,$);let lm=k;return v.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e;var i,s,o,r,a,n,h,l,d,c,p,g,u,f,m,x,y,b={};b.d=(t,e)=>{for(var i in e)b.o(e,i)&&!b.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},b.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var v={};b.d(v,{default:()=>ly}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.1.0",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(i||(i={}));let k=i,{charts:w,doc:M,win:S}=k;function T(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=I(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),G(s,function(e,i){t+=` + - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}j(k,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);S.console&&-1===T.messages.indexOf(a)&&console.warn(a)}),T.messages.push(a)}function C(t,e){return parseInt(t,e||10)}function A(t){return"string"==typeof t}function P(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function L(t,e){return!!t&&"object"==typeof t&&(!e||!P(t))}function O(t){return L(t)&&"number"==typeof t.nodeType}function E(t){let e=t&&t.constructor;return!!(L(t,!0)&&!O(t)&&e&&e.name&&"Object"!==e.name)}function I(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function D(t){return null!=t}function B(t,e,i){let s;let o=A(e)&&!D(i),r=(e,i)=>{D(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return A(e)?r(i,e):G(e,r),s}function N(t){return P(t)?t:[t]}function z(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function R(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(T||(T={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let F=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let U=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();S.jQuery&&(S.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new k[A(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):w[B(this[0],"data-highcharts-chart")]});let $={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;k.Point&&t instanceof k.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!k.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){Y(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=N(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=S.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),R(s,"opacity"!==i)&&(o=C(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return X(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:G,offset:function(t){let e=M.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(S.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(S.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:R,pInt:C,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:Y,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:N,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return A(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:U,useSerialIds:function(e){return t=R(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:V}=k,{defined:q,error:Z,extend:_,isNumber:K,isObject:J,isString:Q,merge:tt,objectEach:te,pad:ti,splat:ts,timeUnits:to,ucfirst:tr}=$,ta=k.isSafari&&V.Intl&&!V.Intl.DateTimeFormat.prototype.formatRange,tn=t=>void 0===t.main,th=t=>["D","L","M","X","J","V","S"].indexOf(t),tl=class{constructor(t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=V.Date,this.update(t)}update(t={}){this.dTLCache={},this.options=t=tt(!0,this.options,t);let{timezoneOffset:e,useUTC:i}=t;this.Date=t.Date||V.Date||Date;let s=t.timezone;q(i)&&(s=i?"UTC":void 0),e&&e%60==0&&(s="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==s&&s?.indexOf("Etc/GMT")!==0,this.timezone=s,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,th(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;Q(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(Z(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):Z(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&_(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||ta||(n-=36e5)}}return n}parse(t){if(!Q(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(K(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(K(a))return a}return 0}dateFormat(t,e,i){let s=k.defaultOptions?.lang;if(!q(e)||isNaN(e))return s?.invalidDate||"";if(Q(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(Q(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,u=s?.months||this.months,f=s?.shortMonths||this.shortMonths;te(_({a:g?g[c]:p[c].substr(0,3),A:p[c],d:ti(a),e:ti(a,2," "),w:c,b:f[r],B:u[r],m:ti(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:ti(n),k:n,I:ti(n%12||12),l:n%12||12,M:ti(h),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:ti(l),L:ti(d,3)},k.dateFormats),function(s,o){if(Q(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(J(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(_({timeZone:s},t),e)+r}return i?tr(t):t}resolveDTLFormat(t){return J(t,!0)?J(t,!0)&&tn(t)?{main:t}:t:{main:(t=ts(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,g,u]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),q(e)){if(f=h>=to.second?0:n*Math.floor(f/n),h>=to.second&&(u=h>=to.minute?0:n*Math.floor(u/n)),h>=to.minute&&(g=h>=to.hour?0:n*Math.floor(g/n)),h>=to.hour&&(p=h>=to.day?0:n*Math.floor(p/n)),h>=to.day&&(c=h>=to.month?1:Math.max(1,n*Math.floor(c/n))),h>=to.month&&(d=h>=to.year?0:n*Math.floor(d/n)),h>=to.year&&(l-=l%n),h===to.week){n&&(e=o.makeTime(l,d,c,p,g,u,f));let t=th(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*to.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=to.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=_(t,{higherRanks:a,totalRange:h*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in to){if(t===to.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(to[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:td}=k,{fireEvent:tc,merge:tp}=$,tg={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:td?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tg.chart.styledMode=!0,tg.chart.styledMode=!1;let tu=new tl(tg.time),tf={defaultOptions:tg,defaultTime:tu,getOptions:function(){return tg},setOptions:function(t){return tc(k,"setOptions",{options:t}),tp(!0,tg,t),t.time&&tu.update(tg.time),t.lang&&"locale"in t.lang&&tu.update({locale:t.lang.locale}),tg}},{isNumber:tm,merge:tx,pInt:ty,defined:tb}=$;class tv{static parse(t){return t?new tv(t):tv.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=k.Color;if(r&&r!==tv)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tv(t[1]));else if("string"==typeof t)for(this.input=t=tv.names[t.toLowerCase()]||t,s=tv.parsers.length;s--&&!i;)(e=(o=tv.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tx(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tm(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tm(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=ty(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tm(i[0])||!tm(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?"rgba(":"rgb(")+a.join(",")+")"}}tv.names={white:"#ffffff",black:"#000000"},tv.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[ty(t[1]),ty(t[2]),ty(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[ty(t[1]),ty(t[2]),ty(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[ty(t[1]+t[1],16),ty(t[2]+t[2],16),ty(t[3]+t[3],16),tb(t[4])?ty(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[ty(t[1],16),ty(t[2],16),ty(t[3],16),tb(t[4])?ty(t[4],16)/255:1]}}],tv.None=new tv("");let{parse:tk}=tv,{win:tw}=k,{isNumber:tM,objectEach:tS}=$;class tT{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tS(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,g=e&&e.slice();if(!g||h)return[r,r];function u(t,e){for(;t.length{let i=tB(t.options.animation);r=tO(e)&&tC(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tD(t,e.options.chart.animation,!0)},stop:tN},{SVG_NS:tR,win:tW}=k,{attr:tH,createElement:tX,css:tF,error:tG,isFunction:tY,isString:tj,objectEach:tU,splat:t$}=$,{trustedTypes:tV}=tW,tq=tV&&tY(tV.createPolicy)&&tV.createPolicy("highcharts",{createHTML:t=>t}),tZ=tq?tq.createHTML(""):"";class t_{static filterUserAttributes(t){return tU(t,(e,i)=>{let s=!0;-1===t_.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tj(e)&&t_.allowedReferences.some(t=>0===e.indexOf(t))),s||(tG(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tj(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t_.emptyHTML,e&&new t_(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t$(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?k.doc.createTextNode(e.textContent):void 0,n=t_.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==t_.allowedTags.indexOf(r)||n){let s="svg"===r?tR:i.namespaceURI||tR,h=k.doc.createElementNS(s,r),l=e.attributes||{};tU(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),tH(h,n?l:t_.filterUserAttributes(l)),e.style&&tF(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tG(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(tq?tq.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tX("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t_.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t_.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t_.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t_.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t_.emptyHTML=tZ,t_.bypassHTMLFiltering=!1;let{defaultOptions:tK,defaultTime:tJ}=tf,{doc:tQ}=k,{extend:t0,getNestedProperty:t1,isArray:t2,isNumber:t3,isObject:t5,isString:t6,pick:t9,ucfirst:t4}=$,t8={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!t2(t)&&t.map((i,s)=>ee(e.body,t0(t5(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:t4,unless:t=>!t},t7={},et=t=>/^["'].+["']$/.test(t);function ee(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,h=i?.options.lang||tK.lang,l=i&&i.time||tJ,d=i&&i.numberFormatter||ei,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:et(t)?t.slice(1,-1):t1(t,e))},p,g,u=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),g&&g.isBlock||(g={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(g.isBlock?i:p)[1].split(" ")[0].replace("#","");t8[a]&&(g.isBlock&&a===g.fn&&u++,g.fn||(g.fn=a));let n="else"===p[1];if(g.isBlock&&g.fn&&(p[1]===`/${g.fn}`||n)){if(u)!n&&u--;else{let e=g.startInner,i=t.substr(e,p.index-e);void 0===g.body?(g.body=i,g.startInner=p.index+p[0].length):g.elseBody=i,g.find+=i+p[0],n||(r.push(g),g=void 0)}}else g.isBlock||r.push(g);if(s&&!g?.isBlock)break}return r.forEach(s=>{let r,p;let{body:g,elseBody:u,expression:f,fn:m}=s;if(m){let t=[s],o=[],a=f.length,n=0,h;for(p=0;p<=a;p++){let t=f.charAt(p);h||'"'!==t&&"'"!==t?h===t&&(h=""):h=t,h||" "!==t&&p!==a||(o.push(f.substr(n,p-n)),n=p+1)}for(p=t8[m].length;p--;)t.unshift(c(o[p+1]));r=t8[m].apply(e,t),s.isBlock&&"boolean"==typeof r&&(r=ee(r?g:u,e,i))}else{let t=et(f)?[f]:f.split(":");if(r=c(t.shift()||""),t.length&&"number"==typeof r){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&t6(r)&&(r=`"${r}"`)}t=t.replace(s.find,t9(r,""))}),f?ee(t,e,i):t}function ei(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||tK.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):t3(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),t3(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,g=p?"en":this?.locale||h.locale||tQ.body.closest("[lang]")?.lang,u=JSON.stringify(c)+g;return o=(t7[u]??(t7[u]=new Intl.NumberFormat(g,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let es={dateFormat:function(t,e,i){return tJ.dateFormat(t,e,i)},format:ee,helpers:t8,numberFormat:ei};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,k.Renderer=s)}}(s||(s={}));let eo=s,{clamp:er,pick:ea,pushUnique:en,stableSort:eh}=$;(o||(o={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,g,u=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(eh(e,(t,e)=>(e.rank||0)-(t.rank||0)),g=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?g:h-1;g&&x>r;)f=e[c=Math.floor(p)],en(l,c)&&(x-=f.size),p+=g,y&&p>=e.length&&(g/=2,p=g);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(eh(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:ea(t.align,.5)}));u;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=er(m-f.size*f.align,0,i-f.size);for(c=e.length,u=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),u=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),eh(o,a),o};let el=o,{animate:ed,animObject:ec,stop:ep}=tz,{deg2rad:eg,doc:eu,svg:ef,SVG_NS:em,win:ex,isFirefox:ey}=k,{addEvent:eb,attr:ev,createElement:ek,crisp:ew,css:eM,defined:eS,erase:eT,extend:eC,fireEvent:eA,getAlignFactor:eP,isArray:eL,isFunction:eO,isNumber:eE,isObject:eI,isString:eD,merge:eB,objectEach:eN,pick:ez,pInt:eR,pushUnique:eW,replaceNested:eH,syncTimeout:eX,uniqueKey:eF}=$;class eG{_defaultGetter(t){let e=ez(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={"text-align":t?.align},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||eD(i)?i||"renderer":void 0;h&&(n&&eW(a,this),i=void 0);let l=ez(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eP(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eP(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=ec(ez(e,this.renderer.globalAnimation,!0)),o=s.defer;return eu.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eX(()=>{this.element&&ed(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eN(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&k.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=eu.createElementNS(em,"tspan");ev(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=eu.createElementNS(em,"tspan");a.textContent="​",ev(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eG.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eN(t,function(e,i){l=!1,s||ep(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eF()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eC(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=ew(i,e),n=ew(s,e);return eC(t,{x:a,y:n,width:ew(o,e)-a,height:ew(r,e)-n}),eS(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,g,u=[],f;eA(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eL(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eS(a.gradientUnits)&&(n=a,a=eB(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),eN(a,function(t,e){"id"!==e&&u.push(e,t)}),eN(l,function(t){u.push(t)}),h[u=u.join(",")])g=h[u].attr("id");else{a.id=g=eF();let t=h[u]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tv.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+g+")",i.setAttribute(e,f),i.gradient=u,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eN(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eC(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eR(t.width)),eC(this.styles,t),o&&!ef&&this.renderer.forExport&&delete t.width;let r=ey&&t.fontSize||null;r&&(eE(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=eB(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),eM(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eR(s[e])*ez(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ep(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,g=n.namespaceURI===this.SVG_NS,u=ez(e,this.rotation,0),f=h.styledMode?n&&eG.prototype.getStyle.call(n,"font-size"):l.fontSize;if(eS(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,u,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(g||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&eM(e,{display:t})},eO(o)&&o("none"),i=n.getBBox?eC({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eO(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,g&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),u&&(i=this.getRotatedBox(i,u));let t={bBox:i};eA(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eP(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*eg,g=(e-90)*eg,u=Math.cos(p),f=Math.sin(p),m=o*u,x=o*f,y=Math.cos(g),b=Math.sin(g),[[v,k],[w,M]]=[h,l].map(t=>[t-t*u,t*f]),S=i+d*(o-m)+v+M+c*y,T=S+m,C=T-r*y,A=C-m,P=s+c-d*x-k+w+c*b,L=P+x,O=L-r*b,E=O-x,I=Math.min(S,T,C,A),D=Math.min(P,L,O,E),B=Math.max(S,T,C,A)-I,N=Math.max(P,L,O,E)-D;return{x:I,y:D,width:B,height:N,polygon:[[S,P],[T,L],[C,O],[A,E]]}}getStyle(t){return ex.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=em,this.element="span"===e||"body"===e?ek(e):eu.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eA(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eb(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eD(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eB(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eI(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eR(t):""!==t&&(ev(i=eu.createElementNS(em,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eG.symbolCustomAttribs.forEach(function(i){e[i]=ez(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||eu.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eH(ez(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];eS(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+ez(o,e.getAttribute("x"),0)+" "+ez(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eS(a)||eS(n))&&d.push("scale("+ez(a,1)+" "+ez(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,g;if(eS(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eS(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),g=(n=o.childNodes).length-1;g>=0&&!d;g--)c=!eS(l=(h=n[g]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!a&&!g?(o.insertBefore(r,n[g]),d=!0):(eR(l)<=t||c&&(!eS(t)||t>=0))&&(o.insertBefore(r,n[g+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}eG.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],eG.prototype.strokeSetter=eG.prototype.fillSetter,eG.prototype.yGetter=eG.prototype.xGetter,eG.prototype.matrixSetter=eG.prototype.rotationOriginXSetter=eG.prototype.rotationOriginYSetter=eG.prototype.rotationSetter=eG.prototype.scaleXSetter=eG.prototype.scaleYSetter=eG.prototype.translateXSetter=eG.prototype.translateYSetter=eG.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eY=eG,{defined:ej,extend:eU,getAlignFactor:e$,isNumber:eV,merge:eq,pick:eZ,removeEvent:e_}=$;class eK extends eY{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=eK.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=e$(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&eV(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=eq(t),eK.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eY.prototype.css.call(this,t)}destroy(){e_(this.element,"mouseenter"),e_(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eY.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=eZ(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:eZ(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&ej(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){eV(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!eV(this.widthSetting)||!eV(this.heightSetting)||this.textAlign)&&ej(e.textStr)?e.getBBox(void 0,0):eK.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(eU(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+e$(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=eV(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=eZ(this.paddingLeft,t),i=eZ(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}eK.emptyBBox={width:0,height:0,x:0,y:0},eK.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:eJ,isNumber:eQ,pick:e0}=$;function e1(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=e0(o.r,i),h=e0(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&h0)return l;if(t+n>i-a){if(h>e+a&&he+a&&h0){let i=hs&&na&&l.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return e1(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:e2,roundedRect:e3,square:e2,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:e6,SVG_NS:e9,win:e4}=k,{attr:e8,extend:e7,fireEvent:it,isString:ie,objectEach:ii,pick:is}=$,io=(t,e)=>t.substring(0,e)+"…",ir=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=is(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new t_(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(e6.createTextNode(this.unescapeEntities(s)));ie(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=e8(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),e8(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,io),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(e6.createTextNode(e),t);let s=e6.createElementNS(e9,"tspan");s.textContent="​",e8(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,io)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===e4.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===e4.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),e7(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),it(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,g=(e||i||"").length,u=g;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=g;)u=Math.ceil((p+g)/2),i&&(n=a(i,u)),h=f(u,n&&n.length-1),p===g?p=g+1:h>o?g=u-1:p=u;0===g?t.textContent="":e&&g===e.length-1||(t.textContent=n||a(e||i,u)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,io)}i&&i.splice(0,u),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return ii(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:ia}=tf,{charts:ih,deg2rad:il,doc:id,isFirefox:ic,isMS:ip,isWebKit:ig,noop:iu,SVG_NS:im,symbolSizes:ix,win:iy}=k,{addEvent:ib,attr:iv,createElement:ik,crisp:iw,css:iM,defined:iS,destroyObjectProperties:iT,extend:iC,isArray:iA,isNumber:iP,isObject:iL,isString:iO,merge:iE,pick:iI,pInt:iD,replaceNested:iB,uniqueKey:iN}=$;class iz{constructor(t,e,i,s,o,r,a){let n,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iv(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iv(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(id.createTextNode("Created with Highcharts 12.1.0")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),ic&&t.getBoundingClientRect&&((n=function(){iM(t,{left:0,top:0}),h=t.getBoundingClientRect(),iM(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=ib(iy,"resize",n))}definition(t){return new t_([t]).addToDOM(this.defs.element)}getReferenceURL(){if((ic||ig)&&id.getElementsByTagName("base").length){if(!iS(e)){let t=iN(),i=new t_([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(id.body);iM(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=id.elementFromPoint(6,6);e="hitme"===(s&&s.id),id.body.removeChild(i)}if(e)return iB(iy.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iC({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iT(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iE({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ir(t).buildSVG()}getContrast(t){let e=tv.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,g=0;o=iE(ia.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let u=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t_.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iE(m[0],t_.filterUserAttributes(p[e+5]||u[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),ib(d.element,ip?"mouseover":"mouseenter",function(){3!==g&&d.setState(1)}),ib(d.element,ip?"mouseout":"mouseleave",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iL(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iC({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==g&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iS(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iw(i[1],e)),iS(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iw(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iA(t)?e.d=t:iL(t)&&iC(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iL(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iL(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iL(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iC(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iv(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iI(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iP(e)&&(a.x=e),iP(i)&&(a.y=i),iP(s)&&(a.width=s),iP(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iy.Image;ib(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),g=!p&&(this.symbols[t]?t:"circle"),u=g&&this.symbols[g];if(u)"number"==typeof e&&(n=u.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iC(a,{symbolName:g||void 0,x:e,y:i,width:s,height:o}),r&&iC(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iI(r&&r.width,ix[h]&&ix[h].width),s.imgheight=iI(r&&r.height,ix[h]&&ix[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iv(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iS(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iS(s.imgwidth)&&iS(s.imgheight)?l(s):(s.attr({width:0,height:0}),ik("img",{onload:function(){let t=ih[d.chartIndex];0===this.width&&(iM(this,{position:"absolute",top:"-999em"}),id.body.appendChild(this)),ix[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iS(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iC(iz.prototype,{Element:eY,SVG_NS:im,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:e5,draw:iu}),eo.registerRendererType("svg",iz,!0);let{composed:iR}=k,{attr:iW,css:iH,createElement:iX,defined:iF,extend:iG,getAlignFactor:iY,isNumber:ij,pInt:iU,pushUnique:i$}=$;function iV(t,e,i){let s=this.div?.style||i.style;eY.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let iq=(t,e)=>{if(!t.div){let i=iW(t.element,"class"),s=t.css,o=iX("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=iV,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eY.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class iZ extends eY{static compose(t){i$(iR,this.compose)&&(t.prototype.html=function(t,e,i){return new iZ(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=iU(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),ij(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),iG(this.styles,t),iH(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:g=0}=this,{display:u="block",whiteSpace:f}=n;if(iH(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n;let d=[i,h,t.innerHTML,l,this.textAlign].join(","),c=-(this.parentGroup?.padding*1)||0;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iH(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iH(t,{width:e>s||i||r?l+"px":"auto",display:u,whiteSpace:f||"normal"}),this.oldTextWidth=l)}d!==this.cTT&&(n=e.fontMetrics(t).b,iF(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,c,c),this.getSpanCorrection(!iF(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,n,iY(h)));let{xCorr:m=0,yCorr:x=0}=this,y={left:`${p+m}px`,top:`${g+x}px`,textAlign:h,transformOrigin:`${(s??p)-m-p-c}px ${(o??g)-x-g-c}px`};(r||a)&&(y.transform=`scale(${r??1},${a??1})`),iH(t,y),this.cTT=d,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){iH(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=iq(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t_.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i_=iZ.prototype;i_.visibilitySetter=i_.opacitySetter=iV,i_.ySetter=i_.rotationSetter=i_.rotationOriginXSetter=i_.rotationOriginYSetter=i_.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(r||(r={}));let iK=r,{addEvent:iJ,isFunction:iQ,objectEach:i0,removeEvent:i1}=$;(a||(a={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i0(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i1(t,i,t.eventOptions[i]),delete t.eventOptions[i]),iQ(e)&&(t.eventOptions[i]=e,iJ(t,i,e,{order:0})))})};let i2=a,{deg2rad:i3}=k,{clamp:i5,correctFloat:i6,defined:i9,destroyObjectProperties:i4,extend:i8,fireEvent:i7,getAlignFactor:st,isNumber:se,merge:si,objectEach:ss,pick:so}=$,sr=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,i7(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=so(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,g=l.info,u=t.label,f,m,x,y=this.parameters.category||(o?so(o[n],a[n],n):n);r&&se(y)&&(y=i6(r.lin2log(y))),e.dateTime&&(g?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&g.higherRanks[n]||g.unitName])).main:se(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:g,value:y};i7(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),es.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),w=m&&m.list;w?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(l*i3))):(f=s-d*c,m=s+(1-d)*c,fn&&(g=n-t.x+g*d,u=-1),(g=Math.min(p,g))g||e.autoRotation&&(h.styles||{}).width)&&(x=g)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(i8({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):ss(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=so(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(i6(p)c)&&(i=0);let g=so(i,this.label&&this.label.newOpacity,1);i=so(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,g,t),this.isNew=!1,i7(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=so(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=g),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,h=t.y,l=so(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=so(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,g=!0;n&&se(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):g=!1,l&&s%l&&(g=!1),g&&se(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sa}=tz,{xAxis:sn,yAxis:sh}=iK,{defaultOptions:sl}=tf,{registerEventOptions:sd}=i2,{deg2rad:sc}=k,{arrayMax:sp,arrayMin:sg,clamp:su,correctFloat:sf,defined:sm,destroyObjectProperties:sx,erase:sy,error:sb,extend:sv,fireEvent:sk,getClosestDistance:sw,insertItem:sM,isArray:sS,isNumber:sT,isString:sC,merge:sA,normalizeTickInterval:sP,objectEach:sL,pick:sO,relativeLength:sE,removeEvent:sI,splat:sD,syncTimeout:sB}=$,sN=(t,e)=>sP(e,void 0,void 0,sO(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sv(sl,{xAxis:sn,yAxis:sA(sn,sh)});class sz{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sk(this,"init",{userOptions:e}),this.opposite=sO(e.opposite,this.opposite),this.side=sO(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sk(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sO(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sS(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sm(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sO(r.crosshair,sD(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sM(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sm(this.reversed)&&(this.reversed=!0),this.labelRotation=sT(a.rotation)?a.rotation:void 0,sd(this,r),sk(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sA(e,sl[this.coll],t),sk(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sT(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sl.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sk(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sT(a)||a instanceof Date||(o=o.filter(sT),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sO(e.dataMin,a),a),e.dataMax=Math.max(sO(e.dataMax,n),n)));else{let t=i.applyExtremes();sT(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sO(e.dataMin,a),a)),sT(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sO(e.dataMax,n),n)),sm(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sk(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sT(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,g=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(g=(t=t*d+c-h)/p+n,l&&(g=a.lin2val(g))):(l&&(t=a.val2lin(t)),g=d*(t-n)*p+c+d*h+(sT(r)?p*r:0),a.isRadial||(g=sf(g))),g}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,g,u,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=su(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sk(this,"getPlotLinePath",b,function(t){g=f=(c=su(c=sO(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,u=m=h-c-d,sT(c)?e.horiz?(u=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),g=f=y(g,s,s+e.width)):(g=s,f=l-e.right+(i.scrollablePixelsX||0),u=m=y(u,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",g,u],["L",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=sf(Math.floor(e/t)*t),n=sf(Math.ceil(i/t)*t),h=[];if(sf(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=sf(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sO(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sT(s)&&sT(o)&&sT(r)&&s-o=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sp(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sg(l))-ot-e),t=sw([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sS(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sm(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sO(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sT(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sO(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sC(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sk(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sT(t)&&sT(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sT(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:g,floor:u,linkedTo:f,softMax:m,softMin:x}=h,y=sT(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,w=0,M,S=sT(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,T,C,A,P;if(r||e||y||this.getTickAmount(),A=sO(this.userMin,d.parse(h.min)),P=sO(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,M=y.getExtremes(),this.min=sO(M.min,M.dataMin),this.max=sO(M.max,M.dataMax),this.type!==y.type&&sb(11,!0,i)):(l&&sm(c)&&sT(s)&&sT(o)&&(o>=c?(T=c,k=0):s<=c&&(C=c,v=0)),this.min=sO(A,T,o),this.max=sO(P,C,s)),sT(this.max)&&sT(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sO(o,this.min))&&sb(10,!0,i),this.min=sf(n.log2lin(this.min),16),this.max=sf(n.log2lin(this.max),16)),this.range&&sT(o)&&(this.userMin=this.min=A=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sk(this,"foundExtremes"),this.adjustForMinRange(),sT(this.min)&&sT(this.max)){if(!sT(this.userMin)&&sT(x)&&xthis.max&&(this.max=P=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(w=this.max-this.min)||(!sm(A)&&k&&(this.min-=w*k),sm(P)||!v||(this.max+=w*v)),!sT(this.userMin)&&sT(u)&&(this.min=Math.max(this.min,u)),!sT(this.userMax)&&sT(g)&&(this.max=Math.min(this.max,g)),l&&sT(o)&&sT(s)){let t=c||0;!sm(A)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sm(P)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sm(h.min)?this.max=this.min:sm(h.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&sT(this.min)&&sT(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sO(S,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sk(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sk(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=sO(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sb(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sN(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sT(this.min)&&sT(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sk(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sk(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sT(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sT(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sT(this.threshold)){let t=su((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sm(t.tickInterval)||i||!(this.lenr.push(sf(r[r.length-1]+p)),f=()=>r.unshift(sf(r[0]-p));if(sT(n)&&(g=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(g=a-1-g)),t.hasData()&&sT(s)&&sT(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sT(g)&&sT(t.threshold)){for(;r[g]!==l||r.length!==a||r[0]>s||r[r.length-1]t.threshold?f():u();if(p>8*t.tickInterval)break;p*=2}n()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sk(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sk(this,"setExtremes",o=sv(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sE(sO(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sE(sO(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sE(sO(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sE(sO(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sf(t.lin2log(this.min)):this.min,max:t?sf(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sO(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sk(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=sf(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sf(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sT(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sc*i))))+Math.abs(i/360))u&&(u=i)}),this.maxLabelLength=u,this.autoRotation?u>h&&u>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=u>.5*t.chartHeight?.33*t.chartHeight:u,c||(g=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sv(a,{width:`${p}px`,lineClamp:g})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sm(this.min)&&sm(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sA(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sr(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sT(s.crossing),g=e.axisOffset,u=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,w;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sO(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sL(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sm(y=d.offset)?0:sO(d.margin,i?5:10))),t.renderLine(),t.offset=f*sO(s.offset,g[o]?g[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},w=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=w,k+=f*(i?sO(c.y,t.tickRotCorr.y+f*c.distance):sO(c.x,f*c.distance))),t.axisTitleMargin=sO(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&u){let e=this.tickSize("tick");g[o]=Math.max(g[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a&&a.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;u[h]=Math.max(u[h],i)}sk(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,g={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],u=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?g+l:u+(n?this.width:0)+h+l,y:e?u+d-(n?this.height:0)+h:g+d};return sk(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sr(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new sr(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,g=a.stackLabels,u=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sa(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sL(t,function(t){t.isActive=!1})}),sT(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sT(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sr(i,-1,null,!0)),d[-1].render(-1))),u&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sY(t=sj("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(h||(h={}));let sU=h,{erase:s$,extend:sV,isNumber:sq}=$;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!sq(this.min)||!sq(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),sZ.compose(s9,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){s2(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),g=e.borderWidth,u=e.label,{label:f,svgElem:m}=this,x=[],y,b=sQ(c)&&sQ(d),v=sQ(p),k=!m,w={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},M=b?"bands":"lines";if(!t.chart.styledMode&&(v?(w.stroke=o||"#999999",w["stroke-width"]=s6(e.width,1),e.dashStyle&&(w.dashstyle=e.dashStyle)):b&&(w.fill=o||"#e6e9ff",g&&(w.stroke=e.borderColor,w["stroke-width"]=g))),l.zIndex=a,M+="-"+a,(y=t.plotLinesAndBandsGroups[M])||(t.plotLinesAndBandsGroups[M]=y=n.g("plot-"+M).attr(l).add()),m||(this.svgElem=m=n.path().attr(w).add(y)),sQ(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(sQ(c)&&sQ(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(s5(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),u&&(sQ(u.text)||sQ(u.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(u=s3({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},u),this.renderLabel(u,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(s3({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=sJ(h),c=sJ(l),p=sK(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:sK(l)-c}),(!n.alignValue||"left"===n.alignValue||sQ(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return sQ(t.formatter)?t.formatter.call(this):t.text}destroy(){s1(this.axis.plotLinesAndBands,this),delete this.axis,s0(this)}}let{animObject:s4}=tz,{format:s8}=es,{composed:s7,dateFormats:ot,doc:oe,isSafari:oi}=k,{distribute:os}=el,{addEvent:oo,clamp:or,css:oa,discardElement:on,extend:oh,fireEvent:ol,isArray:od,isNumber:oc,isObject:op,isString:og,merge:ou,pick:of,pushUnique:om,splat:ox,syncTimeout:oy}=$;class ob{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||ox(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),on(this.container)),$.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=ox(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+of(t.colorIndex,o.colorIndex),r&&r.className].filter(og).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=eo.getRendererType();this.container=a=k.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),oa(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&k.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=oe,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,g={},u=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v("y"),w=v("x"),M,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let T=!this.followPointer&&of(i.ttBelow,!d&&!n===S),C=function(t,e,i,o,a,n,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+u)}},A=function(t,e,i,o,r){if(re-s)return!1;re-o/2?g[t]=e-o-2:g[t]=r-i/2},P=function(t){[k,w]=[w,k],M=t},L=()=>{!1!==C.apply(0,k)?!1!==A.apply(0,w)||M||(P(!0),L()):M?g.x=g.y=0:(P(!0),L())};return(n&&!d||this.len>1)&&P(),L(),g}hide(t){let e=this;$.clearTimeout(this.hideTimer),t=of(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oy(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=of(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=s4(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=ox(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;$.clearTimeout(this.hideTimer),this.allowShared=!(!od(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),g=p[0],u=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let f=og(h)?s8(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=of(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=g,r=u;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:or(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||"#666666"}),this.updatePosition({plotX:g,plotY:u,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ol(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:g,options:{positioner:u},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?oe.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,k=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:w,top:M}=f.getChartPosition(),S=h+x,T=0,C=a-l;function A(t,e,s,o,r=!0){let a,n;return s?(a=k?0:C,n=or(t-o/2,y.left,y.right-o-(i.outside?w:0))):(a=e-S,n=or(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}og(t)&&(t=[!1,t]);let P=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:g.padding,r:g.borderRadius};c||(t.fill=g.backgroundColor,t["stroke-width"]=g.borderWidth??1),o=v.label("",0,0,g[r?"headerShape":"shape"],void 0,void 0,g.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(g.style).attr({stroke:g.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(T=m.height,C+=T,k&&(S-=T));let{anchorX:w,anchorY:M}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+or(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=or(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof M){let e=m.height+1,s=u?u.call(i,x,e,r):A(w,M,l,x);t.push({align:u?0:void 0,anchorX:w,anchorY:M,boxWidth:x,point:r,rank:of(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!u&&P.some(t=>{let{outside:e}=i,s=(e?w:0)+t.anchorX;return ss})&&(P=P.map(t=>{let{x:e,y:i}=A(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return oh(t,{target:i,x:e})})),i.cleanSplit(),os(P,C);let L={left:w,right:w};P.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&w+eL.right&&(L.right=w+e))}),P.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(L.right-L.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:O,outside:E,renderer:I}=i;if(E&&O&&I){let{width:t,height:e,x:i,y:s}=b.getBBox();I.setSize(t+i,e+s,!1),O.style.left=L.left+"px",O.style.top=M+"px"}oi&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return ol(this,"headerFormatter",a,function(e){if(r&&!n&&oc(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(op(n)){let t=n;ot[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=s8(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,ou(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),g=(o.positioner||this.getPosition).call(this,h,n,t),u=k.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(g.x+=l-s,g.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(or(h+x,0,u.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(oa(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-g.x,m+=d-g.y),this.move(Math.round(g.x),Math.round(g.y||0),f,m)}}!function(t){t.compose=function(e){om(s7,"Core.Tooltip")&&oo(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(ob||(ob={}));let ov=ob,{animObject:ok}=tz,{defaultOptions:ow}=tf,{format:oM}=es,{addEvent:oS,crisp:oT,erase:oC,extend:oA,fireEvent:oP,getNestedProperty:oL,isArray:oO,isFunction:oE,isNumber:oI,isObject:oD,merge:oB,pick:oN,syncTimeout:oz,removeEvent:oR,uniqueKey:oW}=$;class oH{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oA({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oA(this,t=oH.prototype.optionsToObject.call(this,t)),this.options=this.options?oA(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oH.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oI(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oI(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=ok(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oR(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oC(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oz(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oP(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oL(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oW()),this.resolveColor(),t.chart.pointCount++,oP(this,"afterInit")}isValid(){return(oI(this.x)||this.x instanceof Date)&&oI(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(oI(t)||null===t)r[s[0]]=t;else if(oO(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);h0?oH.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oI(i)&&oI(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oN(this.options.colorIndex,a),this.color=oN(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oD(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oM(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oD(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oD(l.data[o],!0)||oD(t,!0)?r.options:oN(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oN(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oN(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oB(this.series.options.point,this.options),i=e.events?.[t];oE(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oS(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oR(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=ow.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,g,u,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(g=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){u=i.pointAttribs(this,t),f=oN(d.options.chart.animation,o.animation);let e=u.opacity;i.options.inactiveOtherPoints&&oI(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(u,f)}g&&this.graphic.animate(g,oN(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),g&&(m?m[e?"animate":"attr"]({x:g.x,y:g.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,g.x,g.y,g.width,g.height,oB(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oN(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oA({fill:this.color||i.color,"fill-opacity":y.opacity},t_.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oP(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oT(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oX=oH,{parse:oF}=tv,{charts:oG,composed:oY,isTouchDevice:oj}=k,{addEvent:oU,attr:o$,css:oV,extend:oq,find:oZ,fireEvent:o_,isNumber:oK,isObject:oJ,objectEach:oQ,offset:o0,pick:o1,pushUnique:o2,splat:o3}=$;class o5{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!k.chartCount&&(o5.unbindDocumentMouseUp.forEach(t=>t.unbind()),o5.unbindDocumentMouseUp.length=0,o5.unbindDocumentTouchEnd&&(o5.unbindDocumentTouchEnd=o5.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),oQ(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o_(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(s=t-n,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+n),a&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=oJ(o)?o.enabled:o,p=r&&t[`${r}Key`],g=t.chartX,u=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(gn+l&&(g=n+l),uh+d&&(u=h+d),this.hasDragged=Math.sqrt(Math.pow(i-g,2)+Math.pow(s-u,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(g,u);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oF("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o_(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}oK(i.index)&&(this.selectionMarker=s.destroy())}i&&oK(i.index)&&(oV(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);oJ(r,!0)&&r.series&&(!oJ(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&oK(o.x)&&oK(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o0(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&o1(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o_(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=oZ(t.points,function(t){return t.x===c.x&&!t.isNull});oJ(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),o_(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=o$(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o_(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o1(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return oq(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o_(i.series,"click",oq(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(oq(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o_(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),k.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oG[o1(o5.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oG[o1(o5.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&o1(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o_(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&o3(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&o3(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n&&n.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oU(s.container.ownerDocument,"mousemove",t=>oG[o5.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o1((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=oZ(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oU(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oU(t,"mouseleave",this.onContainerMouseLeave.bind(this))),o5.unbindDocumentMouseUp.some(t=>t.doc===e)||o5.unbindDocumentMouseUp.push({doc:e,unbind:oU(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oU(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oU(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oU(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),o5.unbindDocumentTouchEnd||(o5.unbindDocumentTouchEnd=oU(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oU(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oj)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o1(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oU(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oU(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||oV(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||oV(i,{"touch-action":o1(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=k.charts[o1(o5.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(o5.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o1(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o1(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}o5.unbindDocumentMouseUp=[],function(t){t.compose=function(e){o2(oY,"Core.Pointer")&&oU(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(o5||(o5={}));let o6=o5,{fireEvent:o9,isArray:o4,objectEach:o8,uniqueKey:o7}=$,rt=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||o7(),this.modified=this,this.rowCount=0,this.versionTag=o7();let e=0;o8(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,o8(this.columns,e=>{o4(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;o8(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(o9(this,"afterSetColumns"),this.versionTag=o7())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;o8(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(o9(this,"afterSetRows"),this.versionTag=o7())}},{extend:re,merge:ri,pick:rs}=$;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,g=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),u={},f,m=r.marker,x=0;if(o.styledMode||(u["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?u.dashstyle=r.dashStyle:"square"===r.linecap||(u["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(u).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),u["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,g],["L",n-x,g]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(rs(m.radius,d),d);0===l.indexOf("url")&&(m=ri(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,g-t,2*t,2*t,re({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rs(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(d||(d={}));let ro=d,{defaultOptions:rr}=tf,{extend:ra,extendClass:rn,merge:rh}=$;!function(t){function e(e,i){let s=rr.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oX),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=k.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rr.plotOptions||{};if(s=s||"",n[i]=rh(n[s],o),delete t.seriesTypes[i],e(i,rn(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oX{}ra(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(c||(c={}));let rl=c,{animObject:rd,setAnimation:rc}=tz,{defaultOptions:rp}=tf,{registerEventOptions:rg}=i2,{svg:ru,win:rf}=k,{seriesTypes:rm}=rl,{arrayMax:rx,arrayMin:ry,clamp:rb,correctFloat:rv,crisp:rk,defined:rw,destroyObjectProperties:rM,diffObjects:rS,erase:rT,error:rC,extend:rA,find:rP,fireEvent:rL,getClosestDistance:rO,getNestedProperty:rE,insertItem:rI,isArray:rD,isNumber:rB,isString:rN,merge:rz,objectEach:rR,pick:rW,removeEvent:rH,syncTimeout:rX}=$;class rF{constructor(){this.zoneAxis="y"}init(t,e){let i;rL(this,"init",{options:e}),this.dataTable??(this.dataTable=new rt);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rA(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rg(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rW(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rI(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rL(this,"afterInit")}is(t){return rm[t]&&this instanceof rm[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rL(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rW(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rI(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rC(18,!0,s)})}),rL(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rW(this.pointInterval,i.pointInterval,1),o&&rB(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rB(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rA(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rw(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rz(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rL(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rp.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=n.userOptions;let g=rz(h,s.series,p,r);this.tooltipOptions=rz(rp.tooltip,rp.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rW(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||g.stickyTracking),null===h.marker&&delete g.marker,this.zoneAxis=g.zoneAxis||"y";let u=this.zones=(g.zones||[]).map(t=>({...t}));return(g.negativeColor||g.negativeFillColor)&&!g.zones&&(e={value:g[this.zoneAxis+"Threshold"]||g.threshold||0,className:"highcharts-negative"},a||(e.color=g.negativeColor,e.fillColor=g.negativeFillColor),u.push(e)),u.length&&rw(u[u.length-1].value)&&u.push(a?{}:{color:this.color,fillColor:this.fillColor}),rL(this,"afterSetOptions",{options:g}),g}getName(){return rW(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rw(o=rW("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rp.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oX&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rP(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rB(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rB(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rw(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rB(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,a&&(c=l+1)):o[l]&&(o[l].touched=!0),(!n||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let g=this.getColumn("x");return null===this.xIncrement&&g.length&&(this.xIncrement=rx(g),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),g=this.pointValKey||"y",u=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rz(!0,t));let k=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(rD(t)&&(f||rB(t[0])));if(rB(i)&&rB(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[g]:i})}else if(o(i)&&o(s)){if(u){let e=i.length===u?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=u;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[g]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rE(i,t),o=rE(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,g,u,f,m=e.getColumn("x"),x=i,y=!1;return r&&(u=(g=r.getExtremes()).min,f=g.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]f?x=new rt:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,u,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rO([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rC(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rL(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a=e){h=Math.max(0,a-1);break}for(n=a;ni){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rt({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],g=this.dataColumnKeys(),u,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,g=o||this.cropped||!i,u,f,m,x=0,y=0;for(i&&(x=(u=i.getExtremes()).min,y=u.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rB(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:ry(d),dataMax:rx(d)};return rL(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rR(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rL(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,g=this[this.specialGroup||"markerGroup"],u=this.xAxis,f=rW(p.enabled,!u||!!u.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(g),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=rW(o.radius,s&&s.radius);e&&(n=s.states[e],l=rW((h=o.states&&o.states[e])&&h.radius,n&&n.radius,l&&l+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rB(l)&&d&&(i.crisp&&(d[0]=rk(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,g=rW(o.lineWidth,i.lineWidth),u=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},g=rW((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,g+rW(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":g,fill:c,opacity:u=rW(l.opacity,h.opacity,u)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(rf.navigator.userAgent),n=o.data||[];for(rL(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rT(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rM(t,void 0,!0);$.clearTimeout(o.animationTimeout),rR(o,function(t,e){t instanceof eY&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rT(r.series,o),r.orderItems("series"),rR(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:g=0}=d||{},u=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rb(d.toPixels(rW(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,g=0,f=r.len,y=a.len;c?(p=o,f=x):(g=o,y=x);let b=[["M",p,g],["L",f,g],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(u(v),t&&u(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rw(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rw(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rH(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rd(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rL(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rX(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rL(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rX(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,h=e?"distX":"dist",l=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>[(t[i]||0)<(e[i]||0)?t:e,!1]),p=o||((t,e)=>t=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(ru?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rL(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,g=n.data,u=this.getColumn("x");e=rW(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=u.length,this.requireSorting&&mm;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),g?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,g,...Object.values(d.getColumns())].filter(rw).forEach(t=>{t.shift()}),d.rowCount-=1,rL(d,"afterDeleteRows"))),!1!==o&&rL(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rw).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rL(n,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rc(i,o),e=rW(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rW(t,!0)&&r.redraw(e)}!1!==i?rL(o,"remove",null,a):a()}update(t,e){rL(this,"update",{options:t=rS(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rm[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],g=t.type||o.type||s.options.chart.type,u=!(this.hasDerivedData||g&&g!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));g=g||r,u?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rA(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rz(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!u&&{data:i.options.data},t,h),u&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rm[g]){if(f=g!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rm[g].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rA(i,rm[g].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rC(17,!0,s,{missingModuleFor:g});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),u&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rL(this,"afterUpdate"),rW(e,!0)&&s.redraw(!!u&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rW(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rw(r)?i!==o:i!==rW(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rL(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rL(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rW(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=rW(a[t].opacity,l)),o&&!o.dashstyle&&rB(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rL(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rL(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){ro[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rF.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rF.types=rl.seriesTypes,rF.registerType=rl.registerSeriesType,rA(rF.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oX,requireSorting:!0,sorted:!0}),rl.series=rF;let rG=rF,{animObject:rY,setAnimation:rj}=tz,{registerEventOptions:rU}=i2,{composed:r$,marginNames:rV}=k,{distribute:rq}=el,{format:rZ}=es,{addEvent:r_,createElement:rK,css:rJ,defined:rQ,discardElement:r0,find:r1,fireEvent:r2,isNumber:r3,merge:r5,pick:r6,pushUnique:r9,relativeLength:r4,stableSort:r8,syncTimeout:r7}=$;class at{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rU(this,e),r_(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r_(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=r6(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=r5(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=r6(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(r5(!0,this.options,t)),"events"in this.options&&rU(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,r6(e,!0)&&i.redraw(),r2(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof rG||t instanceof oX)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(r5(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,r2(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[rQ(e.translateY)?"animate":"attr"](o,void 0,()=>{r2(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r0(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,rJ(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?r6(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&r6(i.showInLegend,!rQ(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),r2(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!rQ(t[a])&&(i[rV[a]]=Math.max(i[rV[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+r6(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=r1(a?t.points:t.points.slice(0).reverse(),function(t){return r3(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),rq(i,e.plotHeight)))t=o.item.legendItem||{},r3(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=r4(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),r8(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),r2(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=r5(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(r5(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=r6(l.animation,!0),c=l.arrowSize||12,p=this.pages,g=this.allItems,u=function(t){"number"==typeof t?k.attr({height:t}):k&&(e.clipRect=k.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,k=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-n,0),this.currentPage=r6(this.currentPage,1),this.fullHeight=t,g.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((g[e-1].legendItem||{}).pageIx=o-1),e===g.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),k||(k=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(k)),u(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(u(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&rj(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),r7(()=>{r2(this,"afterScroll",{currentPage:l})},rY(r6(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oX,n=t instanceof rG,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(r5(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),r2(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&r2(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=rK("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r_(t.checkbox,"click",function(e){let i=e.target;r2(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){r9(r$,"Core.Legend")&&r_(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(at||(at={}));let ae=at,{animate:ai,animObject:as,setAnimation:ao}=tz,{defaultOptions:ar}=tf,{numberFormat:aa}=es,{registerEventOptions:an}=i2,{charts:ah,doc:al,marginNames:ad,svg:ac,win:ap}=k,{seriesTypes:ag}=rl,{addEvent:au,attr:af,createElement:am,css:ax,defined:ay,diffObjects:ab,discardElement:av,erase:ak,error:aw,extend:aM,find:aS,fireEvent:aT,getAlignFactor:aC,getStyle:aA,isArray:aP,isNumber:aL,isObject:aO,isString:aE,merge:aI,objectEach:aD,pick:aB,pInt:aN,relativeLength:az,removeEvent:aR,splat:aW,syncTimeout:aH,uniqueKey:aX}=$;class aF{static chart(t,e,i){return new aF(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aE(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aB(t.zoomType,e.type),key:aB(t.zoomKey,e.key),pinchType:aB(t.pinchType,e.pinchType),singleTouch:aB(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aI(e.resetButton,t.resetZoomButton)}}init(t,e){aT(this,"init",{args:arguments},function(){let i=aI(ar,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=aM({},t),(this.renderTo=aE(o)?al.getElementById(o):o)||aw(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tl(aM(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||aa).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ah.length,ah.push(this),k.chartCount++,an(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aT(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=ag[i];s||aw(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aW(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aW(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(u.isInsidePlot=!1)}if(!i.ignoreY&&u.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+g:a+g;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(u.isInsidePlot=!1)}return aT(this,"afterIsInsidePlot",u),u.isInsidePlot}redraw(t){aT(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,g=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),ao(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),g=!0):r&&(r.labelFormatter||r.labelFormat)&&(g=!0)),t.isDirtyData&&aT(t,"updatedData")}),g&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){aT(t,"afterSetExtremes",aM(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aT(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aT(this,"redraw"),aT(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aS(this.axes,i)||aS(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aB(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aI(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(aM("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aI(o),n=i?.textPxLength||0;if(i&&r){aT(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,g="title"===t?c?-3:0:c?e[0]+2:0,u=Math.min(a.width/n,1),f=Math.max(p,u),m=aI({y:"bottom"===d?h:g+h},{align:"title"===t?up?this.chartWidth:a.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${a.x+n*f*aC(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,aT(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:aA(this.renderTo,"width",!0)||0,height:aA(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,az(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(ax(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(al.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(al.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,al.body.appendChild(e)),("none"===aA(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),ax(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==al.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=aX(),r=this.renderTo,a=aN(af(r,s));aL(a)&&ah[a]&&ah[a].hasRendered&&ah[a].destroy(),af(r,s,this.index),r.innerHTML=t_.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;ax(r,{overflow:"hidden"}),this.styledMode||(t=aM({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=am("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||ax(l,{width:aB(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!ac?eo.getRendererType(i.renderer):iz;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),ao(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aT(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!ay(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!ay(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),aT(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),ad.forEach(function(i,o){ay(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return ab(this.userOptions,ar)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&($.clearTimeout(e.reflowTimeout),e.reflowTimeout=aH(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=au(ap,"resize",e);au(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ao(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?ai:ax)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aT(s,"resize"),setTimeout(()=>{s&&aT(s,"endResize")},as(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),aT(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){aT(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=aO(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aB(e[i+s],o[r])})}),ad.forEach(function(e,i){t[e]=aB(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,g=this.plotBox,u=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,w="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),w="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),k={fill:a||"none"},(b||m["stroke-width"])&&(k.stroke=t.borderColor,k["stroke-width"]=b),m.attr(k).shadow(t.shadow)),m[w]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),w="animate",x||(w="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[w](g),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(g)):this.plotBGImage=e.image(h,l,d,c,p).add())),u?u.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),w="animate",y||(w="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[w](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,aT(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=ag[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=ag[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aE(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aB(t.options.visible,s.options.visible,t.visible))}}),aT(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),aT(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sr(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aB(i.reserveSpace,!aL(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aI(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(ap.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(aT(e,"destroy"),e.renderer.forExport?ak(ah,e):ah[e.index]=void 0,k.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),aR(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t_.emptyHTML,aR(o),r&&av(o)),aD(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aP(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aT(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aT(this,"load"),aT(this,"render"),ay(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aT(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),ax(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:g,minPointOffset:u=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=aB(a[x],t.len),v=aB(s[x],t.len),k=10>Math.abs(b)?1:b/v,w=(s[y]||0)+v/2-t.pos,M=w-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(w<0||w>t.len))continue;let T=t.toValue(M,!0)+(r||t.isOrdinal?0:u*S),C=t.toValue(M+g/k,!0)-(r||t.isOrdinal?0:u*S||0),A=t.allExtremes;if(T>C&&([T,C]=[C,T]),1===k&&!o&&"yAxis"===t.coll&&!A){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);A??(A={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aL(t.dataMin)&&aL(t.dataMax)&&(A.dataMin=Math.min(t.dataMin,A.dataMin),A.dataMax=Math.max(t.dataMax,A.dataMax))}t.allExtremes=A}let{dataMin:P,dataMax:L,min:O,max:E}=aM(t.getExtremes(),A||{}),I=l.parse(f.min),D=l.parse(f.max),B=P??I,N=L??D,z=C-T,R=t.categories?0:Math.min(z,N-B),W=B-R*(ay(I)?0:f.minPadding),H=N+R*(ay(D)?0:f.maxPadding),X=t.allowZoomOutside||1===k||"zoom"!==n&&k>1,F=Math.min(I??W,W,X?O:W),G=Math.max(D??H,H,X?E:H);(!t.isOrdinal||t.options.overscroll||1!==k||o)&&(T=1&&(C=T+z)),C>G&&(C=G,k>=1&&(T=C-z)),(o||t.series.length&&(T!==O||C!==E)&&T>=F&&C<=G)&&(r?r[t.coll].push({axis:t,min:T,max:C}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:T,o?void 0:C,!1,!1,{move:M,trigger:n,scale:k}),!o&&(T>F||C{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}aM(aF.prototype,{callbacks:[],collectionsWithInit:{xAxis:[aF.prototype.addAxis,[!0]],yAxis:[aF.prototype.addAxis,[!1]],series:[aF.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let{stop:aG}=tz,{composed:aY}=k,{addEvent:aj,createElement:aU,css:a$,defined:aV,erase:aq,merge:aZ,pushUnique:a_}=$;function aK(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new aQ(this)),t?.applyFixed()}function aJ(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class aQ{static compose(t,e,i){a_(aY,this.compose)&&(aj(t,"afterInit",aJ),aj(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),aj(e,"render",aK),aj(i,"show",aJ))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=aZ(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),aV(s)&&(t.scrollablePlotBox=aZ(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),aV(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=eo.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=aU("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=aU("div",{className:"highcharts-scrolling"},a,n),l=this.innerContainer=aU("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=aU("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),a$(t.renderTo,{overflow:"visible"}),aj(t,"afterShowResetZoom",r),aj(t,"afterApplyDrilldown",r),aj(t,"afterLayOutTitles",r),aj(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:g=0}=t,{scrollPositionX:u=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+g;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),aG(t.container),a$(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),a$(s,{width:`${r}px`,height:`${a}px`}),aV(i)||(s.scrollLeft=p*u,s.scrollTop=g*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,w=l+c-p,M=d+h-g,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",w,y],["L",r,y],["L",r,v],["L",w,v],["Z"]]:g&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,M],["L",b,a],["L",k,a],["L",k,M],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=aQ.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a_(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])aq(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}aQ.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:a0}=es,{series:a1}=rl,{destroyObjectProperties:a2,fireEvent:a3,getAlignFactor:a5,isNumber:a6,pick:a9}=$,a4=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){a2(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?a0(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:a9(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,a3(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:g}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===a9(l.overflow,"justify"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:g,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&a1.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*a5(l.textAlign||"center"),rotationOriginY:t.height/2}),a9(!i&&l.crop,!0)&&(s=a6(h.x)&&a6(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}a3(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*a5(i)-1),y:t.height/2*2*(1-a5(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:a9(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=a9(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||a6(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),g=i.inverted,u=this.isNegative;return g?{x:(u?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(u?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:a8}=tz,{series:{prototype:a7}}=rl,{addEvent:nt,correctFloat:ne,defined:ni,destroyObjectProperties:ns,fireEvent:no,isNumber:nr,objectEach:na,pick:nn}=$;function nh(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nn(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function nl(){let t=this.stacking;if(t){let e=t.stacks;na(e,(t,i)=>{ns(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nd(){this.stacking||(this.stacking=new nm(this))}function nc(t,e,i,s){return!ni(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function np(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function ng(t,e,i){let s=e.total?100/e.total:0;t[0]=ne(t[0]*s),t[1]=ne(t[1]*s),this.stackedYData[i]=t[1]}function nu(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?a7.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nf(t,e){let i,s,o,r,a,n,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],g=c.length,u=this.options,f=u.threshold||0,m=u.startFromThreshold?f:0,x=u.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,k=t.stacking,w=k.stacks,M=k.oldStacks;for(k.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&w[r]?.[e]?(r=w[r][e]).total=Math.max(r.total||0,S)+Math.abs(u):ne(S+Math.abs(u))):"group"===l?nr(g)&&S++:S=ne(S+u),"group"===l?o.cumulative=(S||1)-1:o.cumulative=ne(nn(o.cumulative,m)+u),o.total=S,null!==g&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class nm{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{na(t,t=>{t.cumulative=t.total})}))}resetStacks(){na(this.stacks,t=>{na(t,(e,i)=>{nr(e.touched)&&e.touched{na(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(p||(p={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(nt(t,"init",nd),nt(t,"destroy",nl),s.getStacks=nh,o.getStackIndicator=nc,o.modifyStacks=np,o.percentStacker=ng,o.setGroupedPoints=nu,o.setStackedPoints=nf)};let nx=p,{defined:ny,merge:nb,isObject:nv}=$;class nk extends rG{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nb({filterUnits:"userSpaceOnUse"},nv(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,g=l.plotY,u=t[d-1],f=l.isNull||"number"!=typeof g;(l.leftCliff||u&&u.rightCliff)&&!i&&(n=!0),f&&!ny(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",u.plotX,g]]:2===h?[["L",(u.plotX+p)/2,u.plotY],["L",(u.plotX+p)/2,g]]:[["L",p,u.plotY]]).push(["L",p,g]):c=[["L",p,g]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nk.defaultOptions=nb(rG.defaultOptions,{legendSymbol:"lineMarker"}),rl.registerSeriesType("line",nk);let{seriesTypes:{line:nw}}=rl,{extend:nM,merge:nS,objectEach:nT,pick:nC}=$;class nA extends nw{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nw.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,g=Math.round(n.getThreshold(r.threshold)),u=nC(r.connectNulls,"percent"===a),f=function(i,s,o){let r=t[i],u=a&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?u[0]:u[1])+m,y=u[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?g:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?g:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,g){let u=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[g+i]],u=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),a=2*h-o):op&&a>h?(a=Math.max(p,h),o=2*h-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n_(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&n$(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(nY(s)){if(nV(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=nZ(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,h=nZ(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,g=t.dataMax,u=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),rG.prototype.translate.apply(t),t.points.forEach(function(s){let o=nZ(s.yBottom,u),m=999+Math.abs(o),x=s.plotX||0,y=nF(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,w=d,M=x+c,S=f;h&&Math.abs(k)h?o-h:u-(b?h:0)),nY(s.options.pointWidth)&&(M-=Math.round(((w=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(M=t.adjustForMissingColumns(M,w,s,l)),s.barX=M,s.pointWidth=w,s.tooltipPos=e.inverted?[nF(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-M-S/2,k]:[r.left-e.plotLeft+M+S/2,nF(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(M,s.isNull?u:v,S,s.isNull?0:k)}),nU(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,g=nZ(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=nq(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&nH(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,g=nZ(a.opacity,g));let u={fill:l,stroke:d,"stroke-width":p,opacity:g};return c&&(u.dashstyle=c),u}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=n1(h)&&n1(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===n7(i.overflow,a?"none":"justify"),g=this.visible&&!1!==t.visible&&n1(h)&&(t.series.forceDL||a&&!p||c||n7(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),u=t.pos();if(g&&u){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=n2({x:u[0],y:Math.round(u[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),n2(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(n4(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=n5(i.align)*(l.width-h.width),e.alignAttr.y+=n5(i.verticalAlign)*(l.height-h.height),e.attr({"text-align":e.alignAttr["text-align"]||"center"})[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(n7(i.crop,!0)){let{x:t,y:i}=e.alignAttr;g=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:u[0],anchorY:u[1]})}o&&a&&(e.placed=!1),g||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(n9(l)&&l||n9(a)&&a||"#000000"),c=h(i),{animation:p,defer:g}=c[0],u=g?nQ(s,p,i):{defer:0,duration:0};n3(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(u),t.forEach(t=>{let a=t.dataLabels||[];he(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let l=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:g,style:u={}}=n,f,m,x,y={},b=a[h],v=!b,k;l&&(m=n1(f=n7(n[t.formatPrefix+"Format"],n.format))?n0(f,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(u.color=n7(n.color,u.color,n9(i.color)?i.color:void 0,"#000000"),"contrast"===u.color?("none"!==c&&(k=c),t.contrastColor=r.getContrast("auto"!==k&&k||t.color||i.color),u.color=k||!n1(g)&&n.inside||0>ht(g||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(u.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),n8(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&n1(m)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),l&&n1(m)&&(b?y.text=m:(b=r.label(m,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?u.width&&b.css({width:u.width,textOverflow:u.textOverflow,whiteSpace:u.whiteSpace}):b.css(u).shadow(n.shadow),n3(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[h]&&a[h]!==b&&a[h].destroy(),a[h]=b))});let h=a.length;for(;h--;)a[h]&&a[h].isActive?a[h].isActive=!1:(a[h]?.destroy(),a.splice(h,1));t.dataLabel=a[0],t.dataLabels=a})),n3(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,g=p?p.top-a.plotTop:0,{x:u=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===n&&u>=0?(e.align="left",e.inside=!0):u-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&("left"===n&&u<=0?(e.align="right",e.inside=!0):u+=a.plotWidth-m,x=!0),(m=i.y+l+g)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+g)>a.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=u,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(n6(t)&&!n6(e))i=t.map(function(t){return n4(t,e)});else if(n6(e)&&!n6(t))i=e.map(function(e){return n4(t,e)});else if(n6(t)||n6(e)){if(n6(t)&&n6(e))for(s=Math.max(t.length,e.length);s--;)i[s]=n4(t[s],e[s])}else i=n4(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return he(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=l,n.hasDataLabels=e)}}(g||(g={}));let hi=g,{composed:hs}=k,{series:ho}=rl,{merge:hr,pick:ha,pushUnique:hn}=$;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,h=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=ha(t.below,t.plotY>ha(this.translatedThreshold,h)),c=ha(i.inside,!!this.options.stacking);if(l){if(s=hr(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),hf(hx.prototype,{drawTracker:hp.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hu(hx,"afterTranslate",function(){this.applyJitter()}),rl.registerSeriesType("scatter",hx);let{deg2rad:hy}=k,{fireEvent:hb,isNumber:hv,pick:hk,relativeLength:hw}=$;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let g=[hk(r?.[0],"50%"),hk(r?.[1],"50%"),hk(l&&l<0?void 0:t.size,"100%"),hk(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rG||(g[3]=0),c=0;c<4;++c)p=g[c],h=c<2||2===c&&/%$/.test(p),g[c]=hw(p,[s,o,a,g[2]][c])+(h?i:0);return g[3]>g[2]&&(g[3]=g[2]),hv(n)&&2*n0&&(g[3]=g[2]-2*n),hb(this,"afterGetCenter",{positions:g}),g},t.getStartAndEndRadians=function(t,e){let i=hv(t)?t:0,s=hv(e)&&e>i&&e-i<360?e:i+360;return{start:hy*(i+-90),end:hy*(s+-90)}}}(f||(f={}));let hM=f,{setAnimation:hS}=tz,{addEvent:hT,defined:hC,extend:hA,isNumber:hP,pick:hL,relativeLength:hO}=$;class hE extends oX{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hT(this,"select",s),hT(this,"unselect",s)}isValid(){return hP(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hS(i,s.chart),e=hL(e,!0),this.sliced=this.options.sliced=t=hC(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hA(hE.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,g="left"===t.alignment,{x:u,y:f}=t,m=o.x;if(i.crookDistance){let t=hO(i.crookDistance,1);m=g?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",u,f]];return(g?m<=u&&m>=o.x:m>=u&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hI}=hM,{noop:hD}=k,{clamp:hB,extend:hN,fireEvent:hz,merge:hR,pick:hW}=$;class hH extends rG{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hW(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:e5.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(hB((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||hR(!0,n,i),hR(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hz(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hI(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,g,u,f,m=0;for(t||(this.center=t=this.getCenter()),u=0;u1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,g=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*g],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}hz(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hH.defaultOptions=hR(rG.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hN(hH.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:nJ.prototype.drawTracker,getCenter:hM.getCenter,getSymbol:hD,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:nJ.prototype.pointAttribs,pointClass:hE,requireSorting:!1,searchPoint:hD,trackerGroups:["group","dataLabelsGroup"]}),rl.registerSeriesType("pie",hH);let{composed:hX,noop:hF}=k,{distribute:hG}=el,{series:hY}=rl,{arrayMax:hj,clamp:hU,defined:h$,pick:hV,pushUnique:hq,relativeLength:hZ}=$;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,g=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*g,y:p+d*g},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,g,u,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),hY.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=hZ(o?.distance||0,s);0===i&&d[t.half].push(t),!h$(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,g=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},g.push(t.distributeBox))})}),hG(g,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,w=0,M=y,S="inherit";if(x){if(g&&h$(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,M=p.radialDistributionY(i,l))),d.justify)w=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":w=p.alignToConnectors(e,a,s,r);break;case"plotEdges":w=p.alignToPlotEdges(l,a,s,r);break;default:w=p.radialDistributionX(t,i,M-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:w+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:M+(d.y||0)-v/2},x.computed.x=w,x.computed.y=M-k,hV(d.crop,!0)){let t;w-(u=l.getBBox().width)s-b&&0===a&&(t=Math.round(w+u-s+b),c[1]=Math.max(t,c[1])),M-f/2<0?c[0]=Math.max(Math.round(-M+f/2),c[0]):M+f/2>o&&(c[2]=Math.max(Math.round(M+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===hj(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;g=s.connector,a&&a.distance>0?(n=!g,g||(s.connector=g=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||g.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),g[n?"attr":"animate"]({d:e.getConnectorPath(s)}),g.attr({visibility:a.attribs?.visibility})):g&&(s.connector=g.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=hU(r,o,e[2]-Math.max(t[0],t[2])):(r=hU(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(x||(x={}));let{pointInPolygon:hK}=x,{addEvent:hJ,fireEvent:hQ,objectEach:h0,pick:h1}=$;function h2(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(hK({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{h0(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=h1(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,h3(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let h6={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=h2,hJ(t,"render",h5))}},{defaultOptions:h9}=tf,{noop:h4}=k,{addEvent:h8,extend:h7,isObject:lt,merge:le,relativeLength:li}=$,ls={radius:0,scope:"stack",where:void 0},lo=h4,lr=h4;function la(t,e,i,s,o={}){let r=lo(t,e,i,s,o),{innerR:a=0,r:n=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(li(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),g=Math.min(p,d/Math.PI*2*a),u=r.length-1;for(;u--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,g=n?a-i:a+i,u=g?Math.asin(i/g):0,f=n?u:-u,m=Math.cos(u)*g;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?g:p);return r}function ln(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=h9.plotOptions?.[this.type]?.borderRadius,o=lh(t.borderRadius,lt(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,g=o.where;!g&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(g="all"),g||(g="end");let u=Math.min(li(o.radius,n),n/2,"all"===g?h/2:1/0)||0;"end"===g&&(p&&(d-=u),c+=u),h7(a,{brBoxHeight:c,brBoxY:d,r:u})}}}}function lh(t,e){return lt(t)||(t={radius:t||0}),le(ls,e,t)}function ll(){let t=lh(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=li(t.radius,(i.r||0)-(i.innerR||0)))}}function ld(t,e,i,s,o={}){let r=lr(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,g=Math.max(c&&l,0),u=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],w=[t,e+c],M=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(g){let t=M(c,c-g);f[0]-=t,m[0]+=t,x[1]=w[1]=e+c-g}if(s=lf(i.minWidth,0)&&this.chartHeight>=lf(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lm()),this.matchResponsiveRule(t,o)},this);let a=lu(...o.map(t=>lg((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lc(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lp(s,{matchResponsiveRule:e,setResponsive:i}),t}}(y||(y={}));let lx=y;k.AST=t_,k.Axis=sz,k.Chart=aF,k.Color=tv,k.DataLabel=hi,k.DataTableCore=rt,k.Fx=tT,k.HTMLElement=iZ,k.Legend=ae,k.LegendSymbol=ro,k.OverlappingDataLabels=k.OverlappingDataLabels||h6,k.PlotLineOrBand=s9,k.Point=oX,k.Pointer=o6,k.RendererRegistry=eo,k.Series=rG,k.SeriesRegistry=rl,k.StackItem=a4,k.SVGElement=eY,k.SVGRenderer=iz,k.Templating=es,k.Tick=sr,k.Time=tl,k.Tooltip=ov,k.animate=tz.animate,k.animObject=tz.animObject,k.chart=aF.chart,k.color=tv.parse,k.dateFormat=es.dateFormat,k.defaultOptions=tf.defaultOptions,k.distribute=el.distribute,k.format=es.format,k.getDeferredAnimation=tz.getDeferredAnimation,k.getOptions=tf.getOptions,k.numberFormat=es.numberFormat,k.seriesType=rl.seriesType,k.setAnimation=tz.setAnimation,k.setOptions=tf.setOptions,k.stop=tz.stop,k.time=tf.defaultTime,k.timers=tT.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;h8(t,"afterColumnTranslate",ln,{order:9}),h8(s,"afterTranslate",ll),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),lo=o.arc,lr=o.roundedRect,o.arc=la,o.roundedRect=ld}},optionsToObject:lh}).compose(k.Series,k.SVGElement,k.SVGRenderer),hh.compose(k.Series.types.column),hi.compose(k.Series),sF.compose(k.Axis),iZ.compose(k.SVGRenderer),ae.compose(k.Chart),sU.compose(k.Axis),h6.compose(k.Chart),h_.compose(k.Series.types.pie),s9.compose(k.Chart,k.Axis),o6.compose(k.Chart),lx.compose(k.Chart),aQ.compose(k.Axis,k.Chart,k.Series),nx.compose(k.Axis,k.Chart,k.Series),ov.compose(k.Pointer),$.extend(k,$);let ly=k;return v.default})()); \ No newline at end of file diff --git a/highcharts.src.d.ts b/highcharts.src.d.ts index 45921bf91f..ccf6f5306c 100644 --- a/highcharts.src.d.ts +++ b/highcharts.src.d.ts @@ -1489,7 +1489,8 @@ export interface AccessibilitySeriesOptions { /** * (Highcharts, Highstock, Highmaps, Gantt) When a series contains more * points than this, we no longer expose information about individual points - * to screen readers. + * to screen readers. Note that the keyboard navigation remains functional, + * but points won't have accessible descriptions unless handled separately. * * Set to `false` to disable. */ @@ -68476,7 +68477,7 @@ export interface PlotTreegraphLevelsDataLabelsOptions { * `ellipsis`, which will keep the text on one line plus it will break * inside long words. */ - style?: CSSObject; + style?: (CSSObject|PlotTreegraphLevelsDataLabelsStyleOptions); /** * (Highcharts) Options for a label text which should follow marker's shape. * Border and background are disabled for a label that follows a path. @@ -68513,617 +68514,337 @@ export interface PlotTreegraphLevelsDataLabelsOptions { */ zIndex?: number; } -export interface PlotTreegraphLinkOptions { - /** - * (Highcharts) The color of the links between nodes. - */ - color?: ColorString; - cursor?: string; - /** - * (Highcharts) The line width of the links connecting nodes, in pixels. - */ - lineWidth?: number; - /** - * (Highcharts) Radius for the rounded corners of the links between nodes. - * Works for `default` link type. - */ - radius?: number; - /** - * (Highcharts) Type of the link shape. - */ - type?: ('curved'|'default'|'straight'); -} /** - * (Highcharts) Options for the _Series on point_ feature. Only `pie` and - * `sunburst` series are supported at this moment. - */ -export interface PlotTreegraphOnPointOptions { - /** - * (Highcharts) Options for the connector in the _Series on point_ feature. - * - * In styled mode, the connector can be styled with the - * `.highcharts-connector-seriesonpoint` class name. - */ - connectorOptions?: (PlotTreegraphOnPointConnectorOptions|SVGAttributes); - /** - * (Highcharts) The `id` of the point that we connect the series to. Only - * points with a given `plotX` and `plotY` values and map points are valid. - */ - id?: string; - /** - * (Highcharts) Options allowing to set a position and an offset of the - * series in the _Series on point_ feature. - */ - position?: (object|PlotTreegraphOnPointPositionOptions); -} -/** - * (Highcharts) A treegraph series is a diagram, which shows a relation between - * ancestors and descendants with a clear parent - child relation. The best - * examples of the dataStructures, which best reflect this chart are e.g. - * genealogy tree or directory structure. - * - * TODO change back the demo path - * - * Configuration options for the series are given in three levels: - * - * 1. Options for all series in a chart are defined in the plotOptions.series - * object. - * - * 2. Options for all `treegraph` series are defined in plotOptions.treegraph. - * - * 3. Options for one single series are given in the series instance array. (see - * online documentation for example) - * - * **TypeScript:** - * - * - the type option must always be set. - * - * - when accessing an array of series, the combined set of all series types is - * represented by Highcharts.SeriesOptionsType . Narrowing down to the specific - * type can be done by checking the `type` property. (see online documentation - * for example) + * (Highcharts) Set options on specific levels. Takes precedence over series + * options, but not point options. */ -export interface PlotTreegraphOptions { - /** - * (Highcharts) Accessibility options for a series. - */ - accessibility?: SeriesAccessibilityOptionsObject; +export interface PlotTreegraphLevelsOptions { /** - * (Highcharts) Allow this series' points to be selected by clicking on the - * graphic (columns, point markers, pie slices, map areas etc). - * - * The selected points can be handled by point select and unselect events, - * or collectively by the getSelectedPoints function. - * - * And alternative way of selecting points is through dragging. - */ - allowPointSelect?: boolean; - /** - * (Highcharts) Enable or disable the initial animation when a series is - * displayed. The animation can also be set as a configuration object. - * Please note that this option only applies to the initial animation of the - * series itself. For other animations, see chart.animation and the - * animation parameter under the API methods. The following properties are - * supported: - * - * - `defer`: The animation delay time in milliseconds. - * - * - `duration`: The duration of the animation in milliseconds. (Defaults to - * `1000`) - * - * - `easing`: Can be a string reference to an easing function set on the - * `Math` object or a function. See the _Custom easing function_ demo below. - * (Defaults to `easeInOutSine`) - * - * Due to poor performance, animation is disabled in old IE browsers for - * several chart types. - */ - animation?: (boolean|AnimationOptionsObject); - /** - * (Highcharts) For some series, there is a limit that shuts down animation - * by default when the total number of points in the chart is too high. For - * example, for a column chart and its derivatives, animation does not run - * if there is more than 250 points totally. To disable this cap, set - * `animationLimit` to `Infinity`. This option works if animation is fired - * on individual points, not on a group of points like e.g. during the - * initial animation. - */ - animationLimit?: number; - /** - * (Highcharts) Sets the color blending in the boost module. - */ - boostBlending?: OptionsBoostBlendingValue; - /** - * (Highcharts) Set the point threshold for when a series should enter boost - * mode. - * - * Setting it to e.g. 2000 will cause the series to enter boost mode when - * there are 2000 or more points in the series. - * - * To disable boosting on the series, set the `boostThreshold` to 0. Setting - * it to 1 will force boosting. - * - * Note that the cropThreshold also affects this setting. When zooming in on - * a series that has fewer points than the `cropThreshold`, all points are - * rendered although outside the visible plot area, and the `boostThreshold` - * won't take effect. - */ - boostThreshold?: number; - /** - * (Highcharts) An additional class name to apply to the series' graphical - * elements. This option does not replace default class names of the - * graphical element. Changes to the series' color will also be reflected in - * a chart's legend and tooltip. + * (Highcharts) Can set a `borderColor` on all points which lies on the same + * level. */ - className?: string; + borderColor?: ColorString; /** - * (Highcharts) Disable this option to allow series rendering in the whole - * plotting area. - * - * **Note:** Clipping should be always enabled when chart.zoomType is set + * (Highcharts) Set the dash style of the border of all the point which lies + * on the level. See plotOptions.scatter.dashStyle for possible options. */ - clip?: boolean; + borderDashStyle?: DashStyleValue; /** - * (Highcharts) Options applied to collapse Button. The collape button is - * the small button which indicates, that the node is collapsable. + * (Highcharts) Can set the borderWidth on all points which lies on the same + * level. */ - collapseButton?: PlotTreegraphCollapseButtonOptions; + borderWidth?: number; /** - * (Highcharts) The main color of the series. In line type series it applies - * to the line and the point markers unless otherwise specified. In bar type - * series it applies to the bars unless a color is specified per point. The - * default value is pulled from the `options.colors` array. - * - * In styled mode, the color can be defined by the colorIndex option. Also, - * the series color can be set with the `.highcharts-series`, - * `.highcharts-color-{n}`, `.highcharts-{type}-series` or - * `.highcharts-series-{n}` class, or individual classes given by the - * `className` option. + * (Highcharts) Can set a color on all points which lies on the same level. */ color?: (ColorString|GradientColorObject|PatternObject); /** - * (Highcharts) When using automatic point colors pulled from the - * `options.colors` collection, this option determines whether the chart - * should receive one color per series or one color per point. + * (Highcharts) A configuration object to define how the color of a child + * varies from the parent's color. The variation is distributed among the + * children of node. For example when setting brightness, the brightness + * change will range from the parent's original brightness on the first + * child, to the amount set in the `to` setting on the last node. This + * allows a gradient-like color scheme that sets children out from each + * other while highlighting the grouping on treemaps and sectors on sunburst + * charts. */ - colorByPoint?: boolean; + colorVariation?: PlotTreegraphLevelsColorVariationOptions; /** - * (Highcharts) Styled mode only. A specific color index to use for the - * series, so its graphic representations are given the class name - * `highcharts-color-{n}`. - * - * Since v11, CSS variables on the form `--highcharts-color-{n}` make - * changing the color scheme very convenient. + * (Highcharts) Can set the options of dataLabels on each point which lies + * on the level. plotOptions.treemap.dataLabels for possible values. */ - colorIndex?: number; + dataLabels?: (PlotTreegraphLevelsDataLabelsOptions|Array); /** - * (Highcharts) A series specific or series type specific color set to apply - * instead of the global colors when colorByPoint is true. + * (Highcharts) Can set the layoutAlgorithm option on a specific level. */ - colors?: Array<(ColorString|GradientColorObject|PatternObject)>; + layoutAlgorithm?: OptionsLayoutAlgorithmValue; /** - * (Highcharts, Highstock, Gantt) When true, each point or column edge is - * rounded to its nearest pixel in order to render sharp on screen. In some - * cases, when there are a lot of densely packed columns, this leads to - * visible difference in column widths or distance between columns. In these - * cases, setting `crisp` to `false` may look better, even though each - * column is rendered blurry. + * (Highcharts) Can set the layoutStartingDirection option on a specific + * level. */ - crisp?: boolean; + layoutStartingDirection?: OptionsLayoutStartingDirectionValue; /** - * (Highcharts) When the series contains less points than the crop - * threshold, all points are drawn, event if the points fall outside the - * visible plot area at the current zoom. The advantage of drawing all - * points (including markers and columns), is that animation is performed on - * updates. On the other hand, when the series contains more points than the - * crop threshold, the series data is cropped to only contain points that - * fall within the plot area. The advantage of cropping away invisible - * points is to increase performance on large series. + * (Highcharts) Decides which level takes effect from the options set in the + * levels object. */ - cropThreshold?: number; + level?: number; +} +/** + * (Highcharts) Options for the connector in the _Series on point_ feature. + * + * In styled mode, the connector can be styled with the + * `.highcharts-connector-seriesonpoint` class name. + */ +export interface PlotTreegraphOnPointConnectorOptions { /** - * (Highcharts) You can set the cursor to "pointer" if you have click events - * attached to the series, to signal to the user that the points and lines - * can be clicked. - * - * In styled mode, the series cursor can be set with the same classes as - * listed under series.color. + * (Highcharts) A name for the dash style to use for the connector. */ - cursor?: (string|CursorValue); + dashstyle?: string; /** - * (Highcharts) A reserved subspace to store options and values for - * customized functionality. Here you can add additional data for your own - * event callbacks and formatter callbacks. + * (Highcharts) Color of the connector line. By default it's the series' + * color. */ - custom?: Dictionary; + stroke?: string; /** - * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels - * appearing on top of the nodes and links. For treegraph charts, data - * labels are visible for the nodes by default, but hidden for links. This - * is controlled by modifying the `nodeFormat`, and the `format` that - * applies to links and is an empty string by default. + * (Highcharts) Pixel width of the connector line. */ - dataLabels?: (SeriesTreegraphDataLabelsOptionsObject|Array); + width?: number; +} +/** + * (Highcharts) Options allowing to set a position and an offset of the series + * in the _Series on point_ feature. + */ +export interface PlotTreegraphOnPointPositionOptions { /** - * (Highcharts) A description of the series to add to the screen reader - * information about the series. + * (Highcharts) Series center offset from the original x position. If + * defined, the connector line is drawn connecting original position with + * new position. */ - description?: string; + offsetX?: number; /** - * (Highcharts) Enable or disable the mouse tracking for a specific series. - * This includes point tooltips and click events on graphs and points. For - * large datasets it improves performance. + * (Highcharts) Series center offset from the original y position. If + * defined, the connector line is drawn from original position to a new + * position. */ - enableMouseTracking?: boolean; + offsetY?: number; /** - * (Highcharts) General event handlers for the series items. These event - * hooks can also be attached to the series at run time using the - * `Highcharts.addEvent` function. + * (Highcharts) X position of the series center. By default, the series is + * displayed on the point that it is connected to. */ - events?: SeriesEventsOptionsObject; + x?: number; /** - * (Highcharts) Whether the treegraph series should fill the entire plot - * area in the X axis direction, even when there are collapsed points. + * (Highcharts) Y position of the series center. By default, the series is + * displayed on the point that it is connected to. */ - fillSpace?: boolean; + y?: number; +} +/** + * (Highcharts) Point accessibility options for a series. + */ +export interface PlotTreemapAccessibilityPointOptions { /** - * (Highcharts) Determines whether the series should look for the nearest - * point in both dimensions or just the x-dimension when hovering the - * series. Defaults to `'xy'` for scatter series and `'x'` for most other - * series. If the data has duplicate x-values, it is recommended to set this - * to `'xy'` to allow hovering over all points. + * (Highcharts) Date format to use for points on datetime axes when + * describing them to screen reader users. * - * Applies only to series types using nearest neighbor search (not direct - * hover) for tooltip. - */ - findNearestPointBy?: OptionsFindNearestPointByValue; - /** - * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total - * chart width or only the zoomed area when zooming in on parts of the X - * axis. By default, the Y axis adjusts to the min and max of the visible - * data. Cartesian series only. - */ - getExtremesFromAll?: boolean; - /** - * (Highcharts) Highlight only the hovered point and fade the remaining - * points. + * Defaults to the same format as in tooltip. * - * Scatter-type series require enabling the 'inactive' marker state and - * adjusting opacity. Note that this approach could affect performance with - * large datasets. + * For an overview of the replacement codes, see dateFormat. */ - inactiveOtherPoints?: boolean; + dateFormat?: string; /** - * (Highcharts) When set to `false` will prevent the series data from being - * included in any form of data export. - * - * Since version 6.0.0 until 7.1.0 the option was existing undocumented as - * `includeInCSVExport`. + * (Highcharts) Formatter function to determine the date/time format used + * with points on datetime axes when describing them to screen reader users. + * Receives one argument, `point`, referring to the point to describe. + * Should return a date format string compatible with dateFormat. */ - includeInDataExport?: boolean; + dateFormatter?: ScreenReaderFormatterCallbackFunction; /** - * (Highcharts) An array specifying which option maps to which key in the - * data point array. This makes it convenient to work with unstructured data - * arrays from different sources. + * (Highcharts) Whether or not to describe points with the value `null` to + * assistive technology, such as screen readers. */ - keys?: Array; + describeNull?: boolean; /** - * (Highcharts, Highstock, Gantt) Series labels are placed as close to the - * series as possible in a natural way, seeking to avoid other series. The - * goal of this feature is to make the chart more easily readable, like if a - * human designer placed the labels in the optimal position. + * (Highcharts) A format string to use instead of the default for point + * descriptions. * - * The series labels currently work with series types having a `graph` or an - * `area`. - */ - label?: SeriesLabelOptionsObject; - /** - * (Highcharts) What type of legend symbol to render for this series. Can be - * one of `areaMarker`, `lineMarker` or `rectangle`. - */ - legendSymbol?: OptionsLegendSymbolValue; - /** - * (Highcharts) Set options on specific levels. Takes precedence over series - * options, but not point options. - */ - levels?: Array; - link?: PlotTreegraphLinkOptions; - /** - * (Highcharts, Highstock, Gantt) The id of another series to link to. - * Additionally, the value can be ":previous" to link to the previous - * series. When two series are linked, only the first one appears in the - * legend. Toggling the visibility of this also toggles the linked series. + * The context of the format string is the point instance. * - * If master series uses data sorting and linked series does not have its - * own sorting definition, the linked series will be sorted in the same - * order as the master one. + * As opposed to accessibility.point.valueDescriptionFormat, this option + * replaces the whole description. */ - linkedTo?: string; + descriptionFormat?: string; /** - * (Highcharts) Options for the point markers of line and scatter-like - * series. Properties like `fillColor`, `lineColor` and `lineWidth` define - * the visual appearance of the markers. The `symbol` option defines the - * shape. Other series types, like column series, don't have markers, but - * have visual options on the series level instead. + * (Highcharts) Formatter function to use instead of the default for point + * descriptions. Same as `accessibility.point.descriptionFormatter`, but + * applies to a series instead of the whole chart. * - * In styled mode, the markers can be styled with the `.highcharts-point`, - * `.highcharts-point-hover` and `.highcharts-point-select` class names. + * Note: Prefer using accessibility.point.valueDescriptionFormat instead if + * possible, as default functionality such as describing annotations will be + * preserved. */ - marker?: PointMarkerOptionsObject; + descriptionFormatter?: ScreenReaderFormatterCallbackFunction; /** - * (Highcharts) The distance between nodes in a tree graph in the - * longitudinal direction. The longitudinal direction means the direction - * that the chart flows - in a horizontal chart the distance is horizontal, - * in an inverted chart (vertical), the distance is vertical. - * - * If a number is given, it denotes pixels. If a percentage string is given, - * the distance is a percentage of the rendered node width. A `nodeDistance` - * of `100%` will render equal widths for the nodes and the gaps between - * them. - * - * This option applies only when the `nodeWidth` option is `auto`, making - * the node width respond to the number of columns. + * (Highcharts) Decimals to use for the values in the point descriptions. + * Uses tooltip.valueDecimals if not defined. */ - nodeDistance?: (number|string); + valueDecimals?: number; /** - * (Highcharts) The pixel width of each node in a, or the height in case the - * chart is inverted. For tree graphs, the node width is only applied if the - * marker symbol is `rect`, otherwise the `marker` sizing options apply. + * (Highcharts) Format to use for describing the values of data points to + * assistive technology - including screen readers. The point context is + * available as `{point}`. * - * Can be a number or a percentage string, or `auto`. If `auto`, the nodes - * are sized to fill up the plot area in the longitudinal direction, - * regardless of the number of levels. - */ - nodeWidth?: (number|string); - /** - * (Highcharts) Options for the _Series on point_ feature. Only `pie` and - * `sunburst` series are supported at this moment. - */ - onPoint?: (object|PlotTreegraphOnPointOptions); - /** - * (Highcharts) The opacity of a point in treemap. When a point has - * children, the visibility of the children is determined by the opacity. - */ - opacity?: number; - /** - * (Highcharts) Properties for each single point. - */ - point?: PlotSeriesPointOptions; - /** - * (Highcharts) Same as accessibility.point.descriptionFormat, but for an - * individual series. Overrides the chart wide configuration. + * Other available context variables include `{index}`, `{value}`, and + * `{xDescription}`. + * + * Additionally, the series name, annotation info, and description added in + * `point.accessibility.description` is added by default if relevant. To + * override this, use the accessibility.point.descriptionFormatter option. */ - pointDescriptionFormat?: Function; + valueDescriptionFormat?: string; /** - * (Highcharts) Same as accessibility.series.descriptionFormatter, but for - * an individual series. Overrides the chart wide configuration. + * (Highcharts) Prefix to add to the values in the point descriptions. Uses + * tooltip.valuePrefix if not defined. */ - pointDescriptionFormatter?: Function; + valuePrefix?: string; /** - * (Highcharts, Highstock, Gantt) If no x values are given for the points in - * a series, `pointInterval` defines the interval of the x values. For - * example, if a series contains one value every decade starting from year - * 0, set `pointInterval` to `10`. In true `datetime` axes, the - * `pointInterval` is set in milliseconds. - * - * It can be also be combined with `pointIntervalUnit` to draw irregular - * time intervals. - * - * If combined with `relativeXValue`, an x value can be set on each point, - * and the `pointInterval` is added x times to the `pointStart` setting. - * - * Please note that this options applies to the _series data_, not the - * interval of the axis ticks, which is independent. + * (Highcharts) Suffix to add to the values in the point descriptions. Uses + * tooltip.valueSuffix if not defined. */ - pointInterval?: number; + valueSuffix?: string; +} +export interface PlotTreemapBreadcrumbsButtonThemeStyleOptions { + color?: string; +} +/** + * (Highcharts) Options for the breadcrumbs, the navigation at the top leading + * the way up through the traversed levels. + */ +export interface PlotTreemapBreadcrumbsOptions { /** - * (Highcharts, Highstock, Gantt) On datetime series, this allows for - * setting the pointInterval to irregular time units, `day`, `month` and - * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit` - * also takes the DST crossover into consideration when dealing with local - * time. Combine this option with `pointInterval` to draw weeks, quarters, 6 - * months, 10 years etc. - * - * Please note that this options applies to the _series data_, not the - * interval of the axis ticks, which is independent. + * (Highcharts) The default padding for each button and separator in each + * direction. */ - pointIntervalUnit?: OptionsPointIntervalUnitValue; + buttonSpacing?: number; /** - * (Highcharts, Highstock, Gantt) If no x values are given for the points in - * a series, `pointStart` defines on what value to start. For example, if a - * series contains one yearly value starting from 1945, set `pointStart` to - * 1945. - * - * The `pointStart` setting can be a number, or a datetime string that is - * parsed according to the `time.timezone` setting. + * (Highcharts) A collection of attributes for the buttons. The object takes + * SVG attributes like `fill`, `stroke`, `stroke-width`, as well as `style`, + * a collection of CSS properties for the text. * - * If combined with `relativeXValue`, an x value can be set on each point. - * The x value from the point options is multiplied by `pointInterval` and - * added to `pointStart` to produce a modified x value. + * The object can also be extended with states, so you can set + * presentational options for `hover`, `select` or `disabled` button states. */ - pointStart?: (number|string); + buttonTheme?: (PlotTreemapBreadcrumbsButtonThemeOptions|SVGAttributes); + events?: PlotTreemapBreadcrumbsEventsOptions; /** - * (Highcharts, Highstock) When true, X values in the data set are relative - * to the current `pointStart`, `pointInterval` and `pointIntervalUnit` - * settings. This allows compression of the data for datasets with irregular - * X values. - * - * The real X values are computed on the formula `f(x) = ax + b`, where `a` - * is the `pointInterval` (optionally with a time unit given by - * `pointIntervalUnit`), and `b` is the `pointStart`. + * (Highcharts) When the breadcrumbs are floating, the plot area will not + * move to make space for it. By default, the chart will not make space for + * the buttons. This property won't work when positioned in the middle. */ - relativeXValue?: boolean; + floating?: boolean; /** - * (Highcharts) Flips the positions of the nodes of a treegraph along the - * horizontal axis (vertical if chart is inverted). + * (Highcharts) A format string for the breadcrumbs button. Variables are + * enclosed by curly brackets. Available values are passed in the declared + * point options. */ - reversed?: boolean; + format?: (string|undefined); /** - * (Highcharts) Whether to select the series initially. If `showCheckbox` is - * true, the checkbox next to the series name in the legend will be checked - * for a selected series. + * (Highcharts) Callback function to format the breadcrumb text from + * scratch. */ - selected?: boolean; + formatter?: BreadcrumbsFormatterCallbackFunction; /** - * (Highcharts) If true, a checkbox is displayed next to the legend item to - * allow selecting the series. The state of the checkbox is determined by - * the `selected` option. + * (Highcharts, Highmaps) Positioning for the button row. The breadcrumbs + * buttons will be aligned properly for the default chart layout (title, + * subtitle, legend, range selector) for the custom chart layout set the + * position properties. */ - showCheckbox?: boolean; + position?: (BreadcrumbsAlignOptions|PlotTreemapBreadcrumbsPositionOptions); /** - * (Highcharts) Whether to display this series type or specific series item - * in the legend. + * (Highcharts, Highmaps) What box to align the button to. Can be either + * `plotBox` or `spacingBox`. */ - showInLegend?: boolean; + relativeTo?: ButtonRelativeToValue; /** - * (Highcharts) If set to `true`, the accessibility module will skip past - * the points in this series for keyboard navigation. + * (Highcharts) Whether to reverse the order of buttons. This is common in + * Arabic and Hebrew. */ - skipKeyboardNavigation?: boolean; + rtl?: boolean; /** - * (Highcharts, Highstock) When this is true, the series will not cause the - * Y axis to cross the zero plane (or threshold option) unless the data - * actually crosses the plane. - * - * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will - * make the Y axis show negative values according to the `minPadding` - * option. If `softThreshold` is `true`, the Y axis starts at 0. + * (Highcharts) Options object for Breadcrumbs separator. */ - softThreshold?: boolean; + separator?: PlotTreemapBreadcrumbsSeparatorOptions; /** - * (Highcharts) Sonification/audio chart options for a series. + * (Highcharts) Show full path or only a single button. */ - sonification?: SeriesSonificationOptions; + showFullPath?: boolean; /** - * (Highcharts, Highstock) Whether to stack the values of each series on top - * of each other. Possible values are `undefined` to disable, `"normal"` to - * stack by value or `"percent"`. - * - * When stacking is enabled, data must be sorted in ascending X order. + * (Highcharts) CSS styles for all breadcrumbs. * - * Some stacking options are related to specific series types. In the - * streamgraph series type, the stacking option is set to `"stream"`. The - * second one is `"overlap"`, which only applies to waterfall series. - */ - stacking?: OptionsStackingValue; - /** - * (Highcharts) A wrapper object for all the series options in specific - * states. + * In styled mode, the breadcrumbs buttons are styled by the + * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its + * different states. */ - states?: SeriesStatesOptionsObject; + style?: SVGAttributes; /** - * (Highcharts, Highstock) Whether to apply steps to the line. Possible - * values are `left`, `center` and `right`. + * (Highcharts) Whether to use HTML to render the breadcrumbs items texts. */ - step?: OptionsStepValue; + useHTML?: boolean; /** - * (Highcharts, Highstock, Highmaps) Sticky tracking of mouse events. When - * true, the `mouseOut` event on a series isn't triggered until the mouse - * moves over another series, or out of the plot area. When false, the - * `mouseOut` event on a series is triggered when the mouse leaves the area - * around the series' graph or markers. This also implies the tooltip. When - * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will - * be hidden when moving the mouse between series. + * (Highcharts) The z index of the breadcrumbs group. */ - stickyTracking?: boolean; + zIndex?: number; +} +/** + * (Highcharts) Options object for Breadcrumbs separator. + */ +export interface PlotTreemapBreadcrumbsSeparatorOptions { /** - * (Highcharts, Highstock, Highmaps) A configuration object for the tooltip - * rendering of each single series. Properties are inherited from tooltip. - * Overridable properties are `headerFormat`, `pointFormat`, `yDecimals`, - * `xDateFormat`, `yPrefix` and `ySuffix`. Unlike other series, in a scatter - * plot the series.name by default shows in the headerFormat and point.x and - * point.y in the pointFormat. + * (Highcharts) CSS styles for the breadcrumbs separator. + * + * In styled mode, the breadcrumbs separators are styled by the + * `.highcharts-separator` rule with its different states. */ - tooltip?: SeriesTooltipOptionsObject; + style?: (CSSObject|PlotTreemapBreadcrumbsSeparatorStyleOptions); + text?: string; +} +export interface PlotTreemapClusterLayoutAlgorithmOptions { + distance?: number; + gridSize?: number; + kmeansThreshold?: number; +} +/** + * (Highcharts) An option to optimize treemap series rendering by grouping + * smaller leaf nodes below a certain square area threshold in pixels. If the + * square area of a point becomes smaller than the specified threshold, + * determined by the `pixelWidth` and/or `pixelHeight` options, then this point + * is moved into one group point per series. + */ +export interface PlotTreemapClusterOptions { /** - * (Highcharts) This option enables automatic traversing to the last child - * level upon node interaction. This feature simplifies navigation by - * immediately focusing on the deepest layer of the data structure without - * intermediate steps. + * (Highcharts) An additional, individual class name for the grouped point's + * graphic representation. */ - traverseToLeaf?: boolean; + className?: string; /** - * (Highcharts, Highstock, Gantt) When a series contains a `data` array that - * is longer than this, the Series class looks for data configurations of - * plain numbers or arrays of numbers. The first and last valid points are - * checked. If found, the rest of the data is assumed to be the same. This - * saves expensive data checking and indexing in long series, and makes - * data-heavy charts render faster. - * - * Set it to `0` disable. - * - * Note: - * - * - In boost mode turbo threshold is forced. Only array of numbers or two - * dimensional arrays are allowed. - * - * - In version 11.4.3 and earlier, if object configurations were passed - * beyond the turbo threshold, a warning was logged in the console and the - * data series didn't render. + * (Highcharts) Individual color for the grouped point. By default the color + * is pulled from the parent color. */ - turboThreshold?: number; + color?: (ColorString|GradientColorObject|PatternObject); /** - * (Highcharts) Set the initial visibility of the series. + * (Highcharts) Enable or disable Treemap grouping. */ - visible?: boolean; -} -/** - * (Highcharts) A collection of attributes for the buttons. The object takes SVG - * attributes like `fill`, `stroke`, `stroke-width`, as well as `style`, a - * collection of CSS properties for the text. - * - * The object can also be extended with states, so you can set presentational - * options for `hover`, `select` or `disabled` button states. - */ -export interface PlotTreemapBreadcrumbsButtonThemeOptions { - style?: PlotTreemapBreadcrumbsButtonThemeStyleOptions; -} -export interface PlotTreemapBreadcrumbsEventsOptions { + enabled?: boolean; + layoutAlgorithm?: PlotTreemapClusterLayoutAlgorithmOptions; + marker?: PlotTreemapClusterMarkerOptions; /** - * (Highcharts) Fires when clicking on the breadcrumbs button. Two arguments - * are passed to the function. First breadcrumb button as an SVG element. - * Second is the breadcrumbs class, containing reference to the chart, - * series etc. (see online documentation for example) - * - * Return false to stop default buttons click action. + * (Highcharts) Defines the minimum number of child nodes required to create + * a group of small nodes. */ - click?: BreadcrumbsClickCallbackFunction; -} -/** - * (Highcharts, Highmaps) Positioning for the button row. The breadcrumbs - * buttons will be aligned properly for the default chart layout (title, - * subtitle, legend, range selector) for the custom chart layout set the - * position properties. - */ -export interface PlotTreemapBreadcrumbsPositionOptions { + minimumClusterSize?: number; /** - * (Highcharts, Highmaps) Horizontal alignment of the breadcrumbs buttons. + * (Highcharts) The name of the point of grouped nodes shown in the tooltip, + * dataLabels, etc. By default it is set to '+ n', where n is number of + * grouped points. */ - align?: AlignValue; + name?: string; /** - * (Highcharts, Highmaps) Vertical alignment of the breadcrumbs buttons. + * (Highcharts) The pixel threshold height of area, which is used in Treemap + * grouping. */ - verticalAlign?: VerticalAlignValue; + pixelHeight?: number; /** - * (Highcharts, Highmaps) The X offset of the breadcrumbs button group. + * (Highcharts) The pixel threshold width of area, which is used in Treemap + * grouping. */ - x?: number; + pixelWidth?: number; /** - * (Highcharts, Highmaps) The Y offset of the breadcrumbs button group. When - * `undefined`, and `floating` is `false`, the `y` position is adapted so - * that the breadcrumbs are rendered outside the target area. + * (Highcharts) A configuration property that specifies the factor by which + * the value and size of a grouped node are reduced. This can be + * particularly useful when a grouped node occupies a disproportionately + * large portion of the graph, ensuring better visual balance and + * readability. */ - y?: (number|undefined); -} -/** - * (Highcharts) CSS styles for the breadcrumbs separator. - * - * In styled mode, the breadcrumbs separators are styled by the - * `.highcharts-separator` rule with its different states. - */ -export interface PlotTreemapBreadcrumbsSeparatorStyleOptions { - color?: string; - fontSize?: number; + reductionFactor?: number; } /** * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels, @@ -69337,7 +69058,7 @@ export interface PlotTreemapDataLabelsOptions { * `ellipsis`, which will keep the text on one line plus it will break * inside long words. */ - style?: CSSObject; + style?: (CSSObject|PlotTreemapDataLabelsStyleOptions); /** * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which * should follow marker's shape. Border and background are disabled for a @@ -69377,256 +69098,54 @@ export interface PlotTreemapDataLabelsOptions { zIndex?: number; } /** - * (Highcharts) A configuration object to define how the color of a child varies - * from the parent's color. The variation is distributed among the children of - * node. For example when setting brightness, the brightness change will range - * from the parent's original brightness on the first child, to the amount set - * in the `to` setting on the last node. This allows a gradient-like color - * scheme that sets children out from each other while highlighting the grouping - * on treemaps and sectors on sunburst charts. + * (Highcharts, Highstock, Gantt) Styles for the series label. The color + * defaults to the series color, or a contrast color if `onArea`. */ -export interface PlotTreemapLevelsColorVariationOptions { - /** - * (Highcharts) The key of a color variation. Currently supports - * `brightness` only. - */ - key?: "brightness"; - /** - * (Highcharts) The ending value of a color variation. The last sibling will - * receive this value. - */ - to?: number; +export interface PlotTreemapLabelStyleOptions { + fontSize?: (number|string); } /** - * (Highcharts) Can set the options of dataLabels on each point which lies on - * the level. plotOptions.treemap.dataLabels for possible values. + * (Highcharts) Enable or disable the initial animation when a series is + * displayed for the `dataLabels`. The animation can also be set as a + * configuration object. Please note that this option only applies to the + * initial animation. + * + * For other animations, see chart.animation and the animation parameter under + * the API methods. The following properties are supported: + * + * - `defer`: The animation delay time in milliseconds. */ -export interface PlotTreemapLevelsDataLabelsOptions { - /** - * (Highcharts) The alignment of the data label compared to the point. If - * `right`, the right side of the label should be touching the point. For - * points with an extent, like columns, the alignments also dictates how to - * align it inside the box, as given with the inside option. Can be one of - * `left`, `center` or `right`. - */ - align?: (AlignValue|null); - /** - * (Highcharts) Alignment method for data labels. If set to `plotEdges`, the - * labels are aligned within the plot area in the direction of the y-axis. - * So in a regular column chart, the labels are aligned vertically according - * to the `verticalAlign` setting. In a bar chart, which is inverted, the - * labels are aligned horizontally according to the `align` setting. Applies - * to cartesian series only. - */ - alignTo?: string; - /** - * (Highcharts) Whether to allow data labels to overlap. To make the labels - * less sensitive for overlapping, the dataLabels.padding can be set to 0. - */ - allowOverlap?: boolean; +export interface PlotTreemapLevelsDataLabelsAnimationOptions { /** - * (Highcharts) Enable or disable the initial animation when a series is - * displayed for the `dataLabels`. The animation can also be set as a - * configuration object. Please note that this option only applies to the - * initial animation. - * - * For other animations, see chart.animation and the animation parameter - * under the API methods. The following properties are supported: - * - * - `defer`: The animation delay time in milliseconds. - */ - animation?: (boolean|PlotTreemapLevelsDataLabelsAnimationOptions|Partial); - /** - * (Highcharts) The background color or gradient for the data label. Setting - * it to `auto` will use the point's color. - */ - backgroundColor?: (ColorString|GradientColorObject|PatternObject); - /** - * (Highcharts) The border color for the data label. Setting it to `auto` - * will use the point's color. Defaults to `undefined`. - */ - borderColor?: (ColorString|GradientColorObject|PatternObject); - /** - * (Highcharts) The border radius in pixels for the data label. - */ - borderRadius?: number; - /** - * (Highcharts) The border width in pixels for the data label. - */ - borderWidth?: number; - /** - * (Highcharts) A class name for the data label. Particularly in styled - * mode, this can be used to give each series' or point's data label unique - * styling. In addition to this option, a default color class name is added - * so that we can give the labels a contrast text shadow. - */ - className?: string; - /** - * (Highcharts) This options is deprecated. Use style.color instead. - * - * The text color for the data labels. Defaults to `undefined`. For certain - * series types, like column or map, the data labels can be drawn inside the - * points. In this case the data label will be drawn with maximum contrast - * by default. Additionally, it will be given a `text-outline` style with - * the opposite color, to further increase the contrast. This can be - * overridden by setting the `text-outline` style to `none` in the - * `dataLabels.style` option. - * - * @deprecated 10.3.0 - */ - color?: ColorType; - /** - * (Highcharts) Whether to hide data labels that are outside the plot area. - * By default, the data label is moved inside the plot area according to the - * overflow option. - */ - crop?: boolean; - /** - * (Highcharts, Highstock, Gantt) Whether to defer displaying the data - * labels until the initial series animation has finished. Setting to - * `false` renders the data label immediately. If set to `true` inherits the - * defer time set in plotOptions.series.animation. - */ - defer?: boolean; - /** - * (Highcharts) Enable or disable the data labels. - */ - enabled?: boolean; - /** - * (Highcharts) A declarative filter to control of which data labels to - * display. The declarative filter is designed for use when callback - * functions are not available, like when the chart options require a pure - * JSON structure or for use with graphical editors. For programmatic - * control, use the `formatter` instead, and return `undefined` to disable a - * single data label. - */ - filter?: DataLabelsFilterOptionsObject; - /** - * (Highcharts) A format string for the data label. Available variables are - * the same as for `formatter`. - */ - format?: string; - /** - * (Highcharts) Callback JavaScript function to format the data label. Note - * that if a `format` is defined, the format takes precedence and the - * formatter is ignored. - */ - formatter?: DataLabelsFormatterCallbackFunction; - /** - * (Highcharts) For points with an extent, like columns or map areas, - * whether to align the data label inside the box or to the actual value - * point. Defaults to `false` in most cases, `true` in stacked columns. - */ - inside?: boolean; - /** - * (Highcharts) Format for points with the value of null. Works analogously - * to format. `nullFormat` can be applied only to series which support - * displaying null points i.e `heatmap` or `tilemap`. Does not work with - * series that don't display null points, like `line`, `column`, `bar` or - * `pie`. - */ - nullFormat?: (boolean|string); - /** - * (Highcharts) Callback JavaScript function that defines formatting for - * points with the value of null. Works analogously to formatter. - * `nullFormatter` can be applied only to series which support displaying - * null points i.e `heatmap` or `tilemap`. Does not work with series that - * don't display null points, like `line`, `column`, `bar` or `pie`. - */ - nullFormatter?: DataLabelsFormatterCallbackFunction; - /** - * (Highcharts) How to handle data labels that flow outside the plot area. - * The default is `"justify"`, which aligns them inside the plot area. For - * columns and bars, this means it will be moved inside the bar. To display - * data labels outside the plot area, set `crop` to `false` and `overflow` - * to `"allow"`. - */ - overflow?: DataLabelsOverflowValue; - /** - * (Highcharts) When either the `borderWidth` or the `backgroundColor` is - * set, this is the padding within the box. - */ - padding?: number; - /** - * (Highcharts) Aligns data labels relative to points. If `center` alignment - * is not possible, it defaults to `right`. - */ - position?: AlignValue; - /** - * (Highcharts) Text rotation in degrees. Note that due to a more complex - * structure, backgrounds, borders and padding will be lost on a rotated - * data label. - */ - rotation?: number; - /** - * (Highcharts) The shadow of the box. Works best with `borderWidth` or - * `backgroundColor`. Since 2.3 the shadow can be an object configuration - * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`. - */ - shadow?: (boolean|ShadowOptionsObject); - /** - * (Highcharts) The name of a symbol to use for the border around the label. - * Symbols are predefined functions on the Renderer object. - */ - shape?: string; - /** - * (Highcharts) Styles for the label. The default `color` setting is - * `"contrast"`, which is a pseudo color that Highcharts picks up and - * applies the maximum contrast to the underlying point item, for example - * the bar in a bar chart. - * - * The `textOutline` is a pseudo property that applies an outline of the - * given width with the given color, which by default is the maximum - * contrast to the text. So a bright text color will result in a black text - * outline for maximum readability on a mixed background. In some cases, - * especially with grayscale text, the text outline doesn't work well, in - * which cases it can be disabled by setting it to `"none"`. When `useHTML` - * is true, the `textOutline` will not be picked up. In this, case, the same - * effect can be acheived through the `text-shadow` CSS property. - * - * For some series types, where each point has an extent, like for example - * tree maps, the data label may overflow the point. There are two - * strategies for handling overflow. By default, the text will wrap to - * multiple lines. The other strategy is to set `style.textOverflow` to - * `ellipsis`, which will keep the text on one line plus it will break - * inside long words. - */ - style?: CSSObject; - /** - * (Highcharts) Options for a label text which should follow marker's shape. - * Border and background are disabled for a label that follows a path. - * - * **Note:** Only SVG-based renderer supports this option. Setting `useHTML` - * to true will disable this option. - */ - textPath?: DataLabelsTextPathOptionsObject; - /** - * (Highcharts) Whether to use HTML to render the labels. - */ - useHTML?: boolean; - /** - * (Highcharts) The vertical alignment of a data label. Can be one of `top`, - * `middle` or `bottom`. The default value depends on the data, for instance - * in a column chart, the label is above positive values and below negative - * values. - */ - verticalAlign?: string; - /** - * (Highcharts) The x position offset of the label relative to the point in - * pixels. - */ - x?: number; - /** - * (Highcharts) The y position offset of the label relative to the point in - * pixels. - */ - y?: number; - /** - * (Highcharts) The z index of the data labels. Use a `zIndex` of 6 to - * display it above the series, or use a `zIndex` of 2 to display it behind - * the series. + * (Highcharts) The animation delay time in milliseconds. Set to `0` to + * render the data labels immediately. As `undefined` inherits defer time + * from the series.animation.defer. */ - zIndex?: number; + defer?: number; +} +/** + * (Highcharts) Styles for the label. The default `color` setting is + * `"contrast"`, which is a pseudo color that Highcharts picks up and applies + * the maximum contrast to the underlying point item, for example the bar in a + * bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the given + * width with the given color, which by default is the maximum contrast to the + * text. So a bright text color will result in a black text outline for maximum + * readability on a mixed background. In some cases, especially with grayscale + * text, the text outline doesn't work well, in which cases it can be disabled + * by setting it to `"none"`. When `useHTML` is true, the `textOutline` will not + * be picked up. In this, case, the same effect can be acheived through the + * `text-shadow` CSS property. + * + * For some series types, where each point has an extent, like for example tree + * maps, the data label may overflow the point. There are two strategies for + * handling overflow. By default, the text will wrap to multiple lines. The + * other strategy is to set `style.textOverflow` to `ellipsis`, which will keep + * the text on one line plus it will break inside long words. + */ +export interface PlotTreemapLevelsDataLabelsStyleOptions { + textOverflow?: string; } /** * (Highcharts) Options for the connector in the _Series on point_ feature. @@ -86167,11 +85686,11 @@ export interface SeriesTooltipOptionsObject { */ changeDecimals?: number; /** - * (Highstock) The HTML of the cluster point's in the tooltip. Works only - * with marker-clusters module and analogously to pointFormat. + * (Highstock) The HTML of the grouped point's nodes in the tooltip. Works + * only for Treemap series grouping and analogously to pointFormat. * - * The cluster tooltip can be also formatted using `tooltip.formatter` - * callback function and `point.isCluster` flag. + * The grouped nodes point tooltip can be also formatted using + * `tooltip.formatter` callback function and `point.isGroupNode` flag. */ clusterFormat?: string; /** @@ -90007,12 +89526,12 @@ export interface TooltipOptions { */ className?: string; /** - * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the cluster point's - * in the tooltip. Works only with marker-clusters module and analogously to - * pointFormat. + * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the grouped point's + * nodes in the tooltip. Works only for Treemap series grouping and + * analogously to pointFormat. * - * The cluster tooltip can be also formatted using `tooltip.formatter` - * callback function and `point.isCluster` flag. + * The grouped nodes point tooltip can be also formatted using + * `tooltip.formatter` callback function and `point.isGroupNode` flag. */ clusterFormat?: string; /** diff --git a/highcharts.src.js b/highcharts.src.js index 455477eba5..e38242743b 100644 --- a/highcharts.src.js +++ b/highcharts.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi @@ -74,7 +74,7 @@ var Globals; * Constants * * */ - Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.0.2', Globals.win = (typeof window !== 'undefined' ? + Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.1.0', Globals.win = (typeof window !== 'undefined' ? window : {}), // eslint-disable-line node/no-unsupported-features/es-builtins Globals.doc = Globals.win.document, Globals.svg = (Globals.doc && @@ -1275,7 +1275,7 @@ function getNestedProperty(path, parent) { } return thisProp ?? parent; } - const child = parent[pathElement]; + const child = parent[pathElement.replace(/[\\'"]/g, '')]; // Filter on the child if (!defined(child) || typeof child === 'function' || @@ -3582,7 +3582,9 @@ class Time { * Properties * * */ - this.options = {}; + this.options = { + timezone: 'UTC' + }; this.variableTimezone = false; this.Date = Time_win.Date; this.update(options); @@ -3604,12 +3606,13 @@ class Time { * */ update(options = {}) { - let timezone = options.timezone ?? 'UTC'; this.dTLCache = {}; this.options = options = Time_merge(true, this.options, options); const { timezoneOffset, useUTC } = options; // Allow using a different Date class this.Date = options.Date || Time_win.Date || Date; + // Assign the time zone. Handle the legacy, deprecated `useUTC` option. + let timezone = options.timezone; if (Time_defined(useUTC)) { timezone = useUTC ? 'UTC' : void 0; } @@ -4052,7 +4055,7 @@ class Time { } else if (Time_isObject(format)) { const tzHours = (this.getTimezoneOffset(timestamp) || 0) / - (60000 * 60), timeZone = this.options.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; + (60000 * 60), timeZone = this.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; format = prefix + this.dateTimeFormat(Time_extend({ timeZone }, format), timestamp) + suffix; } // Optionally sentence-case the string and return @@ -7460,18 +7463,11 @@ class Color { } // Check for has alpha, because rgba colors perform worse due to // lack of support in WebKit. - const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1); - return (hasAlpha ? 'rgba(' : 'rgb(') + - Math.round(toRgba[0] + (fromRgba[0] - toRgba[0]) * (1 - pos)) + - ',' + - Math.round(toRgba[1] + (fromRgba[1] - toRgba[1]) * (1 - pos)) + - ',' + - Math.round(toRgba[2] + (fromRgba[2] - toRgba[2]) * (1 - pos)) + - (hasAlpha ? - (',' + - (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))) : - '') + - ')'; + const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1), channel = (to, i) => to + (fromRgba[i] - to) * (1 - pos), rgba = toRgba.slice(0, 3).map(channel).map(Math.round); + if (hasAlpha) { + rgba.push(channel(toRgba[3], 3)); + } + return (hasAlpha ? 'rgba(' : 'rgb(') + rgba.join(',') + ')'; } } /* * @@ -8840,7 +8836,7 @@ const { defaultOptions: Templating_defaultOptions, defaultTime: Templating_defau const { doc: Templating_doc } = Core_Globals; -const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; +const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, isString: Templating_isString, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; const helpers = { // Built-in helpers add: (a, b) => a + b, @@ -8875,6 +8871,8 @@ const numberFormatCache = {}; * Functions * * */ +// Internal convenience function +const isQuotedString = (str) => /^["'].+["']$/.test(str); /** * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a * human readable date string. The format is a subset of the formats for PHP's @@ -8952,11 +8950,11 @@ function dateFormat(format, timestamp, upperCaseFirst) { * The formatted string. */ function format(str = '', ctx, chart) { - const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu, + const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu, // The sub expression regex is the same as the top expression regex, // but except parens and block helpers (#), and surrounded by parens // instead of curly brackets. - subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; + subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; /* * Get a literal or variable value inside a template expression. May be * extended with other types like string or null if needed, but keep it @@ -8974,7 +8972,7 @@ function format(str = '', ctx, chart) { if ((n = Number(key)).toString() === key) { return n; } - if (/^["'].+["']$/.test(key)) { + if (isQuotedString(key)) { return key.slice(1, -1); } // Variables and constants @@ -9087,7 +9085,8 @@ function format(str = '', ctx, chart) { // Simple variable replacement } else { - const valueAndFormat = expression.split(':'); + const valueAndFormat = isQuotedString(expression) ? + [expression] : expression.split(':'); replacement = resolveProperty(valueAndFormat.shift() || ''); // Format the replacement if (valueAndFormat.length && typeof replacement === 'number') { @@ -9100,13 +9099,14 @@ function format(str = '', ctx, chart) { } else { replacement = time.dateFormat(segment, replacement); - // Use string literal in order to be preserved in the outer - // expression - if (hasSub) { - replacement = `"${replacement}"`; - } } } + // Use string literal in order to be preserved in the outer + // expression + subRegex.lastIndex = 0; + if (subRegex.test(match.find) && Templating_isString(replacement)) { + replacement = `"${replacement}"`; + } } str = str.replace(match.find, Templating_pick(replacement, '')); }); @@ -9691,7 +9691,9 @@ class SVGElement { * @return {Highcharts.SVGElement} Returns the SVGElement for chaining. */ align(alignOptions, alignByTranslate, alignTo, redraw = true) { - const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); + const attribs = { + 'text-align': alignOptions?.align + }, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); // First call on instanciate if (alignOptions) { this.alignOptions = alignOptions; @@ -11431,6 +11433,7 @@ class SVGLabel extends SVG_SVGElement { * */ alignSetter(value) { const alignFactor = SVGLabel_getAlignFactor(value); + this.textAlign = value; if (alignFactor !== this.alignFactor) { this.alignFactor = alignFactor; // Bounding box exists, means we're dynamically changing @@ -11606,6 +11609,7 @@ class SVGLabel extends SVG_SVGElement { } 'text-alignSetter'(value) { this.textAlign = value; + this.updateTextPadding(); } textSetter(text) { if (typeof text !== 'undefined') { @@ -11675,24 +11679,19 @@ class SVGLabel extends SVG_SVGElement { * is changed. */ updateTextPadding() { - const text = this.text; + const text = this.text, textAlign = text.styles.textAlign || this.textAlign; if (!text.textPath) { this.updateBoxSize(); // Determine y based on the baseline const textY = this.baseline ? 0 : this.baselineOffset, textX = (this.paddingLeft ?? this.padding) + // Compensate for alignment - ((SVGLabel_defined(this.widthSetting) && this.bBox) ? - SVGLabel_getAlignFactor(this.textAlign) * - (this.widthSetting - this.bBox.width) : - 0); + SVGLabel_getAlignFactor(textAlign) * (this.widthSetting ?? this.bBox.width); // Update if anything changed if (textX !== text.x || textY !== text.y) { - text.attr('x', textX); - // #8159 - prevent misplaced data labels in treemap - // (useHTML: true) - if (text.hasBoxWidthChanged) { - this.bBox = text.getBBox(true); - } + text.attr({ + align: textAlign, + x: textX + }); if (typeof textY !== 'undefined') { text.attr('y', textY); } @@ -12637,7 +12636,7 @@ class SVGRenderer { this.url = this.getReferenceURL(); // Add description const desc = this.createElement('desc').add(); - desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.0.2')); + desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.1.0')); this.defs = this.createElement('defs').add(); this.allowHTML = allowHTML; this.forExport = forExport; @@ -14604,7 +14603,7 @@ class HTMLElement extends SVG_SVGElement { textWidth, this.textAlign ].join(','), parentPadding = (this.parentGroup?.padding * -1) || 0; - let baseline, hasBoxWidthChanged = false; + let baseline; // Update textWidth. Use the memoized textPxLength if possible, to // avoid the getTextPxLength function using elem.offsetWidth. // Calling offsetWidth affects rendering time as it forces layout @@ -14627,10 +14626,8 @@ class HTMLElement extends SVG_SVGElement { whiteSpace: whiteSpace || 'normal' // #3331 }); this.oldTextWidth = textWidth; - hasBoxWidthChanged = true; // #8159 } } - this.hasBoxWidthChanged = hasBoxWidthChanged; // #8159 // Do the calculations and DOM access only if properties changed if (currentTextTransform !== this.cTT) { baseline = renderer.fontMetrics(element).b; @@ -33086,9 +33083,14 @@ class Series { * @private * @function Highcharts.Series#searchKDTree */ - searchKDTree(point, compareX, e) { + searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator) { const series = this, [kdX, kdY] = this.kdAxisArray, kdComparer = compareX ? 'distX' : 'dist', kdDimensions = (series.options.findNearestPointBy || '') - .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble; + .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble, pointEvaluator = suppliedPointEvaluator || ((p1, p2, comparisonProp) => [ + (p1[comparisonProp] || 0) < (p2[comparisonProp] || 0) ? + p1 : + p2, + false + ]), bSideCheckEvaluator = suppliedBSideCheckEvaluator || ((a, b) => a < b); /** * Set the one and two dimensional distance on the point object. * @private @@ -33103,28 +33105,21 @@ class Series { */ function doSearch(search, tree, depth, dimensions) { const point = tree.point, axis = series.kdAxisArray[depth % dimensions]; - let nPoint1, nPoint2, ret = point; + let ret = point, flip = false; setDistance(search, point); // Pick side based on distance to splitting point const tdist = (search[axis] || 0) - (point[axis] || 0) + (useRadius ? (point.marker?.radius || 0) : 0), sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left'; // End of tree if (tree[sideA]) { - nPoint1 = doSearch(search, tree[sideA], depth + 1, dimensions); - ret = (nPoint1[kdComparer] < - ret[kdComparer] ? - nPoint1 : - point); + [ret, flip] = pointEvaluator(point, doSearch(search, tree[sideA], depth + 1, dimensions), kdComparer); } if (tree[sideB]) { + const sqrtTDist = Math.sqrt(tdist * tdist), retDist = ret[kdComparer]; // Compare distance to current best to splitting point to decide - // whether to check side B or not - if (Math.sqrt(tdist * tdist) < ret[kdComparer]) { - nPoint2 = doSearch(search, tree[sideB], depth + 1, dimensions); - ret = (nPoint2[kdComparer] < - ret[kdComparer] ? - nPoint2 : - ret); + // whether to check side B or no + if (bSideCheckEvaluator(sqrtTDist, retDist, flip)) { + ret = pointEvaluator(ret, doSearch(search, tree[sideB], depth + 1, dimensions), kdComparer)[0]; } } return ret; @@ -42632,7 +42627,9 @@ var DataLabel; (unrotatedbBox.width - bBox.width); dataLabel.alignAttr.y += DataLabel_getAlignFactor(options.verticalAlign) * (unrotatedbBox.height - bBox.height); - dataLabel[dataLabel.placed ? 'animate' : 'attr']({ + dataLabel.attr({ + 'text-align': dataLabel.alignAttr['text-align'] || 'center' + })[dataLabel.placed ? 'animate' : 'attr']({ x: dataLabel.alignAttr.x + (bBox.width - unrotatedbBox.width) / 2, y: dataLabel.alignAttr.y + diff --git a/highmaps.js b/highmaps.js index 7f30c03f5f..83c458105e 100644 --- a/highmaps.js +++ b/highmaps.js @@ -1,16 +1,16 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i;var s,o,r,a,n,l,h,d,c,p,u,g,m,f,x,y,b,v,M,w,k,S,T={};T.d=(t,e)=>{for(var i in e)T.o(e,i)&&!T.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},T.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var C={};T.d(C,{default:()=>p6}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.0.2",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(s||(s={}));let A=s,{charts:P,doc:L,win:O}=A;function E(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=W(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),$(s,function(e,i){t+=` - - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}q(A,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);O.console&&-1===E.messages.indexOf(a)&&console.warn(a)}),E.messages.push(a)}function I(t,e){return parseInt(t,e||10)}function D(t){return"string"==typeof t}function B(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function z(t,e){return!!t&&"object"==typeof t&&(!e||!B(t))}function N(t){return z(t)&&"number"==typeof t.nodeType}function R(t){let e=t&&t.constructor;return!!(z(t,!0)&&!N(t)&&e&&e.name&&"Object"!==e.name)}function W(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function j(t){return null!=t}function X(t,e,i){let s;let o=D(e)&&!j(i),r=(e,i)=>{j(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return D(e)?r(i,e):$(e,r),s}function G(t){return B(t)?t:[t]}function F(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function H(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(E||(E={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let Z=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let K=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();O.jQuery&&(O.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new A[D(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):P[X(this[0],"data-highcharts-chart")]});let J={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;A.Point&&t instanceof A.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!A.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){_(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[l]){i=G(i),r[l]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=O.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),H(s,"opacity"!==i)&&(o=I(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return U(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:$,offset:function(t){let e=L.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(O.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(O.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:H,pInt:I,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:_,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:G,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return D(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:K,useSerialIds:function(e){return t=H(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:Q}=A,{defined:tt,error:te,extend:ti,isNumber:ts,isObject:to,isString:tr,merge:ta,objectEach:tn,pad:tl,splat:th,timeUnits:td,ucfirst:tc}=J,tp=A.isSafari&&Q.Intl&&!Q.Intl.DateTimeFormat.prototype.formatRange,tu=t=>void 0===t.main,tg=t=>["D","L","M","X","J","V","S"].indexOf(t),tm=class{constructor(t){this.options={},this.variableTimezone=!1,this.Date=Q.Date,this.update(t)}update(t={}){let e=t.timezone??"UTC";this.dTLCache={},this.options=t=ta(!0,this.options,t);let{timezoneOffset:i,useUTC:s}=t;this.Date=t.Date||Q.Date||Date,tt(s)&&(e=s?"UTC":void 0),i&&i%60==0&&(e="Etc/GMT"+(i>0?"+":"")+i/60),this.variableTimezone="UTC"!==e&&e?.indexOf("Etc/GMT")!==0,this.timezone=e,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,tg(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;tr(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(te(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):te(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&ti(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||tp||(n-=36e5)}}return n}parse(t){if(!tr(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(ts(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(ts(a))return a}return 0}dateFormat(t,e,i){let s=A.defaultOptions?.lang;if(!tt(e)||isNaN(e))return s?.invalidDate||"";if(tr(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(tr(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,l,h,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,m=s?.shortMonths||this.shortMonths;tn(ti({a:u?u[c]:p[c].substr(0,3),A:p[c],d:tl(a),e:tl(a,2," "),w:c,b:m[r],B:g[r],m:tl(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:tl(n),k:n,I:tl(n%12||12),l:n%12||12,M:tl(l),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:tl(h),L:tl(d,3)},A.dateFormats),function(s,o){if(tr(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(to(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.options.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(ti({timeZone:s},t),e)+r}return i?tc(t):t}resolveDTLFormat(t){return to(t,!0)?to(t,!0)&&tu(t)?{main:t}:t:{main:(t=th(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:l}=t,[h,d,c,p,u,g]=o.toParts(e),m=(e||0)%1e3,f;if(s??(s=1),tt(e)){if(m=l>=td.second?0:n*Math.floor(m/n),l>=td.second&&(g=l>=td.minute?0:n*Math.floor(g/n)),l>=td.minute&&(u=l>=td.hour?0:n*Math.floor(u/n)),l>=td.hour&&(p=l>=td.day?0:n*Math.floor(p/n)),l>=td.day&&(c=l>=td.month?1:Math.max(1,n*Math.floor(c/n))),l>=td.month&&(d=l>=td.year?0:n*Math.floor(d/n)),l>=td.year&&(h-=h%n),l===td.week){n&&(e=o.makeTime(h,d,c,p,u,g,m));let t=tg(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*td.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(h,d,c,p+x*n):t+=l*n,x++;r.push(t),l<=td.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=ti(t,{higherRanks:a,totalRange:l*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",l=n;for(n in td){if(t===td.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(td[n]>t){n=l;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(l=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:tf}=A,{fireEvent:tx,merge:ty}=J,tb={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:tf?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tb.chart.styledMode=!0,tb.chart.styledMode=!1;let tv=new tm(tb.time),tM={defaultOptions:tb,defaultTime:tv,getOptions:function(){return tb},setOptions:function(t){return tx(A,"setOptions",{options:t}),ty(!0,tb,t),t.time&&tv.update(tb.time),t.lang&&"locale"in t.lang&&tv.update({locale:t.lang.locale}),tb}},{isNumber:tw,merge:tk,pInt:tS,defined:tT}=J;class tC{static parse(t){return t?new tC(t):tC.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=A.Color;if(r&&r!==tC)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tC(t[1]));else if("string"==typeof t)for(this.input=t=tC.names[t.toLowerCase()]||t,s=tC.parsers.length;s--&&!i;)(e=(o=tC.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tk(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tw(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tw(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tS(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tw(i[0])||!tw(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3];return(o?"rgba(":"rgb(")+Math.round(s[0]+(i[0]-s[0])*(1-e))+","+Math.round(s[1]+(i[1]-s[1])*(1-e))+","+Math.round(s[2]+(i[2]-s[2])*(1-e))+(o?","+(s[3]+(i[3]-s[3])*(1-e)):"")+")"}}tC.names={white:"#ffffff",black:"#000000"},tC.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tS(t[1]),tS(t[2]),tS(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tS(t[1]),tS(t[2]),tS(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tS(t[1]+t[1],16),tS(t[2]+t[2],16),tS(t[3]+t[3],16),tT(t[4])?tS(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tS(t[1],16),tS(t[2],16),tS(t[3],16),tT(t[4])?tS(t[4],16)/255:1]}}],tC.None=new tC("");let{parse:tA}=tC,{win:tP}=A,{isNumber:tL,objectEach:tO}=J;class tE{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),l[this.prop]=!0,i=!0,tO(l,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,l=e&&i.length>e.length&&i.hasStackedCliffs,h,d,c,p,u=e&&e.slice();if(!u||l)return[r,r];function g(t,e){for(;t.length{let i=tX(t.options.animation);r=tN(e)&&tI(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tj(t,e.options.chart.animation,!0)},stop:tG},{SVG_NS:tH,win:tY}=A,{attr:tV,createElement:tU,css:tZ,error:t$,isFunction:t_,isString:tq,objectEach:tK,splat:tJ}=J,{trustedTypes:tQ}=tY,t0=tQ&&t_(tQ.createPolicy)&&tQ.createPolicy("highcharts",{createHTML:t=>t}),t1=t0?t0.createHTML(""):"";class t2{static filterUserAttributes(t){return tK(t,(e,i)=>{let s=!0;-1===t2.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tq(e)&&t2.allowedReferences.some(t=>0===e.indexOf(t))),s||(t$(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tq(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t2.emptyHTML,e&&new t2(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return tJ(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?A.doc.createTextNode(e.textContent):void 0,n=t2.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==t2.allowedTags.indexOf(r)||n){let s="svg"===r?tH:i.namespaceURI||tH,l=A.doc.createElementNS(s,r),h=e.attributes||{};tK(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(h[e]=t)}),tV(l,n?h:t2.filterUserAttributes(h)),e.style&&tZ(l,e.style),a&&l.appendChild(a),t(e.children||[],l),o=l}else t$(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t0?t0.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tU("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t2.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t2.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t2.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t2.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t2.emptyHTML=t1,t2.bypassHTMLFiltering=!1;let{defaultOptions:t3,defaultTime:t6}=tM,{doc:t5}=A,{extend:t9,getNestedProperty:t8,isArray:t4,isNumber:t7,isObject:et,pick:ee,ucfirst:ei}=J,es={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!t4(t)&&t.map((i,s)=>er(e.body,t9(et(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:ei,unless:t=>!t},eo={};function er(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,l=i?.options.lang||t3.lang,h=i&&i.time||t6,d=i&&i.numberFormatter||ea,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:/^["'].+["']$/.test(t)?t.slice(1,-1):t8(t,e))},p,u,g=0,m;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,m=!0),u&&u.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");es[a]&&(u.isBlock&&a===u.fn&&g++,u.fn||(u.fn=a));let n="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||n)){if(g)!n&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],n||(r.push(u),u=void 0)}}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let o,r;let{body:p,elseBody:u,expression:g,fn:f}=s;if(f){let t=[s],a=[],n=g.length,l=0,h;for(r=0;r<=n;r++){let t=g.charAt(r);h||'"'!==t&&"'"!==t?h===t&&(h=""):h=t,h||" "!==t&&r!==n||(a.push(g.substr(l,r-l)),l=r+1)}for(r=es[f].length;r--;)t.unshift(c(a[r+1]));o=es[f].apply(e,t),s.isBlock&&"boolean"==typeof o&&(o=er(o?p:u,e,i))}else{let t=g.split(":");if(o=c(t.shift()||""),t.length&&"number"==typeof o){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==o&&(o=d(o,t,l.decimalPoint,e.indexOf(",")>-1?l.thousandsSep:""))}else o=h.dateFormat(e,o),m&&(o=`"${o}"`)}}t=t.replace(s.find,ee(o,""))}),m?er(t,e,i):t}function ea(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),l=this?.options?.lang||t3.lang,h=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=l.decimalPoint),s??(s=l.thousandsSep),-1===e?e=Math.min(h,20):t7(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),t7(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||l.locale||t5.body.closest("[lang]")?.lang,g=JSON.stringify(c)+u;return o=(eo[g]??(eo[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let en={dateFormat:function(t,e,i){return t6.dateFormat(t,e,i)},format:er,helpers:es,numberFormat:ea};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,A.Renderer=s)}}(o||(o={}));let el=o,{clamp:eh,pick:ed,pushUnique:ec,stableSort:ep}=J;(r||(r={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],l=e.length,h=[],d=n.push,c,p,u,g=!0,m,f,x=0,y;for(c=l;c--;)x+=e[c].size;if(x>r){for(ep(e,(t,e)=>(e.rank||0)-(t.rank||0)),u=(y=e[0].rank===e[e.length-1].rank)?l/2:-1,p=y?u:l-1;u&&x>r;)m=e[c=Math.floor(p)],ec(h,c)&&(x-=m.size),p+=u,y&&p>=e.length&&(u/=2,p=u);h.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(ep(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:ed(t.align,.5)}));g;){for(c=e.length;c--;)m=e[c],f=(Math.min.apply(0,m.targets)+Math.max.apply(0,m.targets))/2,m.pos=eh(f-m.size*m.align,0,i-m.size);for(c=e.length,g=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),g=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),ep(o,a),o};let eu=r,{animate:eg,animObject:em,stop:ef}=tF,{deg2rad:ex,doc:ey,svg:eb,SVG_NS:ev,win:eM,isFirefox:ew}=A,{addEvent:ek,attr:eS,createElement:eT,crisp:eC,css:eA,defined:eP,erase:eL,extend:eO,fireEvent:eE,getAlignFactor:eI,isArray:eD,isFunction:eB,isNumber:ez,isObject:eN,isString:eR,merge:eW,objectEach:ej,pick:eX,pInt:eG,pushUnique:eF,replaceNested:eH,syncTimeout:eY,uniqueKey:eV}=J;class eU{_defaultGetter(t){let e=eX(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let l=!i||eR(i)?i||"renderer":void 0;l&&(n&&eF(a,this),i=void 0);let h=eX(i,r[l],r),d=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*eI(t.align),c=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*eI(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=em(eX(e,this.renderer.globalAnimation,!0)),o=s.defer;return ey.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eY(()=>{this.element&&eg(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),ej(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&A.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=ey.createElementNS(ev,"tspan");eS(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=ey.createElementNS(ev,"tspan");a.textContent="​",eS(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eU.symbolCustomAttribs,a,n,l=this,h;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?l=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(ej(t,function(e,i){h=!1,s||ef(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),h=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),h||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),l}clip(t){if(t&&!t.clipPath){let e=eV()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eO(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eC(i,e),n=eC(s,e);return eO(t,{x:a,y:n,width:eC(o,e)-a,height:eC(r,e)-n}),eP(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,l,h,d,c,p,u,g=[],m;eE(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],l=s.gradients,h=t.stops,p=i.radialReference,eD(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eP(a.gradientUnits)&&(n=a,a=eW(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),ej(a,function(t,e){"id"!==e&&g.push(e,t)}),ej(h,function(t){g.push(t)}),l[g=g.join(",")])u=l[g].attr("id");else{a.id=u=eV();let t=l[g]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],h.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tC.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}m="url("+s.url+"#"+u+")",i.setAttribute(e,m),i.gradient=g,t.toString=function(){return m}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&ej(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eO(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eG(t.width)),eO(this.styles,t),o&&!eb&&this.renderer.forExport&&delete t.width;let r=ew&&t.fontSize||null;r&&(ez(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=eW(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),eA(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eG(s[e])*eX(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ef(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:l,styles:h,textStr:d}=this,{cache:c,cacheKeys:p}=l,u=n.namespaceURI===this.SVG_NS,g=eX(e,this.rotation,0),m=l.styledMode?n&&eU.prototype.getStyle.call(n,"font-size"):h.fontSize;if(eP(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",l.rootFontSize,m,g,this.textWidth,a,h.lineClamp,h.textOverflow,h.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||l.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&eA(e,{display:t})},eB(o)&&o("none"),i=n.getBBox?eO({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eB(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({"11px,17":14,"13px,20":16})[`${m||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};eE(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:l=0,rotationOriginY:h=0}=this,d=eI(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*ex,u=(e-90)*ex,g=Math.cos(p),m=Math.sin(p),f=o*g,x=o*m,y=Math.cos(u),b=Math.sin(u),[[v,M],[w,k]]=[l,h].map(t=>[t-t*g,t*m]),S=i+d*(o-f)+v+k+c*y,T=S+f,C=T-r*y,A=C-f,P=s+c-d*x-M+w+c*b,L=P+x,O=L-r*b,E=O-x,I=Math.min(S,T,C,A),D=Math.min(P,L,O,E),B=Math.max(S,T,C,A)-I,z=Math.max(P,L,O,E)-D;return{x:I,y:D,width:B,height:z,polygon:[[S,P],[T,L],[C,O],[A,E]]}}getStyle(t){return eM.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=ev,this.element="span"===e||"body"===e?eT(e):ey.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eE(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=ek(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eR(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eW(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eN(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eG(t):""!==t&&(eS(i=ey.createElementNS(ev,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eU.symbolCustomAttribs.forEach(function(i){e[i]=eX(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||ey.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eH(eX(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:l=0,translateY:h=0}=this,d=["translate("+l+","+h+")"];eP(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+eX(o,e.getAttribute("x"),0)+" "+eX(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eP(a)||eP(n))&&d.push("scale("+eX(a,1)+" "+eX(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,l,h,d=!1,c,p=this.added,u;if(eP(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eP(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(n=o.childNodes).length-1;u>=0&&!d;u--)c=!eP(h=(l=n[u]).getAttribute("data-z-index")),l!==r&&(t<0&&c&&!a&&!u?(o.insertBefore(r,n[u]),d=!0):(eG(h)<=t||c&&(!eP(t)||t>=0))&&(o.insertBefore(r,n[u+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}eU.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],eU.prototype.strokeSetter=eU.prototype.fillSetter,eU.prototype.yGetter=eU.prototype.xGetter,eU.prototype.matrixSetter=eU.prototype.rotationOriginXSetter=eU.prototype.rotationOriginYSetter=eU.prototype.rotationSetter=eU.prototype.scaleXSetter=eU.prototype.scaleYSetter=eU.prototype.translateXSetter=eU.prototype.translateYSetter=eU.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eZ=eU,{defined:e$,extend:e_,getAlignFactor:eq,isNumber:eK,merge:eJ,pick:eQ,removeEvent:e0}=J;class e1 extends eZ{constructor(t,e,i,s,o,r,a,n,l,h){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=l,this.className=h,this.addClass("button"===h?"highcharts-no-tooltip":"highcharts-label"),h&&this.addClass("highcharts-"+h),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e1.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=eq(t);e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&eK(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=eJ(t),e1.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eZ.prototype.css.call(this,t)}destroy(){e0(this.element,"mouseenter"),e0(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eZ.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=eQ(this.paddingLeft,i),l=e??(this.rotation||0),h={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return l&&(h=this.getRotatedBox(h,l)),h}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:eQ(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&e$(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){eK(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!eK(this.widthSetting)||!eK(this.heightSetting)||this.textAlign)&&e$(e.textStr)?e.getBBox(void 0,0):e1.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(e_(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text;if(!t.textPath){this.updateBoxSize();let e=this.baseline?0:this.baselineOffset,i=(this.paddingLeft??this.padding)+(e$(this.widthSetting)&&this.bBox?eq(this.textAlign)*(this.widthSetting-this.bBox.width):0);(i!==t.x||e!==t.y)&&(t.attr("x",i),t.hasBoxWidthChanged&&(this.bBox=t.getBBox(!0)),void 0!==e&&t.attr("y",e)),t.x=i,t.y=e}}widthSetter(t){this.widthSetting=eK(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=eQ(this.paddingLeft,t),i=eQ(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}e1.emptyBBox={width:0,height:0,x:0,y:0},e1.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e2,isNumber:e3,pick:e6}=J;function e5(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=e6(o.r,i),l=e6(o.r,s||i),h=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&l0)return h;if(t+n>i-a){if(l>e+a&&le+a&&l0){let i=ls&&na&&h.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return h},circle:function(t,e,i,s){return e5(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:e9,roundedRect:e8,square:e9,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:e7,SVG_NS:it,win:ie}=A,{attr:ii,extend:is,fireEvent:io,isString:ir,objectEach:ia,pick:il}=J,ih=(t,e)=>t.substring(0,e)+"…",id=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=il(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new t2(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(e7.createTextNode(this.unescapeEntities(s)));ir(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=ii(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),ii(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),l=this.getLineHeight(o),h=Math.max(0,s-.8*l),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,h,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,h,ih),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(e7.createTextNode(e),t);let s=e7.createElementNS(it,"tspan");s.textContent="​",ii(s,{dy:l,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,h,ih)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ie.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ie.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,l=this.renderer.styledMode;if("b"===n||"strong"===n?l?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(l?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),is(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),io(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,l;let h=this.svgElement,{rotation:d}=h,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let m=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(h.rotation=0,s+(l=m(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(n=a(i,g)),l=m(g,n&&n.length-1),p===u?p=u+1:l>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=n||a(e||i,g)),this.ellipsis&&l>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,ih)}i&&i.splice(0,g),h.actualWidth=l,h.rotation=d}unescapeEntities(t,e){return ia(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:ic}=tM,{charts:ip,deg2rad:iu,doc:ig,isFirefox:im,isMS:ix,isWebKit:iy,noop:ib,SVG_NS:iv,symbolSizes:iM,win:iw}=A,{addEvent:ik,attr:iS,createElement:iT,crisp:iC,css:iA,defined:iP,destroyObjectProperties:iL,extend:iO,isArray:iE,isNumber:iI,isObject:iD,isString:iB,merge:iz,pick:iN,pInt:iR,replaceNested:iW,uniqueKey:ij}=J;class iX{constructor(t,e,i,s,o,r,a){let n,l;let h=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=h.element;a||h.css(this.getStyle(s||{})),t.appendChild(d),iS(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iS(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=h,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ig.createTextNode("Created with Highcharts 12.0.2")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=h.getStyle("font-size"),this.setSize(e,i,!1),im&&t.getBoundingClientRect&&((n=function(){iA(t,{left:0,top:0}),l=t.getBoundingClientRect(),iA(t,{left:Math.ceil(l.left)-l.left+"px",top:Math.ceil(l.top)-l.top+"px"})})(),this.unSubPixelFix=ik(iw,"resize",n))}definition(t){return new t2([t]).addToDOM(this.defs.element)}getReferenceURL(){if((im||iy)&&ig.getElementsByTagName("base").length){if(!iP(e)){let t=ij(),i=new t2([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ig.body);iA(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ig.elementFromPoint(6,6);e="hitme"===(s&&s.id),ig.body.removeChild(i)}if(e)return iW(iw.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iO({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iL(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iz({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new id(t).buildSVG()}getContrast(t){let e=tC.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,l,h){let d=this.label(t,e,i,l,void 0,void 0,h,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=iz(ic.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},m=o.style||{};delete o.states,delete o.style;let f=[t2.filterUserAttributes(o)],x=[m];return c||["hover","select","disabled"].forEach((t,e)=>{f.push(iz(f[0],t2.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(f[e+1].style),delete f[e+1].style}),ik(d.element,ix?"mouseover":"mouseenter",function(){3!==u&&d.setState(1)}),ik(d.element,ix?"mouseout":"mouseleave",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(f[t]);let e=x[t];iD(e)&&d.css(e)}},d.attr(f[0]),!c&&(d.css(iO({cursor:"default"},m)),h&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==u&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iP(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iC(i[1],e)),iP(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iC(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iE(t)?e.d=t:iD(t)&&iO(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iD(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iD(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iD(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iO(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iS(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iN(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iI(e)&&(a.x=e),iI(i)&&(a.y=i),iI(s)&&(a.width=s),iI(o)&&(a.height=o);let n=this.createElement("image").attr(a),l=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iw.Image;ik(e,"load",l),e.src=t,e.complete&&l({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,l,h;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(n=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iO(a,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&iO(a,r);else if(p){l=t.match(c)[1];let s=a=this.image(l);s.imgwidth=iN(r&&r.width,iM[l]&&iM[l].width),s.imgheight=iN(r&&r.height,iM[l]&&iM[l].height),h=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:l}=this,h="width"===e?n:l,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&l?(d=Math.min(o/n,a/l),iS(s,{width:Math.round(n*d),height:Math.round(l*d)})):s&&h&&s.setAttribute(e,h),!i&&n&&l&&this.translate(((o||0)-n*d)/2,((a||0)-l*d)/2)}}),iP(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iP(s.imgwidth)&&iP(s.imgheight)?h(s):(s.attr({width:0,height:0}),iT("img",{onload:function(){let t=ip[d.chartIndex];0===this.width&&(iA(this,{position:"absolute",top:"-999em"}),ig.body.appendChild(this)),iM[l]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&h(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:l}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iP(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iO(iX.prototype,{Element:eZ,SVG_NS:iv,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:e4,draw:ib}),el.registerRendererType("svg",iX,!0);let{composed:iG}=A,{attr:iF,css:iH,createElement:iY,defined:iV,extend:iU,getAlignFactor:iZ,isNumber:i$,pInt:i_,pushUnique:iq}=J;function iK(t,e,i){let s=this.div?.style||i.style;eZ.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let iJ=(t,e)=>{if(!t.div){let i=iF(t.element,"class"),s=t.css,o=iY("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=iK,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eZ.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class iQ extends eZ{static compose(t){iq(iG,this.compose)&&(t.prototype.html=function(t,e,i){return new iQ(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=i_(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),i$(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),iU(this.styles,t),iH(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:l="left",textWidth:h,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,{display:g="block",whiteSpace:m}=n;if(iH(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n=[i,l,t.innerHTML,h,this.textAlign].join(","),d=-(this.parentGroup?.padding*1)||0,c,f=!1;if(h!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iH(t,{width:"",whiteSpace:m||"nowrap"}),t.offsetWidth),s=h||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iH(t,{width:e>s||i||r?h+"px":"auto",display:g,whiteSpace:m||"normal"}),this.oldTextWidth=h,f=!0)}this.hasBoxWidthChanged=f,n!==this.cTT&&(c=e.fontMetrics(t).b,iV(i)&&(i!==(this.oldRotation||0)||l!==this.oldAlign)&&this.setSpanRotation(i,d,d),this.getSpanCorrection(!iV(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,c,iZ(l)));let{xCorr:x=0,yCorr:y=0}=this,b={left:`${p+x}px`,top:`${u+y}px`,textAlign:l,transformOrigin:`${(s??p)-x-p-d}px ${(o??u)-y-u-d}px`};(r||a)&&(b.transform=`scale(${r??1},${a??1})`),iH(t,b),this.cTT=n,this.oldRotation=i,this.oldAlign=l}}setSpanRotation(t,e,i){iH(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=iJ(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t2.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i0=iQ.prototype;i0.visibilitySetter=i0.opacitySetter=iK,i0.ySetter=i0.rotationSetter=i0.rotationOriginXSetter=i0.rotationOriginYSetter=i0.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(a||(a={}));let i1=a,{addEvent:i2,isFunction:i3,objectEach:i6,removeEvent:i5}=J;(n||(n={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i6(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i5(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i3(e)&&(t.eventOptions[i]=e,i2(t,i,e,{order:0})))})};let i9=n,{deg2rad:i8}=A,{clamp:i4,correctFloat:i7,defined:st,destroyObjectProperties:se,extend:si,fireEvent:ss,getAlignFactor:so,isNumber:sr,merge:sa,objectEach:sn,pick:sl}=J,sh=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,ss(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,l=sl(t.options&&t.options.labels,i.labels),h=e.tickPositions,d=n===h[0],c=n===h[h.length-1],p=(!l.step||1===l.step)&&1===e.tickInterval,u=h.info,g=t.label,m,f,x,y=this.parameters.category||(o?sl(o[n],a[n],n):n);r&&sr(y)&&(y=i7(r.lin2log(y))),e.dateTime&&(u?m=(f=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&u.higherRanks[n]||u.unitName])).main:sr(y)&&(m=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:m,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:u,value:y};ss(this,"labelFormat",b);let v=t=>l.formatter?l.formatter.call(t,t):l.format?(t.text=e.defaultLabelFormatter.call(t),en.format(l.format,t,s)):e.defaultLabelFormatter.call(t),M=v.call(b,b),w=f&&f.list;w?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(h*i8))):(m=s-d*c,f=s+(1-d)*c,mn&&(u=n-t.x+u*d,g=-1),(u=Math.min(p,u))u||e.autoRotation&&(l.styles||{}).width)&&(x=u)),x&&l&&(this.shortenLabel?this.shortenLabel():l.css(si({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sn(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=sl(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),l=n.x,h=n.y,d=s.pos,c=d+s.len,p=o?l:h;!s.chart.polar&&this.isNew&&(i7(p)c)&&(i=0);let u=sl(i,this.label&&this.label.newOpacity,1);i=sl(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,u,t),this.isNew=!1,ss(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=sl(this.tickmarkOffset,i.tickmarkOffset),l=i.chart.renderer,h=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),h||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),a||(o.zIndex=1),t&&(e=0),this.gridLine=h=l.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),h&&(d=i.getPlotLinePath({value:r+n,lineWidth:h.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&h[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,l=t.y,h=sl(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":h})),c[p?"attr":"animate"]({d:this.getMarkPath(n,l,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,l=a.labels,h=l.step,d=sl(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;n&&sr(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,l,d,s,h),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||l.step||l.rotation||e||0===i||this.handleOverflow(t):u=!1,h&&s%h&&(u=!1),u&&sr(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sd}=tF,{xAxis:sc,yAxis:sp}=i1,{defaultOptions:su}=tM,{registerEventOptions:sg}=i9,{deg2rad:sm}=A,{arrayMax:sf,arrayMin:sx,clamp:sy,correctFloat:sb,defined:sv,destroyObjectProperties:sM,erase:sw,error:sk,extend:sS,fireEvent:sT,getClosestDistance:sC,insertItem:sA,isArray:sP,isNumber:sL,isString:sO,merge:sE,normalizeTickInterval:sI,objectEach:sD,pick:sB,relativeLength:sz,removeEvent:sN,splat:sR,syncTimeout:sW}=J,sj=(t,e)=>sI(e,void 0,void 0,sB(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sS(su,{xAxis:sc,yAxis:sE(sc,sp)});class sX{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sT(this,"init",{userOptions:e}),this.opposite=sB(e.opposite,this.opposite),this.side=sB(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sT(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sB(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sP(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sv(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sB(r.crosshair,sR(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sA(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sv(this.reversed)&&(this.reversed=!0),this.labelRotation=sL(a.rotation)?a.rotation:void 0,sg(this,r),sT(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sE(e,su[this.coll],t),sT(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sL(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=su.lang,n=a.numericSymbols,l=a.numericSymbolMagnitude||1e3,h=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&h>=1e3)for(;d--&&void 0===p;)h>=(c=Math.pow(l,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sT(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sL(a)||a instanceof Date||(o=o.filter(sL),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sB(e.dataMin,a),a),e.dataMax=Math.max(sB(e.dataMax,n),n)));else{let t=i.applyExtremes();sL(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sB(e.dataMin,a),a)),sL(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sB(e.dataMax,n),n)),sv(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sT(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sL(n))return NaN;let l=a.minPixelPadding,h=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,u=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(u=(t=t*d+c-l)/p+n,h&&(u=a.lin2val(u))):(h&&(t=a.val2lin(t)),u=d*(t-n)*p+c+d*l+(sL(r)?p*r:0),a.isRadial||(u=sb(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,l=r&&i.oldChartHeight||i.chartHeight,h=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,m,f,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sy(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sT(this,"getPlotLinePath",b,function(t){u=m=(c=sy(c=sB(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,g=f=l-c-d,sL(c)?e.horiz?(g=o,f=l-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=m=y(u,s,s+e.width)):(u=s,m=h-e.right+(i.scrollablePixelsX||0),g=f=y(g,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",m,f]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=sb(Math.floor(e/t)*t),n=sb(Math.ceil(i/t)*t),l=[];if(sb(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(l.push(s),(s=sb(s+t,r))!==o);)o=s;return l}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sB(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],l;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sL(s)&&sL(o)&&sL(r)&&s-o=r,a=(r-s+o)/2,l=[o-a,i.parse(t.min)??o-a],n&&(l[2]=e?e.log2lin(this.dataMin):this.dataMin),h=[(o=sf(l))+r,i.parse(t.max)??o+r],n&&(h[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sx(h))-ot-e),t=sC([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sP(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sv(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sB(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sL(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,l=0,h,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,l=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sB(e.options.pointRange,a,0):t.axisPointRange||0,h=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sO(h)?0:i/2),l=Math.max(l,t&&"on"===h?0:i)}}),h=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=h,t.pointRangePadding=l*=h,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+l||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sT(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sL(t)&&sL(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:l,softThreshold:h}=this,d=i.time,c=sL(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:m,softMax:f,softMin:x}=l,y=sL(m)&&i[this.coll]?.[m],b=l.tickPixelInterval,v=l.maxPadding,M=l.minPadding,w=0,k,S=sL(l.tickInterval)&&l.tickInterval>=0?l.tickInterval:void 0,T,C,A,P;if(r||e||y||this.getTickAmount(),A=sB(this.userMin,d.parse(l.min)),P=sB(this.userMax,d.parse(l.max)),y?(this.linkedParent=y,k=y.getExtremes(),this.min=sB(k.min,k.dataMin),this.max=sB(k.max,k.dataMax),this.type!==y.type&&sk(11,!0,i)):(h&&sv(c)&&sL(s)&&sL(o)&&(o>=c?(T=c,M=0):s<=c&&(C=c,v=0)),this.min=sB(A,T,o),this.max=sB(P,C,s)),sL(this.max)&&sL(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sB(o,this.min))&&sk(10,!0,i),this.min=sb(n.log2lin(this.min),16),this.max=sb(n.log2lin(this.max),16)),this.range&&sL(o)&&(this.userMin=this.min=A=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sT(this,"foundExtremes"),this.adjustForMinRange(),sL(this.min)&&sL(this.max)){if(!sL(this.userMin)&&sL(x)&&xthis.max&&(this.max=P=f),e||this.axisPointRange||this.stacking?.usePercentage||y||!(w=this.max-this.min)||(!sv(A)&&M&&(this.min-=w*M),sv(P)||!v||(this.max+=w*v)),!sL(this.userMin)&&sL(g)&&(this.min=Math.max(this.min,g)),!sL(this.userMax)&&sL(u)&&(this.max=Math.min(this.max,u)),h&&sL(o)&&sL(s)){let t=c||0;!sv(A)&&this.min=t?this.min=l.minRange?Math.min(t,this.max-p):t:!sv(P)&&this.max>t&&s<=t&&(this.max=l.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sv(l.min)?this.max=this.min:sv(l.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&sL(this.min)&&sL(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sB(S,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sT(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sT(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=sB(l.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sk(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sj(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(l=i.apply(this,[this.min,this.max]))&&(n=l))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sL(this.min)&&sL(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||l||this.adjustTickAmount()),sT(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sT(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sL(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sL(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sL(this.threshold)){let t=sy((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sv(t.tickInterval)||i||!(this.lenr.push(sb(r[r.length-1]+p)),m=()=>r.unshift(sb(r[0]-p));if(sL(n)&&(u=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(u=a-1-u)),t.hasData()&&sL(s)&&sL(i)){let n=()=>{t.transA*=(l-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sL(u)&&sL(t.threshold)){for(;r[u]!==h||r.length!==a||r[0]>s||r[r.length-1]t.threshold?m():g();if(p>8*t.tickInterval)break;p*=2}n()}else if(l0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sT(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sT(this,"setExtremes",o=sS(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sz(sB(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sz(sB(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sz(sB(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sz(sB(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sb(t.lin2log(this.min)):this.min,max:t?sb(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sB(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sT(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=sb(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),l=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sb(i*s)},h=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sL(r)?p=[r]:o=-90&&i<=90)&&(e=(t=l(Math.abs(a/Math.sin(sm*i))))+Math.abs(i/360))g&&(g=i)}),this.maxLabelLength=g,this.autoRotation?g>l&&g>d.h?h.rotation=this.labelRotation:this.labelRotation=0:n&&(p=l),h.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(h.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(h),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sS(a,{width:`${p}px`,lineClamp:u})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=h.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sv(this.min)&&sv(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sE(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sh(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,l=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,h=t.hasData(),d=s.title,c=s.labels,p=sL(s.crossing),u=e.axisOffset,g=e.clipOffset,m=[-1,1,1,-1][o],f,x=0,y,b=0,v=0,M,w;if(t.showAxis=f=h||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),h||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sB(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sD(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(f),f&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sv(y=d.offset)?0:sB(d.margin,i?5:10))),t.renderLine(),t.offset=m*sB(s.offset,u[o]?u[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},w=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,M=Math.abs(v)+b,v&&(M-=w,M+=m*(i?sB(c.y,t.tickRotCorr.y+m*c.distance):sB(c.x,m*c.distance))),t.axisTitleMargin=sB(y,M),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&g){let e=this.tickSize("tick");u[o]=Math.max(u[o],(t.axisTitleMargin||0)+x+m*t.offset,M,a&&a.length&&e?e[0]+m*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[l]=Math.max(g[l],i)}sT(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,l=this.offset,h=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],m={x:e?u+h:g+(n?this.width:0)+l+h,y:e?g+d-(n?this.height:0)+l:u+d};return sT(this,"afterGetTitlePosition",{titlePosition:m}),m}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sh(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new sh(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,l=i.tickPositions,h=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=a.stackLabels,g=a.alternateGridColor,m=a.crossing,f=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sd(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sD(t,function(t){t.isActive=!1})}),sL(m)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(m,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sL(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),l.length&&(l.forEach(function(t,e){i.renderTick(t,e,r)}),f&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sh(i,-1,null,!0)),d[-1].render(-1))),g&&l.forEach(function(r,a){e=void 0!==l[a+1]?l[a+1]+f:i.max-f,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,l,h,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=h}else{let l=this.lin2log(e),h=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=s$(t=s_("auto"===d?null:d,this.minorAutoInterval,(h-l)*c/(p||1))),n=o.getLinearTickPositions(t,l,h).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(h||(h={}));let sq=h,{erase:sK,extend:sJ,isNumber:sQ}=J;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!sQ(this.min)||!sQ(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),l,h=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),h=0),l=0;l{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s0.compose(oe,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){s8(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:l}=t.chart,h={},d=l.parse(e.to),c=l.parse(e.from),p=l.parse(e.value),u=e.borderWidth,g=e.label,{label:m,svgElem:f}=this,x=[],y,b=s6(c)&&s6(d),v=s6(p),M=!f,w={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},k=b?"bands":"lines";if(!t.chart.styledMode&&(v?(w.stroke=o||"#999999",w["stroke-width"]=ot(e.width,1),e.dashStyle&&(w.dashstyle=e.dashStyle)):b&&(w.fill=o||"#e6e9ff",u&&(w.stroke=e.borderColor,w["stroke-width"]=u))),h.zIndex=a,k+="-"+a,(y=t.plotLinesAndBandsGroups[k])||(t.plotLinesAndBandsGroups[k]=y=n.g("plot-"+k).attr(h).add()),f||(this.svgElem=f=n.path().attr(w).add(y)),s6(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:f.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s6(c)&&s6(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(s7(r,(t,e)=>{f?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(M||!f.d)&&x?.length?f.attr({d:x}):f&&(x?(f.show(),f.animate({d:x})):f.d&&(f.hide(),m&&(this.label=m=m.destroy()))),g&&(s6(g.text)||s6(g.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(g=s4({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},g),this.renderLabel(g,x,b,a)):m&&m.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(s4({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let l=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],h=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s3(l),c=s3(h),p=s2(l)-d;n.align(t,!1,{x:d,y:c,width:p,height:s2(h)-c}),(!n.alignValue||"left"===n.alignValue||s6(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return s6(t.formatter)?t.formatter.call(this):t.text}destroy(){s9(this.axis.plotLinesAndBands,this),delete this.axis,s5(this)}}let{animObject:oi}=tF,{format:os}=en,{composed:oo,dateFormats:or,doc:oa,isSafari:on}=A,{distribute:ol}=eu,{addEvent:oh,clamp:od,css:oc,discardElement:op,extend:ou,fireEvent:og,isArray:om,isNumber:of,isObject:ox,isString:oy,merge:ob,pick:ov,pushUnique:oM,splat:ow,syncTimeout:ok}=J;class oS{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||ow(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),op(this.container)),J.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=ow(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+ov(t.colorIndex,o.colorIndex),r&&r.className].filter(oy).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=el.getRendererType();this.container=a=A.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),oc(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&A.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=oa,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:l,plotTop:h,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=n&&i.h||0,{height:m,width:f}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?f:m,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+l):x.top-s+b(p+h),0,a?f:m]:[a?t:e,a?c+l:p+h,a?l:h,a?l+o.plotWidth:h+o.plotHeight])},M=v("y"),w=v("x"),k,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let T=!this.followPointer&&ov(i.ttBelow,!d&&!n===S),C=function(t,e,i,o,a,n,l){let h=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?f:f+g)}},A=function(t,e,i,o,r){if(re-s)return!1;re-o/2?u[t]=e-o-2:u[t]=r-i/2},P=function(t){[M,w]=[w,M],k=t},L=()=>{!1!==C.apply(0,M)?!1!==A.apply(0,w)||k||(P(!0),L()):k?u.x=u.y=0:(P(!0),L())};return(n&&!d||this.len>1)&&P(),L(),u}hide(t){let e=this;J.clearTimeout(this.hideTimer),t=ov(t,this.options.hideDelay),this.isHidden||(this.hideTimer=ok(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=ov(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=oi(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=ow(t),n=a[0],l=s.format,h=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;J.clearTimeout(this.hideTimer),this.allowShared=!(!om(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let m=oy(l)?os(l,n,i):h.call(n,this);n.points=void 0;let f=n.series;if(this.distance=ov(f.tooltipOptions.distance,16),!1===m)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(m,a);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===f.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:m&&m.join?m.join(""):m}),this.outside&&t.attr({x:od(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||f.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}og(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:l,scrollablePixelsY:h=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{positioner:g},pointer:m}=i,{scrollLeft:f=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?oa.documentElement.getBoundingClientRect():{left:f,right:f+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,M=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:w,top:k}=m.getChartPosition(),S=l+x,T=0,C=a-h;function A(t,e,s,o,r=!0){let a,n;return s?(a=M?0:C,n=od(t-o/2,y.left,y.right-o-(i.outside?w:0))):(a=e-S,n=od(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}oy(t)&&(t=[!1,t]);let P=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},h=r.isHeader,d=h?i:r.series,m=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:u.padding,r:u.borderRadius};c||(t.fill=u.backgroundColor,t["stroke-width"]=u.borderWidth??1),o=v.label("",0,0,u[r?"headerShape":"shape"],void 0,void 0,u.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(u.style).attr({stroke:u.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),f=m.getBBox(),x=f.width+m.strokeWidth();h&&(T=f.height,C+=T,M&&(S-=T));let{anchorX:w,anchorY:k}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:h}=t;if(s)e=Math.max(n+o,n),i=l+a/2;else{let{xAxis:t,yAxis:s}=h;e=t.pos+od(o,-p,t.len+p),h.shouldShowTooltip(0,s.pos-l+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=od(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof k){let e=f.height+1,s=g?g.call(i,x,e,r):A(w,k,h,x);t.push({align:g?0:void 0,anchorX:w,anchorY:k,boxWidth:x,point:r,rank:ov(s.rank,h?1:0),size:e,target:s.y,tt:m,x:s.x})}else m.isActive=!1}return t},[]);!g&&P.some(t=>{let{outside:e}=i,s=(e?w:0)+t.anchorX;return ss})&&(P=P.map(t=>{let{x:e,y:i}=A(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return ou(t,{target:i,x:e})})),i.cleanSplit(),ol(P,C);let L={left:w,right:w};P.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&w+eL.right&&(L.right=w+e))}),P.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(L.right-L.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:O,outside:E,renderer:I}=i;if(E&&O&&I){let{width:t,height:e,x:i,y:s}=b.getBBox();I.setSize(t+i,e+s,!1),O.style.left=L.left+"px",O.style.top=k+"px"}on&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",l=s[e?"footerFormat":"headerFormat"];return og(this,"headerFormatter",a,function(e){if(r&&!n&&of(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(ox(n)){let t=n;or[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{l=l.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(l=this.styledModeFormat(l)),e.text=os(l,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,ob(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:l=0}=this.getLabel(),{left:h,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),u=(o.positioner||this.getPosition).call(this,l,n,t),g=A.doc,m=(t.plotX||0)+e.plotLeft,f=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(u.x+=h-s,u.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(od(l+x,0,g.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(oc(i,{transform:`scale(${c}, ${p})`}),m*=c,f*=p),m+=h-u.x,f+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),m,f)}}!function(t){t.compose=function(e){oM(oo,"Core.Tooltip")&&oh(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oS||(oS={}));let oT=oS,{animObject:oC}=tF,{defaultOptions:oA}=tM,{format:oP}=en,{addEvent:oL,crisp:oO,erase:oE,extend:oI,fireEvent:oD,getNestedProperty:oB,isArray:oz,isFunction:oN,isNumber:oR,isObject:oW,merge:oj,pick:oX,syncTimeout:oG,removeEvent:oF,uniqueKey:oH}=J;class oY{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oI({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oI(this,t=oY.prototype.optionsToObject.call(this,t)),this.options=this.options?oI(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oY.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oR(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oR(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oC(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oF(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oE(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oG(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oD(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oB(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oH()),this.resolveColor(),t.chart.pointCount++,oD(this,"afterInit")}isValid(){return(oR(this.x)||this.x instanceof Date)&&oR(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,l=0;if(oR(t)||null===t)r[s[0]]=t;else if(oz(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);l0?oY.prototype.setNestedProperty(r,t[n],s[l]):r[s[l]]=t[n]),n++,l++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,l=0;if(oR(i)&&oR(e))return t&&(n=r?r.pos:o.plotLeft,l=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+l,r.len-i+n]:[i+n,e+l]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oX(this.options.colorIndex,a),this.color=oX(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oW(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oP(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,l=a.chart,h=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oW(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),h.data[o]=oW(h.data[o],!0)||oW(t,!0)?r.options:oX(t,h.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(l.isDirtyBox=!0),"point"===h.legendType&&(l.isDirtyLegend=!0),e&&l.redraw(i)}e=oX(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oX(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oj(this.series.options.point,this.options),i=e.events?.[t];oN(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oL(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oF(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oA.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},l=!1===n.enabled,h=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,m,f=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(l||a&&!1===n.enabled)||t&&h.states&&h.states[t]&&!1===h.states[t].enabled)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),m=oX(d.options.chart.animation,o.animation);let e=g.opacity;i.options.inactiveOtherPoints&&oR(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},m),t.connector&&t.connector.animate({opacity:e},m))}),this.graphic.animate(g,m)}u&&this.graphic.animate(u,oX(d.options.chart.animation,n.animation,r.animation)),f&&f.hide()}else t&&n&&(x=h.symbol||i.symbol,f&&f.currentSymbol!==x&&(f=f.destroy()),u&&(f?f[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=f=d.renderer.symbol(x,u.x,u.y,u.width,u.height,oj(r,n)).add(i.markerGroup),f.currentSymbol=x)),!d.styledMode&&f&&"inactive"!==this.state&&f.attr(i.pointAttribs(this,t))),f&&(f[t&&this.isInside?"show":"hide"](),f.element.point=this,f.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||f,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oX(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oI({fill:this.color||i.color,"fill-opacity":y.opacity},t2.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oD(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oO(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oV=oY,{parse:oU}=tC,{charts:oZ,composed:o$,isTouchDevice:o_}=A,{addEvent:oq,attr:oK,css:oJ,extend:oQ,find:o0,fireEvent:o1,isNumber:o2,isObject:o3,objectEach:o6,offset:o5,pick:o9,pushUnique:o8,splat:o4}=J;class o7{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!A.chartCount&&(o7.unbindDocumentMouseUp.forEach(t=>t.unbind()),o7.unbindDocumentMouseUp.length=0,o7.unbindDocumentTouchEnd&&(o7.unbindDocumentTouchEnd=o7.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),o6(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o1(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:l=0}=o,h=i.attrs;h.x=o.plotLeft,h.y=o.plotTop,h.width=r?1:o.plotWidth,h.height=a?1:o.plotHeight,r&&(s=t-n,h.width=Math.max(1,Math.abs(s)),h.x=(s>0?0:s)+n),a&&(s=e-l,h.height=Math.max(1,Math.abs(s)),h.y=(s>0?0:s)+l)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,l=e.plotTop,h=e.plotWidth,d=e.plotHeight,c=o3(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,m,f=this.selectionMarker;if((!f||!f.touch)&&(un+h&&(u=n+h),gl+d&&(g=l+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){m=e.isInsidePlot(i-n,s-l,{visiblePlotOnly:!0});let{shapeType:r,attrs:h}=this.getSelectionMarkerAttrs(u,g);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&m&&!p&&!f&&(this.selectionMarker=f=e.renderer[r](),f.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||f.attr({fill:a||oU("#334eff").setOpacity(.25).get()})),f&&f.attr(h),m&&!f&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o1(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o2(i.index)&&(this.selectionMarker=s.destroy())}i&&o2(i.index)&&(oJ(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o3(r,!0)&&r.series&&(!o3(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&o2(o.x)&&o2(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o5(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&o9(t.options.enableMouseTracking,!0)},l=e,h,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o1(this,"beforeGetHoverData",d),h=l&&!l.stickyTracking?[l]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(h,o,r);return l=c&&c.series,c&&(o&&!l.noSharedTooltip?(h=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=o0(t.points,function(t){return t.x===c.x&&!t.isNull});o3(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),o1(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:l,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=oK(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o1(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o9(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return oQ(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o1(i.series,"click",oQ(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(oQ(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o1(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),A.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oZ[o9(o7.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oZ[o9(o7.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),l=i.tooltip,h=1===a&&o9(l?.options.followTouchMove,!0);a>1?e.initiated=!0:h&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):h?this.runPointActions(e.normalize(t)):o&&(o1(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&o4(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&o4(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,l=n&&n.series||s.hoverSeries,h=(!t||"touchmove"!==t.type)&&(!!e||l&&l.directTouch&&this.isDirectTouch),d=this.getHoverData(n,l,o,h,a,t);n=d.hoverPoint,l=d.hoverSeries;let c=d.hoverPoints,p=l&&l.tooltipOptions.followPointer&&!l.tooltipOptions.split,u=a&&l&&!l.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==l&&l.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(u?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oq(s.container.ownerDocument,"mousemove",t=>oZ[o7.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o9((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=o0(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oq(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oq(t,"mouseleave",this.onContainerMouseLeave.bind(this))),o7.unbindDocumentMouseUp.some(t=>t.doc===e)||o7.unbindDocumentMouseUp.push({doc:e,unbind:oq(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oq(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oq(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oq(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),o7.unbindDocumentTouchEnd||(o7.unbindDocumentTouchEnd=oq(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oq(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!o_)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o9(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oq(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oq(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||oJ(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||oJ(i,{"touch-action":o9(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=A.charts[o9(o7.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(o7.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o9(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o9(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}o7.unbindDocumentMouseUp=[],function(t){t.compose=function(e){o8(o$,"Core.Pointer")&&oq(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(o7||(o7={}));let rt=o7,{fireEvent:re,isArray:ri,objectEach:rs,uniqueKey:ro}=J,rr=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||ro(),this.modified=this,this.rowCount=0,this.versionTag=ro();let e=0;rs(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rs(this.columns,e=>{ri(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rs(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(re(this,"afterSetColumns"),this.versionTag=ro())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rs(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(re(this,"afterSetRows"),this.versionTag=ro())}},{extend:ra,merge:rn,pick:rl}=J;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:l}=t,h=this.symbol||"circle",d=l/2,c=o.renderer,p=s.group,u=a-Math.round((t.fontMetrics?.b||l)*(i?.4:.3)),g={},m,f=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"===r.linecap||(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,u],["L",n-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(f&&!1!==f.enabled&&n){let t=Math.min(rl(f.radius,d),d);0===h.indexOf("url")&&(f=rn(f,{width:l,height:l}),t=0),s.symbol=m=c.symbol(h,n/2-t,u-t,2*t,2*t,ra({context:"legend"},f)).addClass("highcharts-point").add(p),m.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rl(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(c||(c={}));let rh=c,{defaultOptions:rd}=tM,{extend:rc,extendClass:rp,merge:ru}=J;!function(t){function e(e,i){let s=rd.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oV),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=A.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rd.plotOptions||{};if(s=s||"",n[i]=ru(n[s],o),delete t.seriesTypes[i],e(i,rp(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oV{}rc(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(p||(p={}));let rg=p,{animObject:rm,setAnimation:rf}=tF,{defaultOptions:rx}=tM,{registerEventOptions:ry}=i9,{svg:rb,win:rv}=A,{seriesTypes:rM}=rg,{arrayMax:rw,arrayMin:rk,clamp:rS,correctFloat:rT,crisp:rC,defined:rA,destroyObjectProperties:rP,diffObjects:rL,erase:rO,error:rE,extend:rI,find:rD,fireEvent:rB,getClosestDistance:rz,getNestedProperty:rN,insertItem:rR,isArray:rW,isNumber:rj,isString:rX,merge:rG,objectEach:rF,pick:rH,removeEvent:rY,syncTimeout:rV}=J;class rU{constructor(){this.zoneAxis="y"}init(t,e){let i;rB(this,"init",{options:e}),this.dataTable??(this.dataTable=new rr);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rI(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),ry(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rH(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rR(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rB(this,"afterInit")}is(t){return rM[t]&&this instanceof rM[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rB(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rH(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rR(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rE(18,!0,s)})}),rB(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rH(this.pointInterval,i.pointInterval,1),o&&rj(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rj(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rI(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rA(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rG(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rB(this,"setOptions",n);let l=n.plotOptions[this.type],h=o.plotOptions||{},d=h.series||{},c=rx.plotOptions[this.type]||{},p=h[this.type]||{};this.userOptions=n.userOptions;let u=rG(l,s.series,p,r);this.tooltipOptions=rG(rx.tooltip,rx.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,h.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rH(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===l.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map(t=>({...t}));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},a||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&rA(g[g.length-1].value)&&g.push(a?{}:{color:this.color,fillColor:this.fillColor}),rB(this,"afterSetOptions",{options:u}),u}getName(){return rH(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,l=i?.length||r.options.chart.colorCount;!e&&(rA(o=rH("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%l,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rx.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,l=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oV&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(l&&l.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rD(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rj(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rj(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,l,h,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let h;let d=rA(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rj(p)?(-1===(h=this.findPointIndex(d,c))||void 0===h?r.push(t):o[h]&&t!==i.data[h]?(o[h].update(t,!1,null,!1),o[h].touched=!0,a&&(c=h+1)):o[h]&&(o[h].touched=!0),(!n||e!==h||s&&s.enabled||this.hasDerivedData)&&(l=!0)):r.push(t)},this),l)for(h=o.length;h--;)(d=o[h])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=rw(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,l=a.dataSorting,h=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),u=this.pointValKey||"y",g=(this.pointArrayMap||[]).length,m=a.keys,f,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rG(!0,t));let M=(t=v||t||[]).length;if(l&&l.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&M&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&M>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,M-1,-1),o=t=>!!(rW(t)&&(m||rj(t[0])));if(rj(i)&&rj(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[u]:i})}else if(o(i)&&o(s)){if(g){let e=i.length===g?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=g;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{m&&(y=m.indexOf("x"),b=m.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[u]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(f=0;f{let s=rN(i,t),o=rN(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,l=r?.logarithmic,h=i.rowCount,d,c,p=0,u,g,m,f=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,m=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||h>a||e.forceCrop)&&(f[h-1]m?x=new rr:e.getColumn(e.pointValKey||"y").length&&(f[0]m)&&(x=(d=this.cropData(i,g,m)).modified,p=d.start,c=!0))),f=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rz([l?f.map(l.log2lin):f],()=>e.requireSorting&&!y&&rE(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rB(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,l=0,h=o;for(a=0;a=e){l=Math.max(0,a-1);break}for(n=a;ni){h=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(l,h))}return{modified:new rr({columns:r}),start:l,end:h}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,l=t.keys,h=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],u=this.dataColumnKeys(),g,m,f,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(l&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],h=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,u=o||this.cropped||!i,g,m,f,x=0,y=0;for(i&&(x=(g=i.getExtremes()).min,y=g.max),f=0;f=x&&(h[f-c]||m)<=y)for(let t of l){let e=t[f];rj(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rk(d),dataMax:rw(d)};return rB(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&l?.element&&l.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rF(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rB(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let l=this.chart,h=l.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||"markerGroup"],g=this.xAxis,m=rH(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=l.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(u),this.enabledDataSorting&&l.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,h||!i.selected?void 0:"select");h?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,l,h=rH(o.radius,s&&s.radius);e&&(n=s.states[e],h=rH((l=o.states&&o.states[e])&&l.radius,n&&n.radius,h&&h+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(h=0);let d=t.pos();return rj(h)&&d&&(i.crisp&&(d[0]=rC(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-h,a.y=d[1]-h),h&&(a.width=a.height=2*h),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,l,h,d=this.color,c,p,u=rH(o.lineWidth,i.lineWidth),g=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",l=i.states[e]||{},u=rH((h=o.states&&o.states[e]||{}).lineWidth,l.lineWidth,u+rH(h.lineWidthPlus,l.lineWidthPlus,0)),c=h.fillColor||l.fillColor||c,{stroke:p=h.lineColor||l.lineColor||p,"stroke-width":u,fill:c,opacity:g=rH(h.opacity,l.opacity,g)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(rv.navigator.userAgent),n=o.data||[];for(rB(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rO(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rP(t,void 0,!0);J.clearTimeout(o.animationTimeout),rF(o,function(t,e){t instanceof eZ&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rO(r.series,o),r.orderItems("series"),rF(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:l,renderer:h}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,m=(t,e=0,i=0)=>{l&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rS(d.toPixels(rH(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,u=0,m=r.len,y=a.len;c?(p=o,m=x):(u=o,y=x);let b=[["M",p,u],["L",m,u],["L",m,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...f,b[3],b[4]];f=s.reverse(),x=o,l&&(g(v),t&&g(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=h.path(v),t&&(d=e.simpleClip=h.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rA(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rA(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rY(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rm(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,l=t.finishedAnimating?0:o.duration;rB(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),l&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),l&&t.animate?.(),s||(l&&o.defer&&(l+=o.defer),t.animationTimeout=rV(()=>{t.afterAnimate()},l||0)),t.isDirty=!1,t.hasRendered=!0,rB(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rV(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i){let s=this,[o,r]=this.kdAxisArray,a=e?"distX":"dist",n=(s.options.findNearestPointBy||"").indexOf("y")>-1?2:1,l=!!s.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,n,h){let d=i.point,c=s.kdAxisArray[n%h],p,u,g=d;!function(t,e){let i=t[o],s=e[o],a=rA(i)&&rA(s)?i-s:null,n=t[r],h=e[r],d=rA(n)&&rA(h)?n-h:0,c=l&&e.marker?.radius||0;e.dist=Math.sqrt((a&&a*a||0)+d*d)-c,e.distX=rA(a)?Math.abs(a)-c:Number.MAX_VALUE}(e,d);let m=(e[c]||0)-(d[c]||0)+(l&&d.marker?.radius||0),f=m<0?"left":"right",x=m<0?"right":"left";return i[f]&&(g=(p=t(e,i[f],n+1,h))[a]=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,l=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},h="rgba(192,192,192,"+(rb?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:h,fill:i?h:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",l).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",l))})),rB(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:l,data:h,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,u=n.data,g=this.getColumn("x");e=rH(e,!0);let m={series:this};this.pointClass.prototype.applyOptions.apply(m,[t]);let f=m.x;if(a=g.length,this.requireSorting&&ff;)a--;d.setRow(m,a,!0,{addColumns:!1}),p&&m.name&&(p[f]=m.name),u?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(h[0]&&h[0].remove?h[0].remove(!1):([h,u,...Object.values(d.getColumns())].filter(rA).forEach(t=>{t.shift()}),d.rowCount-=1,rB(d,"afterDeleteRows"))),!1!==o&&rB(this,"addPoint",{point:m}),this.isDirty=!0,this.isDirtyData=!0,e&&l.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,l=r[t],h=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rA).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rB(n,"afterDeleteRows"),l?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rf(i,o),e=rH(e,!0),l?l.firePointEvent("remove",null,h):h()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rH(t,!0)&&r.redraw(e)}!1!==i?rB(o,"remove",null,a):a()}update(t,e){rB(this,"update",{options:t=rL(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rM[r].prototype,l=i.finishedAnimating&&{animation:!1},h={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],u=t.type||o.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));u=u||r,g?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rI(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rG(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!g&&{data:i.options.data},t,l),g&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let m=!1;if(rM[u]){if(m=u!==i.type,i.remove(!1,!1,!1,!0),m){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rM[u].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rI(i,rM[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rE(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(h.graphic=1,h.dataLabel=1):(this.hasMarkerChanged(d,o)&&(h.graphic=1),i.hasDataLabels?.()||(h.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(h).length&&t.destroyElements(h),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),m&&i.linkedSeries.length&&(i.isDirtyData=!0),rB(this,"afterUpdate"),rH(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rH(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rA(r)?i!==o:i!==rH(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rB(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rB(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rH(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),l=s.lineWidth,h=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(l=a[t].lineWidth||l+(a[t].lineWidthPlus||0),h=rH(a[t].opacity,h)),o&&!o.dashstyle&&rj(l))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":l},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:h},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rB(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rB(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rh[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rU.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rU.types=rg.seriesTypes,rU.registerType=rg.registerSeriesType,rI(rU.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oV,requireSorting:!0,sorted:!0}),rg.series=rU;let rZ=rU,{animObject:r$,setAnimation:r_}=tF,{registerEventOptions:rq}=i9,{composed:rK,marginNames:rJ}=A,{distribute:rQ}=eu,{format:r0}=en,{addEvent:r1,createElement:r2,css:r3,defined:r6,discardElement:r5,find:r9,fireEvent:r8,isNumber:r4,merge:r7,pick:at,pushUnique:ae,relativeLength:ai,stableSort:as,syncTimeout:ao}=J;class ar{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rq(this,e),r1(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r1(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=at(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=r7(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=at(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(r7(!0,this.options,t)),"events"in this.options&&rq(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,at(e,!0)&&i.redraw(),r8(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof rZ||t instanceof oV)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:l,fillOpacity:h,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(r7(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:l||t.color,"fill-opacity":l?1:h??.75}))}t.color=i,r8(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[r6(e.translateY)?"animate":"attr"](o,void 0,()=>{r8(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r5(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,r3(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*M?v.height:M))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?at(e.itemDistance,20):0,l=this.maxLegendWidth,h=e.alignColumns&&this.totalItemWidth>l?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+h>l&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=h:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):h)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&at(i.showInLegend,!r6(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),r8(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!r6(t[a])&&(i[rJ[a]]=Math.max(i[rJ[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+at(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,l;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=r9(a?t.points:t.points.slice(0).reverse(),function(t){return r4(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,l=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(l-.3*r):l+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),rQ(i,e.plotHeight)))t=o.item.legendItem||{},r4(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,l=this.group,h,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ai(i.width,t.spacingBox.width-s),h=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(h/=2),this.maxLegendWidth=this.widthOption||h,l||(this.group=l=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(l),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),as(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(l)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),l[r?"show":"hide"](),t.styledMode&&"none"===l.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),r8(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=r7(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(r7(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,l=o.maxHeight,h=o.navigation,d=at(h.animation,!0),c=h.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?M.attr({height:t}):M&&(e.clipRect=M.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},m=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},f,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,M=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),l&&(b=Math.min(b,l)),p.length=0,t&&b>0&&t>b&&!1!==h.enabled?(this.clipHeight=f=Math.max(b-20-this.titleHeight-n,0),this.currentPage=at(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>f&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((u[e-1].legendItem||{}).pageIx=o-1),e===u.length-1&&i+s-p[o-1]>f&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),M||(M=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(M)),g(f),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),m("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&h.style&&this.pager.css(h.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),m("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,l=this.padding,h=this.currentPage+t;h>o&&(h=o),h>0&&(void 0!==e&&r_(e,i),this.nav.attr({translateX:l,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===h?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:h+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:h===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===h?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===h?"default":"pointer"}),this.down.attr({fill:h===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:h===o?"default":"pointer"})),this.scrollOffset=-s[h-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=h,this.positionCheckboxes(),ao(()=>{r8(this,"afterScroll",{currentPage:h})},r$(at(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oV,n=t instanceof rZ,l="highcharts-legend-"+(a?"point":"series")+"-active",h=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(l),h||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(r7(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(l),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(l),r8(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&r8(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=r2("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r1(t.checkbox,"click",function(e){let i=e.target;r8(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){ae(rK,"Core.Legend")&&r1(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(ar||(ar={}));let aa=ar,{animate:an,animObject:al,setAnimation:ah}=tF,{defaultOptions:ad}=tM,{numberFormat:ac}=en,{registerEventOptions:ap}=i9,{charts:au,doc:ag,marginNames:am,svg:af,win:ax}=A,{seriesTypes:ay}=rg,{addEvent:ab,attr:av,createElement:aM,css:aw,defined:ak,diffObjects:aS,discardElement:aT,erase:aC,error:aA,extend:aP,find:aL,fireEvent:aO,getAlignFactor:aE,getStyle:aI,isArray:aD,isNumber:aB,isObject:az,isString:aN,merge:aR,objectEach:aW,pick:aj,pInt:aX,relativeLength:aG,removeEvent:aF,splat:aH,syncTimeout:aY,uniqueKey:aV}=J;class aU{static chart(t,e,i){return new aU(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aN(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aj(t.zoomType,e.type),key:aj(t.zoomKey,e.key),pinchType:aj(t.pinchType,e.pinchType),singleTouch:aj(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aR(e.resetButton,t.resetZoomButton)}}init(t,e){aO(this,"init",{args:arguments},function(){let i=aR(ad,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=aP({},t),(this.renderTo=aN(o)?ag.getElementById(o):o)||aA(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tm(aP(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||ac).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=au.length,au.push(this),A.chartCount++,ap(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aO(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=ay[i];s||aA(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aH(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aH(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(l+r,t.pos)&&e<=Math.min(l+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+u:a+u;e>=Math.max(h+a,t.pos)&&e<=Math.min(h+a+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return aO(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){aO(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),l=[],h,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),ah(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){h=!0;break}if(h)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),u=!0):r&&(r.labelFormatter||r.labelFormat)&&(u=!0)),t.isDirtyData&&aO(t,"updatedData")}),u&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,l.push(function(){aO(t,"afterSetExtremes",aP(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aO(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aO(this,"redraw"),aO(this,"render"),n&&this.temporaryDisplay(!0),l.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aL(this.axes,i)||aL(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aj(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aR(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(aP("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aR(o),n=i?.textPxLength||0;if(i&&r){aO(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),l=o.b,h=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(a.width/n,1),m=Math.max(p,g),f=aR({y:"bottom"===d?l:u+l},{align:"title"===t?gp?this.chartWidth:a.width)/m;i.alignValue!==f.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(f.height=y,i.align(f,!1,a).attr({align:f.align,scaleX:m,scaleY:m,"transform-origin":`${a.x+n*m*aE(f.align)} ${h}`}),!r.floating){let t=y*(y<1.2*h?1:m);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,aO(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:aI(this.renderTo,"width",!0)||0,height:aI(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,aG(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(aw(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(ag.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(ag.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,ag.body.appendChild(e)),("none"===aI(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),aw(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==ag.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=aV(),r=this.renderTo,a=aX(av(r,s));aB(a)&&au[a]&&au[a].hasRendered&&au[a].destroy(),av(r,s,this.index),r.innerHTML=t2.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,l=this.chartWidth;aw(r,{overflow:"hidden"}),this.styledMode||(t=aP({position:"relative",overflow:"hidden",width:l+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let h=aM("div",{id:o},t,r);this.container=h,this.getChartSize(),l===this.chartWidth||(l=this.chartWidth,this.styledMode||aw(h,{width:aj(i.style?.width,l+"px")})),this.containerBox=this.getContainerBox(),this._cursor=h.style.cursor;let d=i.renderer||!af?el.getRendererType(i.renderer):iX;if(this.renderer=new d(h,l,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),ah(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aO(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!ak(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!ak(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),aO(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),am.forEach(function(i,o){ak(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return aS(this.userOptions,ad)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(J.clearTimeout(e.reflowTimeout),e.reflowTimeout=aY(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=ab(ax,"resize",e);ab(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ah(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:l=0,scrollablePixelsY:h=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?an:aw)(s.container,{width:`${a+l}px`,height:`${n+h}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aO(s,"resize"),setTimeout(()=>{s&&aO(s,"endResize")},al(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:l,renderer:h}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=h.spacingBox={x:l[3],y:l[0],width:a-l[3]-l[1],height:r-l[0]-l[2]},this.plotBox=h.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),h.alignElements()),aO(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){aO(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=az(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aj(e[i+s],o[r])})}),am.forEach(function(e,i){t[e]=aj(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,l=t.plotBackgroundImage,h=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,m=this.clipBox,f=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,M,w="animate";f||(this.chartBackground=f=e.rect().addClass("highcharts-background").add(),w="attr"),o?b=v=f.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),M={fill:a||"none"},(b||f["stroke-width"])&&(M.stroke=t.borderColor,M["stroke-width"]=b),f.attr(M).shadow(t.shadow)),f[w]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),w="animate",x||(w="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[w](u),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),l&&(r?(l!==r.attr("href")&&r.attr("href",l),r.animate(u)):this.plotBGImage=e.image(l,h,d,c,p).add())),g?g.animate({width:m.width,height:m.height}):this.clipRect=e.clipRect(m),w="animate",y||(w="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[w](y.crisp({x:h,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,aO(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=ay[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=ay[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aN(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aj(t.options.visible,s.options.visible,t.visible))}}),aO(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,l=0;for(let e of(this.setTitle(),aO(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sh(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aj(i.reserveSpace,!aB(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&l(l?1:1.1),n=i/this.plotHeight>(l?1:1.05),l++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aR(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(ax.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(aO(e,"destroy"),e.renderer.forExport?aC(au,e):au[e.index]=void 0,A.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),aF(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t2.emptyHTML,aF(o),r&&aT(o)),aW(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aD(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aO(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aO(this,"load"),aO(this,"render"),ak(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aO(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),aw(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:l,time:h}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:u,minPointOffset:g=0,options:m,reversed:f}=t,x=e?"width":"height",y=e?"x":"y",b=aj(a[x],t.len),v=aj(s[x],t.len),M=10>Math.abs(b)?1:b/v,w=(s[y]||0)+v/2-t.pos,k=w-((a[y]??t.pos)+b/2-t.pos)/M,S=f&&!l||!f&&l?-1:1;if(!o&&(w<0||w>t.len))continue;let T=t.toValue(k,!0)+(r||t.isOrdinal?0:g*S),C=t.toValue(k+u/M,!0)-(r||t.isOrdinal?0:g*S||0),A=t.allExtremes;if(T>C&&([T,C]=[C,T]),1===M&&!o&&"yAxis"===t.coll&&!A){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);A??(A={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aB(t.dataMin)&&aB(t.dataMax)&&(A.dataMin=Math.min(t.dataMin,A.dataMin),A.dataMax=Math.max(t.dataMax,A.dataMax))}t.allExtremes=A}let{dataMin:P,dataMax:L,min:O,max:E}=aP(t.getExtremes(),A||{}),I=h.parse(m.min),D=h.parse(m.max),B=P??I,z=L??D,N=C-T,R=t.categories?0:Math.min(N,z-B),W=B-R*(ak(I)?0:m.minPadding),j=z+R*(ak(D)?0:m.maxPadding),X=t.allowZoomOutside||1===M||"zoom"!==n&&M>1,G=Math.min(I??W,W,X?O:W),F=Math.max(D??j,j,X?E:j);(!t.isOrdinal||t.options.overscroll||1!==M||o)&&(T=1&&(C=T+N)),C>F&&(C=F,M>=1&&(T=C-N)),(o||t.series.length&&(T!==O||C!==E)&&T>=G&&C<=F)&&(r?r[t.coll].push({axis:t,min:T,max:C}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:T,o?void 0:C,!1,!1,{move:k,trigger:n,scale:M}),!o&&(T>G||C{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}aP(aU.prototype,{callbacks:[],collectionsWithInit:{xAxis:[aU.prototype.addAxis,[!0]],yAxis:[aU.prototype.addAxis,[!1]],series:[aU.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let aZ=aU,{stop:a$}=tF,{composed:a_}=A,{addEvent:aq,createElement:aK,css:aJ,defined:aQ,erase:a0,merge:a1,pushUnique:a2}=J;function a3(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new a5(this)),t?.applyFixed()}function a6(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class a5{static compose(t,e,i){a2(a_,this.compose)&&(aq(t,"afterInit",a6),aq(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),aq(e,"render",a3),aq(i,"show",a6))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:l,inverted:h,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=a1(t.plotBox),l.width=t.plotWidth+=i,n[h?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),aQ(s)&&(t.scrollablePlotBox=a1(t.plotBox),l.height=t.plotHeight+=s,n[h?"width":"height"]+=s,o=!1)),aQ(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=el.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=aK("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),l=this.scrollingContainer=aK("div",{className:"highcharts-scrolling"},a,n),h=this.innerContainer=aK("div",{className:"highcharts-inner-container"},void 0,l),d=this.fixedDiv=aK("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),l.parentNode.insertBefore(d,l),aJ(t.renderTo,{overflow:"visible"}),aq(t,"afterShowResetZoom",r),aq(t,"afterApplyDrilldown",r),aq(t,"afterLayOutTitles",r),aq(l,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),h.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:l,plotLeft:h,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:m=0}=t.options.chart.scrollablePlotArea||{},f=r+p,x=a+u;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),a$(t.container),aJ(n,{width:`${f}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:f,height:x,viewBox:[0,0,f,x].join(" ")}),t.chartBackground?.attr({width:f,height:x}),aJ(s,{width:`${r}px`,height:`${a}px`}),aQ(i)||(s.scrollLeft=p*g,s.scrollTop=u*m);let y=d-o[0]-1,b=h-o[3]-1,v=d+l+o[2]+1,M=h+c+o[1]+1,w=h+c-p,k=d+l-u,S=[["M",0,0]];p?S=[["M",0,y],["L",h-1,y],["L",h-1,v],["L",0,v],["Z"],["M",w,y],["L",r,y],["L",r,v],["L",w,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",M,d-1],["L",M,0],["Z"],["M",b,k],["L",b,a],["L",M,a],["L",M,k],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=a5.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a2(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a0(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}a5.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:a9}=en,{series:a8}=rg,{destroyObjectProperties:a4,fireEvent:a7,getAlignFactor:nt,isNumber:ne,pick:ni}=J,ns=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){a4(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?a9(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:ni(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,a7(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:l,options:h,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=a;if(l&&p){let t=l.getBBox(void 0,0),e=l.padding,i="justify"===ni(h.overflow,"justify"),s;a.x=h.x||0,a.y=h.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,l.align(a,!1,p),(s=c.isInsidePlot(l.alignAttr.x+a.x+o,l.alignAttr.y+a.y+r))||(i=!1),i&&a8.prototype.justifyDataLabel.call(n,l,a,l.alignAttr,t,p),l.attr({x:l.alignAttr.x,y:l.alignAttr.y,rotation:h.rotation,rotationOriginX:t.width*nt(h.textAlign||"center"),rotationOriginY:t.height/2}),ni(!i&&h.crop,!0)&&(s=ne(l.x)&&ne(l.y)&&c.isInsidePlot(l.x-e+(l.width||0),l.y)&&c.isInsidePlot(l.x+e,l.y)),l[s?"show":"hide"]()}a7(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*nt(i)-1),y:t.height/2*2*(1-nt(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,l=e.stacking.usePercentage?100:ni(s,this.total,0),h=e.toPixels(l),d=t.xAxis||i.xAxis[0],c=ni(o,d.translate(this.x))+r,p=Math.abs(h-e.toPixels(n||ne(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?h:h-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(g?h-p:h)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:no}=tF,{series:{prototype:nr}}=rg,{addEvent:na,correctFloat:nn,defined:nl,destroyObjectProperties:nh,fireEvent:nd,isNumber:nc,objectEach:np,pick:nu}=J;function ng(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nu(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function nm(){let t=this.stacking;if(t){let e=t.stacks;np(e,(t,i)=>{nh(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nf(){this.stacking||(this.stacking=new nw(this))}function nx(t,e,i,s){return!nl(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function ny(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,l,h;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),l=o[i]?.[a],(h=l?.points[t.key||""])&&n.call(e,h,l,s)})}function nb(t,e,i){let s=e.total?100/e.total:0;t[0]=nn(t[0]*s),t[1]=nn(t[1]*s),this.stackedYData[i]=t[1]}function nv(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?nr.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nM(t,e){let i,s,o,r,a,n,l;let h=e||this.options.stacking;if(!h||!this.reserveSpace()||(({group:"xAxis"})[h]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,m=g.threshold||0,f=g.startFromThreshold?m:0,x=g.stack,y=e?`${this.type},${h}`:this.stackKey||"",b="-"+y,v=this.negStacks,M=t.stacking,w=M.stacks,k=M.oldStacks;for(M.stacksTouched+=1,l=0;l0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===h?(r=s?y:b,S=v&&w[r]?.[e]?(r=w[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):nn(S+Math.abs(g))):"group"===h?nc(u)&&S++:S=nn(S+g),"group"===h?o.cumulative=(S||1)-1:o.cumulative=nn(nu(o.cumulative,f)+g),o.total=S,null!==u&&(o.points[n].push(o.cumulative),p[l]=o.cumulative,o.hasValidPoints=!0)}"percent"===h&&(M.usePercentage=!0),"group"!==h&&(this.stackedYData=p),M.oldStacks={}}class nw{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{np(t,t=>{t.cumulative=t.total})}))}resetStacks(){np(this.stacks,t=>{np(t,(e,i)=>{nc(e.touched)&&e.touched{np(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(u||(u={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(na(t,"init",nf),na(t,"destroy",nm),s.getStacks=ng,o.getStackIndicator=nx,o.modifyStacks=ny,o.percentStacker=nb,o.setGroupedPoints=nv,o.setStackedPoints=nM)};let nk=u,{defined:nS,merge:nT,isObject:nC}=J;class nA extends rZ{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",l=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},l?r.dashstyle=l:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nT({filterUnits:"userSpaceOnUse"},nC(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,l=o.step,h=(t=t||s.points).reversed;return h&&t.reverse(),(l=({right:1,center:2})[l]||l&&3)&&h&&(l=4-l),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(h,d){let c;let p=h.plotX,u=h.plotY,g=t[d-1],m=h.isNull||"number"!=typeof u;(h.leftCliff||g&&g.rightCliff)&&!i&&(n=!0),m&&!nS(e)&&d>0?n=!o.connectNulls:m&&!e?n=!0:(0===d||n?c=[["M",h.plotX,h.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,h,d)]:l?(c=1===l?[["L",g.plotX,u]]:2===l?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(h.x),l&&(a.push(h.x),2===l&&a.push(h.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nA.defaultOptions=nT(rZ.defaultOptions,{legendSymbol:"lineMarker"}),rg.registerSeriesType("line",nA);let{seriesTypes:{line:nP}}=rg,{extend:nL,merge:nO,objectEach:nE,pick:nI}=J;class nD extends nP{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nP.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,l=[],h=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(n.getThreshold(r.threshold)),g=nI(r.connectNulls,"percent"===a),m=function(i,s,o){let r=t[i],g=a&&c[r.x].points[d],m=r[o+"Null"]||0,f=r[o+"Cliff"]||0,x,y,b=!0;f||m?(x=(m?g[0]:g[1])+f,y=g[0]+f,b=!!m):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(h.push({plotX:e,plotY:null===x?u:n.getThreshold(x),isNull:b,isCliff:!0}),l.push({plotX:e,plotY:null===y?u:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&h.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=f.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},l=r.series,h=l.length,d=r.options.reversedStacks?1:-1,c=l.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,u){let g=0,m,f;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[u+i]],g=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>l?(o=Math.max(i,l),a=2*l-o):op&&a>l?(a=Math.max(p,l),o=2*l-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n2(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&nJ(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(n_(s)){if(nQ(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=n1(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,l=n1(i.minPointLength,5),h=t.getColumnMetrics(),d=h.width,c=t.pointXOffset=h.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=a.getThreshold(n),m=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(m=Math.ceil(m)),rZ.prototype.translate.apply(t),t.points.forEach(function(s){let o=n1(s.yBottom,g),f=999+Math.abs(o),x=s.plotX||0,y=nZ(s.plotY,-f,a.len+f),b,v=Math.min(y,o),M=Math.max(y,o)-v,w=d,k=x+c,S=m;l&&Math.abs(M)l?o-l:g-(b?l:0)),n_(s.options.pointWidth)&&(k-=Math.round(((w=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(k=t.adjustForMissingColumns(k,w,s,h)),s.barX=k,s.pointWidth=w,s.tooltipPos=e.inverted?[nZ(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-k-S/2,M]:[r.left-e.plotLeft+k+S/2,nZ(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),M],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(k,s.isNull?g:v,S,s.isNull?0:M)}),nK(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,l,h=t&&t.color||this.color,d=t&&t[o]||i[o]||h,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,u=n1(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),h=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(l=(a=n0(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,h=a.color||void 0!==l&&nV(h).brighten(a.brightness).get()||h,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,u=n1(a.opacity,u));let g={fill:h,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,l=t.graphic,h=!!l,d=l&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,l=t.plotX,h=t.plotY,d=i.rotation||0,c=n8(l)&&n8(h)&&r.isInsidePlot(l,Math.round(h),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===lr(i.overflow,a?"none":"justify"),u=this.visible&&!1!==t.visible&&n8(l)&&(t.series.forceDL||a&&!p||c||lr(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(l,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var m;let l=e.getBBox(),h=e.getBBox(void 0,0);if(s=n4({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),n4(i,{width:l.width,height:l.height}),m=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,m),e.align(ls(i,{width:h.width,height:h.height}),!1,s,!1),e.alignAttr.x+=lt(i.align)*(h.width-l.width),e.alignAttr.y+=lt(i.verticalAlign)*(h.height-l.height),e[e.placed?"animate":"attr"]({x:e.alignAttr.x+(l.width-h.width)/2,y:e.alignAttr.y+(l.height-h.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,l,s,o);else if(lr(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+l.width-1,i+l.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&a&&(e.placed=!1),u||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:h}=s.options.chart,d=r.getContrast(li(h)&&h||li(a)&&a||"#000000"),c=l(i),{animation:p,defer:u}=c[0],g=u?n5(s,p,i):{defer:0,duration:0};n7(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach(t=>{let a=t.dataLabels||[];ln(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,l)=>{let h=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:u,style:g={}}=n,m,f,x,y={},b=a[l],v=!b,M;h&&(f=n8(m=lr(n[t.formatPrefix+"Format"],n.format))?n9(m,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(g.color=lr(n.color,g.color,li(i.color)?i.color:void 0,"#000000"),"contrast"===g.color?("none"!==c&&(M=c),t.contrastColor=r.getContrast("auto"!==M&&M||t.color||i.color),g.color=M||!n8(u)&&n.inside||0>la(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(g.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),lo(y,(t,e)=>{void 0===t&&delete y[e]})),!b||h&&n8(f)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),h&&n8(f)&&(b?y.text=f:(b=r.label(f,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?g.width&&b.css({width:g.width,textOverflow:g.textOverflow,whiteSpace:g.whiteSpace}):b.css(g).shadow(n.shadow),n7(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[l]&&a[l]!==b&&a[l].destroy(),a[l]=b))});let l=a.length;for(;l--;)a[l]&&a[l].isActive?a[l].isActive=!1:(a[l]?.destroy(),a.splice(l,1));t.dataLabel=a[0],t.dataLabels=a})),n7(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,l=e.verticalAlign,h=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,u=p?p.top-a.plotTop:0,{x:g=0,y:m=0}=e,f,x;return(f=(i.x||0)+h+c)<0&&("right"===n&&g>=0?(e.align="left",e.inside=!0):g-=f,x=!0),(f=(i.x||0)+s.width-h+c)>a.plotWidth&&("left"===n&&g<=0?(e.align="right",e.inside=!0):g+=a.plotWidth-f,x=!0),(f=i.y+h+u)<0&&("bottom"===l&&m>=0?(e.verticalAlign="top",e.inside=!0):m-=f,x=!0),(f=(i.y||0)+s.height-h+u)>a.plotHeight&&("top"===l&&m<=0?(e.verticalAlign="bottom",e.inside=!0):m+=a.plotHeight-f,x=!0),x&&(e.x=g,e.y=m,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(le(t)&&!le(e))i=t.map(function(t){return ls(t,e)});else if(le(e)&&!le(t))i=e.map(function(e){return ls(t,e)});else if(le(t)||le(e)){if(le(t)&&le(e))for(s=Math.max(t.length,e.length);s--;)i[s]=ls(t[s],e[s])}else i=ls(t,e);return i}function l(t){let e=t.chart.options.plotOptions;return ln(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function h(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,l=n.reversed,h=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:l?-h-c:n.width-h+c,e.startYPos=a?l?this.yAxis.height-h+c:-h-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=h,n.hasDataLabels=e)}}(g||(g={}));let ll=g,{composed:lh}=A,{series:ld}=rg,{merge:lc,pick:lp,pushUnique:lu}=J;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,l=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,h=t.dlBox||t.shapeArgs,d=lp(t.below,t.plotY>lp(this.translatedThreshold,l)),c=lp(i.inside,!!this.options.stacking);if(h){if(s=lc(h),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-l;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),lM(lk.prototype,{drawTracker:ly.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),lv(lk,"afterTranslate",function(){this.applyJitter()}),rg.registerSeriesType("scatter",lk);let{deg2rad:lS}=A,{fireEvent:lT,isNumber:lC,pick:lA,relativeLength:lP}=J;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,l,h=t.size,d=t.innerSize||0,c,p;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof d&&(d=parseFloat(d));let u=[lA(r?.[0],"50%"),lA(r?.[1],"50%"),lA(h&&h<0?void 0:t.size,"100%"),lA(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rZ||(u[3]=0),c=0;c<4;++c)p=u[c],l=c<2||2===c&&/%$/.test(p),u[c]=lP(p,[s,o,a,u[2]][c])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),lC(n)&&2*n0&&(u[3]=u[2]-2*n),lT(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=lC(t)?t:0,s=lC(e)&&e>i&&e-i<360?e:i+360;return{start:lS*(i+-90),end:lS*(s+-90)}}}(f||(f={}));let lL=f,{setAnimation:lO}=tF,{addEvent:lE,defined:lI,extend:lD,isNumber:lB,pick:lz,relativeLength:lN}=J;class lR extends oV{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};lE(this,"select",s),lE(this,"unselect",s)}isValid(){return lB(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;lO(i,s.chart),e=lz(e,!0),this.sliced=this.options.sliced=t=lI(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}lD(lR.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,l,h]=a.center,d=h/2,{plotLeft:c,plotWidth:p}=a.chart,u="left"===t.alignment,{x:g,y:m}=t,f=o.x;if(i.crookDistance){let t=lN(i.crookDistance,1);f=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else f=n+(l-m)*Math.tan(s-Math.PI/2);let x=[["M",g,m]];return(u?f<=g&&f>=o.x:f>=g&&f<=o.x)&&x.push(["L",f,m]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:lW}=lL,{noop:lj}=A,{clamp:lX,extend:lG,fireEvent:lF,merge:lH,pick:lY}=J;class lV extends rZ{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:lY(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:e4.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,l=Math.asin(lX((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(l)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||lH(!0,n,i),lH(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){lF(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=lW(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,l=a.length,h,d,c,p,u,g,m,f=0;for(t||(this.center=t=this.getCenter()),g=0;g1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),m.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,m.tooltipPos=[t[0]+.7*p,t[1]+.7*u],m.half=c<-Math.PI/2||c>Math.PI/2?1:0,m.angle=c}lF(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}lV.defaultOptions=lH(rZ.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),lG(lV.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:n6.prototype.drawTracker,getCenter:lL.getCenter,getSymbol:lj,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:n6.prototype.pointAttribs,pointClass:lR,requireSorting:!1,searchPoint:lj,trackerGroups:["group","dataLabelsGroup"]}),rg.registerSeriesType("pie",lV);let{composed:lU,noop:lZ}=A,{distribute:l$}=eu,{series:l_}=rg,{arrayMax:lq,clamp:lK,defined:lJ,pick:lQ,pushUnique:l0,relativeLength:l1}=J;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,l=a[2]/2,h=Math.cos(r),d=Math.sin(r),c=a[0]+h*l,p=a[1]+d*l,u=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+h*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+h*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,l=n[2]/2,h=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,g,m,f=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),l_.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=l1(o?.distance||0,s);0===i&&d[t.half].push(t),!lJ(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),f=Math.max(f,r)})}),d.forEach((e,a)=>{let d=e.length,u=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),f>0&&(x=Math.max(0,h-l-f),y=Math.min(h+l+f,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,h-l-s.distance),s.bottom=Math.min(h+l+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),l$(u,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(h=>{let d=h.options||{},f=i.distributeBox,x=h.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=h.lineHeight||21,M=(v-h.getBBox().height)/2,w=0,k=y,S="inherit";if(x){if(u&&lJ(f)&&x.distance>0&&(void 0===f.pos?S="hidden":(m=f.size,k=p.radialDistributionY(i,h))),d.justify)w=p.justify(i,h,l,n);else switch(d.alignTo){case"connectors":w=p.alignToConnectors(e,a,s,r);break;case"plotEdges":w=p.alignToPlotEdges(h,a,s,r);break;default:w=p.radialDistributionX(t,i,k-M,y,h)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:w+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:k+(d.y||0)-v/2},x.computed.x=w,x.computed.y=k-M,lQ(d.crop,!0)){let t;w-(g=h.getBBox().width)s-b&&0===a&&(t=Math.round(w+g-s+b),c[1]=Math.max(t,c[1])),k-m/2<0?c[0]=Math.max(Math.round(-k+m/2),c[0]):k+m/2>o&&(c[2]=Math.max(Math.round(k+m/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===lq(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;u=s.connector,a&&a.distance>0?(n=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||u.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),u[n?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:a.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=lK(r,o,e[2]-Math.max(t[0],t[2])):(r=lK(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=h>e&&t<(l-s)*(e-n)/(h-n)+s&&(a=!a)}return a}}(y||(y={}));let l3=y,{pointInPolygon:l6}=l3,{addEvent:l5,fireEvent:l9,objectEach:l8,pick:l4}=J;function l7(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(l6({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,l,h=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{l8(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=l4(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,ht(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let hi={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=l7,l5(t,"render",he))}},{defaultOptions:hs}=tM,{noop:ho}=A,{addEvent:hr,extend:ha,isObject:hn,merge:hl,relativeLength:hh}=J,hd={radius:0,scope:"stack",where:void 0},hc=ho,hp=ho;function hu(t,e,i,s,o={}){let r=hc(t,e,i,s,o),{innerR:a=0,r:n=i,start:l=0,end:h=0}=o;if(o.open||!o.borderRadius)return r;let d=h-l,c=Math.sin(d/2),p=Math.max(Math.min(hh(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*a),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],l=o.params,{start:h,end:d,cx:c,cy:p}=l,u=n?a-i:a+i,g=u?Math.asin(i/u):0,m=n?g:-g,f=Math.cos(g)*u;r?(l.start=h+m,s[1]=c+f*Math.cos(h),s[2]=p+f*Math.sin(h),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(l.start),p+a*Math.sin(l.start)])):(l.end=d-m,o[6]=c+a*Math.cos(l.end),o[7]=p+a*Math.sin(l.end),t.splice(e+1,0,["A",i,i,0,0,1,c+f*Math.cos(d),p+f*Math.sin(d)])),o[4]=Math.abs(l.end-l.start)1?u:p);return r}function hg(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=hs.plotOptions?.[this.type]?.borderRadius,o=hm(t.borderRadius,hn(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:l=0,y:h=0}=a,d=h,c=l;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(hh(o.radius,n),n/2,"all"===u?l/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),ha(a,{brBoxHeight:c,brBoxY:d,r:g})}}}}function hm(t,e){return hn(t)||(t={radius:t||0}),hl(hd,e,t)}function hf(){let t=hm(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=hh(t.radius,(i.r||0)-(i.innerR||0)))}}function hx(t,e,i,s,o={}){let r=hp(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:l=e}=o,h=e-l,d=l+n-(e+s),c=h-a>-.1?0:a,p=d-a>-.1?0:a,u=Math.max(c&&h,0),g=Math.max(p&&d,0),m=[t+c,e],f=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],M=[t,e+s-p],w=[t,e+c],k=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=k(c,c-u);m[0]-=t,f[0]+=t,x[1]=w[1]=e+c-u}if(s=hw(i.minWidth,0)&&this.chartHeight>=hw(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=hk()),this.matchResponsiveRule(t,o)},this);let a=hM(...o.map(t=>hv((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=hy(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||hb(s,{matchResponsiveRule:e,setResponsive:i}),t}}(b||(b={}));let hS=b;A.AST=t2,A.Axis=sG,A.Chart=aZ,A.Color=tC,A.DataLabel=ll,A.DataTableCore=rr,A.Fx=tE,A.HTMLElement=iQ,A.Legend=aa,A.LegendSymbol=rh,A.OverlappingDataLabels=A.OverlappingDataLabels||hi,A.PlotLineOrBand=oe,A.Point=oV,A.Pointer=rt,A.RendererRegistry=el,A.Series=rZ,A.SeriesRegistry=rg,A.StackItem=ns,A.SVGElement=eZ,A.SVGRenderer=iX,A.Templating=en,A.Tick=sh,A.Time=tm,A.Tooltip=oT,A.animate=tF.animate,A.animObject=tF.animObject,A.chart=aZ.chart,A.color=tC.parse,A.dateFormat=en.dateFormat,A.defaultOptions=tM.defaultOptions,A.distribute=eu.distribute,A.format=en.format,A.getDeferredAnimation=tF.getDeferredAnimation,A.getOptions=tM.getOptions,A.numberFormat=en.numberFormat,A.seriesType=rg.seriesType,A.setAnimation=tF.setAnimation,A.setOptions=tM.setOptions,A.stop=tF.stop,A.time=tM.defaultTime,A.timers=tE.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;hr(t,"afterColumnTranslate",hg,{order:9}),hr(s,"afterTranslate",hf),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),hc=o.arc,hp=o.roundedRect,o.arc=hu,o.roundedRect=hx}},optionsToObject:hm}).compose(A.Series,A.SVGElement,A.SVGRenderer),lg.compose(A.Series.types.column),ll.compose(A.Series),sU.compose(A.Axis),iQ.compose(A.SVGRenderer),aa.compose(A.Chart),sq.compose(A.Axis),hi.compose(A.Chart),l2.compose(A.Series.types.pie),oe.compose(A.Chart,A.Axis),rt.compose(A.Chart),hS.compose(A.Chart),a5.compose(A.Axis,A.Chart,A.Series),nk.compose(A.Axis,A.Chart,A.Series),oT.compose(A.Pointer),J.extend(A,J);let{parse:hT}=tC,{addEvent:hC,extend:hA,merge:hP,pick:hL,splat:hO}=J;!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=hO(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))}))}),r=s.length;r--;)t.allItems.unshift(s[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function l(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==r?s.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",hT(this.start).tweenTo(hT(this.end),this.pos),void 0,!0)}function c(){this.elem.attr("stroke",hT(this.start).tweenTo(hT(this.end),this.pos),void 0,!0)}t.compose=function(t,p,u,g,m){let f=p.prototype,x=u.prototype,y=m.prototype;f.collectionsWithUpdate.includes("colorAxis")||(e=t,f.collectionsWithUpdate.push("colorAxis"),f.collectionsWithInit.colorAxis=[f.addColorAxis],hC(p,"afterCreateAxes",i),function(t){let i=t.prototype.createAxis;t.prototype.createAxis=function(t,s){if("colorAxis"!==t)return i.apply(this,arguments);let o=new e(this,hP(s.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),hL(s.redraw,!0)&&this.redraw(s.animation),o}}(p),x.fillSetter=d,x.strokeSetter=c,hC(g,"afterGetAllItems",s),hC(g,"afterColorizeItem",o),hC(g,"afterUpdate",r),hA(y,{optionalAxis:"colorAxis",translateColors:h}),hA(y.pointClass.prototype,{setVisible:l}),hC(m,"afterTranslate",a,{order:1}),hC(m,"bindAxes",n))},t.pointSetVisible=l}(v||(v={}));let hE=v,{parse:hI}=tC,{merge:hD}=J;!function(t){t.initDataClasses=function(t){let e=this.chart,i=this.legendItem=this.legendItem||{},s=this.options,o=t.dataClasses||[],r,a,n=e.options.chart.colorCount,l=0,h;this.dataClasses=a=[],i.labels=[];for(let t=0,i=o.length;t=s)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(i=this.normalizedValue(t),n=h.length;n--&&!(i>h[n][0]););s=h[n]||h[n+1],i=1-((o=h[n+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r}}(M||(M={}));let hB=M,{defaultOptions:hz}=tM,{series:hN}=rg,{defined:hR,extend:hW,fireEvent:hj,isArray:hX,isNumber:hG,merge:hF,pick:hH,relativeLength:hY}=J;hz.colorAxis=hF(hz.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class hV extends sG{static compose(t,e,i,s){hE.compose(hV,t,e,i,s)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},s=e.layout?"vertical"!==e.layout:"vertical"!==i.layout;this.side=e.side||s?2:1,this.reversed=e.reversed||!s,this.opposite=!s,super.init(t,e,"colorAxis"),this.userOptions=e,hX(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=s,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=hF(hz.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:i,height:s}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=i=+e.attr("width"),this.height=s=+e.attr("height"),this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-s,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?i:s)||hV.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let i=this.chart.legend;i.allItems.forEach(function(t){t instanceof hV&&t.drawLegendSymbol(i,t)}),i.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,i=e?1:0,s=e?0:1,o=t?[i,0,s,0]:[0,s,0,i];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},s=t.padding,o=t.options,r=this.options.labels,a=hH(o.itemDistance,10),n=this.horiz,{width:l,height:h}=this.getSize(),d=hH(o.labelPadding,n?16:30);this.setLegendColor(),i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(i.group)),i.symbol.attr({x:0,y:(t.baseline||0)-11,width:l,height:h}),i.labelWidth=l+s+(n?a:hH(r.x,r.distance)+(this.maxLabelLength||0)),i.labelHeight=h+s+(n?d:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,i,s,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(i=(o=t[r]).colorKey=hH(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),s=o[i+"Min"]&&o[i+"Max"],[i,"value","y"]))if((e=o.getColumn(a)).length)break;if(s)o.minColorValue=o[i+"Min"],o.maxColorValue=o[i+"Max"];else{let t=hN.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}hR(o.minColorValue)&&hR(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),s||hN.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let i;let s=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,a=this.pos,n=this.len;e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))a+n&&(i=a+n+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&s.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(s.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,s=this.top;return hG(i)?this.horiz?[["M",i-4,s-6],["L",i+4,s-6],["L",i,s],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,i=e.chart,s=e.legendItem&&e.legendItem.labels||[],o=i.options.legend,r=hH(o.valueDecimals,-1),a=hH(o.valueSuffix,""),n=t=>e.series.reduce((e,i)=>(e.push(...i.points.filter(e=>e.dataClass===t)),e),[]);return s.length||e.dataClasses.forEach((o,l)=>{let h=o.from,d=o.to,{numberFormatter:c}=i,p=!0;t="",void 0===h?t="< ":void 0===d&&(t="> "),void 0!==h&&(t+=c(h,r)+a),void 0!==h&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=c(d,r)+a),s.push(hW({chart:i,name:t,options:{},drawLegendSymbol:rh.rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of n(l))e.setState(t)},setVisible:function(){this.visible=p=e.visible=!p;let t=[];for(let e of n(l))e.setVisible(p),e.hiddenInDataClass=!p,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,p),t.forEach(t=>{hj(t,"afterDataClassLegendClick")})}},o))}),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:hH(hR(s)?hY(s,t.chartWidth):void 0,o?.symbolWidth,e?hV.defaultLegendLength:12),height:hH(hR(i)?hY(i,t.chartHeight):void 0,o?.symbolHeight,e?12:hV.defaultLegendLength)}}}hV.defaultLegendLength=200,hV.keepProps=["legendItem"],hW(hV.prototype,hB),Array.prototype.push.apply(sG.keepProps,hV.keepProps),A.ColorAxis=A.ColorAxis||hV,A.ColorAxis.compose(A.Chart,A.Fx,A.Legend,A.Series);let hU={lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}},{defined:hZ,extend:h$,pick:h_,wrap:hq}=J;!function(t){let e,i=0;function s(t){let e=this.chart;t=this.normalize(t),e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(t.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,void 0,void 0,t.chartX,t.chartY)}function o(t){let s=this.chart,o=hZ((t=this.normalize(t)).wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&clearTimeout(e),e=setTimeout(()=>{i=0},50)),i<10&&s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&s.mapView&&s.mapView.zoomBy(-((s.options.mapNavigation.mouseWheelSensitivity-1)*o),void 0,[t.chartX,t.chartY],!(1>Math.abs(o))&&void 0)}function r(t,e,i){let s=this.chart;if(e=t.call(this,e,i),s&&s.mapView){let t=s.mapView.pixelsToLonLat({x:e.chartX-s.plotLeft,y:e.chartY-s.plotTop});t&&h$(e,t)}return e}function a(t){let e=this.chart.options.mapNavigation;e&&h_(e.enableTouchZoom,e.enabled)&&(this.chart.zooming.pinchType="xy"),t.apply(this,[].slice.call(arguments,1))}t.compose=function(t){let e=t.prototype;e.onContainerDblClick||(h$(e,{onContainerDblClick:s,onContainerMouseWheel:o}),hq(e,"normalize",r),hq(e,"zoomOption",a))}}(w||(w={}));let hK=w;function hJ(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxY=e-t,r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}function hQ(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}let h0={compose:function(t){(i=t.prototype.symbols).bottombutton=hJ,i.topbutton=hQ}},{setOptions:h1}=tM,{composed:h2}=A,{addEvent:h3,extend:h6,merge:h5,objectEach:h9,pick:h8,pushUnique:h4}=J;function h7(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}class dt{static compose(t,e,i){hK.compose(e),h0.compose(i),h4(h2,"Map.Navigation")&&(h3(t,"beforeRender",function(){this.mapNavigation=new dt(this),this.mapNavigation.update()}),h1(hU))}constructor(t){this.chart=t,this.navButtons=[]}update(t){let e=this,i=e.chart,s=e.navButtons,o=function(t){this.handler.call(i,t),h7(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=h5(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();if(!i.renderer.forExport&&h8(r.enableButtons,r.enabled)){e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),h9(r.buttons,(t,a)=>{let n={padding:(t=h5(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&(h6(n,t.theme),n.style=h5(t.theme.style,t.style));let{text:l,width:h=0,height:d=0,padding:c=0}=t,p=i.renderer.button("+"!==l&&"-"!==l&&l||"",0,0,o,n,void 0,void 0,void 0,"zoomIn"===a?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+({zoomIn:"zoom-in",zoomOut:"zoom-out"})[a]).attr({width:h,height:d,title:i.options.lang[a],zIndex:5}).add(e.navButtonsGroup);if("+"===l||"-"===l){let e=h+1,s=[["M",c+3,c+d/2],["L",c+e-3,c+d/2]];"+"===l&&s.push(["M",c+e/2,c+3],["L",c+e/2,c+d-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(p)}if(p.handler=t.onclick,h3(p.element,"dblclick",h7),s.push(p),h6(t,{width:p.width,height:2*(p.height||0)}),i.hasLoaded)p.align(t,!1,t.alignTo);else{let e=h3(i,"load",()=>{p.element&&p.align(t,!1,t.alignTo),e()})}});let t=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y);i.hasLoaded||h3(i,"render",function(){let s=i.exportingGroup?.getBBox();if(s){let i=e.navButtonsGroup.getBBox();if(t(s,i)){let t=-i.y-i.height+s.y-5,o=s.y+s.height-i.y+5,a=r.buttonOptions&&r.buttonOptions.verticalAlign;e.navButtonsGroup.attr({translateY:"bottom"===a?t:o})}}})}this.updateEvents(r)}updateEvents(t){let e=this.chart;h8(t.enableDoubleClickZoom,t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||h3(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),h8(t.enableMouseWheelZoom,t.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||h3(e.container,"wheel",function(t){if(!e.pointer.inClass(t.target,"highcharts-no-mousewheel")){let i=e.mapView?.zoom;e.pointer.onContainerMouseWheel(t),i!==e.mapView?.zoom&&h7(t)}return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}let{column:{prototype:de}}=rg.seriesTypes,{addEvent:di,defined:ds}=J;!function(t){function e(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new eZ(i,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${i.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}t.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},t.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return ds(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:de.pointAttribs},t.compose=function(t){return di(t.prototype.pointClass,"afterSetState",e),t}}(k||(k={}));let dr=k,{getOptions:da}=tM,{isNumber:dn,merge:dl,pick:dh}=J;class dd extends aZ{init(t,e){let i=da().credits,s=dl({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:dh(i.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:dh(i.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&(dn(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,dn(e)&&dn(i)?this.mapView.projection.inverse([e,i]):void 0,dn(s)&&dn(o)?[s,o]:void 0))}update(t){t.chart&&"map"in t.chart&&this.mapView?.recommendMapView(this,[t.chart.map,...(this.options.series||[]).map(t=>t.mapData)],!0),super.update.apply(this,arguments)}}!function(t){t.maps={},t.mapChart=function(e,i,s){return new t(e,i,s)},t.splitPath=function(t){let e;return e="string"==typeof t?(t=t.replace(/([A-Z])/gi," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(t=>/[A-Z]/i.test(t)?t:parseFloat(t)):t,iX.prototype.pathToSegments(e)}}(dd||(dd={}));let dc=dd,dp={boundsFromPath:function(t){let e=-Number.MAX_VALUE,i=Number.MAX_VALUE,s=-Number.MAX_VALUE,o=Number.MAX_VALUE,r;if(t.forEach(t=>{let a=t[t.length-2],n=t[t.length-1];"number"==typeof a&&"number"==typeof n&&(i=Math.min(i,a),e=Math.max(e,a),o=Math.min(o,n),s=Math.max(s,n),r=!0)}),r)return{x1:i,y1:o,x2:e,y2:s}}},{boundsFromPath:du}=dp,dg=rg.seriesTypes.scatter.prototype.pointClass,{extend:dm,isNumber:df,pick:dx}=J;class dy extends dg{static getProjectedPath(t,e){return t.projectedPath||(e&&t.geometry?(e.hasCoordinates=!0,t.projectedPath=e.path(t.geometry)):t.projectedPath=t.path),t.projectedPath||[]}applyOptions(t,e){let i=this.series,s=super.applyOptions(t,e),o=i.joinBy;if(i.mapData&&i.mapMap){let t=o[1],e=super.getNestedProperty(t),r=void 0!==e&&i.mapMap[e];r?dm(s,{...r,name:s.name??r.name}):-1!==i.pointArrayMap.indexOf("value")&&(s.value=s.value||null)}return s}getProjectedBounds(t){let e=du(dy.getProjectedPath(this,t)),i=this.properties,s=this.series.chart.mapView;if(e){let o=i&&i["hc-middle-lon"],r=i&&i["hc-middle-lat"];if(s&&df(o)&&df(r)){let i=t.forward([o,r]);e.midX=i[0],e.midY=i[1]}else{let t=i&&i["hc-middle-x"],s=i&&i["hc-middle-y"];e.midX=e.x1+(e.x2-e.x1)*dx(this.middleX,df(t)?t:.5);let o=dx(this.middleY,df(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){J.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,t):this.series.onMouseOut()}setVisible(t){this.visible=this.options.visible=!!t,this.dataLabel&&this.dataLabel[t?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(t){let e=this.series.chart,i=e.mapView,s=this.bounds;if(i&&s){let o=df(this.insetIndex)&&i.insets[this.insetIndex];if(o){let t=o.projectedUnitsToPixels({x:s.x1,y:s.y1}),e=o.projectedUnitsToPixels({x:s.x2,y:s.y2}),r=i.pixelsToProjectedUnits({x:t.x,y:t.y}),a=i.pixelsToProjectedUnits({x:e.x,y:e.y});s={x1:r.x,y1:r.y,x2:a.x,y2:a.y}}i.fitToBounds(s,void 0,!1),this.series.isDirty=!0,e.redraw(t)}}}dm(dy.prototype,{dataLabelOnNull:dr.pointMembers.dataLabelOnNull,moveToTopOnHover:dr.pointMembers.moveToTopOnHover,isValid:dr.pointMembers.isValid});let{isNumber:db}=J,dv={center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}},{win:dM}=A,{format:dw}=en,{error:dk,extend:dS,merge:dT,wrap:dC}=J;!function(t){function e(t){return this.mapView&&this.mapView.lonLatToProjectedUnits(t)}function i(t){return this.mapView&&this.mapView.projectedUnitsToLonLat(t)}function s(t,e){let i=this.options.chart.proj4||dM.proj4;if(!i){dk(21,!1,this);return}let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:d=0}=e,c=i(e.crs,[t.lon,t.lat]),p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=e.rotation?[c[0]*p+c[1]*u,-c[0]*u+c[1]*p]:c;return{x:((g[0]-n)*a+l)*r+s,y:-(((h-g[1])*a+d)*r-o)}}function o(t,e){let i=this.options.chart.proj4||dM.proj4;if(!i){dk(21,!1,this);return}if(null===t.y)return;let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:d=0}=e,c={x:((t.x-s)/r-l)/a+n,y:((t.y-o)/r+d)/a+h},p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=i(e.crs,"WGS84",e.rotation?{x:c.x*p+-(c.y*u),y:c.x*u+c.y*p}:c);return{lat:g.y,lon:g.x}}function r(t,e){e||(e=Object.keys(t.objects)[0]);let i=t.objects[e];if(i["hc-decoded-geojson"]&&i["hc-decoded-geojson"].title===t.title)return i["hc-decoded-geojson"];let s=t.arcs;if(t.transform){let e,i,o;let r=t.arcs,{scale:a,translate:n}=t.transform;s=[];for(let t=0,l=r.length;t"number"==typeof t[0]?t.reduce((t,e,i)=>{let o=e<0?s[~e]:s[e];return e<0?(o=o.slice(0,0===i?o.length:o.length-1)).reverse():i&&(o=o.slice(1)),t.concat(o)},[]):t.map(o),r=i.geometries,a=[];for(let t=0,e=r.length;t(e[1]-t[1])*(i[0]-t[0])}function dO(t,e,i,s){let o=[t[0]-e[0],t[1]-e[1]],r=[i[0]-s[0],i[1]-s[1]],a=t[0]*e[1]-t[1]*e[0],n=i[0]*s[1]-i[1]*s[0],l=1/(o[0]*r[1]-o[1]*r[0]),h=[(a*r[0]-n*o[0])*l,(a*r[1]-n*o[1])*l];return h.isIntersection=!0,h}let dE=Math.sign||(t=>0===t?0:t>0?1:-1),dI=Math.PI/180,dD=Math.PI/2,dB=t=>Math.tan((dD+t)/2),dz=class{constructor(t){let e=(t.parallels||[]).map(t=>t*dI),i=e[0]||0,s=e[1]??i,o=Math.cos(i);"object"==typeof t.projectedBounds&&(this.projectedBounds=t.projectedBounds);let r=i===s?Math.sin(i):Math.log(o/Math.cos(s))/Math.log(dB(s)/dB(i));1e-10>Math.abs(r)&&(r=1e-10*(dE(r)||1)),this.n=r,this.c=o*Math.pow(dB(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*dI,r=t[1]*dI;e>0?r<-dD+1e-6&&(r=-dD+1e-6):r>dD-1e-6&&(r=dD-1e-6);let a=e/Math.pow(dB(r),i),n=a*Math.sin(i*o)*63.78137,l=(e-a*Math.cos(i*o))*63.78137,h=[n,l];return s&&(ns.x2||ls.y2)&&(h.outside=!0),h}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=dE(i)*Math.sqrt(s*s+o*o),a=Math.atan2(s,Math.abs(o))*dE(o);return o*i<0&&(a-=Math.PI*dE(s)*dE(o)),[a/i/dI,(2*Math.atan(Math.pow(e/r,1/i))-dD)/dI]}},dN=Math.sqrt(3)/2,dR=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(t){let e=Math.PI/180,i=Math.asin(dN*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(dN*(1.340264+-.24331799999999998*s+o*(.0062510000000000005+.034164*s))),74.03120656864502*i*(1.340264+-.081106*s+o*(893e-6+.003796*s))]}inverse(t){let e=t[0]/74.03120656864502,i=t[1]/74.03120656864502,s=180/Math.PI,o=i,r,a,n,l;for(let t=0;t<12&&(a=(r=o*o)*r*r,n=o*(1.340264+-.081106*r+a*(893e-6+.003796*r))-i,o-=l=n/(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r)),!(1e-9>Math.abs(l)));++t);a=(r=o*o)*r*r;let h=s*dN*e*(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r))/Math.cos(o),d=s*Math.asin(Math.sin(o)/dN);return Math.abs(h)>180?[NaN,NaN]:[h,d]}},dW=Math.PI/4,dj=Math.PI/180,dX=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*dj*63.78137,79.7267125*Math.log(Math.tan(dW+.4*t[1]*dj))]}inverse(t){return[t[0]/63.78137/dj,2.5*(Math.atan(Math.exp(.8*(t[1]/63.78137)))-dW)/dj]}},dG=Math.PI/180,dF=class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(t){let e=t[0],i=t[1]*dG,s=[Math.cos(i)*Math.sin(e*dG)*63.78460826781007,63.78460826781007*Math.sin(i)];return(e<-90||e>90)&&(s.outside=!0),s}inverse(t){let e=t[0]/63.78460826781007,i=t[1]/63.78460826781007,s=Math.sqrt(e*e+i*i),o=Math.asin(s),r=Math.sin(o);return[Math.atan2(e*r,s*Math.cos(o))/dG,Math.asin(s&&i*r/s)/dG]}},dH=Math.PI/180,dY=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(t){let e=Math.sin(t[1]*dH),i=[63.78137*t[0]*dH,63.78137*Math.log((1+e)/(1-e))/2];return Math.abs(t[1])>this.maxLatitude&&(i.outside=!0),i}inverse(t){return[t[0]/(63.78137*dH),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/dH]}},{clipLineString:dV,clipPolygon:dU}={clipLineString:function(t,e){let i=[],s=dP(t,e,!1);for(let t=1;t(t<-180&&(t+=360),t>180&&(t-=360),t),dK=t=>(1-Math.cos(t))/2,dJ=(t,e)=>{let i=Math.cos,s=t[1]*d_,o=t[0]*d_,r=e[1]*d_,a=e[0]*d_;return dK(r-s)+i(s)*i(r)*dK(a-o)};class dQ{static add(t,e){dQ.registry[t]=e}static distance(t,e){let{atan2:i,sqrt:s}=Math,o=dJ(t,e);return 6371e3*(2*i(s(o),s(1-o)))}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:a,sqrt:n}=Math,l=dQ.distance,h=t[1]*d_,d=t[0]*d_,c=e[1]*d_,p=e[0]*d_,u=r(h)*r(d),g=r(c)*r(p),m=r(h)*a(d),f=r(c)*a(p),x=a(h),y=a(c),b=l(t,e),v=b/6371e3,M=a(v),w=Math.round(b/s),k=[];if(i&&k.push(t),w>1){let t=1/w;for(let e=t;e<.999;e+=t){let t=a((1-e)*v)/M,i=a(e*v)/M,s=t*u+i*g,r=t*m+i*f,l=o(t*x+i*y,n(s*s+r*r)),h=o(r,s);k.push([h/d_,l/d_])}}return i&&k.push(e),k}static insertGeodesics(t){let e=t.length-1;for(;e--;)if(Math.max(Math.abs(t[e][0]-t[e+1][0]),Math.abs(t[e][1]-t[e+1][1]))>10){let i=dQ.geodesic(t[e],t[e+1]);i.length&&t.splice(e+1,0,...i)}}static toString(t){let{name:e,rotation:i}=t||{};return[e,i&&i.join(",")].join(";")}constructor(t={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=t;let{name:e,projectedBounds:i,rotation:s}=t;this.rotator=s?this.getRotator(s):void 0;let o=e?dQ.registry[e]:void 0;o&&(this.def=new o(t));let{def:r,rotator:a}=this;r&&(this.maxLatitude=r.maxLatitude||90,this.hasGeoProjection=!0),a&&r?(this.forward=t=>r.forward(a.forward(t)),this.inverse=t=>a.inverse(r.inverse(t))):r?(this.forward=t=>r.forward(t),this.inverse=t=>r.inverse(t)):a&&(this.forward=a.forward,this.inverse=a.inverse),this.bounds="world"===i?r&&r.bounds:i}lineIntersectsBounds(t){let{x1:e,x2:i,y1:s,y2:o}=this.bounds||{},r=(t,e,i)=>{let[s,o]=t,r=e?0:1;if("number"==typeof i&&s[e]>=i!=o[e]>=i){let t=(i-s[e])/(o[e]-s[e]),a=s[r]+t*(o[r]-s[r]);return e?[a,i]:[i,a]}},a,n=t[0];return(a=r(t,0,e))?(n=a,t[1]=a):(a=r(t,0,i))&&(n=a,t[1]=a),(a=r(t,1,s))?n=a:(a=r(t,1,o))&&(n=a),n}getRotator(t){let e=t[0]*d_,i=(t[1]||0)*d_,s=(t[2]||0)*d_,o=Math.cos(i),r=Math.sin(i),a=Math.cos(s),n=Math.sin(s);if(0!==e||0!==i||0!==s)return{forward:t=>{let i=t[0]*d_+e,s=t[1]*d_,l=Math.cos(s),h=Math.cos(i)*l,d=Math.sin(i)*l,c=Math.sin(s),p=c*o+h*r;return[Math.atan2(d*a-p*n,h*o-c*r)/d_,Math.asin(p*a+d*n)/d_]},inverse:t=>{let i=t[0]*d_,s=t[1]*d_,l=Math.cos(s),h=Math.cos(i)*l,d=Math.sin(i)*l,c=Math.sin(s),p=c*a-d*n;return[(Math.atan2(d*a+c*n,h*o+p*r)-e)/d_,Math.asin(p*o-h*r)/d_]}}}forward(t){return t}inverse(t){return t}cutOnAntimeridian(t,e){let i;let s=[],o=[t];for(let i=0,o=t.length;i90)&&(n<-90||n>90)&&a>0!=n>0){let t=dZ((180-(a+360)%360)/((n+360)%360-(a+360)%360),0,1),e=r[1]+t*(o[1]-r[1]);s.push({i,lat:e,direction:a<0?1:-1,previousLonLat:r,lonLat:o})}}if(s.length){if(e){s.length%2==1&&(i=s.slice().sort((t,e)=>Math.abs(e.lat)-Math.abs(t.lat))[0],d$(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=dq(180+1e-6*s[e].direction),a=dq(180-1e-6*s[e].direction),n=t.splice(i,s[e+1].i-i,...dQ.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));n.push(...dQ.geodesic([a,s[e+1].lat],[a,s[e].lat],!0)),o.push(n),e-=2}if(i)for(let t=0;t-1){let t=(s<0?-1:1)*this.maxLatitude,o=dq(180+1e-6*e),n=dq(180-1e-6*e),l=dQ.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)l.push([i,t]);l.push(...dQ.geodesic([n,t],[n,i.lat],!0)),r.splice(a,0,...l);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[dq(180+1e-6*s[e].direction),s[e].lat]);r.unshift([dq(180-1e-6*s[e].direction),s[e].lat]),o.push(r)}}}return o}path(t){let e;let{bounds:i,def:s,rotator:o}=this,r=[],a="Polygon"===t.type||"MultiPolygon"===t.type,n=this.hasGeoProjection,l=!s||!1!==s.antimeridianCutting,h=l?o:void 0,d=l&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let c=t=>{let s=t.map(t=>{if(l){h&&(t=h.forward(t));let e=t[0];1e-6>Math.abs(e-180)&&(e=e<180?179.999999:180.000001),t=[e,t[1]]}return t}),o=[s];n&&(dQ.insertGeodesics(s),l&&(o=this.cutOnAntimeridian(s,a))),o.forEach(t=>{let s,o;if(t.length<2)return;let h=!1,c=!1,p=t=>{h?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),h=!0)},u=!1,g=!1,m=t.map(t=>{let e=d.forward(t);return e.outside?u=!0:g=!0,e[1]===1/0?e[1]=1e10:e[1]===-1/0&&(e[1]=-1e10),e});if(l){if(a&&m.push(m[0]),u){if(!g)return;if(e){if(a)m=dU(m,e);else if(i){dV(m,e).forEach(t=>{h=!1,t.forEach(p)});return}}}m.forEach(p)}else for(let e=0;ep(d.forward(t))):h=!1),p(r),o=i,c=!1)}})};return"LineString"===t.type?c(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach(t=>c(t)):"Polygon"===t.type?(t.coordinates.forEach(t=>c(t)),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach(t=>{t.forEach(t=>c(t))}),r.length&&r.push(["Z"])),r}}dQ.registry={EqualEarth:dR,LambertConformalConic:dz,Miller:dX,Orthographic:dF,WebMercator:dY};let{composed:d0}=A,{pointInPolygon:d1}=l3,{topo2geo:d2}=dA,{boundsFromPath:d3}=dp,{addEvent:d6,clamp:d5,crisp:d9,fireEvent:d8,isArray:d4,isNumber:d7,isObject:ct,isString:ce,merge:ci,pick:cs,pushUnique:co,relativeLength:cr}=J,ca={};function cn(t,e){let{width:i,height:s}=e;return Math.log(400.979322/Math.max((t.x2-t.x1)/(i/256),(t.y2-t.y1)/(s/256)))/Math.log(2)}function cl(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class ch{static compose(t){co(d0,"MapView")&&(ca=t.maps,d6(t,"afterInit",function(){this.mapView=new ch(this,this.options.mapView)},{order:0}),d6(t,"addSeriesAsDrilldown",cl),d6(t,"afterDrillUp",cl))}static compositeBounds(t){if(t.length)return t.slice(1).reduce((t,e)=>(t.x1=Math.min(t.x1,e.x1),t.y1=Math.min(t.y1,e.y1),t.x2=Math.max(t.x2,e.x2),t.y2=Math.max(t.y2,e.y2),t),ci(t[0]))}static mergeInsets(t,e){let i=t=>{let e={};return t.forEach((t,i)=>{e[t&&t.id||`i${i}`]=t}),e},s=ci(i(t),i(e));return Object.keys(s).map(t=>s[t])}constructor(t,e){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof cd||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map(t=>t.mapData)]),this.userOptions=e||{};let i=ci(dv,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=ch.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new dQ(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push(d6(t,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&d7(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&ci(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach(e=>{let i=new cd(this,ci(t.insetOptions,e));this.insets.push(i)})}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=cs(e,t?0:this.options.padding),a=this.getField(!1),n=d4(r)?r:[r,r,r,r];this.padding=[cr(n[0],a.height),cr(n[1],a.width),cr(n[2],a.height),cr(n[3],a.width)],this.playingField=this.getField();let l=cn(o,this.playingField);t||(this.minZoom=l);let h=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(h,l,i,s)}}getField(t=!0){let e=t?this.padding:[0,0,0,0];return{x:e[3],y:e[0],width:this.chart.plotWidth-e[1]-e[3],height:this.chart.plotHeight-e[0]-e[2]}}getGeoMap(t){if(ce(t))return ca[t]&&"Topology"===ca[t].type?d2(ca[t]):ca[t];if(ct(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return d2(t)}}getMapBBox(){let t=this.getProjectedBounds(),e=this.getScale();if(t){let i=this.padding,s=this.projectedUnitsToPixels({x:t.x1,y:t.y2});return{width:(t.x2-t.x1)*e+i[1]+i[3],height:(t.y2-t.y1)*e+i[0]+i[2],x:s.x-i[3],y:s.y-i[0]}}}getProjectedBounds(){let t=this.projection,e=this.chart.series.reduce((t,e)=>{let i=e.getProjectedBounds&&e.getProjectedBounds();return i&&!1!==e.options.affectsMapView&&t.push(i),t},[]),i=this.options.fitToGeometry;if(i){if(!this.fitToGeometryCache){if("MultiPoint"===i.type){let e=i.coordinates.map(e=>t.forward(e)),s=e.map(t=>t[0]),o=e.map(t=>t[1]);this.fitToGeometryCache={x1:Math.min.apply(0,s),x2:Math.max.apply(0,s),y1:Math.min.apply(0,o),y2:Math.max.apply(0,o)}}else this.fitToGeometryCache=d3(t.path(i))}return this.fitToGeometryCache}return this.projection.bounds||ch.compositeBounds(e)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:t,y:e,width:i,height:s}=this.playingField,o=this.projection.forward(this.center),r=this.projection.hasCoordinates?-1:1,a=this.getScale(),n=a*r,l=t+i/2-o[0]*a,h=e+s/2-o[1]*n;return{scaleX:a,scaleY:n,translateX:l,translateY:h}}lonLatToPixels(t){let e=this.lonLatToProjectedUnits(t);if(e)return this.projectedUnitsToPixels(e)}lonLatToProjectedUnits(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone){let o=e.transformFromLatLon(t,i[s]);if(o&&d1(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&d1({x:t.lon,y:t.lat},e.options.geoBounds.coordinates[0])){let i=e.projection.forward([t.lon,t.lat]),s=e.projectedUnitsToPixels({x:i[0],y:i[1]});return this.pixelsToProjectedUnits(s)}let s=this.projection.forward([t.lon,t.lat]);if(!s.outside)return{x:s[0],y:s[1]}}projectedUnitsToLonLat(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone&&d1(t,i[s].hitZone.coordinates[0]))return e.transformToLatLon(t,i[s]);return e.transformToLatLon(t,i.default)}let s=this.projectedUnitsToPixels(t);for(let t of this.insets)if(t.hitZone&&d1(s,t.hitZone.coordinates[0])){let e=t.pixelsToProjectedUnits(s),i=t.projection.inverse([e.x,e.y]);return{lon:i[0],lat:i[1]}}let o=this.projection.inverse([t.x,t.y]);return{lon:o[0],lat:o[1]}}recommendMapView(t,e,i=!1){this.recommendedMapView={};let s=e.map(t=>this.getGeoMap(t)),o=[];s.forEach(t=>{if(t&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=t["hc-recommended-mapview"]||{}),t.bbox)){let[e,i,s,r]=t.bbox;o.push({x1:e,y1:i,x2:s,y2:r})}});let r=o.length&&ch.compositeBounds(o);d8(this,"onRecommendMapView",{geoBounds:r,chart:t},function(){if(r&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:t,y1:e,x2:i,y2:s}=r;this.recommendedMapView.projection=i-t>180&&s-e>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[e,s],rotation:[-(t+i)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=s[0],i&&t.hasRendered&&!t.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(t){this.chart.series.forEach(t=>{t.useMapGeometry&&(t.isDirty=!0)}),this.chart.redraw(t)}setView(t,e,i=!0,s){t&&(this.center=t),"number"==typeof e&&("number"==typeof this.minZoom&&(e=Math.max(e,this.minZoom)),"number"==typeof this.options.maxZoom&&(e=Math.min(e,this.options.maxZoom)),d7(e)&&(this.zoom=e));let o=this.getProjectedBounds();if(o){let t=this.projection.forward(this.center),{x:e,y:i,width:s,height:r}=this.playingField,a=this.getScale(),n=this.projectedUnitsToPixels({x:o.x1,y:o.y1}),l=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),h=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some(t=>t.isDrilling)){let o=n.x,d=l.y,c=l.x,p=n.y;c-oe+s&&o>e&&(t[0]+=Math.min(c-s-e,o-e)/a),p-di+r&&d>i&&(t[1]-=Math.min(p-r-i,d-i)/a),this.center=this.projection.inverse(t)}this.insets.forEach(t=>{t.options.field&&(t.hitZone=t.getHitZone(),t.playingField=t.getField())}),this.render()}d8(this,"afterSetView"),i&&this.redraw(s)}projectedUnitsToPixels(t){let e=this.getScale(),i=this.projection.forward(this.center),s=this.playingField,o=s.x+s.width/2,r=s.y+s.height/2;return{x:o-e*(i[0]-t.x),y:r+e*(i[1]-t.y)}}pixelsToLonLat(t){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(t))}pixelsToProjectedUnits(t){let{x:e,y:i}=t,s=this.getScale(),o=this.projection.forward(this.center),r=this.playingField,a=r.x+r.width/2,n=r.y+r.height/2;return{x:o[0]+(e-a)/s,y:o[1]-(i-n)/s}}setUpEvents(){let t,e,i;let{chart:s}=this,o=o=>{let{lastTouches:r,pinchDown:a}=s.pointer,n=this.projection,l=o.touches,{mouseDownX:h,mouseDownY:d}=s,c=0;if(a?.length===1?(h=a[0].chartX,d=a[0].chartY):a?.length===2&&(h=(a[0].chartX+a[1].chartX)/2,d=(a[0].chartY+a[1].chartY)/2),l?.length===2&&r&&(c=Math.log(Math.sqrt(Math.pow(r[0].chartX-r[1].chartX,2)+Math.pow(r[0].chartY-r[1].chartY,2))/Math.sqrt(Math.pow(l[0].chartX-l[1].chartX,2)+Math.pow(l[0].chartY-l[1].chartY,2)))/Math.log(.5)),d7(h)&&d7(d)){let r=`${h},${d}`,{chartX:a,chartY:p}=o.originalEvent;l?.length===2&&(a=(l[0].chartX+l[1].chartX)/2,p=(l[0].chartY+l[1].chartY)/2),r!==e&&(e=r,t=this.projection.forward(this.center),i=(this.projection.options.rotation||[0,0]).slice());let u=n.def&&n.def.bounds,g=u&&cn(u,this.playingField)||-1/0;if("Orthographic"===n.options.name&&2>(l?.length||0)&&(this.minZoom||1/0)<1.3*g){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(h-a)*t-i[0],o=d5(-i[1]-(d-p)*t,-80,80),r=this.zoom;this.update({projection:{rotation:[-e,-o]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=r,s.redraw(!1)}}else if(d7(a)&&d7(p)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(h-a)/e,t[1]-(d-p)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(c,s,void 0,!1)}o.preventDefault()}};d6(s,"pan",o),d6(s,"touchpan",o),d6(s,"selection",t=>{if(t.resetSelection)this.zoomBy();else{let e=t.x-s.plotLeft,i=t.y-s.plotTop,{y:o,x:r}=this.pixelsToProjectedUnits({x:e,y:i}),{y:a,x:n}=this.pixelsToProjectedUnits({x:e+t.width,y:i+t.height});this.fitToBounds({x1:r,y1:o,x2:n,y2:a},void 0,!0,!t.originalEvent.touches&&void 0),/^touch/.test(t.originalEvent.type)||s.showResetZoom(),t.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(t,e=!0,i){let s=t.projection,o=s&&dQ.toString(s)!==dQ.toString(this.options.projection),r=!1;ci(!0,this.userOptions,t),ci(!0,this.options,t),"insets"in t&&(this.insets.forEach(t=>t.destroy()),this.insets.length=0,r=!0),(o||"fitToGeometry"in t)&&delete this.fitToGeometryCache,(o||r)&&(this.chart.series.forEach(t=>{let e=t.transformGroups;if(t.clearBounds&&t.clearBounds(),t.isDirty=!0,t.isDirtyData=!0,r&&e)for(;e.length>1;){let t=e.pop();t&&t.destroy()}}),o&&(this.projection=new dQ(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!d7(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||d7(t.zoom)?this.setView(this.options.center,t.zoom,!1):"fitToGeometry"in t&&this.fitToBounds(void 0,void 0,!1),e&&this.chart.redraw(i)}zoomBy(t,e,i,s){let o=this.chart,r=this.projection.forward(this.center);if("number"==typeof t){let a,n,l;let h=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),a=t-o.plotLeft-o.plotWidth/2,h=e-o.plotTop-o.plotHeight/2;n=r[0]+a/s,l=r[1]+h/s}if("number"==typeof n&&"number"==typeof l){let t=1-Math.pow(2,this.zoom)/Math.pow(2,h),e=r[0]-n,i=r[1]-l;r[0]-=e*t,r[1]+=i*t,a=this.projection.inverse(r)}this.setView(e||a,h,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class cd extends ch{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=ci({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){let e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=d3(e),this.geoBoundsProjectedPolygon=e.map(t=>[t[1]||0,t[2]||0])}}getField(t=!0){let e=this.hitZone;if(e){let i=t?this.padding:[0,0,0,0],s=e.coordinates[0],o=s.map(t=>t[0]),r=s.map(t=>t[1]),a=Math.min.apply(0,o)+i[3],n=Math.max.apply(0,o)-i[1],l=Math.min.apply(0,r)+i[0],h=Math.max.apply(0,r)-i[2];if(d7(a)&&d7(l))return{x:a,y:l,width:n-a,height:h-l}}return super.getField.call(this,t)}getHitZone(){let{chart:t,mapView:e,options:i}=this,{coordinates:s}=i.field||{};if(s){let o=s[0];if("percent"===i.units){let s="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||ci(t.plotBox,{x:0,y:0});o=o.map(t=>[cr(`${t[0]}%`,s.width,s.x),cr(`${t[1]}%`,s.height,s.y)])}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return ch.compositeBounds(this.allBounds)}isInside(t){let{geoBoundsProjectedBox:e,geoBoundsProjectedPolygon:i}=this;return!!(e&&t.x>=e.x1&&t.x<=e.x2&&t.y>=e.y1&&t.y<=e.y2&&i&&d1(t,i))}render(){let{chart:t,mapView:e,options:i}=this,s=i.borderPath||i.field;if(s&&e.group){let o=!0;this.border||(this.border=t.renderer.path().addClass("highcharts-mapview-inset-border").add(e.group),o=!1),t.styledMode||this.border.attr({stroke:i.borderColor,"stroke-width":i.borderWidth});let r=this.border.strokeWidth(),a="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||e.playingField,n=(s.coordinates||[]).reduce((e,s)=>s.reduce((e,s,o)=>{let[n,l]=s;return"percent"===i.units&&(n=t.plotLeft+cr(`${n}%`,a.width,a.x),l=t.plotTop+cr(`${l}%`,a.height,a.y)),n=d9(n,r),l=d9(l,r),e.push(0===o?["M",n,l]:["L",n,l]),e},e),[]);this.border[o?"animate":"attr"]({d:n})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(t=>t())}setUpEvents(){}}let{animObject:cc,stop:cp}=tF,{noop:cu}=A,{splitPath:cg}=dc,{column:cm,scatter:cf}=rg.seriesTypes,{extend:cx,find:cy,fireEvent:cb,getNestedProperty:cv,isArray:cM,defined:cw,isNumber:ck,isObject:cS,merge:cT,objectEach:cC,pick:cA,splat:cP}=J;class cL extends cf{constructor(){super(...arguments),this.processedData=[]}animate(t){let{chart:e,group:i}=this,s=cc(this.options.animation);t?i.attr({translateX:e.plotLeft+e.plotWidth/2,translateY:e.plotTop+e.plotHeight/2,scaleX:.001,scaleY:.001}):i.animate({translateX:e.plotLeft,translateY:e.plotTop,scaleX:1,scaleY:1},s)}clearBounds(){this.points.forEach(t=>{delete t.bounds,delete t.insetIndex,delete t.projectedPath}),delete this.bounds}doFullTranslate(){return!!(this.isDirtyData||this.chart.isResizing||!this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let t=this,{chart:e,group:i,transformGroups:s=[]}=this,{mapView:o,renderer:r}=e;if(o){this.transformGroups=s,s[0]||(s[0]=r.g().add(i));for(let t=0,e=o.insets.length;t{let{graphic:e}=t;t.group=s["number"==typeof t.insetIndex?t.insetIndex+1:0],e&&e.parentGroup!==t.group&&e.add(t.group)}),cm.prototype.drawPoints.apply(this),this.points.forEach(i=>{let s=i.graphic;if(s){let o=s.animate,r="";i.name&&(r+="highcharts-name-"+i.name.replace(/ /g,"-").toLowerCase()),i.properties&&i.properties["hc-key"]&&(r+=" highcharts-key-"+i.properties["hc-key"].toString().toLowerCase()),r&&s.addClass(r),e.styledMode&&s.css(this.pointAttribs(i,i.selected&&"select"||void 0)),s.attr({visibility:!i.visible&&(i.visible||i.isNull)?"hidden":"inherit"}),s.animate=function(i,r,a){let n=ck(i["stroke-width"])&&!ck(s["stroke-width"]),l=ck(s["stroke-width"])&&!ck(i["stroke-width"]);if(n||l){let o=cA(t.getStrokeWidth(t.options),1)/(e.mapView&&e.mapView.getScale()||1);n&&(s["stroke-width"]=o),l&&(i["stroke-width"]=o)}return o.call(s,i,r,l?function(){s.element.removeAttribute("stroke-width"),delete s["stroke-width"],a&&a.apply(this,arguments)}:a)}}})),s.forEach((i,s)=>{let a=(0===s?o:o.insets[s-1]).getSVGTransform(),n=cA(this.getStrokeWidth(this.options),1),l=a.scaleX,h=a.scaleY>0?1:-1,d=e=>{(t.points||[]).forEach(t=>{let i;let s=t.graphic;s&&s["stroke-width"]&&(i=this.getStrokeWidth(t.options))&&s.attr({"stroke-width":i/e})})};if(r.globalAnimation&&e.hasRendered&&o.allowTransformAnimation){let t=Number(i.attr("translateX")),e=Number(i.attr("translateY")),s=Number(i.attr("scaleX")),o=(o,r)=>{let c=s+(l-s)*r.pos;i.attr({translateX:t+(a.translateX-t)*r.pos,translateY:e+(a.translateY-e)*r.pos,scaleX:c,scaleY:c*h,"stroke-width":n/c}),d(c)},c=cT(cc(r.globalAnimation)),p=c.step;c.step=function(){p&&p.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},c,(function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),cb(this,"mapZoomComplete")}).bind(this))}else cp(i),i.attr(cT(a,{"stroke-width":n/l})),d(l)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:t,projection:e}=this.chart.mapView,i=[];(this.points||[]).forEach(s=>{if(s.path||s.geometry){if("string"==typeof s.path?s.path=cg(s.path):cM(s.path)&&"M"===s.path[0]&&(s.path=this.chart.renderer.pathToSegments(s.path)),!s.bounds){let i=s.getProjectedBounds(e);if(i){s.labelrank=cA(s.labelrank,(i.x2-i.x1)*(i.y2-i.y1));let{midX:e,midY:o}=i;if(t&&ck(e)&&ck(o)){let r=cy(t,t=>t.isInside({x:e,y:o}));r&&(delete s.projectedPath,(i=s.getProjectedBounds(r.projection))&&r.allBounds.push(i),s.insetIndex=t.indexOf(r))}s.bounds=i}}s.bounds&&void 0===s.insetIndex&&i.push(s.bounds)}}),this.bounds=ch.compositeBounds(i)}return this.bounds}getStrokeWidth(t){let e=this.pointAttrToOptions;return t[e&&e["stroke-width"]||"borderWidth"]}hasData(){return!!this.dataTable.rowCount}pointAttribs(t,e){let{mapView:i,styledMode:s}=t.series.chart,o=s?this.colorAttribs(t):cm.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t.options);if(e){let i=cT(this.options.states&&this.options.states[e],t.options.states&&t.options.states[e]||{}),s=this.getStrokeWidth(i);cw(s)&&(r=s),o.stroke=i.borderColor??t.color}r&&i&&(r/=i.getScale());let a=this.getStrokeWidth(this.options);return o.dashstyle&&i&&ck(a)&&(r=a/i.getScale()),t.visible||(o.fill=this.options.nullColor),cw(r)?o["stroke-width"]=r:delete o["stroke-width"],o["stroke-linecap"]=o["stroke-linejoin"]=this.options.linecap,o}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(t,e=!0,i,s){delete this.bounds,super.setData(t,!1,void 0,s),this.processData(),this.generatePoints(),e&&this.chart.redraw(i)}dataColumnKeys(){return this.pointArrayMap}processData(){let t,e,i;let s=this.options,o=s.data,r=this.chart,a=r.options.chart,n=this.joinBy,l=s.keys||this.pointArrayMap,h=[],d={},c=this.chart.mapView,p=c&&(cS(s.mapData,!0)?c.getGeoMap(s.mapData):c.geoMap),u=r.mapTransforms=a.mapTransforms||p&&p["hc-transform"]||r.mapTransforms;u&&cC(u,t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))}),cM(s.mapData)?i=s.mapData:p&&"FeatureCollection"===p.type&&(this.mapTitle=p.title,i=A.geojson(p,this.type,this)),this.processedData=[];let g=this.processedData;if(o){let t;for(let e=0,i=o.length;el.length&&"string"==typeof t[0]&&(g[e]["hc-key"]=t[0],++i);for(let s=0;s0?dy.prototype.setNestedProperty(g[e],t[i],l[s]):g[e][l[s]]=t[i])}else g[e]=o[e];n&&"_i"===n[0]&&(g[e]._i=e)}}if(i){this.mapData=i,this.mapMap={};for(let s=0;s{let i=cv(t,e);d[i]&&h.push(d[i])})}if(s.allAreas){if(n[1]){let t=n[1];g.forEach(e=>{h.push(cv(t,e))})}let t="|"+h.map(function(t){return t&&t[n[0]]}).join("|")+"|";i.forEach(e=>{n[0]&&-1!==t.indexOf("|"+e[n[0]]+"|")||g.push(cT(e,{value:null}))})}}this.dataTable.rowCount=g.length}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=cP(i),this.joinBy[1]||(this.joinBy[1]=this.joinBy[0])),e}translate(){let t=this.doFullTranslate(),e=this.chart.mapView,i=e&&e.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!e||e.userOptions.center||ck(e.userOptions.zoom)||e.zoom!==e.minZoom?this.getProjectedBounds():e.fitToBounds(void 0,void 0,!1)),e){let s=e.getSVGTransform();this.points.forEach(o=>{let r=ck(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&ck(o.bounds.midX)&&ck(o.bounds.midY)&&(o.plotX=o.bounds.midX*r.scaleX+r.translateX,o.plotY=o.bounds.midY*r.scaleY+r.translateY),t&&(o.shapeType="path",o.shapeArgs={d:dy.getProjectedPath(o,i)}),o.hiddenInDataClass||(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))})}cb(this,"afterTranslate")}update(t){t.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((e,i)=>i===this._i?t.mapData:e.mapData)],!0),super.update.apply(this,arguments)}}cL.defaultOptions=cT(cf.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return db(e)?t(e,-1):this.point.name||""},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
"},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}),cx(cL.prototype,{type:"map",axisTypes:dr.seriesMembers.axisTypes,colorAttribs:dr.seriesMembers.colorAttribs,colorKey:dr.seriesMembers.colorKey,directTouch:!0,drawDataLabels:cu,drawGraph:cu,forceDL:!0,getCenter:lL.getCenter,getExtremesFromAll:!0,getSymbol:cu,isCartesian:!1,parallelArrays:dr.seriesMembers.parallelArrays,pointArrayMap:dr.seriesMembers.pointArrayMap,pointClass:dy,preserveAspectRatio:!0,searchPoint:cu,trackerGroups:dr.seriesMembers.trackerGroups,useMapGeometry:!0}),dr.compose(cL),rg.registerSeriesType("map",cL);let cO=cL,{extend:cE,merge:cI}=J;class cD extends cO{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}cD.defaultOptions=cI(cO.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),cE(cD.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),rg.registerSeriesType("mapline",cD);let{scatter:cB}=rg.seriesTypes,{isNumber:cz}=J;class cN extends cB.prototype.pointClass{isValid(){return!!(this.options.geometry||cz(this.x)&&cz(this.y)||cz(this.options.lon)&&cz(this.options.lat))}}let{noop:cR}=A,{map:cW,scatter:cj}=rg.seriesTypes,{extend:cX,fireEvent:cG,isNumber:cF,merge:cH}=J;class cY extends cj{constructor(){super(...arguments),this.clearBounds=cW.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(t){let e=this.chart.mapView;if(e){let{geometry:i,lon:s,lat:o}=t,r=i&&"Point"===i.type&&i.coordinates;if(cF(s)&&cF(o)&&(r=[s,o]),r)return e.lonLatToProjectedUnits({lon:r[0],lat:r[1]})}}translate(){let t=this.chart.mapView;if(this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),t){let e=t.getSVGTransform(),{hasCoordinates:i}=t.projection;this.points.forEach(s=>{let o,{x:r,y:a}=s,n=cF(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,l=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(l?(r=l.x,a=l.y):s.bounds&&(r=s.bounds.midX,a=s.bounds.midY,n&&cF(r)&&cF(a)&&(s.plotX=r*n.scaleX+n.translateX,s.plotY=a*n.scaleY+n.translateY,o=!0)),cF(r)&&cF(a)){if(!o){let e=t.projectedUnitsToPixels({x:r,y:a});s.plotX=e.x,s.plotY=i?e.y:this.chart.plotHeight-e.y}}else s.y=s.plotX=s.plotY=void 0;s.isInside=this.isPointInside(s),s.zone=this.zones.length?s.getZone():void 0})}cG(this,"afterTranslate")}}cY.defaultOptions=cH(cj.defaultOptions,{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}),iX.prototype.symbols.mapmarker=(t,e,i,s,o)=>{let r,a;let n=o&&"legend"===o.context;n?(r=t+i/2,a=e+s):o&&"number"==typeof o.anchorX&&"number"==typeof o.anchorY?(r=o.anchorX,a=o.anchorY):(r=t+i/2,a=e+s/2,e-=s);let l=n?s/3:s/2;return[["M",r,a],["C",r,a,r-l,e+1.5*l,r-l,e+l],["A",l,l,1,1,1,r+l,e+l],["C",r+l,e+1.5*l,r,a,r,a],["Z"]]},cX(cY.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:cN,searchPoint:cR,useMapGeometry:!0}),rg.registerSeriesType("mappoint",cY);let cV={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0},{parse:cU}=tC,{noop:cZ}=A,{arrayMax:c$,arrayMin:c_,isNumber:cq,merge:cK,pick:cJ,stableSort:cQ}=J,c0=class{constructor(t,e){this.setState=cZ,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e;let i=cJ(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,r=o.ranges,a=o.connectorDistance;if(!r||!r.length||!cq(r[0].value)){t.options.bubbleLegend.autoRanges=!0;return}cQ(r,function(t,e){return e.value-t.value}),this.ranges=r,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=a-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},r={zIndex:e.zIndex,"stroke-width":e.connectorWidth},a={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach(function(h,d){l||(o.stroke=cJ(h.borderColor,e.borderColor,i.color),o.fill=cJ(h.color,e.color,1!==n?cU(i.color).setOpacity(n).get("rgba"):i.color),r.stroke=cJ(h.connectorColor,e.connectorColor,i.color)),t[d].radius=this.getRangeRadius(h.value),t[d]=cK(t[d],{center:t[0].radius-t[d].radius+s}),l||cK(!0,t[d],{bubbleAttribs:cK(o),connectorAttribs:cK(r),labelAttribs:a})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,r=e.ranges[e.ranges.length-1].value,a=e.minSize,n=e.maxSize;return s.getRadius.call(this,r,o,a,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,r=this.chart,a=r.series[s.seriesIndex],n=r.renderer,l=this.symbols,h=l.labels,d=t.center,c=Math.abs(t.radius),p=s.connectorDistance||0,u=o.align,g=i.options.rtl,m=s.borderWidth,f=s.connectorWidth,x=e.radius||0,y=d-c-m/2+f/2,b=(y%1?1:.5)-(f%2?0:.5),v=n.styledMode,M=g||"left"===u?-p:p;"center"===u&&(M=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(x,d+b,c).attr(v?{}:t.bubbleAttribs).addClass((v?"highcharts-color-"+a.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",x,y],["L",x+M,y]],s.connectorWidth)).attr(v?{}:t.connectorAttribs).addClass((v?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let w=n.text(this.formatLabel(t)).attr(v?{}:t.labelAttribs).css(v?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),k={x:x+M+s.labels.x,y:y+s.labels.y+.4*w.getBBox().height};w.attr(k),h.push(w),w.placed=!0,w.alignAttr=k}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?en.format(s,t,this.chart):i?i.call(t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,r=Number.MAX_VALUE,a=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(cq)).length&&(r=cJ(t.options.zMin,Math.min(r,Math.max(c_(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),a=cJ(t.options.zMax,Math.max(a,c$(o))))}),s=r===a?[{value:a}]:[{value:r},{value:(r+a)/2},{value:a,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=cK(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,r=t.plotSizeX,a=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),d=Math.ceil(l.maxPxSize),c=Math.min(a,r),p,u=n.options.maxSize;return i||!/%$/.test(u)?p=d:(p=(c+o)*(u=parseFloat(u))/100/(u/100+1),(s&&a-p>=r||!s&&r-p>=a)&&(p=d)),[h,Math.ceil(p)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:c1}=tM,{composed:c2}=A,{addEvent:c3,objectEach:c6,pushUnique:c5,wrap:c9}=J;function c8(t,e,i){let s,o,r;let a=this.legend,n=c4(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&n?(s=a.bubbleLegend.options,o=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(a.group.placed=!1,a.allItems.forEach(t=>{(r=t.legendItem||{}).group&&(r.group.translateY=void 0)})),a.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),c6(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),a.bubbleLegend.correctSizes(),pi(a,c7(a))):(t.call(this,e,i),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),pi(a,c7(a))))}function c4(t){let e=t.series,i=0;for(;io.height&&(o.height=e[l].itemHeight);o.step=n}return i}function pt(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=c4(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new c0(s,this),this.bubbleLegend.addToLegend(t.allItems))}function pe(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=c4(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function pi(t,e){let i=t.allItems,s=t.options.rtl,o,r,a,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(o=n.group.translateX||0,r=n.y||0,((a=t.movementX)||s&&t.ranges)&&(a=s?o-t.options.maxSize/2:o+a,n.group.attr({translateX:a})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(r+e[l].height/2)}),n.y=r+e[l].height/2)})}let ps={compose:function(t,e){c5(c2,"Series.BubbleLegend")&&(c1({legend:{bubbleLegend:cV}}),c9(t.prototype,"drawChartBox",c8),c3(e,"afterGetAllItems",pt),c3(e,"itemClick",pe))}},{seriesTypes:{scatter:{prototype:{pointClass:po}}}}=rg,{extend:pr}=J;class pa extends po{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series;return o.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return oV.prototype.haloPath.call(this,e)}}pr(pa.prototype,{ttBelow:!1});let pn=pa,{parse:pl}=tC,{composed:ph,noop:pd}=A,{series:pc,seriesTypes:{column:{prototype:pp},scatter:pu}}=rg,{addEvent:pg,arrayMax:pm,arrayMin:pf,clamp:px,extend:py,isNumber:pb,merge:pv,pick:pM,pushUnique:pw}=J;function pk(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),r=0,a=t,n=t/o,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(pb(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;r=Math.min((e[i]-s)*n-o,r),a=Math.max((e[i]-s)*n+o,a)}}}}),l&&o>0&&!this.logarithmic&&(a-=t,n*=(t+Math.max(0,r)-Math.min(a,t))/t,[["min","userMin",r],["max","userMax",a]].forEach(t=>{void 0===pM(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function pS(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,r=this.options.type;if((o?.length||"category"===r)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let r=t[e[o]],a=r.pos||0;(a>s||a{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(pM(e,o.zMin),o.zMin),i=Math.max(pM(i,o.zMax),o.zMax),t=!0)}}),t?(a={zMin:e,zMax:i},this.chart.bubbleZExtremes=a):a={zMin:0,zMax:0}}for(o=0,s=t.length;o0&&(d=(o-t)/h)}return n&&d>=0&&(d=Math.sqrt(d)),Math.ceil(i+d*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?py(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=pc.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=pl(s.fill).setOpacity(i).get("rgba")),s}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let r=t[o],a=i?i[o]:0;"z"===this.zoneAxis&&(r.negative=(r.z||0)<(e.zThreshold||0)),pb(a)&&a>=s/2?(r.marker=py(r.marker,{radius:a,width:2*a,height:2*a}),r.dlBox={x:r.plotX-a,y:r.plotY-a,width:2*a,height:2*a}):(r.shapeArgs=r.plotY=r.dlBox=void 0,r.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(pM(this.options.minSize,8)),s=Math.max(e(pM(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(pb);if(e.length){let i=pM(t.zMin,px(pf(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=pM(t.zMax,pm(e));if(pb(i)&&pb(s))return{zMin:i,zMax:s}}}}pT.defaultOptions=pv(pu.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return pb(e)?t(e,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),py(pT.prototype,{alignDataLabel:pp.alignDataLabel,applyZones:pd,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:pn,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),pg(pT,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),pg(pT,"remove",t=>{delete t.target.chart.bubbleZExtremes}),rg.registerSeriesType("bubble",pT);let pC=pT,{seriesTypes:{map:{prototype:{pointClass:{prototype:pA}}}}}=rg,{extend:pP}=J;class pL extends pn{isValid(){return"number"==typeof this.z}}pP(pL.prototype,{applyOptions:pA.applyOptions,getProjectedBounds:pA.getProjectedBounds});let{seriesTypes:{map:{prototype:pO},mappoint:{prototype:pE}}}=rg,{extend:pI,merge:pD}=J;class pB extends pC{constructor(){super(...arguments),this.clearBounds=pO.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){pE.translate.call(this),this.getRadii(),this.translateBubble()}}pB.defaultOptions=pD(pC.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pI(pB.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:pO.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:pL,processData:pO.processData,projectPoint:pE.projectPoint,kdAxisArray:["plotX","plotY"],setData:pO.setData,setOptions:pO.setOptions,updateData:pO.updateData,useMapGeometry:!0,xyFromShape:!0}),rg.registerSeriesType("mapbubble",pB);let{scatter:{prototype:{pointClass:pz}}}=rg.seriesTypes,{clamp:pN,defined:pR,extend:pW,pick:pj}=J;class pX extends pz{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,s=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,n=t.pointPlacementToXValue(),l=pj(this.pointPadding,e.pointPadding,0),h={x1:pN(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-n)),-o.len,2*o.len),x2:pN(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-n)),-o.len,2*o.len),y1:pN(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:pN(Math.round(r.translate(this.y+s,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],i=t[1],s=i+"1",n=i+"2",d=Math.abs(h[s]-h[n]),c=a&&a.lineWidth||0,p=Math.abs(h[s]+h[n])/2,u=a&&a[e];if(pR(u)&&upY(parseFloat(t),parseInt(t,10)));return s[3]=255*pY(s[3],1),pH(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=pF.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class p3 extends pZ{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,s=e.marker||{};if(i){let{image:e,chart:i,xAxis:s,yAxis:o}=t,{reversed:r=!1,len:a}=s,{reversed:n=!1,len:l}=o,h={width:a,height:l};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=p2(t),{canvas:l,options:{colsize:d=1,rowsize:c=1},points:p,points:{length:u}}=t,g=i.colorAxis&&i.colorAxis[0];if(l&&a&&g){let{min:g,max:m}=s.getExtremes(),{min:f,max:x}=o.getExtremes(),y=m-g,b=x-f,v=Math.round(y/d/8*8),M=Math.round(b/c/8*8),[w,k]=[[v,v/y,r,"ceil"],[M,M/b,!n,"floor"]].map(([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t)),S=l.width=v+1,T=S*(l.height=M+1),C=(u-1)/T,A=new Uint8ClampedArray(4*T),P=(t,e)=>4*Math.ceil(S*k(e-f)+w(t-g));t.buildKDTree();for(let t=0;t{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:t,dataMax:e}=pV.prototype.getExtremes.call(this,this.getColumn("value"));return pJ(t)&&(this.valueMin=t),pJ(e)&&(this.valueMax=e),pV.prototype.getExtremes.call(this)}getValidPoints(t,e){return pV.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=p0(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,p$.ellipse=p$.circle,t.marker&&pJ(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let s=t.options.marker||{},o=this.options.marker||{},r=o.states&&o.states[e]||{},a=s.states&&s.states[e]||{},n=(a.width||r.width||i.width||0)+(a.widthPlus||r.widthPlus||0),l=(a.height||r.height||i.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(i.x||0)+((i.width||0)-n)/2,y:(i.y||0)+((i.height||0)-l)/2,width:n,height:l}}return i}pointAttribs(t,e){let i=pV.prototype.pointAttribs.call(this,t,e),s=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},n=t&&t.options.borderColor||s.borderColor||a.borderColor||r.borderColor,l=t&&t.options.borderWidth||s.borderWidth||a.borderWidth||r.borderWidth||i["stroke-width"];if(i.stroke=t&&t.marker&&t.marker.lineColor||s.marker&&s.marker.lineColor||n||this.color,i["stroke-width"]=l,e&&"normal"!==e){let o=pQ(s.states&&s.states[e],s.marker&&s.marker.states&&s.marker.states[e],t&&t.options.states&&t.options.states[e]||{});i.fill=o.color||tC.parse(i.fill).brighten(o.brightness||0).get(),i.stroke=o.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e&&e.symbol||"rect",s=p$[i]?i:"rect",o=-1!==["circle","square"].indexOf(s);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),n=Math.min(r.y1,r.y2),l=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker&&e.marker.symbol||i||"").indexOf("url"),o){let t=Math.abs(l-h);a=Math.min(r.x1,r.x2)+(l"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),p_(p3,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),pq(p3.prototype,{axisTypes:dr.seriesMembers.axisTypes,colorKey:dr.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:dr.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:pX,specialGroup:"group",trackerGroups:dr.seriesMembers.trackerGroups,alignDataLabel:pU.prototype.alignDataLabel,colorAttribs:dr.seriesMembers.colorAttribs,getSymbol:pV.prototype.getSymbol}),dr.compose(p3),rg.registerSeriesType("heatmap",p3),A.ColorMapComposition=dr,A.MapChart=A.MapChart||dc,A.MapNavigation=A.MapNavigation||dt,A.MapView=A.MapView||ch,A.Projection=A.Projection||dQ,A.mapChart=A.Map=A.MapChart.mapChart,A.maps=A.MapChart.maps,A.geojson=dA.geojson,A.topo2geo=dA.topo2geo,dA.compose(A.Chart),pB.compose(A.Axis,A.Chart,A.Legend),dt.compose(dc,A.Pointer,A.SVGRenderer),ch.compose(dc),/** - * @license Highmaps JS v12.0.2 (2024-12-04) + */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i;var s,o,r,a,n,l,h,d,c,p,u,g,m,f,x,y,b,v,M,w,k,S,T={};T.d=(t,e)=>{for(var i in e)T.o(e,i)&&!T.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},T.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var C={};T.d(C,{default:()=>p9}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.1.0",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(s||(s={}));let A=s,{charts:P,doc:L,win:O}=A;function E(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=W(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),$(s,function(e,i){t+=` + - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}q(A,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);O.console&&-1===E.messages.indexOf(a)&&console.warn(a)}),E.messages.push(a)}function I(t,e){return parseInt(t,e||10)}function D(t){return"string"==typeof t}function B(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function z(t,e){return!!t&&"object"==typeof t&&(!e||!B(t))}function N(t){return z(t)&&"number"==typeof t.nodeType}function R(t){let e=t&&t.constructor;return!!(z(t,!0)&&!N(t)&&e&&e.name&&"Object"!==e.name)}function W(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function j(t){return null!=t}function X(t,e,i){let s;let o=D(e)&&!j(i),r=(e,i)=>{j(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return D(e)?r(i,e):$(e,r),s}function G(t){return B(t)?t:[t]}function F(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function H(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(E||(E={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let Z=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let K=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();O.jQuery&&(O.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new A[D(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):P[X(this[0],"data-highcharts-chart")]});let J={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;A.Point&&t instanceof A.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!A.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){_(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[l]){i=G(i),r[l]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=O.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),H(s,"opacity"!==i)&&(o=I(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return U(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:$,offset:function(t){let e=L.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(O.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(O.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:H,pInt:I,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:_,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:G,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return D(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:K,useSerialIds:function(e){return t=H(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:Q}=A,{defined:tt,error:te,extend:ti,isNumber:ts,isObject:to,isString:tr,merge:ta,objectEach:tn,pad:tl,splat:th,timeUnits:td,ucfirst:tc}=J,tp=A.isSafari&&Q.Intl&&!Q.Intl.DateTimeFormat.prototype.formatRange,tu=t=>void 0===t.main,tg=t=>["D","L","M","X","J","V","S"].indexOf(t),tm=class{constructor(t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=Q.Date,this.update(t)}update(t={}){this.dTLCache={},this.options=t=ta(!0,this.options,t);let{timezoneOffset:e,useUTC:i}=t;this.Date=t.Date||Q.Date||Date;let s=t.timezone;tt(i)&&(s=i?"UTC":void 0),e&&e%60==0&&(s="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==s&&s?.indexOf("Etc/GMT")!==0,this.timezone=s,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,tg(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;tr(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(te(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):te(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&ti(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||tp||(n-=36e5)}}return n}parse(t){if(!tr(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(ts(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(ts(a))return a}return 0}dateFormat(t,e,i){let s=A.defaultOptions?.lang;if(!tt(e)||isNaN(e))return s?.invalidDate||"";if(tr(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(tr(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,l,h,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,m=s?.shortMonths||this.shortMonths;tn(ti({a:u?u[c]:p[c].substr(0,3),A:p[c],d:tl(a),e:tl(a,2," "),w:c,b:m[r],B:g[r],m:tl(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:tl(n),k:n,I:tl(n%12||12),l:n%12||12,M:tl(l),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:tl(h),L:tl(d,3)},A.dateFormats),function(s,o){if(tr(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(to(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(ti({timeZone:s},t),e)+r}return i?tc(t):t}resolveDTLFormat(t){return to(t,!0)?to(t,!0)&&tu(t)?{main:t}:t:{main:(t=th(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:l}=t,[h,d,c,p,u,g]=o.toParts(e),m=(e||0)%1e3,f;if(s??(s=1),tt(e)){if(m=l>=td.second?0:n*Math.floor(m/n),l>=td.second&&(g=l>=td.minute?0:n*Math.floor(g/n)),l>=td.minute&&(u=l>=td.hour?0:n*Math.floor(u/n)),l>=td.hour&&(p=l>=td.day?0:n*Math.floor(p/n)),l>=td.day&&(c=l>=td.month?1:Math.max(1,n*Math.floor(c/n))),l>=td.month&&(d=l>=td.year?0:n*Math.floor(d/n)),l>=td.year&&(h-=h%n),l===td.week){n&&(e=o.makeTime(h,d,c,p,u,g,m));let t=tg(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*td.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(h,d,c,p+x*n):t+=l*n,x++;r.push(t),l<=td.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=ti(t,{higherRanks:a,totalRange:l*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",l=n;for(n in td){if(t===td.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(td[n]>t){n=l;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(l=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:tf}=A,{fireEvent:tx,merge:ty}=J,tb={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:tf?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tb.chart.styledMode=!0,tb.chart.styledMode=!1;let tv=new tm(tb.time),tM={defaultOptions:tb,defaultTime:tv,getOptions:function(){return tb},setOptions:function(t){return tx(A,"setOptions",{options:t}),ty(!0,tb,t),t.time&&tv.update(tb.time),t.lang&&"locale"in t.lang&&tv.update({locale:t.lang.locale}),tb}},{isNumber:tw,merge:tk,pInt:tS,defined:tT}=J;class tC{static parse(t){return t?new tC(t):tC.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=A.Color;if(r&&r!==tC)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tC(t[1]));else if("string"==typeof t)for(this.input=t=tC.names[t.toLowerCase()]||t,s=tC.parsers.length;s--&&!i;)(e=(o=tC.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tk(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tw(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tw(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tS(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tw(i[0])||!tw(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?"rgba(":"rgb(")+a.join(",")+")"}}tC.names={white:"#ffffff",black:"#000000"},tC.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tS(t[1]),tS(t[2]),tS(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tS(t[1]),tS(t[2]),tS(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tS(t[1]+t[1],16),tS(t[2]+t[2],16),tS(t[3]+t[3],16),tT(t[4])?tS(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tS(t[1],16),tS(t[2],16),tS(t[3],16),tT(t[4])?tS(t[4],16)/255:1]}}],tC.None=new tC("");let{parse:tA}=tC,{win:tP}=A,{isNumber:tL,objectEach:tO}=J;class tE{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),l[this.prop]=!0,i=!0,tO(l,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,l=e&&i.length>e.length&&i.hasStackedCliffs,h,d,c,p,u=e&&e.slice();if(!u||l)return[r,r];function g(t,e){for(;t.length{let i=tX(t.options.animation);r=tN(e)&&tI(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tj(t,e.options.chart.animation,!0)},stop:tG},{SVG_NS:tH,win:tY}=A,{attr:tV,createElement:tU,css:tZ,error:t$,isFunction:t_,isString:tq,objectEach:tK,splat:tJ}=J,{trustedTypes:tQ}=tY,t0=tQ&&t_(tQ.createPolicy)&&tQ.createPolicy("highcharts",{createHTML:t=>t}),t1=t0?t0.createHTML(""):"";class t2{static filterUserAttributes(t){return tK(t,(e,i)=>{let s=!0;-1===t2.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tq(e)&&t2.allowedReferences.some(t=>0===e.indexOf(t))),s||(t$(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tq(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t2.emptyHTML,e&&new t2(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return tJ(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?A.doc.createTextNode(e.textContent):void 0,n=t2.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==t2.allowedTags.indexOf(r)||n){let s="svg"===r?tH:i.namespaceURI||tH,l=A.doc.createElementNS(s,r),h=e.attributes||{};tK(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(h[e]=t)}),tV(l,n?h:t2.filterUserAttributes(h)),e.style&&tZ(l,e.style),a&&l.appendChild(a),t(e.children||[],l),o=l}else t$(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t0?t0.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tU("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t2.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t2.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t2.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t2.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t2.emptyHTML=t1,t2.bypassHTMLFiltering=!1;let{defaultOptions:t3,defaultTime:t6}=tM,{doc:t5}=A,{extend:t9,getNestedProperty:t8,isArray:t4,isNumber:t7,isObject:et,isString:ee,pick:ei,ucfirst:es}=J,eo={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!t4(t)&&t.map((i,s)=>en(e.body,t9(et(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:es,unless:t=>!t},er={},ea=t=>/^["'].+["']$/.test(t);function en(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,l=i?.options.lang||t3.lang,h=i&&i.time||t6,d=i&&i.numberFormatter||el,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:ea(t)?t.slice(1,-1):t8(t,e))},p,u,g=0,m;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,m=!0),u&&u.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");eo[a]&&(u.isBlock&&a===u.fn&&g++,u.fn||(u.fn=a));let n="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||n)){if(g)!n&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],n||(r.push(u),u=void 0)}}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let r,p;let{body:u,elseBody:g,expression:m,fn:f}=s;if(f){let t=[s],o=[],a=m.length,n=0,l;for(p=0;p<=a;p++){let t=m.charAt(p);l||'"'!==t&&"'"!==t?l===t&&(l=""):l=t,l||" "!==t&&p!==a||(o.push(m.substr(n,p-n)),n=p+1)}for(p=eo[f].length;p--;)t.unshift(c(o[p+1]));r=eo[f].apply(e,t),s.isBlock&&"boolean"==typeof r&&(r=en(r?u:g,e,i))}else{let t=ea(m)?[m]:m.split(":");if(r=c(t.shift()||""),t.length&&"number"==typeof r){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==r&&(r=d(r,t,l.decimalPoint,e.indexOf(",")>-1?l.thousandsSep:""))}else r=h.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&ee(r)&&(r=`"${r}"`)}t=t.replace(s.find,ei(r,""))}),m?en(t,e,i):t}function el(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),l=this?.options?.lang||t3.lang,h=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=l.decimalPoint),s??(s=l.thousandsSep),-1===e?e=Math.min(h,20):t7(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),t7(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||l.locale||t5.body.closest("[lang]")?.lang,g=JSON.stringify(c)+u;return o=(er[g]??(er[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let eh={dateFormat:function(t,e,i){return t6.dateFormat(t,e,i)},format:en,helpers:eo,numberFormat:el};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,A.Renderer=s)}}(o||(o={}));let ed=o,{clamp:ec,pick:ep,pushUnique:eu,stableSort:eg}=J;(r||(r={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],l=e.length,h=[],d=n.push,c,p,u,g=!0,m,f,x=0,y;for(c=l;c--;)x+=e[c].size;if(x>r){for(eg(e,(t,e)=>(e.rank||0)-(t.rank||0)),u=(y=e[0].rank===e[e.length-1].rank)?l/2:-1,p=y?u:l-1;u&&x>r;)m=e[c=Math.floor(p)],eu(h,c)&&(x-=m.size),p+=u,y&&p>=e.length&&(u/=2,p=u);h.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(eg(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:ep(t.align,.5)}));g;){for(c=e.length;c--;)m=e[c],f=(Math.min.apply(0,m.targets)+Math.max.apply(0,m.targets))/2,m.pos=ec(f-m.size*m.align,0,i-m.size);for(c=e.length,g=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),g=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),eg(o,a),o};let em=r,{animate:ef,animObject:ex,stop:ey}=tF,{deg2rad:eb,doc:ev,svg:eM,SVG_NS:ew,win:ek,isFirefox:eS}=A,{addEvent:eT,attr:eC,createElement:eA,crisp:eP,css:eL,defined:eO,erase:eE,extend:eI,fireEvent:eD,getAlignFactor:eB,isArray:ez,isFunction:eN,isNumber:eR,isObject:eW,isString:ej,merge:eX,objectEach:eG,pick:eF,pInt:eH,pushUnique:eY,replaceNested:eV,syncTimeout:eU,uniqueKey:eZ}=J;class e${_defaultGetter(t){let e=eF(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={"text-align":t?.align},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let l=!i||ej(i)?i||"renderer":void 0;l&&(n&&eY(a,this),i=void 0);let h=eF(i,r[l],r),d=(h.x||0)+(t.x||0)+((h.width||0)-(t.width||0))*eB(t.align),c=(h.y||0)+(t.y||0)+((h.height||0)-(t.height||0))*eB(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=ex(eF(e,this.renderer.globalAnimation,!0)),o=s.defer;return ev.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eU(()=>{this.element&&ef(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eG(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&A.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=ev.createElementNS(ew,"tspan");eC(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=ev.createElementNS(ew,"tspan");a.textContent="​",eC(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=e$.symbolCustomAttribs,a,n,l=this,h;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?l=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eG(t,function(e,i){h=!1,s||ey(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),h=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),h||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),l}clip(t){if(t&&!t.clipPath){let e=eZ()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eI(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eP(i,e),n=eP(s,e);return eI(t,{x:a,y:n,width:eP(o,e)-a,height:eP(r,e)-n}),eO(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,l,h,d,c,p,u,g=[],m;eD(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],l=s.gradients,h=t.stops,p=i.radialReference,ez(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eO(a.gradientUnits)&&(n=a,a=eX(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),eG(a,function(t,e){"id"!==e&&g.push(e,t)}),eG(h,function(t){g.push(t)}),l[g=g.join(",")])u=l[g].attr("id");else{a.id=u=eZ();let t=l[g]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],h.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tC.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}m="url("+s.url+"#"+u+")",i.setAttribute(e,m),i.gradient=g,t.toString=function(){return m}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eG(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eI(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eH(t.width)),eI(this.styles,t),o&&!eM&&this.renderer.forExport&&delete t.width;let r=eS&&t.fontSize||null;r&&(eR(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=eX(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),eL(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eH(s[e])*eF(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ey(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:l,styles:h,textStr:d}=this,{cache:c,cacheKeys:p}=l,u=n.namespaceURI===this.SVG_NS,g=eF(e,this.rotation,0),m=l.styledMode?n&&e$.prototype.getStyle.call(n,"font-size"):h.fontSize;if(eO(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",l.rootFontSize,m,g,this.textWidth,a,h.lineClamp,h.textOverflow,h.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||l.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&eL(e,{display:t})},eN(o)&&o("none"),i=n.getBBox?eI({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eN(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({"11px,17":14,"13px,20":16})[`${m||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};eD(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:l=0,rotationOriginY:h=0}=this,d=eB(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*eb,u=(e-90)*eb,g=Math.cos(p),m=Math.sin(p),f=o*g,x=o*m,y=Math.cos(u),b=Math.sin(u),[[v,M],[w,k]]=[l,h].map(t=>[t-t*g,t*m]),S=i+d*(o-f)+v+k+c*y,T=S+f,C=T-r*y,A=C-f,P=s+c-d*x-M+w+c*b,L=P+x,O=L-r*b,E=O-x,I=Math.min(S,T,C,A),D=Math.min(P,L,O,E),B=Math.max(S,T,C,A)-I,z=Math.max(P,L,O,E)-D;return{x:I,y:D,width:B,height:z,polygon:[[S,P],[T,L],[C,O],[A,E]]}}getStyle(t){return ek.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=ew,this.element="span"===e||"body"===e?eA(e):ev.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eD(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eT(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(ej(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eX(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eW(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eH(t):""!==t&&(eC(i=ev.createElementNS(ew,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;e$.symbolCustomAttribs.forEach(function(i){e[i]=eF(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||ev.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eV(eF(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:l=0,translateY:h=0}=this,d=["translate("+l+","+h+")"];eO(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+eF(o,e.getAttribute("x"),0)+" "+eF(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eO(a)||eO(n))&&d.push("scale("+eF(a,1)+" "+eF(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,l,h,d=!1,c,p=this.added,u;if(eO(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eO(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(n=o.childNodes).length-1;u>=0&&!d;u--)c=!eO(h=(l=n[u]).getAttribute("data-z-index")),l!==r&&(t<0&&c&&!a&&!u?(o.insertBefore(r,n[u]),d=!0):(eH(h)<=t||c&&(!eO(t)||t>=0))&&(o.insertBefore(r,n[u+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}e$.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],e$.prototype.strokeSetter=e$.prototype.fillSetter,e$.prototype.yGetter=e$.prototype.xGetter,e$.prototype.matrixSetter=e$.prototype.rotationOriginXSetter=e$.prototype.rotationOriginYSetter=e$.prototype.rotationSetter=e$.prototype.scaleXSetter=e$.prototype.scaleYSetter=e$.prototype.translateXSetter=e$.prototype.translateYSetter=e$.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let e_=e$,{defined:eq,extend:eK,getAlignFactor:eJ,isNumber:eQ,merge:e0,pick:e1,removeEvent:e2}=J;class e3 extends e_{constructor(t,e,i,s,o,r,a,n,l,h){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=l,this.className=h,this.addClass("button"===h?"highcharts-no-tooltip":"highcharts-label"),h&&this.addClass("highcharts-"+h),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e3.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=eJ(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&eQ(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e0(t),e3.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return e_.prototype.css.call(this,t)}destroy(){e2(this.element,"mouseenter"),e2(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),e_.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=e1(this.paddingLeft,i),l=e??(this.rotation||0),h={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return l&&(h=this.getRotatedBox(h,l)),h}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:e1(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&eq(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){eQ(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!eQ(this.widthSetting)||!eQ(this.heightSetting)||this.textAlign)&&eq(e.textStr)?e.getBBox(void 0,0):e3.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(eK(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+eJ(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=eQ(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=e1(this.paddingLeft,t),i=e1(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}e3.emptyBBox={width:0,height:0,x:0,y:0},e3.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e6,isNumber:e5,pick:e9}=J;function e8(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=e9(o.r,i),l=e9(o.r,s||i),h=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&l0)return h;if(t+n>i-a){if(l>e+a&&le+a&&l0){let i=ls&&na&&h.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return h},circle:function(t,e,i,s){return e8(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:e4,roundedRect:e7,square:e4,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:ie,SVG_NS:ii,win:is}=A,{attr:io,extend:ir,fireEvent:ia,isString:il,objectEach:ih,pick:id}=J,ic=(t,e)=>t.substring(0,e)+"…",ip=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=id(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new t2(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(ie.createTextNode(this.unescapeEntities(s)));il(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=io(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),io(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),l=this.getLineHeight(o),h=Math.max(0,s-.8*l),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,h,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,h,ic),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(ie.createTextNode(e),t);let s=ie.createElementNS(ii,"tspan");s.textContent="​",io(s,{dy:l,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,h,ic)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===is.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===is.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,l=this.renderer.styledMode;if("b"===n||"strong"===n?l?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(l?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),ir(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),ia(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,l;let h=this.svgElement,{rotation:d}=h,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let m=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(h.rotation=0,s+(l=m(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(n=a(i,g)),l=m(g,n&&n.length-1),p===u?p=u+1:l>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=n||a(e||i,g)),this.ellipsis&&l>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,ic)}i&&i.splice(0,g),h.actualWidth=l,h.rotation=d}unescapeEntities(t,e){return ih(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:iu}=tM,{charts:ig,deg2rad:im,doc:ix,isFirefox:iy,isMS:ib,isWebKit:iv,noop:iM,SVG_NS:iw,symbolSizes:ik,win:iS}=A,{addEvent:iT,attr:iC,createElement:iA,crisp:iP,css:iL,defined:iO,destroyObjectProperties:iE,extend:iI,isArray:iD,isNumber:iB,isObject:iz,isString:iN,merge:iR,pick:iW,pInt:ij,replaceNested:iX,uniqueKey:iG}=J;class iF{constructor(t,e,i,s,o,r,a){let n,l;let h=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=h.element;a||h.css(this.getStyle(s||{})),t.appendChild(d),iC(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iC(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=h,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ix.createTextNode("Created with Highcharts 12.1.0")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=h.getStyle("font-size"),this.setSize(e,i,!1),iy&&t.getBoundingClientRect&&((n=function(){iL(t,{left:0,top:0}),l=t.getBoundingClientRect(),iL(t,{left:Math.ceil(l.left)-l.left+"px",top:Math.ceil(l.top)-l.top+"px"})})(),this.unSubPixelFix=iT(iS,"resize",n))}definition(t){return new t2([t]).addToDOM(this.defs.element)}getReferenceURL(){if((iy||iv)&&ix.getElementsByTagName("base").length){if(!iO(e)){let t=iG(),i=new t2([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ix.body);iL(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ix.elementFromPoint(6,6);e="hitme"===(s&&s.id),ix.body.removeChild(i)}if(e)return iX(iS.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iI({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iE(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iR({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ip(t).buildSVG()}getContrast(t){let e=tC.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,l,h){let d=this.label(t,e,i,l,void 0,void 0,h,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=iR(iu.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},m=o.style||{};delete o.states,delete o.style;let f=[t2.filterUserAttributes(o)],x=[m];return c||["hover","select","disabled"].forEach((t,e)=>{f.push(iR(f[0],t2.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(f[e+1].style),delete f[e+1].style}),iT(d.element,ib?"mouseover":"mouseenter",function(){3!==u&&d.setState(1)}),iT(d.element,ib?"mouseout":"mouseleave",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(f[t]);let e=x[t];iz(e)&&d.css(e)}},d.attr(f[0]),!c&&(d.css(iI({cursor:"default"},m)),h&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==u&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iO(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iP(i[1],e)),iO(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iP(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iD(t)?e.d=t:iz(t)&&iI(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iz(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iz(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iz(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iI(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iC(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iW(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iB(e)&&(a.x=e),iB(i)&&(a.y=i),iB(s)&&(a.width=s),iB(o)&&(a.height=o);let n=this.createElement("image").attr(a),l=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iS.Image;iT(e,"load",l),e.src=t,e.complete&&l({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,l,h;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(n=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iI(a,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&iI(a,r);else if(p){l=t.match(c)[1];let s=a=this.image(l);s.imgwidth=iW(r&&r.width,ik[l]&&ik[l].width),s.imgheight=iW(r&&r.height,ik[l]&&ik[l].height),h=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:l}=this,h="width"===e?n:l,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&l?(d=Math.min(o/n,a/l),iC(s,{width:Math.round(n*d),height:Math.round(l*d)})):s&&h&&s.setAttribute(e,h),!i&&n&&l&&this.translate(((o||0)-n*d)/2,((a||0)-l*d)/2)}}),iO(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iO(s.imgwidth)&&iO(s.imgheight)?h(s):(s.attr({width:0,height:0}),iA("img",{onload:function(){let t=ig[d.chartIndex];0===this.width&&(iL(this,{position:"absolute",top:"-999em"}),ix.body.appendChild(this)),ik[l]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&h(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:l}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iO(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iI(iF.prototype,{Element:e_,SVG_NS:iw,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:it,draw:iM}),ed.registerRendererType("svg",iF,!0);let{composed:iH}=A,{attr:iY,css:iV,createElement:iU,defined:iZ,extend:i$,getAlignFactor:i_,isNumber:iq,pInt:iK,pushUnique:iJ}=J;function iQ(t,e,i){let s=this.div?.style||i.style;e_.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i0=(t,e)=>{if(!t.div){let i=iY(t.element,"class"),s=t.css,o=iU("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=iQ,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return e_.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class i1 extends e_{static compose(t){iJ(iH,this.compose)&&(t.prototype.html=function(t,e,i){return new i1(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=iK(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),iq(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),i$(this.styles,t),iV(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:l="left",textWidth:h,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,{display:g="block",whiteSpace:m}=n;if(iV(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n;let d=[i,l,t.innerHTML,h,this.textAlign].join(","),c=-(this.parentGroup?.padding*1)||0;if(h!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iV(t,{width:"",whiteSpace:m||"nowrap"}),t.offsetWidth),s=h||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iV(t,{width:e>s||i||r?h+"px":"auto",display:g,whiteSpace:m||"normal"}),this.oldTextWidth=h)}d!==this.cTT&&(n=e.fontMetrics(t).b,iZ(i)&&(i!==(this.oldRotation||0)||l!==this.oldAlign)&&this.setSpanRotation(i,c,c),this.getSpanCorrection(!iZ(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,n,i_(l)));let{xCorr:f=0,yCorr:x=0}=this,y={left:`${p+f}px`,top:`${u+x}px`,textAlign:l,transformOrigin:`${(s??p)-f-p-c}px ${(o??u)-x-u-c}px`};(r||a)&&(y.transform=`scale(${r??1},${a??1})`),iV(t,y),this.cTT=d,this.oldRotation=i,this.oldAlign=l}}setSpanRotation(t,e,i){iV(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=i0(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t2.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i2=i1.prototype;i2.visibilitySetter=i2.opacitySetter=iQ,i2.ySetter=i2.rotationSetter=i2.rotationOriginXSetter=i2.rotationOriginYSetter=i2.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(a||(a={}));let i3=a,{addEvent:i6,isFunction:i5,objectEach:i9,removeEvent:i8}=J;(n||(n={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i9(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i8(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i5(e)&&(t.eventOptions[i]=e,i6(t,i,e,{order:0})))})};let i4=n,{deg2rad:i7}=A,{clamp:st,correctFloat:se,defined:si,destroyObjectProperties:ss,extend:so,fireEvent:sr,getAlignFactor:sa,isNumber:sn,merge:sl,objectEach:sh,pick:sd}=J,sc=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,sr(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,l=sd(t.options&&t.options.labels,i.labels),h=e.tickPositions,d=n===h[0],c=n===h[h.length-1],p=(!l.step||1===l.step)&&1===e.tickInterval,u=h.info,g=t.label,m,f,x,y=this.parameters.category||(o?sd(o[n],a[n],n):n);r&&sn(y)&&(y=se(r.lin2log(y))),e.dateTime&&(u?m=(f=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&u.higherRanks[n]||u.unitName])).main:sn(y)&&(m=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:m,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:u,value:y};sr(this,"labelFormat",b);let v=t=>l.formatter?l.formatter.call(t,t):l.format?(t.text=e.defaultLabelFormatter.call(t),eh.format(l.format,t,s)):e.defaultLabelFormatter.call(t),M=v.call(b,b),w=f&&f.list;w?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(h*i7))):(m=s-d*c,f=s+(1-d)*c,mn&&(u=n-t.x+u*d,g=-1),(u=Math.min(p,u))u||e.autoRotation&&(l.styles||{}).width)&&(x=u)),x&&l&&(this.shortenLabel?this.shortenLabel():l.css(so({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sh(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=sd(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),l=n.x,h=n.y,d=s.pos,c=d+s.len,p=o?l:h;!s.chart.polar&&this.isNew&&(se(p)c)&&(i=0);let u=sd(i,this.label&&this.label.newOpacity,1);i=sd(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,u,t),this.isNew=!1,sr(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=sd(this.tickmarkOffset,i.tickmarkOffset),l=i.chart.renderer,h=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),h||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),a||(o.zIndex=1),t&&(e=0),this.gridLine=h=l.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),h&&(d=i.getPlotLinePath({value:r+n,lineWidth:h.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&h[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,l=t.y,h=sd(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":h})),c[p?"attr":"animate"]({d:this.getMarkPath(n,l,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,l=a.labels,h=l.step,d=sd(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;n&&sn(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,l,d,s,h),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||l.step||l.rotation||e||0===i||this.handleOverflow(t):u=!1,h&&s%h&&(u=!1),u&&sn(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sp}=tF,{xAxis:su,yAxis:sg}=i3,{defaultOptions:sm}=tM,{registerEventOptions:sf}=i4,{deg2rad:sx}=A,{arrayMax:sy,arrayMin:sb,clamp:sv,correctFloat:sM,defined:sw,destroyObjectProperties:sk,erase:sS,error:sT,extend:sC,fireEvent:sA,getClosestDistance:sP,insertItem:sL,isArray:sO,isNumber:sE,isString:sI,merge:sD,normalizeTickInterval:sB,objectEach:sz,pick:sN,relativeLength:sR,removeEvent:sW,splat:sj,syncTimeout:sX}=J,sG=(t,e)=>sB(e,void 0,void 0,sN(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sC(sm,{xAxis:su,yAxis:sD(su,sg)});class sF{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sA(this,"init",{userOptions:e}),this.opposite=sN(e.opposite,this.opposite),this.side=sN(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sA(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sN(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sO(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sw(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sN(r.crosshair,sj(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sL(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sw(this.reversed)&&(this.reversed=!0),this.labelRotation=sE(a.rotation)?a.rotation:void 0,sf(this,r),sA(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sD(e,sm[this.coll],t),sA(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sE(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sm.lang,n=a.numericSymbols,l=a.numericSymbolMagnitude||1e3,h=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&h>=1e3)for(;d--&&void 0===p;)h>=(c=Math.pow(l,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sA(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sE(a)||a instanceof Date||(o=o.filter(sE),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sN(e.dataMin,a),a),e.dataMax=Math.max(sN(e.dataMax,n),n)));else{let t=i.applyExtremes();sE(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sN(e.dataMin,a),a)),sE(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sN(e.dataMax,n),n)),sw(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sA(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sE(n))return NaN;let l=a.minPixelPadding,h=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,u=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(u=(t=t*d+c-l)/p+n,h&&(u=a.lin2val(u))):(h&&(t=a.val2lin(t)),u=d*(t-n)*p+c+d*l+(sE(r)?p*r:0),a.isRadial||(u=sM(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,l=r&&i.oldChartHeight||i.chartHeight,h=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,m,f,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sv(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sA(this,"getPlotLinePath",b,function(t){u=m=(c=sv(c=sN(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,g=f=l-c-d,sE(c)?e.horiz?(g=o,f=l-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=m=y(u,s,s+e.width)):(u=s,m=h-e.right+(i.scrollablePixelsX||0),g=f=y(g,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",m,f]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=sM(Math.floor(e/t)*t),n=sM(Math.ceil(i/t)*t),l=[];if(sM(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(l.push(s),(s=sM(s+t,r))!==o);)o=s;return l}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sN(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],l;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sE(s)&&sE(o)&&sE(r)&&s-o=r,a=(r-s+o)/2,l=[o-a,i.parse(t.min)??o-a],n&&(l[2]=e?e.log2lin(this.dataMin):this.dataMin),h=[(o=sy(l))+r,i.parse(t.max)??o+r],n&&(h[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sb(h))-ot-e),t=sP([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sO(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sw(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sN(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sE(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,l=0,h,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,l=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sN(e.options.pointRange,a,0):t.axisPointRange||0,h=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sI(h)?0:i/2),l=Math.max(l,t&&"on"===h?0:i)}}),h=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=h,t.pointRangePadding=l*=h,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+l||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sA(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sE(t)&&sE(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:l,softThreshold:h}=this,d=i.time,c=sE(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:m,softMax:f,softMin:x}=l,y=sE(m)&&i[this.coll]?.[m],b=l.tickPixelInterval,v=l.maxPadding,M=l.minPadding,w=0,k,S=sE(l.tickInterval)&&l.tickInterval>=0?l.tickInterval:void 0,T,C,A,P;if(r||e||y||this.getTickAmount(),A=sN(this.userMin,d.parse(l.min)),P=sN(this.userMax,d.parse(l.max)),y?(this.linkedParent=y,k=y.getExtremes(),this.min=sN(k.min,k.dataMin),this.max=sN(k.max,k.dataMax),this.type!==y.type&&sT(11,!0,i)):(h&&sw(c)&&sE(s)&&sE(o)&&(o>=c?(T=c,M=0):s<=c&&(C=c,v=0)),this.min=sN(A,T,o),this.max=sN(P,C,s)),sE(this.max)&&sE(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sN(o,this.min))&&sT(10,!0,i),this.min=sM(n.log2lin(this.min),16),this.max=sM(n.log2lin(this.max),16)),this.range&&sE(o)&&(this.userMin=this.min=A=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sA(this,"foundExtremes"),this.adjustForMinRange(),sE(this.min)&&sE(this.max)){if(!sE(this.userMin)&&sE(x)&&xthis.max&&(this.max=P=f),e||this.axisPointRange||this.stacking?.usePercentage||y||!(w=this.max-this.min)||(!sw(A)&&M&&(this.min-=w*M),sw(P)||!v||(this.max+=w*v)),!sE(this.userMin)&&sE(g)&&(this.min=Math.max(this.min,g)),!sE(this.userMax)&&sE(u)&&(this.max=Math.min(this.max,u)),h&&sE(o)&&sE(s)){let t=c||0;!sw(A)&&this.min=t?this.min=l.minRange?Math.min(t,this.max-p):t:!sw(P)&&this.max>t&&s<=t&&(this.max=l.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sw(l.min)?this.max=this.min:sw(l.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&sE(this.min)&&sE(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sN(S,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sA(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sA(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=sN(l.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sT(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sG(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(l=i.apply(this,[this.min,this.max]))&&(n=l))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sE(this.min)&&sE(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||l||this.adjustTickAmount()),sA(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sA(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sE(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sE(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sE(this.threshold)){let t=sv((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sw(t.tickInterval)||i||!(this.lenr.push(sM(r[r.length-1]+p)),m=()=>r.unshift(sM(r[0]-p));if(sE(n)&&(u=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(u=a-1-u)),t.hasData()&&sE(s)&&sE(i)){let n=()=>{t.transA*=(l-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sE(u)&&sE(t.threshold)){for(;r[u]!==h||r.length!==a||r[0]>s||r[r.length-1]t.threshold?m():g();if(p>8*t.tickInterval)break;p*=2}n()}else if(l0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sA(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sA(this,"setExtremes",o=sC(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sR(sN(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sR(sN(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sR(sN(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sR(sN(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sM(t.lin2log(this.min)):this.min,max:t?sM(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sN(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sA(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=sM(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),l=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sM(i*s)},h=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sE(r)?p=[r]:o=-90&&i<=90)&&(e=(t=l(Math.abs(a/Math.sin(sx*i))))+Math.abs(i/360))g&&(g=i)}),this.maxLabelLength=g,this.autoRotation?g>l&&g>d.h?h.rotation=this.labelRotation:this.labelRotation=0:n&&(p=l),h.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(h.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(h),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sC(a,{width:`${p}px`,lineClamp:u})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=h.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sw(this.min)&&sw(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sD(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sc(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,l=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,h=t.hasData(),d=s.title,c=s.labels,p=sE(s.crossing),u=e.axisOffset,g=e.clipOffset,m=[-1,1,1,-1][o],f,x=0,y,b=0,v=0,M,w;if(t.showAxis=f=h||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),h||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sN(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sz(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(f),f&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sw(y=d.offset)?0:sN(d.margin,i?5:10))),t.renderLine(),t.offset=m*sN(s.offset,u[o]?u[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},w=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,M=Math.abs(v)+b,v&&(M-=w,M+=m*(i?sN(c.y,t.tickRotCorr.y+m*c.distance):sN(c.x,m*c.distance))),t.axisTitleMargin=sN(y,M),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&g){let e=this.tickSize("tick");u[o]=Math.max(u[o],(t.axisTitleMargin||0)+x+m*t.offset,M,a&&a.length&&e?e[0]+m*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[l]=Math.max(g[l],i)}sA(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,l=this.offset,h=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],m={x:e?u+h:g+(n?this.width:0)+l+h,y:e?g+d-(n?this.height:0)+l:u+d};return sA(this,"afterGetTitlePosition",{titlePosition:m}),m}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sc(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new sc(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,l=i.tickPositions,h=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=a.stackLabels,g=a.alternateGridColor,m=a.crossing,f=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sp(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sz(t,function(t){t.isActive=!1})}),sE(m)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(m,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sE(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),l.length&&(l.forEach(function(t,e){i.renderTick(t,e,r)}),f&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sc(i,-1,null,!0)),d[-1].render(-1))),g&&l.forEach(function(r,a){e=void 0!==l[a+1]?l[a+1]+f:i.max-f,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,l,h,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=h}else{let l=this.lin2log(e),h=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sq(t=sK("auto"===d?null:d,this.minorAutoInterval,(h-l)*c/(p||1))),n=o.getLinearTickPositions(t,l,h).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(h||(h={}));let sJ=h,{erase:sQ,extend:s0,isNumber:s1}=J;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!s1(this.min)||!s1(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),l,h=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),h=0),l=0;l{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s2.compose(os,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){s7(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:l}=t.chart,h={},d=l.parse(e.to),c=l.parse(e.from),p=l.parse(e.value),u=e.borderWidth,g=e.label,{label:m,svgElem:f}=this,x=[],y,b=s9(c)&&s9(d),v=s9(p),M=!f,w={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},k=b?"bands":"lines";if(!t.chart.styledMode&&(v?(w.stroke=o||"#999999",w["stroke-width"]=oi(e.width,1),e.dashStyle&&(w.dashstyle=e.dashStyle)):b&&(w.fill=o||"#e6e9ff",u&&(w.stroke=e.borderColor,w["stroke-width"]=u))),h.zIndex=a,k+="-"+a,(y=t.plotLinesAndBandsGroups[k])||(t.plotLinesAndBandsGroups[k]=y=n.g("plot-"+k).attr(h).add()),f||(this.svgElem=f=n.path().attr(w).add(y)),s9(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:f.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s9(c)&&s9(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(oe(r,(t,e)=>{f?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(M||!f.d)&&x?.length?f.attr({d:x}):f&&(x?(f.show(),f.animate({d:x})):f.d&&(f.hide(),m&&(this.label=m=m.destroy()))),g&&(s9(g.text)||s9(g.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(g=ot({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},g),this.renderLabel(g,x,b,a)):m&&m.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(ot({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let l=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],h=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s5(l),c=s5(h),p=s6(l)-d;n.align(t,!1,{x:d,y:c,width:p,height:s6(h)-c}),(!n.alignValue||"left"===n.alignValue||s9(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return s9(t.formatter)?t.formatter.call(this):t.text}destroy(){s4(this.axis.plotLinesAndBands,this),delete this.axis,s8(this)}}let{animObject:oo}=tF,{format:or}=eh,{composed:oa,dateFormats:on,doc:ol,isSafari:oh}=A,{distribute:od}=em,{addEvent:oc,clamp:op,css:ou,discardElement:og,extend:om,fireEvent:of,isArray:ox,isNumber:oy,isObject:ob,isString:ov,merge:oM,pick:ow,pushUnique:ok,splat:oS,syncTimeout:oT}=J;class oC{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||oS(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),og(this.container)),J.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=oS(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+ow(t.colorIndex,o.colorIndex),r&&r.className].filter(ov).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=ed.getRendererType();this.container=a=A.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),ou(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&A.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=ol,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:l,plotTop:h,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=n&&i.h||0,{height:m,width:f}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?f:m,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+l):x.top-s+b(p+h),0,a?f:m]:[a?t:e,a?c+l:p+h,a?l:h,a?l+o.plotWidth:h+o.plotHeight])},M=v("y"),w=v("x"),k,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let T=!this.followPointer&&ow(i.ttBelow,!d&&!n===S),C=function(t,e,i,o,a,n,l){let h=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?f:f+g)}},A=function(t,e,i,o,r){if(re-s)return!1;re-o/2?u[t]=e-o-2:u[t]=r-i/2},P=function(t){[M,w]=[w,M],k=t},L=()=>{!1!==C.apply(0,M)?!1!==A.apply(0,w)||k||(P(!0),L()):k?u.x=u.y=0:(P(!0),L())};return(n&&!d||this.len>1)&&P(),L(),u}hide(t){let e=this;J.clearTimeout(this.hideTimer),t=ow(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oT(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=ow(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=oo(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=oS(t),n=a[0],l=s.format,h=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;J.clearTimeout(this.hideTimer),this.allowShared=!(!ox(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let m=ov(l)?or(l,n,i):h.call(n,this);n.points=void 0;let f=n.series;if(this.distance=ow(f.tooltipOptions.distance,16),!1===m)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(m,a);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===f.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:m&&m.join?m.join(""):m}),this.outside&&t.attr({x:op(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||f.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}of(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:l,scrollablePixelsY:h=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{positioner:g},pointer:m}=i,{scrollLeft:f=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?ol.documentElement.getBoundingClientRect():{left:f,right:f+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,M=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:w,top:k}=m.getChartPosition(),S=l+x,T=0,C=a-h;function A(t,e,s,o,r=!0){let a,n;return s?(a=M?0:C,n=op(t-o/2,y.left,y.right-o-(i.outside?w:0))):(a=e-S,n=op(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}ov(t)&&(t=[!1,t]);let P=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},h=r.isHeader,d=h?i:r.series,m=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:u.padding,r:u.borderRadius};c||(t.fill=u.backgroundColor,t["stroke-width"]=u.borderWidth??1),o=v.label("",0,0,u[r?"headerShape":"shape"],void 0,void 0,u.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(u.style).attr({stroke:u.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),f=m.getBBox(),x=f.width+m.strokeWidth();h&&(T=f.height,C+=T,M&&(S-=T));let{anchorX:w,anchorY:k}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:h}=t;if(s)e=Math.max(n+o,n),i=l+a/2;else{let{xAxis:t,yAxis:s}=h;e=t.pos+op(o,-p,t.len+p),h.shouldShowTooltip(0,s.pos-l+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=op(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof k){let e=f.height+1,s=g?g.call(i,x,e,r):A(w,k,h,x);t.push({align:g?0:void 0,anchorX:w,anchorY:k,boxWidth:x,point:r,rank:ow(s.rank,h?1:0),size:e,target:s.y,tt:m,x:s.x})}else m.isActive=!1}return t},[]);!g&&P.some(t=>{let{outside:e}=i,s=(e?w:0)+t.anchorX;return ss})&&(P=P.map(t=>{let{x:e,y:i}=A(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return om(t,{target:i,x:e})})),i.cleanSplit(),od(P,C);let L={left:w,right:w};P.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&w+eL.right&&(L.right=w+e))}),P.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(L.right-L.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:O,outside:E,renderer:I}=i;if(E&&O&&I){let{width:t,height:e,x:i,y:s}=b.getBBox();I.setSize(t+i,e+s,!1),O.style.left=L.left+"px",O.style.top=k+"px"}oh&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",l=s[e?"footerFormat":"headerFormat"];return of(this,"headerFormatter",a,function(e){if(r&&!n&&oy(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(ob(n)){let t=n;on[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{l=l.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(l=this.styledModeFormat(l)),e.text=or(l,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,oM(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:l=0}=this.getLabel(),{left:h,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),u=(o.positioner||this.getPosition).call(this,l,n,t),g=A.doc,m=(t.plotX||0)+e.plotLeft,f=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(u.x+=h-s,u.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(op(l+x,0,g.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(ou(i,{transform:`scale(${c}, ${p})`}),m*=c,f*=p),m+=h-u.x,f+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),m,f)}}!function(t){t.compose=function(e){ok(oa,"Core.Tooltip")&&oc(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oC||(oC={}));let oA=oC,{animObject:oP}=tF,{defaultOptions:oL}=tM,{format:oO}=eh,{addEvent:oE,crisp:oI,erase:oD,extend:oB,fireEvent:oz,getNestedProperty:oN,isArray:oR,isFunction:oW,isNumber:oj,isObject:oX,merge:oG,pick:oF,syncTimeout:oH,removeEvent:oY,uniqueKey:oV}=J;class oU{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oB({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oB(this,t=oU.prototype.optionsToObject.call(this,t)),this.options=this.options?oB(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oU.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oj(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oj(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oP(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oY(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oD(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oH(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oz(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oN(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oV()),this.resolveColor(),t.chart.pointCount++,oz(this,"afterInit")}isValid(){return(oj(this.x)||this.x instanceof Date)&&oj(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,l=0;if(oj(t)||null===t)r[s[0]]=t;else if(oR(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);l0?oU.prototype.setNestedProperty(r,t[n],s[l]):r[s[l]]=t[n]),n++,l++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,l=0;if(oj(i)&&oj(e))return t&&(n=r?r.pos:o.plotLeft,l=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+l,r.len-i+n]:[i+n,e+l]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oF(this.options.colorIndex,a),this.color=oF(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oX(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oO(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,l=a.chart,h=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oX(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),h.data[o]=oX(h.data[o],!0)||oX(t,!0)?r.options:oF(t,h.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(l.isDirtyBox=!0),"point"===h.legendType&&(l.isDirtyLegend=!0),e&&l.redraw(i)}e=oF(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oF(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oG(this.series.options.point,this.options),i=e.events?.[t];oW(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oE(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oY(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oL.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},l=!1===n.enabled,h=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,m,f=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(l||a&&!1===n.enabled)||t&&h.states&&h.states[t]&&!1===h.states[t].enabled)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),m=oF(d.options.chart.animation,o.animation);let e=g.opacity;i.options.inactiveOtherPoints&&oj(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},m),t.connector&&t.connector.animate({opacity:e},m))}),this.graphic.animate(g,m)}u&&this.graphic.animate(u,oF(d.options.chart.animation,n.animation,r.animation)),f&&f.hide()}else t&&n&&(x=h.symbol||i.symbol,f&&f.currentSymbol!==x&&(f=f.destroy()),u&&(f?f[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=f=d.renderer.symbol(x,u.x,u.y,u.width,u.height,oG(r,n)).add(i.markerGroup),f.currentSymbol=x)),!d.styledMode&&f&&"inactive"!==this.state&&f.attr(i.pointAttribs(this,t))),f&&(f[t&&this.isInside?"show":"hide"](),f.element.point=this,f.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||f,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oF(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oB({fill:this.color||i.color,"fill-opacity":y.opacity},t2.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oz(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oI(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oZ=oU,{parse:o$}=tC,{charts:o_,composed:oq,isTouchDevice:oK}=A,{addEvent:oJ,attr:oQ,css:o0,extend:o1,find:o2,fireEvent:o3,isNumber:o6,isObject:o5,objectEach:o9,offset:o8,pick:o4,pushUnique:o7,splat:rt}=J;class re{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!A.chartCount&&(re.unbindDocumentMouseUp.forEach(t=>t.unbind()),re.unbindDocumentMouseUp.length=0,re.unbindDocumentTouchEnd&&(re.unbindDocumentTouchEnd=re.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),o9(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o3(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:l=0}=o,h=i.attrs;h.x=o.plotLeft,h.y=o.plotTop,h.width=r?1:o.plotWidth,h.height=a?1:o.plotHeight,r&&(s=t-n,h.width=Math.max(1,Math.abs(s)),h.x=(s>0?0:s)+n),a&&(s=e-l,h.height=Math.max(1,Math.abs(s)),h.y=(s>0?0:s)+l)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,l=e.plotTop,h=e.plotWidth,d=e.plotHeight,c=o5(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,m,f=this.selectionMarker;if((!f||!f.touch)&&(un+h&&(u=n+h),gl+d&&(g=l+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){m=e.isInsidePlot(i-n,s-l,{visiblePlotOnly:!0});let{shapeType:r,attrs:h}=this.getSelectionMarkerAttrs(u,g);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&m&&!p&&!f&&(this.selectionMarker=f=e.renderer[r](),f.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||f.attr({fill:a||o$("#334eff").setOpacity(.25).get()})),f&&f.attr(h),m&&!f&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o3(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o6(i.index)&&(this.selectionMarker=s.destroy())}i&&o6(i.index)&&(o0(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o5(r,!0)&&r.series&&(!o5(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&o6(o.x)&&o6(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o8(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&o4(t.options.enableMouseTracking,!0)},l=e,h,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o3(this,"beforeGetHoverData",d),h=l&&!l.stickyTracking?[l]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(h,o,r);return l=c&&c.series,c&&(o&&!l.noSharedTooltip?(h=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=o2(t.points,function(t){return t.x===c.x&&!t.isNull});o5(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),o3(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:l,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=oQ(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o3(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o4(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o1(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o3(i.series,"click",o1(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(o1(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o3(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),A.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=o_[o4(re.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){o_[o4(re.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),l=i.tooltip,h=1===a&&o4(l?.options.followTouchMove,!0);a>1?e.initiated=!0:h&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):h?this.runPointActions(e.normalize(t)):o&&(o3(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&rt(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&rt(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,l=n&&n.series||s.hoverSeries,h=(!t||"touchmove"!==t.type)&&(!!e||l&&l.directTouch&&this.isDirectTouch),d=this.getHoverData(n,l,o,h,a,t);n=d.hoverPoint,l=d.hoverSeries;let c=d.hoverPoints,p=l&&l.tooltipOptions.followPointer&&!l.tooltipOptions.split,u=a&&l&&!l.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==l&&l.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(u?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oJ(s.container.ownerDocument,"mousemove",t=>o_[re.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o4((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=o2(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oJ(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oJ(t,"mouseleave",this.onContainerMouseLeave.bind(this))),re.unbindDocumentMouseUp.some(t=>t.doc===e)||re.unbindDocumentMouseUp.push({doc:e,unbind:oJ(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oJ(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oJ(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oJ(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),re.unbindDocumentTouchEnd||(re.unbindDocumentTouchEnd=oJ(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oJ(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oK)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o4(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oJ(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oJ(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||o0(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||o0(i,{"touch-action":o4(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=A.charts[o4(re.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(re.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o4(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o4(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}re.unbindDocumentMouseUp=[],function(t){t.compose=function(e){o7(oq,"Core.Pointer")&&oJ(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(re||(re={}));let ri=re,{fireEvent:rs,isArray:ro,objectEach:rr,uniqueKey:ra}=J,rn=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||ra(),this.modified=this,this.rowCount=0,this.versionTag=ra();let e=0;rr(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rr(this.columns,e=>{ro(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rr(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(rs(this,"afterSetColumns"),this.versionTag=ra())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rr(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(rs(this,"afterSetRows"),this.versionTag=ra())}},{extend:rl,merge:rh,pick:rd}=J;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:l}=t,h=this.symbol||"circle",d=l/2,c=o.renderer,p=s.group,u=a-Math.round((t.fontMetrics?.b||l)*(i?.4:.3)),g={},m,f=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"===r.linecap||(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,u],["L",n-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(f&&!1!==f.enabled&&n){let t=Math.min(rd(f.radius,d),d);0===h.indexOf("url")&&(f=rh(f,{width:l,height:l}),t=0),s.symbol=m=c.symbol(h,n/2-t,u-t,2*t,2*t,rl({context:"legend"},f)).addClass("highcharts-point").add(p),m.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rd(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(c||(c={}));let rc=c,{defaultOptions:rp}=tM,{extend:ru,extendClass:rg,merge:rm}=J;!function(t){function e(e,i){let s=rp.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oZ),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=A.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rp.plotOptions||{};if(s=s||"",n[i]=rm(n[s],o),delete t.seriesTypes[i],e(i,rg(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oZ{}ru(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(p||(p={}));let rf=p,{animObject:rx,setAnimation:ry}=tF,{defaultOptions:rb}=tM,{registerEventOptions:rv}=i4,{svg:rM,win:rw}=A,{seriesTypes:rk}=rf,{arrayMax:rS,arrayMin:rT,clamp:rC,correctFloat:rA,crisp:rP,defined:rL,destroyObjectProperties:rO,diffObjects:rE,erase:rI,error:rD,extend:rB,find:rz,fireEvent:rN,getClosestDistance:rR,getNestedProperty:rW,insertItem:rj,isArray:rX,isNumber:rG,isString:rF,merge:rH,objectEach:rY,pick:rV,removeEvent:rU,syncTimeout:rZ}=J;class r${constructor(){this.zoneAxis="y"}init(t,e){let i;rN(this,"init",{options:e}),this.dataTable??(this.dataTable=new rn);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rB(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rv(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rV(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rj(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rN(this,"afterInit")}is(t){return rk[t]&&this instanceof rk[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rN(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rV(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rj(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rD(18,!0,s)})}),rN(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rV(this.pointInterval,i.pointInterval,1),o&&rG(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rG(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rB(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rL(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rH(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rN(this,"setOptions",n);let l=n.plotOptions[this.type],h=o.plotOptions||{},d=h.series||{},c=rb.plotOptions[this.type]||{},p=h[this.type]||{};this.userOptions=n.userOptions;let u=rH(l,s.series,p,r);this.tooltipOptions=rH(rb.tooltip,rb.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,h.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rV(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===l.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map(t=>({...t}));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},a||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&rL(g[g.length-1].value)&&g.push(a?{}:{color:this.color,fillColor:this.fillColor}),rN(this,"afterSetOptions",{options:u}),u}getName(){return rV(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,l=i?.length||r.options.chart.colorCount;!e&&(rL(o=rV("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%l,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rb.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,l=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oZ&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(l&&l.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rz(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rG(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rG(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,l,h,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let h;let d=rL(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rG(p)?(-1===(h=this.findPointIndex(d,c))||void 0===h?r.push(t):o[h]&&t!==i.data[h]?(o[h].update(t,!1,null,!1),o[h].touched=!0,a&&(c=h+1)):o[h]&&(o[h].touched=!0),(!n||e!==h||s&&s.enabled||this.hasDerivedData)&&(l=!0)):r.push(t)},this),l)for(h=o.length;h--;)(d=o[h])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=rS(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,l=a.dataSorting,h=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),u=this.pointValKey||"y",g=(this.pointArrayMap||[]).length,m=a.keys,f,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rH(!0,t));let M=(t=v||t||[]).length;if(l&&l.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&M&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&M>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,M-1,-1),o=t=>!!(rX(t)&&(m||rG(t[0])));if(rG(i)&&rG(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[u]:i})}else if(o(i)&&o(s)){if(g){let e=i.length===g?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=g;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{m&&(y=m.indexOf("x"),b=m.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[u]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(f=0;f{let s=rW(i,t),o=rW(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,l=r?.logarithmic,h=i.rowCount,d,c,p=0,u,g,m,f=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,m=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||h>a||e.forceCrop)&&(f[h-1]m?x=new rn:e.getColumn(e.pointValKey||"y").length&&(f[0]m)&&(x=(d=this.cropData(i,g,m)).modified,p=d.start,c=!0))),f=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rR([l?f.map(l.log2lin):f],()=>e.requireSorting&&!y&&rD(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rN(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,l=0,h=o;for(a=0;a=e){l=Math.max(0,a-1);break}for(n=a;ni){h=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(l,h))}return{modified:new rn({columns:r}),start:l,end:h}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,l=t.keys,h=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],u=this.dataColumnKeys(),g,m,f,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(l&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],h=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,u=o||this.cropped||!i,g,m,f,x=0,y=0;for(i&&(x=(g=i.getExtremes()).min,y=g.max),f=0;f=x&&(h[f-c]||m)<=y)for(let t of l){let e=t[f];rG(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rT(d),dataMax:rS(d)};return rN(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&l?.element&&l.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rY(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rN(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let l=this.chart,h=l.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||"markerGroup"],g=this.xAxis,m=rV(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=l.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(u),this.enabledDataSorting&&l.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,h||!i.selected?void 0:"select");h?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,l,h=rV(o.radius,s&&s.radius);e&&(n=s.states[e],h=rV((l=o.states&&o.states[e])&&l.radius,n&&n.radius,h&&h+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(h=0);let d=t.pos();return rG(h)&&d&&(i.crisp&&(d[0]=rP(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-h,a.y=d[1]-h),h&&(a.width=a.height=2*h),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,l,h,d=this.color,c,p,u=rV(o.lineWidth,i.lineWidth),g=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",l=i.states[e]||{},u=rV((h=o.states&&o.states[e]||{}).lineWidth,l.lineWidth,u+rV(h.lineWidthPlus,l.lineWidthPlus,0)),c=h.fillColor||l.fillColor||c,{stroke:p=h.lineColor||l.lineColor||p,"stroke-width":u,fill:c,opacity:g=rV(h.opacity,l.opacity,g)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(rw.navigator.userAgent),n=o.data||[];for(rN(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rI(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rO(t,void 0,!0);J.clearTimeout(o.animationTimeout),rY(o,function(t,e){t instanceof e_&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rI(r.series,o),r.orderItems("series"),rY(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:l,renderer:h}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,m=(t,e=0,i=0)=>{l&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rC(d.toPixels(rV(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,u=0,m=r.len,y=a.len;c?(p=o,m=x):(u=o,y=x);let b=[["M",p,u],["L",m,u],["L",m,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...f,b[3],b[4]];f=s.reverse(),x=o,l&&(g(v),t&&g(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=h.path(v),t&&(d=e.simpleClip=h.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rL(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rL(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rU(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rx(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,l=t.finishedAnimating?0:o.duration;rN(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),l&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),l&&t.animate?.(),s||(l&&o.defer&&(l+=o.defer),t.animationTimeout=rZ(()=>{t.afterAnimate()},l||0)),t.isDirty=!1,t.hasRendered=!0,rN(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rZ(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,l=e?"distX":"dist",h=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>[(t[i]||0)<(e[i]||0)?t:e,!1]),p=o||((t,e)=>t=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,l=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},h="rgba(192,192,192,"+(rM?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:h,fill:i?h:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",l).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",l))})),rN(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:l,data:h,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,u=n.data,g=this.getColumn("x");e=rV(e,!0);let m={series:this};this.pointClass.prototype.applyOptions.apply(m,[t]);let f=m.x;if(a=g.length,this.requireSorting&&ff;)a--;d.setRow(m,a,!0,{addColumns:!1}),p&&m.name&&(p[f]=m.name),u?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(h[0]&&h[0].remove?h[0].remove(!1):([h,u,...Object.values(d.getColumns())].filter(rL).forEach(t=>{t.shift()}),d.rowCount-=1,rN(d,"afterDeleteRows"))),!1!==o&&rN(this,"addPoint",{point:m}),this.isDirty=!0,this.isDirtyData=!0,e&&l.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,l=r[t],h=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rL).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rN(n,"afterDeleteRows"),l?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};ry(i,o),e=rV(e,!0),l?l.firePointEvent("remove",null,h):h()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rV(t,!0)&&r.redraw(e)}!1!==i?rN(o,"remove",null,a):a()}update(t,e){rN(this,"update",{options:t=rE(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rk[r].prototype,l=i.finishedAnimating&&{animation:!1},h={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],u=t.type||o.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));u=u||r,g?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rB(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rH(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!g&&{data:i.options.data},t,l),g&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let m=!1;if(rk[u]){if(m=u!==i.type,i.remove(!1,!1,!1,!0),m){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rk[u].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rB(i,rk[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rD(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(h.graphic=1,h.dataLabel=1):(this.hasMarkerChanged(d,o)&&(h.graphic=1),i.hasDataLabels?.()||(h.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(h).length&&t.destroyElements(h),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),m&&i.linkedSeries.length&&(i.isDirtyData=!0),rN(this,"afterUpdate"),rV(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rV(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rL(r)?i!==o:i!==rV(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rN(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rN(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rV(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),l=s.lineWidth,h=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(l=a[t].lineWidth||l+(a[t].lineWidthPlus||0),h=rV(a[t].opacity,h)),o&&!o.dashstyle&&rG(l))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":l},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:h},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rN(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rN(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rc[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}r$.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},r$.types=rf.seriesTypes,r$.registerType=rf.registerSeriesType,rB(r$.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oZ,requireSorting:!0,sorted:!0}),rf.series=r$;let r_=r$,{animObject:rq,setAnimation:rK}=tF,{registerEventOptions:rJ}=i4,{composed:rQ,marginNames:r0}=A,{distribute:r1}=em,{format:r2}=eh,{addEvent:r3,createElement:r6,css:r5,defined:r9,discardElement:r8,find:r4,fireEvent:r7,isNumber:at,merge:ae,pick:ai,pushUnique:as,relativeLength:ao,stableSort:ar,syncTimeout:aa}=J;class an{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rJ(this,e),r3(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r3(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=ai(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=ae(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=ai(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(ae(!0,this.options,t)),"events"in this.options&&rJ(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,ai(e,!0)&&i.redraw(),r7(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof r_||t instanceof oZ)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:l,fillOpacity:h,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(ae(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:l||t.color,"fill-opacity":l?1:h??.75}))}t.color=i,r7(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[r9(e.translateY)?"animate":"attr"](o,void 0,()=>{r7(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r8(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,r5(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*M?v.height:M))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?ai(e.itemDistance,20):0,l=this.maxLegendWidth,h=e.alignColumns&&this.totalItemWidth>l?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+h>l&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=h:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):h)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&ai(i.showInLegend,!r9(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),r7(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!r9(t[a])&&(i[r0[a]]=Math.max(i[r0[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+ai(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,l;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=r4(a?t.points:t.points.slice(0).reverse(),function(t){return at(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,l=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(l-.3*r):l+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),r1(i,e.plotHeight)))t=o.item.legendItem||{},at(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,l=this.group,h,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ao(i.width,t.spacingBox.width-s),h=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(h/=2),this.maxLegendWidth=this.widthOption||h,l||(this.group=l=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(l),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),ar(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(l)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),l[r?"show":"hide"](),t.styledMode&&"none"===l.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),r7(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=ae(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(ae(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,l=o.maxHeight,h=o.navigation,d=ai(h.animation,!0),c=h.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?M.attr({height:t}):M&&(e.clipRect=M.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},m=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},f,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,M=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),l&&(b=Math.min(b,l)),p.length=0,t&&b>0&&t>b&&!1!==h.enabled?(this.clipHeight=f=Math.max(b-20-this.titleHeight-n,0),this.currentPage=ai(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>f&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((u[e-1].legendItem||{}).pageIx=o-1),e===u.length-1&&i+s-p[o-1]>f&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),M||(M=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(M)),g(f),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),m("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&h.style&&this.pager.css(h.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),m("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,l=this.padding,h=this.currentPage+t;h>o&&(h=o),h>0&&(void 0!==e&&rK(e,i),this.nav.attr({translateX:l,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===h?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:h+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:h===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===h?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===h?"default":"pointer"}),this.down.attr({fill:h===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:h===o?"default":"pointer"})),this.scrollOffset=-s[h-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=h,this.positionCheckboxes(),aa(()=>{r7(this,"afterScroll",{currentPage:h})},rq(ai(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oZ,n=t instanceof r_,l="highcharts-legend-"+(a?"point":"series")+"-active",h=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(l),h||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(ae(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(l),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(l),r7(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&r7(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=r6("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r3(t.checkbox,"click",function(e){let i=e.target;r7(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){as(rQ,"Core.Legend")&&r3(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(an||(an={}));let al=an,{animate:ah,animObject:ad,setAnimation:ac}=tF,{defaultOptions:ap}=tM,{numberFormat:au}=eh,{registerEventOptions:ag}=i4,{charts:am,doc:af,marginNames:ax,svg:ay,win:ab}=A,{seriesTypes:av}=rf,{addEvent:aM,attr:aw,createElement:ak,css:aS,defined:aT,diffObjects:aC,discardElement:aA,erase:aP,error:aL,extend:aO,find:aE,fireEvent:aI,getAlignFactor:aD,getStyle:aB,isArray:az,isNumber:aN,isObject:aR,isString:aW,merge:aj,objectEach:aX,pick:aG,pInt:aF,relativeLength:aH,removeEvent:aY,splat:aV,syncTimeout:aU,uniqueKey:aZ}=J;class a${static chart(t,e,i){return new a$(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aW(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aG(t.zoomType,e.type),key:aG(t.zoomKey,e.key),pinchType:aG(t.pinchType,e.pinchType),singleTouch:aG(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aj(e.resetButton,t.resetZoomButton)}}init(t,e){aI(this,"init",{args:arguments},function(){let i=aj(ap,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=aO({},t),(this.renderTo=aW(o)?af.getElementById(o):o)||aL(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tm(aO(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||au).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=am.length,am.push(this),A.chartCount++,ag(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aI(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=av[i];s||aL(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aV(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aV(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(l+r,t.pos)&&e<=Math.min(l+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+u:a+u;e>=Math.max(h+a,t.pos)&&e<=Math.min(h+a+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return aI(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){aI(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),l=[],h,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),ac(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){h=!0;break}if(h)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),u=!0):r&&(r.labelFormatter||r.labelFormat)&&(u=!0)),t.isDirtyData&&aI(t,"updatedData")}),u&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,l.push(function(){aI(t,"afterSetExtremes",aO(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aI(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aI(this,"redraw"),aI(this,"render"),n&&this.temporaryDisplay(!0),l.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aE(this.axes,i)||aE(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aG(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aj(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(aO("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aj(o),n=i?.textPxLength||0;if(i&&r){aI(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),l=o.b,h=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(a.width/n,1),m=Math.max(p,g),f=aj({y:"bottom"===d?l:u+l},{align:"title"===t?gp?this.chartWidth:a.width)/m;i.alignValue!==f.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(f.height=y,i.align(f,!1,a).attr({align:f.align,scaleX:m,scaleY:m,"transform-origin":`${a.x+n*m*aD(f.align)} ${h}`}),!r.floating){let t=y*(y<1.2*h?1:m);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,aI(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:aB(this.renderTo,"width",!0)||0,height:aB(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,aH(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(aS(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(af.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(af.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,af.body.appendChild(e)),("none"===aB(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),aS(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==af.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=aZ(),r=this.renderTo,a=aF(aw(r,s));aN(a)&&am[a]&&am[a].hasRendered&&am[a].destroy(),aw(r,s,this.index),r.innerHTML=t2.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,l=this.chartWidth;aS(r,{overflow:"hidden"}),this.styledMode||(t=aO({position:"relative",overflow:"hidden",width:l+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let h=ak("div",{id:o},t,r);this.container=h,this.getChartSize(),l===this.chartWidth||(l=this.chartWidth,this.styledMode||aS(h,{width:aG(i.style?.width,l+"px")})),this.containerBox=this.getContainerBox(),this._cursor=h.style.cursor;let d=i.renderer||!ay?ed.getRendererType(i.renderer):iF;if(this.renderer=new d(h,l,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),ac(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aI(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!aT(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!aT(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),aI(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),ax.forEach(function(i,o){aT(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return aC(this.userOptions,ap)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(J.clearTimeout(e.reflowTimeout),e.reflowTimeout=aU(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=aM(ab,"resize",e);aM(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ac(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:l=0,scrollablePixelsY:h=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?ah:aS)(s.container,{width:`${a+l}px`,height:`${n+h}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aI(s,"resize"),setTimeout(()=>{s&&aI(s,"endResize")},ad(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:l,renderer:h}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=h.spacingBox={x:l[3],y:l[0],width:a-l[3]-l[1],height:r-l[0]-l[2]},this.plotBox=h.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),h.alignElements()),aI(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){aI(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=aR(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aG(e[i+s],o[r])})}),ax.forEach(function(e,i){t[e]=aG(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,l=t.plotBackgroundImage,h=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,m=this.clipBox,f=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,M,w="animate";f||(this.chartBackground=f=e.rect().addClass("highcharts-background").add(),w="attr"),o?b=v=f.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),M={fill:a||"none"},(b||f["stroke-width"])&&(M.stroke=t.borderColor,M["stroke-width"]=b),f.attr(M).shadow(t.shadow)),f[w]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),w="animate",x||(w="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[w](u),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),l&&(r?(l!==r.attr("href")&&r.attr("href",l),r.animate(u)):this.plotBGImage=e.image(l,h,d,c,p).add())),g?g.animate({width:m.width,height:m.height}):this.clipRect=e.clipRect(m),w="animate",y||(w="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[w](y.crisp({x:h,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,aI(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=av[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=av[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aW(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aG(t.options.visible,s.options.visible,t.visible))}}),aI(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,l=0;for(let e of(this.setTitle(),aI(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sc(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aG(i.reserveSpace,!aN(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&l(l?1:1.1),n=i/this.plotHeight>(l?1:1.05),l++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aj(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(ab.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(aI(e,"destroy"),e.renderer.forExport?aP(am,e):am[e.index]=void 0,A.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),aY(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t2.emptyHTML,aY(o),r&&aA(o)),aX(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=az(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aI(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aI(this,"load"),aI(this,"render"),aT(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aI(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),aS(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:l,time:h}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:u,minPointOffset:g=0,options:m,reversed:f}=t,x=e?"width":"height",y=e?"x":"y",b=aG(a[x],t.len),v=aG(s[x],t.len),M=10>Math.abs(b)?1:b/v,w=(s[y]||0)+v/2-t.pos,k=w-((a[y]??t.pos)+b/2-t.pos)/M,S=f&&!l||!f&&l?-1:1;if(!o&&(w<0||w>t.len))continue;let T=t.toValue(k,!0)+(r||t.isOrdinal?0:g*S),C=t.toValue(k+u/M,!0)-(r||t.isOrdinal?0:g*S||0),A=t.allExtremes;if(T>C&&([T,C]=[C,T]),1===M&&!o&&"yAxis"===t.coll&&!A){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);A??(A={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aN(t.dataMin)&&aN(t.dataMax)&&(A.dataMin=Math.min(t.dataMin,A.dataMin),A.dataMax=Math.max(t.dataMax,A.dataMax))}t.allExtremes=A}let{dataMin:P,dataMax:L,min:O,max:E}=aO(t.getExtremes(),A||{}),I=h.parse(m.min),D=h.parse(m.max),B=P??I,z=L??D,N=C-T,R=t.categories?0:Math.min(N,z-B),W=B-R*(aT(I)?0:m.minPadding),j=z+R*(aT(D)?0:m.maxPadding),X=t.allowZoomOutside||1===M||"zoom"!==n&&M>1,G=Math.min(I??W,W,X?O:W),F=Math.max(D??j,j,X?E:j);(!t.isOrdinal||t.options.overscroll||1!==M||o)&&(T=1&&(C=T+N)),C>F&&(C=F,M>=1&&(T=C-N)),(o||t.series.length&&(T!==O||C!==E)&&T>=G&&C<=F)&&(r?r[t.coll].push({axis:t,min:T,max:C}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:T,o?void 0:C,!1,!1,{move:k,trigger:n,scale:M}),!o&&(T>G||C{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}aO(a$.prototype,{callbacks:[],collectionsWithInit:{xAxis:[a$.prototype.addAxis,[!0]],yAxis:[a$.prototype.addAxis,[!1]],series:[a$.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let a_=a$,{stop:aq}=tF,{composed:aK}=A,{addEvent:aJ,createElement:aQ,css:a0,defined:a1,erase:a2,merge:a3,pushUnique:a6}=J;function a5(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new a8(this)),t?.applyFixed()}function a9(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class a8{static compose(t,e,i){a6(aK,this.compose)&&(aJ(t,"afterInit",a9),aJ(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),aJ(e,"render",a5),aJ(i,"show",a9))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:l,inverted:h,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=a3(t.plotBox),l.width=t.plotWidth+=i,n[h?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),a1(s)&&(t.scrollablePlotBox=a3(t.plotBox),l.height=t.plotHeight+=s,n[h?"width":"height"]+=s,o=!1)),a1(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=ed.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=aQ("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),l=this.scrollingContainer=aQ("div",{className:"highcharts-scrolling"},a,n),h=this.innerContainer=aQ("div",{className:"highcharts-inner-container"},void 0,l),d=this.fixedDiv=aQ("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),l.parentNode.insertBefore(d,l),a0(t.renderTo,{overflow:"visible"}),aJ(t,"afterShowResetZoom",r),aJ(t,"afterApplyDrilldown",r),aJ(t,"afterLayOutTitles",r),aJ(l,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),h.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:l,plotLeft:h,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:m=0}=t.options.chart.scrollablePlotArea||{},f=r+p,x=a+u;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),aq(t.container),a0(n,{width:`${f}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:f,height:x,viewBox:[0,0,f,x].join(" ")}),t.chartBackground?.attr({width:f,height:x}),a0(s,{width:`${r}px`,height:`${a}px`}),a1(i)||(s.scrollLeft=p*g,s.scrollTop=u*m);let y=d-o[0]-1,b=h-o[3]-1,v=d+l+o[2]+1,M=h+c+o[1]+1,w=h+c-p,k=d+l-u,S=[["M",0,0]];p?S=[["M",0,y],["L",h-1,y],["L",h-1,v],["L",0,v],["Z"],["M",w,y],["L",r,y],["L",r,v],["L",w,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",M,d-1],["L",M,0],["Z"],["M",b,k],["L",b,a],["L",M,a],["L",M,k],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=a8.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a6(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a2(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}a8.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:a4}=eh,{series:a7}=rf,{destroyObjectProperties:nt,fireEvent:ne,getAlignFactor:ni,isNumber:ns,pick:no}=J,nr=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){nt(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?a4(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:no(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,ne(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:l,options:h,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=a;if(l&&p){let t=l.getBBox(void 0,0),e=l.padding,i="justify"===no(h.overflow,"justify"),s;a.x=h.x||0,a.y=h.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,l.align(a,!1,p),(s=c.isInsidePlot(l.alignAttr.x+a.x+o,l.alignAttr.y+a.y+r))||(i=!1),i&&a7.prototype.justifyDataLabel.call(n,l,a,l.alignAttr,t,p),l.attr({x:l.alignAttr.x,y:l.alignAttr.y,rotation:h.rotation,rotationOriginX:t.width*ni(h.textAlign||"center"),rotationOriginY:t.height/2}),no(!i&&h.crop,!0)&&(s=ns(l.x)&&ns(l.y)&&c.isInsidePlot(l.x-e+(l.width||0),l.y)&&c.isInsidePlot(l.x+e,l.y)),l[s?"show":"hide"]()}ne(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*ni(i)-1),y:t.height/2*2*(1-ni(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,l=e.stacking.usePercentage?100:no(s,this.total,0),h=e.toPixels(l),d=t.xAxis||i.xAxis[0],c=no(o,d.translate(this.x))+r,p=Math.abs(h-e.toPixels(n||ns(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?h:h-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(g?h-p:h)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:na}=tF,{series:{prototype:nn}}=rf,{addEvent:nl,correctFloat:nh,defined:nd,destroyObjectProperties:nc,fireEvent:np,isNumber:nu,objectEach:ng,pick:nm}=J;function nf(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nm(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function nx(){let t=this.stacking;if(t){let e=t.stacks;ng(e,(t,i)=>{nc(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function ny(){this.stacking||(this.stacking=new nS(this))}function nb(t,e,i,s){return!nd(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function nv(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,l,h;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),l=o[i]?.[a],(h=l?.points[t.key||""])&&n.call(e,h,l,s)})}function nM(t,e,i){let s=e.total?100/e.total:0;t[0]=nh(t[0]*s),t[1]=nh(t[1]*s),this.stackedYData[i]=t[1]}function nw(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?nn.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nk(t,e){let i,s,o,r,a,n,l;let h=e||this.options.stacking;if(!h||!this.reserveSpace()||(({group:"xAxis"})[h]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,m=g.threshold||0,f=g.startFromThreshold?m:0,x=g.stack,y=e?`${this.type},${h}`:this.stackKey||"",b="-"+y,v=this.negStacks,M=t.stacking,w=M.stacks,k=M.oldStacks;for(M.stacksTouched+=1,l=0;l0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===h?(r=s?y:b,S=v&&w[r]?.[e]?(r=w[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):nh(S+Math.abs(g))):"group"===h?nu(u)&&S++:S=nh(S+g),"group"===h?o.cumulative=(S||1)-1:o.cumulative=nh(nm(o.cumulative,f)+g),o.total=S,null!==u&&(o.points[n].push(o.cumulative),p[l]=o.cumulative,o.hasValidPoints=!0)}"percent"===h&&(M.usePercentage=!0),"group"!==h&&(this.stackedYData=p),M.oldStacks={}}class nS{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{ng(t,t=>{t.cumulative=t.total})}))}resetStacks(){ng(this.stacks,t=>{ng(t,(e,i)=>{nu(e.touched)&&e.touched{ng(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(u||(u={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(nl(t,"init",ny),nl(t,"destroy",nx),s.getStacks=nf,o.getStackIndicator=nb,o.modifyStacks=nv,o.percentStacker=nM,o.setGroupedPoints=nw,o.setStackedPoints=nk)};let nT=u,{defined:nC,merge:nA,isObject:nP}=J;class nL extends r_{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",l=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},l?r.dashstyle=l:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nA({filterUnits:"userSpaceOnUse"},nP(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,l=o.step,h=(t=t||s.points).reversed;return h&&t.reverse(),(l=({right:1,center:2})[l]||l&&3)&&h&&(l=4-l),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(h,d){let c;let p=h.plotX,u=h.plotY,g=t[d-1],m=h.isNull||"number"!=typeof u;(h.leftCliff||g&&g.rightCliff)&&!i&&(n=!0),m&&!nC(e)&&d>0?n=!o.connectNulls:m&&!e?n=!0:(0===d||n?c=[["M",h.plotX,h.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,h,d)]:l?(c=1===l?[["L",g.plotX,u]]:2===l?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(h.x),l&&(a.push(h.x),2===l&&a.push(h.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nL.defaultOptions=nA(r_.defaultOptions,{legendSymbol:"lineMarker"}),rf.registerSeriesType("line",nL);let{seriesTypes:{line:nO}}=rf,{extend:nE,merge:nI,objectEach:nD,pick:nB}=J;class nz extends nO{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nO.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,l=[],h=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(n.getThreshold(r.threshold)),g=nB(r.connectNulls,"percent"===a),m=function(i,s,o){let r=t[i],g=a&&c[r.x].points[d],m=r[o+"Null"]||0,f=r[o+"Cliff"]||0,x,y,b=!0;f||m?(x=(m?g[0]:g[1])+f,y=g[0]+f,b=!!m):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(h.push({plotX:e,plotY:null===x?u:n.getThreshold(x),isNull:b,isCliff:!0}),l.push({plotX:e,plotY:null===y?u:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&h.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=f.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},l=r.series,h=l.length,d=r.options.reversedStacks?1:-1,c=l.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,u){let g=0,m,f;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[u+i]],g=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>l?(o=Math.max(i,l),a=2*l-o):op&&a>l?(a=Math.max(p,l),o=2*l-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n6(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&n0(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(nK(s)){if(n1(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=n3(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,l=n3(i.minPointLength,5),h=t.getColumnMetrics(),d=h.width,c=t.pointXOffset=h.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=a.getThreshold(n),m=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(m=Math.ceil(m)),r_.prototype.translate.apply(t),t.points.forEach(function(s){let o=n3(s.yBottom,g),f=999+Math.abs(o),x=s.plotX||0,y=n_(s.plotY,-f,a.len+f),b,v=Math.min(y,o),M=Math.max(y,o)-v,w=d,k=x+c,S=m;l&&Math.abs(M)l?o-l:g-(b?l:0)),nK(s.options.pointWidth)&&(k-=Math.round(((w=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(k=t.adjustForMissingColumns(k,w,s,h)),s.barX=k,s.pointWidth=w,s.tooltipPos=e.inverted?[n_(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-k-S/2,M]:[r.left-e.plotLeft+k+S/2,n_(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),M],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(k,s.isNull?g:v,S,s.isNull?0:M)}),nQ(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,l,h=t&&t.color||this.color,d=t&&t[o]||i[o]||h,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,u=n3(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),h=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(l=(a=n2(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,h=a.color||void 0!==l&&nZ(h).brighten(a.brightness).get()||h,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,u=n3(a.opacity,u));let g={fill:h,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,l=t.graphic,h=!!l,d=l&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,l=t.plotX,h=t.plotY,d=i.rotation||0,c=n7(l)&&n7(h)&&r.isInsidePlot(l,Math.round(h),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===ln(i.overflow,a?"none":"justify"),u=this.visible&&!1!==t.visible&&n7(l)&&(t.series.forceDL||a&&!p||c||ln(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(l,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var m;let l=e.getBBox(),h=e.getBBox(void 0,0);if(s=lt({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),lt(i,{width:l.width,height:l.height}),m=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,m),e.align(lr(i,{width:h.width,height:h.height}),!1,s,!1),e.alignAttr.x+=li(i.align)*(h.width-l.width),e.alignAttr.y+=li(i.verticalAlign)*(h.height-l.height),e.attr({"text-align":e.alignAttr["text-align"]||"center"})[e.placed?"animate":"attr"]({x:e.alignAttr.x+(l.width-h.width)/2,y:e.alignAttr.y+(l.height-h.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,l,s,o);else if(ln(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+l.width-1,i+l.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&a&&(e.placed=!1),u||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:h}=s.options.chart,d=r.getContrast(lo(h)&&h||lo(a)&&a||"#000000"),c=l(i),{animation:p,defer:u}=c[0],g=u?n8(s,p,i):{defer:0,duration:0};le(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach(t=>{let a=t.dataLabels||[];lh(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,l)=>{let h=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:u,style:g={}}=n,m,f,x,y={},b=a[l],v=!b,M;h&&(f=n7(m=ln(n[t.formatPrefix+"Format"],n.format))?n4(m,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(g.color=ln(n.color,g.color,lo(i.color)?i.color:void 0,"#000000"),"contrast"===g.color?("none"!==c&&(M=c),t.contrastColor=r.getContrast("auto"!==M&&M||t.color||i.color),g.color=M||!n7(u)&&n.inside||0>ll(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(g.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),la(y,(t,e)=>{void 0===t&&delete y[e]})),!b||h&&n7(f)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),h&&n7(f)&&(b?y.text=f:(b=r.label(f,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?g.width&&b.css({width:g.width,textOverflow:g.textOverflow,whiteSpace:g.whiteSpace}):b.css(g).shadow(n.shadow),le(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[l]&&a[l]!==b&&a[l].destroy(),a[l]=b))});let l=a.length;for(;l--;)a[l]&&a[l].isActive?a[l].isActive=!1:(a[l]?.destroy(),a.splice(l,1));t.dataLabel=a[0],t.dataLabels=a})),le(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,l=e.verticalAlign,h=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,u=p?p.top-a.plotTop:0,{x:g=0,y:m=0}=e,f,x;return(f=(i.x||0)+h+c)<0&&("right"===n&&g>=0?(e.align="left",e.inside=!0):g-=f,x=!0),(f=(i.x||0)+s.width-h+c)>a.plotWidth&&("left"===n&&g<=0?(e.align="right",e.inside=!0):g+=a.plotWidth-f,x=!0),(f=i.y+h+u)<0&&("bottom"===l&&m>=0?(e.verticalAlign="top",e.inside=!0):m-=f,x=!0),(f=(i.y||0)+s.height-h+u)>a.plotHeight&&("top"===l&&m<=0?(e.verticalAlign="bottom",e.inside=!0):m+=a.plotHeight-f,x=!0),x&&(e.x=g,e.y=m,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(ls(t)&&!ls(e))i=t.map(function(t){return lr(t,e)});else if(ls(e)&&!ls(t))i=e.map(function(e){return lr(t,e)});else if(ls(t)||ls(e)){if(ls(t)&&ls(e))for(s=Math.max(t.length,e.length);s--;)i[s]=lr(t[s],e[s])}else i=lr(t,e);return i}function l(t){let e=t.chart.options.plotOptions;return lh(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function h(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,l=n.reversed,h=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:l?-h-c:n.width-h+c,e.startYPos=a?l?this.yAxis.height-h+c:-h-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=h,n.hasDataLabels=e)}}(g||(g={}));let ld=g,{composed:lc}=A,{series:lp}=rf,{merge:lu,pick:lg,pushUnique:lm}=J;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,l=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,h=t.dlBox||t.shapeArgs,d=lg(t.below,t.plotY>lg(this.translatedThreshold,l)),c=lg(i.inside,!!this.options.stacking);if(h){if(s=lu(h),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-l;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),lk(lT.prototype,{drawTracker:lv.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),lw(lT,"afterTranslate",function(){this.applyJitter()}),rf.registerSeriesType("scatter",lT);let{deg2rad:lC}=A,{fireEvent:lA,isNumber:lP,pick:lL,relativeLength:lO}=J;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,l,h=t.size,d=t.innerSize||0,c,p;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof d&&(d=parseFloat(d));let u=[lL(r?.[0],"50%"),lL(r?.[1],"50%"),lL(h&&h<0?void 0:t.size,"100%"),lL(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof r_||(u[3]=0),c=0;c<4;++c)p=u[c],l=c<2||2===c&&/%$/.test(p),u[c]=lO(p,[s,o,a,u[2]][c])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),lP(n)&&2*n0&&(u[3]=u[2]-2*n),lA(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=lP(t)?t:0,s=lP(e)&&e>i&&e-i<360?e:i+360;return{start:lC*(i+-90),end:lC*(s+-90)}}}(f||(f={}));let lE=f,{setAnimation:lI}=tF,{addEvent:lD,defined:lB,extend:lz,isNumber:lN,pick:lR,relativeLength:lW}=J;class lj extends oZ{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};lD(this,"select",s),lD(this,"unselect",s)}isValid(){return lN(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;lI(i,s.chart),e=lR(e,!0),this.sliced=this.options.sliced=t=lB(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}lz(lj.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,l,h]=a.center,d=h/2,{plotLeft:c,plotWidth:p}=a.chart,u="left"===t.alignment,{x:g,y:m}=t,f=o.x;if(i.crookDistance){let t=lW(i.crookDistance,1);f=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else f=n+(l-m)*Math.tan(s-Math.PI/2);let x=[["M",g,m]];return(u?f<=g&&f>=o.x:f>=g&&f<=o.x)&&x.push(["L",f,m]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:lX}=lE,{noop:lG}=A,{clamp:lF,extend:lH,fireEvent:lY,merge:lV,pick:lU}=J;class lZ extends r_{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:lU(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:it.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,l=Math.asin(lF((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(l)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||lV(!0,n,i),lV(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){lY(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=lX(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,l=a.length,h,d,c,p,u,g,m,f=0;for(t||(this.center=t=this.getCenter()),g=0;g1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),m.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,m.tooltipPos=[t[0]+.7*p,t[1]+.7*u],m.half=c<-Math.PI/2||c>Math.PI/2?1:0,m.angle=c}lY(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}lZ.defaultOptions=lV(r_.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),lH(lZ.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:n9.prototype.drawTracker,getCenter:lE.getCenter,getSymbol:lG,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:n9.prototype.pointAttribs,pointClass:lj,requireSorting:!1,searchPoint:lG,trackerGroups:["group","dataLabelsGroup"]}),rf.registerSeriesType("pie",lZ);let{composed:l$,noop:l_}=A,{distribute:lq}=em,{series:lK}=rf,{arrayMax:lJ,clamp:lQ,defined:l0,pick:l1,pushUnique:l2,relativeLength:l3}=J;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,l=a[2]/2,h=Math.cos(r),d=Math.sin(r),c=a[0]+h*l,p=a[1]+d*l,u=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+h*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+h*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,l=n[2]/2,h=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,g,m,f=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),lK.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=l3(o?.distance||0,s);0===i&&d[t.half].push(t),!l0(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),f=Math.max(f,r)})}),d.forEach((e,a)=>{let d=e.length,u=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),f>0&&(x=Math.max(0,h-l-f),y=Math.min(h+l+f,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,h-l-s.distance),s.bottom=Math.min(h+l+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),lq(u,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(h=>{let d=h.options||{},f=i.distributeBox,x=h.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=h.lineHeight||21,M=(v-h.getBBox().height)/2,w=0,k=y,S="inherit";if(x){if(u&&l0(f)&&x.distance>0&&(void 0===f.pos?S="hidden":(m=f.size,k=p.radialDistributionY(i,h))),d.justify)w=p.justify(i,h,l,n);else switch(d.alignTo){case"connectors":w=p.alignToConnectors(e,a,s,r);break;case"plotEdges":w=p.alignToPlotEdges(h,a,s,r);break;default:w=p.radialDistributionX(t,i,k-M,y,h)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:w+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:k+(d.y||0)-v/2},x.computed.x=w,x.computed.y=k-M,l1(d.crop,!0)){let t;w-(g=h.getBBox().width)s-b&&0===a&&(t=Math.round(w+g-s+b),c[1]=Math.max(t,c[1])),k-m/2<0?c[0]=Math.max(Math.round(-k+m/2),c[0]):k+m/2>o&&(c[2]=Math.max(Math.round(k+m/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===lJ(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;u=s.connector,a&&a.distance>0?(n=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||u.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),u[n?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:a.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=lQ(r,o,e[2]-Math.max(t[0],t[2])):(r=lQ(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=h>e&&t<(l-s)*(e-n)/(h-n)+s&&(a=!a)}return a}}(y||(y={}));let l5=y,{pointInPolygon:l9}=l5,{addEvent:l8,fireEvent:l4,objectEach:l7,pick:ht}=J;function he(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(l9({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,l,h=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{l7(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=ht(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,hi(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let ho={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=he,l8(t,"render",hs))}},{defaultOptions:hr}=tM,{noop:ha}=A,{addEvent:hn,extend:hl,isObject:hh,merge:hd,relativeLength:hc}=J,hp={radius:0,scope:"stack",where:void 0},hu=ha,hg=ha;function hm(t,e,i,s,o={}){let r=hu(t,e,i,s,o),{innerR:a=0,r:n=i,start:l=0,end:h=0}=o;if(o.open||!o.borderRadius)return r;let d=h-l,c=Math.sin(d/2),p=Math.max(Math.min(hc(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*a),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],l=o.params,{start:h,end:d,cx:c,cy:p}=l,u=n?a-i:a+i,g=u?Math.asin(i/u):0,m=n?g:-g,f=Math.cos(g)*u;r?(l.start=h+m,s[1]=c+f*Math.cos(h),s[2]=p+f*Math.sin(h),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(l.start),p+a*Math.sin(l.start)])):(l.end=d-m,o[6]=c+a*Math.cos(l.end),o[7]=p+a*Math.sin(l.end),t.splice(e+1,0,["A",i,i,0,0,1,c+f*Math.cos(d),p+f*Math.sin(d)])),o[4]=Math.abs(l.end-l.start)1?u:p);return r}function hf(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=hr.plotOptions?.[this.type]?.borderRadius,o=hx(t.borderRadius,hh(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:l=0,y:h=0}=a,d=h,c=l;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(hc(o.radius,n),n/2,"all"===u?l/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),hl(a,{brBoxHeight:c,brBoxY:d,r:g})}}}}function hx(t,e){return hh(t)||(t={radius:t||0}),hd(hp,e,t)}function hy(){let t=hx(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=hc(t.radius,(i.r||0)-(i.innerR||0)))}}function hb(t,e,i,s,o={}){let r=hg(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:l=e}=o,h=e-l,d=l+n-(e+s),c=h-a>-.1?0:a,p=d-a>-.1?0:a,u=Math.max(c&&h,0),g=Math.max(p&&d,0),m=[t+c,e],f=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],M=[t,e+s-p],w=[t,e+c],k=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=k(c,c-u);m[0]-=t,f[0]+=t,x[1]=w[1]=e+c-u}if(s=hS(i.minWidth,0)&&this.chartHeight>=hS(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=hT()),this.matchResponsiveRule(t,o)},this);let a=hk(...o.map(t=>hw((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=hv(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||hM(s,{matchResponsiveRule:e,setResponsive:i}),t}}(b||(b={}));let hC=b;A.AST=t2,A.Axis=sH,A.Chart=a_,A.Color=tC,A.DataLabel=ld,A.DataTableCore=rn,A.Fx=tE,A.HTMLElement=i1,A.Legend=al,A.LegendSymbol=rc,A.OverlappingDataLabels=A.OverlappingDataLabels||ho,A.PlotLineOrBand=os,A.Point=oZ,A.Pointer=ri,A.RendererRegistry=ed,A.Series=r_,A.SeriesRegistry=rf,A.StackItem=nr,A.SVGElement=e_,A.SVGRenderer=iF,A.Templating=eh,A.Tick=sc,A.Time=tm,A.Tooltip=oA,A.animate=tF.animate,A.animObject=tF.animObject,A.chart=a_.chart,A.color=tC.parse,A.dateFormat=eh.dateFormat,A.defaultOptions=tM.defaultOptions,A.distribute=em.distribute,A.format=eh.format,A.getDeferredAnimation=tF.getDeferredAnimation,A.getOptions=tM.getOptions,A.numberFormat=eh.numberFormat,A.seriesType=rf.seriesType,A.setAnimation=tF.setAnimation,A.setOptions=tM.setOptions,A.stop=tF.stop,A.time=tM.defaultTime,A.timers=tE.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;hn(t,"afterColumnTranslate",hf,{order:9}),hn(s,"afterTranslate",hy),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),hu=o.arc,hg=o.roundedRect,o.arc=hm,o.roundedRect=hb}},optionsToObject:hx}).compose(A.Series,A.SVGElement,A.SVGRenderer),lf.compose(A.Series.types.column),ld.compose(A.Series),s$.compose(A.Axis),i1.compose(A.SVGRenderer),al.compose(A.Chart),sJ.compose(A.Axis),ho.compose(A.Chart),l6.compose(A.Series.types.pie),os.compose(A.Chart,A.Axis),ri.compose(A.Chart),hC.compose(A.Chart),a8.compose(A.Axis,A.Chart,A.Series),nT.compose(A.Axis,A.Chart,A.Series),oA.compose(A.Pointer),J.extend(A,J);let{parse:hA}=tC,{addEvent:hP,extend:hL,merge:hO,pick:hE,splat:hI}=J;!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=hI(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))}))}),r=s.length;r--;)t.allItems.unshift(s[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function l(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==r?s.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",hA(this.start).tweenTo(hA(this.end),this.pos),void 0,!0)}function c(){this.elem.attr("stroke",hA(this.start).tweenTo(hA(this.end),this.pos),void 0,!0)}t.compose=function(t,p,u,g,m){let f=p.prototype,x=u.prototype,y=m.prototype;f.collectionsWithUpdate.includes("colorAxis")||(e=t,f.collectionsWithUpdate.push("colorAxis"),f.collectionsWithInit.colorAxis=[f.addColorAxis],hP(p,"afterCreateAxes",i),function(t){let i=t.prototype.createAxis;t.prototype.createAxis=function(t,s){if("colorAxis"!==t)return i.apply(this,arguments);let o=new e(this,hO(s.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),hE(s.redraw,!0)&&this.redraw(s.animation),o}}(p),x.fillSetter=d,x.strokeSetter=c,hP(g,"afterGetAllItems",s),hP(g,"afterColorizeItem",o),hP(g,"afterUpdate",r),hL(y,{optionalAxis:"colorAxis",translateColors:h}),hL(y.pointClass.prototype,{setVisible:l}),hP(m,"afterTranslate",a,{order:1}),hP(m,"bindAxes",n))},t.pointSetVisible=l}(v||(v={}));let hD=v,{parse:hB}=tC,{merge:hz}=J;!function(t){t.initDataClasses=function(t){let e=this.chart,i=this.legendItem=this.legendItem||{},s=this.options,o=t.dataClasses||[],r,a,n=e.options.chart.colorCount,l=0,h;this.dataClasses=a=[],i.labels=[];for(let t=0,i=o.length;t=s)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(i=this.normalizedValue(t),n=h.length;n--&&!(i>h[n][0]););s=h[n]||h[n+1],i=1-((o=h[n+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r}}(M||(M={}));let hN=M,{defaultOptions:hR}=tM,{series:hW}=rf,{defined:hj,extend:hX,fireEvent:hG,isArray:hF,isNumber:hH,merge:hY,pick:hV,relativeLength:hU}=J;hR.colorAxis=hY(hR.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class hZ extends sH{static compose(t,e,i,s){hD.compose(hZ,t,e,i,s)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},s=e.layout?"vertical"!==e.layout:"vertical"!==i.layout;this.side=e.side||s?2:1,this.reversed=e.reversed||!s,this.opposite=!s,super.init(t,e,"colorAxis"),this.userOptions=e,hF(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=s,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=hY(hR.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:i,height:s}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=i=+e.attr("width"),this.height=s=+e.attr("height"),this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-s,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?i:s)||hZ.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let i=this.chart.legend;i.allItems.forEach(function(t){t instanceof hZ&&t.drawLegendSymbol(i,t)}),i.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,i=e?1:0,s=e?0:1,o=t?[i,0,s,0]:[0,s,0,i];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},s=t.padding,o=t.options,r=this.options.labels,a=hV(o.itemDistance,10),n=this.horiz,{width:l,height:h}=this.getSize(),d=hV(o.labelPadding,n?16:30);this.setLegendColor(),i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(i.group)),i.symbol.attr({x:0,y:(t.baseline||0)-11,width:l,height:h}),i.labelWidth=l+s+(n?a:hV(r.x,r.distance)+(this.maxLabelLength||0)),i.labelHeight=h+s+(n?d:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,i,s,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(i=(o=t[r]).colorKey=hV(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),s=o[i+"Min"]&&o[i+"Max"],[i,"value","y"]))if((e=o.getColumn(a)).length)break;if(s)o.minColorValue=o[i+"Min"],o.maxColorValue=o[i+"Max"];else{let t=hW.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}hj(o.minColorValue)&&hj(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),s||hW.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let i;let s=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,a=this.pos,n=this.len;e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))a+n&&(i=a+n+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&s.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(s.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,s=this.top;return hH(i)?this.horiz?[["M",i-4,s-6],["L",i+4,s-6],["L",i,s],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,i=e.chart,s=e.legendItem&&e.legendItem.labels||[],o=i.options.legend,r=hV(o.valueDecimals,-1),a=hV(o.valueSuffix,""),n=t=>e.series.reduce((e,i)=>(e.push(...i.points.filter(e=>e.dataClass===t)),e),[]);return s.length||e.dataClasses.forEach((o,l)=>{let h=o.from,d=o.to,{numberFormatter:c}=i,p=!0;t="",void 0===h?t="< ":void 0===d&&(t="> "),void 0!==h&&(t+=c(h,r)+a),void 0!==h&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=c(d,r)+a),s.push(hX({chart:i,name:t,options:{},drawLegendSymbol:rc.rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of n(l))e.setState(t)},setVisible:function(){this.visible=p=e.visible=!p;let t=[];for(let e of n(l))e.setVisible(p),e.hiddenInDataClass=!p,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,p),t.forEach(t=>{hG(t,"afterDataClassLegendClick")})}},o))}),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:hV(hj(s)?hU(s,t.chartWidth):void 0,o?.symbolWidth,e?hZ.defaultLegendLength:12),height:hV(hj(i)?hU(i,t.chartHeight):void 0,o?.symbolHeight,e?12:hZ.defaultLegendLength)}}}hZ.defaultLegendLength=200,hZ.keepProps=["legendItem"],hX(hZ.prototype,hN),Array.prototype.push.apply(sH.keepProps,hZ.keepProps),A.ColorAxis=A.ColorAxis||hZ,A.ColorAxis.compose(A.Chart,A.Fx,A.Legend,A.Series);let h$={lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}},{defined:h_,extend:hq,pick:hK,wrap:hJ}=J;!function(t){let e,i=0;function s(t){let e=this.chart;t=this.normalize(t),e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(t.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,void 0,void 0,t.chartX,t.chartY)}function o(t){let s=this.chart,o=h_((t=this.normalize(t)).wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&clearTimeout(e),e=setTimeout(()=>{i=0},50)),i<10&&s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&s.mapView&&s.mapView.zoomBy(-((s.options.mapNavigation.mouseWheelSensitivity-1)*o),void 0,[t.chartX,t.chartY],!(1>Math.abs(o))&&void 0)}function r(t,e,i){let s=this.chart;if(e=t.call(this,e,i),s&&s.mapView){let t=s.mapView.pixelsToLonLat({x:e.chartX-s.plotLeft,y:e.chartY-s.plotTop});t&&hq(e,t)}return e}function a(t){let e=this.chart.options.mapNavigation;e&&hK(e.enableTouchZoom,e.enabled)&&(this.chart.zooming.pinchType="xy"),t.apply(this,[].slice.call(arguments,1))}t.compose=function(t){let e=t.prototype;e.onContainerDblClick||(hq(e,{onContainerDblClick:s,onContainerMouseWheel:o}),hJ(e,"normalize",r),hJ(e,"zoomOption",a))}}(w||(w={}));let hQ=w;function h0(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxY=e-t,r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}function h1(t,e,s,o,r){if(r){let t=r?.r||0;r.brBoxHeight=o+t}return i.roundedRect(t,e,s,o,r)}let h2={compose:function(t){(i=t.prototype.symbols).bottombutton=h0,i.topbutton=h1}},{setOptions:h3}=tM,{composed:h6}=A,{addEvent:h5,extend:h9,merge:h8,objectEach:h4,pick:h7,pushUnique:dt}=J;function de(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}class di{static compose(t,e,i){hQ.compose(e),h2.compose(i),dt(h6,"Map.Navigation")&&(h5(t,"beforeRender",function(){this.mapNavigation=new di(this),this.mapNavigation.update()}),h3(h$))}constructor(t){this.chart=t,this.navButtons=[]}update(t){let e=this,i=e.chart,s=e.navButtons,o=function(t){this.handler.call(i,t),de(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=h8(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();if(!i.renderer.forExport&&h7(r.enableButtons,r.enabled)){e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),h4(r.buttons,(t,a)=>{let n={padding:(t=h8(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&(h9(n,t.theme),n.style=h8(t.theme.style,t.style));let{text:l,width:h=0,height:d=0,padding:c=0}=t,p=i.renderer.button("+"!==l&&"-"!==l&&l||"",0,0,o,n,void 0,void 0,void 0,"zoomIn"===a?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+({zoomIn:"zoom-in",zoomOut:"zoom-out"})[a]).attr({width:h,height:d,title:i.options.lang[a],zIndex:5}).add(e.navButtonsGroup);if("+"===l||"-"===l){let e=h+1,s=[["M",c+3,c+d/2],["L",c+e-3,c+d/2]];"+"===l&&s.push(["M",c+e/2,c+3],["L",c+e/2,c+d-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(p)}if(p.handler=t.onclick,h5(p.element,"dblclick",de),s.push(p),h9(t,{width:p.width,height:2*(p.height||0)}),i.hasLoaded)p.align(t,!1,t.alignTo);else{let e=h5(i,"load",()=>{p.element&&p.align(t,!1,t.alignTo),e()})}});let t=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y);i.hasLoaded||h5(i,"render",function(){let s=i.exportingGroup?.getBBox();if(s){let i=e.navButtonsGroup.getBBox();if(t(s,i)){let t=-i.y-i.height+s.y-5,o=s.y+s.height-i.y+5,a=r.buttonOptions&&r.buttonOptions.verticalAlign;e.navButtonsGroup.attr({translateY:"bottom"===a?t:o})}}})}this.updateEvents(r)}updateEvents(t){let e=this.chart;h7(t.enableDoubleClickZoom,t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||h5(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),h7(t.enableMouseWheelZoom,t.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||h5(e.container,"wheel",function(t){if(!e.pointer.inClass(t.target,"highcharts-no-mousewheel")){let i=e.mapView?.zoom;e.pointer.onContainerMouseWheel(t),i!==e.mapView?.zoom&&de(t)}return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}let{column:{prototype:ds}}=rf.seriesTypes,{addEvent:dr,defined:da}=J;!function(t){function e(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new e_(i,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${i.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}t.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},t.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return da(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:ds.pointAttribs},t.compose=function(t){return dr(t.prototype.pointClass,"afterSetState",e),t}}(k||(k={}));let dn=k,{getOptions:dl}=tM,{isNumber:dh,merge:dd,pick:dc}=J;class dp extends a_{init(t,e){let i=dl().credits,s=dd({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:dc(i.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:dc(i.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&(dh(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,dh(e)&&dh(i)?this.mapView.projection.inverse([e,i]):void 0,dh(s)&&dh(o)?[s,o]:void 0))}update(t){t.chart&&"map"in t.chart&&this.mapView?.recommendMapView(this,[t.chart.map,...(this.options.series||[]).map(t=>t.mapData)],!0),super.update.apply(this,arguments)}}!function(t){t.maps={},t.mapChart=function(e,i,s){return new t(e,i,s)},t.splitPath=function(t){let e;return e="string"==typeof t?(t=t.replace(/([A-Z])/gi," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(t=>/[A-Z]/i.test(t)?t:parseFloat(t)):t,iF.prototype.pathToSegments(e)}}(dp||(dp={}));let du=dp,dg={boundsFromPath:function(t){let e=-Number.MAX_VALUE,i=Number.MAX_VALUE,s=-Number.MAX_VALUE,o=Number.MAX_VALUE,r;if(t.forEach(t=>{let a=t[t.length-2],n=t[t.length-1];"number"==typeof a&&"number"==typeof n&&(i=Math.min(i,a),e=Math.max(e,a),o=Math.min(o,n),s=Math.max(s,n),r=!0)}),r)return{x1:i,y1:o,x2:e,y2:s}}},{boundsFromPath:dm}=dg,df=rf.seriesTypes.scatter.prototype.pointClass,{extend:dx,isNumber:dy,pick:db}=J;class dv extends df{static getProjectedPath(t,e){return t.projectedPath||(e&&t.geometry?(e.hasCoordinates=!0,t.projectedPath=e.path(t.geometry)):t.projectedPath=t.path),t.projectedPath||[]}applyOptions(t,e){let i=this.series,s=super.applyOptions(t,e),o=i.joinBy;if(i.mapData&&i.mapMap){let t=o[1],e=super.getNestedProperty(t),r=void 0!==e&&i.mapMap[e];r?dx(s,{...r,name:s.name??r.name}):-1!==i.pointArrayMap.indexOf("value")&&(s.value=s.value||null)}return s}getProjectedBounds(t){let e=dm(dv.getProjectedPath(this,t)),i=this.properties,s=this.series.chart.mapView;if(e){let o=i&&i["hc-middle-lon"],r=i&&i["hc-middle-lat"];if(s&&dy(o)&&dy(r)){let i=t.forward([o,r]);e.midX=i[0],e.midY=i[1]}else{let t=i&&i["hc-middle-x"],s=i&&i["hc-middle-y"];e.midX=e.x1+(e.x2-e.x1)*db(this.middleX,dy(t)?t:.5);let o=db(this.middleY,dy(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){J.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,t):this.series.onMouseOut()}setVisible(t){this.visible=this.options.visible=!!t,this.dataLabel&&this.dataLabel[t?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(t){let e=this.series.chart,i=e.mapView,s=this.bounds;if(i&&s){let o=dy(this.insetIndex)&&i.insets[this.insetIndex];if(o){let t=o.projectedUnitsToPixels({x:s.x1,y:s.y1}),e=o.projectedUnitsToPixels({x:s.x2,y:s.y2}),r=i.pixelsToProjectedUnits({x:t.x,y:t.y}),a=i.pixelsToProjectedUnits({x:e.x,y:e.y});s={x1:r.x,y1:r.y,x2:a.x,y2:a.y}}i.fitToBounds(s,void 0,!1),this.series.isDirty=!0,e.redraw(t)}}}dx(dv.prototype,{dataLabelOnNull:dn.pointMembers.dataLabelOnNull,moveToTopOnHover:dn.pointMembers.moveToTopOnHover,isValid:dn.pointMembers.isValid});let{isNumber:dM}=J,dw={center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}},{win:dk}=A,{format:dS}=eh,{error:dT,extend:dC,merge:dA,wrap:dP}=J;!function(t){function e(t){return this.mapView&&this.mapView.lonLatToProjectedUnits(t)}function i(t){return this.mapView&&this.mapView.projectedUnitsToLonLat(t)}function s(t,e){let i=this.options.chart.proj4||dk.proj4;if(!i){dT(21,!1,this);return}let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:d=0}=e,c=i(e.crs,[t.lon,t.lat]),p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=e.rotation?[c[0]*p+c[1]*u,-c[0]*u+c[1]*p]:c;return{x:((g[0]-n)*a+l)*r+s,y:-(((h-g[1])*a+d)*r-o)}}function o(t,e){let i=this.options.chart.proj4||dk.proj4;if(!i){dT(21,!1,this);return}if(null===t.y)return;let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:d=0}=e,c={x:((t.x-s)/r-l)/a+n,y:((t.y-o)/r+d)/a+h},p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=i(e.crs,"WGS84",e.rotation?{x:c.x*p+-(c.y*u),y:c.x*u+c.y*p}:c);return{lat:g.y,lon:g.x}}function r(t,e){e||(e=Object.keys(t.objects)[0]);let i=t.objects[e];if(i["hc-decoded-geojson"]&&i["hc-decoded-geojson"].title===t.title)return i["hc-decoded-geojson"];let s=t.arcs;if(t.transform){let e,i,o;let r=t.arcs,{scale:a,translate:n}=t.transform;s=[];for(let t=0,l=r.length;t"number"==typeof t[0]?t.reduce((t,e,i)=>{let o=e<0?s[~e]:s[e];return e<0?(o=o.slice(0,0===i?o.length:o.length-1)).reverse():i&&(o=o.slice(1)),t.concat(o)},[]):t.map(o),r=i.geometries,a=[];for(let t=0,e=r.length;t(e[1]-t[1])*(i[0]-t[0])}function dI(t,e,i,s){let o=[t[0]-e[0],t[1]-e[1]],r=[i[0]-s[0],i[1]-s[1]],a=t[0]*e[1]-t[1]*e[0],n=i[0]*s[1]-i[1]*s[0],l=1/(o[0]*r[1]-o[1]*r[0]),h=[(a*r[0]-n*o[0])*l,(a*r[1]-n*o[1])*l];return h.isIntersection=!0,h}let dD=Math.sign||(t=>0===t?0:t>0?1:-1),dB=Math.PI/180,dz=Math.PI/2,dN=t=>Math.tan((dz+t)/2),dR=class{constructor(t){let e=(t.parallels||[]).map(t=>t*dB),i=e[0]||0,s=e[1]??i,o=Math.cos(i);"object"==typeof t.projectedBounds&&(this.projectedBounds=t.projectedBounds);let r=i===s?Math.sin(i):Math.log(o/Math.cos(s))/Math.log(dN(s)/dN(i));1e-10>Math.abs(r)&&(r=1e-10*(dD(r)||1)),this.n=r,this.c=o*Math.pow(dN(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*dB,r=t[1]*dB;e>0?r<-dz+1e-6&&(r=-dz+1e-6):r>dz-1e-6&&(r=dz-1e-6);let a=e/Math.pow(dN(r),i),n=a*Math.sin(i*o)*63.78137,l=(e-a*Math.cos(i*o))*63.78137,h=[n,l];return s&&(ns.x2||ls.y2)&&(h.outside=!0),h}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=dD(i)*Math.sqrt(s*s+o*o),a=Math.atan2(s,Math.abs(o))*dD(o);return o*i<0&&(a-=Math.PI*dD(s)*dD(o)),[a/i/dB,(2*Math.atan(Math.pow(e/r,1/i))-dz)/dB]}},dW=Math.sqrt(3)/2,dj=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(t){let e=Math.PI/180,i=Math.asin(dW*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(dW*(1.340264+-.24331799999999998*s+o*(.0062510000000000005+.034164*s))),74.03120656864502*i*(1.340264+-.081106*s+o*(893e-6+.003796*s))]}inverse(t){let e=t[0]/74.03120656864502,i=t[1]/74.03120656864502,s=180/Math.PI,o=i,r,a,n,l;for(let t=0;t<12&&(a=(r=o*o)*r*r,n=o*(1.340264+-.081106*r+a*(893e-6+.003796*r))-i,o-=l=n/(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r)),!(1e-9>Math.abs(l)));++t);a=(r=o*o)*r*r;let h=s*dW*e*(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r))/Math.cos(o),d=s*Math.asin(Math.sin(o)/dW);return Math.abs(h)>180?[NaN,NaN]:[h,d]}},dX=Math.PI/4,dG=Math.PI/180,dF=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*dG*63.78137,79.7267125*Math.log(Math.tan(dX+.4*t[1]*dG))]}inverse(t){return[t[0]/63.78137/dG,2.5*(Math.atan(Math.exp(.8*(t[1]/63.78137)))-dX)/dG]}},dH=Math.PI/180,dY=class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(t){let e=t[0],i=t[1]*dH,s=[Math.cos(i)*Math.sin(e*dH)*63.78460826781007,63.78460826781007*Math.sin(i)];return(e<-90||e>90)&&(s.outside=!0),s}inverse(t){let e=t[0]/63.78460826781007,i=t[1]/63.78460826781007,s=Math.sqrt(e*e+i*i),o=Math.asin(s),r=Math.sin(o);return[Math.atan2(e*r,s*Math.cos(o))/dH,Math.asin(s&&i*r/s)/dH]}},dV=Math.PI/180,dU=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(t){let e=Math.sin(t[1]*dV),i=[63.78137*t[0]*dV,63.78137*Math.log((1+e)/(1-e))/2];return Math.abs(t[1])>this.maxLatitude&&(i.outside=!0),i}inverse(t){return[t[0]/(63.78137*dV),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/dV]}},{clipLineString:dZ,clipPolygon:d$}={clipLineString:function(t,e){let i=[],s=dO(t,e,!1);for(let t=1;t(t<-180&&(t+=360),t>180&&(t-=360),t),dQ=t=>(1-Math.cos(t))/2,d0=(t,e)=>{let i=Math.cos,s=t[1]*dK,o=t[0]*dK,r=e[1]*dK,a=e[0]*dK;return dQ(r-s)+i(s)*i(r)*dQ(a-o)};class d1{static add(t,e){d1.registry[t]=e}static distance(t,e){let{atan2:i,sqrt:s}=Math,o=d0(t,e);return 6371e3*(2*i(s(o),s(1-o)))}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:a,sqrt:n}=Math,l=d1.distance,h=t[1]*dK,d=t[0]*dK,c=e[1]*dK,p=e[0]*dK,u=r(h)*r(d),g=r(c)*r(p),m=r(h)*a(d),f=r(c)*a(p),x=a(h),y=a(c),b=l(t,e),v=b/6371e3,M=a(v),w=Math.round(b/s),k=[];if(i&&k.push(t),w>1){let t=1/w;for(let e=t;e<.999;e+=t){let t=a((1-e)*v)/M,i=a(e*v)/M,s=t*u+i*g,r=t*m+i*f,l=o(t*x+i*y,n(s*s+r*r)),h=o(r,s);k.push([h/dK,l/dK])}}return i&&k.push(e),k}static insertGeodesics(t){let e=t.length-1;for(;e--;)if(Math.max(Math.abs(t[e][0]-t[e+1][0]),Math.abs(t[e][1]-t[e+1][1]))>10){let i=d1.geodesic(t[e],t[e+1]);i.length&&t.splice(e+1,0,...i)}}static toString(t){let{name:e,rotation:i}=t||{};return[e,i&&i.join(",")].join(";")}constructor(t={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=t;let{name:e,projectedBounds:i,rotation:s}=t;this.rotator=s?this.getRotator(s):void 0;let o=e?d1.registry[e]:void 0;o&&(this.def=new o(t));let{def:r,rotator:a}=this;r&&(this.maxLatitude=r.maxLatitude||90,this.hasGeoProjection=!0),a&&r?(this.forward=t=>r.forward(a.forward(t)),this.inverse=t=>a.inverse(r.inverse(t))):r?(this.forward=t=>r.forward(t),this.inverse=t=>r.inverse(t)):a&&(this.forward=a.forward,this.inverse=a.inverse),this.bounds="world"===i?r&&r.bounds:i}lineIntersectsBounds(t){let{x1:e,x2:i,y1:s,y2:o}=this.bounds||{},r=(t,e,i)=>{let[s,o]=t,r=e?0:1;if("number"==typeof i&&s[e]>=i!=o[e]>=i){let t=(i-s[e])/(o[e]-s[e]),a=s[r]+t*(o[r]-s[r]);return e?[a,i]:[i,a]}},a,n=t[0];return(a=r(t,0,e))?(n=a,t[1]=a):(a=r(t,0,i))&&(n=a,t[1]=a),(a=r(t,1,s))?n=a:(a=r(t,1,o))&&(n=a),n}getRotator(t){let e=t[0]*dK,i=(t[1]||0)*dK,s=(t[2]||0)*dK,o=Math.cos(i),r=Math.sin(i),a=Math.cos(s),n=Math.sin(s);if(0!==e||0!==i||0!==s)return{forward:t=>{let i=t[0]*dK+e,s=t[1]*dK,l=Math.cos(s),h=Math.cos(i)*l,d=Math.sin(i)*l,c=Math.sin(s),p=c*o+h*r;return[Math.atan2(d*a-p*n,h*o-c*r)/dK,Math.asin(p*a+d*n)/dK]},inverse:t=>{let i=t[0]*dK,s=t[1]*dK,l=Math.cos(s),h=Math.cos(i)*l,d=Math.sin(i)*l,c=Math.sin(s),p=c*a-d*n;return[(Math.atan2(d*a+c*n,h*o+p*r)-e)/dK,Math.asin(p*o-h*r)/dK]}}}forward(t){return t}inverse(t){return t}cutOnAntimeridian(t,e){let i;let s=[],o=[t];for(let i=0,o=t.length;i90)&&(n<-90||n>90)&&a>0!=n>0){let t=d_((180-(a+360)%360)/((n+360)%360-(a+360)%360),0,1),e=r[1]+t*(o[1]-r[1]);s.push({i,lat:e,direction:a<0?1:-1,previousLonLat:r,lonLat:o})}}if(s.length){if(e){s.length%2==1&&(i=s.slice().sort((t,e)=>Math.abs(e.lat)-Math.abs(t.lat))[0],dq(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=dJ(180+1e-6*s[e].direction),a=dJ(180-1e-6*s[e].direction),n=t.splice(i,s[e+1].i-i,...d1.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));n.push(...d1.geodesic([a,s[e+1].lat],[a,s[e].lat],!0)),o.push(n),e-=2}if(i)for(let t=0;t-1){let t=(s<0?-1:1)*this.maxLatitude,o=dJ(180+1e-6*e),n=dJ(180-1e-6*e),l=d1.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)l.push([i,t]);l.push(...d1.geodesic([n,t],[n,i.lat],!0)),r.splice(a,0,...l);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[dJ(180+1e-6*s[e].direction),s[e].lat]);r.unshift([dJ(180-1e-6*s[e].direction),s[e].lat]),o.push(r)}}}return o}path(t){let e;let{bounds:i,def:s,rotator:o}=this,r=[],a="Polygon"===t.type||"MultiPolygon"===t.type,n=this.hasGeoProjection,l=!s||!1!==s.antimeridianCutting,h=l?o:void 0,d=l&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let c=t=>{let s=t.map(t=>{if(l){h&&(t=h.forward(t));let e=t[0];1e-6>Math.abs(e-180)&&(e=e<180?179.999999:180.000001),t=[e,t[1]]}return t}),o=[s];n&&(d1.insertGeodesics(s),l&&(o=this.cutOnAntimeridian(s,a))),o.forEach(t=>{let s,o;if(t.length<2)return;let h=!1,c=!1,p=t=>{h?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),h=!0)},u=!1,g=!1,m=t.map(t=>{let e=d.forward(t);return e.outside?u=!0:g=!0,e[1]===1/0?e[1]=1e10:e[1]===-1/0&&(e[1]=-1e10),e});if(l){if(a&&m.push(m[0]),u){if(!g)return;if(e){if(a)m=d$(m,e);else if(i){dZ(m,e).forEach(t=>{h=!1,t.forEach(p)});return}}}m.forEach(p)}else for(let e=0;ep(d.forward(t))):h=!1),p(r),o=i,c=!1)}})};return"LineString"===t.type?c(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach(t=>c(t)):"Polygon"===t.type?(t.coordinates.forEach(t=>c(t)),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach(t=>{t.forEach(t=>c(t))}),r.length&&r.push(["Z"])),r}}d1.registry={EqualEarth:dj,LambertConformalConic:dR,Miller:dF,Orthographic:dY,WebMercator:dU};let{composed:d2}=A,{pointInPolygon:d3}=l5,{topo2geo:d6}=dL,{boundsFromPath:d5}=dg,{addEvent:d9,clamp:d8,crisp:d4,fireEvent:d7,isArray:ct,isNumber:ce,isObject:ci,isString:cs,merge:co,pick:cr,pushUnique:ca,relativeLength:cn}=J,cl={};function ch(t,e){let{width:i,height:s}=e;return Math.log(400.979322/Math.max((t.x2-t.x1)/(i/256),(t.y2-t.y1)/(s/256)))/Math.log(2)}function cd(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class cc{static compose(t){ca(d2,"MapView")&&(cl=t.maps,d9(t,"afterInit",function(){this.mapView=new cc(this,this.options.mapView)},{order:0}),d9(t,"addSeriesAsDrilldown",cd),d9(t,"afterDrillUp",cd))}static compositeBounds(t){if(t.length)return t.slice(1).reduce((t,e)=>(t.x1=Math.min(t.x1,e.x1),t.y1=Math.min(t.y1,e.y1),t.x2=Math.max(t.x2,e.x2),t.y2=Math.max(t.y2,e.y2),t),co(t[0]))}static mergeInsets(t,e){let i=t=>{let e={};return t.forEach((t,i)=>{e[t&&t.id||`i${i}`]=t}),e},s=co(i(t),i(e));return Object.keys(s).map(t=>s[t])}constructor(t,e){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof cp||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map(t=>t.mapData)]),this.userOptions=e||{};let i=co(dw,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=cc.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new d1(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push(d9(t,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&ce(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&co(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach(e=>{let i=new cp(this,co(t.insetOptions,e));this.insets.push(i)})}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=cr(e,t?0:this.options.padding),a=this.getField(!1),n=ct(r)?r:[r,r,r,r];this.padding=[cn(n[0],a.height),cn(n[1],a.width),cn(n[2],a.height),cn(n[3],a.width)],this.playingField=this.getField();let l=ch(o,this.playingField);t||(this.minZoom=l);let h=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(h,l,i,s)}}getField(t=!0){let e=t?this.padding:[0,0,0,0];return{x:e[3],y:e[0],width:this.chart.plotWidth-e[1]-e[3],height:this.chart.plotHeight-e[0]-e[2]}}getGeoMap(t){if(cs(t))return cl[t]&&"Topology"===cl[t].type?d6(cl[t]):cl[t];if(ci(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return d6(t)}}getMapBBox(){let t=this.getProjectedBounds(),e=this.getScale();if(t){let i=this.padding,s=this.projectedUnitsToPixels({x:t.x1,y:t.y2});return{width:(t.x2-t.x1)*e+i[1]+i[3],height:(t.y2-t.y1)*e+i[0]+i[2],x:s.x-i[3],y:s.y-i[0]}}}getProjectedBounds(){let t=this.projection,e=this.chart.series.reduce((t,e)=>{let i=e.getProjectedBounds&&e.getProjectedBounds();return i&&!1!==e.options.affectsMapView&&t.push(i),t},[]),i=this.options.fitToGeometry;if(i){if(!this.fitToGeometryCache){if("MultiPoint"===i.type){let e=i.coordinates.map(e=>t.forward(e)),s=e.map(t=>t[0]),o=e.map(t=>t[1]);this.fitToGeometryCache={x1:Math.min.apply(0,s),x2:Math.max.apply(0,s),y1:Math.min.apply(0,o),y2:Math.max.apply(0,o)}}else this.fitToGeometryCache=d5(t.path(i))}return this.fitToGeometryCache}return this.projection.bounds||cc.compositeBounds(e)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:t,y:e,width:i,height:s}=this.playingField,o=this.projection.forward(this.center),r=this.projection.hasCoordinates?-1:1,a=this.getScale(),n=a*r,l=t+i/2-o[0]*a,h=e+s/2-o[1]*n;return{scaleX:a,scaleY:n,translateX:l,translateY:h}}lonLatToPixels(t){let e=this.lonLatToProjectedUnits(t);if(e)return this.projectedUnitsToPixels(e)}lonLatToProjectedUnits(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone){let o=e.transformFromLatLon(t,i[s]);if(o&&d3(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&d3({x:t.lon,y:t.lat},e.options.geoBounds.coordinates[0])){let i=e.projection.forward([t.lon,t.lat]),s=e.projectedUnitsToPixels({x:i[0],y:i[1]});return this.pixelsToProjectedUnits(s)}let s=this.projection.forward([t.lon,t.lat]);if(!s.outside)return{x:s[0],y:s[1]}}projectedUnitsToLonLat(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone&&d3(t,i[s].hitZone.coordinates[0]))return e.transformToLatLon(t,i[s]);return e.transformToLatLon(t,i.default)}let s=this.projectedUnitsToPixels(t);for(let t of this.insets)if(t.hitZone&&d3(s,t.hitZone.coordinates[0])){let e=t.pixelsToProjectedUnits(s),i=t.projection.inverse([e.x,e.y]);return{lon:i[0],lat:i[1]}}let o=this.projection.inverse([t.x,t.y]);return{lon:o[0],lat:o[1]}}recommendMapView(t,e,i=!1){this.recommendedMapView={};let s=e.map(t=>this.getGeoMap(t)),o=[];s.forEach(t=>{if(t&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=t["hc-recommended-mapview"]||{}),t.bbox)){let[e,i,s,r]=t.bbox;o.push({x1:e,y1:i,x2:s,y2:r})}});let r=o.length&&cc.compositeBounds(o);d7(this,"onRecommendMapView",{geoBounds:r,chart:t},function(){if(r&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:t,y1:e,x2:i,y2:s}=r;this.recommendedMapView.projection=i-t>180&&s-e>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[e,s],rotation:[-(t+i)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=s[0],i&&t.hasRendered&&!t.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(t){this.chart.series.forEach(t=>{t.useMapGeometry&&(t.isDirty=!0)}),this.chart.redraw(t)}setView(t,e,i=!0,s){t&&(this.center=t),"number"==typeof e&&("number"==typeof this.minZoom&&(e=Math.max(e,this.minZoom)),"number"==typeof this.options.maxZoom&&(e=Math.min(e,this.options.maxZoom)),ce(e)&&(this.zoom=e));let o=this.getProjectedBounds();if(o){let t=this.projection.forward(this.center),{x:e,y:i,width:s,height:r}=this.playingField,a=this.getScale(),n=this.projectedUnitsToPixels({x:o.x1,y:o.y1}),l=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),h=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some(t=>t.isDrilling)){let o=n.x,d=l.y,c=l.x,p=n.y;c-oe+s&&o>e&&(t[0]+=Math.min(c-s-e,o-e)/a),p-di+r&&d>i&&(t[1]-=Math.min(p-r-i,d-i)/a),this.center=this.projection.inverse(t)}this.insets.forEach(t=>{t.options.field&&(t.hitZone=t.getHitZone(),t.playingField=t.getField())}),this.render()}d7(this,"afterSetView"),i&&this.redraw(s)}projectedUnitsToPixels(t){let e=this.getScale(),i=this.projection.forward(this.center),s=this.playingField,o=s.x+s.width/2,r=s.y+s.height/2;return{x:o-e*(i[0]-t.x),y:r+e*(i[1]-t.y)}}pixelsToLonLat(t){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(t))}pixelsToProjectedUnits(t){let{x:e,y:i}=t,s=this.getScale(),o=this.projection.forward(this.center),r=this.playingField,a=r.x+r.width/2,n=r.y+r.height/2;return{x:o[0]+(e-a)/s,y:o[1]-(i-n)/s}}setUpEvents(){let t,e,i;let{chart:s}=this,o=o=>{let{lastTouches:r,pinchDown:a}=s.pointer,n=this.projection,l=o.touches,{mouseDownX:h,mouseDownY:d}=s,c=0;if(a?.length===1?(h=a[0].chartX,d=a[0].chartY):a?.length===2&&(h=(a[0].chartX+a[1].chartX)/2,d=(a[0].chartY+a[1].chartY)/2),l?.length===2&&r&&(c=Math.log(Math.sqrt(Math.pow(r[0].chartX-r[1].chartX,2)+Math.pow(r[0].chartY-r[1].chartY,2))/Math.sqrt(Math.pow(l[0].chartX-l[1].chartX,2)+Math.pow(l[0].chartY-l[1].chartY,2)))/Math.log(.5)),ce(h)&&ce(d)){let r=`${h},${d}`,{chartX:a,chartY:p}=o.originalEvent;l?.length===2&&(a=(l[0].chartX+l[1].chartX)/2,p=(l[0].chartY+l[1].chartY)/2),r!==e&&(e=r,t=this.projection.forward(this.center),i=(this.projection.options.rotation||[0,0]).slice());let u=n.def&&n.def.bounds,g=u&&ch(u,this.playingField)||-1/0;if("Orthographic"===n.options.name&&2>(l?.length||0)&&(this.minZoom||1/0)<1.3*g){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(h-a)*t-i[0],o=d8(-i[1]-(d-p)*t,-80,80),r=this.zoom;this.update({projection:{rotation:[-e,-o]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=r,s.redraw(!1)}}else if(ce(a)&&ce(p)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(h-a)/e,t[1]-(d-p)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(c,s,void 0,!1)}o.preventDefault()}};d9(s,"pan",o),d9(s,"touchpan",o),d9(s,"selection",t=>{if(t.resetSelection)this.zoomBy();else{let e=t.x-s.plotLeft,i=t.y-s.plotTop,{y:o,x:r}=this.pixelsToProjectedUnits({x:e,y:i}),{y:a,x:n}=this.pixelsToProjectedUnits({x:e+t.width,y:i+t.height});this.fitToBounds({x1:r,y1:o,x2:n,y2:a},void 0,!0,!t.originalEvent.touches&&void 0),/^touch/.test(t.originalEvent.type)||s.showResetZoom(),t.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(t,e=!0,i){let s=t.projection,o=s&&d1.toString(s)!==d1.toString(this.options.projection),r=!1;co(!0,this.userOptions,t),co(!0,this.options,t),"insets"in t&&(this.insets.forEach(t=>t.destroy()),this.insets.length=0,r=!0),(o||"fitToGeometry"in t)&&delete this.fitToGeometryCache,(o||r)&&(this.chart.series.forEach(t=>{let e=t.transformGroups;if(t.clearBounds&&t.clearBounds(),t.isDirty=!0,t.isDirtyData=!0,r&&e)for(;e.length>1;){let t=e.pop();t&&t.destroy()}}),o&&(this.projection=new d1(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!ce(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||ce(t.zoom)?this.setView(this.options.center,t.zoom,!1):"fitToGeometry"in t&&this.fitToBounds(void 0,void 0,!1),e&&this.chart.redraw(i)}zoomBy(t,e,i,s){let o=this.chart,r=this.projection.forward(this.center);if("number"==typeof t){let a,n,l;let h=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),a=t-o.plotLeft-o.plotWidth/2,h=e-o.plotTop-o.plotHeight/2;n=r[0]+a/s,l=r[1]+h/s}if("number"==typeof n&&"number"==typeof l){let t=1-Math.pow(2,this.zoom)/Math.pow(2,h),e=r[0]-n,i=r[1]-l;r[0]-=e*t,r[1]+=i*t,a=this.projection.inverse(r)}this.setView(e||a,h,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class cp extends cc{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=co({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){let e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=d5(e),this.geoBoundsProjectedPolygon=e.map(t=>[t[1]||0,t[2]||0])}}getField(t=!0){let e=this.hitZone;if(e){let i=t?this.padding:[0,0,0,0],s=e.coordinates[0],o=s.map(t=>t[0]),r=s.map(t=>t[1]),a=Math.min.apply(0,o)+i[3],n=Math.max.apply(0,o)-i[1],l=Math.min.apply(0,r)+i[0],h=Math.max.apply(0,r)-i[2];if(ce(a)&&ce(l))return{x:a,y:l,width:n-a,height:h-l}}return super.getField.call(this,t)}getHitZone(){let{chart:t,mapView:e,options:i}=this,{coordinates:s}=i.field||{};if(s){let o=s[0];if("percent"===i.units){let s="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||co(t.plotBox,{x:0,y:0});o=o.map(t=>[cn(`${t[0]}%`,s.width,s.x),cn(`${t[1]}%`,s.height,s.y)])}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return cc.compositeBounds(this.allBounds)}isInside(t){let{geoBoundsProjectedBox:e,geoBoundsProjectedPolygon:i}=this;return!!(e&&t.x>=e.x1&&t.x<=e.x2&&t.y>=e.y1&&t.y<=e.y2&&i&&d3(t,i))}render(){let{chart:t,mapView:e,options:i}=this,s=i.borderPath||i.field;if(s&&e.group){let o=!0;this.border||(this.border=t.renderer.path().addClass("highcharts-mapview-inset-border").add(e.group),o=!1),t.styledMode||this.border.attr({stroke:i.borderColor,"stroke-width":i.borderWidth});let r=this.border.strokeWidth(),a="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||e.playingField,n=(s.coordinates||[]).reduce((e,s)=>s.reduce((e,s,o)=>{let[n,l]=s;return"percent"===i.units&&(n=t.plotLeft+cn(`${n}%`,a.width,a.x),l=t.plotTop+cn(`${l}%`,a.height,a.y)),n=d4(n,r),l=d4(l,r),e.push(0===o?["M",n,l]:["L",n,l]),e},e),[]);this.border[o?"animate":"attr"]({d:n})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(t=>t())}setUpEvents(){}}let{animObject:cu,stop:cg}=tF,{noop:cm}=A,{splitPath:cf}=du,{column:cx,scatter:cy}=rf.seriesTypes,{extend:cb,find:cv,fireEvent:cM,getNestedProperty:cw,isArray:ck,defined:cS,isNumber:cT,isObject:cC,merge:cA,objectEach:cP,pick:cL,splat:cO}=J;class cE extends cy{constructor(){super(...arguments),this.processedData=[]}animate(t){let{chart:e,group:i}=this,s=cu(this.options.animation);t?i.attr({translateX:e.plotLeft+e.plotWidth/2,translateY:e.plotTop+e.plotHeight/2,scaleX:.001,scaleY:.001}):i.animate({translateX:e.plotLeft,translateY:e.plotTop,scaleX:1,scaleY:1},s)}clearBounds(){this.points.forEach(t=>{delete t.bounds,delete t.insetIndex,delete t.projectedPath}),delete this.bounds}doFullTranslate(){return!!(this.isDirtyData||this.chart.isResizing||!this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let t=this,{chart:e,group:i,transformGroups:s=[]}=this,{mapView:o,renderer:r}=e;if(o){this.transformGroups=s,s[0]||(s[0]=r.g().add(i));for(let t=0,e=o.insets.length;t{let{graphic:e}=t;t.group=s["number"==typeof t.insetIndex?t.insetIndex+1:0],e&&e.parentGroup!==t.group&&e.add(t.group)}),cx.prototype.drawPoints.apply(this),this.points.forEach(i=>{let s=i.graphic;if(s){let o=s.animate,r="";i.name&&(r+="highcharts-name-"+i.name.replace(/ /g,"-").toLowerCase()),i.properties&&i.properties["hc-key"]&&(r+=" highcharts-key-"+i.properties["hc-key"].toString().toLowerCase()),r&&s.addClass(r),e.styledMode&&s.css(this.pointAttribs(i,i.selected&&"select"||void 0)),s.attr({visibility:!i.visible&&(i.visible||i.isNull)?"hidden":"inherit"}),s.animate=function(i,r,a){let n=cT(i["stroke-width"])&&!cT(s["stroke-width"]),l=cT(s["stroke-width"])&&!cT(i["stroke-width"]);if(n||l){let o=cL(t.getStrokeWidth(t.options),1)/(e.mapView&&e.mapView.getScale()||1);n&&(s["stroke-width"]=o),l&&(i["stroke-width"]=o)}return o.call(s,i,r,l?function(){s.element.removeAttribute("stroke-width"),delete s["stroke-width"],a&&a.apply(this,arguments)}:a)}}})),s.forEach((i,s)=>{let a=(0===s?o:o.insets[s-1]).getSVGTransform(),n=cL(this.getStrokeWidth(this.options),1),l=a.scaleX,h=a.scaleY>0?1:-1,d=e=>{(t.points||[]).forEach(t=>{let i;let s=t.graphic;s&&s["stroke-width"]&&(i=this.getStrokeWidth(t.options))&&s.attr({"stroke-width":i/e})})};if(r.globalAnimation&&e.hasRendered&&o.allowTransformAnimation){let t=Number(i.attr("translateX")),e=Number(i.attr("translateY")),s=Number(i.attr("scaleX")),o=(o,r)=>{let c=s+(l-s)*r.pos;i.attr({translateX:t+(a.translateX-t)*r.pos,translateY:e+(a.translateY-e)*r.pos,scaleX:c,scaleY:c*h,"stroke-width":n/c}),d(c)},c=cA(cu(r.globalAnimation)),p=c.step;c.step=function(){p&&p.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},c,(function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),cM(this,"mapZoomComplete")}).bind(this))}else cg(i),i.attr(cA(a,{"stroke-width":n/l})),d(l)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:t,projection:e}=this.chart.mapView,i=[];(this.points||[]).forEach(s=>{if(s.path||s.geometry){if("string"==typeof s.path?s.path=cf(s.path):ck(s.path)&&"M"===s.path[0]&&(s.path=this.chart.renderer.pathToSegments(s.path)),!s.bounds){let i=s.getProjectedBounds(e);if(i){s.labelrank=cL(s.labelrank,(i.x2-i.x1)*(i.y2-i.y1));let{midX:e,midY:o}=i;if(t&&cT(e)&&cT(o)){let r=cv(t,t=>t.isInside({x:e,y:o}));r&&(delete s.projectedPath,(i=s.getProjectedBounds(r.projection))&&r.allBounds.push(i),s.insetIndex=t.indexOf(r))}s.bounds=i}}s.bounds&&void 0===s.insetIndex&&i.push(s.bounds)}}),this.bounds=cc.compositeBounds(i)}return this.bounds}getStrokeWidth(t){let e=this.pointAttrToOptions;return t[e&&e["stroke-width"]||"borderWidth"]}hasData(){return!!this.dataTable.rowCount}pointAttribs(t,e){let{mapView:i,styledMode:s}=t.series.chart,o=s?this.colorAttribs(t):cx.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t.options);if(e){let i=cA(this.options.states&&this.options.states[e],t.options.states&&t.options.states[e]||{}),s=this.getStrokeWidth(i);cS(s)&&(r=s),o.stroke=i.borderColor??t.color}r&&i&&(r/=i.getScale());let a=this.getStrokeWidth(this.options);return o.dashstyle&&i&&cT(a)&&(r=a/i.getScale()),t.visible||(o.fill=this.options.nullColor),cS(r)?o["stroke-width"]=r:delete o["stroke-width"],o["stroke-linecap"]=o["stroke-linejoin"]=this.options.linecap,o}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(t,e=!0,i,s){delete this.bounds,super.setData(t,!1,void 0,s),this.processData(),this.generatePoints(),e&&this.chart.redraw(i)}dataColumnKeys(){return this.pointArrayMap}processData(){let t,e,i;let s=this.options,o=s.data,r=this.chart,a=r.options.chart,n=this.joinBy,l=s.keys||this.pointArrayMap,h=[],d={},c=this.chart.mapView,p=c&&(cC(s.mapData,!0)?c.getGeoMap(s.mapData):c.geoMap),u=r.mapTransforms=a.mapTransforms||p&&p["hc-transform"]||r.mapTransforms;u&&cP(u,t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))}),ck(s.mapData)?i=s.mapData:p&&"FeatureCollection"===p.type&&(this.mapTitle=p.title,i=A.geojson(p,this.type,this)),this.processedData=[];let g=this.processedData;if(o){let t;for(let e=0,i=o.length;el.length&&"string"==typeof t[0]&&(g[e]["hc-key"]=t[0],++i);for(let s=0;s0?dv.prototype.setNestedProperty(g[e],t[i],l[s]):g[e][l[s]]=t[i])}else g[e]=o[e];n&&"_i"===n[0]&&(g[e]._i=e)}}if(i){this.mapData=i,this.mapMap={};for(let s=0;s{let i=cw(t,e);d[i]&&h.push(d[i])})}if(s.allAreas){if(n[1]){let t=n[1];g.forEach(e=>{h.push(cw(t,e))})}let t="|"+h.map(function(t){return t&&t[n[0]]}).join("|")+"|";i.forEach(e=>{n[0]&&-1!==t.indexOf("|"+e[n[0]]+"|")||g.push(cA(e,{value:null}))})}}this.dataTable.rowCount=g.length}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=cO(i),this.joinBy[1]||(this.joinBy[1]=this.joinBy[0])),e}translate(){let t=this.doFullTranslate(),e=this.chart.mapView,i=e&&e.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!e||e.userOptions.center||cT(e.userOptions.zoom)||e.zoom!==e.minZoom?this.getProjectedBounds():e.fitToBounds(void 0,void 0,!1)),e){let s=e.getSVGTransform();this.points.forEach(o=>{let r=cT(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&cT(o.bounds.midX)&&cT(o.bounds.midY)&&(o.plotX=o.bounds.midX*r.scaleX+r.translateX,o.plotY=o.bounds.midY*r.scaleY+r.translateY),t&&(o.shapeType="path",o.shapeArgs={d:dv.getProjectedPath(o,i)}),o.hiddenInDataClass||(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))})}cM(this,"afterTranslate")}update(t){t.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((e,i)=>i===this._i?t.mapData:e.mapData)],!0),super.update.apply(this,arguments)}}cE.defaultOptions=cA(cy.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return dM(e)?t(e,-1):this.point.name||""},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
"},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}),cb(cE.prototype,{type:"map",axisTypes:dn.seriesMembers.axisTypes,colorAttribs:dn.seriesMembers.colorAttribs,colorKey:dn.seriesMembers.colorKey,directTouch:!0,drawDataLabels:cm,drawGraph:cm,forceDL:!0,getCenter:lE.getCenter,getExtremesFromAll:!0,getSymbol:cm,isCartesian:!1,parallelArrays:dn.seriesMembers.parallelArrays,pointArrayMap:dn.seriesMembers.pointArrayMap,pointClass:dv,preserveAspectRatio:!0,searchPoint:cm,trackerGroups:dn.seriesMembers.trackerGroups,useMapGeometry:!0}),dn.compose(cE),rf.registerSeriesType("map",cE);let cI=cE,{extend:cD,merge:cB}=J;class cz extends cI{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}cz.defaultOptions=cB(cI.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),cD(cz.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),rf.registerSeriesType("mapline",cz);let{scatter:cN}=rf.seriesTypes,{isNumber:cR}=J;class cW extends cN.prototype.pointClass{isValid(){return!!(this.options.geometry||cR(this.x)&&cR(this.y)||cR(this.options.lon)&&cR(this.options.lat))}}let{noop:cj}=A,{map:cX,scatter:cG}=rf.seriesTypes,{extend:cF,fireEvent:cH,isNumber:cY,merge:cV}=J;class cU extends cG{constructor(){super(...arguments),this.clearBounds=cX.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(t){let e=this.chart.mapView;if(e){let{geometry:i,lon:s,lat:o}=t,r=i&&"Point"===i.type&&i.coordinates;if(cY(s)&&cY(o)&&(r=[s,o]),r)return e.lonLatToProjectedUnits({lon:r[0],lat:r[1]})}}translate(){let t=this.chart.mapView;if(this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),t){let e=t.getSVGTransform(),{hasCoordinates:i}=t.projection;this.points.forEach(s=>{let o,{x:r,y:a}=s,n=cY(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,l=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(l?(r=l.x,a=l.y):s.bounds&&(r=s.bounds.midX,a=s.bounds.midY,n&&cY(r)&&cY(a)&&(s.plotX=r*n.scaleX+n.translateX,s.plotY=a*n.scaleY+n.translateY,o=!0)),cY(r)&&cY(a)){if(!o){let e=t.projectedUnitsToPixels({x:r,y:a});s.plotX=e.x,s.plotY=i?e.y:this.chart.plotHeight-e.y}}else s.y=s.plotX=s.plotY=void 0;s.isInside=this.isPointInside(s),s.zone=this.zones.length?s.getZone():void 0})}cH(this,"afterTranslate")}}cU.defaultOptions=cV(cG.defaultOptions,{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}),iF.prototype.symbols.mapmarker=(t,e,i,s,o)=>{let r,a;let n=o&&"legend"===o.context;n?(r=t+i/2,a=e+s):o&&"number"==typeof o.anchorX&&"number"==typeof o.anchorY?(r=o.anchorX,a=o.anchorY):(r=t+i/2,a=e+s/2,e-=s);let l=n?s/3:s/2;return[["M",r,a],["C",r,a,r-l,e+1.5*l,r-l,e+l],["A",l,l,1,1,1,r+l,e+l],["C",r+l,e+1.5*l,r,a,r,a],["Z"]]},cF(cU.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:cW,searchPoint:cj,useMapGeometry:!0}),rf.registerSeriesType("mappoint",cU);let cZ={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0},{parse:c$}=tC,{noop:c_}=A,{arrayMax:cq,arrayMin:cK,isNumber:cJ,merge:cQ,pick:c0,stableSort:c1}=J,c2=class{constructor(t,e){this.setState=c_,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e;let i=c0(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,r=o.ranges,a=o.connectorDistance;if(!r||!r.length||!cJ(r[0].value)){t.options.bubbleLegend.autoRanges=!0;return}c1(r,function(t,e){return e.value-t.value}),this.ranges=r,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=a-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},r={zIndex:e.zIndex,"stroke-width":e.connectorWidth},a={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach(function(h,d){l||(o.stroke=c0(h.borderColor,e.borderColor,i.color),o.fill=c0(h.color,e.color,1!==n?c$(i.color).setOpacity(n).get("rgba"):i.color),r.stroke=c0(h.connectorColor,e.connectorColor,i.color)),t[d].radius=this.getRangeRadius(h.value),t[d]=cQ(t[d],{center:t[0].radius-t[d].radius+s}),l||cQ(!0,t[d],{bubbleAttribs:cQ(o),connectorAttribs:cQ(r),labelAttribs:a})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,r=e.ranges[e.ranges.length-1].value,a=e.minSize,n=e.maxSize;return s.getRadius.call(this,r,o,a,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,r=this.chart,a=r.series[s.seriesIndex],n=r.renderer,l=this.symbols,h=l.labels,d=t.center,c=Math.abs(t.radius),p=s.connectorDistance||0,u=o.align,g=i.options.rtl,m=s.borderWidth,f=s.connectorWidth,x=e.radius||0,y=d-c-m/2+f/2,b=(y%1?1:.5)-(f%2?0:.5),v=n.styledMode,M=g||"left"===u?-p:p;"center"===u&&(M=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(x,d+b,c).attr(v?{}:t.bubbleAttribs).addClass((v?"highcharts-color-"+a.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",x,y],["L",x+M,y]],s.connectorWidth)).attr(v?{}:t.connectorAttribs).addClass((v?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let w=n.text(this.formatLabel(t)).attr(v?{}:t.labelAttribs).css(v?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),k={x:x+M+s.labels.x,y:y+s.labels.y+.4*w.getBBox().height};w.attr(k),h.push(w),w.placed=!0,w.alignAttr=k}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?eh.format(s,t,this.chart):i?i.call(t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,r=Number.MAX_VALUE,a=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(cJ)).length&&(r=c0(t.options.zMin,Math.min(r,Math.max(cK(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),a=c0(t.options.zMax,Math.max(a,cq(o))))}),s=r===a?[{value:a}]:[{value:r},{value:(r+a)/2},{value:a,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=cQ(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,r=t.plotSizeX,a=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),d=Math.ceil(l.maxPxSize),c=Math.min(a,r),p,u=n.options.maxSize;return i||!/%$/.test(u)?p=d:(p=(c+o)*(u=parseFloat(u))/100/(u/100+1),(s&&a-p>=r||!s&&r-p>=a)&&(p=d)),[h,Math.ceil(p)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:c3}=tM,{composed:c6}=A,{addEvent:c5,objectEach:c9,pushUnique:c8,wrap:c4}=J;function c7(t,e,i){let s,o,r;let a=this.legend,n=pt(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&n?(s=a.bubbleLegend.options,o=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(a.group.placed=!1,a.allItems.forEach(t=>{(r=t.legendItem||{}).group&&(r.group.translateY=void 0)})),a.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),c9(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),a.bubbleLegend.correctSizes(),po(a,pe(a))):(t.call(this,e,i),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),po(a,pe(a))))}function pt(t){let e=t.series,i=0;for(;io.height&&(o.height=e[l].itemHeight);o.step=n}return i}function pi(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=pt(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new c2(s,this),this.bubbleLegend.addToLegend(t.allItems))}function ps(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=pt(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function po(t,e){let i=t.allItems,s=t.options.rtl,o,r,a,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(o=n.group.translateX||0,r=n.y||0,((a=t.movementX)||s&&t.ranges)&&(a=s?o-t.options.maxSize/2:o+a,n.group.attr({translateX:a})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(r+e[l].height/2)}),n.y=r+e[l].height/2)})}let pr={compose:function(t,e){c8(c6,"Series.BubbleLegend")&&(c3({legend:{bubbleLegend:cZ}}),c4(t.prototype,"drawChartBox",c7),c5(e,"afterGetAllItems",pi),c5(e,"itemClick",ps))}},{seriesTypes:{scatter:{prototype:{pointClass:pa}}}}=rf,{extend:pn}=J;class pl extends pa{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series;return o.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return oZ.prototype.haloPath.call(this,e)}}pn(pl.prototype,{ttBelow:!1});let ph=pl,{parse:pd}=tC,{composed:pc,noop:pp}=A,{series:pu,seriesTypes:{column:{prototype:pg},scatter:pm}}=rf,{addEvent:pf,arrayMax:px,arrayMin:py,clamp:pb,extend:pv,isNumber:pM,merge:pw,pick:pk,pushUnique:pS}=J;function pT(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),r=0,a=t,n=t/o,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(pM(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;r=Math.min((e[i]-s)*n-o,r),a=Math.max((e[i]-s)*n+o,a)}}}}),l&&o>0&&!this.logarithmic&&(a-=t,n*=(t+Math.max(0,r)-Math.min(a,t))/t,[["min","userMin",r],["max","userMax",a]].forEach(t=>{void 0===pk(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function pC(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,r=this.options.type;if((o?.length||"category"===r)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let r=t[e[o]],a=r.pos||0;(a>s||a{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(pk(e,o.zMin),o.zMin),i=Math.max(pk(i,o.zMax),o.zMax),t=!0)}}),t?(a={zMin:e,zMax:i},this.chart.bubbleZExtremes=a):a={zMin:0,zMax:0}}for(o=0,s=t.length;o0&&(d=(o-t)/h)}return n&&d>=0&&(d=Math.sqrt(d)),Math.ceil(i+d*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?pv(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=pu.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=pd(s.fill).setOpacity(i).get("rgba")),s}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let r=t[o],a=i?i[o]:0;"z"===this.zoneAxis&&(r.negative=(r.z||0)<(e.zThreshold||0)),pM(a)&&a>=s/2?(r.marker=pv(r.marker,{radius:a,width:2*a,height:2*a}),r.dlBox={x:r.plotX-a,y:r.plotY-a,width:2*a,height:2*a}):(r.shapeArgs=r.plotY=r.dlBox=void 0,r.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(pk(this.options.minSize,8)),s=Math.max(e(pk(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(pM);if(e.length){let i=pk(t.zMin,pb(py(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=pk(t.zMax,px(e));if(pM(i)&&pM(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=pp,o=pp){return s=(t,e,i)=>{let s=t[i]||0,o=e[i]||0,r,a=!1;return s<0&&o<0?(r=s-(t.marker?.radius||0)>=o-(e.marker?.radius||0)?t:e,a=!0):r=s!i&&t>e||t{delete t.target.chart.bubbleZExtremes}),pf(pA,"remove",t=>{delete t.target.chart.bubbleZExtremes}),rf.registerSeriesType("bubble",pA);let pP=pA,{seriesTypes:{map:{prototype:{pointClass:{prototype:pL}}}}}=rf,{extend:pO}=J;class pE extends ph{isValid(){return"number"==typeof this.z}}pO(pE.prototype,{applyOptions:pL.applyOptions,getProjectedBounds:pL.getProjectedBounds});let{seriesTypes:{map:{prototype:pI},mappoint:{prototype:pD}}}=rf,{extend:pB,merge:pz}=J;class pN extends pP{constructor(){super(...arguments),this.clearBounds=pI.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){pD.translate.call(this),this.getRadii(),this.translateBubble()}}pN.defaultOptions=pz(pP.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pB(pN.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:pI.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:pE,processData:pI.processData,projectPoint:pD.projectPoint,kdAxisArray:["plotX","plotY"],setData:pI.setData,setOptions:pI.setOptions,updateData:pI.updateData,useMapGeometry:!0,xyFromShape:!0}),rf.registerSeriesType("mapbubble",pN);let{scatter:{prototype:{pointClass:pR}}}=rf.seriesTypes,{clamp:pW,defined:pj,extend:pX,pick:pG}=J;class pF extends pR{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,s=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,n=t.pointPlacementToXValue(),l=pG(this.pointPadding,e.pointPadding,0),h={x1:pW(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-n)),-o.len,2*o.len),x2:pW(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-n)),-o.len,2*o.len),y1:pW(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:pW(Math.round(r.translate(this.y+s,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],i=t[1],s=i+"1",n=i+"2",d=Math.abs(h[s]-h[n]),c=a&&a.lineWidth||0,p=Math.abs(h[s]+h[n])/2,u=a&&a[e];if(pj(u)&&upU(parseFloat(t),parseInt(t,10)));return s[3]=255*pU(s[3],1),pV(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=pY.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class p5 extends p_{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,s=e.marker||{};if(i){let{image:e,chart:i,xAxis:s,yAxis:o}=t,{reversed:r=!1,len:a}=s,{reversed:n=!1,len:l}=o,h={width:a,height:l};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=p6(t),{canvas:l,options:{colsize:d=1,rowsize:c=1},points:p,points:{length:u}}=t,g=i.colorAxis&&i.colorAxis[0];if(l&&a&&g){let{min:g,max:m}=s.getExtremes(),{min:f,max:x}=o.getExtremes(),y=m-g,b=x-f,v=Math.round(y/d/8*8),M=Math.round(b/c/8*8),[w,k]=[[v,v/y,r,"ceil"],[M,M/b,!n,"floor"]].map(([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t)),S=l.width=v+1,T=S*(l.height=M+1),C=(u-1)/T,A=new Uint8ClampedArray(4*T),P=(t,e)=>4*Math.ceil(S*k(e-f)+w(t-g));t.buildKDTree();for(let t=0;t{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:t,dataMax:e}=pZ.prototype.getExtremes.call(this,this.getColumn("value"));return p0(t)&&(this.valueMin=t),p0(e)&&(this.valueMax=e),pZ.prototype.getExtremes.call(this)}getValidPoints(t,e){return pZ.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=p2(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,pq.ellipse=pq.circle,t.marker&&p0(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let s=t.options.marker||{},o=this.options.marker||{},r=o.states&&o.states[e]||{},a=s.states&&s.states[e]||{},n=(a.width||r.width||i.width||0)+(a.widthPlus||r.widthPlus||0),l=(a.height||r.height||i.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(i.x||0)+((i.width||0)-n)/2,y:(i.y||0)+((i.height||0)-l)/2,width:n,height:l}}return i}pointAttribs(t,e){let i=pZ.prototype.pointAttribs.call(this,t,e),s=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},n=t&&t.options.borderColor||s.borderColor||a.borderColor||r.borderColor,l=t&&t.options.borderWidth||s.borderWidth||a.borderWidth||r.borderWidth||i["stroke-width"];if(i.stroke=t&&t.marker&&t.marker.lineColor||s.marker&&s.marker.lineColor||n||this.color,i["stroke-width"]=l,e&&"normal"!==e){let o=p1(s.states&&s.states[e],s.marker&&s.marker.states&&s.marker.states[e],t&&t.options.states&&t.options.states[e]||{});i.fill=o.color||tC.parse(i.fill).brighten(o.brightness||0).get(),i.stroke=o.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e&&e.symbol||"rect",s=pq[i]?i:"rect",o=-1!==["circle","square"].indexOf(s);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),n=Math.min(r.y1,r.y2),l=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker&&e.marker.symbol||i||"").indexOf("url"),o){let t=Math.abs(l-h);a=Math.min(r.x1,r.x2)+(l"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),pK(p5,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),pJ(p5.prototype,{axisTypes:dn.seriesMembers.axisTypes,colorKey:dn.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:dn.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:pF,specialGroup:"group",trackerGroups:dn.seriesMembers.trackerGroups,alignDataLabel:p$.prototype.alignDataLabel,colorAttribs:dn.seriesMembers.colorAttribs,getSymbol:pZ.prototype.getSymbol}),dn.compose(p5),rf.registerSeriesType("heatmap",p5),A.ColorMapComposition=dn,A.MapChart=A.MapChart||du,A.MapNavigation=A.MapNavigation||di,A.MapView=A.MapView||cc,A.Projection=A.Projection||d1,A.mapChart=A.Map=A.MapChart.mapChart,A.maps=A.MapChart.maps,A.geojson=dL.geojson,A.topo2geo=dL.topo2geo,dL.compose(A.Chart),pN.compose(A.Axis,A.Chart,A.Legend),di.compose(du,A.Pointer,A.SVGRenderer),cc.compose(du),/** + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/highmaps * * (c) 2011-2024 Torstein Honsi * * License: www.highcharts.com/license - */A.product="Highmaps";let p6=A;return C.default})()); \ No newline at end of file + */A.product="Highmaps";let p9=A;return C.default})()); \ No newline at end of file diff --git a/highmaps.src.js b/highmaps.src.js index 2e5300777f..324dce5c76 100644 --- a/highmaps.src.js +++ b/highmaps.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi @@ -74,7 +74,7 @@ var Globals; * Constants * * */ - Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.0.2', Globals.win = (typeof window !== 'undefined' ? + Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.1.0', Globals.win = (typeof window !== 'undefined' ? window : {}), // eslint-disable-line node/no-unsupported-features/es-builtins Globals.doc = Globals.win.document, Globals.svg = (Globals.doc && @@ -1275,7 +1275,7 @@ function getNestedProperty(path, parent) { } return thisProp ?? parent; } - const child = parent[pathElement]; + const child = parent[pathElement.replace(/[\\'"]/g, '')]; // Filter on the child if (!defined(child) || typeof child === 'function' || @@ -3582,7 +3582,9 @@ class Time { * Properties * * */ - this.options = {}; + this.options = { + timezone: 'UTC' + }; this.variableTimezone = false; this.Date = Time_win.Date; this.update(options); @@ -3604,12 +3606,13 @@ class Time { * */ update(options = {}) { - let timezone = options.timezone ?? 'UTC'; this.dTLCache = {}; this.options = options = Time_merge(true, this.options, options); const { timezoneOffset, useUTC } = options; // Allow using a different Date class this.Date = options.Date || Time_win.Date || Date; + // Assign the time zone. Handle the legacy, deprecated `useUTC` option. + let timezone = options.timezone; if (Time_defined(useUTC)) { timezone = useUTC ? 'UTC' : void 0; } @@ -4052,7 +4055,7 @@ class Time { } else if (Time_isObject(format)) { const tzHours = (this.getTimezoneOffset(timestamp) || 0) / - (60000 * 60), timeZone = this.options.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; + (60000 * 60), timeZone = this.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; format = prefix + this.dateTimeFormat(Time_extend({ timeZone }, format), timestamp) + suffix; } // Optionally sentence-case the string and return @@ -7460,18 +7463,11 @@ class Color { } // Check for has alpha, because rgba colors perform worse due to // lack of support in WebKit. - const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1); - return (hasAlpha ? 'rgba(' : 'rgb(') + - Math.round(toRgba[0] + (fromRgba[0] - toRgba[0]) * (1 - pos)) + - ',' + - Math.round(toRgba[1] + (fromRgba[1] - toRgba[1]) * (1 - pos)) + - ',' + - Math.round(toRgba[2] + (fromRgba[2] - toRgba[2]) * (1 - pos)) + - (hasAlpha ? - (',' + - (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))) : - '') + - ')'; + const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1), channel = (to, i) => to + (fromRgba[i] - to) * (1 - pos), rgba = toRgba.slice(0, 3).map(channel).map(Math.round); + if (hasAlpha) { + rgba.push(channel(toRgba[3], 3)); + } + return (hasAlpha ? 'rgba(' : 'rgb(') + rgba.join(',') + ')'; } } /* * @@ -8840,7 +8836,7 @@ const { defaultOptions: Templating_defaultOptions, defaultTime: Templating_defau const { doc: Templating_doc } = Core_Globals; -const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; +const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, isString: Templating_isString, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; const helpers = { // Built-in helpers add: (a, b) => a + b, @@ -8875,6 +8871,8 @@ const numberFormatCache = {}; * Functions * * */ +// Internal convenience function +const isQuotedString = (str) => /^["'].+["']$/.test(str); /** * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a * human readable date string. The format is a subset of the formats for PHP's @@ -8952,11 +8950,11 @@ function dateFormat(format, timestamp, upperCaseFirst) { * The formatted string. */ function format(str = '', ctx, chart) { - const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu, + const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu, // The sub expression regex is the same as the top expression regex, // but except parens and block helpers (#), and surrounded by parens // instead of curly brackets. - subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; + subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; /* * Get a literal or variable value inside a template expression. May be * extended with other types like string or null if needed, but keep it @@ -8974,7 +8972,7 @@ function format(str = '', ctx, chart) { if ((n = Number(key)).toString() === key) { return n; } - if (/^["'].+["']$/.test(key)) { + if (isQuotedString(key)) { return key.slice(1, -1); } // Variables and constants @@ -9087,7 +9085,8 @@ function format(str = '', ctx, chart) { // Simple variable replacement } else { - const valueAndFormat = expression.split(':'); + const valueAndFormat = isQuotedString(expression) ? + [expression] : expression.split(':'); replacement = resolveProperty(valueAndFormat.shift() || ''); // Format the replacement if (valueAndFormat.length && typeof replacement === 'number') { @@ -9100,13 +9099,14 @@ function format(str = '', ctx, chart) { } else { replacement = time.dateFormat(segment, replacement); - // Use string literal in order to be preserved in the outer - // expression - if (hasSub) { - replacement = `"${replacement}"`; - } } } + // Use string literal in order to be preserved in the outer + // expression + subRegex.lastIndex = 0; + if (subRegex.test(match.find) && Templating_isString(replacement)) { + replacement = `"${replacement}"`; + } } str = str.replace(match.find, Templating_pick(replacement, '')); }); @@ -9691,7 +9691,9 @@ class SVGElement { * @return {Highcharts.SVGElement} Returns the SVGElement for chaining. */ align(alignOptions, alignByTranslate, alignTo, redraw = true) { - const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); + const attribs = { + 'text-align': alignOptions?.align + }, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); // First call on instanciate if (alignOptions) { this.alignOptions = alignOptions; @@ -11431,6 +11433,7 @@ class SVGLabel extends SVG_SVGElement { * */ alignSetter(value) { const alignFactor = SVGLabel_getAlignFactor(value); + this.textAlign = value; if (alignFactor !== this.alignFactor) { this.alignFactor = alignFactor; // Bounding box exists, means we're dynamically changing @@ -11606,6 +11609,7 @@ class SVGLabel extends SVG_SVGElement { } 'text-alignSetter'(value) { this.textAlign = value; + this.updateTextPadding(); } textSetter(text) { if (typeof text !== 'undefined') { @@ -11675,24 +11679,19 @@ class SVGLabel extends SVG_SVGElement { * is changed. */ updateTextPadding() { - const text = this.text; + const text = this.text, textAlign = text.styles.textAlign || this.textAlign; if (!text.textPath) { this.updateBoxSize(); // Determine y based on the baseline const textY = this.baseline ? 0 : this.baselineOffset, textX = (this.paddingLeft ?? this.padding) + // Compensate for alignment - ((SVGLabel_defined(this.widthSetting) && this.bBox) ? - SVGLabel_getAlignFactor(this.textAlign) * - (this.widthSetting - this.bBox.width) : - 0); + SVGLabel_getAlignFactor(textAlign) * (this.widthSetting ?? this.bBox.width); // Update if anything changed if (textX !== text.x || textY !== text.y) { - text.attr('x', textX); - // #8159 - prevent misplaced data labels in treemap - // (useHTML: true) - if (text.hasBoxWidthChanged) { - this.bBox = text.getBBox(true); - } + text.attr({ + align: textAlign, + x: textX + }); if (typeof textY !== 'undefined') { text.attr('y', textY); } @@ -12637,7 +12636,7 @@ class SVGRenderer { this.url = this.getReferenceURL(); // Add description const desc = this.createElement('desc').add(); - desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.0.2')); + desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.1.0')); this.defs = this.createElement('defs').add(); this.allowHTML = allowHTML; this.forExport = forExport; @@ -14604,7 +14603,7 @@ class HTMLElement extends SVG_SVGElement { textWidth, this.textAlign ].join(','), parentPadding = (this.parentGroup?.padding * -1) || 0; - let baseline, hasBoxWidthChanged = false; + let baseline; // Update textWidth. Use the memoized textPxLength if possible, to // avoid the getTextPxLength function using elem.offsetWidth. // Calling offsetWidth affects rendering time as it forces layout @@ -14627,10 +14626,8 @@ class HTMLElement extends SVG_SVGElement { whiteSpace: whiteSpace || 'normal' // #3331 }); this.oldTextWidth = textWidth; - hasBoxWidthChanged = true; // #8159 } } - this.hasBoxWidthChanged = hasBoxWidthChanged; // #8159 // Do the calculations and DOM access only if properties changed if (currentTextTransform !== this.cTT) { baseline = renderer.fontMetrics(element).b; @@ -33086,9 +33083,14 @@ class Series { * @private * @function Highcharts.Series#searchKDTree */ - searchKDTree(point, compareX, e) { + searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator) { const series = this, [kdX, kdY] = this.kdAxisArray, kdComparer = compareX ? 'distX' : 'dist', kdDimensions = (series.options.findNearestPointBy || '') - .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble; + .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble, pointEvaluator = suppliedPointEvaluator || ((p1, p2, comparisonProp) => [ + (p1[comparisonProp] || 0) < (p2[comparisonProp] || 0) ? + p1 : + p2, + false + ]), bSideCheckEvaluator = suppliedBSideCheckEvaluator || ((a, b) => a < b); /** * Set the one and two dimensional distance on the point object. * @private @@ -33103,28 +33105,21 @@ class Series { */ function doSearch(search, tree, depth, dimensions) { const point = tree.point, axis = series.kdAxisArray[depth % dimensions]; - let nPoint1, nPoint2, ret = point; + let ret = point, flip = false; setDistance(search, point); // Pick side based on distance to splitting point const tdist = (search[axis] || 0) - (point[axis] || 0) + (useRadius ? (point.marker?.radius || 0) : 0), sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left'; // End of tree if (tree[sideA]) { - nPoint1 = doSearch(search, tree[sideA], depth + 1, dimensions); - ret = (nPoint1[kdComparer] < - ret[kdComparer] ? - nPoint1 : - point); + [ret, flip] = pointEvaluator(point, doSearch(search, tree[sideA], depth + 1, dimensions), kdComparer); } if (tree[sideB]) { + const sqrtTDist = Math.sqrt(tdist * tdist), retDist = ret[kdComparer]; // Compare distance to current best to splitting point to decide - // whether to check side B or not - if (Math.sqrt(tdist * tdist) < ret[kdComparer]) { - nPoint2 = doSearch(search, tree[sideB], depth + 1, dimensions); - ret = (nPoint2[kdComparer] < - ret[kdComparer] ? - nPoint2 : - ret); + // whether to check side B or no + if (bSideCheckEvaluator(sqrtTDist, retDist, flip)) { + ret = pointEvaluator(ret, doSearch(search, tree[sideB], depth + 1, dimensions), kdComparer)[0]; } } return ret; @@ -42632,7 +42627,9 @@ var DataLabel; (unrotatedbBox.width - bBox.width); dataLabel.alignAttr.y += DataLabel_getAlignFactor(options.verticalAlign) * (unrotatedbBox.height - bBox.height); - dataLabel[dataLabel.placed ? 'animate' : 'attr']({ + dataLabel.attr({ + 'text-align': dataLabel.alignAttr['text-align'] || 'center' + })[dataLabel.placed ? 'animate' : 'attr']({ x: dataLabel.alignAttr.x + (bBox.width - unrotatedbBox.width) / 2, y: dataLabel.alignAttr.y + @@ -48167,7 +48164,7 @@ Array.prototype.push.apply(Axis_Axis.keepProps, ColorAxis.keepProps); ;// ./code/es-modules/masters/modules/coloraxis.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/color-axis * @requires highcharts * @@ -55801,6 +55798,30 @@ class BubbleSeries extends BubbleSeries_ScatterSeries { } } } + /** + * @private + * @function Highcharts.Series#searchKDTree + */ + searchKDTree(point, compareX, e, suppliedPointEvaluator = BubbleSeries_noop, suppliedBSideCheckEvaluator = BubbleSeries_noop) { + suppliedPointEvaluator = (p1, p2, comparisonProp) => { + const p1Dist = p1[comparisonProp] || 0; + const p2Dist = p2[comparisonProp] || 0; + let ret, flip = false; + if (p1Dist < 0 && p2Dist < 0) { + ret = (p1Dist - (p1.marker?.radius || 0) >= + p2Dist - (p2.marker?.radius || 0)) ? + p1 : + p2; + flip = true; + } + else { + ret = p1Dist < p2Dist ? p1 : p2; + } + return [ret, flip]; + }; + suppliedBSideCheckEvaluator = (a, b, flip) => !flip && (a > b) || (a < b); + return super.searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator); + } } /* * * @@ -57705,7 +57726,7 @@ Series_SeriesRegistry.registerSeriesType('heatmap', HeatmapSeries); ;// ./code/es-modules/masters/modules/map.src.js /** - * @license Highmaps JS v12.0.2 (2024-12-04) + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/modules/map * @requires highcharts * @@ -57751,7 +57772,7 @@ Maps_MapView.compose(Chart_MapChart); ;// ./code/es-modules/masters/highmaps.src.js /** - * @license Highmaps JS v12.0.2 (2024-12-04) + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/highmaps * * (c) 2011-2024 Torstein Honsi diff --git a/highstock.js b/highstock.js index 46ea262121..bdb5af0e96 100644 --- a/highstock.js +++ b/highstock.js @@ -1,16 +1,16 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i,s,o,r;var a,n,h,l,d,c,p,u,g,f,m,x,y,b,v,k,M,w,S,A,T,C,P,O={};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,e)=>Object.prototype.hasOwnProperty.call(t,e);var E={};O.d(E,{default:()=>uW}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.0.2",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(a||(a={}));let L=a,{charts:B,doc:D,win:I}=L;function z(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=F(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),J(s,function(e,i){t+=` - - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}tt(L,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);I.console&&-1===z.messages.indexOf(a)&&console.warn(a)}),z.messages.push(a)}function R(t,e){return parseInt(t,e||10)}function N(t){return"string"==typeof t}function W(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function G(t,e){return!!t&&"object"==typeof t&&(!e||!W(t))}function X(t){return G(t)&&"number"==typeof t.nodeType}function H(t){let e=t&&t.constructor;return!!(G(t,!0)&&!X(t)&&e&&e.name&&"Object"!==e.name)}function F(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function Y(t){return null!=t}function j(t,e,i){let s;let o=N(e)&&!Y(i),r=(e,i)=>{Y(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return N(e)?r(i,e):J(e,r),s}function U(t){return W(t)?t:[t]}function V(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function _(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(z||(z={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let K=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let te=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();I.jQuery&&(I.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new L[N(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):B[j(this[0],"data-highcharts-chart")]});let ti={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;L.Point&&t instanceof L.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!L.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){Q(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=U(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=I.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),_(s,"opacity"!==i)&&(o=R(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return q(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:J,offset:function(t){let e=D.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(I.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(I.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:_,pInt:R,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:Q,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:U,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return N(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:te,useSerialIds:function(e){return t=_(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:ts}=L,{defined:to,error:tr,extend:ta,isNumber:tn,isObject:th,isString:tl,merge:td,objectEach:tc,pad:tp,splat:tu,timeUnits:tg,ucfirst:tf}=ti,tm=L.isSafari&&ts.Intl&&!ts.Intl.DateTimeFormat.prototype.formatRange,tx=t=>void 0===t.main,ty=t=>["D","L","M","X","J","V","S"].indexOf(t),tb=class{constructor(t){this.options={},this.variableTimezone=!1,this.Date=ts.Date,this.update(t)}update(t={}){let e=t.timezone??"UTC";this.dTLCache={},this.options=t=td(!0,this.options,t);let{timezoneOffset:i,useUTC:s}=t;this.Date=t.Date||ts.Date||Date,to(s)&&(e=s?"UTC":void 0),i&&i%60==0&&(e="Etc/GMT"+(i>0?"+":"")+i/60),this.variableTimezone="UTC"!==e&&e?.indexOf("Etc/GMT")!==0,this.timezone=e,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,ty(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;tl(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(tr(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):tr(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&ta(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||tm||(n-=36e5)}}return n}parse(t){if(!tl(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(tn(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(tn(a))return a}return 0}dateFormat(t,e,i){let s=L.defaultOptions?.lang;if(!to(e)||isNaN(e))return s?.invalidDate||"";if(tl(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(tl(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,f=s?.shortMonths||this.shortMonths;tc(ta({a:u?u[c]:p[c].substr(0,3),A:p[c],d:tp(a),e:tp(a,2," "),w:c,b:f[r],B:g[r],m:tp(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:tp(n),k:n,I:tp(n%12||12),l:n%12||12,M:tp(h),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:tp(l),L:tp(d,3)},L.dateFormats),function(s,o){if(tl(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(th(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.options.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(ta({timeZone:s},t),e)+r}return i?tf(t):t}resolveDTLFormat(t){return th(t,!0)?th(t,!0)&&tx(t)?{main:t}:t:{main:(t=tu(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,u,g]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),to(e)){if(f=h>=tg.second?0:n*Math.floor(f/n),h>=tg.second&&(g=h>=tg.minute?0:n*Math.floor(g/n)),h>=tg.minute&&(u=h>=tg.hour?0:n*Math.floor(u/n)),h>=tg.hour&&(p=h>=tg.day?0:n*Math.floor(p/n)),h>=tg.day&&(c=h>=tg.month?1:Math.max(1,n*Math.floor(c/n))),h>=tg.month&&(d=h>=tg.year?0:n*Math.floor(d/n)),h>=tg.year&&(l-=l%n),h===tg.week){n&&(e=o.makeTime(l,d,c,p,u,g,f));let t=ty(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*tg.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=tg.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=ta(t,{higherRanks:a,totalRange:h*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in tg){if(t===tg.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(tg[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:tv}=L,{fireEvent:tk,merge:tM}=ti,tw={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:tv?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tw.chart.styledMode=!0,tw.chart.styledMode=!1;let tS=new tb(tw.time),tA={defaultOptions:tw,defaultTime:tS,getOptions:function(){return tw},setOptions:function(t){return tk(L,"setOptions",{options:t}),tM(!0,tw,t),t.time&&tS.update(tw.time),t.lang&&"locale"in t.lang&&tS.update({locale:t.lang.locale}),tw}},{isNumber:tT,merge:tC,pInt:tP,defined:tO}=ti;class tE{static parse(t){return t?new tE(t):tE.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=L.Color;if(r&&r!==tE)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tE(t[1]));else if("string"==typeof t)for(this.input=t=tE.names[t.toLowerCase()]||t,s=tE.parsers.length;s--&&!i;)(e=(o=tE.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tC(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tT(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tT(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tP(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tT(i[0])||!tT(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3];return(o?"rgba(":"rgb(")+Math.round(s[0]+(i[0]-s[0])*(1-e))+","+Math.round(s[1]+(i[1]-s[1])*(1-e))+","+Math.round(s[2]+(i[2]-s[2])*(1-e))+(o?","+(s[3]+(i[3]-s[3])*(1-e)):"")+")"}}tE.names={white:"#ffffff",black:"#000000"},tE.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tP(t[1]),tP(t[2]),tP(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tP(t[1]),tP(t[2]),tP(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tP(t[1]+t[1],16),tP(t[2]+t[2],16),tP(t[3]+t[3],16),tO(t[4])?tP(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tP(t[1],16),tP(t[2],16),tP(t[3],16),tO(t[4])?tP(t[4],16)/255:1]}}],tE.None=new tE("");let{parse:tL}=tE,{win:tB}=L,{isNumber:tD,objectEach:tI}=ti;class tz{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tI(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,u=e&&e.slice();if(!u||h)return[r,r];function g(t,e){for(;t.length{let i=tj(t.options.animation);r=tX(e)&&tR(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tY(t,e.options.chart.animation,!0)},stop:tU},{SVG_NS:t_,win:t$}=L,{attr:tZ,createElement:tq,css:tK,error:tJ,isFunction:tQ,isString:t0,objectEach:t1,splat:t2}=ti,{trustedTypes:t3}=t$,t5=t3&&tQ(t3.createPolicy)&&t3.createPolicy("highcharts",{createHTML:t=>t}),t6=t5?t5.createHTML(""):"";class t9{static filterUserAttributes(t){return t1(t,(e,i)=>{let s=!0;-1===t9.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=t0(e)&&t9.allowedReferences.some(t=>0===e.indexOf(t))),s||(tJ(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),t0(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t9.emptyHTML,e&&new t9(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t2(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?L.doc.createTextNode(e.textContent):void 0,n=t9.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==t9.allowedTags.indexOf(r)||n){let s="svg"===r?t_:i.namespaceURI||t_,h=L.doc.createElementNS(s,r),l=e.attributes||{};t1(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),tZ(h,n?l:t9.filterUserAttributes(l)),e.style&&tK(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tJ(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t5?t5.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tq("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t9.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t9.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t9.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t9.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t9.emptyHTML=t6,t9.bypassHTMLFiltering=!1;let{defaultOptions:t4,defaultTime:t8}=tA,{doc:t7}=L,{extend:et,getNestedProperty:ee,isArray:ei,isNumber:es,isObject:eo,pick:er,ucfirst:ea}=ti,en={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!ei(t)&&t.map((i,s)=>el(e.body,et(eo(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:ea,unless:t=>!t},eh={};function el(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,h=i?.options.lang||t4.lang,l=i&&i.time||t8,d=i&&i.numberFormatter||ed,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:/^["'].+["']$/.test(t)?t.slice(1,-1):ee(t,e))},p,u,g=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),u&&u.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");en[a]&&(u.isBlock&&a===u.fn&&g++,u.fn||(u.fn=a));let n="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||n)){if(g)!n&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],n||(r.push(u),u=void 0)}}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let o,r;let{body:p,elseBody:u,expression:g,fn:m}=s;if(m){let t=[s],a=[],n=g.length,h=0,l;for(r=0;r<=n;r++){let t=g.charAt(r);l||'"'!==t&&"'"!==t?l===t&&(l=""):l=t,l||" "!==t&&r!==n||(a.push(g.substr(h,r-h)),h=r+1)}for(r=en[m].length;r--;)t.unshift(c(a[r+1]));o=en[m].apply(e,t),s.isBlock&&"boolean"==typeof o&&(o=el(o?p:u,e,i))}else{let t=g.split(":");if(o=c(t.shift()||""),t.length&&"number"==typeof o){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==o&&(o=d(o,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else o=l.dateFormat(e,o),f&&(o=`"${o}"`)}}t=t.replace(s.find,er(o,""))}),f?el(t,e,i):t}function ed(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||t4.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):es(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),es(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||h.locale||t7.body.closest("[lang]")?.lang,g=JSON.stringify(c)+u;return o=(eh[g]??(eh[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let ec={dateFormat:function(t,e,i){return t8.dateFormat(t,e,i)},format:el,helpers:en,numberFormat:ed};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,L.Renderer=s)}}(n||(n={}));let ep=n,{clamp:eu,pick:eg,pushUnique:ef,stableSort:em}=ti;(h||(h={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,u,g=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(em(e,(t,e)=>(e.rank||0)-(t.rank||0)),u=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?u:h-1;u&&x>r;)f=e[c=Math.floor(p)],ef(l,c)&&(x-=f.size),p+=u,y&&p>=e.length&&(u/=2,p=u);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(em(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:eg(t.align,.5)}));g;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=eu(m-f.size*f.align,0,i-f.size);for(c=e.length,g=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),g=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),em(o,a),o};let ex=h,{animate:ey,animObject:eb,stop:ev}=tV,{deg2rad:ek,doc:eM,svg:ew,SVG_NS:eS,win:eA,isFirefox:eT}=L,{addEvent:eC,attr:eP,createElement:eO,crisp:eE,css:eL,defined:eB,erase:eD,extend:eI,fireEvent:ez,getAlignFactor:eR,isArray:eN,isFunction:eW,isNumber:eG,isObject:eX,isString:eH,merge:eF,objectEach:eY,pick:ej,pInt:eU,pushUnique:eV,replaceNested:e_,syncTimeout:e$,uniqueKey:eZ}=ti;class eq{_defaultGetter(t){let e=ej(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||eH(i)?i||"renderer":void 0;h&&(n&&eV(a,this),i=void 0);let l=ej(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eR(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eR(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=eb(ej(e,this.renderer.globalAnimation,!0)),o=s.defer;return eM.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),e$(()=>{this.element&&ey(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eY(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&L.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=eM.createElementNS(eS,"tspan");eP(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=eM.createElementNS(eS,"tspan");a.textContent="​",eP(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eq.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eY(t,function(e,i){l=!1,s||ev(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eZ()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eI(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eE(i,e),n=eE(s,e);return eI(t,{x:a,y:n,width:eE(o,e)-a,height:eE(r,e)-n}),eB(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,u,g=[],f;ez(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eN(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eB(a.gradientUnits)&&(n=a,a=eF(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),eY(a,function(t,e){"id"!==e&&g.push(e,t)}),eY(l,function(t){g.push(t)}),h[g=g.join(",")])u=h[g].attr("id");else{a.id=u=eZ();let t=h[g]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tE.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+u+")",i.setAttribute(e,f),i.gradient=g,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eY(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eI(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eU(t.width)),eI(this.styles,t),o&&!ew&&this.renderer.forExport&&delete t.width;let r=eT&&t.fontSize||null;r&&(eG(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=eF(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),eL(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eU(s[e])*ej(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ev(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,u=n.namespaceURI===this.SVG_NS,g=ej(e,this.rotation,0),f=h.styledMode?n&&eq.prototype.getStyle.call(n,"font-size"):l.fontSize;if(eB(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,g,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&eL(e,{display:t})},eW(o)&&o("none"),i=n.getBBox?eI({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eW(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};ez(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eR(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*ek,u=(e-90)*ek,g=Math.cos(p),f=Math.sin(p),m=o*g,x=o*f,y=Math.cos(u),b=Math.sin(u),[[v,k],[M,w]]=[h,l].map(t=>[t-t*g,t*f]),S=i+d*(o-m)+v+w+c*y,A=S+m,T=A-r*y,C=T-m,P=s+c-d*x-k+M+c*b,O=P+x,E=O-r*b,L=E-x,B=Math.min(S,A,T,C),D=Math.min(P,O,E,L),I=Math.max(S,A,T,C)-B,z=Math.max(P,O,E,L)-D;return{x:B,y:D,width:I,height:z,polygon:[[S,P],[A,O],[T,E],[C,L]]}}getStyle(t){return eA.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=eS,this.element="span"===e||"body"===e?eO(e):eM.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},ez(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eC(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eH(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eF(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eX(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eU(t):""!==t&&(eP(i=eM.createElementNS(eS,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eq.symbolCustomAttribs.forEach(function(i){e[i]=ej(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||eM.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=e_(ej(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];eB(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+ej(o,e.getAttribute("x"),0)+" "+ej(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eB(a)||eB(n))&&d.push("scale("+ej(a,1)+" "+ej(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,u;if(eB(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eB(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(n=o.childNodes).length-1;u>=0&&!d;u--)c=!eB(l=(h=n[u]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!a&&!u?(o.insertBefore(r,n[u]),d=!0):(eU(l)<=t||c&&(!eB(t)||t>=0))&&(o.insertBefore(r,n[u+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}eq.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],eq.prototype.strokeSetter=eq.prototype.fillSetter,eq.prototype.yGetter=eq.prototype.xGetter,eq.prototype.matrixSetter=eq.prototype.rotationOriginXSetter=eq.prototype.rotationOriginYSetter=eq.prototype.rotationSetter=eq.prototype.scaleXSetter=eq.prototype.scaleYSetter=eq.prototype.translateXSetter=eq.prototype.translateYSetter=eq.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eK=eq,{defined:eJ,extend:eQ,getAlignFactor:e0,isNumber:e1,merge:e2,pick:e3,removeEvent:e5}=ti;class e6 extends eK{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e6.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=e0(t);e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&e1(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e2(t),e6.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eK.prototype.css.call(this,t)}destroy(){e5(this.element,"mouseenter"),e5(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eK.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=e3(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:e3(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&eJ(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){e1(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!e1(this.widthSetting)||!e1(this.heightSetting)||this.textAlign)&&eJ(e.textStr)?e.getBBox(void 0,0):e6.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(eQ(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text;if(!t.textPath){this.updateBoxSize();let e=this.baseline?0:this.baselineOffset,i=(this.paddingLeft??this.padding)+(eJ(this.widthSetting)&&this.bBox?e0(this.textAlign)*(this.widthSetting-this.bBox.width):0);(i!==t.x||e!==t.y)&&(t.attr("x",i),t.hasBoxWidthChanged&&(this.bBox=t.getBBox(!0)),void 0!==e&&t.attr("y",e)),t.x=i,t.y=e}}widthSetter(t){this.widthSetting=e1(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=e3(this.paddingLeft,t),i=e3(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}e6.emptyBBox={width:0,height:0,x:0,y:0},e6.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e9,isNumber:e4,pick:e8}=ti;function e7(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=e8(o.r,i),h=e8(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&h0)return l;if(t+n>i-a){if(h>e+a&&he+a&&h0){let i=hs&&na&&l.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return e7(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:it,roundedRect:ie,square:it,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:is,SVG_NS:io,win:ir}=L,{attr:ia,extend:ih,fireEvent:il,isString:id,objectEach:ic,pick:ip}=ti,iu=(t,e)=>t.substring(0,e)+"…",ig=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=ip(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new t9(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(is.createTextNode(this.unescapeEntities(s)));id(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=ia(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),ia(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,iu),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(is.createTextNode(e),t);let s=is.createElementNS(io,"tspan");s.textContent="​",ia(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,iu)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ir.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ir.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),ih(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),il(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(n=a(i,g)),h=f(g,n&&n.length-1),p===u?p=u+1:h>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=n||a(e||i,g)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,iu)}i&&i.splice(0,g),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return ic(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:im}=tA,{charts:ix,deg2rad:iy,doc:ib,isFirefox:iv,isMS:ik,isWebKit:iM,noop:iw,SVG_NS:iS,symbolSizes:iA,win:iT}=L,{addEvent:iC,attr:iP,createElement:iO,crisp:iE,css:iL,defined:iB,destroyObjectProperties:iD,extend:iI,isArray:iz,isNumber:iR,isObject:iN,isString:iW,merge:iG,pick:iX,pInt:iH,replaceNested:iF,uniqueKey:iY}=ti;class ij{constructor(t,e,i,s,o,r,a){let n,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iP(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iP(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ib.createTextNode("Created with Highcharts 12.0.2")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),iv&&t.getBoundingClientRect&&((n=function(){iL(t,{left:0,top:0}),h=t.getBoundingClientRect(),iL(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=iC(iT,"resize",n))}definition(t){return new t9([t]).addToDOM(this.defs.element)}getReferenceURL(){if((iv||iM)&&ib.getElementsByTagName("base").length){if(!iB(e)){let t=iY(),i=new t9([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ib.body);iL(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ib.elementFromPoint(6,6);e="hitme"===(s&&s.id),ib.body.removeChild(i)}if(e)return iF(iT.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iI({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iD(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iG({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ig(t).buildSVG()}getContrast(t){let e=tE.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=iG(im.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t9.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iG(m[0],t9.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),iC(d.element,ik?"mouseover":"mouseenter",function(){3!==u&&d.setState(1)}),iC(d.element,ik?"mouseout":"mouseleave",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iN(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iI({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==u&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iB(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iE(i[1],e)),iB(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iE(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iz(t)?e.d=t:iN(t)&&iI(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iN(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iN(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iN(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iI(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iP(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iX(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iR(e)&&(a.x=e),iR(i)&&(a.y=i),iR(s)&&(a.width=s),iR(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iT.Image;iC(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(n=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iI(a,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&iI(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iX(r&&r.width,iA[h]&&iA[h].width),s.imgheight=iX(r&&r.height,iA[h]&&iA[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iP(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iB(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iB(s.imgwidth)&&iB(s.imgheight)?l(s):(s.attr({width:0,height:0}),iO("img",{onload:function(){let t=ix[d.chartIndex];0===this.width&&(iL(this,{position:"absolute",top:"-999em"}),ib.body.appendChild(this)),iA[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iB(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iI(ij.prototype,{Element:eK,SVG_NS:iS,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:ii,draw:iw}),ep.registerRendererType("svg",ij,!0);let{composed:iU}=L,{attr:iV,css:i_,createElement:i$,defined:iZ,extend:iq,getAlignFactor:iK,isNumber:iJ,pInt:iQ,pushUnique:i0}=ti;function i1(t,e,i){let s=this.div?.style||i.style;eK.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i2=(t,e)=>{if(!t.div){let i=iV(t.element,"class"),s=t.css,o=i$("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=i1,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eK.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class i3 extends eK{static compose(t){i0(iU,this.compose)&&(t.prototype.html=function(t,e,i){return new i3(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=iQ(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),iJ(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),iq(this.styles,t),i_(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,{display:g="block",whiteSpace:f}=n;if(i_(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n=[i,h,t.innerHTML,l,this.textAlign].join(","),d=-(this.parentGroup?.padding*1)||0,c,m=!1;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(i_(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(i_(t,{width:e>s||i||r?l+"px":"auto",display:g,whiteSpace:f||"normal"}),this.oldTextWidth=l,m=!0)}this.hasBoxWidthChanged=m,n!==this.cTT&&(c=e.fontMetrics(t).b,iZ(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,d,d),this.getSpanCorrection(!iZ(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,c,iK(h)));let{xCorr:x=0,yCorr:y=0}=this,b={left:`${p+x}px`,top:`${u+y}px`,textAlign:h,transformOrigin:`${(s??p)-x-p-d}px ${(o??u)-y-u-d}px`};(r||a)&&(b.transform=`scale(${r??1},${a??1})`),i_(t,b),this.cTT=n,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){i_(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=i2(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t9.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i5=i3.prototype;i5.visibilitySetter=i5.opacitySetter=i1,i5.ySetter=i5.rotationSetter=i5.rotationOriginXSetter=i5.rotationOriginYSetter=i5.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(l||(l={}));let i6=l,{addEvent:i9,isFunction:i4,objectEach:i8,removeEvent:i7}=ti;(d||(d={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i8(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i7(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i4(e)&&(t.eventOptions[i]=e,i9(t,i,e,{order:0})))})};let st=d,{deg2rad:se}=L,{clamp:si,correctFloat:ss,defined:so,destroyObjectProperties:sr,extend:sa,fireEvent:sn,getAlignFactor:sh,isNumber:sl,merge:sd,objectEach:sc,pick:sp}=ti,su=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,sn(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=sp(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,u=l.info,g=t.label,f,m,x,y=this.parameters.category||(o?sp(o[n],a[n],n):n);r&&sl(y)&&(y=ss(r.lin2log(y))),e.dateTime&&(u?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&u.higherRanks[n]||u.unitName])).main:sl(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:u,value:y};sn(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),ec.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),M=m&&m.list;M?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(l*se))):(f=s-d*c,m=s+(1-d)*c,fn&&(u=n-t.x+u*d,g=-1),(u=Math.min(p,u))u||e.autoRotation&&(h.styles||{}).width)&&(x=u)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(sa({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sc(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=sp(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(ss(p)c)&&(i=0);let u=sp(i,this.label&&this.label.newOpacity,1);i=sp(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,u,t),this.isNew=!1,sn(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=sp(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,h=t.y,l=sp(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=sp(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;n&&sl(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):u=!1,l&&s%l&&(u=!1),u&&sl(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sg}=tV,{xAxis:sf,yAxis:sm}=i6,{defaultOptions:sx}=tA,{registerEventOptions:sy}=st,{deg2rad:sb}=L,{arrayMax:sv,arrayMin:sk,clamp:sM,correctFloat:sw,defined:sS,destroyObjectProperties:sA,erase:sT,error:sC,extend:sP,fireEvent:sO,getClosestDistance:sE,insertItem:sL,isArray:sB,isNumber:sD,isString:sI,merge:sz,normalizeTickInterval:sR,objectEach:sN,pick:sW,relativeLength:sG,removeEvent:sX,splat:sH,syncTimeout:sF}=ti,sY=(t,e)=>sR(e,void 0,void 0,sW(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sP(sx,{xAxis:sf,yAxis:sz(sf,sm)});class sj{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sO(this,"init",{userOptions:e}),this.opposite=sW(e.opposite,this.opposite),this.side=sW(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sO(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sW(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sB(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sS(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sW(r.crosshair,sH(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sL(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sS(this.reversed)&&(this.reversed=!0),this.labelRotation=sD(a.rotation)?a.rotation:void 0,sy(this,r),sO(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sz(e,sx[this.coll],t),sO(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sD(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sx.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sO(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sD(a)||a instanceof Date||(o=o.filter(sD),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sW(e.dataMin,a),a),e.dataMax=Math.max(sW(e.dataMax,n),n)));else{let t=i.applyExtremes();sD(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sW(e.dataMin,a),a)),sD(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sW(e.dataMax,n),n)),sS(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sO(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sD(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,u=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(u=(t=t*d+c-h)/p+n,l&&(u=a.lin2val(u))):(l&&(t=a.val2lin(t)),u=d*(t-n)*p+c+d*h+(sD(r)?p*r:0),a.isRadial||(u=sw(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sM(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sO(this,"getPlotLinePath",b,function(t){u=f=(c=sM(c=sW(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,g=m=h-c-d,sD(c)?e.horiz?(g=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=f=y(u,s,s+e.width)):(u=s,f=l-e.right+(i.scrollablePixelsX||0),g=m=y(g,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=sw(Math.floor(e/t)*t),n=sw(Math.ceil(i/t)*t),h=[];if(sw(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=sw(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sW(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sD(s)&&sD(o)&&sD(r)&&s-o=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sv(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sk(l))-ot-e),t=sE([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sB(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sS(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sW(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sD(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sW(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sI(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sO(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sD(t)&&sD(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sD(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:f,softMax:m,softMin:x}=h,y=sD(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,M=0,w,S=sD(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,A,T,C,P;if(r||e||y||this.getTickAmount(),C=sW(this.userMin,d.parse(h.min)),P=sW(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,w=y.getExtremes(),this.min=sW(w.min,w.dataMin),this.max=sW(w.max,w.dataMax),this.type!==y.type&&sC(11,!0,i)):(l&&sS(c)&&sD(s)&&sD(o)&&(o>=c?(A=c,k=0):s<=c&&(T=c,v=0)),this.min=sW(C,A,o),this.max=sW(P,T,s)),sD(this.max)&&sD(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sW(o,this.min))&&sC(10,!0,i),this.min=sw(n.log2lin(this.min),16),this.max=sw(n.log2lin(this.max),16)),this.range&&sD(o)&&(this.userMin=this.min=C=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sO(this,"foundExtremes"),this.adjustForMinRange(),sD(this.min)&&sD(this.max)){if(!sD(this.userMin)&&sD(x)&&xthis.max&&(this.max=P=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(M=this.max-this.min)||(!sS(C)&&k&&(this.min-=M*k),sS(P)||!v||(this.max+=M*v)),!sD(this.userMin)&&sD(g)&&(this.min=Math.max(this.min,g)),!sD(this.userMax)&&sD(u)&&(this.max=Math.min(this.max,u)),l&&sD(o)&&sD(s)){let t=c||0;!sS(C)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sS(P)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sS(h.min)?this.max=this.min:sS(h.max)&&(this.min=this.max)),M=this.max-this.min}if(this.min!==this.max&&sD(this.min)&&sD(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sW(S,this.tickAmount?M/Math.max(this.tickAmount-1,1):void 0,e?1:M*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sO(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sO(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let O=sW(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sC(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sY(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sD(this.min)&&sD(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sO(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sO(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sD(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sD(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sD(this.threshold)){let t=sM((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sS(t.tickInterval)||i||!(this.lenr.push(sw(r[r.length-1]+p)),f=()=>r.unshift(sw(r[0]-p));if(sD(n)&&(u=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(u=a-1-u)),t.hasData()&&sD(s)&&sD(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sD(u)&&sD(t.threshold)){for(;r[u]!==l||r.length!==a||r[0]>s||r[r.length-1]t.threshold?f():g();if(p>8*t.tickInterval)break;p*=2}n()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sO(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sO(this,"setExtremes",o=sP(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sG(sW(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sG(sW(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sG(sW(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sG(sW(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sw(t.lin2log(this.min)):this.min,max:t?sw(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sW(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sO(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=sw(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sw(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sD(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sb*i))))+Math.abs(i/360))g&&(g=i)}),this.maxLabelLength=g,this.autoRotation?g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sP(a,{width:`${p}px`,lineClamp:u})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sS(this.min)&&sS(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sz(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new su(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sD(s.crossing),u=e.axisOffset,g=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,M;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sW(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sN(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sS(y=d.offset)?0:sW(d.margin,i?5:10))),t.renderLine(),t.offset=f*sW(s.offset,u[o]?u[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},M=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=M,k+=f*(i?sW(c.y,t.tickRotCorr.y+f*c.distance):sW(c.x,f*c.distance))),t.axisTitleMargin=sW(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&g){let e=this.tickSize("tick");u[o]=Math.max(u[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a&&a.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[h]=Math.max(g[h],i)}sO(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?u+l:g+(n?this.width:0)+h+l,y:e?g+d-(n?this.height:0)+h:u+d};return sO(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new su(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new su(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=a.stackLabels,g=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sg(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sN(t,function(t){t.isActive=!1})}),sD(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sD(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new su(i,-1,null,!0)),d[-1].render(-1))),g&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sK(t=sJ("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(p||(p={}));let sQ=p,{erase:s0,extend:s1,isNumber:s2}=ti;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!s2(this.min)||!s2(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s3.compose(oo,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){ot(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),u=e.borderWidth,g=e.label,{label:f,svgElem:m}=this,x=[],y,b=s4(c)&&s4(d),v=s4(p),k=!m,M={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},w=b?"bands":"lines";if(!t.chart.styledMode&&(v?(M.stroke=o||"#999999",M["stroke-width"]=os(e.width,1),e.dashStyle&&(M.dashstyle=e.dashStyle)):b&&(M.fill=o||"#e6e9ff",u&&(M.stroke=e.borderColor,M["stroke-width"]=u))),l.zIndex=a,w+="-"+a,(y=t.plotLinesAndBandsGroups[w])||(t.plotLinesAndBandsGroups[w]=y=n.g("plot-"+w).attr(l).add()),m||(this.svgElem=m=n.path().attr(M).add(y)),s4(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s4(c)&&s4(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(oi(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),g&&(s4(g.text)||s4(g.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(g=oe({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},g),this.renderLabel(g,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(oe({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s9(h),c=s9(l),p=s6(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:s6(l)-c}),(!n.alignValue||"left"===n.alignValue||s4(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return s4(t.formatter)?t.formatter.call(this):t.text}destroy(){s7(this.axis.plotLinesAndBands,this),delete this.axis,s8(this)}}let{animObject:or}=tV,{format:oa}=ec,{composed:on,dateFormats:oh,doc:ol,isSafari:od}=L,{distribute:oc}=ex,{addEvent:op,clamp:ou,css:og,discardElement:of,extend:om,fireEvent:ox,isArray:oy,isNumber:ob,isObject:ov,isString:ok,merge:oM,pick:ow,pushUnique:oS,splat:oA,syncTimeout:oT}=ti;class oC{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||oA(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),of(this.container)),ti.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=oA(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+ow(t.colorIndex,o.colorIndex),r&&r.className].filter(ok).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=ep.getRendererType();this.container=a=L.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),og(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&L.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=ol,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v("y"),M=v("x"),w,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let A=!this.followPointer&&ow(i.ttBelow,!d&&!n===S),T=function(t,e,i,o,a,n,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+g)}},C=function(t,e,i,o,r){if(re-s)return!1;re-o/2?u[t]=e-o-2:u[t]=r-i/2},P=function(t){[k,M]=[M,k],w=t},O=()=>{!1!==T.apply(0,k)?!1!==C.apply(0,M)||w||(P(!0),O()):w?u.x=u.y=0:(P(!0),O())};return(n&&!d||this.len>1)&&P(),O(),u}hide(t){let e=this;ti.clearTimeout(this.hideTimer),t=ow(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oT(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=ow(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=or(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=oA(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;ti.clearTimeout(this.hideTimer),this.allowShared=!(!oy(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let f=ok(h)?oa(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=ow(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:ou(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ox(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{positioner:g},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?ol.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,k=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:M,top:w}=f.getChartPosition(),S=h+x,A=0,T=a-l;function C(t,e,s,o,r=!0){let a,n;return s?(a=k?0:T,n=ou(t-o/2,y.left,y.right-o-(i.outside?M:0))):(a=e-S,n=ou(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}ok(t)&&(t=[!1,t]);let P=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:u.padding,r:u.borderRadius};c||(t.fill=u.backgroundColor,t["stroke-width"]=u.borderWidth??1),o=v.label("",0,0,u[r?"headerShape":"shape"],void 0,void 0,u.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(u.style).attr({stroke:u.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(A=m.height,T+=A,k&&(S-=A));let{anchorX:M,anchorY:w}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+ou(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=ou(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof w){let e=m.height+1,s=g?g.call(i,x,e,r):C(M,w,l,x);t.push({align:g?0:void 0,anchorX:M,anchorY:w,boxWidth:x,point:r,rank:ow(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!g&&P.some(t=>{let{outside:e}=i,s=(e?M:0)+t.anchorX;return ss})&&(P=P.map(t=>{let{x:e,y:i}=C(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return om(t,{target:i,x:e})})),i.cleanSplit(),oc(P,T);let O={left:M,right:M};P.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&M+eO.right&&(O.right=M+e))}),P.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(O.right-O.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:E,outside:L,renderer:B}=i;if(L&&E&&B){let{width:t,height:e,x:i,y:s}=b.getBBox();B.setSize(t+i,e+s,!1),E.style.left=O.left+"px",E.style.top=w+"px"}od&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return ox(this,"headerFormatter",a,function(e){if(r&&!n&&ob(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(ov(n)){let t=n;oh[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=oa(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,oM(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),u=(o.positioner||this.getPosition).call(this,h,n,t),g=L.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(u.x+=l-s,u.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(ou(h+x,0,g.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(og(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-u.x,m+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),f,m)}}!function(t){t.compose=function(e){oS(on,"Core.Tooltip")&&op(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oC||(oC={}));let oP=oC,{animObject:oO}=tV,{defaultOptions:oE}=tA,{format:oL}=ec,{addEvent:oB,crisp:oD,erase:oI,extend:oz,fireEvent:oR,getNestedProperty:oN,isArray:oW,isFunction:oG,isNumber:oX,isObject:oH,merge:oF,pick:oY,syncTimeout:oj,removeEvent:oU,uniqueKey:oV}=ti;class o_{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oz({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oz(this,t=o_.prototype.optionsToObject.call(this,t)),this.options=this.options?oz(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=o_.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oX(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oX(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oO(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oU(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oI(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oj(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oR(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oN(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oV()),this.resolveColor(),t.chart.pointCount++,oR(this,"afterInit")}isValid(){return(oX(this.x)||this.x instanceof Date)&&oX(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(oX(t)||null===t)r[s[0]]=t;else if(oW(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);h0?o_.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oX(i)&&oX(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oY(this.options.colorIndex,a),this.color=oY(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oH(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oL(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oH(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oH(l.data[o],!0)||oH(t,!0)?r.options:oY(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oY(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oY(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oF(this.series.options.point,this.options),i=e.events?.[t];oG(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oB(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oU(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oE.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),f=oY(d.options.chart.animation,o.animation);let e=g.opacity;i.options.inactiveOtherPoints&&oX(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(g,f)}u&&this.graphic.animate(u,oY(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),u&&(m?m[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,u.x,u.y,u.width,u.height,oF(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oY(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oz({fill:this.color||i.color,"fill-opacity":y.opacity},t9.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oR(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oD(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let o$=o_,{parse:oZ}=tE,{charts:oq,composed:oK,isTouchDevice:oJ}=L,{addEvent:oQ,attr:o0,css:o1,extend:o2,find:o3,fireEvent:o5,isNumber:o6,isObject:o9,objectEach:o4,offset:o8,pick:o7,pushUnique:rt,splat:re}=ti;class ri{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!L.chartCount&&(ri.unbindDocumentMouseUp.forEach(t=>t.unbind()),ri.unbindDocumentMouseUp.length=0,ri.unbindDocumentTouchEnd&&(ri.unbindDocumentTouchEnd=ri.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),o4(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o5(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(s=t-n,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+n),a&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o9(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(un+l&&(u=n+l),gh+d&&(g=h+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(u,g);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oZ("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o5(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o6(i.index)&&(this.selectionMarker=s.destroy())}i&&o6(i.index)&&(o1(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o9(r,!0)&&r.series&&(!o9(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&o6(o.x)&&o6(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o8(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&o7(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o5(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=o3(t.points,function(t){return t.x===c.x&&!t.isNull});o9(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),o5(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=o0(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o5(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o7(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o2(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o5(i.series,"click",o2(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(o2(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o5(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),L.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oq[o7(ri.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oq[o7(ri.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&o7(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o5(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&re(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&re(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n&&n.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,u=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(u?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oQ(s.container.ownerDocument,"mousemove",t=>oq[ri.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o7((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=o3(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oQ(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oQ(t,"mouseleave",this.onContainerMouseLeave.bind(this))),ri.unbindDocumentMouseUp.some(t=>t.doc===e)||ri.unbindDocumentMouseUp.push({doc:e,unbind:oQ(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oQ(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oQ(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oQ(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),ri.unbindDocumentTouchEnd||(ri.unbindDocumentTouchEnd=oQ(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oQ(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oJ)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o7(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oQ(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oQ(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||o1(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||o1(i,{"touch-action":o7(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=L.charts[o7(ri.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(ri.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o7(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o7(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}ri.unbindDocumentMouseUp=[],function(t){t.compose=function(e){rt(oK,"Core.Pointer")&&oQ(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(ri||(ri={}));let rs=ri,{fireEvent:ro,isArray:rr,objectEach:ra,uniqueKey:rn}=ti,rh=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||rn(),this.modified=this,this.rowCount=0,this.versionTag=rn();let e=0;ra(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,ra(this.columns,e=>{rr(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;ra(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ro(this,"afterSetColumns"),this.versionTag=rn())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;ra(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(ro(this,"afterSetRows"),this.versionTag=rn())}},{extend:rl,merge:rd,pick:rc}=ti;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,u=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),g={},f,m=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"===r.linecap||(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,u],["L",n-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(rc(m.radius,d),d);0===l.indexOf("url")&&(m=rd(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,u-t,2*t,2*t,rl({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rc(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(g||(g={}));let rp=g,{defaultOptions:ru}=tA,{extend:rg,extendClass:rf,merge:rm}=ti;!function(t){function e(e,i){let s=ru.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=o$),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=L.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=ru.plotOptions||{};if(s=s||"",n[i]=rm(n[s],o),delete t.seriesTypes[i],e(i,rf(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends o${}rg(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(f||(f={}));let rx=f,{animObject:ry,setAnimation:rb}=tV,{defaultOptions:rv}=tA,{registerEventOptions:rk}=st,{svg:rM,win:rw}=L,{seriesTypes:rS}=rx,{arrayMax:rA,arrayMin:rT,clamp:rC,correctFloat:rP,crisp:rO,defined:rE,destroyObjectProperties:rL,diffObjects:rB,erase:rD,error:rI,extend:rz,find:rR,fireEvent:rN,getClosestDistance:rW,getNestedProperty:rG,insertItem:rX,isArray:rH,isNumber:rF,isString:rY,merge:rj,objectEach:rU,pick:rV,removeEvent:r_,syncTimeout:r$}=ti;class rZ{constructor(){this.zoneAxis="y"}init(t,e){let i;rN(this,"init",{options:e}),this.dataTable??(this.dataTable=new rh);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rz(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rk(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rV(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rX(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rN(this,"afterInit")}is(t){return rS[t]&&this instanceof rS[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rN(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rV(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rX(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rI(18,!0,s)})}),rN(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rV(this.pointInterval,i.pointInterval,1),o&&rF(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rF(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rz(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rE(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rj(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rN(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rv.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=n.userOptions;let u=rj(h,s.series,p,r);this.tooltipOptions=rj(rv.tooltip,rv.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rV(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===h.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map(t=>({...t}));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},a||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&rE(g[g.length-1].value)&&g.push(a?{}:{color:this.color,fillColor:this.fillColor}),rN(this,"afterSetOptions",{options:u}),u}getName(){return rV(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rE(o=rV("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rv.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof o$&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rR(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rF(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rF(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rE(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rF(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,a&&(c=l+1)):o[l]&&(o[l].touched=!0),(!n||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=rA(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),u=this.pointValKey||"y",g=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rj(!0,t));let k=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(rH(t)&&(f||rF(t[0])));if(rF(i)&&rF(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[u]:i})}else if(o(i)&&o(s)){if(g){let e=i.length===g?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=g;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[u]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rG(i,t),o=rG(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,u,g,f,m=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,f=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]f?x=new rh:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,g,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rW([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rI(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rN(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a=e){h=Math.max(0,a-1);break}for(n=a;ni){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rh({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],u=this.dataColumnKeys(),g,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,u=o||this.cropped||!i,g,f,m,x=0,y=0;for(i&&(x=(g=i.getExtremes()).min,y=g.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rF(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rT(d),dataMax:rA(d)};return rN(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rU(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rN(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||"markerGroup"],g=this.xAxis,f=rV(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=rV(o.radius,s&&s.radius);e&&(n=s.states[e],l=rV((h=o.states&&o.states[e])&&h.radius,n&&n.radius,l&&l+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rF(l)&&d&&(i.crisp&&(d[0]=rO(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,u=rV(o.lineWidth,i.lineWidth),g=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},u=rV((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,u+rV(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":u,fill:c,opacity:g=rV(l.opacity,h.opacity,g)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(rw.navigator.userAgent),n=o.data||[];for(rN(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rD(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rL(t,void 0,!0);ti.clearTimeout(o.animationTimeout),rU(o,function(t,e){t instanceof eK&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rD(r.series,o),r.orderItems("series"),rU(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rC(d.toPixels(rV(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,u=0,f=r.len,y=a.len;c?(p=o,f=x):(u=o,y=x);let b=[["M",p,u],["L",f,u],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(g(v),t&&g(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rE(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rE(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||r_(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=ry(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rN(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=r$(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rN(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,r$(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i){let s=this,[o,r]=this.kdAxisArray,a=e?"distX":"dist",n=(s.options.findNearestPointBy||"").indexOf("y")>-1?2:1,h=!!s.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,n,l){let d=i.point,c=s.kdAxisArray[n%l],p,u,g=d;!function(t,e){let i=t[o],s=e[o],a=rE(i)&&rE(s)?i-s:null,n=t[r],l=e[r],d=rE(n)&&rE(l)?n-l:0,c=h&&e.marker?.radius||0;e.dist=Math.sqrt((a&&a*a||0)+d*d)-c,e.distX=rE(a)?Math.abs(a)-c:Number.MAX_VALUE}(e,d);let f=(e[c]||0)-(d[c]||0)+(h&&d.marker?.radius||0),m=f<0?"left":"right",x=f<0?"right":"left";return i[m]&&(g=(p=t(e,i[m],n+1,l))[a]=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(rM?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rN(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,u=n.data,g=this.getColumn("x");e=rV(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=g.length,this.requireSorting&&mm;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),u?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,u,...Object.values(d.getColumns())].filter(rE).forEach(t=>{t.shift()}),d.rowCount-=1,rN(d,"afterDeleteRows"))),!1!==o&&rN(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rE).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rN(n,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rb(i,o),e=rV(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rV(t,!0)&&r.redraw(e)}!1!==i?rN(o,"remove",null,a):a()}update(t,e){rN(this,"update",{options:t=rB(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rS[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],u=t.type||o.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));u=u||r,g?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rz(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rj(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!g&&{data:i.options.data},t,h),g&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rS[u]){if(f=u!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rS[u].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rz(i,rS[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rI(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rN(this,"afterUpdate"),rV(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rV(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rE(r)?i!==o:i!==rV(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rN(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rN(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rV(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=rV(a[t].opacity,l)),o&&!o.dashstyle&&rF(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rN(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rN(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rp[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rZ.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rZ.types=rx.seriesTypes,rZ.registerType=rx.registerSeriesType,rz(rZ.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:o$,requireSorting:!0,sorted:!0}),rx.series=rZ;let rq=rZ,{animObject:rK,setAnimation:rJ}=tV,{registerEventOptions:rQ}=st,{composed:r0,marginNames:r1}=L,{distribute:r2}=ex,{format:r3}=ec,{addEvent:r5,createElement:r6,css:r9,defined:r4,discardElement:r8,find:r7,fireEvent:at,isNumber:ae,merge:ai,pick:as,pushUnique:ao,relativeLength:ar,stableSort:aa,syncTimeout:an}=ti;class ah{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rQ(this,e),r5(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r5(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=as(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=ai(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=as(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(ai(!0,this.options,t)),"events"in this.options&&rQ(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,as(e,!0)&&i.redraw(),at(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof rq||t instanceof o$)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(ai(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,at(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[r4(e.translateY)?"animate":"attr"](o,void 0,()=>{at(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r8(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,r9(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?as(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&as(i.showInLegend,!r4(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),at(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!r4(t[a])&&(i[r1[a]]=Math.max(i[r1[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+as(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=r7(a?t.points:t.points.slice(0).reverse(),function(t){return ae(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),r2(i,e.plotHeight)))t=o.item.legendItem||{},ae(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ar(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),aa(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),at(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=ai(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(ai(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=as(l.animation,!0),c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?k.attr({height:t}):k&&(e.clipRect=k.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,k=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-n,0),this.currentPage=as(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((u[e-1].legendItem||{}).pageIx=o-1),e===u.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),k||(k=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(k)),g(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&rJ(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),an(()=>{at(this,"afterScroll",{currentPage:l})},rK(as(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof o$,n=t instanceof rq,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(ai(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),at(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&at(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=r6("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r5(t.checkbox,"click",function(e){let i=e.target;at(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){ao(r0,"Core.Legend")&&r5(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(ah||(ah={}));let al=ah,{animate:ad,animObject:ac,setAnimation:ap}=tV,{defaultOptions:au}=tA,{numberFormat:ag}=ec,{registerEventOptions:af}=st,{charts:am,doc:ax,marginNames:ay,svg:ab,win:av}=L,{seriesTypes:ak}=rx,{addEvent:aM,attr:aw,createElement:aS,css:aA,defined:aT,diffObjects:aC,discardElement:aP,erase:aO,error:aE,extend:aL,find:aB,fireEvent:aD,getAlignFactor:aI,getStyle:az,isArray:aR,isNumber:aN,isObject:aW,isString:aG,merge:aX,objectEach:aH,pick:aF,pInt:aY,relativeLength:aj,removeEvent:aU,splat:aV,syncTimeout:a_,uniqueKey:a$}=ti;class aZ{static chart(t,e,i){return new aZ(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aG(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aF(t.zoomType,e.type),key:aF(t.zoomKey,e.key),pinchType:aF(t.pinchType,e.pinchType),singleTouch:aF(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aX(e.resetButton,t.resetZoomButton)}}init(t,e){aD(this,"init",{args:arguments},function(){let i=aX(au,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=aL({},t),(this.renderTo=aG(o)?ax.getElementById(o):o)||aE(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tb(aL(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||ag).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=am.length,am.push(this),L.chartCount++,af(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aD(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=ak[i];s||aE(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aV(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aV(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+u:a+u;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return aD(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){aD(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),ap(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),u=!0):r&&(r.labelFormatter||r.labelFormat)&&(u=!0)),t.isDirtyData&&aD(t,"updatedData")}),u&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){aD(t,"afterSetExtremes",aL(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aD(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aD(this,"redraw"),aD(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aB(this.axes,i)||aB(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aF(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aX(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(aL("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aX(o),n=i?.textPxLength||0;if(i&&r){aD(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(a.width/n,1),f=Math.max(p,g),m=aX({y:"bottom"===d?h:u+h},{align:"title"===t?gp?this.chartWidth:a.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${a.x+n*f*aI(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,aD(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:az(this.renderTo,"width",!0)||0,height:az(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,aj(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(aA(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(ax.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(ax.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,ax.body.appendChild(e)),("none"===az(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),aA(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==ax.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=a$(),r=this.renderTo,a=aY(aw(r,s));aN(a)&&am[a]&&am[a].hasRendered&&am[a].destroy(),aw(r,s,this.index),r.innerHTML=t9.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;aA(r,{overflow:"hidden"}),this.styledMode||(t=aL({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=aS("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||aA(l,{width:aF(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!ab?ep.getRendererType(i.renderer):ij;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),ap(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aD(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!aT(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!aT(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),aD(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),ay.forEach(function(i,o){aT(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return aC(this.userOptions,au)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(ti.clearTimeout(e.reflowTimeout),e.reflowTimeout=a_(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=aM(av,"resize",e);aM(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ap(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?ad:aA)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aD(s,"resize"),setTimeout(()=>{s&&aD(s,"endResize")},ac(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),aD(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){aD(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=aW(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aF(e[i+s],o[r])})}),ay.forEach(function(e,i){t[e]=aF(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,M="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),M="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),k={fill:a||"none"},(b||m["stroke-width"])&&(k.stroke=t.borderColor,k["stroke-width"]=b),m.attr(k).shadow(t.shadow)),m[M]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),M="animate",x||(M="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[M](u),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(u)):this.plotBGImage=e.image(h,l,d,c,p).add())),g?g.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),M="animate",y||(M="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[M](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,aD(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=ak[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=ak[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aG(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aF(t.options.visible,s.options.visible,t.visible))}}),aD(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),aD(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new su(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aF(i.reserveSpace,!aN(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aX(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(av.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(aD(e,"destroy"),e.renderer.forExport?aO(am,e):am[e.index]=void 0,L.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),aU(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t9.emptyHTML,aU(o),r&&aP(o)),aH(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aR(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aD(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aD(this,"load"),aD(this,"render"),aT(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aD(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),aA(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:u,minPointOffset:g=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=aF(a[x],t.len),v=aF(s[x],t.len),k=10>Math.abs(b)?1:b/v,M=(s[y]||0)+v/2-t.pos,w=M-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(M<0||M>t.len))continue;let A=t.toValue(w,!0)+(r||t.isOrdinal?0:g*S),T=t.toValue(w+u/k,!0)-(r||t.isOrdinal?0:g*S||0),C=t.allExtremes;if(A>T&&([A,T]=[T,A]),1===k&&!o&&"yAxis"===t.coll&&!C){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);C??(C={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aN(t.dataMin)&&aN(t.dataMax)&&(C.dataMin=Math.min(t.dataMin,C.dataMin),C.dataMax=Math.max(t.dataMax,C.dataMax))}t.allExtremes=C}let{dataMin:P,dataMax:O,min:E,max:L}=aL(t.getExtremes(),C||{}),B=l.parse(f.min),D=l.parse(f.max),I=P??B,z=O??D,R=T-A,N=t.categories?0:Math.min(R,z-I),W=I-N*(aT(B)?0:f.minPadding),G=z+N*(aT(D)?0:f.maxPadding),X=t.allowZoomOutside||1===k||"zoom"!==n&&k>1,H=Math.min(B??W,W,X?E:W),F=Math.max(D??G,G,X?L:G);(!t.isOrdinal||t.options.overscroll||1!==k||o)&&(A=1&&(T=A+R)),T>F&&(T=F,k>=1&&(A=T-R)),(o||t.series.length&&(A!==E||T!==L)&&A>=H&&T<=F)&&(r?r[t.coll].push({axis:t,min:A,max:T}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:A,o?void 0:T,!1,!1,{move:w,trigger:n,scale:k}),!o&&(A>H||T{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}aL(aZ.prototype,{callbacks:[],collectionsWithInit:{xAxis:[aZ.prototype.addAxis,[!0]],yAxis:[aZ.prototype.addAxis,[!1]],series:[aZ.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let aq=aZ,{stop:aK}=tV,{composed:aJ}=L,{addEvent:aQ,createElement:a0,css:a1,defined:a2,erase:a3,merge:a5,pushUnique:a6}=ti;function a9(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new a8(this)),t?.applyFixed()}function a4(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class a8{static compose(t,e,i){a6(aJ,this.compose)&&(aQ(t,"afterInit",a4),aQ(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),aQ(e,"render",a9),aQ(i,"show",a4))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=a5(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),a2(s)&&(t.scrollablePlotBox=a5(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),a2(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=ep.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=a0("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=a0("div",{className:"highcharts-scrolling"},a,n),l=this.innerContainer=a0("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=a0("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),a1(t.renderTo,{overflow:"visible"}),aQ(t,"afterShowResetZoom",r),aQ(t,"afterApplyDrilldown",r),aQ(t,"afterLayOutTitles",r),aQ(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+u;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),aK(t.container),a1(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),a1(s,{width:`${r}px`,height:`${a}px`}),a2(i)||(s.scrollLeft=p*g,s.scrollTop=u*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,M=l+c-p,w=d+h-u,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",M,y],["L",r,y],["L",r,v],["L",M,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,w],["L",b,a],["L",k,a],["L",k,w],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=a8.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a6(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a3(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}a8.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:a7}=ec,{series:nt}=rx,{destroyObjectProperties:ne,fireEvent:ni,getAlignFactor:ns,isNumber:no,pick:nr}=ti,na=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){ne(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?a7(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:nr(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,ni(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===nr(l.overflow,"justify"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&nt.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*ns(l.textAlign||"center"),rotationOriginY:t.height/2}),nr(!i&&l.crop,!0)&&(s=no(h.x)&&no(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}ni(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*ns(i)-1),y:t.height/2*2*(1-ns(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:nr(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=nr(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||no(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(g?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:nn}=tV,{series:{prototype:nh}}=rx,{addEvent:nl,correctFloat:nd,defined:nc,destroyObjectProperties:np,fireEvent:nu,isNumber:ng,objectEach:nf,pick:nm}=ti;function nx(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nm(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function ny(){let t=this.stacking;if(t){let e=t.stacks;nf(e,(t,i)=>{np(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nb(){this.stacking||(this.stacking=new nA(this))}function nv(t,e,i,s){return!nc(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function nk(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function nM(t,e,i){let s=e.total?100/e.total:0;t[0]=nd(t[0]*s),t[1]=nd(t[1]*s),this.stackedYData[i]=t[1]}function nw(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?nh.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nS(t,e){let i,s,o,r,a,n,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,f=g.threshold||0,m=g.startFromThreshold?f:0,x=g.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,k=t.stacking,M=k.stacks,w=k.oldStacks;for(k.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&M[r]?.[e]?(r=M[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):nd(S+Math.abs(g))):"group"===l?ng(u)&&S++:S=nd(S+g),"group"===l?o.cumulative=(S||1)-1:o.cumulative=nd(nm(o.cumulative,m)+g),o.total=S,null!==u&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class nA{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{nf(t,t=>{t.cumulative=t.total})}))}resetStacks(){nf(this.stacks,t=>{nf(t,(e,i)=>{ng(e.touched)&&e.touched{nf(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(m||(m={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(nl(t,"init",nb),nl(t,"destroy",ny),s.getStacks=nx,o.getStackIndicator=nv,o.modifyStacks=nk,o.percentStacker=nM,o.setGroupedPoints=nw,o.setStackedPoints=nS)};let nT=m,{defined:nC,merge:nP,isObject:nO}=ti;class nE extends rq{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nP({filterUnits:"userSpaceOnUse"},nO(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,u=l.plotY,g=t[d-1],f=l.isNull||"number"!=typeof u;(l.leftCliff||g&&g.rightCliff)&&!i&&(n=!0),f&&!nC(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",g.plotX,u]]:2===h?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nE.defaultOptions=nP(rq.defaultOptions,{legendSymbol:"lineMarker"}),rx.registerSeriesType("line",nE);let{seriesTypes:{line:nL}}=rx,{extend:nB,merge:nD,objectEach:nI,pick:nz}=ti;class nR extends nL{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nL.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(n.getThreshold(r.threshold)),g=nz(r.connectNulls,"percent"===a),f=function(i,s,o){let r=t[i],g=a&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?g[0]:g[1])+m,y=g[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?u:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?u:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,u){let g=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[u+i]],g=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),a=2*h-o):op&&a>h?(a=Math.max(p,h),o=2*h-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n6(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&n1(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(nJ(s)){if(n2(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=n5(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,h=n5(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),rq.prototype.translate.apply(t),t.points.forEach(function(s){let o=n5(s.yBottom,g),m=999+Math.abs(o),x=s.plotX||0,y=nq(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,M=d,w=x+c,S=f;h&&Math.abs(k)h?o-h:g-(b?h:0)),nJ(s.options.pointWidth)&&(w-=Math.round(((M=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(w=t.adjustForMissingColumns(w,M,s,l)),s.barX=w,s.pointWidth=M,s.tooltipPos=e.inverted?[nq(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-w-S/2,k]:[r.left-e.plotLeft+w+S/2,nq(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(w,s.isNull?g:v,S,s.isNull?0:k)}),n0(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,u=n5(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=n3(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&n$(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,u=n5(a.opacity,u));let g={fill:l,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=ht(h)&&ht(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===hh(i.overflow,a?"none":"justify"),u=this.visible&&!1!==t.visible&&ht(h)&&(t.series.forceDL||a&&!p||c||hh(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=he({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),he(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(ha(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=hs(i.align)*(l.width-h.width),e.alignAttr.y+=hs(i.verticalAlign)*(l.height-h.height),e[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(hh(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&a&&(e.placed=!1),u||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(hr(l)&&l||hr(a)&&a||"#000000"),c=h(i),{animation:p,defer:u}=c[0],g=u?n8(s,p,i):{defer:0,duration:0};hi(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach(t=>{let a=t.dataLabels||[];hd(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let l=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:u,style:g={}}=n,f,m,x,y={},b=a[h],v=!b,k;l&&(m=ht(f=hh(n[t.formatPrefix+"Format"],n.format))?n7(f,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(g.color=hh(n.color,g.color,hr(i.color)?i.color:void 0,"#000000"),"contrast"===g.color?("none"!==c&&(k=c),t.contrastColor=r.getContrast("auto"!==k&&k||t.color||i.color),g.color=k||!ht(u)&&n.inside||0>hl(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(g.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),hn(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&ht(m)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),l&&ht(m)&&(b?y.text=m:(b=r.label(m,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?g.width&&b.css({width:g.width,textOverflow:g.textOverflow,whiteSpace:g.whiteSpace}):b.css(g).shadow(n.shadow),hi(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[h]&&a[h]!==b&&a[h].destroy(),a[h]=b))});let h=a.length;for(;h--;)a[h]&&a[h].isActive?a[h].isActive=!1:(a[h]?.destroy(),a.splice(h,1));t.dataLabel=a[0],t.dataLabels=a})),hi(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,u=p?p.top-a.plotTop:0,{x:g=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===n&&g>=0?(e.align="left",e.inside=!0):g-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&("left"===n&&g<=0?(e.align="right",e.inside=!0):g+=a.plotWidth-m,x=!0),(m=i.y+l+u)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+u)>a.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=g,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(ho(t)&&!ho(e))i=t.map(function(t){return ha(t,e)});else if(ho(e)&&!ho(t))i=e.map(function(e){return ha(t,e)});else if(ho(t)||ho(e)){if(ho(t)&&ho(e))for(s=Math.max(t.length,e.length);s--;)i[s]=ha(t[s],e[s])}else i=ha(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return hd(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=l,n.hasDataLabels=e)}}(x||(x={}));let hc=x,{composed:hp}=L,{series:hu}=rx,{merge:hg,pick:hf,pushUnique:hm}=ti;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,h=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=hf(t.below,t.plotY>hf(this.translatedThreshold,h)),c=hf(i.inside,!!this.options.stacking);if(l){if(s=hg(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),hS(hT.prototype,{drawTracker:hk.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hw(hT,"afterTranslate",function(){this.applyJitter()}),rx.registerSeriesType("scatter",hT);let{deg2rad:hC}=L,{fireEvent:hP,isNumber:hO,pick:hE,relativeLength:hL}=ti;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let u=[hE(r?.[0],"50%"),hE(r?.[1],"50%"),hE(l&&l<0?void 0:t.size,"100%"),hE(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rq||(u[3]=0),c=0;c<4;++c)p=u[c],h=c<2||2===c&&/%$/.test(p),u[c]=hL(p,[s,o,a,u[2]][c])+(h?i:0);return u[3]>u[2]&&(u[3]=u[2]),hO(n)&&2*n0&&(u[3]=u[2]-2*n),hP(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=hO(t)?t:0,s=hO(e)&&e>i&&e-i<360?e:i+360;return{start:hC*(i+-90),end:hC*(s+-90)}}}(b||(b={}));let hB=b,{setAnimation:hD}=tV,{addEvent:hI,defined:hz,extend:hR,isNumber:hN,pick:hW,relativeLength:hG}=ti;class hX extends o${getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hI(this,"select",s),hI(this,"unselect",s)}isValid(){return hN(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hD(i,s.chart),e=hW(e,!0),this.sliced=this.options.sliced=t=hz(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hR(hX.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,u="left"===t.alignment,{x:g,y:f}=t,m=o.x;if(i.crookDistance){let t=hG(i.crookDistance,1);m=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",g,f]];return(u?m<=g&&m>=o.x:m>=g&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hH}=hB,{noop:hF}=L,{clamp:hY,extend:hj,fireEvent:hU,merge:hV,pick:h_}=ti;class h$ extends rq{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:h_(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:ii.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(hY((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||hV(!0,n,i),hV(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hU(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hH(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,u,g,f,m=0;for(t||(this.center=t=this.getCenter()),g=0;g1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*u],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}hU(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}h$.defaultOptions=hV(rq.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hj(h$.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:n4.prototype.drawTracker,getCenter:hB.getCenter,getSymbol:hF,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:n4.prototype.pointAttribs,pointClass:hX,requireSorting:!1,searchPoint:hF,trackerGroups:["group","dataLabelsGroup"]}),rx.registerSeriesType("pie",h$);let{composed:hZ,noop:hq}=L,{distribute:hK}=ex,{series:hJ}=rx,{arrayMax:hQ,clamp:h0,defined:h1,pick:h2,pushUnique:h3,relativeLength:h5}=ti;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,u=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,g,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),hJ.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=h5(o?.distance||0,s);0===i&&d[t.half].push(t),!h1(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,u=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),hK(u,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,M=0,w=y,S="inherit";if(x){if(u&&h1(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,w=p.radialDistributionY(i,l))),d.justify)M=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":M=p.alignToConnectors(e,a,s,r);break;case"plotEdges":M=p.alignToPlotEdges(l,a,s,r);break;default:M=p.radialDistributionX(t,i,w-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:M+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:w+(d.y||0)-v/2},x.computed.x=M,x.computed.y=w-k,h2(d.crop,!0)){let t;M-(g=l.getBBox().width)s-b&&0===a&&(t=Math.round(M+g-s+b),c[1]=Math.max(t,c[1])),w-f/2<0?c[0]=Math.max(Math.round(-w+f/2),c[0]):w+f/2>o&&(c[2]=Math.max(Math.round(w+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===hQ(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;u=s.connector,a&&a.distance>0?(n=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||u.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),u[n?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:a.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=h0(r,o,e[2]-Math.max(t[0],t[2])):(r=h0(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(k||(k={}));let{pointInPolygon:h9}=k,{addEvent:h4,fireEvent:h8,objectEach:h7,pick:lt}=ti;function le(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(h9({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{h7(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=lt(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,li(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let lo={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=le,h4(t,"render",ls))}},{defaultOptions:lr}=tA,{noop:la}=L,{addEvent:ln,extend:lh,isObject:ll,merge:ld,relativeLength:lc}=ti,lp={radius:0,scope:"stack",where:void 0},lu=la,lg=la;function lf(t,e,i,s,o={}){let r=lu(t,e,i,s,o),{innerR:a=0,r:n=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(lc(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*a),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,u=n?a-i:a+i,g=u?Math.asin(i/u):0,f=n?g:-g,m=Math.cos(g)*u;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?u:p);return r}function lm(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=lr.plotOptions?.[this.type]?.borderRadius,o=lx(t.borderRadius,ll(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(lc(o.radius,n),n/2,"all"===u?h/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),lh(a,{brBoxHeight:c,brBoxY:d,r:g})}}}}function lx(t,e){return ll(t)||(t={radius:t||0}),ld(lp,e,t)}function ly(){let t=lx(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=lc(t.radius,(i.r||0)-(i.innerR||0)))}}function lb(t,e,i,s,o={}){let r=lg(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,u=Math.max(c&&l,0),g=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],M=[t,e+c],w=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=w(c,c-u);f[0]-=t,m[0]+=t,x[1]=M[1]=e+c-u}if(s=lS(i.minWidth,0)&&this.chartHeight>=lS(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lA()),this.matchResponsiveRule(t,o)},this);let a=lw(...o.map(t=>lM((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lv(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lk(s,{matchResponsiveRule:e,setResponsive:i}),t}}(M||(M={}));let lT=M;L.AST=t9,L.Axis=sj,L.Chart=aq,L.Color=tE,L.DataLabel=hc,L.DataTableCore=rh,L.Fx=tz,L.HTMLElement=i3,L.Legend=al,L.LegendSymbol=rp,L.OverlappingDataLabels=L.OverlappingDataLabels||lo,L.PlotLineOrBand=oo,L.Point=o$,L.Pointer=rs,L.RendererRegistry=ep,L.Series=rq,L.SeriesRegistry=rx,L.StackItem=na,L.SVGElement=eK,L.SVGRenderer=ij,L.Templating=ec,L.Tick=su,L.Time=tb,L.Tooltip=oP,L.animate=tV.animate,L.animObject=tV.animObject,L.chart=aq.chart,L.color=tE.parse,L.dateFormat=ec.dateFormat,L.defaultOptions=tA.defaultOptions,L.distribute=ex.distribute,L.format=ec.format,L.getDeferredAnimation=tV.getDeferredAnimation,L.getOptions=tA.getOptions,L.numberFormat=ec.numberFormat,L.seriesType=rx.seriesType,L.setAnimation=tV.setAnimation,L.setOptions=tA.setOptions,L.stop=tV.stop,L.time=tA.defaultTime,L.timers=tz.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;ln(t,"afterColumnTranslate",lm,{order:9}),ln(s,"afterTranslate",ly),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),lu=o.arc,lg=o.roundedRect,o.arc=lf,o.roundedRect=lb}},optionsToObject:lx}).compose(L.Series,L.SVGElement,L.SVGRenderer),hx.compose(L.Series.types.column),hc.compose(L.Series),sZ.compose(L.Axis),i3.compose(L.SVGRenderer),al.compose(L.Chart),sQ.compose(L.Axis),lo.compose(L.Chart),h6.compose(L.Series.types.pie),oo.compose(L.Chart,L.Axis),rs.compose(L.Chart),lT.compose(L.Chart),a8.compose(L.Axis,L.Chart,L.Series),nT.compose(L.Axis,L.Chart,L.Series),oP.compose(L.Pointer),ti.extend(L,ti);let{tooltipFormatter:lC}=o$.prototype,{addEvent:lP,arrayMax:lO,arrayMin:lE,correctFloat:lL,defined:lB,isArray:lD,isNumber:lI,isString:lz,pick:lR}=ti;!function(t){function e(t,e,i){!this.isXAxis&&(this.series.forEach(function(i){"compare"===t&&"boolean"!=typeof e?i.setCompare(e,!1):"cumulative"!==t||lz(e)||i.setCumulative(e,!1)}),lR(i,!0)&&this.chart.redraw())}function i(t){let e=this,{numberFormatter:i}=e.series.chart,s=function(s){t=t.replace("{point."+s+"}",(e[s]>0&&"change"===s?"+":"")+i(e[s],lR(e.series.tooltipOptions.changeDecimals,2)))};return lB(e.change)&&s("change"),lB(e.cumulativeSum)&&s("cumulativeSum"),lC.apply(this,[t])}function s(){let t;let e=this.options.compare;("percent"===e||"value"===e||this.options.cumulative)&&(t=new d(this),"percent"===e||"value"===e?t.initCompare(e):t.initCumulative()),this.dataModify=t}function o(t){let e=t.dataExtremes,i=e.activeYData;if(this.dataModify&&e){let t;this.options.compare?t=[this.dataModify.modifyValue(e.dataMin),this.dataModify.modifyValue(e.dataMax)]:this.options.cumulative&&lD(i)&&i.length>=2&&(t=d.getCumulativeExtremes(i)),t&&(e.dataMin=lE(t),e.dataMax=lO(t))}}function r(t,e){this.options.compare=this.userOptions.compare=t,this.update({},lR(e,!0)),this.dataModify&&("value"===t||"percent"===t)?this.dataModify.initCompare(t):this.points.forEach(t=>{delete t.change})}function a(){let t=this.getColumn(this.pointArrayMap&&(this.options.pointValKey||this.pointValKey)||"y",!0);if(this.xAxis&&t.length&&this.dataModify){let e=this.getColumn("x",!0),i=this.dataTable.rowCount,s=!0===this.options.compareStart?0:1;for(let o=0;o=(this.xAxis.min||0)){this.dataModify.compareValue=i;break}}}}function n(t,e){this.setModifier("compare",t,e)}function h(t,e){t=lR(t,!1),this.options.cumulative=this.userOptions.cumulative=t,this.update({},lR(e,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(t=>{delete t.cumulativeSum})}function l(t,e){this.setModifier("cumulative",t,e)}t.compose=function(t,d,c){let p=d.prototype,u=c.prototype,g=t.prototype;return g.setCompare||(g.setCompare=r,g.setCumulative=h,lP(t,"afterInit",s),lP(t,"afterGetExtremes",o),lP(t,"afterProcessData",a)),p.setCompare||(p.setCompare=n,p.setModifier=e,p.setCumulative=l,u.tooltipFormatter=i),t};class d{constructor(t){this.series=t}modifyValue(){return 0}static getCumulativeExtremes(t){let e=1/0,i=-1/0;return t.reduce((t,s)=>{let o=t+s;return e=Math.min(e,o,t),i=Math.max(i,o,t),o}),[e,i]}initCompare(t){this.modifyValue=function(e,i){null===e&&(e=0);let s=this.compareValue;if(void 0!==e&&void 0!==s){if("value"===t?e-=s:e=e/s*100-(100===this.series.options.compareBase?0:100),void 0!==i){let t=this.series.points[i];t&&(t.change=e)}return e}return 0}}initCumulative(){this.modifyValue=function(t,e){if(null===t&&(t=0),void 0!==t&&void 0!==e){let i=e>0?this.series.points[e-1]:null;i&&i.cumulativeSum&&(t=lL(i.cumulativeSum+t));let s=this.series.points[e],o=s.series.options.cumulativeStart,r=s.x<=this.series.xAxis.max&&s.x>=this.series.xAxis.min;return s&&(!o||r?s.cumulativeSum=t:s.cumulativeSum=void 0),t}return 0}}}t.Additions=d}(w||(w={}));let lN=w,{isTouchDevice:lW}=L,{addEvent:lG,merge:lX,pick:lH}=ti,lF=[];function lY(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function lj(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:a}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+a):(o.left=lH(e.left,this.plotLeft+a),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+lH(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function lU(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this),lH(t.redraw,!0)&&this.redraw(t.animation))}function lV(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this))}function l_(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!lW&&"x"===this.zooming.type||lW&&"x"===this.zooming.pinchType))return!1}function l$(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function lZ(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(lX(!0,this.options.navigator,e),lX(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let lq={compose:function(t,e){if(ti.pushUnique(lF,t)){let s=t.prototype;i=e,s.callbacks.push(l$),lG(t,"afterAddSeries",lY),lG(t,"afterSetChartSize",lj),lG(t,"afterUpdate",lU),lG(t,"beforeRender",lV),lG(t,"beforeShowResetZoom",l_),lG(t,"update",lZ)}}},{isTouchDevice:lK}=L,{addEvent:lJ,correctFloat:lQ,defined:l0,isNumber:l1,pick:l2}=ti;function l3(){this.navigatorAxis||(this.navigatorAxis=new l6(this))}function l5(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,a=i.zooming.pinchType,n=s.rangeSelector,h=i.zooming.type;if(this.isXAxis&&(o?.enabled||n?.enabled)){if("y"===h&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===h||lK&&"xy"===a)&&this.options.range){let e=r.previousZoom;l0(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class l6{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),lJ(t,"init",l3),lJ(t,"setExtremes",l5))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,a=l2(i,o.translate(t,!0,!o.horiz)),n=l2(s,o.translate(e,!0,!o.horiz));return l0(i)||(a=lQ(a+r)),l0(s)||(n=lQ(n-r)),l1(a)&&l1(n)||(a=n=void 0),{min:a,max:n}}}let{parse:l9}=tE,{seriesTypes:l4}=rx,l8={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:l9("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===l4.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{relativeLength:l7}=ti,dt={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,a=l7(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...ii.rect(-r-1,.5,2*r+1,s,{r:a})]}},{defined:de}=ti,di={setFixedRange:function(t){let e=this.xAxis[0];de(e.dataMax)&&de(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{setOptions:ds}=tA,{composed:dr}=L,{getRendererType:da}=ep,{setFixedRange:dn}=di,{addEvent:dh,extend:dl,pushUnique:dd}=ti;function dc(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let dp={compose:function(t,e,i){l6.compose(e),dd(dr,"Navigator")&&(t.prototype.setFixedRange=dn,dl(da().prototype.symbols,dt),dh(i,"afterUpdate",dc),ds({navigator:l8}))}},{composed:du}=L,{addEvent:dg,defined:df,pick:dm,pushUnique:dx}=ti;!function(t){let e;function i(t){let e=dm(t.options&&t.options.min,t.min),i=dm(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:df(t.dataMin)?Math.min(e,t.min,t.dataMin,dm(t.threshold,1/0)):e,scrollMax:df(t.dataMax)?Math.max(i,t.max,t.dataMax,dm(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),dg(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:a,scrollMin:n,scrollMax:h}=i(t),l=h-n;if(df(r)&&df(a)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=n+l*this.to,o=n+l*this.from):(s=n+l*(1-this.from),o=n+l*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),a=this.scrollbar,n=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(a&&h){if(this.horiz)this.opposite||(h[1]+=n),a.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let e;this.opposite&&(h[0]+=n),e=a.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,a.position(e,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=a.size+(a.options.margin||0),isNaN(o)||isNaN(r)||!df(this.min)||!df(this.max)||this.dataMin===this.dataMax)a.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),a.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?a.setRange(e,s):a.setRange(1-s,1-e)}}t.compose=function(t,i){dx(du,"Axis.Scrollbar")&&(e=i,dg(t,"afterGetOffset",s),dg(t,"afterInit",o),dg(t,"afterRender",r))}}(S||(S={}));let dy=S,db={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:dv}=tA,{addEvent:dk,correctFloat:dM,crisp:dw,defined:dS,destroyObjectProperties:dA,fireEvent:dT,merge:dC,pick:dP,removeEvent:dO}=ti;class dE{static compose(t){dy.compose(t,dE)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,dA(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let a=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||a.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),a.attr(a.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},a.strokeWidth()));let n=e.path(dE.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=dC(db,dv.scrollbar,e),this.options.margin=dP(this.options.margin,10),this.chart=i,this.size=dP(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&dT(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&dT(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:a}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=h,this.yOffset=l,a?(this.width=this.yOffset=i=l=this.size,this.xOffset=h=0,this.yOffset=l=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:i,height:s}),this.scrollbarButtons[1][n]({translateX:a?0:i-h,translateY:a?s-l:0})}removeEvents(){this._events.forEach(function(t){dO.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-dw(0,r),y:-dw(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(dE.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-dw(0,this.scrollbarStrokeWidth),-dw(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,a=o.minWidth,n=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!dS(n))return;let l=n*Math.min(e,1);i=Math.ceil(n*(t=Math.max(t,0))),this.calculatedWidth=s=dM(l-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return dP(this.options.liveRedraw,L.svg&&!L.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!dS(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),dT(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,dC(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=dM(1-dM(e-t)),e=1),t<0&&(e=dM(e-t),t=0),this.from=t,this.to=e}}dE.defaultOptions=db,dv.scrollbar=dC(!0,dE.defaultOptions,dv.scrollbar);let{defaultOptions:dL}=tA,{isTouchDevice:dB}=L,{prototype:{symbols:dD}}=ij,{addEvent:dI,clamp:dz,correctFloat:dR,defined:dN,destroyObjectProperties:dW,erase:dG,extend:dX,find:dH,fireEvent:dF,isArray:dY,isNumber:dj,merge:dU,pick:dV,removeEvent:d_,splat:d$}=ti;function dZ(t,...e){let i=[].filter.call(e,dj);if(i.length)return Math[t].apply(0,i)}class dq{static compose(t,e,i){lq.compose(t,dq),dp.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),a=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,p=d-a,u=d+c,g=this.left,f,m;i?(f=d+e+n,e=d+t+n,m=[["M",g+c,d-h-n],["L",g+c,f],["L",g,f],["M",g,e],["L",g+c,e],["L",g+c,d+l+h]],o&&m.push(["M",g+c,f-a],["L",g+c,e+a])):(g-=h,t+=g+h-n,e+=g+h-n,m=[["M",g,p],["L",t,p],["L",t,u],["M",e,u],["L",e,p],["L",g+l+2*h,p]],o&&m.push(["M",t-a,p],["L",e+a,p])),this.outline[s]({d:m})}drawMasks(t,e,i,s){let o,r,a,n;let h=this.left,l=this.top,d=this.height;i?(a=[h,h,h],n=[l,l+t,l+e],r=[d,d,d],o=[t,e-t,this.size-e]):(a=[h,h+t,h+e],n=[l,l,l],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:a[e],y:n[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,a={cursor:o?"ns-resize":"ew-resize"},n=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let h=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(n));s.styledMode||(h.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&h.css(a))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(n)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:h}=i;[0,1].forEach(e=>{let l=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===l){if(!t.handles[e].isImg&&t.handles[e].symbolName!==l){let i=dD[l].call(dD,-h/2-1,0,h,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=l}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(l,-h/2-1,0,h,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(n),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(o+h)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-h/2-1,y:0}).css(a)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(dU(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),dN(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{d_(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(dI(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,a=r.pointRange||0,n=r.navigatorAxis.fake?o.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,f,m,x=this.scrollbarHeight,y,b;if(this.hasDragged&&!dN(i))return;if(this.isDirty&&this.renderElements(),t=dR(t-a/2),e=dR(e+a/2),!dj(t)||!dj(e)){if(!l)return;i=0,s=dV(r.width,n.width)}this.left=dV(r.left,o.plotLeft+u+(d?o.plotWidth:0));let v=this.size=y=dV(r.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?x:y+2*u,i=dV(i,r.toPixels(t,!0)),s=dV(s,r.toPixels(e,!0)),dj(i)&&Math.abs(i)!==1/0||(i=0,s=g);let k=r.toValue(i,!0),M=r.toValue(s,!0),w=Math.abs(dR(M-k));wp&&(this.grabbedLeft?i=r.toPixels(M-p-a,!0):this.grabbedRight&&(s=r.toPixels(k+p+a,!0))),this.zoomedMax=dz(Math.max(i,s),0,v),this.zoomedMin=dz(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let S=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),b=l&&!this.hasDragged?"animate":"attr",this.drawMasks(S,v,d,b),this.drawOutline(S,v,d,b),this.navigatorOptions.handles.enabled&&(this.drawHandle(S,0,d,b),this.drawHandle(v,1,d,b))),this.scrollbar&&(d?(m=this.top-u,f=this.left-x+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),x=y+2*u):(m=this.top+(h?this.height:-x),f=this.left-u),this.scrollbar.position(f,m,g,x),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,this.isDirty=!1,dF(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(dI(e.renderTo,"mousemove",o),dI(i.ownerDocument,"mouseup",r),dI(e.renderTo,"touchmove",o),dI(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(dI(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(dI(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,a=this.range,n=this.left,h=t.chartX,l,d,c,p;i.inverted&&(h=t.chartY,n=this.top),1===e?(this.grabbedCenter=h,this.fixedWidth=a,this.dragOffset=h-o):(p=h-n-a/2,0===e?p=Math.max(0,p):2===e&&p+a>=r&&(p=r-a,this.reversedExtremes?(p-=a,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=a,dN((c=s.navigatorAxis.toFixedRange(p,p+a,d,l)).min)&&dF(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,a=i.inverted,n=e.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=i.pointer?.normalize(t)||t).chartX,a&&(n=e.top,h=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,h-n,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,h-n)):e.grabbedCenter&&(e.hasDragged=!0,hs+r-o&&(h=s+r-o),e.render(0,0,h-r,h-r+o)),e.hasDragged&&e.scrollbar&&dV(e.scrollbar.options.liveRedraw,!dB&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,a;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),dN((a=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&dF(this,"setRange",{min:Math.min(a.min,a.max),max:Math.max(a.min,a.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&dj(this.zoomedMin)&&dj(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){d_(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&d_(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,a=s&&i.height||0,n=r&&o.height||0,h=o.buttonsEnabled&&n||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=a,this.scrollbarHeight=n,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,p=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let e=this.getXAxisOffsets();l.xAxis=new sj(t,dU({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:a}:{offsets:e,height:a}),"xAxis"),l.yAxis=new sj(t,dU(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:dV(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:a}:{height:a}),"yAxis"),d||i.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=dI(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*h,a=dZ("min",s.options.min,o.dataMin),n=dZ("max",s.options.max,o.dataMax)-a;return i?e*n/r+a:r*(e-a)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=l6.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=dU(t.options.scrollbar,{vertical:t.inverted});!dj(e.margin)&&l.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new dE(t.renderer,e,t),dI(l.scrollbar,"changed",function(t){let e=l.size,i=e*this.to,s=e*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=dV(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,a=i.options;return t&&null===i.dataMin||(e={dataMin:dV(s.parse(r?.min),dZ("min",s.parse(a.min),i.dataMin,o.dataMin,o.min)),dataMax:dV(s.parse(r?.max),dZ("max",s.parse(a.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?dH(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},a=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(d_(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),n,h,l=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=dX({color:t.color,visible:t.visible},dY(l)?dL.navigator.series:l);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(n=t.options||{}).navigatorOptions||{},p.dataLabels=d$(p.dataLabels),(h=dU(n,r,p,d)).pointRange=dV(p.pointRange,d.pointRange,dL.plotOptions[h.type||"line"].pointRange);let u=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!u,h.data=u||n.data?.slice(0),c&&c.options?c.update(h,e):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,a.push(t.navigatorSeries))}),(l.data&&!(o&&o.length)||dY(l))&&(i.hasNavigatorData=!1,(l=d$(l)).forEach((t,e)=>{r.name="Navigator "+(a.length+1),(h=dU(dL.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,h.data&&(i.hasNavigatorData=!0,a.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(dI(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(dI(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(dI(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(dI(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(dI(i,"remove",function(){e&&dG(e,i),this.navigatorSeries&&t.series&&(dG(t.series,this.navigatorSeries),dN(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,a=s.dataMin,n=s.dataMax,h=r-o,l=i.stickToMin,d=i.stickToMax,c=dV(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(e=a)+h),d&&(t=n+c,l||(e=Math.max(a,t-h,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),u&&(l||d)&&dj(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=dV(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,a=s.options.range;return!!(dj(o)&&dj(r))&&(a&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{dW(t)}),this.navigatorEnabled=!1}}let{addEvent:dK,correctFloat:dJ,css:dQ,defined:d0,error:d1,isNumber:d2,pick:d3,timeUnits:d5,isString:d6}=ti;!function(t){function e(t,i,s,o,r=[],a=0,n){let h={},l=this.options.tickPixelInterval,d=this.chart.time,c=[],p,u,g,f,m,x=0,y=[],b=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!r||r.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let v=r.length;for(p=0;ps,r[p]5*a||m){if(r[p]>b){for(u=d.getTimeTicks(t,r[x],r[p],o);u.length&&u[0]<=b;)u.shift();u.length&&(b=u[u.length-1]),c.push(y.length),y=y.concat(u)}x=p+1}if(m)break}if(u){if(f=u.info,n&&f.unitRange<=d5.hour){for(x=1,p=y.length-1;xt-e),(n=i[Math.floor(i.length/2)])<.6*l&&(n=null),c=y[t-1]>s?t-1:t,a=void 0;c--;)d=Math.abs(a-(r=e[c])),a&&d<.8*l&&(null===n||d<.8*n)?(h[y[c]]&&!h[y[c+1]]?(o=c+1,a=r):o=c,y.splice(o,1)):a=r}return y}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let r=dJ((t-i)*s+this.minPixelPadding),a=dJ(e.getIndexOfPoint(r,o)),n=dJ(a%1);if(a>=0&&a<=o.length-1){let t=o[Math.floor(a)],e=o[Math.ceil(a)];return o[Math.floor(a)]+n*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function r(){this.ordinal||(this.ordinal=new t.Additions(this))}function a(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&d0(e.overscroll)&&0!==e.overscroll&&d2(this.max)&&d2(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&d0(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function n(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function h(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function l(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,r=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let a=this.mouseDownX,n=e.getExtremes(),h=n.dataMin,l=n.dataMax,d=n.min,c=n.max,p=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((a-s)/(e.translationSlope*(e.ordinal.slope||u))),f=e.ordinal.getExtendedPositions(),m={ordinal:{positions:f,extendedOrdinalPositions:f}},x=e.index2val,y=e.val2lin;if(d<=h&&g<0||c+i>=l&&g>0)return;m.ordinal.positions?Math.abs(g)>1&&(p&&p.forEach(function(t){t.setState()}),l>(o=m.ordinal.positions)[o.length-1]&&o.push(l),this.setFixedRange(c-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,x.apply(m,[y.apply(m,[d,!0])+g]),x.apply(m,[y.apply(m,[c,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],c)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,dQ(this.container,{cursor:"move"})):r=!0}else r=!0;r||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function c(t,e){let i;let s=this.ordinal,r=s.positions,a=s.slope,n;if(!r)return t;let h=r.length;if(r[0]<=t&&r[h-1]>=t)i=o(r,t);else{if(!((n=s.getExtendedPositions&&s.getExtendedPositions())&&n.length))return t;let h=n.length;a||(a=(n[h-1]-n[0])/h);let l=o(n,r[0]);if(t>=n[0]&&t<=n[h-1])i=o(n,t)-l;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(x=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(y=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||r)&&(n=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),f=Math.min(f,d3(t.closestPointRange,f)),n)){for(e=0;e2){for(l=g[1]-g[0],u=n-1;u--&&!m;)g[u+1]-g[u]!==l&&(m=!0);!t.options.keepOrdinalPadding&&(g[0]-s>l||o-g[g.length-1]>l)&&(m=!0)}else t.options.overscroll&&(2===n?f=g[1]-g[0]:1===n?(f=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+f]):f=e.overscrollPointsRange);m||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=f,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),c=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=p=(o-s)/(c-d),e.offset=s-d*p):(e.overscrollPointsRange=d3(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=a&&m,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,r;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),a=t?i.ordinal.convertOverscroll(i.options.overscroll):0,n=i.getExtremes(),h,l,d=e.index;return d||(d=e.index={}),!d[r]&&((h={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:n.dataMin,max:n.dataMax+a}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=h,i.series.forEach(i=>{l={xAxis:h,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:L.noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);l.dataTable=new rh({columns:{x:s}}),l.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},h.series.push(l),i.processData.apply(l)}),h.applyGrouping({hasExtremesChanged:!0}),l?.closestPointRange!==l?.basePointRange&&l.currentDataGrouping&&(h.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:h}),!i.ordinal.originalOrdinalRange&&h.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=h.ordinal.originalOrdinalRange),h.ordinal.positions&&(d[r]=h.ordinal.positions)),d[r]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,r=[],a,n,h=this.groupIntervalFactor;if(!h){for(n=0;nt()),cn.splice(t,1);return}}}function cg(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function cf(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,o=this.extraTopMargin,r=this.rangeSelector;if(e&&e.enabled&&!ce(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new s(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){let t=e&&e.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==o)&&(this.isDirtyBox=!0)}}let cm={compose:function(t,e,i){if(s=i,ca(d7,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=ch,ct(e,"afterGetContainer",cd),ct(e,"beforeRender",cc),ct(e,"destroy",cu),ct(e,"getMargins",cg),ct(e,"redraw",cp),ct(e,"update",cf),ct(e,"beforeRedraw",cl),i.callbacks.push(cp),ci(d8,{rangeSelector:d4.rangeSelector}),ci(d8.lang,d4.lang)}}},{defaultOptions:cx}=tA,{addEvent:cy,createElement:cb,css:cv,defined:ck,destroyObjectProperties:cM,diffObjects:cw,discardElement:cS,extend:cA,fireEvent:cT,isNumber:cC,isString:cP,merge:cO,objectEach:cE,pick:cL,splat:cB}=ti;function cD(t){if(cP(t)?-1!==t.indexOf("%L"):t.fractionalSecondDigits)return"text";let e=cP(t)?["a","A","d","e","w","b","B","m","o","y","Y"].some(e=>-1!==t.indexOf("%"+e)):t.dateStyle||t.day||t.month||t.year,i=cP(t)?["H","k","I","l","M","S"].some(e=>-1!==t.indexOf("%"+e)):t.timeStyle||t.hour||t.minute||t.second;return e&&i?"datetime-local":e?"date":i?"time":"text"}class cI{static compose(t,e){cm.compose(t,e,cI)}constructor(t){this.isDirty=!1,this.buttonOptions=cI.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],r=i.scroller&&i.scroller.getUnionExtremes()||o||{},a=s.type,n=s.dataGrouping,h=r.dataMin,l=r.dataMax,d,c=cC(o?.max)?Math.round(Math.min(o.max,l??o.max)):void 0,p,u=s._range,g,f,m,x=!0;if(null!==h&&null!==l){if(this.setSelected(t),n&&(this.forcedDataGrouping=!0,sj.prototype.setDataGrouping.call(o||{chart:this.chart},n,!1),this.frozenStates=s.preserveDataGrouping),"month"===a||"year"===a)o?(f={range:s,max:c,chart:i,dataMin:h,dataMax:l},d=o.minFromRange.call(f),cC(f.newMax)&&(c=f.newMax),x=!1):u=s;else if(u)cC(c)&&(c=Math.min((d=Math.max(c-u,h))+u,l),x=!1);else if("ytd"===a){if(o)!o.hasData()||cC(l)&&cC(h)||(h=Number.MAX_VALUE,l=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(h=Math.min(e[0],h),l=Math.max(e[e.length-1],l))}),e=!1),cC(l)&&cC(h)&&(d=g=(m=this.getYTDExtremes(l,h)).min,c=m.max);else{this.deferredYTDClick=t;return}}else"all"===a&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=h,c=l);if(x&&s._offsetMin&&ck(d)&&(d+=s._offsetMin),s._offsetMax&&ck(c)&&(c+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)cC(d)&&cC(c)&&(o.setExtremes(d,c,cL(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{p=cB(i.options.xAxis||{})[0];let t=cy(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});cy(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=p.range,e.options.min=p.min,t()})}cT(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,r=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&cT(t,"blur"),i&&i.blur&&cT(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(cy(t.container,"mousedown",r)),this.eventsToUnbind.push(cy(t,"resize",r)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(cy(t,"load",function(){t.xAxis&&t.xAxis[0]&&cy(t.xAxis[0],"setExtremes",function(i){cC(this.max)&&cC(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],r=Math.round(o.max-o.min),a=!o.hasVisibleSeries,n=24*36e5,h=e.scroller&&e.scroller.getUnionExtremes()||o,l=h.dataMin,d=h.dataMax,c=t.getYTDExtremes(d,l),p=c.min,u=c.max,g=t.selected,f=t.options.allButtonsEnabled,m=Array(t.buttonOptions.length).fill(0),x=cC(g),y=t.buttons,b=!1,v=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,h=e.type,c=e.count||1,y=e._offsetMax-e._offsetMin,k=i===g,M=s>d-l,w=ss&&(A=!0)}else("month"===h||"year"===h)&&r+36e5>=({month:28,year:365})[h]*n*c-y&&r-36e5<=({month:31,year:366})[h]*n*c+y?A=!0:"ytd"===h?(A=u-p+y===r,S=!k):"all"===h&&(A=o.max-o.min>=d-l);let T=!f&&!(b&&"all"===h)&&(M||w||a),C=b&&"all"===h||!S&&A||k&&t.frozenStates;T?m[i]=3:C&&(!x||i===g)&&(v=i)}),null!==v?(m[v]=2,t.setSelected(v)):(t.setSelected(),s&&(s.setState(0),s.attr({text:(cx.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?c=void 0:ch&&(c=h)),void 0!==c&&r.setExtremes(l?c:r.min,l?r.max:c,void 0,void 0,{trigger:"rangeSelectorInput"}))}let c=h[l?"rangeSelectorFrom":"rangeSelectorTo"]||"",p=a.label(c,0).addClass("highcharts-range-label").attr({padding:c?2:0,height:c?n.inputBoxHeight:0}).add(s),u=a.label("",0).addClass("highcharts-range-input").attr({padding:2,width:n.inputBoxWidth,height:n.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:n.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=cb("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",cD(n.inputDateFormat||"%e %b %Y")),e.styledMode||(p.css(cO(r,n.labelStyle)),u.css(cO({color:"#333333"},r,n.inputStyle)),cv(g,cA({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:r.fontSize,fontFamily:r.fontFamily,top:"-9999em"},n.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===L.doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let f=!1;return g.onchange=()=>{f||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{f=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{f=!1},{dateBox:u,input:g,label:p}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,r=o.inputEnabled,a=cL(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=cb("div",void 0,{position:"relative",height:0,zIndex:a}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),r&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(ck(o.dataMin)&&ck(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=cx.lang,o=e.renderer,r=cO(i.buttonTheme),a=r&&r.states;delete r.width,delete r.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let n=this.dropdown=cb("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),h=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},cO(r,{"stroke-width":cL(r["stroke-width"],0),width:"auto",paddingLeft:cL(i.buttonTheme.paddingLeft,h?.padding,8),paddingRight:cL(i.buttonTheme.paddingRight,h?.padding,8)}),a&&a.hover,a&&a.select,a&&a.disabled).hide().add(this.group),cy(n,"touchstart",()=>{n.style.fontSize="16px"});let l=L.isMS?"mouseover":"mouseenter",d=L.isMS?"mouseout":"mouseleave";cy(n,l,()=>{cT(this.dropdownLabel.element,l)}),cy(n,d,()=>{cT(this.dropdownLabel.element,d)}),cy(n,"change",()=>{cT(this.buttons[n.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),cb("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,n),this.createButtons()}createButtons(){let{options:t}=this,e=cO(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:r,chart:a,options:n}=this,h=a.renderer,l=cO(n.buttonTheme);o?.add(cb("option",{textContent:t.title||t.text}),e+2),r[e]=h.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},l,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&r[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:r,zoomText:a}=this,n=i.options,h=n.exporting&&!1!==n.exporting.enabled&&n.navigation&&n.navigation.buttonOptions,{buttonPosition:l,inputPosition:d,verticalAlign:c}=r,p=(t,e)=>h&&this.titleCollision(i)&&"top"===c&&"right"===e.align&&e.y-t.getBBox().height-12<(h.y||0)+(h.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&l&&d){let n=l.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;a&&(t+=a.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=r.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=p(t,l);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let h=0;r.inputEnabled&&o&&(h=p(o,d),"left"===d.align?n=u:"right"===d.align&&(n=-Math.max(i.axisOffset[1],-h)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+n-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(h),s.align({verticalAlign:c},!0,i.spacingBox);let g=s.alignAttr.translateY,f=s.getBBox().height+20,m=0;if("bottom"===c){let t=i.legend&&i.legend.options;m=g-(f=f+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+cL(t.margin,10):0)-20)-(r.floating?0:r.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===c?(r.floating&&(m=0),i.titleOffset&&i.titleOffset[0]&&(m=i.titleOffset[0]),m+=i.margin[0]-i.spacing[0]||0):"middle"===c&&(d.y===l.y?m=g:(d.y||l.y)&&(d.y<0||l.y<0?m-=Math.min(d.y,l.y):m=g-f)),s.translate(r.x,r.y+Math.floor(m));let{minInput:x,maxInput:y,dropdown:b}=this;r.inputEnabled&&x&&y&&(x.style.marginTop=s.translateY+"px",y.style.marginTop=s.translateY+"px"),b&&(b.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=cO(s.buttonTheme),r=o&&o.states,a=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(cw(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,a,r),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},h=e=>{if(s?.alignOptions&&i){let r=s.alignAttr.translateX+s.alignOptions.x-t+s.getBBox().x+2,n=s.alignOptions.width||0,h=i.alignAttr.translateX+i.getBBox().x;return h+e>r&&r+n>h&&o.y{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};if(i){if("always"===r){this.collapseButtons(),h(n())&&l();return}"never"===r&&this.expandButtons()}s&&i?a.align===o.align||h(this.initialButtonGroupWidth+20)?"responsive"===r?(this.collapseButtons(),h(n())&&l()):l():"responsive"===r&&this.expandButtons():i&&"responsive"===r&&(this.initialButtonGroupWidth>e.plotWidth?this.collapseButtons():this.expandButtons())}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,chart:e,dropdownLabel:i,dropdown:s}=this;if(t&&s){let{translateX:o=0,translateY:r=0}=t,a=e.plotLeft+o;i.attr({x:a,y:r}).show(),cv(s,{left:a+"px",top:r+"px",visibility:"inherit"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),cv(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,r=s.y,a=i.y,n=0;if(t.height)return t.height;this.alignElements(),n=e?e.getBBox(!0).height+13+o:0;let h=Math.min(a,r);return(a<0&&r<0||a>0&&r>0)&&(n+=Math.abs(h)),n}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(cO(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),ck(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),cM(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),cE(t,function(e,i){e&&"chart"!==i&&(e instanceof eK?e.destroy():e instanceof window.HTMLElement&&cS(e),delete t[i]),e!==cI.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}cA(cI.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});let{format:cz}=ec,{getOptions:cR}=tA,{setFixedRange:cN}=di,{addEvent:cW,clamp:cG,crisp:cX,defined:cH,extend:cF,find:cY,isNumber:cj,isString:cU,merge:cV,pick:c_,splat:c$}=ti;function cZ(t,e,i){return"xAxis"===t?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===t?{labels:{y:-2},opposite:i.opposite??e.opposite??!0,showLastLabel:!!(e.categories||"category"===e.type),title:{text:i.title?.text!=="Values"?i.title?.text:null}}:{}}function cq(t,e){if("xAxis"===t){let t=c_(e.navigator&&e.navigator.enabled,l8.enabled,!0),i={type:"datetime",categories:void 0};return t&&(i.startOnTick=!1,i.endOnTick=!1),i}return{}}class cK extends aq{init(t,e){let i=cR(),s=t.xAxis,o=t.yAxis,r=c_(t.navigator&&t.navigator.enabled,l8.enabled,!0);t.xAxis=t.yAxis=void 0;let a=cV({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:r},scrollbar:{enabled:c_(db.enabled,!0)},rangeSelector:{enabled:c_(d4.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:c_(i.tooltip&&i.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},t,{isStock:!0});t.xAxis=s,t.yAxis=o,a.xAxis=c$(t.xAxis||{}).map(e=>cV(cZ("xAxis",e,i.xAxis),e,cq("xAxis",t))),a.yAxis=c$(t.yAxis||{}).map(t=>cV(cZ("yAxis",t,i.yAxis),t)),super.init(a,e)}createAxis(t,e){return e.axis=cV(cZ(t,e.axis,cR()[t]),e.axis,cq(t,this.userOptions)),super.createAxis(t,e)}}cW(aq,"update",function(t){let e=t.options;"scrollbar"in e&&this.navigator&&(cV(!0,this.options.scrollbar,e.scrollbar),this.navigator.update({enabled:!!this.navigator.navigatorEnabled}),delete e.scrollbar)}),function(t){function e(t){if(!(this.crosshair?.label?.enabled&&this.cross&&cj(this.min)&&cj(this.max)))return;let e=this.chart,i=this.logarithmic,s=this.crosshair.label,o=this.horiz,r=this.opposite,a=this.left,n=this.top,h=this.width,l="inside"===this.options.tickPosition,d=!1!==this.crosshair.snap,c=t.e||this.cross?.e,p=t.point,u=this.crossLabel,g,f,m=s.format,x="",y,b=0,v=this.min,k=this.max;i&&(v=i.lin2log(this.min),k=i.lin2log(this.max));let M=o?"center":r?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";u||(u=this.crossLabel=e.renderer.label("",0,void 0,s.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(p&&p.series?p.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:s.align||M,padding:c_(s.padding,8),r:c_(s.borderRadius,3),zIndex:2}).add(this.labelGroup),e.styledMode||u.attr({fill:s.backgroundColor||p&&p.series&&p.series.color||"#666666",stroke:s.borderColor||"","stroke-width":s.borderWidth||0}).css(cF({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},s.style||{}))),o?(g=d?(p.plotX||0)+a:c.chartX,f=n+(r?0:this.height)):(g=a+this.offset+(r?h:0),f=d?(p.plotY||0)+n:c.chartY),m||s.formatter||(this.dateTime&&(x="%b %d, %Y"),m="{value"+(x?":"+x:"")+"}");let w=d?this.isXAxis?p.x:p.y:this.toValue(o?c.chartX:c.chartY),S=p&&p.series?p.series.isPointInside(p):cj(w)&&w>v&&w=y.right&&(b=-(C+T.width-y.right)),u.attr({x:Math.max(0,g+b),y:Math.max(0,f),anchorX:o?g:this.opposite?0:e.chartWidth,anchorY:o?this.opposite?e.chartHeight:0:f+T.height/2})}function i(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function s(t){let e=this.chart,i=this.options,s=e._labelPanes=e._labelPanes||{},o=i.labels;if(e.options.isStock&&"yAxis"===this.coll){let e=i.top+","+i.height;!s[e]&&o.enabled&&(15===o.distance&&1===this.side&&(o.distance=0),void 0===o.align&&(o.align="right"),s[e]=this,t.align="right",t.preventDefault())}}function o(){let t=this.chart,e=this.options&&this.options.top+","+this.options.height;e&&t._labelPanes&&t._labelPanes[e]===this&&delete t._labelPanes[e]}function r(t){let e=this,i=e.isLinked&&!e.series&&e.linkedParent?e.linkedParent.series:e.series,s=e.chart,o=s.renderer,r=e.left,a=e.top,n=[],h=t.translatedValue,l=t.value,d=t.force,c,p,u,g,f=[],m,x;if(s.options.isStock&&!1!==t.acrossPanes&&"xAxis"===e.coll||"yAxis"===e.coll){for(let o of(t.preventDefault(),f=(t=>{let o="xAxis"===t?"yAxis":"xAxis",r=e.options[o];return cj(r)?[s[o][r]]:cU(r)?[s.get(r)]:i.map(t=>t[o])})(e.coll),e.isXAxis?s.yAxis:s.xAxis))if(!o.options.isInternal){let t=o.isXAxis?"yAxis":"xAxis";e===(cH(o.options[t])?s[t][o.options[t]]:s[t][0])&&f.push(o)}for(let t of(m=f.length?[]:[e.isXAxis?s.yAxis[0]:s.xAxis[0]],f))-1!==m.indexOf(t)||cY(m,e=>e.pos===t.pos&&e.len===t.len)||m.push(t);if(cj(x=c_(h,e.translate(l||0,void 0,void 0,t.old)))){if(e.horiz)for(let t of m){let i;g=(p=t.pos)+t.len,c=u=Math.round(x+e.transB),"pass"!==d&&(cr+e.width)&&(d?c=u=cG(c,r,r+e.width):i=!0),i||n.push(["M",c,p],["L",u,g])}else for(let t of m){let i;u=(c=t.pos)+t.len,p=g=Math.round(a+e.height-x),"pass"!==d&&(pa+e.height)&&(d?p=g=cG(p,a,a+e.height):i=!0),i||n.push(["M",c,p],["L",u,g])}}t.path=n.length>0?o.crispPolyLine(n,t.lineWidth||1):void 0}}function a(t){if(this.chart.options.isStock){let e;this.is("column")||this.is("columnrange")?e={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(e={marker:{enabled:!1,radius:2}}),e&&(t.plotOptions[this.type]=cV(t.plotOptions[this.type],e))}}function n(){let t=this.chart,e=this.options.dataGrouping;return!1!==this.allowDG&&e&&c_(e.enabled,t.options.isStock)}function h(t,e){for(let i=0;i`plot${t.charAt(0).toUpperCase()+t.slice(1)}`);s.push("yBottom"),i.push("low"),super.translate.apply(t),t.points.forEach(function(o){i.forEach(function(i,r){let a=o[i];null!==a&&(t.dataModify&&(a=t.dataModify.modifyValue(a)),o[s[r]]=e.toPixels(a,!0))}),o.tooltipPos[1]=o.plotHigh+e.pos-t.chart.plotTop})}}c5.defaultOptions=c3(c0.defaultOptions,{lineWidth:1,tooltip:{pointFormat:' {series.name}
High: {point.high}
Low: {point.low}
Close: {point.close}
'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}),c2(c5.prototype,{pointClass:class extends cQ{},animate:null,directTouch:!1,keysAffectYAxis:["low","high"],pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),rx.registerSeriesType("hlc",c5);let{seriesTypes:{hlc:c6}}=rx;class c9 extends c6.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open {series.name}
Open: {point.open}
High: {point.high}
Low: {point.low}
Close: {point.close}
'}}),pe(pa.prototype,{pointClass:c9,pointArrayMap:["open","high","low","close"]}),rx.registerSeriesType("ohlc",pa);let{column:pn,ohlc:ph}=rx.seriesTypes,{crisp:pl,merge:pd}=ti;class pc extends ph{pointAttribs(t,e){let i=pn.prototype.pointAttribs.call(this,t,e),s=this.options,o=t.openo&&(i-=Math.round((r-o)/2),o=r),n=t[e](i,s,o,r,a),h&&l){let a=h;if("circle"===e)a=i+o/2;else{let t=n[0],e=n[1];"M"===t[0]&&"L"===e[0]&&(a=(t[1]+e[1])/2)}let d=s>l?s:s+r;n.push(["M",a,d],["L",h,l]),n=n.concat(t.circle(h-1,l-1,2,2))}return n}}t.compose=function(t){if(-1===e.indexOf(t)){e.push(t);let o=t.prototype.symbols;o.flag=i,s(o,"circle"),s(o,"square")}let o=ep.getRendererType();e.indexOf(o)&&e.push(o)}}(T||(T={}));let pf=T,{composed:pm}=L,{prototype:px}=n4,{prototype:py}=rq,{defined:pb,pushUnique:pv,stableSort:pk}=ti;!function(t){function e(t){return py.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,t)}function i(){px.translate.apply(this);let t=this,e=t.options,i=t.chart,s=t.points,o=e.onSeries,r=o&&i.get(o),a=r&&r.options.step,n=r&&r.points,h=i.inverted,l=t.xAxis,d=t.yAxis,c=s.length-1,p,u,g=e.onKey||"y",f=n&&n.length,m=0,x,y,b,v,k;if(r&&r.visible&&f){for(m=(r.pointXOffset||0)+(r.barW||0)/2,v=r.currentDataGrouping,y=n[f-1].x+(v?v.totalRange:0),pk(s,(t,e)=>t.x-e.x),g="plot"+g[0].toUpperCase()+g.substr(1);f--&&s[c];)if(x=n[f],(p=s[c]).y=x.y,x.x<=p.x&&void 0!==x[g]){if(p.x<=y&&(p.plotY=x[g],x.xMath.pow(1-o,3)*t[r]+3*(1-o)*(1-o)*o*i[r]+3*(1-o)*o*o*s[r]+o*o*o*e[r],r=0,a=1,n;for(let t=0;t<100;t++){let t=(r+a)/2,e=o(t,0);if(null===e)break;if(.25>Math.abs(e-p.plotX)){n=t;break}e{let o;e.plotX+=m,(void 0===e.plotY||h)&&(e.plotX>=0&&e.plotX<=l.len?h?(e.plotY=l.translate(e.x,0,1,0,1),e.plotX=pb(e.y)?d.translate(e.y,0,0,0,1):0):e.plotY=(l.opposite?0:t.yAxis.len)+l.offset:e.shapeArgs={}),(u=s[i-1])&&u.plotX===e.plotX&&(void 0===u.stackIndex&&(u.stackIndex=0),o=u.stackIndex+1),e.stackIndex=o}),this.onSeries=r}t.compose=function(t){if(pv(pm,"OnSeries")){let s=t.prototype;s.getPlotBox=e,s.translate=i}return t},t.getPlotBox=e,t.translate=i}(C||(C={}));let pM=C,{noop:pw}=L,{distribute:pS}=ex,{series:pA,seriesTypes:{column:pT}}=rx,{addEvent:pC,defined:pP,extend:pO,isNumber:pE,merge:pL,objectEach:pB,wrap:pD}=ti;class pI extends pT{animate(t){t&&this.setClip()}drawPoints(){let t,e,i,s,o,r,a,n,h,l,d;let c=this.points,p=this.chart,u=p.renderer,g=p.inverted,f=this.options,m=f.y,x=this.yAxis,y={},b=[],v=pE(f.borderRadius)?f.borderRadius:0;for(s=c.length;s--;)o=c[s],l=(g?o.plotY:o.plotX)>this.xAxis.len,t=o.plotX,a=o.stackIndex,i=o.options.shape||f.shape,void 0!==(e=o.plotY)&&(e=o.plotY+m-(void 0!==a&&a*f.stackDistance)),o.anchorX=a?void 0:o.plotX,n=a?void 0:o.plotY,d="flag"!==i,r=o.graphic,void 0!==e&&t>=0&&!l?(r&&o.hasNewShapeType()&&(r=r.destroy()),r||(r=o.graphic=u.label("",0,void 0,i,void 0,void 0,f.useHTML).addClass("highcharts-point").add(this.markerGroup),o.graphic.div&&(o.graphic.div.point=o),r.isNew=!0),r.attr({align:d?"center":"left",width:f.width,height:f.height,"text-align":f.textAlign,r:v}),p.styledMode||r.attr(this.pointAttribs(o)).css(pL(f.style,o.style)).shadow(f.shadow),t>0&&(t-=r.strokeWidth()%2),h={y:e,anchorY:n},f.allowOverlapX&&(h.x=t,h.anchorX=o.anchorX),r.attr({text:o.options.title??f.title??"A"})[r.isNew?"attr":"animate"](h),f.allowOverlapX||(y[o.plotX]?y[o.plotX].size=Math.max(y[o.plotX].size,r.width||0):y[o.plotX]={align:d?.5:0,size:r.width||0,target:t,anchorX:t}),o.tooltipPos=[t,e+x.pos-p.plotTop]):r&&(o.graphic=r.destroy());if(!f.allowOverlapX){let t=100;for(let e of(pB(y,function(e){e.plotX=e.anchorX,b.push(e),t=Math.max(e.size,t)}),pS(b,g?x.len:this.xAxis.len,t),c)){let t=e.plotX,i=e.graphic,s=i&&y[t];s&&i&&(pP(s.pos)?i[i.isNew?"attr":"animate"]({x:s.pos+(s.align||0)*s.size,anchorX:e.anchorX}).show().isNew=!1:i.hide().isNew=!0)}}f.useHTML&&this.markerGroup&&pD(this.markerGroup,"on",function(t){return eK.prototype.on.apply(t.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let t=this.points;for(let e of(super.drawTracker(),t)){let i=e.graphic;i&&(e.unbindMouseOver&&e.unbindMouseOver(),e.unbindMouseOver=pC(i.element,"mouseover",function(){for(let s of(e.stackIndex>0&&!e.raised&&(e._y=i.y,i.attr({y:e._y-8}),e.raised=!0),t))s!==e&&s.raised&&s.graphic&&(s.graphic.attr({y:s._y}),s.raised=!1)}))}}pointAttribs(t,e){let i=this.options,s=t&&t.color||this.color,o=i.lineColor,r=t&&t.lineWidth,a=t&&t.fillColor||i.fillColor;return e&&(a=i.states[e].fillColor,o=i.states[e].lineColor,r=i.states[e].lineWidth),{fill:a||s,stroke:o||s,"stroke-width":r||i.lineWidth||0}}setClip(){pA.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}pI.compose=pf.compose,pI.defaultOptions=pL(pT.defaultOptions,{borderRadius:0,pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd3ff"}},style:{fontSize:"0.7em",fontWeight:"bold"}}),pM.compose(pI),pO(pI.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:pg,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:pw,init:pA.prototype.init}),rx.registerSeriesType("flags",pI);let{addEvent:pz,find:pR,fireEvent:pN,isArray:pW,isNumber:pG,pick:pX}=ti;!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,a;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(a&&!1!==a.visible||(a=i[r+1]),t=i[r],!1!==a.visible&&!1!==t.visible){if(a.x-t.x>o){let e=(t.x+a.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new na(s,s.options.stackLabels,!1,e,this.stack)).total=0)}a=t}}return this.getGraphPath(i)}t.compose=function(t,l){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),pz(t,"init",o),pz(t,"afterInit",e),pz(t,"afterSetTickPositions",s),pz(t,"afterSetOptions",i);let d=l.prototype;d.drawBreaks=n,d.gappedPath=h,pz(l,"afterGeneratePoints",r),pz(l,"afterRender",a)}return t};class l{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(l.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return pR(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==l.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=l.lin2Val,s.val2lin=l.val2Lin,s.setExtremes=function(t,e,o,r,a){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=h;for(;pthis.chart.plotSizeX/i||o&&r.forced)&&(s=!0));return s?i:0}function p5(){this.series.forEach(function(t){t.hasProcessed=!1})}function p6(t,e){let i;if(e=p1(e,!0),t||(t={forced:!1,units:null}),this instanceof o)for(i=this.series.length;i--;)this.series[i].update({dataGrouping:t},!1);else this.chart.options.series.forEach(function(e){e.dataGrouping="boolean"==typeof t?t:p0(t,e.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),e&&this.chart.redraw()}let p9={compose:function(t){o=t;let e=t.prototype;e.applyGrouping||(pJ(t,"afterSetScale",p5),pJ(t,"postProcessData",p2),pQ(e,{applyGrouping:p2,getGroupPixelWidth:p3,setDataGrouping:p6}))}},{series:{prototype:p4}}=rx,{addEvent:p8,defined:p7,error:ut,extend:ue,isNumber:ui,merge:us,pick:uo,splat:ur}=ti,ua=p4.generatePoints;function un(t){var e;let i,s;let o=this.chart,r=this.options.dataGrouping,a=!1!==this.allowDG&&r&&uo(r.enabled,o.options.isStock),n=this.reserveSpace(),h=this.currentDataGrouping,l,d,c=!1;a&&!this.requireSorting&&(this.requireSorting=c=!0);let p=!1==!(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!t)||!a;if(c&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let u=r.groupAll?this.dataTable:this.dataTable.modified||this.dataTable,g=this.getColumn("x",!r.groupAll),f=o.plotSizeX,m=this.xAxis,x=m.getExtremes(),y=m.options.ordinal,b=this.groupPixelWidth;if(b&&g&&u.rowCount&&f&&ui(x.min)){s=!0,this.isDirty=!0,this.points=null;let t=x.min,a=x.max,h=y&&m.ordinal&&m.ordinal.getGroupIntervalFactor(t,a,this)||1,c=b*(a-t)/f*h,p=m.getTimeTicks(sZ.Additions.prototype.normalizeTimeTickInterval(c,r.units||pK.units),Math.min(t,g[0]),Math.max(a,g[g.length-1]),m.options.startOfWeek,g,this.closestPointRange),v=p4.groupData.apply(this,[u,p,r.approximation]),k=v.modified,M=k.getColumn("x",!0),w=0;for(r?.smoothed&&k.rowCount&&(r.firstAnchor="firstPoint",r.anchor="middle",r.lastAnchor="lastPoint",ut(32,!1,o,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),i=1;i=e[0]){let i;c++;let s=t.groupMap[0].start,a=t.groupMap[0].length;ui(s)&&ui(a)&&(i=s+(a-1)),e[0]=({start:e[0],middle:e[0]+.5*o,end:e[0]+o,firstPoint:r[0],lastPoint:i&&r[i]})[h]}if(a>0&&l&&o&&e[a]>=i-o){d--;let i=t.groupMap[t.groupMap.length-1].start;e[a]=({start:e[a],middle:e[a]+.5*o,end:e[a]+o,firstPoint:i&&r[i],lastPoint:r[r.length-1]})[l]}if(n&&"start"!==n){let t=o*({middle:.5,end:1})[n];for(;d>=c;)e[d]+=t,d--}}(this,M||[],a),n&&M&&(p7((e=M)[0])&&ui(m.min)&&ui(m.dataMin)&&e[0]m.max&&((!p7(m.options.max)&&ui(m.dataMax)&&m.max>=m.dataMax||m.max===m.dataMax)&&(m.max=Math.max(e[e.length-1],m.max)),m.dataMax=Math.max(e[e.length-1],m.dataMax))),r.groupAll&&(this.allGroupedTable=k,M=(k=(d=this.cropData(k,m.min||0,m.max||0)).modified).getColumn("x"),this.cropStart=d.start),this.dataTable.modified=k}else this.groupMap=void 0,this.currentDataGrouping=void 0;this.hasGroupedData=s,this.preventGraphAnimation=(h&&h.totalRange)!==(l&&l.totalRange)}function uh(){this.groupedData&&(this.groupedData.forEach(function(t,e){t&&(this.groupedData[e]=t.destroy?t.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedTable)}function ul(){ua.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function ud(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function uc(t,e,i){let s=t.getColumn("x",!0)||[],o=t.getColumn("y",!0),r=this,a=r.data,n=r.options&&r.options.data,h=[],l=new rh,d=[],c=t.rowCount,p=!!o,u=[],g=r.pointArrayMap,f=g&&g.length,m=["x"].concat(g||["y"]),x=(g||["y"]).map(()=>[]),y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,b,v,k,M=0,w=0,S="function"==typeof i?i:i&&pF[i]?pF[i]:pF[r.getDGApproximation&&r.getDGApproximation()||"average"];if(f){let t=g.length;for(;t--;)u.push([])}else u.push([]);let A=f||1;for(let t=0;t<=c;t++)if(!(s[t]=e[M+1]||t===c;){if(b=e[M],r.dataGroupInfo={start:y?w:r.cropStart+w,length:u[0].length,groupStart:b},k=S.apply(r,u),r.pointClass&&!p7(r.dataGroupInfo.options)&&(r.dataGroupInfo.options=us(r.pointClass.prototype.optionsToObject.call({series:r},r.options.data[r.cropStart+w])),m.forEach(function(t){delete r.dataGroupInfo.options[t]})),void 0!==k){h.push(b);let t=ur(k);for(let e=0;e{T[t]=x[e]}),l.setColumns(T),{groupMap:d,modified:l}}function up(t){let e=t.options,i=this.type,s=this.chart.options.plotOptions,o=this.useCommonDataGrouping&&pK.common,r=pK.seriesSpecific,a=tA.defaultOptions.plotOptions[i].dataGrouping;if(s&&(r[i]||o)){let t=this.chart.rangeSelector;a||(a=us(pK.common,r[i])),e.dataGrouping=us(o,a,s.series&&s.series.dataGrouping,s[i].dataGrouping,this.userOptions.dataGrouping,!e.isInternal&&t&&ui(t.selected)&&t.buttonOptions[t.selected].dataGrouping)}}let uu={compose:function(t){let e=t.prototype;e.applyGrouping||(p8(t.prototype.pointClass,"update",function(){if(this.dataGroup)return ut(24,!1,this.series.chart),!1}),p8(t,"afterSetOptions",up),p8(t,"destroy",uh),ue(e,{applyGrouping:un,destroyGroupedData:uh,generatePoints:ul,getDGApproximation:ud,groupData:uc}))},groupData:uc},{format:ug}=ec,{composed:uf}=L,{addEvent:um,extend:ux,isNumber:uy,pick:ub,pushUnique:uv}=ti;function uk(t){let e=this.chart,i=e.time,s=t.point,o=s.series,r=o.options,a=o.tooltipOptions,n=r.dataGrouping,h=o.xAxis,l=a.xDateFormat||"",d,c,p,u,g,f=a[t.isFooter?"footerFormat":"headerFormat"];if(h&&"datetime"===h.options.type&&n&&uy(s.key)){c=o.currentDataGrouping,p=n.dateTimeLabelFormats||pK.common.dateTimeLabelFormats,c?(u=p[c.unitName],1===c.count?l=u[0]:(l=u[1],d=u[2])):!l&&p&&h.dateTime&&(l=h.dateTime.getXDateFormat(s.x,a.dateTimeLabelFormats));let r=ub(o.groupMap?.[s.index].groupStart,s.key),m=r+(c?.totalRange||0)-1;g=i.dateFormat(l,r),d&&(g+=i.dateFormat(d,m)),o.chart.styledMode&&(f=this.styledModeFormat(f)),t.text=ug(f,{point:ux(s,{key:g}),series:o},e),t.preventDefault()}}let uM={compose:function(t,e,i){p9.compose(t),uu.compose(e),i&&uv(uf,"DataGrouping")&&um(i,"headerFormatter",uk)},groupData:uu.groupData};L.dataGrouping=L.dataGrouping||{},L.dataGrouping.approximationDefaults=L.dataGrouping.approximationDefaults||pq,L.dataGrouping.approximations=L.dataGrouping.approximations||pF,uM.compose(L.Axis,L.Series,L.Tooltip);let{defined:uw,isNumber:uS,pick:uA}=ti,uT={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},{addEvent:uC,isObject:uP,pick:uO,defined:uE,merge:uL}=ti,{getAssignedAxis:uB}={annotationsFieldsTypes:uT,getAssignedAxis:function(t){return t.filter(t=>{let e=t.axis.getExtremes(),i=e.min,s=e.max,o=uA(t.axis.minPointOffset,0);return uS(i)&&uS(s)&&t.value>=i-o&&t.value<=s+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,e){let i=uT[t],s=typeof e;return uw(i)&&(s=i),({string:"text",number:"number",boolean:"checkbox"})[s]}},uD=[],uI={enabled:!0,sensitivity:1.1},uz=t=>(uP(t)||(t={enabled:t??!0}),uL(uI,t)),uR=function(t,e,i,s,o,a,n){let h=uO(n.type,t.zooming.type,""),l=[];"x"===h?l=i:"y"===h?l=s:"xy"===h&&(l=t.axes);let d=t.transform({axes:l,to:{x:o-5,y:a-5,width:10,height:10},from:{x:o-5*e,y:a-5*e,width:10*e,height:10*e},trigger:"mousewheel"});return d&&(uE(r)&&clearTimeout(r),r=setTimeout(()=>{t.pointer?.drop()},400)),d};function uN(){let t=uz(this.zooming.mouseWheel);t.enabled&&uC(this.container,"wheel",e=>{e=this.pointer?.normalize(e)||e;let{pointer:i}=this,s=i&&!i.inClass(e.target,"highcharts-no-mousewheel");if(this.isInsidePlot(e.chartX-this.plotLeft,e.chartY-this.plotTop)&&s){let s=t.sensitivity||1.1,o=e.detail||(e.deltaY||0)/120,r=uB(i.getCoordinates(e).xAxis),a=uB(i.getCoordinates(e).yAxis);uR(this,Math.pow(s,o),r?[r.axis]:this.xAxis,a?[a.axis]:this.yAxis,e.chartX,e.chartY,t)&&e.preventDefault?.()}})}L.MouseWheelZoom=L.MouseWheelZoom||{compose:function(t){-1===uD.indexOf(t)&&(uD.push(t),uC(t,"afterGetContainer",uN))}},L.MouseWheelZoom.compose(L.Chart),L.Navigator=L.Navigator||dq,L.OrdinalAxis=L.OrdinalAxis||d9,L.RangeSelector=L.RangeSelector||cI,L.Scrollbar=L.Scrollbar||dE,L.stockChart=L.stockChart||cJ.stockChart,L.StockChart=L.StockChart||L.stockChart,L.extend(L.StockChart,cJ),lN.compose(L.Series,L.Axis,L.Point),pI.compose(L.Renderer),pa.compose(L.Series),L.Navigator.compose(L.Chart,L.Axis,L.Series),L.OrdinalAxis.compose(L.Axis,L.Series,L.Chart),L.RangeSelector.compose(L.Axis,L.Chart),L.Scrollbar.compose(L.Axis),L.StockChart.compose(L.Chart,L.Axis,L.Series,L.SVGRenderer),/** - * @license Highstock JS v12.0.2 (2024-12-04) + */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i,s,o,r;var a,n,h,l,d,c,p,u,g,f,m,x,y,b,v,k,M,w,S,A,T,C,P,O={};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,e)=>Object.prototype.hasOwnProperty.call(t,e);var E={};O.d(E,{default:()=>uX}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.1.0",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(a||(a={}));let L=a,{charts:D,doc:B,win:I}=L;function z(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=F(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),J(s,function(e,i){t+=` + - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}tt(L,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);I.console&&-1===z.messages.indexOf(a)&&console.warn(a)}),z.messages.push(a)}function R(t,e){return parseInt(t,e||10)}function N(t){return"string"==typeof t}function W(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function G(t,e){return!!t&&"object"==typeof t&&(!e||!W(t))}function X(t){return G(t)&&"number"==typeof t.nodeType}function H(t){let e=t&&t.constructor;return!!(G(t,!0)&&!X(t)&&e&&e.name&&"Object"!==e.name)}function F(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function Y(t){return null!=t}function j(t,e,i){let s;let o=N(e)&&!Y(i),r=(e,i)=>{Y(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return N(e)?r(i,e):J(e,r),s}function U(t){return W(t)?t:[t]}function V(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function _(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(z||(z={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let K=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let te=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();I.jQuery&&(I.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new L[N(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):D[j(this[0],"data-highcharts-chart")]});let ti={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;L.Point&&t instanceof L.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!L.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){Q(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=U(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=I.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),_(s,"opacity"!==i)&&(o=R(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return q(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:J,offset:function(t){let e=B.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(I.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(I.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:_,pInt:R,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:Q,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:U,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return N(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:te,useSerialIds:function(e){return t=_(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:ts}=L,{defined:to,error:tr,extend:ta,isNumber:tn,isObject:th,isString:tl,merge:td,objectEach:tc,pad:tp,splat:tu,timeUnits:tg,ucfirst:tf}=ti,tm=L.isSafari&&ts.Intl&&!ts.Intl.DateTimeFormat.prototype.formatRange,tx=t=>void 0===t.main,ty=t=>["D","L","M","X","J","V","S"].indexOf(t),tb=class{constructor(t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=ts.Date,this.update(t)}update(t={}){this.dTLCache={},this.options=t=td(!0,this.options,t);let{timezoneOffset:e,useUTC:i}=t;this.Date=t.Date||ts.Date||Date;let s=t.timezone;to(i)&&(s=i?"UTC":void 0),e&&e%60==0&&(s="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==s&&s?.indexOf("Etc/GMT")!==0,this.timezone=s,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,ty(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;tl(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(tr(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):tr(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&ta(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||tm||(n-=36e5)}}return n}parse(t){if(!tl(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(tn(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(tn(a))return a}return 0}dateFormat(t,e,i){let s=L.defaultOptions?.lang;if(!to(e)||isNaN(e))return s?.invalidDate||"";if(tl(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(tl(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,f=s?.shortMonths||this.shortMonths;tc(ta({a:u?u[c]:p[c].substr(0,3),A:p[c],d:tp(a),e:tp(a,2," "),w:c,b:f[r],B:g[r],m:tp(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:tp(n),k:n,I:tp(n%12||12),l:n%12||12,M:tp(h),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:tp(l),L:tp(d,3)},L.dateFormats),function(s,o){if(tl(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(th(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(ta({timeZone:s},t),e)+r}return i?tf(t):t}resolveDTLFormat(t){return th(t,!0)?th(t,!0)&&tx(t)?{main:t}:t:{main:(t=tu(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,u,g]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),to(e)){if(f=h>=tg.second?0:n*Math.floor(f/n),h>=tg.second&&(g=h>=tg.minute?0:n*Math.floor(g/n)),h>=tg.minute&&(u=h>=tg.hour?0:n*Math.floor(u/n)),h>=tg.hour&&(p=h>=tg.day?0:n*Math.floor(p/n)),h>=tg.day&&(c=h>=tg.month?1:Math.max(1,n*Math.floor(c/n))),h>=tg.month&&(d=h>=tg.year?0:n*Math.floor(d/n)),h>=tg.year&&(l-=l%n),h===tg.week){n&&(e=o.makeTime(l,d,c,p,u,g,f));let t=ty(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*tg.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=tg.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=ta(t,{higherRanks:a,totalRange:h*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in tg){if(t===tg.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(tg[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:tv}=L,{fireEvent:tk,merge:tM}=ti,tw={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:tv?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tw.chart.styledMode=!0,tw.chart.styledMode=!1;let tS=new tb(tw.time),tA={defaultOptions:tw,defaultTime:tS,getOptions:function(){return tw},setOptions:function(t){return tk(L,"setOptions",{options:t}),tM(!0,tw,t),t.time&&tS.update(tw.time),t.lang&&"locale"in t.lang&&tS.update({locale:t.lang.locale}),tw}},{isNumber:tT,merge:tC,pInt:tP,defined:tO}=ti;class tE{static parse(t){return t?new tE(t):tE.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=L.Color;if(r&&r!==tE)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tE(t[1]));else if("string"==typeof t)for(this.input=t=tE.names[t.toLowerCase()]||t,s=tE.parsers.length;s--&&!i;)(e=(o=tE.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tC(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&tT(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(tT(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tP(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!tT(i[0])||!tT(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?"rgba(":"rgb(")+a.join(",")+")"}}tE.names={white:"#ffffff",black:"#000000"},tE.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tP(t[1]),tP(t[2]),tP(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tP(t[1]),tP(t[2]),tP(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tP(t[1]+t[1],16),tP(t[2]+t[2],16),tP(t[3]+t[3],16),tO(t[4])?tP(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tP(t[1],16),tP(t[2],16),tP(t[3],16),tO(t[4])?tP(t[4],16)/255:1]}}],tE.None=new tE("");let{parse:tL}=tE,{win:tD}=L,{isNumber:tB,objectEach:tI}=ti;class tz{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tI(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,u=e&&e.slice();if(!u||h)return[r,r];function g(t,e){for(;t.length{let i=tj(t.options.animation);r=tX(e)&&tR(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tY(t,e.options.chart.animation,!0)},stop:tU},{SVG_NS:t_,win:t$}=L,{attr:tZ,createElement:tq,css:tK,error:tJ,isFunction:tQ,isString:t0,objectEach:t1,splat:t2}=ti,{trustedTypes:t3}=t$,t5=t3&&tQ(t3.createPolicy)&&t3.createPolicy("highcharts",{createHTML:t=>t}),t6=t5?t5.createHTML(""):"";class t9{static filterUserAttributes(t){return t1(t,(e,i)=>{let s=!0;-1===t9.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=t0(e)&&t9.allowedReferences.some(t=>0===e.indexOf(t))),s||(tJ(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),t0(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=t9.emptyHTML,e&&new t9(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return t2(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?L.doc.createTextNode(e.textContent):void 0,n=t9.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==t9.allowedTags.indexOf(r)||n){let s="svg"===r?t_:i.namespaceURI||t_,h=L.doc.createElementNS(s,r),l=e.attributes||{};t1(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),tZ(h,n?l:t9.filterUserAttributes(l)),e.style&&tK(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tJ(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t5?t5.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tq("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=t9.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}t9.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],t9.allowedReferences=["https://","http://","mailto:","/","../","./","#"],t9.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],t9.emptyHTML=t6,t9.bypassHTMLFiltering=!1;let{defaultOptions:t4,defaultTime:t8}=tA,{doc:t7}=L,{extend:et,getNestedProperty:ee,isArray:ei,isNumber:es,isObject:eo,isString:er,pick:ea,ucfirst:en}=ti,eh={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!ei(t)&&t.map((i,s)=>ec(e.body,et(eo(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:en,unless:t=>!t},el={},ed=t=>/^["'].+["']$/.test(t);function ec(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,h=i?.options.lang||t4.lang,l=i&&i.time||t8,d=i&&i.numberFormatter||ep,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:ed(t)?t.slice(1,-1):ee(t,e))},p,u,g=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),u&&u.isBlock||(u={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(u.isBlock?i:p)[1].split(" ")[0].replace("#","");eh[a]&&(u.isBlock&&a===u.fn&&g++,u.fn||(u.fn=a));let n="else"===p[1];if(u.isBlock&&u.fn&&(p[1]===`/${u.fn}`||n)){if(g)!n&&g--;else{let e=u.startInner,i=t.substr(e,p.index-e);void 0===u.body?(u.body=i,u.startInner=p.index+p[0].length):u.elseBody=i,u.find+=i+p[0],n||(r.push(u),u=void 0)}}else u.isBlock||r.push(u);if(s&&!u?.isBlock)break}return r.forEach(s=>{let r,p;let{body:u,elseBody:g,expression:f,fn:m}=s;if(m){let t=[s],o=[],a=f.length,n=0,h;for(p=0;p<=a;p++){let t=f.charAt(p);h||'"'!==t&&"'"!==t?h===t&&(h=""):h=t,h||" "!==t&&p!==a||(o.push(f.substr(n,p-n)),n=p+1)}for(p=eh[m].length;p--;)t.unshift(c(o[p+1]));r=eh[m].apply(e,t),s.isBlock&&"boolean"==typeof r&&(r=ec(r?u:g,e,i))}else{let t=ed(f)?[f]:f.split(":");if(r=c(t.shift()||""),t.length&&"number"==typeof r){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&er(r)&&(r=`"${r}"`)}t=t.replace(s.find,ea(r,""))}),f?ec(t,e,i):t}function ep(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||t4.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):es(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),es(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||h.locale||t7.body.closest("[lang]")?.lang,g=JSON.stringify(c)+u;return o=(el[g]??(el[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let eu={dateFormat:function(t,e,i){return t8.dateFormat(t,e,i)},format:ec,helpers:eh,numberFormat:ep};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,L.Renderer=s)}}(n||(n={}));let eg=n,{clamp:ef,pick:em,pushUnique:ex,stableSort:ey}=ti;(h||(h={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,u,g=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(ey(e,(t,e)=>(e.rank||0)-(t.rank||0)),u=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?u:h-1;u&&x>r;)f=e[c=Math.floor(p)],ex(l,c)&&(x-=f.size),p+=u,y&&p>=e.length&&(u/=2,p=u);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(ey(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:em(t.align,.5)}));g;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=ef(m-f.size*f.align,0,i-f.size);for(c=e.length,g=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),g=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),ey(o,a),o};let eb=h,{animate:ev,animObject:ek,stop:eM}=tV,{deg2rad:ew,doc:eS,svg:eA,SVG_NS:eT,win:eC,isFirefox:eP}=L,{addEvent:eO,attr:eE,createElement:eL,crisp:eD,css:eB,defined:eI,erase:ez,extend:eR,fireEvent:eN,getAlignFactor:eW,isArray:eG,isFunction:eX,isNumber:eH,isObject:eF,isString:eY,merge:ej,objectEach:eU,pick:eV,pInt:e_,pushUnique:e$,replaceNested:eZ,syncTimeout:eq,uniqueKey:eK}=ti;class eJ{_defaultGetter(t){let e=eV(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={"text-align":t?.align},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||eY(i)?i||"renderer":void 0;h&&(n&&e$(a,this),i=void 0);let l=eV(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eW(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eW(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=ek(eV(e,this.renderer.globalAnimation,!0)),o=s.defer;return eS.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eq(()=>{this.element&&ev(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eU(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&L.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=eS.createElementNS(eT,"tspan");eE(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=eS.createElementNS(eT,"tspan");a.textContent="​",eE(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eJ.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eU(t,function(e,i){l=!1,s||eM(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eK()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eR(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eD(i,e),n=eD(s,e);return eR(t,{x:a,y:n,width:eD(o,e)-a,height:eD(r,e)-n}),eI(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,u,g=[],f;eN(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eG(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eI(a.gradientUnits)&&(n=a,a=ej(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),eU(a,function(t,e){"id"!==e&&g.push(e,t)}),eU(l,function(t){g.push(t)}),h[g=g.join(",")])u=h[g].attr("id");else{a.id=u=eK();let t=h[g]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tE.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+u+")",i.setAttribute(e,f),i.gradient=g,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eU(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eR(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=e_(t.width)),eR(this.styles,t),o&&!eA&&this.renderer.forExport&&delete t.width;let r=eP&&t.fontSize||null;r&&(eH(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=ej(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),eB(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+e_(s[e])*eV(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,eM(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,u=n.namespaceURI===this.SVG_NS,g=eV(e,this.rotation,0),f=h.styledMode?n&&eJ.prototype.getStyle.call(n,"font-size"):l.fontSize;if(eI(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,g,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&eB(e,{display:t})},eX(o)&&o("none"),i=n.getBBox?eR({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eX(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};eN(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eW(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*ew,u=(e-90)*ew,g=Math.cos(p),f=Math.sin(p),m=o*g,x=o*f,y=Math.cos(u),b=Math.sin(u),[[v,k],[M,w]]=[h,l].map(t=>[t-t*g,t*f]),S=i+d*(o-m)+v+w+c*y,A=S+m,T=A-r*y,C=T-m,P=s+c-d*x-k+M+c*b,O=P+x,E=O-r*b,L=E-x,D=Math.min(S,A,T,C),B=Math.min(P,O,E,L),I=Math.max(S,A,T,C)-D,z=Math.max(P,O,E,L)-B;return{x:D,y:B,width:I,height:z,polygon:[[S,P],[A,O],[T,E],[C,L]]}}getStyle(t){return eC.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=eT,this.element="span"===e||"body"===e?eL(e):eS.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eN(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eO(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eY(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=ej(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eF(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=e_(t):""!==t&&(eE(i=eS.createElementNS(eT,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eJ.symbolCustomAttribs.forEach(function(i){e[i]=eV(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||eS.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eZ(eV(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];eI(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+eV(o,e.getAttribute("x"),0)+" "+eV(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eI(a)||eI(n))&&d.push("scale("+eV(a,1)+" "+eV(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,u;if(eI(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eI(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(n=o.childNodes).length-1;u>=0&&!d;u--)c=!eI(l=(h=n[u]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!a&&!u?(o.insertBefore(r,n[u]),d=!0):(e_(l)<=t||c&&(!eI(t)||t>=0))&&(o.insertBefore(r,n[u+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}eJ.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],eJ.prototype.strokeSetter=eJ.prototype.fillSetter,eJ.prototype.yGetter=eJ.prototype.xGetter,eJ.prototype.matrixSetter=eJ.prototype.rotationOriginXSetter=eJ.prototype.rotationOriginYSetter=eJ.prototype.rotationSetter=eJ.prototype.scaleXSetter=eJ.prototype.scaleYSetter=eJ.prototype.translateXSetter=eJ.prototype.translateYSetter=eJ.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eQ=eJ,{defined:e0,extend:e1,getAlignFactor:e2,isNumber:e3,merge:e5,pick:e6,removeEvent:e9}=ti;class e4 extends eQ{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=e4.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=e2(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&e3(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e5(t),e4.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eQ.prototype.css.call(this,t)}destroy(){e9(this.element,"mouseenter"),e9(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eQ.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=e6(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:e6(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&e0(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){e3(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!e3(this.widthSetting)||!e3(this.heightSetting)||this.textAlign)&&e0(e.textStr)?e.getBBox(void 0,0):e4.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(e1(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+e2(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=e3(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=e6(this.paddingLeft,t),i=e6(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}e4.emptyBBox={width:0,height:0,x:0,y:0},e4.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e8,isNumber:e7,pick:it}=ti;function ie(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=it(o.r,i),h=it(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&h0)return l;if(t+n>i-a){if(h>e+a&&he+a&&h0){let i=hs&&na&&l.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return ie(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:ii,roundedRect:is,square:ii,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:ir,SVG_NS:ia,win:ih}=L,{attr:il,extend:id,fireEvent:ic,isString:ip,objectEach:iu,pick:ig}=ti,im=(t,e)=>t.substring(0,e)+"…",ix=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=ig(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new t9(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(ir.createTextNode(this.unescapeEntities(s)));ip(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=il(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),il(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,im),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(ir.createTextNode(e),t);let s=ir.createElementNS(ia,"tspan");s.textContent="​",il(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,im)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===ih.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===ih.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),id(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),ic(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(n=a(i,g)),h=f(g,n&&n.length-1),p===u?p=u+1:h>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=n||a(e||i,g)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,im)}i&&i.splice(0,g),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return iu(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:iy}=tA,{charts:ib,deg2rad:iv,doc:ik,isFirefox:iM,isMS:iw,isWebKit:iS,noop:iA,SVG_NS:iT,symbolSizes:iC,win:iP}=L,{addEvent:iO,attr:iE,createElement:iL,crisp:iD,css:iB,defined:iI,destroyObjectProperties:iz,extend:iR,isArray:iN,isNumber:iW,isObject:iG,isString:iX,merge:iH,pick:iF,pInt:iY,replaceNested:ij,uniqueKey:iU}=ti;class iV{constructor(t,e,i,s,o,r,a){let n,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iE(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iE(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ik.createTextNode("Created with Highcharts 12.1.0")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),iM&&t.getBoundingClientRect&&((n=function(){iB(t,{left:0,top:0}),h=t.getBoundingClientRect(),iB(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=iO(iP,"resize",n))}definition(t){return new t9([t]).addToDOM(this.defs.element)}getReferenceURL(){if((iM||iS)&&ik.getElementsByTagName("base").length){if(!iI(e)){let t=iU(),i=new t9([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ik.body);iB(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ik.elementFromPoint(6,6);e="hitme"===(s&&s.id),ik.body.removeChild(i)}if(e)return ij(iP.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iR({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iz(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iH({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ix(t).buildSVG()}getContrast(t){let e=tE.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=iH(iy.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[t9.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iH(m[0],t9.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),iO(d.element,iw?"mouseover":"mouseenter",function(){3!==u&&d.setState(1)}),iO(d.element,iw?"mouseout":"mouseleave",function(){3!==u&&d.setState(u)}),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iG(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iR({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==u&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iI(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iD(i[1],e)),iI(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iD(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iN(t)?e.d=t:iG(t)&&iR(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iG(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iG(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iG(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iR(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iE(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iF(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iW(e)&&(a.x=e),iW(i)&&(a.y=i),iW(s)&&(a.width=s),iW(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iP.Image;iO(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(n=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iR(a,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&iR(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iF(r&&r.width,iC[h]&&iC[h].width),s.imgheight=iF(r&&r.height,iC[h]&&iC[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iE(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iI(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iI(s.imgwidth)&&iI(s.imgheight)?l(s):(s.attr({width:0,height:0}),iL("img",{onload:function(){let t=ib[d.chartIndex];0===this.width&&(iB(this,{position:"absolute",top:"-999em"}),ik.body.appendChild(this)),iC[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iI(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iR(iV.prototype,{Element:eQ,SVG_NS:iT,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:io,draw:iA}),eg.registerRendererType("svg",iV,!0);let{composed:i_}=L,{attr:i$,css:iZ,createElement:iq,defined:iK,extend:iJ,getAlignFactor:iQ,isNumber:i0,pInt:i1,pushUnique:i2}=ti;function i3(t,e,i){let s=this.div?.style||i.style;eQ.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i5=(t,e)=>{if(!t.div){let i=i$(t.element,"class"),s=t.css,o=iq("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=i3,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eQ.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class i6 extends eQ{static compose(t){i2(i_,this.compose)&&(t.prototype.html=function(t,e,i){return new i6(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=i1(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),i0(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),iJ(this.styles,t),iZ(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,{display:g="block",whiteSpace:f}=n;if(iZ(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n;let d=[i,h,t.innerHTML,l,this.textAlign].join(","),c=-(this.parentGroup?.padding*1)||0;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iZ(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iZ(t,{width:e>s||i||r?l+"px":"auto",display:g,whiteSpace:f||"normal"}),this.oldTextWidth=l)}d!==this.cTT&&(n=e.fontMetrics(t).b,iK(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,c,c),this.getSpanCorrection(!iK(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,n,iQ(h)));let{xCorr:m=0,yCorr:x=0}=this,y={left:`${p+m}px`,top:`${u+x}px`,textAlign:h,transformOrigin:`${(s??p)-m-p-c}px ${(o??u)-x-u-c}px`};(r||a)&&(y.transform=`scale(${r??1},${a??1})`),iZ(t,y),this.cTT=d,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){iZ(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=i5(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t9.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i9=i6.prototype;i9.visibilitySetter=i9.opacitySetter=i3,i9.ySetter=i9.rotationSetter=i9.rotationOriginXSetter=i9.rotationOriginYSetter=i9.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(l||(l={}));let i4=l,{addEvent:i8,isFunction:i7,objectEach:st,removeEvent:se}=ti;(d||(d={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},st(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(se(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i7(e)&&(t.eventOptions[i]=e,i8(t,i,e,{order:0})))})};let si=d,{deg2rad:ss}=L,{clamp:so,correctFloat:sr,defined:sa,destroyObjectProperties:sn,extend:sh,fireEvent:sl,getAlignFactor:sd,isNumber:sc,merge:sp,objectEach:su,pick:sg}=ti,sf=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,sl(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=sg(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,u=l.info,g=t.label,f,m,x,y=this.parameters.category||(o?sg(o[n],a[n],n):n);r&&sc(y)&&(y=sr(r.lin2log(y))),e.dateTime&&(u?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&u.higherRanks[n]||u.unitName])).main:sc(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:u,value:y};sl(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),eu.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),M=m&&m.list;M?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(l*ss))):(f=s-d*c,m=s+(1-d)*c,fn&&(u=n-t.x+u*d,g=-1),(u=Math.min(p,u))u||e.autoRotation&&(h.styles||{}).width)&&(x=u)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(sh({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):su(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=sg(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(sr(p)c)&&(i=0);let u=sg(i,this.label&&this.label.newOpacity,1);i=sg(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,u,t),this.isNew=!1,sl(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=sg(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,u=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,u=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=u),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,h=t.y,l=sg(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=sg(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;n&&sc(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):u=!1,l&&s%l&&(u=!1),u&&sc(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sm}=tV,{xAxis:sx,yAxis:sy}=i4,{defaultOptions:sb}=tA,{registerEventOptions:sv}=si,{deg2rad:sk}=L,{arrayMax:sM,arrayMin:sw,clamp:sS,correctFloat:sA,defined:sT,destroyObjectProperties:sC,erase:sP,error:sO,extend:sE,fireEvent:sL,getClosestDistance:sD,insertItem:sB,isArray:sI,isNumber:sz,isString:sR,merge:sN,normalizeTickInterval:sW,objectEach:sG,pick:sX,relativeLength:sH,removeEvent:sF,splat:sY,syncTimeout:sj}=ti,sU=(t,e)=>sW(e,void 0,void 0,sX(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sE(sb,{xAxis:sx,yAxis:sN(sx,sy)});class sV{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sL(this,"init",{userOptions:e}),this.opposite=sX(e.opposite,this.opposite),this.side=sX(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sL(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sX(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sI(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sT(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sX(r.crosshair,sY(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sB(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sT(this.reversed)&&(this.reversed=!0),this.labelRotation=sz(a.rotation)?a.rotation:void 0,sv(this,r),sL(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sN(e,sb[this.coll],t),sL(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sz(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sb.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sL(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sz(a)||a instanceof Date||(o=o.filter(sz),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sX(e.dataMin,a),a),e.dataMax=Math.max(sX(e.dataMax,n),n)));else{let t=i.applyExtremes();sz(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sX(e.dataMin,a),a)),sz(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sX(e.dataMax,n),n)),sT(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sL(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sz(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,u=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(u=(t=t*d+c-h)/p+n,l&&(u=a.lin2val(u))):(l&&(t=a.val2lin(t)),u=d*(t-n)*p+c+d*h+(sz(r)?p*r:0),a.isRadial||(u=sA(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sS(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sL(this,"getPlotLinePath",b,function(t){u=f=(c=sS(c=sX(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,g=m=h-c-d,sz(c)?e.horiz?(g=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),u=f=y(u,s,s+e.width)):(u=s,f=l-e.right+(i.scrollablePixelsX||0),g=m=y(g,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",u,g],["L",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=sA(Math.floor(e/t)*t),n=sA(Math.ceil(i/t)*t),h=[];if(sA(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=sA(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sX(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sz(s)&&sz(o)&&sz(r)&&s-o=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sM(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sw(l))-ot-e),t=sD([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sI(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sT(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sX(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sz(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sX(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sR(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sL(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sz(t)&&sz(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sz(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:u,floor:g,linkedTo:f,softMax:m,softMin:x}=h,y=sz(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,M=0,w,S=sz(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,A,T,C,P;if(r||e||y||this.getTickAmount(),C=sX(this.userMin,d.parse(h.min)),P=sX(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,w=y.getExtremes(),this.min=sX(w.min,w.dataMin),this.max=sX(w.max,w.dataMax),this.type!==y.type&&sO(11,!0,i)):(l&&sT(c)&&sz(s)&&sz(o)&&(o>=c?(A=c,k=0):s<=c&&(T=c,v=0)),this.min=sX(C,A,o),this.max=sX(P,T,s)),sz(this.max)&&sz(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sX(o,this.min))&&sO(10,!0,i),this.min=sA(n.log2lin(this.min),16),this.max=sA(n.log2lin(this.max),16)),this.range&&sz(o)&&(this.userMin=this.min=C=Math.max(o,this.minFromRange()||0),this.userMax=P=this.max,this.range=void 0)),sL(this,"foundExtremes"),this.adjustForMinRange(),sz(this.min)&&sz(this.max)){if(!sz(this.userMin)&&sz(x)&&xthis.max&&(this.max=P=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(M=this.max-this.min)||(!sT(C)&&k&&(this.min-=M*k),sT(P)||!v||(this.max+=M*v)),!sz(this.userMin)&&sz(g)&&(this.min=Math.max(this.min,g)),!sz(this.userMax)&&sz(u)&&(this.max=Math.min(this.max,u)),l&&sz(o)&&sz(s)){let t=c||0;!sT(C)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sT(P)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sT(h.min)?this.max=this.min:sT(h.max)&&(this.min=this.max)),M=this.max-this.min}if(this.min!==this.max&&sz(this.min)&&sz(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sX(S,this.tickAmount?M/Math.max(this.tickAmount-1,1):void 0,e?1:M*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sL(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sL(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let O=sX(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sO(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sU(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sz(this.min)&&sz(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sL(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sL(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sz(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sz(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sz(this.threshold)){let t=sS((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sT(t.tickInterval)||i||!(this.lenr.push(sA(r[r.length-1]+p)),f=()=>r.unshift(sA(r[0]-p));if(sz(n)&&(u=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(u=a-1-u)),t.hasData()&&sz(s)&&sz(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sz(u)&&sz(t.threshold)){for(;r[u]!==l||r.length!==a||r[0]>s||r[r.length-1]t.threshold?f():g();if(p>8*t.tickInterval)break;p*=2}n()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sL(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sL(this,"setExtremes",o=sE(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sH(sX(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sH(sX(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sH(sX(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sH(sX(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sA(t.lin2log(this.min)):this.min,max:t?sA(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sX(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sL(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=sA(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sA(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sz(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sk*i))))+Math.abs(i/360))g&&(g=i)}),this.maxLabelLength=g,this.autoRotation?g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sE(a,{width:`${p}px`,lineClamp:u})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sT(this.min)&&sT(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sN(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sf(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sz(s.crossing),u=e.axisOffset,g=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,M;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sX(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sG(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sT(y=d.offset)?0:sX(d.margin,i?5:10))),t.renderLine(),t.offset=f*sX(s.offset,u[o]?u[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},M=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=M,k+=f*(i?sX(c.y,t.tickRotCorr.y+f*c.distance):sX(c.x,f*c.distance))),t.axisTitleMargin=sX(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&g){let e=this.tickSize("tick");u[o]=Math.max(u[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a&&a.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[h]=Math.max(g[h],i)}sL(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?u+l:g+(n?this.width:0)+h+l,y:e?g+d-(n?this.height:0)+h:u+d};return sL(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sf(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new sf(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=a.stackLabels,g=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sm(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sG(t,function(t){t.isActive=!1})}),sz(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sz(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sf(i,-1,null,!0)),d[-1].render(-1))),g&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sQ(t=s0("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(p||(p={}));let s1=p,{erase:s2,extend:s3,isNumber:s5}=ti;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!s5(this.min)||!s5(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),s6.compose(oa,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){oi(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),u=e.borderWidth,g=e.label,{label:f,svgElem:m}=this,x=[],y,b=s7(c)&&s7(d),v=s7(p),k=!m,M={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},w=b?"bands":"lines";if(!t.chart.styledMode&&(v?(M.stroke=o||"#999999",M["stroke-width"]=or(e.width,1),e.dashStyle&&(M.dashstyle=e.dashStyle)):b&&(M.fill=o||"#e6e9ff",u&&(M.stroke=e.borderColor,M["stroke-width"]=u))),l.zIndex=a,w+="-"+a,(y=t.plotLinesAndBandsGroups[w])||(t.plotLinesAndBandsGroups[w]=y=n.g("plot-"+w).attr(l).add()),m||(this.svgElem=m=n.path().attr(M).add(y)),s7(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s7(c)&&s7(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(oo(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),g&&(s7(g.text)||s7(g.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(g=os({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},g),this.renderLabel(g,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(os({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s8(h),c=s8(l),p=s4(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:s4(l)-c}),(!n.alignValue||"left"===n.alignValue||s7(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return s7(t.formatter)?t.formatter.call(this):t.text}destroy(){oe(this.axis.plotLinesAndBands,this),delete this.axis,ot(this)}}let{animObject:on}=tV,{format:oh}=eu,{composed:ol,dateFormats:od,doc:oc,isSafari:op}=L,{distribute:ou}=eb,{addEvent:og,clamp:of,css:om,discardElement:ox,extend:oy,fireEvent:ob,isArray:ov,isNumber:ok,isObject:oM,isString:ow,merge:oS,pick:oA,pushUnique:oT,splat:oC,syncTimeout:oP}=ti;class oO{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||oC(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),ox(this.container)),ti.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=oC(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+oA(t.colorIndex,o.colorIndex),r&&r.className].filter(ow).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=eg.getRendererType();this.container=a=L.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),om(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&L.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=oc,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,u={},g=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v("y"),M=v("x"),w,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let A=!this.followPointer&&oA(i.ttBelow,!d&&!n===S),T=function(t,e,i,o,a,n,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+g)}},C=function(t,e,i,o,r){if(re-s)return!1;re-o/2?u[t]=e-o-2:u[t]=r-i/2},P=function(t){[k,M]=[M,k],w=t},O=()=>{!1!==T.apply(0,k)?!1!==C.apply(0,M)||w||(P(!0),O()):w?u.x=u.y=0:(P(!0),O())};return(n&&!d||this.len>1)&&P(),O(),u}hide(t){let e=this;ti.clearTimeout(this.hideTimer),t=oA(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oP(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=oA(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=on(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=oC(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;ti.clearTimeout(this.hideTimer),this.allowShared=!(!ov(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let f=ow(h)?oh(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=oA(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:of(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ob(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{positioner:g},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?oc.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,k=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:M,top:w}=f.getChartPosition(),S=h+x,A=0,T=a-l;function C(t,e,s,o,r=!0){let a,n;return s?(a=k?0:T,n=of(t-o/2,y.left,y.right-o-(i.outside?M:0))):(a=e-S,n=of(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}ow(t)&&(t=[!1,t]);let P=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:u.padding,r:u.borderRadius};c||(t.fill=u.backgroundColor,t["stroke-width"]=u.borderWidth??1),o=v.label("",0,0,u[r?"headerShape":"shape"],void 0,void 0,u.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(u.style).attr({stroke:u.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(A=m.height,T+=A,k&&(S-=A));let{anchorX:M,anchorY:w}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+of(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=of(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof w){let e=m.height+1,s=g?g.call(i,x,e,r):C(M,w,l,x);t.push({align:g?0:void 0,anchorX:M,anchorY:w,boxWidth:x,point:r,rank:oA(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!g&&P.some(t=>{let{outside:e}=i,s=(e?M:0)+t.anchorX;return ss})&&(P=P.map(t=>{let{x:e,y:i}=C(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return oy(t,{target:i,x:e})})),i.cleanSplit(),ou(P,T);let O={left:M,right:M};P.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&M+eO.right&&(O.right=M+e))}),P.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(O.right-O.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:E,outside:L,renderer:D}=i;if(L&&E&&D){let{width:t,height:e,x:i,y:s}=b.getBBox();D.setSize(t+i,e+s,!1),E.style.left=O.left+"px",E.style.top=w+"px"}op&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return ob(this,"headerFormatter",a,function(e){if(r&&!n&&ok(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(oM(n)){let t=n;od[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=oh(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,oS(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),u=(o.positioner||this.getPosition).call(this,h,n,t),g=L.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(u.x+=l-s,u.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(of(h+x,0,g.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(om(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-u.x,m+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),f,m)}}!function(t){t.compose=function(e){oT(ol,"Core.Tooltip")&&og(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(oO||(oO={}));let oE=oO,{animObject:oL}=tV,{defaultOptions:oD}=tA,{format:oB}=eu,{addEvent:oI,crisp:oz,erase:oR,extend:oN,fireEvent:oW,getNestedProperty:oG,isArray:oX,isFunction:oH,isNumber:oF,isObject:oY,merge:oj,pick:oU,syncTimeout:oV,removeEvent:o_,uniqueKey:o$}=ti;class oZ{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oN({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oN(this,t=oZ.prototype.optionsToObject.call(this,t)),this.options=this.options?oN(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oZ.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oF(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oF(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=oL(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(o_(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oR(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oV(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oW(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oG(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=o$()),this.resolveColor(),t.chart.pointCount++,oW(this,"afterInit")}isValid(){return(oF(this.x)||this.x instanceof Date)&&oF(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(oF(t)||null===t)r[s[0]]=t;else if(oX(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);h0?oZ.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oF(i)&&oF(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oU(this.options.colorIndex,a),this.color=oU(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oY(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oB(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oY(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oY(l.data[o],!0)||oY(t,!0)?r.options:oU(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oU(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oU(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oj(this.series.options.point,this.options),i=e.events?.[t];oH(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oI(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(o_(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oD.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,u,g,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(u=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){g=i.pointAttribs(this,t),f=oU(d.options.chart.animation,o.animation);let e=g.opacity;i.options.inactiveOtherPoints&&oF(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(g,f)}u&&this.graphic.animate(u,oU(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),u&&(m?m[e?"animate":"attr"]({x:u.x,y:u.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,u.x,u.y,u.width,u.height,oj(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oU(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oN({fill:this.color||i.color,"fill-opacity":y.opacity},t9.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oW(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oz(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oq=oZ,{parse:oK}=tE,{charts:oJ,composed:oQ,isTouchDevice:o0}=L,{addEvent:o1,attr:o2,css:o3,extend:o5,find:o6,fireEvent:o9,isNumber:o4,isObject:o8,objectEach:o7,offset:rt,pick:re,pushUnique:ri,splat:rs}=ti;class ro{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!L.chartCount&&(ro.unbindDocumentMouseUp.forEach(t=>t.unbind()),ro.unbindDocumentMouseUp.length=0,ro.unbindDocumentTouchEnd&&(ro.unbindDocumentTouchEnd=ro.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),o7(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o9(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(s=t-n,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+n),a&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o8(o)?o.enabled:o,p=r&&t[`${r}Key`],u=t.chartX,g=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(un+l&&(u=n+l),gh+d&&(g=h+d),this.hasDragged=Math.sqrt(Math.pow(i-u,2)+Math.pow(s-g,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(u,g);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oK("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o9(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}o4(i.index)&&(this.selectionMarker=s.destroy())}i&&o4(i.index)&&(o3(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o8(r,!0)&&r.series&&(!o8(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&o4(o.x)&&o4(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=rt(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&re(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o9(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=o6(t.points,function(t){return t.x===c.x&&!t.isNull});o8(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),o9(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=o2(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o9(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):re(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o5(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o9(i.series,"click",o5(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(o5(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o9(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),L.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oJ[re(ro.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oJ[re(ro.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&re(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o9(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&rs(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&rs(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n&&n.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,u=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(u?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=o1(s.container.ownerDocument,"mousemove",t=>oJ[ro.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=re((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=o6(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(o1(t,"mouseenter",this.onContainerMouseEnter.bind(this)),o1(t,"mouseleave",this.onContainerMouseLeave.bind(this))),ro.unbindDocumentMouseUp.some(t=>t.doc===e)||ro.unbindDocumentMouseUp.push({doc:e,unbind:o1(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(o1(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(o1(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),o1(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),ro.unbindDocumentTouchEnd||(ro.unbindDocumentTouchEnd=o1(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),o1(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!o0)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=re(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(o1(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),o1(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||o3(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||o3(i,{"touch-action":re(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=L.charts[re(ro.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(ro.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),re(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=re(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}ro.unbindDocumentMouseUp=[],function(t){t.compose=function(e){ri(oQ,"Core.Pointer")&&o1(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(ro||(ro={}));let rr=ro,{fireEvent:ra,isArray:rn,objectEach:rh,uniqueKey:rl}=ti,rd=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||rl(),this.modified=this,this.rowCount=0,this.versionTag=rl();let e=0;rh(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rh(this.columns,e=>{rn(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rh(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ra(this,"afterSetColumns"),this.versionTag=rl())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rh(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(ra(this,"afterSetRows"),this.versionTag=rl())}},{extend:rc,merge:rp,pick:ru}=ti;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,u=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),g={},f,m=r.marker,x=0;if(o.styledMode||(g["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?g.dashstyle=r.dashStyle:"square"===r.linecap||(g["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(g).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),g["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,u],["L",n-x,u]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(ru(m.radius,d),d);0===l.indexOf("url")&&(m=rp(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,u-t,2*t,2*t,rc({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,ru(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(g||(g={}));let rg=g,{defaultOptions:rf}=tA,{extend:rm,extendClass:rx,merge:ry}=ti;!function(t){function e(e,i){let s=rf.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oq),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=L.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rf.plotOptions||{};if(s=s||"",n[i]=ry(n[s],o),delete t.seriesTypes[i],e(i,rx(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oq{}rm(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(f||(f={}));let rb=f,{animObject:rv,setAnimation:rk}=tV,{defaultOptions:rM}=tA,{registerEventOptions:rw}=si,{svg:rS,win:rA}=L,{seriesTypes:rT}=rb,{arrayMax:rC,arrayMin:rP,clamp:rO,correctFloat:rE,crisp:rL,defined:rD,destroyObjectProperties:rB,diffObjects:rI,erase:rz,error:rR,extend:rN,find:rW,fireEvent:rG,getClosestDistance:rX,getNestedProperty:rH,insertItem:rF,isArray:rY,isNumber:rj,isString:rU,merge:rV,objectEach:r_,pick:r$,removeEvent:rZ,syncTimeout:rq}=ti;class rK{constructor(){this.zoneAxis="y"}init(t,e){let i;rG(this,"init",{options:e}),this.dataTable??(this.dataTable=new rd);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rN(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rw(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=r$(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rF(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rG(this,"afterInit")}is(t){return rT[t]&&this instanceof rT[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rG(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(r$(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rF(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rR(18,!0,s)})}),rG(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=r$(this.pointInterval,i.pointInterval,1),o&&rj(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rj(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rN(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rD(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rV(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rG(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rM.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=n.userOptions;let u=rV(h,s.series,p,r);this.tooltipOptions=rV(rM.tooltip,rM.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=r$(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===h.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map(t=>({...t}));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},a||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&rD(g[g.length-1].value)&&g.push(a?{}:{color:this.color,fillColor:this.fillColor}),rG(this,"afterSetOptions",{options:u}),u}getName(){return r$(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rD(o=r$("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rM.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oq&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rW(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rj(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rj(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rD(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rj(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,a&&(c=l+1)):o[l]&&(o[l].touched=!0),(!n||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=rC(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),u=this.pointValKey||"y",g=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rV(!0,t));let k=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(rY(t)&&(f||rj(t[0])));if(rj(i)&&rj(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[u]:i})}else if(o(i)&&o(s)){if(g){let e=i.length===g?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=g;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[u]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rH(i,t),o=rH(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,u,g,f,m=e.getColumn("x"),x=i,y=!1;return r&&(g=(u=r.getExtremes()).min,f=u.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]f?x=new rd:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,g,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rX([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rR(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rG(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a=e){h=Math.max(0,a-1);break}for(n=a;ni){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rd({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],u=this.dataColumnKeys(),g,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,u=o||this.cropped||!i,g,f,m,x=0,y=0;for(i&&(x=(g=i.getExtremes()).min,y=g.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rj(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rP(d),dataMax:rC(d)};return rG(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),r_(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rG(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||"markerGroup"],g=this.xAxis,f=r$(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=r$(o.radius,s&&s.radius);e&&(n=s.states[e],l=r$((h=o.states&&o.states[e])&&h.radius,n&&n.radius,l&&l+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rj(l)&&d&&(i.crisp&&(d[0]=rL(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,u=r$(o.lineWidth,i.lineWidth),g=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},u=r$((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,u+r$(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":u,fill:c,opacity:g=r$(l.opacity,h.opacity,g)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(rA.navigator.userAgent),n=o.data||[];for(rG(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rz(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rB(t,void 0,!0);ti.clearTimeout(o.animationTimeout),r_(o,function(t,e){t instanceof eQ&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rz(r.series,o),r.orderItems("series"),r_(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rO(d.toPixels(r$(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,u=0,f=r.len,y=a.len;c?(p=o,f=x):(u=o,y=x);let b=[["M",p,u],["L",f,u],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(g(v),t&&g(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rD(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rD(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rZ(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rv(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rG(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rq(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rG(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rq(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,h=e?"distX":"dist",l=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>[(t[i]||0)<(e[i]||0)?t:e,!1]),p=o||((t,e)=>t=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(rS?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rG(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,u=n.data,g=this.getColumn("x");e=r$(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=g.length,this.requireSorting&&mm;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),u?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,u,...Object.values(d.getColumns())].filter(rD).forEach(t=>{t.shift()}),d.rowCount-=1,rG(d,"afterDeleteRows"))),!1!==o&&rG(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rD).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rG(n,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rk(i,o),e=r$(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),r$(t,!0)&&r.redraw(e)}!1!==i?rG(o,"remove",null,a):a()}update(t,e){rG(this,"update",{options:t=rI(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rT[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],u=t.type||o.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));u=u||r,g?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rN(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rV(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!g&&{data:i.options.data},t,h),g&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rT[u]){if(f=u!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rT[u].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rN(i,rT[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rR(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rG(this,"afterUpdate"),r$(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=r$(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rD(r)?i!==o:i!==r$(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rG(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rG(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=r$(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=r$(a[t].opacity,l)),o&&!o.dashstyle&&rj(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rG(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rG(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){rg[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rK.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rK.types=rb.seriesTypes,rK.registerType=rb.registerSeriesType,rN(rK.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oq,requireSorting:!0,sorted:!0}),rb.series=rK;let rJ=rK,{animObject:rQ,setAnimation:r0}=tV,{registerEventOptions:r1}=si,{composed:r2,marginNames:r3}=L,{distribute:r5}=eb,{format:r6}=eu,{addEvent:r9,createElement:r4,css:r8,defined:r7,discardElement:at,find:ae,fireEvent:ai,isNumber:as,merge:ao,pick:ar,pushUnique:aa,relativeLength:an,stableSort:ah,syncTimeout:al}=ti;class ad{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),r1(this,e),r9(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r9(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=ar(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=ao(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=ar(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(ao(!0,this.options,t)),"events"in this.options&&r1(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,ar(e,!0)&&i.redraw(),ai(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof rJ||t instanceof oq)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(ao(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,ai(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[r7(e.translateY)?"animate":"attr"](o,void 0,()=>{ai(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&at(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,r8(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?ar(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&ar(i.showInLegend,!r7(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),ai(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!r7(t[a])&&(i[r3[a]]=Math.max(i[r3[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+ar(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=ae(a?t.points:t.points.slice(0).reverse(),function(t){return as(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),r5(i,e.plotHeight)))t=o.item.legendItem||{},as(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=an(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),ah(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),ai(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=ao(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(ao(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=ar(l.animation,!0),c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){"number"==typeof t?k.attr({height:t}):k&&(e.clipRect=k.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,k=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-n,0),this.currentPage=ar(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((u[e-1].legendItem||{}).pageIx=o-1),e===u.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),k||(k=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(k)),g(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&r0(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),al(()=>{ai(this,"afterScroll",{currentPage:l})},rQ(ar(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oq,n=t instanceof rJ,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(ao(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),ai(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&ai(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=r4("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r9(t.checkbox,"click",function(e){let i=e.target;ai(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){aa(r2,"Core.Legend")&&r9(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(ad||(ad={}));let ac=ad,{animate:ap,animObject:au,setAnimation:ag}=tV,{defaultOptions:af}=tA,{numberFormat:am}=eu,{registerEventOptions:ax}=si,{charts:ay,doc:ab,marginNames:av,svg:ak,win:aM}=L,{seriesTypes:aw}=rb,{addEvent:aS,attr:aA,createElement:aT,css:aC,defined:aP,diffObjects:aO,discardElement:aE,erase:aL,error:aD,extend:aB,find:aI,fireEvent:az,getAlignFactor:aR,getStyle:aN,isArray:aW,isNumber:aG,isObject:aX,isString:aH,merge:aF,objectEach:aY,pick:aj,pInt:aU,relativeLength:aV,removeEvent:a_,splat:a$,syncTimeout:aZ,uniqueKey:aq}=ti;class aK{static chart(t,e,i){return new aK(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aH(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aj(t.zoomType,e.type),key:aj(t.zoomKey,e.key),pinchType:aj(t.pinchType,e.pinchType),singleTouch:aj(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aF(e.resetButton,t.resetZoomButton)}}init(t,e){az(this,"init",{args:arguments},function(){let i=aF(af,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=aB({},t),(this.renderTo=aH(o)?ab.getElementById(o):o)||aD(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tb(aB(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||am).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ay.length,ay.push(this),L.chartCount++,ax(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),az(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=aw[i];s||aD(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=a$(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?a$(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+u:a+u;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return az(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){az(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),ag(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),u=!0):r&&(r.labelFormatter||r.labelFormat)&&(u=!0)),t.isDirtyData&&az(t,"updatedData")}),u&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){az(t,"afterSetExtremes",aB(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),az(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),az(this,"redraw"),az(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aI(this.axes,i)||aI(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aj(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aF(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(aB("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aF(o),n=i?.textPxLength||0;if(i&&r){az(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(a.width/n,1),f=Math.max(p,g),m=aF({y:"bottom"===d?h:u+h},{align:"title"===t?gp?this.chartWidth:a.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${a.x+n*f*aR(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,az(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:aN(this.renderTo,"width",!0)||0,height:aN(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,aV(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(aC(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(ab.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(ab.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,ab.body.appendChild(e)),("none"===aN(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),aC(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==ab.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=aq(),r=this.renderTo,a=aU(aA(r,s));aG(a)&&ay[a]&&ay[a].hasRendered&&ay[a].destroy(),aA(r,s,this.index),r.innerHTML=t9.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;aC(r,{overflow:"hidden"}),this.styledMode||(t=aB({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=aT("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||aC(l,{width:aj(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!ak?eg.getRendererType(i.renderer):iV;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),ag(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,az(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!aP(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!aP(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),az(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),av.forEach(function(i,o){aP(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return aO(this.userOptions,af)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(ti.clearTimeout(e.reflowTimeout),e.reflowTimeout=aZ(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=aS(aM,"resize",e);aS(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ag(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?ap:aC)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,az(s,"resize"),setTimeout(()=>{s&&az(s,"endResize")},au(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),az(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){az(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=aX(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aj(e[i+s],o[r])})}),av.forEach(function(e,i){t[e]=aj(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,M="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),M="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),k={fill:a||"none"},(b||m["stroke-width"])&&(k.stroke=t.borderColor,k["stroke-width"]=b),m.attr(k).shadow(t.shadow)),m[M]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),M="animate",x||(M="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[M](u),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(u)):this.plotBGImage=e.image(h,l,d,c,p).add())),g?g.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),M="animate",y||(M="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[M](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,az(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=aw[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=aw[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aH(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aj(t.options.visible,s.options.visible,t.visible))}}),az(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),az(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sf(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aj(i.reserveSpace,!aG(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aF(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(aM.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(az(e,"destroy"),e.renderer.forExport?aL(ay,e):ay[e.index]=void 0,L.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),a_(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=t9.emptyHTML,a_(o),r&&aE(o)),aY(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aW(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),az(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),az(this,"load"),az(this,"render"),aP(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),az(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),aC(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:u,minPointOffset:g=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=aj(a[x],t.len),v=aj(s[x],t.len),k=10>Math.abs(b)?1:b/v,M=(s[y]||0)+v/2-t.pos,w=M-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(M<0||M>t.len))continue;let A=t.toValue(w,!0)+(r||t.isOrdinal?0:g*S),T=t.toValue(w+u/k,!0)-(r||t.isOrdinal?0:g*S||0),C=t.allExtremes;if(A>T&&([A,T]=[T,A]),1===k&&!o&&"yAxis"===t.coll&&!C){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);C??(C={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aG(t.dataMin)&&aG(t.dataMax)&&(C.dataMin=Math.min(t.dataMin,C.dataMin),C.dataMax=Math.max(t.dataMax,C.dataMax))}t.allExtremes=C}let{dataMin:P,dataMax:O,min:E,max:L}=aB(t.getExtremes(),C||{}),D=l.parse(f.min),B=l.parse(f.max),I=P??D,z=O??B,R=T-A,N=t.categories?0:Math.min(R,z-I),W=I-N*(aP(D)?0:f.minPadding),G=z+N*(aP(B)?0:f.maxPadding),X=t.allowZoomOutside||1===k||"zoom"!==n&&k>1,H=Math.min(D??W,W,X?E:W),F=Math.max(B??G,G,X?L:G);(!t.isOrdinal||t.options.overscroll||1!==k||o)&&(A=1&&(T=A+R)),T>F&&(T=F,k>=1&&(A=T-R)),(o||t.series.length&&(A!==E||T!==L)&&A>=H&&T<=F)&&(r?r[t.coll].push({axis:t,min:A,max:T}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:A,o?void 0:T,!1,!1,{move:w,trigger:n,scale:k}),!o&&(A>H||T{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}aB(aK.prototype,{callbacks:[],collectionsWithInit:{xAxis:[aK.prototype.addAxis,[!0]],yAxis:[aK.prototype.addAxis,[!1]],series:[aK.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let aJ=aK,{stop:aQ}=tV,{composed:a0}=L,{addEvent:a1,createElement:a2,css:a3,defined:a5,erase:a6,merge:a9,pushUnique:a4}=ti;function a8(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new nt(this)),t?.applyFixed()}function a7(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class nt{static compose(t,e,i){a4(a0,this.compose)&&(a1(t,"afterInit",a7),a1(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),a1(e,"render",a8),a1(i,"show",a7))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=a9(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),a5(s)&&(t.scrollablePlotBox=a9(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),a5(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=eg.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=a2("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=a2("div",{className:"highcharts-scrolling"},a,n),l=this.innerContainer=a2("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=a2("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),a3(t.renderTo,{overflow:"visible"}),a1(t,"afterShowResetZoom",r),a1(t,"afterApplyDrilldown",r),a1(t,"afterLayOutTitles",r),a1(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+u;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),aQ(t.container),a3(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),a3(s,{width:`${r}px`,height:`${a}px`}),a5(i)||(s.scrollLeft=p*g,s.scrollTop=u*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,M=l+c-p,w=d+h-u,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",M,y],["L",r,y],["L",r,v],["L",M,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,w],["L",b,a],["L",k,a],["L",k,w],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=nt.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a4(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a6(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}nt.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:ne}=eu,{series:ni}=rb,{destroyObjectProperties:ns,fireEvent:no,getAlignFactor:nr,isNumber:na,pick:nn}=ti,nh=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){ns(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?ne(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:nn(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,no(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===nn(l.overflow,"justify"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&ni.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*nr(l.textAlign||"center"),rotationOriginY:t.height/2}),nn(!i&&l.crop,!0)&&(s=na(h.x)&&na(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}no(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*nr(i)-1),y:t.height/2*2*(1-nr(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:nn(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=nn(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||na(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(g?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:nl}=tV,{series:{prototype:nd}}=rb,{addEvent:nc,correctFloat:np,defined:nu,destroyObjectProperties:ng,fireEvent:nf,isNumber:nm,objectEach:nx,pick:ny}=ti;function nb(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,ny(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function nv(){let t=this.stacking;if(t){let e=t.stacks;nx(e,(t,i)=>{ng(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nk(){this.stacking||(this.stacking=new nC(this))}function nM(t,e,i,s){return!nu(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function nw(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function nS(t,e,i){let s=e.total?100/e.total:0;t[0]=np(t[0]*s),t[1]=np(t[1]*s),this.stackedYData[i]=t[1]}function nA(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?nd.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nT(t,e){let i,s,o,r,a,n,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,f=g.threshold||0,m=g.startFromThreshold?f:0,x=g.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,k=t.stacking,M=k.stacks,w=k.oldStacks;for(k.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&M[r]?.[e]?(r=M[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):np(S+Math.abs(g))):"group"===l?nm(u)&&S++:S=np(S+g),"group"===l?o.cumulative=(S||1)-1:o.cumulative=np(ny(o.cumulative,m)+g),o.total=S,null!==u&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class nC{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{nx(t,t=>{t.cumulative=t.total})}))}resetStacks(){nx(this.stacks,t=>{nx(t,(e,i)=>{nm(e.touched)&&e.touched{nx(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(m||(m={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(nc(t,"init",nk),nc(t,"destroy",nv),s.getStacks=nb,o.getStackIndicator=nM,o.modifyStacks=nw,o.percentStacker=nS,o.setGroupedPoints=nA,o.setStackedPoints=nT)};let nP=m,{defined:nO,merge:nE,isObject:nL}=ti;class nD extends rJ{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nE({filterUnits:"userSpaceOnUse"},nL(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,u=l.plotY,g=t[d-1],f=l.isNull||"number"!=typeof u;(l.leftCliff||g&&g.rightCliff)&&!i&&(n=!0),f&&!nO(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",g.plotX,u]]:2===h?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nD.defaultOptions=nE(rJ.defaultOptions,{legendSymbol:"lineMarker"}),rb.registerSeriesType("line",nD);let{seriesTypes:{line:nB}}=rb,{extend:nI,merge:nz,objectEach:nR,pick:nN}=ti;class nW extends nB{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nB.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(n.getThreshold(r.threshold)),g=nN(r.connectNulls,"percent"===a),f=function(i,s,o){let r=t[i],g=a&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?g[0]:g[1])+m,y=g[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?u:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?u:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,u){let g=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[u+i]],g=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),a=2*h-o):op&&a>h?(a=Math.max(p,h),o=2*h-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n4(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&n3(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(n0(s)){if(n5(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=n9(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,h=n9(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),rJ.prototype.translate.apply(t),t.points.forEach(function(s){let o=n9(s.yBottom,g),m=999+Math.abs(o),x=s.plotX||0,y=nJ(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,M=d,w=x+c,S=f;h&&Math.abs(k)h?o-h:g-(b?h:0)),n0(s.options.pointWidth)&&(w-=Math.round(((M=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(w=t.adjustForMissingColumns(w,M,s,l)),s.barX=w,s.pointWidth=M,s.tooltipPos=e.inverted?[nJ(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-w-S/2,k]:[r.left-e.plotLeft+w+S/2,nJ(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(w,s.isNull?g:v,S,s.isNull?0:k)}),n2(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,u=n9(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=n6(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&nq(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,u=n9(a.opacity,u));let g={fill:l,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=hi(h)&&hi(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===hd(i.overflow,a?"none":"justify"),u=this.visible&&!1!==t.visible&&hi(h)&&(t.series.forceDL||a&&!p||c||hd(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=hs({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),hs(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(hh(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=hr(i.align)*(l.width-h.width),e.alignAttr.y+=hr(i.verticalAlign)*(l.height-h.height),e.attr({"text-align":e.alignAttr["text-align"]||"center"})[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(hd(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&a&&(e.placed=!1),u||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(hn(l)&&l||hn(a)&&a||"#000000"),c=h(i),{animation:p,defer:u}=c[0],g=u?ht(s,p,i):{defer:0,duration:0};ho(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach(t=>{let a=t.dataLabels||[];hp(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let l=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:u,style:g={}}=n,f,m,x,y={},b=a[h],v=!b,k;l&&(m=hi(f=hd(n[t.formatPrefix+"Format"],n.format))?he(f,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(g.color=hd(n.color,g.color,hn(i.color)?i.color:void 0,"#000000"),"contrast"===g.color?("none"!==c&&(k=c),t.contrastColor=r.getContrast("auto"!==k&&k||t.color||i.color),g.color=k||!hi(u)&&n.inside||0>hc(u||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(g.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),hl(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&hi(m)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),l&&hi(m)&&(b?y.text=m:(b=r.label(m,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?g.width&&b.css({width:g.width,textOverflow:g.textOverflow,whiteSpace:g.whiteSpace}):b.css(g).shadow(n.shadow),ho(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[h]&&a[h]!==b&&a[h].destroy(),a[h]=b))});let h=a.length;for(;h--;)a[h]&&a[h].isActive?a[h].isActive=!1:(a[h]?.destroy(),a.splice(h,1));t.dataLabel=a[0],t.dataLabels=a})),ho(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,u=p?p.top-a.plotTop:0,{x:g=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===n&&g>=0?(e.align="left",e.inside=!0):g-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&("left"===n&&g<=0?(e.align="right",e.inside=!0):g+=a.plotWidth-m,x=!0),(m=i.y+l+u)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+u)>a.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=g,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(ha(t)&&!ha(e))i=t.map(function(t){return hh(t,e)});else if(ha(e)&&!ha(t))i=e.map(function(e){return hh(t,e)});else if(ha(t)||ha(e)){if(ha(t)&&ha(e))for(s=Math.max(t.length,e.length);s--;)i[s]=hh(t[s],e[s])}else i=hh(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return hp(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=l,n.hasDataLabels=e)}}(x||(x={}));let hu=x,{composed:hg}=L,{series:hf}=rb,{merge:hm,pick:hx,pushUnique:hy}=ti;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,h=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=hx(t.below,t.plotY>hx(this.translatedThreshold,h)),c=hx(i.inside,!!this.options.stacking);if(l){if(s=hm(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),hT(hP.prototype,{drawTracker:hw.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hA(hP,"afterTranslate",function(){this.applyJitter()}),rb.registerSeriesType("scatter",hP);let{deg2rad:hO}=L,{fireEvent:hE,isNumber:hL,pick:hD,relativeLength:hB}=ti;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let u=[hD(r?.[0],"50%"),hD(r?.[1],"50%"),hD(l&&l<0?void 0:t.size,"100%"),hD(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rJ||(u[3]=0),c=0;c<4;++c)p=u[c],h=c<2||2===c&&/%$/.test(p),u[c]=hB(p,[s,o,a,u[2]][c])+(h?i:0);return u[3]>u[2]&&(u[3]=u[2]),hL(n)&&2*n0&&(u[3]=u[2]-2*n),hE(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=hL(t)?t:0,s=hL(e)&&e>i&&e-i<360?e:i+360;return{start:hO*(i+-90),end:hO*(s+-90)}}}(b||(b={}));let hI=b,{setAnimation:hz}=tV,{addEvent:hR,defined:hN,extend:hW,isNumber:hG,pick:hX,relativeLength:hH}=ti;class hF extends oq{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hR(this,"select",s),hR(this,"unselect",s)}isValid(){return hG(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hz(i,s.chart),e=hX(e,!0),this.sliced=this.options.sliced=t=hN(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hW(hF.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,u="left"===t.alignment,{x:g,y:f}=t,m=o.x;if(i.crookDistance){let t=hH(i.crookDistance,1);m=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",g,f]];return(u?m<=g&&m>=o.x:m>=g&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hY}=hI,{noop:hj}=L,{clamp:hU,extend:hV,fireEvent:h_,merge:h$,pick:hZ}=ti;class hq extends rJ{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hZ(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:io.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(hU((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||h$(!0,n,i),h$(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){h_(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hY(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,u,g,f,m=0;for(t||(this.center=t=this.getCenter()),g=0;g1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,u=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*u],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}h_(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hq.defaultOptions=h$(rJ.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hV(hq.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:n7.prototype.drawTracker,getCenter:hI.getCenter,getSymbol:hj,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:n7.prototype.pointAttribs,pointClass:hF,requireSorting:!1,searchPoint:hj,trackerGroups:["group","dataLabelsGroup"]}),rb.registerSeriesType("pie",hq);let{composed:hK,noop:hJ}=L,{distribute:hQ}=eb,{series:h0}=rb,{arrayMax:h1,clamp:h2,defined:h3,pick:h5,pushUnique:h6,relativeLength:h9}=ti;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,u=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,u,g,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),h0.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=h9(o?.distance||0,s);0===i&&d[t.half].push(t),!h3(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,u=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},u.push(t.distributeBox))})}),hQ(u,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,M=0,w=y,S="inherit";if(x){if(u&&h3(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,w=p.radialDistributionY(i,l))),d.justify)M=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":M=p.alignToConnectors(e,a,s,r);break;case"plotEdges":M=p.alignToPlotEdges(l,a,s,r);break;default:M=p.radialDistributionX(t,i,w-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:M+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:w+(d.y||0)-v/2},x.computed.x=M,x.computed.y=w-k,h5(d.crop,!0)){let t;M-(g=l.getBBox().width)s-b&&0===a&&(t=Math.round(M+g-s+b),c[1]=Math.max(t,c[1])),w-f/2<0?c[0]=Math.max(Math.round(-w+f/2),c[0]):w+f/2>o&&(c[2]=Math.max(Math.round(w+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===h1(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;u=s.connector,a&&a.distance>0?(n=!u,u||(s.connector=u=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||u.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),u[n?"attr":"animate"]({d:e.getConnectorPath(s)}),u.attr({visibility:a.attribs?.visibility})):u&&(s.connector=u.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=h2(r,o,e[2]-Math.max(t[0],t[2])):(r=h2(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(k||(k={}));let{pointInPolygon:h8}=k,{addEvent:h7,fireEvent:lt,objectEach:le,pick:li}=ti;function ls(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(h8({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{le(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=li(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,lo(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let la={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=ls,h7(t,"render",lr))}},{defaultOptions:ln}=tA,{noop:lh}=L,{addEvent:ll,extend:ld,isObject:lc,merge:lp,relativeLength:lu}=ti,lg={radius:0,scope:"stack",where:void 0},lf=lh,lm=lh;function lx(t,e,i,s,o={}){let r=lf(t,e,i,s,o),{innerR:a=0,r:n=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(lu(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*a),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,u=n?a-i:a+i,g=u?Math.asin(i/u):0,f=n?g:-g,m=Math.cos(g)*u;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?u:p);return r}function ly(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=ln.plotOptions?.[this.type]?.borderRadius,o=lb(t.borderRadius,lc(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(lu(o.radius,n),n/2,"all"===u?h/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),ld(a,{brBoxHeight:c,brBoxY:d,r:g})}}}}function lb(t,e){return lc(t)||(t={radius:t||0}),lp(lg,e,t)}function lv(){let t=lb(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=lu(t.radius,(i.r||0)-(i.innerR||0)))}}function lk(t,e,i,s,o={}){let r=lm(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,u=Math.max(c&&l,0),g=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],M=[t,e+c],w=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=w(c,c-u);f[0]-=t,m[0]+=t,x[1]=M[1]=e+c-u}if(s=lT(i.minWidth,0)&&this.chartHeight>=lT(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lC()),this.matchResponsiveRule(t,o)},this);let a=lA(...o.map(t=>lS((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lM(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lw(s,{matchResponsiveRule:e,setResponsive:i}),t}}(M||(M={}));let lP=M;L.AST=t9,L.Axis=sV,L.Chart=aJ,L.Color=tE,L.DataLabel=hu,L.DataTableCore=rd,L.Fx=tz,L.HTMLElement=i6,L.Legend=ac,L.LegendSymbol=rg,L.OverlappingDataLabels=L.OverlappingDataLabels||la,L.PlotLineOrBand=oa,L.Point=oq,L.Pointer=rr,L.RendererRegistry=eg,L.Series=rJ,L.SeriesRegistry=rb,L.StackItem=nh,L.SVGElement=eQ,L.SVGRenderer=iV,L.Templating=eu,L.Tick=sf,L.Time=tb,L.Tooltip=oE,L.animate=tV.animate,L.animObject=tV.animObject,L.chart=aJ.chart,L.color=tE.parse,L.dateFormat=eu.dateFormat,L.defaultOptions=tA.defaultOptions,L.distribute=eb.distribute,L.format=eu.format,L.getDeferredAnimation=tV.getDeferredAnimation,L.getOptions=tA.getOptions,L.numberFormat=eu.numberFormat,L.seriesType=rb.seriesType,L.setAnimation=tV.setAnimation,L.setOptions=tA.setOptions,L.stop=tV.stop,L.time=tA.defaultTime,L.timers=tz.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;ll(t,"afterColumnTranslate",ly,{order:9}),ll(s,"afterTranslate",lv),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),lf=o.arc,lm=o.roundedRect,o.arc=lx,o.roundedRect=lk}},optionsToObject:lb}).compose(L.Series,L.SVGElement,L.SVGRenderer),hb.compose(L.Series.types.column),hu.compose(L.Series),sK.compose(L.Axis),i6.compose(L.SVGRenderer),ac.compose(L.Chart),s1.compose(L.Axis),la.compose(L.Chart),h4.compose(L.Series.types.pie),oa.compose(L.Chart,L.Axis),rr.compose(L.Chart),lP.compose(L.Chart),nt.compose(L.Axis,L.Chart,L.Series),nP.compose(L.Axis,L.Chart,L.Series),oE.compose(L.Pointer),ti.extend(L,ti);let{tooltipFormatter:lO}=oq.prototype,{addEvent:lE,arrayMax:lL,arrayMin:lD,correctFloat:lB,defined:lI,isArray:lz,isNumber:lR,isString:lN,pick:lW}=ti;!function(t){function e(t,e,i){!this.isXAxis&&(this.series.forEach(function(i){"compare"===t&&"boolean"!=typeof e?i.setCompare(e,!1):"cumulative"!==t||lN(e)||i.setCumulative(e,!1)}),lW(i,!0)&&this.chart.redraw())}function i(t){let e=this,{numberFormatter:i}=e.series.chart,s=function(s){t=t.replace("{point."+s+"}",(e[s]>0&&"change"===s?"+":"")+i(e[s],lW(e.series.tooltipOptions.changeDecimals,2)))};return lI(e.change)&&s("change"),lI(e.cumulativeSum)&&s("cumulativeSum"),lO.apply(this,[t])}function s(){let t;let e=this.options.compare;("percent"===e||"value"===e||this.options.cumulative)&&(t=new d(this),"percent"===e||"value"===e?t.initCompare(e):t.initCumulative()),this.dataModify=t}function o(t){let e=t.dataExtremes,i=e.activeYData;if(this.dataModify&&e){let t;this.options.compare?t=[this.dataModify.modifyValue(e.dataMin),this.dataModify.modifyValue(e.dataMax)]:this.options.cumulative&&lz(i)&&i.length>=2&&(t=d.getCumulativeExtremes(i)),t&&(e.dataMin=lD(t),e.dataMax=lL(t))}}function r(t,e){this.options.compare=this.userOptions.compare=t,this.update({},lW(e,!0)),this.dataModify&&("value"===t||"percent"===t)?this.dataModify.initCompare(t):this.points.forEach(t=>{delete t.change})}function a(){let t=this.getColumn(this.pointArrayMap&&(this.options.pointValKey||this.pointValKey)||"y",!0);if(this.xAxis&&t.length&&this.dataModify){let e=this.getColumn("x",!0),i=this.dataTable.rowCount,s=!0===this.options.compareStart?0:1;for(let o=0;o=(this.xAxis.min||0)){this.dataModify.compareValue=i;break}}}}function n(t,e){this.setModifier("compare",t,e)}function h(t,e){t=lW(t,!1),this.options.cumulative=this.userOptions.cumulative=t,this.update({},lW(e,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(t=>{delete t.cumulativeSum})}function l(t,e){this.setModifier("cumulative",t,e)}t.compose=function(t,d,c){let p=d.prototype,u=c.prototype,g=t.prototype;return g.setCompare||(g.setCompare=r,g.setCumulative=h,lE(t,"afterInit",s),lE(t,"afterGetExtremes",o),lE(t,"afterProcessData",a)),p.setCompare||(p.setCompare=n,p.setModifier=e,p.setCumulative=l,u.tooltipFormatter=i),t};class d{constructor(t){this.series=t}modifyValue(){return 0}static getCumulativeExtremes(t){let e=1/0,i=-1/0;return t.reduce((t,s)=>{let o=t+s;return e=Math.min(e,o,t),i=Math.max(i,o,t),o}),[e,i]}initCompare(t){this.modifyValue=function(e,i){null===e&&(e=0);let s=this.compareValue;if(void 0!==e&&void 0!==s){if("value"===t?e-=s:e=e/s*100-(100===this.series.options.compareBase?0:100),void 0!==i){let t=this.series.points[i];t&&(t.change=e)}return e}return 0}}initCumulative(){this.modifyValue=function(t,e){if(null===t&&(t=0),void 0!==t&&void 0!==e){let i=e>0?this.series.points[e-1]:null;i&&i.cumulativeSum&&(t=lB(i.cumulativeSum+t));let s=this.series.points[e],o=s.series.options.cumulativeStart,r=s.x<=this.series.xAxis.max&&s.x>=this.series.xAxis.min;return s&&(!o||r?s.cumulativeSum=t:s.cumulativeSum=void 0),t}return 0}}}t.Additions=d}(w||(w={}));let lG=w,{isTouchDevice:lX}=L,{addEvent:lH,merge:lF,pick:lY}=ti,lj=[];function lU(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function lV(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:a}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+a):(o.left=lY(e.left,this.plotLeft+a),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+lY(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function l_(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this),lY(t.redraw,!0)&&this.redraw(t.animation))}function l$(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this))}function lZ(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!lX&&"x"===this.zooming.type||lX&&"x"===this.zooming.pinchType))return!1}function lq(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function lK(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(lF(!0,this.options.navigator,e),lF(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let lJ={compose:function(t,e){if(ti.pushUnique(lj,t)){let s=t.prototype;i=e,s.callbacks.push(lq),lH(t,"afterAddSeries",lU),lH(t,"afterSetChartSize",lV),lH(t,"afterUpdate",l_),lH(t,"beforeRender",l$),lH(t,"beforeShowResetZoom",lZ),lH(t,"update",lK)}}},{isTouchDevice:lQ}=L,{addEvent:l0,correctFloat:l1,defined:l2,isNumber:l3,pick:l5}=ti;function l6(){this.navigatorAxis||(this.navigatorAxis=new l4(this))}function l9(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,a=i.zooming.pinchType,n=s.rangeSelector,h=i.zooming.type;if(this.isXAxis&&(o?.enabled||n?.enabled)){if("y"===h&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===h||lQ&&"xy"===a)&&this.options.range){let e=r.previousZoom;l2(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class l4{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),l0(t,"init",l6),l0(t,"setExtremes",l9))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,a=l5(i,o.translate(t,!0,!o.horiz)),n=l5(s,o.translate(e,!0,!o.horiz));return l2(i)||(a=l1(a+r)),l2(s)||(n=l1(n-r)),l3(a)&&l3(n)||(a=n=void 0),{min:a,max:n}}}let{parse:l8}=tE,{seriesTypes:l7}=rb,dt={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:l8("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===l7.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{relativeLength:de}=ti,di={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,a=de(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...io.rect(-r-1,.5,2*r+1,s,{r:a})]}},{defined:ds}=ti,dr={setFixedRange:function(t){let e=this.xAxis[0];ds(e.dataMax)&&ds(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{setOptions:da}=tA,{composed:dn}=L,{getRendererType:dh}=eg,{setFixedRange:dl}=dr,{addEvent:dd,extend:dc,pushUnique:dp}=ti;function du(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let dg={compose:function(t,e,i){l4.compose(e),dp(dn,"Navigator")&&(t.prototype.setFixedRange=dl,dc(dh().prototype.symbols,di),dd(i,"afterUpdate",du),da({navigator:dt}))}},{composed:df}=L,{addEvent:dm,defined:dx,pick:dy,pushUnique:db}=ti;!function(t){let e;function i(t){let e=dy(t.options&&t.options.min,t.min),i=dy(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:dx(t.dataMin)?Math.min(e,t.min,t.dataMin,dy(t.threshold,1/0)):e,scrollMax:dx(t.dataMax)?Math.max(i,t.max,t.dataMax,dy(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),dm(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:a,scrollMin:n,scrollMax:h}=i(t),l=h-n;if(dx(r)&&dx(a)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=n+l*this.to,o=n+l*this.from):(s=n+l*(1-this.from),o=n+l*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),a=this.scrollbar,n=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(a&&h){if(this.horiz)this.opposite||(h[1]+=n),a.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let e;this.opposite&&(h[0]+=n),e=a.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,a.position(e,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=a.size+(a.options.margin||0),isNaN(o)||isNaN(r)||!dx(this.min)||!dx(this.max)||this.dataMin===this.dataMax)a.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),a.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?a.setRange(e,s):a.setRange(1-s,1-e)}}t.compose=function(t,i){db(df,"Axis.Scrollbar")&&(e=i,dm(t,"afterGetOffset",s),dm(t,"afterInit",o),dm(t,"afterRender",r))}}(S||(S={}));let dv=S,dk={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:dM}=tA,{addEvent:dw,correctFloat:dS,crisp:dA,defined:dT,destroyObjectProperties:dC,fireEvent:dP,merge:dO,pick:dE,removeEvent:dL}=ti;class dD{static compose(t){dv.compose(t,dD)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,dC(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let a=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||a.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),a.attr(a.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},a.strokeWidth()));let n=e.path(dD.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=dO(dk,dM.scrollbar,e),this.options.margin=dE(this.options.margin,10),this.chart=i,this.size=dE(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&dP(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&dP(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:a}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=h,this.yOffset=l,a?(this.width=this.yOffset=i=l=this.size,this.xOffset=h=0,this.yOffset=l=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:i,height:s}),this.scrollbarButtons[1][n]({translateX:a?0:i-h,translateY:a?s-l:0})}removeEvents(){this._events.forEach(function(t){dL.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-dA(0,r),y:-dA(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(dD.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-dA(0,this.scrollbarStrokeWidth),-dA(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,a=o.minWidth,n=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!dT(n))return;let l=n*Math.min(e,1);i=Math.ceil(n*(t=Math.max(t,0))),this.calculatedWidth=s=dS(l-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return dE(this.options.liveRedraw,L.svg&&!L.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!dT(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),dP(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,dO(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=dS(1-dS(e-t)),e=1),t<0&&(e=dS(e-t),t=0),this.from=t,this.to=e}}dD.defaultOptions=dk,dM.scrollbar=dO(!0,dD.defaultOptions,dM.scrollbar);let{defaultOptions:dB}=tA,{isTouchDevice:dI}=L,{prototype:{symbols:dz}}=iV,{addEvent:dR,clamp:dN,correctFloat:dW,defined:dG,destroyObjectProperties:dX,erase:dH,extend:dF,find:dY,fireEvent:dj,isArray:dU,isNumber:dV,merge:d_,pick:d$,removeEvent:dZ,splat:dq}=ti;function dK(t,...e){let i=[].filter.call(e,dV);if(i.length)return Math[t].apply(0,i)}class dJ{static compose(t,e,i){lJ.compose(t,dJ),dg.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),a=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,p=d-a,u=d+c,g=this.left,f,m;i?(f=d+e+n,e=d+t+n,m=[["M",g+c,d-h-n],["L",g+c,f],["L",g,f],["M",g,e],["L",g+c,e],["L",g+c,d+l+h]],o&&m.push(["M",g+c,f-a],["L",g+c,e+a])):(g-=h,t+=g+h-n,e+=g+h-n,m=[["M",g,p],["L",t,p],["L",t,u],["M",e,u],["L",e,p],["L",g+l+2*h,p]],o&&m.push(["M",t-a,p],["L",e+a,p])),this.outline[s]({d:m})}drawMasks(t,e,i,s){let o,r,a,n;let h=this.left,l=this.top,d=this.height;i?(a=[h,h,h],n=[l,l+t,l+e],r=[d,d,d],o=[t,e-t,this.size-e]):(a=[h,h+t,h+e],n=[l,l,l],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:a[e],y:n[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,a={cursor:o?"ns-resize":"ew-resize"},n=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let h=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(n));s.styledMode||(h.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&h.css(a))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(n)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:h}=i;[0,1].forEach(e=>{let l=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===l){if(!t.handles[e].isImg&&t.handles[e].symbolName!==l){let i=dz[l].call(dz,-h/2-1,0,h,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=l}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(l,-h/2-1,0,h,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(n),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(o+h)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-h/2-1,y:0}).css(a)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(d_(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),dG(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{dZ(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(dR(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,a=r.pointRange||0,n=r.navigatorAxis.fake?o.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,f,m,x=this.scrollbarHeight,y,b;if(this.hasDragged&&!dG(i))return;if(this.isDirty&&this.renderElements(),t=dW(t-a/2),e=dW(e+a/2),!dV(t)||!dV(e)){if(!l)return;i=0,s=d$(r.width,n.width)}this.left=d$(r.left,o.plotLeft+u+(d?o.plotWidth:0));let v=this.size=y=d$(r.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?x:y+2*u,i=d$(i,r.toPixels(t,!0)),s=d$(s,r.toPixels(e,!0)),dV(i)&&Math.abs(i)!==1/0||(i=0,s=g);let k=r.toValue(i,!0),M=r.toValue(s,!0),w=Math.abs(dW(M-k));wp&&(this.grabbedLeft?i=r.toPixels(M-p-a,!0):this.grabbedRight&&(s=r.toPixels(k+p+a,!0))),this.zoomedMax=dN(Math.max(i,s),0,v),this.zoomedMin=dN(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let S=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),b=l&&!this.hasDragged?"animate":"attr",this.drawMasks(S,v,d,b),this.drawOutline(S,v,d,b),this.navigatorOptions.handles.enabled&&(this.drawHandle(S,0,d,b),this.drawHandle(v,1,d,b))),this.scrollbar&&(d?(m=this.top-u,f=this.left-x+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),x=y+2*u):(m=this.top+(h?this.height:-x),f=this.left-u),this.scrollbar.position(f,m,g,x),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,this.isDirty=!1,dj(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(dR(e.renderTo,"mousemove",o),dR(i.ownerDocument,"mouseup",r),dR(e.renderTo,"touchmove",o),dR(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(dR(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(dR(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,a=this.range,n=this.left,h=t.chartX,l,d,c,p;i.inverted&&(h=t.chartY,n=this.top),1===e?(this.grabbedCenter=h,this.fixedWidth=a,this.dragOffset=h-o):(p=h-n-a/2,0===e?p=Math.max(0,p):2===e&&p+a>=r&&(p=r-a,this.reversedExtremes?(p-=a,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=a,dG((c=s.navigatorAxis.toFixedRange(p,p+a,d,l)).min)&&dj(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,a=i.inverted,n=e.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=i.pointer?.normalize(t)||t).chartX,a&&(n=e.top,h=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,h-n,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,h-n)):e.grabbedCenter&&(e.hasDragged=!0,hs+r-o&&(h=s+r-o),e.render(0,0,h-r,h-r+o)),e.hasDragged&&e.scrollbar&&d$(e.scrollbar.options.liveRedraw,!dI&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,a;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),dG((a=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&dj(this,"setRange",{min:Math.min(a.min,a.max),max:Math.max(a.min,a.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&dV(this.zoomedMin)&&dV(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){dZ(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&dZ(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,a=s&&i.height||0,n=r&&o.height||0,h=o.buttonsEnabled&&n||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=a,this.scrollbarHeight=n,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,p=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let e=this.getXAxisOffsets();l.xAxis=new sV(t,d_({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:a}:{offsets:e,height:a}),"xAxis"),l.yAxis=new sV(t,d_(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:d$(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:a}:{height:a}),"yAxis"),d||i.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=dR(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*h,a=dK("min",s.options.min,o.dataMin),n=dK("max",s.options.max,o.dataMax)-a;return i?e*n/r+a:r*(e-a)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=l4.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=d_(t.options.scrollbar,{vertical:t.inverted});!dV(e.margin)&&l.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new dD(t.renderer,e,t),dR(l.scrollbar,"changed",function(t){let e=l.size,i=e*this.to,s=e*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=d$(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,a=i.options;return t&&null===i.dataMin||(e={dataMin:d$(s.parse(r?.min),dK("min",s.parse(a.min),i.dataMin,o.dataMin,o.min)),dataMax:d$(s.parse(r?.max),dK("max",s.parse(a.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?dY(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},a=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(dZ(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),n,h,l=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=dF({color:t.color,visible:t.visible},dU(l)?dB.navigator.series:l);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(n=t.options||{}).navigatorOptions||{},p.dataLabels=dq(p.dataLabels),(h=d_(n,r,p,d)).pointRange=d$(p.pointRange,d.pointRange,dB.plotOptions[h.type||"line"].pointRange);let u=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!u,h.data=u||n.data?.slice(0),c&&c.options?c.update(h,e):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,a.push(t.navigatorSeries))}),(l.data&&!(o&&o.length)||dU(l))&&(i.hasNavigatorData=!1,(l=dq(l)).forEach((t,e)=>{r.name="Navigator "+(a.length+1),(h=d_(dB.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,h.data&&(i.hasNavigatorData=!0,a.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(dR(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(dR(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(dR(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(dR(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(dR(i,"remove",function(){e&&dH(e,i),this.navigatorSeries&&t.series&&(dH(t.series,this.navigatorSeries),dG(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,a=s.dataMin,n=s.dataMax,h=r-o,l=i.stickToMin,d=i.stickToMax,c=d$(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(e=a)+h),d&&(t=n+c,l||(e=Math.max(a,t-h,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),u&&(l||d)&&dV(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=d$(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,a=s.options.range;return!!(dV(o)&&dV(r))&&(a&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{dX(t)}),this.navigatorEnabled=!1}}let{addEvent:dQ,correctFloat:d0,css:d1,defined:d2,error:d3,isNumber:d5,pick:d6,timeUnits:d9,isString:d4}=ti;!function(t){function e(t,i,s,o,r=[],a=0,n){let h={},l=this.options.tickPixelInterval,d=this.chart.time,c=[],p,u,g,f,m,x=0,y=[],b=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!r||r.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let v=r.length;for(p=0;ps,r[p]5*a||m){if(r[p]>b){for(u=d.getTimeTicks(t,r[x],r[p],o);u.length&&u[0]<=b;)u.shift();u.length&&(b=u[u.length-1]),c.push(y.length),y=y.concat(u)}x=p+1}if(m)break}if(u){if(f=u.info,n&&f.unitRange<=d9.hour){for(x=1,p=y.length-1;xt-e),(n=i[Math.floor(i.length/2)])<.6*l&&(n=null),c=y[t-1]>s?t-1:t,a=void 0;c--;)d=Math.abs(a-(r=e[c])),a&&d<.8*l&&(null===n||d<.8*n)?(h[y[c]]&&!h[y[c+1]]?(o=c+1,a=r):o=c,y.splice(o,1)):a=r}return y}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let r=d0((t-i)*s+this.minPixelPadding),a=d0(e.getIndexOfPoint(r,o)),n=d0(a%1);if(a>=0&&a<=o.length-1){let t=o[Math.floor(a)],e=o[Math.ceil(a)];return o[Math.floor(a)]+n*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function r(){this.ordinal||(this.ordinal=new t.Additions(this))}function a(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&d2(e.overscroll)&&0!==e.overscroll&&d5(this.max)&&d5(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&d2(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function n(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function h(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function l(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,r=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let a=this.mouseDownX,n=e.getExtremes(),h=n.dataMin,l=n.dataMax,d=n.min,c=n.max,p=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((a-s)/(e.translationSlope*(e.ordinal.slope||u))),f=e.ordinal.getExtendedPositions(),m={ordinal:{positions:f,extendedOrdinalPositions:f}},x=e.index2val,y=e.val2lin;if(d<=h&&g<0||c+i>=l&&g>0)return;m.ordinal.positions?Math.abs(g)>1&&(p&&p.forEach(function(t){t.setState()}),l>(o=m.ordinal.positions)[o.length-1]&&o.push(l),this.setFixedRange(c-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,x.apply(m,[y.apply(m,[d,!0])+g]),x.apply(m,[y.apply(m,[c,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],c)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,d1(this.container,{cursor:"move"})):r=!0}else r=!0;r||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function c(t,e){let i;let s=this.ordinal,r=s.positions,a=s.slope,n;if(!r)return t;let h=r.length;if(r[0]<=t&&r[h-1]>=t)i=o(r,t);else{if(!((n=s.getExtendedPositions&&s.getExtendedPositions())&&n.length))return t;let h=n.length;a||(a=(n[h-1]-n[0])/h);let l=o(n,r[0]);if(t>=n[0]&&t<=n[h-1])i=o(n,t)-l;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(x=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(y=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||r)&&(n=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),f=Math.min(f,d6(t.closestPointRange,f)),n)){for(e=0;e2){for(l=g[1]-g[0],u=n-1;u--&&!m;)g[u+1]-g[u]!==l&&(m=!0);!t.options.keepOrdinalPadding&&(g[0]-s>l||o-g[g.length-1]>l)&&(m=!0)}else t.options.overscroll&&(2===n?f=g[1]-g[0]:1===n?(f=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+f]):f=e.overscrollPointsRange);m||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=f,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),c=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=p=(o-s)/(c-d),e.offset=s-d*p):(e.overscrollPointsRange=d6(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=a&&m,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,r;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),a=t?i.ordinal.convertOverscroll(i.options.overscroll):0,n=i.getExtremes(),h,l,d=e.index;return d||(d=e.index={}),!d[r]&&((h={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:n.dataMin,max:n.dataMax+a}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=h,i.series.forEach(i=>{l={xAxis:h,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:L.noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);l.dataTable=new rd({columns:{x:s}}),l.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},h.series.push(l),i.processData.apply(l)}),h.applyGrouping({hasExtremesChanged:!0}),l?.closestPointRange!==l?.basePointRange&&l.currentDataGrouping&&(h.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:h}),!i.ordinal.originalOrdinalRange&&h.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=h.ordinal.originalOrdinalRange),h.ordinal.positions&&(d[r]=h.ordinal.positions)),d[r]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,r=[],a,n,h=this.groupIntervalFactor;if(!h){for(n=0;nt()),cl.splice(t,1);return}}}function cm(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function cx(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,o=this.extraTopMargin,r=this.rangeSelector;if(e&&e.enabled&&!cs(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new s(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){let t=e&&e.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==o)&&(this.isDirtyBox=!0)}}let cy={compose:function(t,e,i){if(s=i,ch(ce,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=cd,ci(e,"afterGetContainer",cp),ci(e,"beforeRender",cu),ci(e,"destroy",cf),ci(e,"getMargins",cm),ci(e,"redraw",cg),ci(e,"update",cx),ci(e,"beforeRedraw",cc),i.callbacks.push(cg),co(ct,{rangeSelector:d7.rangeSelector}),co(ct.lang,d7.lang)}}},{defaultOptions:cb}=tA,{addEvent:cv,createElement:ck,css:cM,defined:cw,destroyObjectProperties:cS,diffObjects:cA,discardElement:cT,extend:cC,fireEvent:cP,isNumber:cO,isString:cE,merge:cL,objectEach:cD,pick:cB,splat:cI}=ti;function cz(t){let e=e=>RegExp(`%[[a-zA-Z]*${e}`).test(t);if(cE(t)?-1!==t.indexOf("%L"):t.fractionalSecondDigits)return"text";let i=cE(t)?["a","A","d","e","w","b","B","m","o","y","Y"].some(e):t.dateStyle||t.day||t.month||t.year,s=cE(t)?["H","k","I","l","M","S"].some(e):t.timeStyle||t.hour||t.minute||t.second;return i&&s?"datetime-local":i?"date":s?"time":"text"}class cR{static compose(t,e){cy.compose(t,e,cR)}constructor(t){this.isDirty=!1,this.buttonOptions=cR.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.maxButtonWidth=()=>{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],r=i.scroller&&i.scroller.getUnionExtremes()||o||{},a=s.type,n=s.dataGrouping,h=r.dataMin,l=r.dataMax,d,c=cO(o?.max)?Math.round(Math.min(o.max,l??o.max)):void 0,p,u=s._range,g,f,m,x=!0;if(null!==h&&null!==l){if(this.setSelected(t),n&&(this.forcedDataGrouping=!0,sV.prototype.setDataGrouping.call(o||{chart:this.chart},n,!1),this.frozenStates=s.preserveDataGrouping),"month"===a||"year"===a)o?(f={range:s,max:c,chart:i,dataMin:h,dataMax:l},d=o.minFromRange.call(f),cO(f.newMax)&&(c=f.newMax),x=!1):u=s;else if(u)cO(c)&&(c=Math.min((d=Math.max(c-u,h))+u,l),x=!1);else if("ytd"===a){if(o)!o.hasData()||cO(l)&&cO(h)||(h=Number.MAX_VALUE,l=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(h=Math.min(e[0],h),l=Math.max(e[e.length-1],l))}),e=!1),cO(l)&&cO(h)&&(d=g=(m=this.getYTDExtremes(l,h)).min,c=m.max);else{this.deferredYTDClick=t;return}}else"all"===a&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=h,c=l);if(x&&s._offsetMin&&cw(d)&&(d+=s._offsetMin),s._offsetMax&&cw(c)&&(c+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)cO(d)&&cO(c)&&(o.setExtremes(d,c,cB(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{p=cI(i.options.xAxis||{})[0];let t=cv(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});cv(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=p.range,e.options.min=p.min,t()})}cP(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,r=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&cP(t,"blur"),i&&i.blur&&cP(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(cv(t.container,"mousedown",r)),this.eventsToUnbind.push(cv(t,"resize",r)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(cv(t,"load",function(){t.xAxis&&t.xAxis[0]&&cv(t.xAxis[0],"setExtremes",function(i){cO(this.max)&&cO(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],r=Math.round(o.max-o.min),a=!o.hasVisibleSeries,n=24*36e5,h=e.scroller&&e.scroller.getUnionExtremes()||o,l=h.dataMin,d=h.dataMax,c=t.getYTDExtremes(d,l),p=c.min,u=c.max,g=t.selected,f=t.options.allButtonsEnabled,m=Array(t.buttonOptions.length).fill(0),x=cO(g),y=t.buttons,b=!1,v=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,h=e.type,c=e.count||1,y=e._offsetMax-e._offsetMin,k=i===g,M=s>d-l,w=ss&&(A=!0)}else("month"===h||"year"===h)&&r+36e5>=({month:28,year:365})[h]*n*c-y&&r-36e5<=({month:31,year:366})[h]*n*c+y?A=!0:"ytd"===h?(A=u-p+y===r,S=!k):"all"===h&&(A=o.max-o.min>=d-l);let T=!f&&!(b&&"all"===h)&&(M||w||a),C=b&&"all"===h||!S&&A||k&&t.frozenStates;T?m[i]=3:C&&(!x||i===g)&&(v=i)}),null!==v?(m[v]=2,t.setSelected(v),this.dropdown&&(this.dropdown.selectedIndex=v+1)):(t.setSelected(),this.dropdown&&(this.dropdown.selectedIndex=-1),s&&(s.setState(0),s.attr({text:(cb.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?c=void 0:ch&&(c=h)),void 0!==c&&r.setExtremes(l?c:r.min,l?r.max:c,void 0,void 0,{trigger:"rangeSelectorInput"}))}let c=h[l?"rangeSelectorFrom":"rangeSelectorTo"]||"",p=a.label(c,0).addClass("highcharts-range-label").attr({padding:c?2:0,height:c?n.inputBoxHeight:0}).add(s),u=a.label("",0).addClass("highcharts-range-input").attr({padding:2,width:n.inputBoxWidth,height:n.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:n.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=ck("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",cz(n.inputDateFormat||"%e %b %Y")),e.styledMode||(p.css(cL(r,n.labelStyle)),u.css(cL({color:"#333333"},r,n.inputStyle)),cM(g,cC({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:r.fontSize,fontFamily:r.fontFamily,top:"-9999em"},n.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===L.doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let f=!1;return g.onchange=()=>{f||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{f=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{f=!1},{dateBox:u,input:g,label:p}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,r=o.inputEnabled,a=cB(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=ck("div",void 0,{position:"relative",height:0,zIndex:a}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),r&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(cw(o.dataMin)&&cw(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=cb.lang,o=e.renderer,r=cL(i.buttonTheme),a=r&&r.states;delete r.width,delete r.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let n=this.dropdown=ck("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),h=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},cL(r,{"stroke-width":cB(r["stroke-width"],0),width:"auto",paddingLeft:cB(i.buttonTheme.paddingLeft,h?.padding,8),paddingRight:cB(i.buttonTheme.paddingRight,h?.padding,8)}),a&&a.hover,a&&a.select,a&&a.disabled).hide().add(this.group),cv(n,"touchstart",()=>{n.style.fontSize="16px"});let l=L.isMS?"mouseover":"mouseenter",d=L.isMS?"mouseout":"mouseleave";cv(n,l,()=>{cP(this.dropdownLabel.element,l)}),cv(n,d,()=>{cP(this.dropdownLabel.element,d)}),cv(n,"change",()=>{cP(this.buttons[n.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),ck("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,n),this.createButtons()}createButtons(){let{options:t}=this,e=cL(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:r,chart:a,options:n}=this,h=a.renderer,l=cL(n.buttonTheme);o?.add(ck("option",{textContent:t.title||t.text}),e+2),r[e]=h.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},l,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&r[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:r,zoomText:a}=this,n=i.options,h=n.exporting&&!1!==n.exporting.enabled&&n.navigation&&n.navigation.buttonOptions,{buttonPosition:l,inputPosition:d,verticalAlign:c}=r,p=(t,e,s)=>h&&this.titleCollision(i)&&"top"===c&&s&&e.y-t.getBBox().height-12<(h.y||0)+(h.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&l&&d){let n=l.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;a&&(t+=a.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=r.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=p(t,l,"right"===l.align||"right"===d.align);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let h=0;r.inputEnabled&&o&&(h=p(o,d,"right"===l.align||"right"===d.align),"left"===d.align?n=u:"right"===d.align&&(n=-Math.max(i.axisOffset[1],-h)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+n-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(h),s.align({verticalAlign:c},!0,i.spacingBox);let g=s.alignAttr.translateY,f=s.getBBox().height+20,m=0;if("bottom"===c){let t=i.legend&&i.legend.options;m=g-(f=f+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+cB(t.margin,10):0)-20)-(r.floating?0:r.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===c?(r.floating&&(m=0),i.titleOffset&&i.titleOffset[0]&&(m=i.titleOffset[0]),m+=i.margin[0]-i.spacing[0]||0):"middle"===c&&(d.y===l.y?m=g:(d.y||l.y)&&(d.y<0||l.y<0?m-=Math.min(d.y,l.y):m=g-f)),s.translate(r.x,r.y+Math.floor(m));let{minInput:x,maxInput:y,dropdown:b}=this;r.inputEnabled&&x&&y&&(x.style.marginTop=s.translateY+"px",y.style.marginTop=s.translateY+"px"),b&&(b.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=cL(s.buttonTheme),r=o&&o.states,a=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(cA(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,a,r),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};s&&i&&(a.align===o.align?(n(),this.initialButtonGroupWidth>e.plotWidth+t-20?this.collapseButtons():this.expandButtons()):this.initialButtonGroupWidth-t+s.getBBox().width>e.plotWidth?"responsive"===r?this.collapseButtons():n():this.expandButtons()),i&&("always"===r&&this.collapseButtons(),"never"===r&&this.expandButtons()),this.alignButtonGroup(t)}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,dropdownLabel:e,dropdown:i}=this;t&&i&&(e.show(),cM(i,{visibility:"inherit"}),this.hasVisibleDropdown=!0)}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),cM(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,r=s.y,a=i.y,n=0;if(t.height)return t.height;this.alignElements(),n=e?e.getBBox(!0).height+13+o:0;let h=Math.min(a,r);return(a<0&&r<0||a>0&&r>0)&&(n+=Math.abs(h)),n}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(cL(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),cw(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),cS(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),cD(t,function(e,i){e&&"chart"!==i&&(e instanceof eQ?e.destroy():e instanceof window.HTMLElement&&cT(e),delete t[i]),e!==cR.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}cC(cR.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});let{format:cN}=eu,{getOptions:cW}=tA,{setFixedRange:cG}=dr,{addEvent:cX,clamp:cH,crisp:cF,defined:cY,extend:cj,find:cU,isNumber:cV,isString:c_,merge:c$,pick:cZ,splat:cq}=ti;function cK(t,e,i){return"xAxis"===t?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===t?{labels:{y:-2},opposite:i.opposite??e.opposite??!0,showLastLabel:!!(e.categories||"category"===e.type),title:{text:i.title?.text!=="Values"?i.title?.text:null}}:{}}function cJ(t,e){if("xAxis"===t){let t=cZ(e.navigator&&e.navigator.enabled,dt.enabled,!0),i={type:"datetime",categories:void 0};return t&&(i.startOnTick=!1,i.endOnTick=!1),i}return{}}class cQ extends aJ{init(t,e){let i=cW(),s=t.xAxis,o=t.yAxis,r=cZ(t.navigator&&t.navigator.enabled,dt.enabled,!0);t.xAxis=t.yAxis=void 0;let a=c$({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:r},scrollbar:{enabled:cZ(dk.enabled,!0)},rangeSelector:{enabled:cZ(d7.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:cZ(i.tooltip&&i.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},t,{isStock:!0});t.xAxis=s,t.yAxis=o,a.xAxis=cq(t.xAxis||{}).map(e=>c$(cK("xAxis",e,i.xAxis),e,cJ("xAxis",t))),a.yAxis=cq(t.yAxis||{}).map(t=>c$(cK("yAxis",t,i.yAxis),t)),super.init(a,e)}createAxis(t,e){return e.axis=c$(cK(t,e.axis,cW()[t]),e.axis,cJ(t,this.userOptions)),super.createAxis(t,e)}}cX(aJ,"update",function(t){let e=t.options;"scrollbar"in e&&this.navigator&&(c$(!0,this.options.scrollbar,e.scrollbar),this.navigator.update({enabled:!!this.navigator.navigatorEnabled}),delete e.scrollbar)}),function(t){function e(t){if(!(this.crosshair?.label?.enabled&&this.cross&&cV(this.min)&&cV(this.max)))return;let e=this.chart,i=this.logarithmic,s=this.crosshair.label,o=this.horiz,r=this.opposite,a=this.left,n=this.top,h=this.width,l="inside"===this.options.tickPosition,d=!1!==this.crosshair.snap,c=t.e||this.cross?.e,p=t.point,u=this.crossLabel,g,f,m=s.format,x="",y,b=0,v=this.min,k=this.max;i&&(v=i.lin2log(this.min),k=i.lin2log(this.max));let M=o?"center":r?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";u||(u=this.crossLabel=e.renderer.label("",0,void 0,s.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(p&&p.series?p.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:s.align||M,padding:cZ(s.padding,8),r:cZ(s.borderRadius,3),zIndex:2}).add(this.labelGroup),e.styledMode||u.attr({fill:s.backgroundColor||p&&p.series&&p.series.color||"#666666",stroke:s.borderColor||"","stroke-width":s.borderWidth||0}).css(cj({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},s.style||{}))),o?(g=d?(p.plotX||0)+a:c.chartX,f=n+(r?0:this.height)):(g=a+this.offset+(r?h:0),f=d?(p.plotY||0)+n:c.chartY),m||s.formatter||(this.dateTime&&(x="%b %d, %Y"),m="{value"+(x?":"+x:"")+"}");let w=d?this.isXAxis?p.x:p.y:this.toValue(o?c.chartX:c.chartY),S=p&&p.series?p.series.isPointInside(p):cV(w)&&w>v&&w=y.right&&(b=-(C+T.width-y.right)),u.attr({x:Math.max(0,g+b),y:Math.max(0,f),anchorX:o?g:this.opposite?0:e.chartWidth,anchorY:o?this.opposite?e.chartHeight:0:f+T.height/2})}function i(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function s(t){let e=this.chart,i=this.options,s=e._labelPanes=e._labelPanes||{},o=i.labels;if(e.options.isStock&&"yAxis"===this.coll){let e=i.top+","+i.height;!s[e]&&o.enabled&&(15===o.distance&&1===this.side&&(o.distance=0),void 0===o.align&&(o.align="right"),s[e]=this,t.align="right",t.preventDefault())}}function o(){let t=this.chart,e=this.options&&this.options.top+","+this.options.height;e&&t._labelPanes&&t._labelPanes[e]===this&&delete t._labelPanes[e]}function r(t){let e=this,i=e.isLinked&&!e.series&&e.linkedParent?e.linkedParent.series:e.series,s=e.chart,o=s.renderer,r=e.left,a=e.top,n=[],h=t.translatedValue,l=t.value,d=t.force,c,p,u,g,f=[],m,x;if(s.options.isStock&&!1!==t.acrossPanes&&"xAxis"===e.coll||"yAxis"===e.coll){for(let o of(t.preventDefault(),f=(t=>{let o="xAxis"===t?"yAxis":"xAxis",r=e.options[o];return cV(r)?[s[o][r]]:c_(r)?[s.get(r)]:i.map(t=>t[o])})(e.coll),e.isXAxis?s.yAxis:s.xAxis))if(!o.options.isInternal){let t=o.isXAxis?"yAxis":"xAxis";e===(cY(o.options[t])?s[t][o.options[t]]:s[t][0])&&f.push(o)}for(let t of(m=f.length?[]:[e.isXAxis?s.yAxis[0]:s.xAxis[0]],f))-1!==m.indexOf(t)||cU(m,e=>e.pos===t.pos&&e.len===t.len)||m.push(t);if(cV(x=cZ(h,e.translate(l||0,void 0,void 0,t.old)))){if(e.horiz)for(let t of m){let i;g=(p=t.pos)+t.len,c=u=Math.round(x+e.transB),"pass"!==d&&(cr+e.width)&&(d?c=u=cH(c,r,r+e.width):i=!0),i||n.push(["M",c,p],["L",u,g])}else for(let t of m){let i;u=(c=t.pos)+t.len,p=g=Math.round(a+e.height-x),"pass"!==d&&(pa+e.height)&&(d?p=g=cH(p,a,a+e.height):i=!0),i||n.push(["M",c,p],["L",u,g])}}t.path=n.length>0?o.crispPolyLine(n,t.lineWidth||1):void 0}}function a(t){if(this.chart.options.isStock){let e;this.is("column")||this.is("columnrange")?e={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(e={marker:{enabled:!1,radius:2}}),e&&(t.plotOptions[this.type]=c$(t.plotOptions[this.type],e))}}function n(){let t=this.chart,e=this.options.dataGrouping;return!1!==this.allowDG&&e&&cZ(e.enabled,t.options.isStock)}function h(t,e){for(let i=0;i`plot${t.charAt(0).toUpperCase()+t.slice(1)}`);s.push("yBottom"),i.push("low"),super.translate.apply(t),t.points.forEach(function(o){i.forEach(function(i,r){let a=o[i];null!==a&&(t.dataModify&&(a=t.dataModify.modifyValue(a)),o[s[r]]=e.toPixels(a,!0))}),o.tooltipPos[1]=o.plotHigh+e.pos-t.chart.plotTop})}}c9.defaultOptions=c6(c2.defaultOptions,{lineWidth:1,tooltip:{pointFormat:' {series.name}
High: {point.high}
Low: {point.low}
Close: {point.close}
'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}),c5(c9.prototype,{pointClass:class extends c1{},animate:null,directTouch:!1,keysAffectYAxis:["low","high"],pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),rb.registerSeriesType("hlc",c9);let{seriesTypes:{hlc:c4}}=rb;class c8 extends c4.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open {series.name}
Open: {point.open}
High: {point.high}
Low: {point.low}
Close: {point.close}
'}}),ps(ph.prototype,{pointClass:c8,pointArrayMap:["open","high","low","close"]}),rb.registerSeriesType("ohlc",ph);let{column:pl,ohlc:pd}=rb.seriesTypes,{crisp:pc,merge:pp}=ti;class pu extends pd{pointAttribs(t,e){let i=pl.prototype.pointAttribs.call(this,t,e),s=this.options,o=t.openo&&(i-=Math.round((r-o)/2),o=r),n=t[e](i,s,o,r,a),h&&l){let a=h;if("circle"===e)a=i+o/2;else{let t=n[0],e=n[1];"M"===t[0]&&"L"===e[0]&&(a=(t[1]+e[1])/2)}let d=s>l?s:s+r;n.push(["M",a,d],["L",h,l]),n=n.concat(t.circle(h-1,l-1,2,2))}return n}}t.compose=function(t){if(-1===e.indexOf(t)){e.push(t);let o=t.prototype.symbols;o.flag=i,s(o,"circle"),s(o,"square")}let o=eg.getRendererType();e.indexOf(o)&&e.push(o)}}(T||(T={}));let px=T,{composed:py}=L,{prototype:pb}=n7,{prototype:pv}=rJ,{defined:pk,pushUnique:pM,stableSort:pw}=ti;!function(t){function e(t){return pv.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,t)}function i(){pb.translate.apply(this);let t=this,e=t.options,i=t.chart,s=t.points,o=e.onSeries,r=o&&i.get(o),a=r&&r.options.step,n=r&&r.points,h=i.inverted,l=t.xAxis,d=t.yAxis,c=s.length-1,p,u,g=e.onKey||"y",f=n&&n.length,m=0,x,y,b,v,k;if(r&&r.visible&&f){for(m=(r.pointXOffset||0)+(r.barW||0)/2,v=r.currentDataGrouping,y=n[f-1].x+(v?v.totalRange:0),pw(s,(t,e)=>t.x-e.x),g="plot"+g[0].toUpperCase()+g.substr(1);f--&&s[c];)if(x=n[f],(p=s[c]).y=x.y,x.x<=p.x&&void 0!==x[g]){if(p.x<=y&&(p.plotY=x[g],x.xMath.pow(1-o,3)*t[r]+3*(1-o)*(1-o)*o*i[r]+3*(1-o)*o*o*s[r]+o*o*o*e[r],r=0,a=1,n;for(let t=0;t<100;t++){let t=(r+a)/2,e=o(t,0);if(null===e)break;if(.25>Math.abs(e-p.plotX)){n=t;break}e{let o;e.plotX+=m,(void 0===e.plotY||h)&&(e.plotX>=0&&e.plotX<=l.len?h?(e.plotY=l.translate(e.x,0,1,0,1),e.plotX=pk(e.y)?d.translate(e.y,0,0,0,1):0):e.plotY=(l.opposite?0:t.yAxis.len)+l.offset:e.shapeArgs={}),(u=s[i-1])&&u.plotX===e.plotX&&(void 0===u.stackIndex&&(u.stackIndex=0),o=u.stackIndex+1),e.stackIndex=o}),this.onSeries=r}t.compose=function(t){if(pM(py,"OnSeries")){let s=t.prototype;s.getPlotBox=e,s.translate=i}return t},t.getPlotBox=e,t.translate=i}(C||(C={}));let pS=C,{noop:pA}=L,{distribute:pT}=eb,{series:pC,seriesTypes:{column:pP}}=rb,{addEvent:pO,defined:pE,extend:pL,isNumber:pD,merge:pB,objectEach:pI,wrap:pz}=ti;class pR extends pP{animate(t){t&&this.setClip()}drawPoints(){let t,e,i,s,o,r,a,n,h,l,d;let c=this.points,p=this.chart,u=p.renderer,g=p.inverted,f=this.options,m=f.y,x=this.yAxis,y={},b=[],v=pD(f.borderRadius)?f.borderRadius:0;for(s=c.length;s--;)o=c[s],l=(g?o.plotY:o.plotX)>this.xAxis.len,t=o.plotX,a=o.stackIndex,i=o.options.shape||f.shape,void 0!==(e=o.plotY)&&(e=o.plotY+m-(void 0!==a&&a*f.stackDistance)),o.anchorX=a?void 0:o.plotX,n=a?void 0:o.plotY,d="flag"!==i,r=o.graphic,void 0!==e&&t>=0&&!l?(r&&o.hasNewShapeType()&&(r=r.destroy()),r||(r=o.graphic=u.label("",0,void 0,i,void 0,void 0,f.useHTML).addClass("highcharts-point").add(this.markerGroup),o.graphic.div&&(o.graphic.div.point=o),r.isNew=!0),r.attr({align:d?"center":"left",width:f.width,height:f.height,"text-align":f.textAlign,r:v}),p.styledMode||r.attr(this.pointAttribs(o)).css(pB(f.style,o.style)).shadow(f.shadow),t>0&&(t-=r.strokeWidth()%2),h={y:e,anchorY:n},f.allowOverlapX&&(h.x=t,h.anchorX=o.anchorX),r.attr({text:o.options.title??f.title??"A"})[r.isNew?"attr":"animate"](h),f.allowOverlapX||(y[o.plotX]?y[o.plotX].size=Math.max(y[o.plotX].size,r.width||0):y[o.plotX]={align:d?.5:0,size:r.width||0,target:t,anchorX:t}),o.tooltipPos=[t,e+x.pos-p.plotTop]):r&&(o.graphic=r.destroy());if(!f.allowOverlapX){let t=100;for(let e of(pI(y,function(e){e.plotX=e.anchorX,b.push(e),t=Math.max(e.size,t)}),pT(b,g?x.len:this.xAxis.len,t),c)){let t=e.plotX,i=e.graphic,s=i&&y[t];s&&i&&(pE(s.pos)?i[i.isNew?"attr":"animate"]({x:s.pos+(s.align||0)*s.size,anchorX:e.anchorX}).show().isNew=!1:i.hide().isNew=!0)}}f.useHTML&&this.markerGroup&&pz(this.markerGroup,"on",function(t){return eQ.prototype.on.apply(t.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let t=this.points;for(let e of(super.drawTracker(),t)){let i=e.graphic;i&&(e.unbindMouseOver&&e.unbindMouseOver(),e.unbindMouseOver=pO(i.element,"mouseover",function(){for(let s of(e.stackIndex>0&&!e.raised&&(e._y=i.y,i.attr({y:e._y-8}),e.raised=!0),t))s!==e&&s.raised&&s.graphic&&(s.graphic.attr({y:s._y}),s.raised=!1)}))}}pointAttribs(t,e){let i=this.options,s=t&&t.color||this.color,o=i.lineColor,r=t&&t.lineWidth,a=t&&t.fillColor||i.fillColor;return e&&(a=i.states[e].fillColor,o=i.states[e].lineColor,r=i.states[e].lineWidth),{fill:a||s,stroke:o||s,"stroke-width":r||i.lineWidth||0}}setClip(){pC.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}pR.compose=px.compose,pR.defaultOptions=pB(pP.defaultOptions,{borderRadius:0,pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd3ff"}},style:{fontSize:"0.7em",fontWeight:"bold"}}),pS.compose(pR),pL(pR.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:pm,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:pA,init:pC.prototype.init}),rb.registerSeriesType("flags",pR);let{addEvent:pN,find:pW,fireEvent:pG,isArray:pX,isNumber:pH,pick:pF}=ti;!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,a;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(a&&!1!==a.visible||(a=i[r+1]),t=i[r],!1!==a.visible&&!1!==t.visible){if(a.x-t.x>o){let e=(t.x+a.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new nh(s,s.options.stackLabels,!1,e,this.stack)).total=0)}a=t}}return this.getGraphPath(i)}t.compose=function(t,l){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),pN(t,"init",o),pN(t,"afterInit",e),pN(t,"afterSetTickPositions",s),pN(t,"afterSetOptions",i);let d=l.prototype;d.drawBreaks=n,d.gappedPath=h,pN(l,"afterGeneratePoints",r),pN(l,"afterRender",a)}return t};class l{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(l.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return pW(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==l.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=l.lin2Val,s.val2lin=l.val2Lin,s.setExtremes=function(t,e,o,r,a){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=h;for(;pthis.chart.plotSizeX/i||o&&r.forced)&&(s=!0));return s?i:0}function p9(){this.series.forEach(function(t){t.hasProcessed=!1})}function p4(t,e){let i;if(e=p3(e,!0),t||(t={forced:!1,units:null}),this instanceof o)for(i=this.series.length;i--;)this.series[i].update({dataGrouping:t},!1);else this.chart.options.series.forEach(function(e){e.dataGrouping="boolean"==typeof t?t:p2(t,e.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),e&&this.chart.redraw()}let p8={compose:function(t){o=t;let e=t.prototype;e.applyGrouping||(p0(t,"afterSetScale",p9),p0(t,"postProcessData",p5),p1(e,{applyGrouping:p5,getGroupPixelWidth:p6,setDataGrouping:p4}))}},{series:{prototype:p7}}=rb,{addEvent:ut,defined:ue,error:ui,extend:us,isNumber:uo,merge:ur,pick:ua,splat:un}=ti,uh=p7.generatePoints;function ul(t){var e;let i,s;let o=this.chart,r=this.options.dataGrouping,a=!1!==this.allowDG&&r&&ua(r.enabled,o.options.isStock),n=this.reserveSpace(),h=this.currentDataGrouping,l,d,c=!1;a&&!this.requireSorting&&(this.requireSorting=c=!0);let p=!1==!(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!t)||!a;if(c&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let u=r.groupAll?this.dataTable:this.dataTable.modified||this.dataTable,g=this.getColumn("x",!r.groupAll),f=o.plotSizeX,m=this.xAxis,x=m.getExtremes(),y=m.options.ordinal,b=this.groupPixelWidth;if(b&&g&&u.rowCount&&f&&uo(x.min)){s=!0,this.isDirty=!0,this.points=null;let t=x.min,a=x.max,h=y&&m.ordinal&&m.ordinal.getGroupIntervalFactor(t,a,this)||1,c=b*(a-t)/f*h,p=m.getTimeTicks(sK.Additions.prototype.normalizeTimeTickInterval(c,r.units||pQ.units),Math.min(t,g[0]),Math.max(a,g[g.length-1]),m.options.startOfWeek,g,this.closestPointRange),v=p7.groupData.apply(this,[u,p,r.approximation]),k=v.modified,M=k.getColumn("x",!0),w=0;for(r?.smoothed&&k.rowCount&&(r.firstAnchor="firstPoint",r.anchor="middle",r.lastAnchor="lastPoint",ui(32,!1,o,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),i=1;i=e[0]){let i;c++;let s=t.groupMap[0].start,a=t.groupMap[0].length;uo(s)&&uo(a)&&(i=s+(a-1)),e[0]=({start:e[0],middle:e[0]+.5*o,end:e[0]+o,firstPoint:r[0],lastPoint:i&&r[i]})[h]}if(a>0&&l&&o&&e[a]>=i-o){d--;let i=t.groupMap[t.groupMap.length-1].start;e[a]=({start:e[a],middle:e[a]+.5*o,end:e[a]+o,firstPoint:i&&r[i],lastPoint:r[r.length-1]})[l]}if(n&&"start"!==n){let t=o*({middle:.5,end:1})[n];for(;d>=c;)e[d]+=t,d--}}(this,M||[],a),n&&M&&(ue((e=M)[0])&&uo(m.min)&&uo(m.dataMin)&&e[0]m.max&&((!ue(m.options.max)&&uo(m.dataMax)&&m.max>=m.dataMax||m.max===m.dataMax)&&(m.max=Math.max(e[e.length-1],m.max)),m.dataMax=Math.max(e[e.length-1],m.dataMax))),r.groupAll&&(this.allGroupedTable=k,M=(k=(d=this.cropData(k,m.min||0,m.max||0)).modified).getColumn("x"),this.cropStart=d.start),this.dataTable.modified=k}else this.groupMap=void 0,this.currentDataGrouping=void 0;this.hasGroupedData=s,this.preventGraphAnimation=(h&&h.totalRange)!==(l&&l.totalRange)}function ud(){this.groupedData&&(this.groupedData.forEach(function(t,e){t&&(this.groupedData[e]=t.destroy?t.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedTable)}function uc(){uh.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function up(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function uu(t,e,i){let s=t.getColumn("x",!0)||[],o=t.getColumn("y",!0),r=this,a=r.data,n=r.options&&r.options.data,h=[],l=new rd,d=[],c=t.rowCount,p=!!o,u=[],g=r.pointArrayMap,f=g&&g.length,m=["x"].concat(g||["y"]),x=(g||["y"]).map(()=>[]),y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,b,v,k,M=0,w=0,S="function"==typeof i?i:i&&pj[i]?pj[i]:pj[r.getDGApproximation&&r.getDGApproximation()||"average"];if(f){let t=g.length;for(;t--;)u.push([])}else u.push([]);let A=f||1;for(let t=0;t<=c;t++)if(!(s[t]=e[M+1]||t===c;){if(b=e[M],r.dataGroupInfo={start:y?w:r.cropStart+w,length:u[0].length,groupStart:b},k=S.apply(r,u),r.pointClass&&!ue(r.dataGroupInfo.options)&&(r.dataGroupInfo.options=ur(r.pointClass.prototype.optionsToObject.call({series:r},r.options.data[r.cropStart+w])),m.forEach(function(t){delete r.dataGroupInfo.options[t]})),void 0!==k){h.push(b);let t=un(k);for(let e=0;e{T[t]=x[e]}),l.setColumns(T),{groupMap:d,modified:l}}function ug(t){let e=t.options,i=this.type,s=this.chart.options.plotOptions,o=this.useCommonDataGrouping&&pQ.common,r=pQ.seriesSpecific,a=tA.defaultOptions.plotOptions[i].dataGrouping;if(s&&(r[i]||o)){let t=this.chart.rangeSelector;a||(a=ur(pQ.common,r[i])),e.dataGrouping=ur(o,a,s.series&&s.series.dataGrouping,s[i].dataGrouping,this.userOptions.dataGrouping,!e.isInternal&&t&&uo(t.selected)&&t.buttonOptions[t.selected].dataGrouping)}}let uf={compose:function(t){let e=t.prototype;e.applyGrouping||(ut(t.prototype.pointClass,"update",function(){if(this.dataGroup)return ui(24,!1,this.series.chart),!1}),ut(t,"afterSetOptions",ug),ut(t,"destroy",ud),us(e,{applyGrouping:ul,destroyGroupedData:ud,generatePoints:uc,getDGApproximation:up,groupData:uu}))},groupData:uu},{format:um}=eu,{composed:ux}=L,{addEvent:uy,extend:ub,isNumber:uv,pick:uk,pushUnique:uM}=ti;function uw(t){let e=this.chart,i=e.time,s=t.point,o=s.series,r=o.options,a=o.tooltipOptions,n=r.dataGrouping,h=o.xAxis,l=a.xDateFormat||"",d,c,p,u,g,f=a[t.isFooter?"footerFormat":"headerFormat"];if(h&&"datetime"===h.options.type&&n&&uv(s.key)){c=o.currentDataGrouping,p=n.dateTimeLabelFormats||pQ.common.dateTimeLabelFormats,c?(u=p[c.unitName],1===c.count?l=u[0]:(l=u[1],d=u[2])):!l&&p&&h.dateTime&&(l=h.dateTime.getXDateFormat(s.x,a.dateTimeLabelFormats));let r=uk(o.groupMap?.[s.index].groupStart,s.key),m=r+(c?.totalRange||0)-1;g=i.dateFormat(l,r),d&&(g+=i.dateFormat(d,m)),o.chart.styledMode&&(f=this.styledModeFormat(f)),t.text=um(f,{point:ub(s,{key:g}),series:o},e),t.preventDefault()}}let uS={compose:function(t,e,i){p8.compose(t),uf.compose(e),i&&uM(ux,"DataGrouping")&&uy(i,"headerFormatter",uw)},groupData:uf.groupData};L.dataGrouping=L.dataGrouping||{},L.dataGrouping.approximationDefaults=L.dataGrouping.approximationDefaults||pJ,L.dataGrouping.approximations=L.dataGrouping.approximations||pj,uS.compose(L.Axis,L.Series,L.Tooltip);let{defined:uA,isNumber:uT,pick:uC}=ti,uP={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},{addEvent:uO,isObject:uE,pick:uL,defined:uD,merge:uB}=ti,{getAssignedAxis:uI}={annotationsFieldsTypes:uP,getAssignedAxis:function(t){return t.filter(t=>{let e=t.axis.getExtremes(),i=e.min,s=e.max,o=uC(t.axis.minPointOffset,0);return uT(i)&&uT(s)&&t.value>=i-o&&t.value<=s+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,e){let i=uP[t],s=typeof e;return uA(i)&&(s=i),({string:"text",number:"number",boolean:"checkbox"})[s]}},uz=[],uR={enabled:!0,sensitivity:1.1},uN=t=>(uE(t)||(t={enabled:t??!0}),uB(uR,t)),uW=function(t,e,i,s,o,a,n){let h=uL(n.type,t.zooming.type,""),l=[];"x"===h?l=i:"y"===h?l=s:"xy"===h&&(l=t.axes);let d=t.transform({axes:l,to:{x:o-5,y:a-5,width:10,height:10},from:{x:o-5*e,y:a-5*e,width:10*e,height:10*e},trigger:"mousewheel"});return d&&(uD(r)&&clearTimeout(r),r=setTimeout(()=>{t.pointer?.drop()},400)),d};function uG(){let t=uN(this.zooming.mouseWheel);t.enabled&&uO(this.container,"wheel",e=>{e=this.pointer?.normalize(e)||e;let{pointer:i}=this,s=i&&!i.inClass(e.target,"highcharts-no-mousewheel");if(this.isInsidePlot(e.chartX-this.plotLeft,e.chartY-this.plotTop)&&s){let s=t.sensitivity||1.1,o=e.detail||(e.deltaY||0)/120,r=uI(i.getCoordinates(e).xAxis),a=uI(i.getCoordinates(e).yAxis);uW(this,Math.pow(s,o),r?[r.axis]:this.xAxis,a?[a.axis]:this.yAxis,e.chartX,e.chartY,t)&&e.preventDefault?.()}})}L.MouseWheelZoom=L.MouseWheelZoom||{compose:function(t){-1===uz.indexOf(t)&&(uz.push(t),uO(t,"afterGetContainer",uG))}},L.MouseWheelZoom.compose(L.Chart),L.Navigator=L.Navigator||dJ,L.OrdinalAxis=L.OrdinalAxis||d8,L.RangeSelector=L.RangeSelector||cR,L.Scrollbar=L.Scrollbar||dD,L.stockChart=L.stockChart||c0.stockChart,L.StockChart=L.StockChart||L.stockChart,L.extend(L.StockChart,c0),lG.compose(L.Series,L.Axis,L.Point),pR.compose(L.Renderer),ph.compose(L.Series),L.Navigator.compose(L.Chart,L.Axis,L.Series),L.OrdinalAxis.compose(L.Axis,L.Series,L.Chart),L.RangeSelector.compose(L.Axis,L.Chart),L.Scrollbar.compose(L.Axis),L.StockChart.compose(L.Chart,L.Axis,L.Series,L.SVGRenderer),/** + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/highstock * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */L.product="Highstock";let uW=L;return E.default})()); \ No newline at end of file + */L.product="Highstock";let uX=L;return E.default})()); \ No newline at end of file diff --git a/highstock.src.js b/highstock.src.js index 3231c8eb9f..3f4cb36acc 100644 --- a/highstock.src.js +++ b/highstock.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi @@ -74,7 +74,7 @@ var Globals; * Constants * * */ - Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.0.2', Globals.win = (typeof window !== 'undefined' ? + Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.1.0', Globals.win = (typeof window !== 'undefined' ? window : {}), // eslint-disable-line node/no-unsupported-features/es-builtins Globals.doc = Globals.win.document, Globals.svg = (Globals.doc && @@ -1275,7 +1275,7 @@ function getNestedProperty(path, parent) { } return thisProp ?? parent; } - const child = parent[pathElement]; + const child = parent[pathElement.replace(/[\\'"]/g, '')]; // Filter on the child if (!defined(child) || typeof child === 'function' || @@ -3582,7 +3582,9 @@ class Time { * Properties * * */ - this.options = {}; + this.options = { + timezone: 'UTC' + }; this.variableTimezone = false; this.Date = Time_win.Date; this.update(options); @@ -3604,12 +3606,13 @@ class Time { * */ update(options = {}) { - let timezone = options.timezone ?? 'UTC'; this.dTLCache = {}; this.options = options = Time_merge(true, this.options, options); const { timezoneOffset, useUTC } = options; // Allow using a different Date class this.Date = options.Date || Time_win.Date || Date; + // Assign the time zone. Handle the legacy, deprecated `useUTC` option. + let timezone = options.timezone; if (Time_defined(useUTC)) { timezone = useUTC ? 'UTC' : void 0; } @@ -4052,7 +4055,7 @@ class Time { } else if (Time_isObject(format)) { const tzHours = (this.getTimezoneOffset(timestamp) || 0) / - (60000 * 60), timeZone = this.options.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; + (60000 * 60), timeZone = this.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; format = prefix + this.dateTimeFormat(Time_extend({ timeZone }, format), timestamp) + suffix; } // Optionally sentence-case the string and return @@ -7460,18 +7463,11 @@ class Color { } // Check for has alpha, because rgba colors perform worse due to // lack of support in WebKit. - const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1); - return (hasAlpha ? 'rgba(' : 'rgb(') + - Math.round(toRgba[0] + (fromRgba[0] - toRgba[0]) * (1 - pos)) + - ',' + - Math.round(toRgba[1] + (fromRgba[1] - toRgba[1]) * (1 - pos)) + - ',' + - Math.round(toRgba[2] + (fromRgba[2] - toRgba[2]) * (1 - pos)) + - (hasAlpha ? - (',' + - (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))) : - '') + - ')'; + const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1), channel = (to, i) => to + (fromRgba[i] - to) * (1 - pos), rgba = toRgba.slice(0, 3).map(channel).map(Math.round); + if (hasAlpha) { + rgba.push(channel(toRgba[3], 3)); + } + return (hasAlpha ? 'rgba(' : 'rgb(') + rgba.join(',') + ')'; } } /* * @@ -8840,7 +8836,7 @@ const { defaultOptions: Templating_defaultOptions, defaultTime: Templating_defau const { doc: Templating_doc } = Core_Globals; -const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; +const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, isString: Templating_isString, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; const helpers = { // Built-in helpers add: (a, b) => a + b, @@ -8875,6 +8871,8 @@ const numberFormatCache = {}; * Functions * * */ +// Internal convenience function +const isQuotedString = (str) => /^["'].+["']$/.test(str); /** * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a * human readable date string. The format is a subset of the formats for PHP's @@ -8952,11 +8950,11 @@ function dateFormat(format, timestamp, upperCaseFirst) { * The formatted string. */ function format(str = '', ctx, chart) { - const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu, + const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu, // The sub expression regex is the same as the top expression regex, // but except parens and block helpers (#), and surrounded by parens // instead of curly brackets. - subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; + subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; /* * Get a literal or variable value inside a template expression. May be * extended with other types like string or null if needed, but keep it @@ -8974,7 +8972,7 @@ function format(str = '', ctx, chart) { if ((n = Number(key)).toString() === key) { return n; } - if (/^["'].+["']$/.test(key)) { + if (isQuotedString(key)) { return key.slice(1, -1); } // Variables and constants @@ -9087,7 +9085,8 @@ function format(str = '', ctx, chart) { // Simple variable replacement } else { - const valueAndFormat = expression.split(':'); + const valueAndFormat = isQuotedString(expression) ? + [expression] : expression.split(':'); replacement = resolveProperty(valueAndFormat.shift() || ''); // Format the replacement if (valueAndFormat.length && typeof replacement === 'number') { @@ -9100,13 +9099,14 @@ function format(str = '', ctx, chart) { } else { replacement = time.dateFormat(segment, replacement); - // Use string literal in order to be preserved in the outer - // expression - if (hasSub) { - replacement = `"${replacement}"`; - } } } + // Use string literal in order to be preserved in the outer + // expression + subRegex.lastIndex = 0; + if (subRegex.test(match.find) && Templating_isString(replacement)) { + replacement = `"${replacement}"`; + } } str = str.replace(match.find, Templating_pick(replacement, '')); }); @@ -9691,7 +9691,9 @@ class SVGElement { * @return {Highcharts.SVGElement} Returns the SVGElement for chaining. */ align(alignOptions, alignByTranslate, alignTo, redraw = true) { - const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); + const attribs = { + 'text-align': alignOptions?.align + }, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); // First call on instanciate if (alignOptions) { this.alignOptions = alignOptions; @@ -11431,6 +11433,7 @@ class SVGLabel extends SVG_SVGElement { * */ alignSetter(value) { const alignFactor = SVGLabel_getAlignFactor(value); + this.textAlign = value; if (alignFactor !== this.alignFactor) { this.alignFactor = alignFactor; // Bounding box exists, means we're dynamically changing @@ -11606,6 +11609,7 @@ class SVGLabel extends SVG_SVGElement { } 'text-alignSetter'(value) { this.textAlign = value; + this.updateTextPadding(); } textSetter(text) { if (typeof text !== 'undefined') { @@ -11675,24 +11679,19 @@ class SVGLabel extends SVG_SVGElement { * is changed. */ updateTextPadding() { - const text = this.text; + const text = this.text, textAlign = text.styles.textAlign || this.textAlign; if (!text.textPath) { this.updateBoxSize(); // Determine y based on the baseline const textY = this.baseline ? 0 : this.baselineOffset, textX = (this.paddingLeft ?? this.padding) + // Compensate for alignment - ((SVGLabel_defined(this.widthSetting) && this.bBox) ? - SVGLabel_getAlignFactor(this.textAlign) * - (this.widthSetting - this.bBox.width) : - 0); + SVGLabel_getAlignFactor(textAlign) * (this.widthSetting ?? this.bBox.width); // Update if anything changed if (textX !== text.x || textY !== text.y) { - text.attr('x', textX); - // #8159 - prevent misplaced data labels in treemap - // (useHTML: true) - if (text.hasBoxWidthChanged) { - this.bBox = text.getBBox(true); - } + text.attr({ + align: textAlign, + x: textX + }); if (typeof textY !== 'undefined') { text.attr('y', textY); } @@ -12637,7 +12636,7 @@ class SVGRenderer { this.url = this.getReferenceURL(); // Add description const desc = this.createElement('desc').add(); - desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.0.2')); + desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.1.0')); this.defs = this.createElement('defs').add(); this.allowHTML = allowHTML; this.forExport = forExport; @@ -14604,7 +14603,7 @@ class HTMLElement extends SVG_SVGElement { textWidth, this.textAlign ].join(','), parentPadding = (this.parentGroup?.padding * -1) || 0; - let baseline, hasBoxWidthChanged = false; + let baseline; // Update textWidth. Use the memoized textPxLength if possible, to // avoid the getTextPxLength function using elem.offsetWidth. // Calling offsetWidth affects rendering time as it forces layout @@ -14627,10 +14626,8 @@ class HTMLElement extends SVG_SVGElement { whiteSpace: whiteSpace || 'normal' // #3331 }); this.oldTextWidth = textWidth; - hasBoxWidthChanged = true; // #8159 } } - this.hasBoxWidthChanged = hasBoxWidthChanged; // #8159 // Do the calculations and DOM access only if properties changed if (currentTextTransform !== this.cTT) { baseline = renderer.fontMetrics(element).b; @@ -33086,9 +33083,14 @@ class Series { * @private * @function Highcharts.Series#searchKDTree */ - searchKDTree(point, compareX, e) { + searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator) { const series = this, [kdX, kdY] = this.kdAxisArray, kdComparer = compareX ? 'distX' : 'dist', kdDimensions = (series.options.findNearestPointBy || '') - .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble; + .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble, pointEvaluator = suppliedPointEvaluator || ((p1, p2, comparisonProp) => [ + (p1[comparisonProp] || 0) < (p2[comparisonProp] || 0) ? + p1 : + p2, + false + ]), bSideCheckEvaluator = suppliedBSideCheckEvaluator || ((a, b) => a < b); /** * Set the one and two dimensional distance on the point object. * @private @@ -33103,28 +33105,21 @@ class Series { */ function doSearch(search, tree, depth, dimensions) { const point = tree.point, axis = series.kdAxisArray[depth % dimensions]; - let nPoint1, nPoint2, ret = point; + let ret = point, flip = false; setDistance(search, point); // Pick side based on distance to splitting point const tdist = (search[axis] || 0) - (point[axis] || 0) + (useRadius ? (point.marker?.radius || 0) : 0), sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left'; // End of tree if (tree[sideA]) { - nPoint1 = doSearch(search, tree[sideA], depth + 1, dimensions); - ret = (nPoint1[kdComparer] < - ret[kdComparer] ? - nPoint1 : - point); + [ret, flip] = pointEvaluator(point, doSearch(search, tree[sideA], depth + 1, dimensions), kdComparer); } if (tree[sideB]) { + const sqrtTDist = Math.sqrt(tdist * tdist), retDist = ret[kdComparer]; // Compare distance to current best to splitting point to decide - // whether to check side B or not - if (Math.sqrt(tdist * tdist) < ret[kdComparer]) { - nPoint2 = doSearch(search, tree[sideB], depth + 1, dimensions); - ret = (nPoint2[kdComparer] < - ret[kdComparer] ? - nPoint2 : - ret); + // whether to check side B or no + if (bSideCheckEvaluator(sqrtTDist, retDist, flip)) { + ret = pointEvaluator(ret, doSearch(search, tree[sideB], depth + 1, dimensions), kdComparer)[0]; } } return ret; @@ -42632,7 +42627,9 @@ var DataLabel; (unrotatedbBox.width - bBox.width); dataLabel.alignAttr.y += DataLabel_getAlignFactor(options.verticalAlign) * (unrotatedbBox.height - bBox.height); - dataLabel[dataLabel.placed ? 'animate' : 'attr']({ + dataLabel.attr({ + 'text-align': dataLabel.alignAttr['text-align'] || 'center' + })[dataLabel.placed ? 'animate' : 'attr']({ x: dataLabel.alignAttr.x + (bBox.width - unrotatedbBox.width) / 2, y: dataLabel.alignAttr.y + @@ -52335,8 +52332,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -52376,8 +52376,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -52741,6 +52744,7 @@ const { addEvent: RangeSelector_addEvent, createElement: RangeSelector_createEle * @function preferredInputType */ function preferredInputType(format) { + const hasTimeKey = (char) => new RegExp(`%[[a-zA-Z]*${char}`).test(format); const ms = RangeSelector_isString(format) ? format.indexOf('%L') !== -1 : // Implemented but not typed as of 2024 @@ -52750,11 +52754,10 @@ function preferredInputType(format) { } const date = RangeSelector_isString(format) ? ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y'] - .some((char) => format.indexOf('%' + char) !== -1) : + .some(hasTimeKey) : format.dateStyle || format.day || format.month || format.year; const time = RangeSelector_isString(format) ? - ['H', 'k', 'I', 'l', 'M', 'S'] - .some((char) => format.indexOf('%' + char) !== -1) : + ['H', 'k', 'I', 'l', 'M', 'S'].some(hasTimeKey) : format.timeStyle || format.hour || format.minute || format.second; if (date && time) { return 'datetime-local'; @@ -52801,6 +52804,16 @@ class RangeSelector { this.isDirty = false; this.buttonOptions = RangeSelector.prototype.defaultButtons; this.initialButtonGroupWidth = 0; + this.maxButtonWidth = () => { + let buttonWidth = 0; + this.buttons.forEach((button) => { + const bBox = button.getBBox(); + if (bBox.width > buttonWidth) { + buttonWidth = bBox.width; + } + }); + return buttonWidth; + }; this.init(chart); } /* * @@ -53094,9 +53107,15 @@ class RangeSelector { if (selectedIndex !== null) { buttonStates[selectedIndex] = 2; rangeSelector.setSelected(selectedIndex); + if (this.dropdown) { + this.dropdown.selectedIndex = selectedIndex + 1; + } } else { rangeSelector.setSelected(); + if (this.dropdown) { + this.dropdown.selectedIndex = -1; + } if (dropdownLabel) { dropdownLabel.setState(0); dropdownLabel.attr({ @@ -53715,11 +53734,11 @@ class RangeSelector { const { buttonPosition, inputPosition, verticalAlign } = options; // Get the X offset required to avoid overlapping with the exporting // button. This is used both by the buttonGroup and the inputGroup. - const getXOffsetForExportButton = (group, position) => { + const getXOffsetForExportButton = (group, position, rightAligned) => { if (navButtonOptions && this.titleCollision(chart) && verticalAlign === 'top' && - position.align === 'right' && ((position.y - + rightAligned && ((position.y - group.getBBox().height - 12) < ((navButtonOptions.y || 0) + (navButtonOptions.height || 0) + @@ -53748,7 +53767,8 @@ class RangeSelector { } plotLeft -= chart.spacing[3]; // Detect collision between button group and exporting - const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition); + const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); this.alignButtonGroup(xOffsetForExportButton); if (this.buttonGroup?.translateY) { this.dropdownLabel @@ -53760,7 +53780,8 @@ class RangeSelector { let xOffsetForExportButton = 0; if (options.inputEnabled && inputGroup) { // Detect collision between the input group and exporting button - xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition); + xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); if (inputPosition.align === 'left') { translateX = plotLeft; } @@ -53913,16 +53934,35 @@ class RangeSelector { * @param {number} [width] */ alignButtonGroup(xOffsetForExportButton, width) { - const { chart, options, buttonGroup } = this; + const { chart, options, buttonGroup, dropdown, dropdownLabel } = this; const { buttonPosition } = options; const plotLeft = chart.plotLeft - chart.spacing[3]; let translateX = buttonPosition.x - chart.spacing[3]; + let dropdownTranslateX = chart.plotLeft; if (buttonPosition.align === 'right') { translateX += xOffsetForExportButton - plotLeft; // #13014 + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth + + xOffsetForExportButton - + this.maxButtonWidth() - 20; + } } else if (buttonPosition.align === 'center') { translateX -= plotLeft / 2; + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth / 2 - + this.maxButtonWidth(); + } } + if (dropdown) { + RangeSelector_css(dropdown, { + left: dropdownTranslateX + 'px', + top: buttonGroup?.translateY + 'px' + }); + } + dropdownLabel?.attr({ + x: dropdownTranslateX + }); if (buttonGroup) { // Align button group buttonGroup.align({ @@ -53976,36 +54016,6 @@ class RangeSelector { handleCollision(xOffsetForExportButton) { const { chart, buttonGroup, inputGroup } = this; const { buttonPosition, dropdown, inputPosition } = this.options; - const maxButtonWidth = () => { - let buttonWidth = 0; - this.buttons.forEach((button) => { - const bBox = button.getBBox(); - if (bBox.width > buttonWidth) { - buttonWidth = bBox.width; - } - }); - return buttonWidth; - }; - const groupsOverlap = (buttonGroupWidth) => { - if (inputGroup?.alignOptions && buttonGroup) { - const inputGroupX = (inputGroup.alignAttr.translateX + - inputGroup.alignOptions.x - - xOffsetForExportButton + - // `getBBox` for detecing left margin - inputGroup.getBBox().x + - // 2px padding to not overlap input and label - 2); - const inputGroupWidth = inputGroup.alignOptions.width || 0; - const buttonGroupX = buttonGroup.alignAttr.translateX + - buttonGroup.getBBox().x; - return (buttonGroupX + buttonGroupWidth > inputGroupX) && - (inputGroupX + inputGroupWidth > buttonGroupX) && - (buttonPosition.y < - (inputPosition.y + - inputGroup.getBBox().height)); - } - return false; - }; const moveInputsDown = () => { if (inputGroup && buttonGroup) { inputGroup.attr({ @@ -54017,47 +54027,43 @@ class RangeSelector { }); } }; - if (buttonGroup) { - if (dropdown === 'always') { - this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - // Move the inputs down if there is still a collision - // after collapsing the buttons - moveInputsDown(); - } - return; - } - if (dropdown === 'never') { - this.expandButtons(); - } - } // Detect collision if (inputGroup && buttonGroup) { - if ((inputPosition.align === buttonPosition.align) || - // 20 is minimal spacing between elements - groupsOverlap(this.initialButtonGroupWidth + 20)) { + if (inputPosition.align === buttonPosition.align) { + moveInputsDown(); + if (this.initialButtonGroupWidth > + chart.plotWidth + xOffsetForExportButton - 20) { + this.collapseButtons(); + } + else { + this.expandButtons(); + } + } + else if (this.initialButtonGroupWidth - + xOffsetForExportButton + + inputGroup.getBBox().width > + chart.plotWidth) { if (dropdown === 'responsive') { this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - moveInputsDown(); - } } else { moveInputsDown(); } } - else if (dropdown === 'responsive') { + else { this.expandButtons(); } } - else if (buttonGroup && dropdown === 'responsive') { - if (this.initialButtonGroupWidth > chart.plotWidth) { + // Forced states + if (buttonGroup) { + if (dropdown === 'always') { this.collapseButtons(); } - else { + if (dropdown === 'never') { this.expandButtons(); } } + this.alignButtonGroup(xOffsetForExportButton); } /** * Collapse the buttons and show the select element. @@ -54100,17 +54106,10 @@ class RangeSelector { * @function Highcharts.RangeSelector#showDropdown */ showDropdown() { - const { buttonGroup, chart, dropdownLabel, dropdown } = this; + const { buttonGroup, dropdownLabel, dropdown } = this; if (buttonGroup && dropdown) { - const { translateX = 0, translateY = 0 } = buttonGroup, left = chart.plotLeft + translateX, top = translateY; - dropdownLabel - .attr({ x: left, y: top }) - .show(); - RangeSelector_css(dropdown, { - left: left + 'px', - top: top + 'px', - visibility: 'inherit' - }); + dropdownLabel.show(); + RangeSelector_css(dropdown, { visibility: 'inherit' }); this.hasVisibleDropdown = true; } } @@ -57645,7 +57644,7 @@ var BrokenAxis; ;// ./code/es-modules/masters/modules/broken-axis.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/broken-axis * @requires highcharts * @@ -59137,7 +59136,7 @@ const DataGroupingComposition = { ;// ./code/es-modules/masters/modules/datagrouping.src.js /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/datagrouping * @requires highcharts * @@ -59459,7 +59458,7 @@ const MouseWheelZoomComposition = { ;// ./code/es-modules/masters/modules/mouse-wheel-zoom.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/mouse-wheel-zoom * @requires highcharts * @@ -59479,7 +59478,7 @@ mouse_wheel_zoom_src_G.MouseWheelZoom.compose(mouse_wheel_zoom_src_G.Chart); ;// ./code/es-modules/masters/modules/stock.src.js /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/stock * @requires highcharts * @@ -59527,7 +59526,7 @@ stock_src_G.StockChart.compose(stock_src_G.Chart, stock_src_G.Axis, stock_src_G. ;// ./code/es-modules/masters/highstock.src.js /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/highstock * * (c) 2009-2024 Torstein Honsi diff --git a/indicators/acceleration-bands.js b/indicators/acceleration-bands.js index 901080a37e..8a21713c52 100644 --- a/indicators/acceleration-bands.js +++ b/indicators/acceleration-bands.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/acceleration-bands * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Daniel Studencki * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/acceleration-bands",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/acceleration-bands"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var a,i={512:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return i[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var a in t)o.o(t,a)&&!o.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};o.d(s,{default:()=>b});var n=o(944),p=/*#__PURE__*/o.n(n),l=o(512),h=/*#__PURE__*/o.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:d,error:u,merge:f}=p();!function(e){let t=["bottomLine"],a=["top","bottom"],i=["top"];function r(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function o(e,t){let a=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&a.push(r(e))}),a}function s(){let e=this,t=e.pointValKey,a=e.linesApiNames,i=e.areaLinesNames,s=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],y=o(e,t),g=s.length,m;if(y.forEach((e,t)=>{for(h[t]=[];g--;)m=s[g],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!d(m[e])});g=s.length}),e.userOptions.fillColor&&i.length){let t=h[y.indexOf(r(i[0]))],a=1===i.length?s:h[y.indexOf(r(i[1]))],o=e.color;e.points=a,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=f(s,l),e.graph=e.area,e.fillGraph=!0,c.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=o}a.forEach((t,a)=>{h[a]?(e.points=h[a],n[t]?e.options=f(n[t].styles,l):u('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],c.drawGraph.call(e),e["graph"+t]=e.graph):u('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=n,e.graph=p,c.drawGraph.call(e)}function n(e){let t,a=[],i=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=c.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",a=c.getGraphPath.call(this,e),i=t.slice(0,a.length);for(let e=i.length-1;e>=0;e--)a.push(i[e])}}else a=c.getGraphPath.apply(this,arguments);return a}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(a=>{t.push(e[a])}),t}function l(){let e=this.pointArrayMap,t=[],a;t=o(this),c.translate.apply(this,arguments),this.points.forEach(i=>{e.forEach((e,r)=>{a=i[e],this.dataModify&&(a=this.dataModify.modifyValue(a)),null!==a&&(i[t[r]]=this.yAxis.toPixels(a,!0))})})}e.compose=function(e){let r=e.prototype;return r.linesApiNames=r.linesApiNames||t.slice(),r.pointArrayMap=r.pointArrayMap||a.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||i.slice(),r.drawGraph=s,r.getGraphPath=n,r.toYData=p,r.translate=l,e}}(a||(a={}));let y=a,{sma:g}=h().seriesTypes,{correctFloat:m,extend:x,merge:A}=p();class D extends g{getValues(e,t){let a,i,r,o,s,n,p,l,h,c,d;let u=t.period,f=t.factor,y=t.index,g=e.xData,x=e.yData,A=x?x.length:0,D=[],b=[],v=[],G=[],M=[];if(!(A=u&&(h=g.slice(d-u,d),c=x.slice(d-u,d),p=super.getValues.call(this,{xData:h,yData:D.slice(d-u,d)},{period:u}),l=super.getValues.call(this,{xData:h,yData:b.slice(d-u,d)},{period:u}),o=(n=super.getValues.call(this,{xData:h,yData:c},{period:u,index:y})).xData[0],i=p.yData[0],r=l.yData[0],a=n.yData[0],v.push([o,i,a,r]),G.push(o),M.push([i,a,r]))}return{values:v,xData:G,yData:M}}}}D.defaultOptions=A(g.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),x(D.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),y.compose(D),h().registerSeriesType("abands",D);let b=p();return s.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/acceleration-bands",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/acceleration-bands"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var a,i={512:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return i[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var a in t)o.o(t,a)&&!o.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};o.d(s,{default:()=>b});var n=o(944),p=o.n(n),l=o(512),h=o.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:d,error:u,merge:f}=p();!function(e){let t=["bottomLine"],a=["top","bottom"],i=["top"];function r(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function o(e,t){let a=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&a.push(r(e))}),a}function s(){let e=this,t=e.pointValKey,a=e.linesApiNames,i=e.areaLinesNames,s=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],y=o(e,t),g=s.length,m;if(y.forEach((e,t)=>{for(h[t]=[];g--;)m=s[g],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!d(m[e])});g=s.length}),e.userOptions.fillColor&&i.length){let t=h[y.indexOf(r(i[0]))],a=1===i.length?s:h[y.indexOf(r(i[1]))],o=e.color;e.points=a,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=f(s,l),e.graph=e.area,e.fillGraph=!0,c.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=o}a.forEach((t,a)=>{h[a]?(e.points=h[a],n[t]?e.options=f(n[t].styles,l):u('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],c.drawGraph.call(e),e["graph"+t]=e.graph):u('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=n,e.graph=p,c.drawGraph.call(e)}function n(e){let t,a=[],i=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=c.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",a=c.getGraphPath.call(this,e),i=t.slice(0,a.length);for(let e=i.length-1;e>=0;e--)a.push(i[e])}}else a=c.getGraphPath.apply(this,arguments);return a}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(a=>{t.push(e[a])}),t}function l(){let e=this.pointArrayMap,t=[],a;t=o(this),c.translate.apply(this,arguments),this.points.forEach(i=>{e.forEach((e,r)=>{a=i[e],this.dataModify&&(a=this.dataModify.modifyValue(a)),null!==a&&(i[t[r]]=this.yAxis.toPixels(a,!0))})})}e.compose=function(e){let r=e.prototype;return r.linesApiNames=r.linesApiNames||t.slice(),r.pointArrayMap=r.pointArrayMap||a.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||i.slice(),r.drawGraph=s,r.getGraphPath=n,r.toYData=p,r.translate=l,e}}(a||(a={}));let y=a,{sma:g}=h().seriesTypes,{correctFloat:m,extend:x,merge:A}=p();class D extends g{getValues(e,t){let a,i,r,o,s,n,p,l,h,c,d;let u=t.period,f=t.factor,y=t.index,g=e.xData,x=e.yData,A=x?x.length:0,D=[],b=[],v=[],G=[],M=[];if(!(A=u&&(h=g.slice(d-u,d),c=x.slice(d-u,d),p=super.getValues.call(this,{xData:h,yData:D.slice(d-u,d)},{period:u}),l=super.getValues.call(this,{xData:h,yData:b.slice(d-u,d)},{period:u}),o=(n=super.getValues.call(this,{xData:h,yData:c},{period:u,index:y})).xData[0],i=p.yData[0],r=l.yData[0],a=n.yData[0],v.push([o,i,a,r]),G.push(o),M.push([i,a,r]))}return{values:v,xData:G,yData:M}}}}D.defaultOptions=A(g.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),x(D.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),y.compose(D),h().registerSeriesType("abands",D);let b=p();return s.default})()); \ No newline at end of file diff --git a/indicators/acceleration-bands.src.js b/indicators/acceleration-bands.src.js index bad56f8117..48c9ac8d5a 100644 --- a/indicators/acceleration-bands.src.js +++ b/indicators/acceleration-bands.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/acceleration-bands * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/accumulation-distribution.js b/indicators/accumulation-distribution.js index 51ffc854b1..985c35e8a7 100644 --- a/indicators/accumulation-distribution.js +++ b/indicators/accumulation-distribution.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/accumulation-distribution * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Sebastian Bochan * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/accumulation-distribution",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/accumulation-distribution"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>f});var a=s(944),n=/*#__PURE__*/s.n(a),u=s(512),h=/*#__PURE__*/s.n(u);let{sma:c}=h().seriesTypes,{error:p,extend:l,merge:d}=n();class g extends c{static populateAverage(e,t,r,i,s){let o=t[i][1],a=t[i][2],n=t[i][3],u=r[i];return[e[i],n===o&&n===a||o===a?0:(2*n-a-o)/(o-a)*u]}getValues(e,t){let r,i,s;let o=t.period,a=e.xData,n=e.yData,u=t.volumeSeriesID,h=e.chart.get(u),c=h?.getColumn("y"),l=n?n.length:0,d=[],f=[],y=[];if(!(a.length<=o)||!l||4===n[0].length){if(!h){p("Series "+u+" not found! Check `volumeSeriesID`.",!0,e.chart);return}for(i=o;i0&&(s[1]+=d[r-1][1]),d.push(s),f.push(s[0]),y.push(s[1]);return{values:d,xData:f,yData:y}}}}g.defaultOptions=d(c.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),l(g.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),h().registerSeriesType("ad",g);let f=n();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/accumulation-distribution",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/accumulation-distribution"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>f});var a=s(944),n=s.n(a),u=s(512),h=s.n(u);let{sma:c}=h().seriesTypes,{error:p,extend:l,merge:d}=n();class g extends c{static populateAverage(e,t,r,i,s){let o=t[i][1],a=t[i][2],n=t[i][3],u=r[i];return[e[i],n===o&&n===a||o===a?0:(2*n-a-o)/(o-a)*u]}getValues(e,t){let r,i,s;let o=t.period,a=e.xData,n=e.yData,u=t.volumeSeriesID,h=e.chart.get(u),c=h?.getColumn("y"),l=n?n.length:0,d=[],f=[],y=[];if(!(a.length<=o)||!l||4===n[0].length){if(!h){p("Series "+u+" not found! Check `volumeSeriesID`.",!0,e.chart);return}for(i=o;i0&&(s[1]+=d[r-1][1]),d.push(s),f.push(s[0]),y.push(s[1]);return{values:d,xData:f,yData:y}}}}g.defaultOptions=d(c.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),l(g.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),h().registerSeriesType("ad",g);let f=n();return o.default})()); \ No newline at end of file diff --git a/indicators/accumulation-distribution.src.js b/indicators/accumulation-distribution.src.js index 9ea4cecfdb..3a4a78664b 100644 --- a/indicators/accumulation-distribution.src.js +++ b/indicators/accumulation-distribution.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/accumulation-distribution * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/ao.js b/indicators/ao.js index 249ca4648a..2c6c2f64dd 100644 --- a/indicators/ao.js +++ b/indicators/ao.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/ao * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Wojciech Chmiel * * License: www.highcharts.com/license - */function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/ao",["highcharts/highcharts"],function(e){return r(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/ao"]=r(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=r(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,r)=>(()=>{"use strict";var t={512:e=>{e.exports=r},944:r=>{r.exports=e}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,s),a.exports}s.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return s.d(r,{a:r}),r},s.d=(e,r)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var a={};s.d(a,{default:()=>m});var i=s(944),n=/*#__PURE__*/s.n(i),l=s(512),h=/*#__PURE__*/s.n(l);let{noop:p}=n(),{column:{prototype:c},sma:d}=h().seriesTypes,{extend:u,merge:g,correctFloat:f,isArray:y}=n();class x extends d{drawGraph(){let e;let r=this.options,t=this.points,o=this.userOptions.color,s=r.greaterBarColor,a=r.lowerBarColor,i=t[0];if(!o&&i)for(e=1,i.color=s;et[e-1].y?t[e].color=s:t[e].y=29&&(g=f(g+p)),u=f(u+p);for(d=33;d(()=>{"use strict";var t={512:e=>{e.exports=r},944:r=>{r.exports=e}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,s),a.exports}s.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return s.d(r,{a:r}),r},s.d=(e,r)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var a={};s.d(a,{default:()=>m});var i=s(944),n=s.n(i),l=s(512),h=s.n(l);let{noop:p}=n(),{column:{prototype:c},sma:d}=h().seriesTypes,{extend:u,merge:g,correctFloat:f,isArray:y}=n();class x extends d{drawGraph(){let e;let r=this.options,t=this.points,o=this.userOptions.color,s=r.greaterBarColor,a=r.lowerBarColor,i=t[0];if(!o&&i)for(e=1,i.color=s;et[e-1].y?t[e].color=s:t[e].y=29&&(g=f(g+p)),u=f(u+p);for(d=33;d(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>g});var a=o(944),n=/*#__PURE__*/o.n(a),p=o(512),d=/*#__PURE__*/o.n(p);let{ema:h}=d().seriesTypes,{extend:u,merge:l,error:c}=n();class f extends h{getValues(e,t){let r,s;let o=t.periods,i=t.index,a=[],n=[],p=[];if(2!==o.length||o[1]<=o[0]){c('Error: "APO requires two periods. Notice, first period should be lower than the second one."');return}let d=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!d||!h)return;let u=o[1]-o[0];for(s=0;s(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>g});var a=o(944),n=o.n(a),p=o(512),d=o.n(p);let{ema:h}=d().seriesTypes,{extend:u,merge:l,error:c}=n();class f extends h{getValues(e,t){let r,s;let o=t.periods,i=t.index,a=[],n=[],p=[];if(2!==o.length||o[1]<=o[0]){c('Error: "APO requires two periods. Notice, first period should be lower than the second one."');return}let d=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!d||!h)return;let u=o[1]-o[0];for(s=0;s(()=>{"use strict";var r,a={512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return a[t](r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};i.d(s,{default:()=>v});var n=i(944),p=/*#__PURE__*/i.n(n),l=i(512),h=/*#__PURE__*/i.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:f,error:u,merge:y}=p();!function(t){let e=["bottomLine"],r=["top","bottom"],a=["top"];function o(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function i(t,e){let r=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&r.push(o(t))}),r}function s(){let t=this,e=t.pointValKey,r=t.linesApiNames,a=t.areaLinesNames,s=t.points,n=t.options,p=t.graph,l={options:{gapSize:n.gapSize}},h=[],g=i(t,e),d=s.length,m;if(g.forEach((t,e)=>{for(h[e]=[];d--;)m=s[d],h[e].push({x:m.x,plotX:m.plotX,plotY:m[t],isNull:!f(m[t])});d=s.length}),t.userOptions.fillColor&&a.length){let e=h[g.indexOf(o(a[0]))],r=1===a.length?s:h[g.indexOf(o(a[1]))],i=t.color;t.points=r,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=y(s,l),t.graph=t.area,t.fillGraph=!0,c.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=i}r.forEach((e,r)=>{h[r]?(t.points=h[r],n[e]?t.options=y(n[e].styles,l):u('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],c.drawGraph.call(t),t["graph"+e]=t.graph):u('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=s,t.options=n,t.graph=p,c.drawGraph.call(t)}function n(t){let e,r=[],a=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=c.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",r=c.getGraphPath.call(this,t),a=e.slice(0,r.length);for(let t=a.length-1;t>=0;t--)r.push(a[t])}}else r=c.getGraphPath.apply(this,arguments);return r}function p(t){let e=[];return(this.pointArrayMap||[]).forEach(r=>{e.push(t[r])}),e}function l(){let t=this.pointArrayMap,e=[],r;e=i(this),c.translate.apply(this,arguments),this.points.forEach(a=>{t.forEach((t,o)=>{r=a[t],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(a[e[o]]=this.yAxis.toPixels(r,!0))})})}t.compose=function(t){let o=t.prototype;return o.linesApiNames=o.linesApiNames||e.slice(),o.pointArrayMap=o.pointArrayMap||r.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||a.slice(),o.drawGraph=s,o.getGraphPath=n,o.toYData=p,o.translate=l,t}}(r||(r={}));let g=r,{aroon:d}=h().seriesTypes,{extend:m,merge:x}=p();class A extends d{getValues(t,e){let r,a;let o=[],i=[],s=[],n=super.getValues.call(this,t,e);for(a=0;a {series.name}: {point.y}'}}),m(A.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),g.compose(d),h().registerSeriesType("aroonoscillator",A);let v=p();return s.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/aroon-oscillator",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/aroon-oscillator"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var r,a={512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return a[t](r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};i.d(s,{default:()=>v});var n=i(944),p=i.n(n),l=i(512),h=i.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:f,error:u,merge:y}=p();!function(t){let e=["bottomLine"],r=["top","bottom"],a=["top"];function o(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function i(t,e){let r=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&r.push(o(t))}),r}function s(){let t=this,e=t.pointValKey,r=t.linesApiNames,a=t.areaLinesNames,s=t.points,n=t.options,p=t.graph,l={options:{gapSize:n.gapSize}},h=[],g=i(t,e),d=s.length,m;if(g.forEach((t,e)=>{for(h[e]=[];d--;)m=s[d],h[e].push({x:m.x,plotX:m.plotX,plotY:m[t],isNull:!f(m[t])});d=s.length}),t.userOptions.fillColor&&a.length){let e=h[g.indexOf(o(a[0]))],r=1===a.length?s:h[g.indexOf(o(a[1]))],i=t.color;t.points=r,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=y(s,l),t.graph=t.area,t.fillGraph=!0,c.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=i}r.forEach((e,r)=>{h[r]?(t.points=h[r],n[e]?t.options=y(n[e].styles,l):u('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],c.drawGraph.call(t),t["graph"+e]=t.graph):u('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=s,t.options=n,t.graph=p,c.drawGraph.call(t)}function n(t){let e,r=[],a=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=c.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",r=c.getGraphPath.call(this,t),a=e.slice(0,r.length);for(let t=a.length-1;t>=0;t--)r.push(a[t])}}else r=c.getGraphPath.apply(this,arguments);return r}function p(t){let e=[];return(this.pointArrayMap||[]).forEach(r=>{e.push(t[r])}),e}function l(){let t=this.pointArrayMap,e=[],r;e=i(this),c.translate.apply(this,arguments),this.points.forEach(a=>{t.forEach((t,o)=>{r=a[t],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(a[e[o]]=this.yAxis.toPixels(r,!0))})})}t.compose=function(t){let o=t.prototype;return o.linesApiNames=o.linesApiNames||e.slice(),o.pointArrayMap=o.pointArrayMap||r.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||a.slice(),o.drawGraph=s,o.getGraphPath=n,o.toYData=p,o.translate=l,t}}(r||(r={}));let g=r,{aroon:d}=h().seriesTypes,{extend:m,merge:x}=p();class A extends d{getValues(t,e){let r,a;let o=[],i=[],s=[],n=super.getValues.call(this,t,e);for(a=0;a {series.name}: {point.y}'}}),m(A.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),g.compose(d),h().registerSeriesType("aroonoscillator",A);let v=p();return s.default})()); \ No newline at end of file diff --git a/indicators/aroon-oscillator.src.js b/indicators/aroon-oscillator.src.js index f474af2ffb..fb2a982bcb 100644 --- a/indicators/aroon-oscillator.src.js +++ b/indicators/aroon-oscillator.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/aroon-oscillator * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/aroon.js b/indicators/aroon.js index de85f214e9..403814ba4d 100644 --- a/indicators/aroon.js +++ b/indicators/aroon.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/aroon * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Wojciech Chmiel * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/aroon",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/aroon"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var o,r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var o=a[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>b});var s=i(944),p=/*#__PURE__*/i.n(s),l=i(512),h=/*#__PURE__*/i.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:u,error:f,merge:d}=p();!function(e){let t=["bottomLine"],o=["top","bottom"],r=["top"];function a(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function i(e,t){let o=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&o.push(a(e))}),o}function n(){let e=this,t=e.pointValKey,o=e.linesApiNames,r=e.areaLinesNames,n=e.points,s=e.options,p=e.graph,l={options:{gapSize:s.gapSize}},h=[],y=i(e,t),g=n.length,m;if(y.forEach((e,t)=>{for(h[t]=[];g--;)m=n[g],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!u(m[e])});g=n.length}),e.userOptions.fillColor&&r.length){let t=h[y.indexOf(a(r[0]))],o=1===r.length?n:h[y.indexOf(a(r[1]))],i=e.color;e.points=o,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=d(n,l),e.graph=e.area,e.fillGraph=!0,c.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=i}o.forEach((t,o)=>{h[o]?(e.points=h[o],s[t]?e.options=d(s[t].styles,l):f('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],c.drawGraph.call(e),e["graph"+t]=e.graph):f('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=n,e.options=s,e.graph=p,c.drawGraph.call(e)}function s(e){let t,o=[],r=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=c.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",o=c.getGraphPath.call(this,e),r=t.slice(0,o.length);for(let e=r.length-1;e>=0;e--)o.push(r[e])}}else o=c.getGraphPath.apply(this,arguments);return o}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(o=>{t.push(e[o])}),t}function l(){let e=this.pointArrayMap,t=[],o;t=i(this),c.translate.apply(this,arguments),this.points.forEach(r=>{e.forEach((e,a)=>{o=r[e],this.dataModify&&(o=this.dataModify.modifyValue(o)),null!==o&&(r[t[a]]=this.yAxis.toPixels(o,!0))})})}e.compose=function(e){let a=e.prototype;return a.linesApiNames=a.linesApiNames||t.slice(),a.pointArrayMap=a.pointArrayMap||o.slice(),a.pointValKey=a.pointValKey||"top",a.areaLinesNames=a.areaLinesNames||r.slice(),a.drawGraph=n,a.getGraphPath=s,a.toYData=p,a.translate=l,e}}(o||(o={}));let y=o,{sma:g}=h().seriesTypes,{extend:m,merge:x,pick:A}=p();function v(e,t){let o=e[0],r=0,a;for(a=1;a=o||"min"===t&&e[a]<=o)&&(o=e[a],r=a);return r}class w extends g{getValues(e,t){let o,r,a,i,n;let s=t.period,p=e.xData,l=e.yData,h=l?l.length:0,c=[],u=[],f=[];for(i=s-1;i {series.name}
Aroon Up: {point.y}
Aroon Down: {point.aroonDown}
'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),m(w.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),y.compose(w),h().registerSeriesType("aroon",w);let b=p();return n.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/aroon",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/aroon"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var o,r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var o=a[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>b});var s=i(944),p=i.n(s),l=i(512),h=i.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:u,error:f,merge:d}=p();!function(e){let t=["bottomLine"],o=["top","bottom"],r=["top"];function a(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function i(e,t){let o=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&o.push(a(e))}),o}function n(){let e=this,t=e.pointValKey,o=e.linesApiNames,r=e.areaLinesNames,n=e.points,s=e.options,p=e.graph,l={options:{gapSize:s.gapSize}},h=[],y=i(e,t),g=n.length,m;if(y.forEach((e,t)=>{for(h[t]=[];g--;)m=n[g],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!u(m[e])});g=n.length}),e.userOptions.fillColor&&r.length){let t=h[y.indexOf(a(r[0]))],o=1===r.length?n:h[y.indexOf(a(r[1]))],i=e.color;e.points=o,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=d(n,l),e.graph=e.area,e.fillGraph=!0,c.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=i}o.forEach((t,o)=>{h[o]?(e.points=h[o],s[t]?e.options=d(s[t].styles,l):f('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],c.drawGraph.call(e),e["graph"+t]=e.graph):f('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=n,e.options=s,e.graph=p,c.drawGraph.call(e)}function s(e){let t,o=[],r=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=c.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",o=c.getGraphPath.call(this,e),r=t.slice(0,o.length);for(let e=r.length-1;e>=0;e--)o.push(r[e])}}else o=c.getGraphPath.apply(this,arguments);return o}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(o=>{t.push(e[o])}),t}function l(){let e=this.pointArrayMap,t=[],o;t=i(this),c.translate.apply(this,arguments),this.points.forEach(r=>{e.forEach((e,a)=>{o=r[e],this.dataModify&&(o=this.dataModify.modifyValue(o)),null!==o&&(r[t[a]]=this.yAxis.toPixels(o,!0))})})}e.compose=function(e){let a=e.prototype;return a.linesApiNames=a.linesApiNames||t.slice(),a.pointArrayMap=a.pointArrayMap||o.slice(),a.pointValKey=a.pointValKey||"top",a.areaLinesNames=a.areaLinesNames||r.slice(),a.drawGraph=n,a.getGraphPath=s,a.toYData=p,a.translate=l,e}}(o||(o={}));let y=o,{sma:g}=h().seriesTypes,{extend:m,merge:x,pick:A}=p();function v(e,t){let o=e[0],r=0,a;for(a=1;a=o||"min"===t&&e[a]<=o)&&(o=e[a],r=a);return r}class w extends g{getValues(e,t){let o,r,a,i,n;let s=t.period,p=e.xData,l=e.yData,h=l?l.length:0,c=[],u=[],f=[];for(i=s-1;i {series.name}
Aroon Up: {point.y}
Aroon Down: {point.aroonDown}
'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),m(w.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),y.compose(w),h().registerSeriesType("aroon",w);let b=p();return n.default})()); \ No newline at end of file diff --git a/indicators/aroon.src.js b/indicators/aroon.src.js index 8f8175245b..d668532789 100644 --- a/indicators/aroon.src.js +++ b/indicators/aroon.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/aroon * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/atr.js b/indicators/atr.js index 684cbcb3d0..b62b3ce742 100644 --- a/indicators/atr.js +++ b/indicators/atr.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/atr * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Sebastian Bochan * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/atr",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/atr"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};a.d(i,{default:()=>l});var o=a(944),n=/*#__PURE__*/a.n(o),h=a(512),u=/*#__PURE__*/a.n(h);let{sma:p}=u().seriesTypes,{isArray:d,merge:c}=n();function f(e,t){return Math.max(e[1]-e[2],void 0===t?0:Math.abs(e[1]-t[3]),void 0===t?0:Math.abs(e[2]-t[3]))}class g extends p{getValues(e,t){let r=t.period,s=e.xData,a=e.yData,i=a?a.length:0,o=[[s[0],a[0]]],n=[],h=[],u=[],p,c,g=0,l=1,y=0;if(!(s.length<=r)&&d(a[0])&&4===a[0].length){for(c=1;c<=i;c++){var x,v;!function(e,t,r,s){let a=t[s],i=r[s];e.push([a,i])}(o,s,a,c),r(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};a.d(i,{default:()=>l});var o=a(944),n=a.n(o),h=a(512),u=a.n(h);let{sma:p}=u().seriesTypes,{isArray:d,merge:c}=n();function f(e,t){return Math.max(e[1]-e[2],void 0===t?0:Math.abs(e[1]-t[3]),void 0===t?0:Math.abs(e[2]-t[3]))}class g extends p{getValues(e,t){let r=t.period,s=e.xData,a=e.yData,i=a?a.length:0,o=[[s[0],a[0]]],n=[],h=[],u=[],p,c,g=0,l=1,y=0;if(!(s.length<=r)&&d(a[0])&&4===a[0].length){for(c=1;c<=i;c++){var x,v;!function(e,t,r,s){let a=t[s],i=r[s];e.push([a,i])}(o,s,a,c),r(()=>{"use strict";var i,o={512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return o[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};a.d(s,{default:()=>A});var n=a(944),p=/*#__PURE__*/a.n(n),l=a(512),h=/*#__PURE__*/a.n(l);let{sma:{prototype:d}}=h().seriesTypes,{defined:c,error:f,merge:u}=p();!function(t){let e=["bottomLine"],i=["top","bottom"],o=["top"];function r(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function a(t,e){let i=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&i.push(r(t))}),i}function s(){let t=this,e=t.pointValKey,i=t.linesApiNames,o=t.areaLinesNames,s=t.points,n=t.options,p=t.graph,l={options:{gapSize:n.gapSize}},h=[],y=a(t,e),g=s.length,m;if(y.forEach((t,e)=>{for(h[e]=[];g--;)m=s[g],h[e].push({x:m.x,plotX:m.plotX,plotY:m[t],isNull:!c(m[t])});g=s.length}),t.userOptions.fillColor&&o.length){let e=h[y.indexOf(r(o[0]))],i=1===o.length?s:h[y.indexOf(r(o[1]))],a=t.color;t.points=i,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=u(s,l),t.graph=t.area,t.fillGraph=!0,d.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=a}i.forEach((e,i)=>{h[i]?(t.points=h[i],n[e]?t.options=u(n[e].styles,l):f('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],d.drawGraph.call(t),t["graph"+e]=t.graph):f('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=s,t.options=n,t.graph=p,d.drawGraph.call(t)}function n(t){let e,i=[],o=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=d.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",i=d.getGraphPath.call(this,t),o=e.slice(0,i.length);for(let t=o.length-1;t>=0;t--)i.push(o[t])}}else i=d.getGraphPath.apply(this,arguments);return i}function p(t){let e=[];return(this.pointArrayMap||[]).forEach(i=>{e.push(t[i])}),e}function l(){let t=this.pointArrayMap,e=[],i;e=a(this),d.translate.apply(this,arguments),this.points.forEach(o=>{t.forEach((t,r)=>{i=o[t],this.dataModify&&(i=this.dataModify.modifyValue(i)),null!==i&&(o[e[r]]=this.yAxis.toPixels(i,!0))})})}t.compose=function(t){let r=t.prototype;return r.linesApiNames=r.linesApiNames||e.slice(),r.pointArrayMap=r.pointArrayMap||i.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||o.slice(),r.drawGraph=s,r.getGraphPath=n,r.toYData=p,r.translate=l,t}}(i||(i={}));let y=i,{sma:g}=h().seriesTypes,{extend:m,isArray:x,merge:b}=p();class v extends g{init(){h().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=b({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(t,e){let i,o,r,a,s,n,p,l,d;let c=e.period,f=e.standardDeviation,u=[],y=[],g=t.xData,m=t.yData,b=m?m.length:0,v=[];if(g.length {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),m(v.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","standardDeviation"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),y.compose(v),h().registerSeriesType("bb",v);let A=p();return s.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/bollinger-bands",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/bollinger-bands"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i,o={512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return o[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};a.d(s,{default:()=>A});var n=a(944),p=a.n(n),l=a(512),h=a.n(l);let{sma:{prototype:d}}=h().seriesTypes,{defined:c,error:f,merge:u}=p();!function(t){let e=["bottomLine"],i=["top","bottom"],o=["top"];function r(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function a(t,e){let i=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&i.push(r(t))}),i}function s(){let t=this,e=t.pointValKey,i=t.linesApiNames,o=t.areaLinesNames,s=t.points,n=t.options,p=t.graph,l={options:{gapSize:n.gapSize}},h=[],y=a(t,e),g=s.length,m;if(y.forEach((t,e)=>{for(h[e]=[];g--;)m=s[g],h[e].push({x:m.x,plotX:m.plotX,plotY:m[t],isNull:!c(m[t])});g=s.length}),t.userOptions.fillColor&&o.length){let e=h[y.indexOf(r(o[0]))],i=1===o.length?s:h[y.indexOf(r(o[1]))],a=t.color;t.points=i,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=u(s,l),t.graph=t.area,t.fillGraph=!0,d.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=a}i.forEach((e,i)=>{h[i]?(t.points=h[i],n[e]?t.options=u(n[e].styles,l):f('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],d.drawGraph.call(t),t["graph"+e]=t.graph):f('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=s,t.options=n,t.graph=p,d.drawGraph.call(t)}function n(t){let e,i=[],o=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=d.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",i=d.getGraphPath.call(this,t),o=e.slice(0,i.length);for(let t=o.length-1;t>=0;t--)i.push(o[t])}}else i=d.getGraphPath.apply(this,arguments);return i}function p(t){let e=[];return(this.pointArrayMap||[]).forEach(i=>{e.push(t[i])}),e}function l(){let t=this.pointArrayMap,e=[],i;e=a(this),d.translate.apply(this,arguments),this.points.forEach(o=>{t.forEach((t,r)=>{i=o[t],this.dataModify&&(i=this.dataModify.modifyValue(i)),null!==i&&(o[e[r]]=this.yAxis.toPixels(i,!0))})})}t.compose=function(t){let r=t.prototype;return r.linesApiNames=r.linesApiNames||e.slice(),r.pointArrayMap=r.pointArrayMap||i.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||o.slice(),r.drawGraph=s,r.getGraphPath=n,r.toYData=p,r.translate=l,t}}(i||(i={}));let y=i,{sma:g}=h().seriesTypes,{extend:m,isArray:x,merge:b}=p();class v extends g{init(){h().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=b({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(t,e){let i,o,r,a,s,n,p,l,d;let c=e.period,f=e.standardDeviation,u=[],y=[],g=t.xData,m=t.yData,b=m?m.length:0,v=[];if(g.length {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),m(v.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","standardDeviation"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),y.compose(v),h().registerSeriesType("bb",v);let A=p();return s.default})()); \ No newline at end of file diff --git a/indicators/bollinger-bands.src.js b/indicators/bollinger-bands.src.js index a31a749923..b129099a84 100644 --- a/indicators/bollinger-bands.src.js +++ b/indicators/bollinger-bands.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/bollinger-bands * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/cci.js b/indicators/cci.js index 77db2d26d6..2894e49acb 100644 --- a/indicators/cci.js +++ b/indicators/cci.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/cci * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Sebastian Bochan * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/cci",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/cci"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>l});var a=i(944),n=/*#__PURE__*/i.n(a),h=i(512),c=/*#__PURE__*/i.n(h);let{sma:u}=c().seriesTypes,{isArray:p,merge:d}=n();class f extends u{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,o=i?i.length:0,a=[],n=[],h=[],c=[],u,d,f=[],l,g=1,y,x,v,b;if(!(s.length<=r)&&p(i[0])&&4===i[0].length){for(;g(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>l});var a=i(944),n=i.n(a),h=i(512),c=i.n(h);let{sma:u}=c().seriesTypes,{isArray:p,merge:d}=n();class f extends u{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,o=i?i.length:0,a=[],n=[],h=[],c=[],u,d,f=[],l,g=1,y,x,v,b;if(!(s.length<=r)&&p(i[0])&&4===i[0].length){for(;g(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>S});var o=i(944),n=/*#__PURE__*/i.n(o),u=i(512),p=/*#__PURE__*/i.n(u);let{sma:l}=p().seriesTypes,{error:h,extend:d,merge:c}=n();class g extends l{static populateAverage(e,t,r,s,i){let a=t[s][1],o=t[s][2],n=t[s][3],u=r[s];return[e[s],n===a&&n===o||a===o?0:(2*n-o-a)/(a-o)*u]}getValues(e,t){let r,s,i;let a=t.period,o=e.xData,n=e.yData,u=t.volumeSeriesID,p=e.chart.get(u),l=p?.getColumn("y"),d=n?n.length:0,c=[],f=[],y=[];if(!(o.length<=a)||!d||4===n[0].length){if(!p){h("Series "+u+" not found! Check `volumeSeriesID`.",!0,e.chart);return}for(s=a;s0&&(i[1]+=c[r-1][1]),c.push(i),f.push(i[0]),y.push(i[1]);return{values:c,xData:f,yData:y}}}}g.defaultOptions=c(l.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),d(g.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),p().registerSeriesType("ad",g);let{ema:f}=p().seriesTypes,{correctFloat:y,extend:m,merge:v,error:x}=n();class D extends f{getValues(e,t){let r,s;let i=t.periods,a=t.period,o=[],n=[],u=[];if(2!==i.length||i[1]<=i[0]){x('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."');return}let p=g.prototype.getValues.call(this,e,{volumeSeriesID:t.volumeSeriesID,period:a});if(!p)return;let l=super.getValues.call(this,p,{period:i[0]}),h=super.getValues.call(this,p,{period:i[1]});if(!l||!h)return;let d=i[1]-i[0];for(s=0;s(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>S});var o=i(944),n=i.n(o),u=i(512),p=i.n(u);let{sma:l}=p().seriesTypes,{error:h,extend:d,merge:c}=n();class g extends l{static populateAverage(e,t,r,s,i){let a=t[s][1],o=t[s][2],n=t[s][3],u=r[s];return[e[s],n===a&&n===o||a===o?0:(2*n-o-a)/(a-o)*u]}getValues(e,t){let r,s,i;let a=t.period,o=e.xData,n=e.yData,u=t.volumeSeriesID,p=e.chart.get(u),l=p?.getColumn("y"),d=n?n.length:0,c=[],f=[],y=[];if(!(o.length<=a)||!d||4===n[0].length){if(!p){h("Series "+u+" not found! Check `volumeSeriesID`.",!0,e.chart);return}for(s=a;s0&&(i[1]+=c[r-1][1]),c.push(i),f.push(i[0]),y.push(i[1]);return{values:c,xData:f,yData:y}}}}g.defaultOptions=c(l.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),d(g.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),p().registerSeriesType("ad",g);let{ema:f}=p().seriesTypes,{correctFloat:y,extend:m,merge:v,error:x}=n();class D extends f{getValues(e,t){let r,s;let i=t.periods,a=t.period,o=[],n=[],u=[];if(2!==i.length||i[1]<=i[0]){x('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."');return}let p=g.prototype.getValues.call(this,e,{volumeSeriesID:t.volumeSeriesID,period:a});if(!p)return;let l=super.getValues.call(this,p,{period:i[0]}),h=super.getValues.call(this,p,{period:i[1]});if(!l||!h)return;let d=i[1]-i[0];for(s=0;s(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>d});var n=i(944),a=/*#__PURE__*/i.n(n),u=i(512),l=/*#__PURE__*/i.n(u);let{sma:h}=l().seriesTypes,{merge:p}=a();class c extends h{constructor(){super(...arguments),this.nameBase="Chaikin Money Flow"}isValid(){let e=this.chart,t=this.options,r=this.linkedParent,s=this.volumeSeries||(this.volumeSeries=e.get(t.params.volumeSeriesID)),i=r?.pointArrayMap?.length===4;function o(e){return e.dataTable.rowCount>=t.params.period}return!!(r&&s&&o(r)&&o(s)&&i)}getValues(e,t){if(this.isValid())return this.getMoneyFlow(e.xData,e.yData,this.volumeSeries.getColumn("y"),t.period)}getMoneyFlow(e,t,r,s){let i=t.length,o=[],n=[],a=[],u=[],l,h,p=-1,c=0,d=0;function f(e,t){let r=e[1],s=e[2],i=e[3];return null!==t&&null!==r&&null!==s&&null!==i&&r!==s?(i-s-(r-i))/(r-s)*t:(p=l,null)}if(s>0&&s<=i){for(l=0;l=s&&0!==c?d/c:null),u.push([n[0],a[0]]);l=s?d/c:null],n.push(h[0]),a.push(h[1]),u.push([h[0],h[1]])}return{values:u,xData:n,yData:a}}}c.defaultOptions=p(h.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),l().registerSeriesType("cmf",c);let d=a();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/cmf",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/cmf"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>d});var n=i(944),a=i.n(n),u=i(512),l=i.n(u);let{sma:h}=l().seriesTypes,{merge:p}=a();class c extends h{constructor(){super(...arguments),this.nameBase="Chaikin Money Flow"}isValid(){let e=this.chart,t=this.options,r=this.linkedParent,s=this.volumeSeries||(this.volumeSeries=e.get(t.params.volumeSeriesID)),i=r?.pointArrayMap?.length===4;function o(e){return e.dataTable.rowCount>=t.params.period}return!!(r&&s&&o(r)&&o(s)&&i)}getValues(e,t){if(this.isValid())return this.getMoneyFlow(e.xData,e.yData,this.volumeSeries.getColumn("y"),t.period)}getMoneyFlow(e,t,r,s){let i=t.length,o=[],n=[],a=[],u=[],l,h,p=-1,c=0,d=0;function f(e,t){let r=e[1],s=e[2],i=e[3];return null!==t&&null!==r&&null!==s&&null!==i&&r!==s?(i-s-(r-i))/(r-s)*t:(p=l,null)}if(s>0&&s<=i){for(l=0;l=s&&0!==c?d/c:null),u.push([n[0],a[0]]);l=s?d/c:null],n.push(h[0]),a.push(h[1]),u.push([h[0],h[1]])}return{values:u,xData:n,yData:a}}}c.defaultOptions=p(h.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),l().registerSeriesType("cmf",c);let d=a();return o.default})()); \ No newline at end of file diff --git a/indicators/cmf.src.js b/indicators/cmf.src.js index dd84c33b10..d5d493f9c8 100644 --- a/indicators/cmf.src.js +++ b/indicators/cmf.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/cmf * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/cmo.js b/indicators/cmo.js index 077924f7f3..6918a61d3a 100644 --- a/indicators/cmo.js +++ b/indicators/cmo.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/cmo * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Pawel Lysy * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/cmo",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/cmo"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>l});var o=i(944),n=/*#__PURE__*/i.n(o),h=i(512),p=/*#__PURE__*/i.n(h);let{sma:u}=p().seriesTypes,{isNumber:c,merge:d}=n();class f extends u{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,a=i?i.length:0,o=[],n=[],h=[],p,u=t.index,d;if(s.lengthe[u]));let f=0,l=0,g=0,y;for(let e=r;e>0;e--)d[e]>d[e-1]?l+=d[e]-d[e-1]:d[e]0?100*(l-g)/(l+g):0,n.push(s[r]),h.push(y),o.push([s[r],y]),p=r+1;pd[p-1]?l+=d[p]-d[p-1]:d[p]d[p-r-1]?l-=f:g-=f,y=l+g>0?100*(l-g)/(l+g):0,n.push(s[p]),h.push(y),o.push([s[p],y]);return{values:o,xData:n,yData:h}}}f.defaultOptions=d(u.defaultOptions,{params:{period:20,index:3}}),p().registerSeriesType("cmo",f);let l=n();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/cmo",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/cmo"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>l});var o=i(944),n=i.n(o),h=i(512),p=i.n(h);let{sma:u}=p().seriesTypes,{isNumber:c,merge:d}=n();class f extends u{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,a=i?i.length:0,o=[],n=[],h=[],p,u=t.index,d;if(s.lengthe[u]));let f=0,l=0,g=0,y;for(let e=r;e>0;e--)d[e]>d[e-1]?l+=d[e]-d[e-1]:d[e]0?100*(l-g)/(l+g):0,n.push(s[r]),h.push(y),o.push([s[r],y]),p=r+1;pd[p-1]?l+=d[p]-d[p-1]:d[p]d[p-r-1]?l-=f:g-=f,y=l+g>0?100*(l-g)/(l+g):0,n.push(s[p]),h.push(y),o.push([s[p],y]);return{values:o,xData:n,yData:h}}}f.defaultOptions=d(u.defaultOptions,{params:{period:20,index:3}}),p().registerSeriesType("cmo",f);let l=n();return a.default})()); \ No newline at end of file diff --git a/indicators/cmo.src.js b/indicators/cmo.src.js index 98051a53f1..b8b05d9bb2 100644 --- a/indicators/cmo.src.js +++ b/indicators/cmo.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/cmo * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/dema.js b/indicators/dema.js index 2a5bfa28f2..0905facfc8 100644 --- a/indicators/dema.js +++ b/indicators/dema.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/dema * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Rafał Sebestjański * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/dema",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/dema"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>l});var o=i(944),n=/*#__PURE__*/i.n(o),h=i(512),d=/*#__PURE__*/i.n(h);let{ema:u}=d().seriesTypes,{correctFloat:p,isArray:c,merge:f}=n();class g extends u{getEMA(e,t,r,s,i,a){return super.calculateEma(a||[],e,void 0===i?1:i,this.EMApercent,t,void 0===s?-1:s,r)}getValues(e,t){let r=t.period,s=[],i=2*r,a=e.xData,o=e.yData,n=o?o.length:0,h=[],d=[],u=[],f=0,g=0,l,y,x,v,m=-1,H,b=0;if(this.EMApercent=2/(r+1),!(n<2*r-1)){for(c(o[0])&&(m=t.index?t.index:0),b=(f=super.accumulatePeriodPoints(r,m,o))/r,f=0,v=r;v(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>l});var o=i(944),n=i.n(o),h=i(512),d=i.n(h);let{ema:u}=d().seriesTypes,{correctFloat:p,isArray:c,merge:f}=n();class g extends u{getEMA(e,t,r,s,i,a){return super.calculateEma(a||[],e,void 0===i?1:i,this.EMApercent,t,void 0===s?-1:s,r)}getValues(e,t){let r=t.period,s=[],i=2*r,a=e.xData,o=e.yData,n=o?o.length:0,h=[],d=[],u=[],f=0,g=0,l,y,x,v,m=-1,H,b=0;if(this.EMApercent=2/(r+1),!(n<2*r-1)){for(c(o[0])&&(m=t.index?t.index:0),b=(f=super.accumulatePeriodPoints(r,m,o))/r,f=0,v=r;v(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};i.d(s,{default:()=>x});var n=i(944),o=/*#__PURE__*/i.n(n),p=i(512),d=/*#__PURE__*/i.n(p);let{sma:h}=d().seriesTypes,{correctFloat:c,defined:g,extend:u,isArray:l,merge:y}=o();class f extends h{init(){let e=arguments,t=e[1].params,r=t&&t.average?t.average:void 0;this.averageIndicator=d().seriesTypes[r]||h,this.averageIndicator.prototype.init.apply(this,e)}calculateDisparityIndex(e,t){return c(e-t)/t*100}getValues(e,t){let r=t.index,a=e.xData,i=e.yData,s=i?i.length:0,n=[],o=[],p=[],d=this.averageIndicator,h=l(i[0]),c=d.prototype.getValues(e,t),u=c.yData,y=a.indexOf(c.xData[0]);if(u&&0!==u.length&&g(r)&&!(i.length<=y)){for(let e=y;e(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};i.d(s,{default:()=>x});var n=i(944),o=i.n(n),p=i(512),d=i.n(p);let{sma:h}=d().seriesTypes,{correctFloat:c,defined:g,extend:u,isArray:l,merge:y}=o();class f extends h{init(){let e=arguments,t=e[1].params,r=t&&t.average?t.average:void 0;this.averageIndicator=d().seriesTypes[r]||h,this.averageIndicator.prototype.init.apply(this,e)}calculateDisparityIndex(e,t){return c(e-t)/t*100}getValues(e,t){let r=t.index,a=e.xData,i=e.yData,s=i?i.length:0,n=[],o=[],p=[],d=this.averageIndicator,h=l(i[0]),c=d.prototype.getValues(e,t),u=c.yData,y=a.indexOf(c.xData[0]);if(u&&0!==u.length&&g(r)&&!(i.length<=y)){for(let e=y;e(()=>{"use strict";var a,s={512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function r(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={exports:{}};return s[t](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>I});var n=r(944),l=/*#__PURE__*/r.n(n),p=r(512),h=/*#__PURE__*/r.n(p);let{sma:{prototype:c}}=h().seriesTypes,{defined:u,error:f,merge:y}=l();!function(t){let e=["bottomLine"],a=["top","bottom"],s=["top"];function i(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function r(t,e){let a=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&a.push(i(t))}),a}function o(){let t=this,e=t.pointValKey,a=t.linesApiNames,s=t.areaLinesNames,o=t.points,n=t.options,l=t.graph,p={options:{gapSize:n.gapSize}},h=[],d=r(t,e),g=o.length,m;if(d.forEach((t,e)=>{for(h[e]=[];g--;)m=o[g],h[e].push({x:m.x,plotX:m.plotX,plotY:m[t],isNull:!u(m[t])});g=o.length}),t.userOptions.fillColor&&s.length){let e=h[d.indexOf(i(s[0]))],a=1===s.length?o:h[d.indexOf(i(s[1]))],r=t.color;t.points=a,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=y(o,p),t.graph=t.area,t.fillGraph=!0,c.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=r}a.forEach((e,a)=>{h[a]?(t.points=h[a],n[e]?t.options=y(n[e].styles,p):f('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],c.drawGraph.call(t),t["graph"+e]=t.graph):f('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=o,t.options=n,t.graph=l,c.drawGraph.call(t)}function n(t){let e,a=[],s=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=c.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",a=c.getGraphPath.call(this,t),s=e.slice(0,a.length);for(let t=s.length-1;t>=0;t--)a.push(s[t])}}else a=c.getGraphPath.apply(this,arguments);return a}function l(t){let e=[];return(this.pointArrayMap||[]).forEach(a=>{e.push(t[a])}),e}function p(){let t=this.pointArrayMap,e=[],a;e=r(this),c.translate.apply(this,arguments),this.points.forEach(s=>{t.forEach((t,i)=>{a=s[t],this.dataModify&&(a=this.dataModify.modifyValue(a)),null!==a&&(s[e[i]]=this.yAxis.toPixels(a,!0))})})}t.compose=function(t){let i=t.prototype;return i.linesApiNames=i.linesApiNames||e.slice(),i.pointArrayMap=i.pointArrayMap||a.slice(),i.pointValKey=i.pointValKey||"top",i.areaLinesNames=i.areaLinesNames||s.slice(),i.drawGraph=o,i.getGraphPath=n,i.toYData=l,i.translate=p,t}}(a||(a={}));let d=a,{sma:g}=h().seriesTypes,{correctFloat:m,extend:D,isArray:x,merge:M}=l();class b extends g{calculateDM(t,e,a){let s=t[e][1],i=t[e][2],r=t[e-1][1],o=t[e-1][2];return m(s-r>o-i?a?Math.max(s-r,0):0:a?0:Math.max(o-i,0))}calculateDI(t,e){return t/e*100}calculateDX(t,e){return m(Math.abs(t-e)/Math.abs(t+e)*100)}smoothValues(t,e,a){return m(t-t/a+e)}getTR(t,e){return m(Math.max(t[1]-t[2],e?Math.abs(t[1]-e[3]):0,e?Math.abs(t[2]-e[3]):0))}getValues(t,e){let a=e.period,s=t.xData,i=t.yData,r=i?i.length:0,o=[],n=[],l=[];if(s.length<=a||!x(i[0])||4!==i[0].length)return;let p=0,h=0,c=0,u;for(u=1;u {series.name}
DX: {point.y}
+DI: {point.plusDI}
-DI: {point.minusDI}
'},plusDILine:{styles:{lineWidth:1,lineColor:"#06b535"}},minusDILine:{styles:{lineWidth:1,lineColor:"#f21313"}},dataGrouping:{approximation:"averages"}}),D(b.prototype,{areaLinesNames:[],nameBase:"DMI",linesApiNames:["plusDILine","minusDILine"],pointArrayMap:["y","plusDI","minusDI"],parallelArrays:["x","y","plusDI","minusDI"],pointValKey:"y"}),d.compose(b),h().registerSeriesType("dmi",b);let I=l();return o.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/dmi",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/dmi"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var a,s={512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function r(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={exports:{}};return s[t](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>I});var n=r(944),l=r.n(n),p=r(512),h=r.n(p);let{sma:{prototype:c}}=h().seriesTypes,{defined:u,error:f,merge:y}=l();!function(t){let e=["bottomLine"],a=["top","bottom"],s=["top"];function i(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function r(t,e){let a=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&a.push(i(t))}),a}function o(){let t=this,e=t.pointValKey,a=t.linesApiNames,s=t.areaLinesNames,o=t.points,n=t.options,l=t.graph,p={options:{gapSize:n.gapSize}},h=[],d=r(t,e),g=o.length,m;if(d.forEach((t,e)=>{for(h[e]=[];g--;)m=o[g],h[e].push({x:m.x,plotX:m.plotX,plotY:m[t],isNull:!u(m[t])});g=o.length}),t.userOptions.fillColor&&s.length){let e=h[d.indexOf(i(s[0]))],a=1===s.length?o:h[d.indexOf(i(s[1]))],r=t.color;t.points=a,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=y(o,p),t.graph=t.area,t.fillGraph=!0,c.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=r}a.forEach((e,a)=>{h[a]?(t.points=h[a],n[e]?t.options=y(n[e].styles,p):f('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],c.drawGraph.call(t),t["graph"+e]=t.graph):f('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=o,t.options=n,t.graph=l,c.drawGraph.call(t)}function n(t){let e,a=[],s=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=c.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",a=c.getGraphPath.call(this,t),s=e.slice(0,a.length);for(let t=s.length-1;t>=0;t--)a.push(s[t])}}else a=c.getGraphPath.apply(this,arguments);return a}function l(t){let e=[];return(this.pointArrayMap||[]).forEach(a=>{e.push(t[a])}),e}function p(){let t=this.pointArrayMap,e=[],a;e=r(this),c.translate.apply(this,arguments),this.points.forEach(s=>{t.forEach((t,i)=>{a=s[t],this.dataModify&&(a=this.dataModify.modifyValue(a)),null!==a&&(s[e[i]]=this.yAxis.toPixels(a,!0))})})}t.compose=function(t){let i=t.prototype;return i.linesApiNames=i.linesApiNames||e.slice(),i.pointArrayMap=i.pointArrayMap||a.slice(),i.pointValKey=i.pointValKey||"top",i.areaLinesNames=i.areaLinesNames||s.slice(),i.drawGraph=o,i.getGraphPath=n,i.toYData=l,i.translate=p,t}}(a||(a={}));let d=a,{sma:g}=h().seriesTypes,{correctFloat:m,extend:D,isArray:x,merge:M}=l();class b extends g{calculateDM(t,e,a){let s=t[e][1],i=t[e][2],r=t[e-1][1],o=t[e-1][2];return m(s-r>o-i?a?Math.max(s-r,0):0:a?0:Math.max(o-i,0))}calculateDI(t,e){return t/e*100}calculateDX(t,e){return m(Math.abs(t-e)/Math.abs(t+e)*100)}smoothValues(t,e,a){return m(t-t/a+e)}getTR(t,e){return m(Math.max(t[1]-t[2],e?Math.abs(t[1]-e[3]):0,e?Math.abs(t[2]-e[3]):0))}getValues(t,e){let a=e.period,s=t.xData,i=t.yData,r=i?i.length:0,o=[],n=[],l=[];if(s.length<=a||!x(i[0])||4!==i[0].length)return;let p=0,h=0,c=0,u;for(u=1;u {series.name}
DX: {point.y}
+DI: {point.plusDI}
-DI: {point.minusDI}
'},plusDILine:{styles:{lineWidth:1,lineColor:"#06b535"}},minusDILine:{styles:{lineWidth:1,lineColor:"#f21313"}},dataGrouping:{approximation:"averages"}}),D(b.prototype,{areaLinesNames:[],nameBase:"DMI",linesApiNames:["plusDILine","minusDILine"],pointArrayMap:["y","plusDI","minusDI"],parallelArrays:["x","y","plusDI","minusDI"],pointValKey:"y"}),d.compose(b),h().registerSeriesType("dmi",b);let I=l();return o.default})()); \ No newline at end of file diff --git a/indicators/dmi.src.js b/indicators/dmi.src.js index b569100cd9..88988ad077 100644 --- a/indicators/dmi.src.js +++ b/indicators/dmi.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/dmi * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/dpo.js b/indicators/dpo.js index f1bd90e42e..bf5d34f5b5 100644 --- a/indicators/dpo.js +++ b/indicators/dpo.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/dpo * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Wojciech Chmiel * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/dpo",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/dpo"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>x});var a=o(944),n=/*#__PURE__*/o.n(a),h=o(512),p=/*#__PURE__*/o.n(h);let{sma:d}=p().seriesTypes,{extend:u,merge:c,correctFloat:f,pick:l}=n();function g(e,t,r,s,o){let i=l(t[r][s],t[r]);return o?f(e-i):f(e+i)}class y extends d{getValues(e,t){let r=t.period,s=t.index,o=Math.floor(r/2+1),i=r+o,a=e.xData||[],n=e.yData||[],h=n.length,p=[],d=[],u=[],c,f,y,x,v,m=0;if(!(a.length<=i)){for(x=0;x(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>x});var a=o(944),n=o.n(a),h=o(512),p=o.n(h);let{sma:d}=p().seriesTypes,{extend:u,merge:c,correctFloat:f,pick:l}=n();function g(e,t,r,s,o){let i=l(t[r][s],t[r]);return o?f(e-i):f(e+i)}class y extends d{getValues(e,t){let r=t.period,s=t.index,o=Math.floor(r/2+1),i=r+o,a=e.xData||[],n=e.yData||[],h=n.length,p=[],d=[],u=[],c,f,y,x,v,m=0;if(!(a.length<=i)){for(x=0;x(()=>{"use strict";var t={944:t=>{t.exports=e}},r={};function o(e){var i=r[e];if(void 0!==i)return i.exports;var n=r[e]={exports:{}};return t[e](n,n.exports,o),n.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>a});var n=o(944);let a=/*#__PURE__*/o.n(n)();return i.default})()); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/indicators/ema",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/indicators/ema"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},r={};function o(e){var i=r[e];if(void 0!==i)return i.exports;var n=r[e]={exports:{}};return t[e](n,n.exports,o),n.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>a});var n=o(944);let a=o.n(n)();return i.default})()); \ No newline at end of file diff --git a/indicators/ichimoku-kinko-hyo.js b/indicators/ichimoku-kinko-hyo.js index 60309b9366..5ce064ac77 100644 --- a/indicators/ichimoku-kinko-hyo.js +++ b/indicators/ichimoku-kinko-hyo.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/ichimoku-kinko-hyo * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Sebastian Bochan * * License: www.highcharts.com/license - */function(o,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(o._Highcharts,o._Highcharts.dataGrouping.approximations,o._Highcharts.Color,o._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/ichimoku-kinko-hyo",["highcharts/highcharts"],function(o){return t(o,o.dataGrouping,["approximations"],o.Color,o.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/ichimoku-kinko-hyo"]=t(o._Highcharts,o._Highcharts.dataGrouping.approximations,o._Highcharts.Color,o._Highcharts.SeriesRegistry):o.Highcharts=t(o.Highcharts,o.Highcharts.dataGrouping.approximations,o.Highcharts.Color,o.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(o,t,e,n)=>(()=>{"use strict";var i={620:o=>{o.exports=e},512:o=>{o.exports=n},956:o=>{o.exports=t},944:t=>{t.exports=o}},s={};function p(o){var t=s[o];if(void 0!==t)return t.exports;var e=s[o]={exports:{}};return i[o](e,e.exports,p),e.exports}p.n=o=>{var t=o&&o.__esModule?()=>o.default:()=>o;return p.d(t,{a:t}),t},p.d=(o,t)=>{for(var e in t)p.o(t,e)&&!p.o(o,e)&&Object.defineProperty(o,e,{enumerable:!0,get:t[e]})},p.o=(o,t)=>Object.prototype.hasOwnProperty.call(o,t);var r={};p.d(r,{default:()=>G});var a=p(944),l=/*#__PURE__*/p.n(a),h=p(956),u=/*#__PURE__*/p.n(h),c=p(620),g=/*#__PURE__*/p.n(c),d=p(512),f=/*#__PURE__*/p.n(d);let{parse:k}=g(),{sma:S}=f().seriesTypes,{defined:y,extend:x,isArray:m,isNumber:v,getClosestDistance:C,merge:A,objectEach:Y}=l();function P(o){return{high:o.reduce(function(o,t){return Math.max(o,t[1])},-1/0),low:o.reduce(function(o,t){return Math.min(o,t[2])},1/0)}}function B(o){let t=o.indicator;t.points=o.points,t.nextPoints=o.nextPoints,t.color=o.color,t.options=A(o.options.senkouSpan.styles,o.gap),t.graph=o.graph,t.fillGraph=!0,f().seriesTypes.sma.prototype.drawGraph.call(t)}class b extends S{constructor(){super(...arguments),this.data=[],this.options={},this.points=[],this.graphCollection=[]}init(){super.init.apply(this,arguments),this.options=A({tenkanLine:{styles:{lineColor:this.color}},kijunLine:{styles:{lineColor:this.color}},chikouLine:{styles:{lineColor:this.color}},senkouSpanA:{styles:{lineColor:this.color,fill:k(this.color).setOpacity(.5).get()}},senkouSpanB:{styles:{lineColor:this.color,fill:k(this.color).setOpacity(.5).get()}},senkouSpan:{styles:{fill:k(this.color).setOpacity(.2).get()}}},this.options)}toYData(o){return[o.tenkanSen,o.kijunSen,o.chikouSpan,o.senkouSpanA,o.senkouSpanB]}translate(){for(let o of(f().seriesTypes.sma.prototype.translate.apply(this),this.points))for(let t of this.pointArrayMap){let e=o[t];v(e)&&(o["plot"+t]=this.yAxis.toPixels(e,!0),o.plotY=o["plot"+t],o.tooltipPos=[o.plotX,o["plot"+t]],o.isNull=!1)}}drawGraph(){let o=this,t=o.points,e=o.options,n=o.graph,i=o.color,s={options:{gapSize:e.gapSize}},p=o.pointArrayMap.length,r=[[],[],[],[],[],[]],a={tenkanLine:r[0],kijunLine:r[1],chikouLine:r[2],senkouSpanA:r[3],senkouSpanB:r[4],senkouSpan:r[5]},l=[],h=o.options.senkouSpan,u=h.color||h.styles.fill,c=h.negativeColor,g=[[],[]],d=[[],[]],k=t.length,S=0,x,m,v,C,P,b,G,H,N,X,w,T,j;for(o.ikhMap=a;k--;){for(v=0,m=t[k];v=0&&h<=1&&u>=0&&u<=1)return{plotX:o.plotX+u*i,plotY:o.plotY+u*s}}}(a.senkouSpanA[o-1],a.senkouSpanA[o],a.senkouSpanB[o-1],a.senkouSpanB[o]);if(t){let e={plotX:t.plotX,plotY:t.plotY,isNull:!1,intersectPoint:!0};a.senkouSpanA.splice(o,0,e),a.senkouSpanB.splice(o,0,e),l.push(o)}}}if(Y(a,(t,n)=>{e[n]&&"senkouSpan"!==n&&(o.points=r[S],o.options=A(e[n].styles,s),o.graph=o["graph"+n],o.fillGraph=!1,o.color=i,f().seriesTypes.sma.prototype.drawGraph.call(o),o["graph"+n]=o.graph),S++}),o.graphCollection)for(let t of o.graphCollection)o[t].destroy(),delete o[t];if(o.graphCollection=[],c&&a.senkouSpanA[0]&&a.senkouSpanB[0]){for(l.unshift(0),l.push(a.senkouSpanA.length-1),T=0;T=1){let o=Math.floor(b.length/2);if(b[o].plotY===G[o].plotY){for(j=0,H=0,N=0;jN?0:1]=g[w].concat(b),d[w]=d[w].concat(G)}else g[w=b[o].plotY>G[o].plotY?0:1]=g[w].concat(b),d[w]=d[w].concat(G)}else g[w=b[0].plotY>G[0].plotY?0:1]=g[w].concat(b),d[w]=d[w].concat(G);["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(t,n){g[n].length&&d[n].length&&(X=0===n?u:c,B({indicator:o,points:g[n],nextPoints:d[n],color:X,options:e,gap:s,graph:o[t]}),o[t]=o.graph,o.graphCollection.push(t))})}else B({indicator:o,points:a.senkouSpanB,nextPoints:a.senkouSpanA,color:u,options:e,gap:s,graph:o.graphsenkouSpan}),o.graphsenkouSpan=o.graph;delete o.nextPoints,delete o.fillGraph,o.points=t,o.options=e,o.graph=n,o.color=i}getGraphPath(o){let t=[],e,n=[];if(o=o||this.points,this.fillGraph&&this.nextPoints){if((e=f().seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",t=f().seriesTypes.sma.prototype.getGraphPath.call(this,o),n=e.slice(0,t.length);for(let o=n.length-1;o>=0;o--)t.push(n[o])}}else t=f().seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return t}getValues(o,t){let e,n,i,s,p,r,a,l,h,u;let c=t.period,g=t.periodTenkan,d=t.periodSenkouSpanB,f=o.xData,k=o.yData,S=o.xAxis,y=k&&k.length||0,x=C(S.series.map(o=>o.getColumn("x"))),v=[],A=[];if(f.length<=c||!m(k[0])||4!==k[0].length)return;let Y=f[0]-c*x;for(p=0;p=g&&(r=((n=P(k.slice(p-g,p))).high+n.low)/2),p>=c&&(h=(r+(a=((i=P(k.slice(p-c,p))).high+i.low)/2))/2),p>=d&&(u=((s=P(k.slice(p-d,p))).high+s.low)/2),l=k[p][3],e=f[p],void 0===v[p]&&(v[p]=[]),void 0===v[p+c-1]&&(v[p+c-1]=[]),v[p+c-1][0]=r,v[p+c-1][1]=a,v[p+c-1][2]=void 0,void 0===v[p+1]&&(v[p+1]=[]),v[p+1][2]=l,p<=c&&(v[p+c-1][3]=void 0,v[p+c-1][4]=void 0),void 0===v[p+2*c-2]&&(v[p+2*c-2]=[]),v[p+2*c-2][3]=h,v[p+2*c-2][4]=u,A.push(e);for(p=1;p<=c;p++)A.push(e+p*x);return{values:v,xData:A,yData:v}}}b.defaultOptions=A(S.defaultOptions,{params:{index:void 0,period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
TENKAN SEN: {point.tenkanSen:.3f}
KIJUN SEN: {point.kijunSen:.3f}
CHIKOU SPAN: {point.chikouSpan:.3f}
SENKOU SPAN A: {point.senkouSpanA:.3f}
SENKOU SPAN B: {point.senkouSpanB:.3f}
'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}}),x(b.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"]}),u()["ichimoku-averages"]=function(){let o;let t=[];return[].forEach.call(arguments,function(e,n){t.push(u().average(e)),o=!o&&void 0===t[n]}),o?void 0:t},f().registerSeriesType("ikh",b);let G=l();return r.default})()); \ No newline at end of file + */function(o,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(o._Highcharts,o._Highcharts.dataGrouping.approximations,o._Highcharts.Color,o._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/ichimoku-kinko-hyo",["highcharts/highcharts"],function(o){return t(o,o.dataGrouping,["approximations"],o.Color,o.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/ichimoku-kinko-hyo"]=t(o._Highcharts,o._Highcharts.dataGrouping.approximations,o._Highcharts.Color,o._Highcharts.SeriesRegistry):o.Highcharts=t(o.Highcharts,o.Highcharts.dataGrouping.approximations,o.Highcharts.Color,o.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(o,t,e,n)=>(()=>{"use strict";var i={620:o=>{o.exports=e},512:o=>{o.exports=n},956:o=>{o.exports=t},944:t=>{t.exports=o}},s={};function p(o){var t=s[o];if(void 0!==t)return t.exports;var e=s[o]={exports:{}};return i[o](e,e.exports,p),e.exports}p.n=o=>{var t=o&&o.__esModule?()=>o.default:()=>o;return p.d(t,{a:t}),t},p.d=(o,t)=>{for(var e in t)p.o(t,e)&&!p.o(o,e)&&Object.defineProperty(o,e,{enumerable:!0,get:t[e]})},p.o=(o,t)=>Object.prototype.hasOwnProperty.call(o,t);var r={};p.d(r,{default:()=>G});var a=p(944),l=p.n(a),h=p(956),u=p.n(h),c=p(620),g=p.n(c),d=p(512),f=p.n(d);let{parse:k}=g(),{sma:S}=f().seriesTypes,{defined:y,extend:x,isArray:m,isNumber:v,getClosestDistance:C,merge:A,objectEach:Y}=l();function P(o){return{high:o.reduce(function(o,t){return Math.max(o,t[1])},-1/0),low:o.reduce(function(o,t){return Math.min(o,t[2])},1/0)}}function B(o){let t=o.indicator;t.points=o.points,t.nextPoints=o.nextPoints,t.color=o.color,t.options=A(o.options.senkouSpan.styles,o.gap),t.graph=o.graph,t.fillGraph=!0,f().seriesTypes.sma.prototype.drawGraph.call(t)}class b extends S{constructor(){super(...arguments),this.data=[],this.options={},this.points=[],this.graphCollection=[]}init(){super.init.apply(this,arguments),this.options=A({tenkanLine:{styles:{lineColor:this.color}},kijunLine:{styles:{lineColor:this.color}},chikouLine:{styles:{lineColor:this.color}},senkouSpanA:{styles:{lineColor:this.color,fill:k(this.color).setOpacity(.5).get()}},senkouSpanB:{styles:{lineColor:this.color,fill:k(this.color).setOpacity(.5).get()}},senkouSpan:{styles:{fill:k(this.color).setOpacity(.2).get()}}},this.options)}toYData(o){return[o.tenkanSen,o.kijunSen,o.chikouSpan,o.senkouSpanA,o.senkouSpanB]}translate(){for(let o of(f().seriesTypes.sma.prototype.translate.apply(this),this.points))for(let t of this.pointArrayMap){let e=o[t];v(e)&&(o["plot"+t]=this.yAxis.toPixels(e,!0),o.plotY=o["plot"+t],o.tooltipPos=[o.plotX,o["plot"+t]],o.isNull=!1)}}drawGraph(){let o=this,t=o.points,e=o.options,n=o.graph,i=o.color,s={options:{gapSize:e.gapSize}},p=o.pointArrayMap.length,r=[[],[],[],[],[],[]],a={tenkanLine:r[0],kijunLine:r[1],chikouLine:r[2],senkouSpanA:r[3],senkouSpanB:r[4],senkouSpan:r[5]},l=[],h=o.options.senkouSpan,u=h.color||h.styles.fill,c=h.negativeColor,g=[[],[]],d=[[],[]],k=t.length,S=0,x,m,v,C,P,b,G,H,N,X,w,T,j;for(o.ikhMap=a;k--;){for(v=0,m=t[k];v=0&&h<=1&&u>=0&&u<=1)return{plotX:o.plotX+u*i,plotY:o.plotY+u*s}}}(a.senkouSpanA[o-1],a.senkouSpanA[o],a.senkouSpanB[o-1],a.senkouSpanB[o]);if(t){let e={plotX:t.plotX,plotY:t.plotY,isNull:!1,intersectPoint:!0};a.senkouSpanA.splice(o,0,e),a.senkouSpanB.splice(o,0,e),l.push(o)}}}if(Y(a,(t,n)=>{e[n]&&"senkouSpan"!==n&&(o.points=r[S],o.options=A(e[n].styles,s),o.graph=o["graph"+n],o.fillGraph=!1,o.color=i,f().seriesTypes.sma.prototype.drawGraph.call(o),o["graph"+n]=o.graph),S++}),o.graphCollection)for(let t of o.graphCollection)o[t].destroy(),delete o[t];if(o.graphCollection=[],c&&a.senkouSpanA[0]&&a.senkouSpanB[0]){for(l.unshift(0),l.push(a.senkouSpanA.length-1),T=0;T=1){let o=Math.floor(b.length/2);if(b[o].plotY===G[o].plotY){for(j=0,H=0,N=0;jN?0:1]=g[w].concat(b),d[w]=d[w].concat(G)}else g[w=b[o].plotY>G[o].plotY?0:1]=g[w].concat(b),d[w]=d[w].concat(G)}else g[w=b[0].plotY>G[0].plotY?0:1]=g[w].concat(b),d[w]=d[w].concat(G);["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(t,n){g[n].length&&d[n].length&&(X=0===n?u:c,B({indicator:o,points:g[n],nextPoints:d[n],color:X,options:e,gap:s,graph:o[t]}),o[t]=o.graph,o.graphCollection.push(t))})}else B({indicator:o,points:a.senkouSpanB,nextPoints:a.senkouSpanA,color:u,options:e,gap:s,graph:o.graphsenkouSpan}),o.graphsenkouSpan=o.graph;delete o.nextPoints,delete o.fillGraph,o.points=t,o.options=e,o.graph=n,o.color=i}getGraphPath(o){let t=[],e,n=[];if(o=o||this.points,this.fillGraph&&this.nextPoints){if((e=f().seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",t=f().seriesTypes.sma.prototype.getGraphPath.call(this,o),n=e.slice(0,t.length);for(let o=n.length-1;o>=0;o--)t.push(n[o])}}else t=f().seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return t}getValues(o,t){let e,n,i,s,p,r,a,l,h,u;let c=t.period,g=t.periodTenkan,d=t.periodSenkouSpanB,f=o.xData,k=o.yData,S=o.xAxis,y=k&&k.length||0,x=C(S.series.map(o=>o.getColumn("x"))),v=[],A=[];if(f.length<=c||!m(k[0])||4!==k[0].length)return;let Y=f[0]-c*x;for(p=0;p=g&&(r=((n=P(k.slice(p-g,p))).high+n.low)/2),p>=c&&(h=(r+(a=((i=P(k.slice(p-c,p))).high+i.low)/2))/2),p>=d&&(u=((s=P(k.slice(p-d,p))).high+s.low)/2),l=k[p][3],e=f[p],void 0===v[p]&&(v[p]=[]),void 0===v[p+c-1]&&(v[p+c-1]=[]),v[p+c-1][0]=r,v[p+c-1][1]=a,v[p+c-1][2]=void 0,void 0===v[p+1]&&(v[p+1]=[]),v[p+1][2]=l,p<=c&&(v[p+c-1][3]=void 0,v[p+c-1][4]=void 0),void 0===v[p+2*c-2]&&(v[p+2*c-2]=[]),v[p+2*c-2][3]=h,v[p+2*c-2][4]=u,A.push(e);for(p=1;p<=c;p++)A.push(e+p*x);return{values:v,xData:A,yData:v}}}b.defaultOptions=A(S.defaultOptions,{params:{index:void 0,period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
TENKAN SEN: {point.tenkanSen:.3f}
KIJUN SEN: {point.kijunSen:.3f}
CHIKOU SPAN: {point.chikouSpan:.3f}
SENKOU SPAN A: {point.senkouSpanA:.3f}
SENKOU SPAN B: {point.senkouSpanB:.3f}
'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}}),x(b.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"]}),u()["ichimoku-averages"]=function(){let o;let t=[];return[].forEach.call(arguments,function(e,n){t.push(u().average(e)),o=!o&&void 0===t[n]}),o?void 0:t},f().registerSeriesType("ikh",b);let G=l();return r.default})()); \ No newline at end of file diff --git a/indicators/ichimoku-kinko-hyo.src.js b/indicators/ichimoku-kinko-hyo.src.js index a28214a658..8a5a5ca513 100644 --- a/indicators/ichimoku-kinko-hyo.src.js +++ b/indicators/ichimoku-kinko-hyo.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/ichimoku-kinko-hyo * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/indicators-all.js b/indicators/indicators-all.js index 4112e06119..e323656685 100644 --- a/indicators/indicators-all.js +++ b/indicators/indicators-all.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/indicators-all * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Pawel Fus * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Chart,e._Highcharts.SeriesRegistry,e._Highcharts.dataGrouping.approximations,e._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/indicators/indicators-all",["highcharts/highcharts"],function(e){return t(e,e.Chart,e.SeriesRegistry,e.dataGrouping,["approximations"],e.Color)}):"object"==typeof exports?exports["highcharts/indicators/indicators-all"]=t(e._Highcharts,e._Highcharts.Chart,e._Highcharts.SeriesRegistry,e._Highcharts.dataGrouping.approximations,e._Highcharts.Color):e.Highcharts=t(e.Highcharts,e.Highcharts.Chart,e.Highcharts.SeriesRegistry,e.Highcharts.dataGrouping.approximations,e.Highcharts.Color)}("undefined"==typeof window?this:window,(e,t,s,a,o)=>(()=>{"use strict";var i,r={960:e=>{e.exports=t},620:e=>{e.exports=o},512:e=>{e.exports=s},956:e=>{e.exports=a},944:t=>{t.exports=e}},n={};function l(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return r[e](s,s.exports,l),s.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var s in t)l.o(t,s)&&!l.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var p={};l.d(p,{default:()=>a8});var u=l(944),h=/*#__PURE__*/l.n(u),d=l(960),c=/*#__PURE__*/l.n(d),m=l(512),g=/*#__PURE__*/l.n(m);let{line:y}=g().seriesTypes,{addEvent:f,fireEvent:x,error:D,extend:v,isArray:S,merge:A,pick:b}=h(),C=(e,t)=>{let s=[],a=e.pointArrayMap,o=t&&e.dataTable.modified||e.dataTable;if(!a)return e.getColumn("y",t);let i=a.map(s=>e.getColumn(s,t));for(let e=0;ei[s]?.[e]||0);s.push(t)}return s};class T extends y{destroy(){this.dataEventsToUnbind.forEach(function(e){e()}),super.destroy.apply(this,arguments)}getName(){let e=[],t=this.name;return t||((this.nameComponents||[]).forEach(function(t,s){e.push(this.options.params[t]+b(this.nameSuffixes[s],""))},this),t=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+e.join(", ")+")":"")),t}getValues(e,t){let s=t.period,a=e.xData||[],o=e.yData,i=o.length,r=[],n=[],l=[],p,u=-1,h=0,d,c=0;if(!(a.length{d.forEach((t,s)=>{let a=c[t]||[];a.push(S(e)?e[s]:e),c[t]||(c[t]=a)})}),a&&!this.hasGroupedData&&this.visible&&this.points){if(this.cropped){this.xAxis&&(n=this.xAxis.min,l=this.xAxis.max);let a=this.cropData(t,n,l),o=["x",...this.pointArrayMap||["y"]];for(let t=0;t<(a.modified?.rowCount||0);t++){let s=o.map(e=>this.getColumn(e)[t]||0);e.push(s)}let p=this.getColumn("x");i=h.xData.indexOf(p[0]),r=h.xData.indexOf(p[p.length-1]),-1===i&&r===h.xData.length-2&&e[0][0]===s[0].x&&e.shift(),this.updateData(e)}else(this.updateAllPoints||h.xData.length!==a-1&&h.xData.length!==a+1)&&(o=!1,this.updateData(h.values))}o&&(t.setColumns({...c,x:h.xData}),this.options.data=h.values),this.calculateOn.xAxis&&this.getColumn("x",!0).length&&(this.isDirty=!0,this.redraw()),this.isDirtyData=!!this.linkedSeries.length,x(this,"updatedData")}processData(){let e=this.options.compareToMain,t=this.linkedParent;super.processData.apply(this,arguments),this.dataModify&&t&&t.dataModify&&t.dataModify.compareValue&&e&&(this.dataModify.compareValue=t.dataModify.compareValue)}}T.defaultOptions=A(y.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:3,period:14}}),v(T.prototype,{calculateOn:{chart:"init"},hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],useCommonDataGrouping:!0}),g().registerSeriesType("sma",T);let{sma:P}=g().seriesTypes,{correctFloat:M,isArray:V,merge:L}=h();class k extends P{accumulatePeriodPoints(e,t,s){let a=0,o=0;for(;o0&&(o[1]+=d[s-1][1]),d.push(o),c.push(o[0]),m.push(o[1]);return{values:d,xData:c,yData:m}}}}N.defaultOptions=I(O.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),E(N.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),g().registerSeriesType("ad",N);let{noop:B}=h(),{column:{prototype:G},sma:W}=g().seriesTypes,{extend:z,merge:Y,correctFloat:F,isArray:X}=h();class R extends W{drawGraph(){let e;let t=this.options,s=this.points,a=this.userOptions.color,o=t.greaterBarColor,i=t.lowerBarColor,r=s[0];if(!a&&r)for(e=1,r.color=o;es[e-1].y?s[e].color=o:s[e].y=29&&(m=F(m+u)),c=F(c+u);for(d=33;d{e!==t&&s.push(o(e))}),s}function r(){let e=this,t=e.pointValKey,s=e.linesApiNames,a=e.areaLinesNames,r=e.points,n=e.options,l=e.graph,p={options:{gapSize:n.gapSize}},u=[],h=i(e,t),d=r.length,c;if(h.forEach((e,t)=>{for(u[t]=[];d--;)c=r[d],u[t].push({x:c.x,plotX:c.plotX,plotY:c[e],isNull:!H(c[e])});d=r.length}),e.userOptions.fillColor&&a.length){let t=u[h.indexOf(o(a[0]))],s=1===a.length?r:u[h.indexOf(o(a[1]))],i=e.color;e.points=s,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=Z(r,p),e.graph=e.area,e.fillGraph=!0,K.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=i}s.forEach((t,s)=>{u[s]?(e.points=u[s],n[t]?e.options=Z(n[t].styles,p):U('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],K.drawGraph.call(e),e["graph"+t]=e.graph):U('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=r,e.options=n,e.graph=l,K.drawGraph.call(e)}function n(e){let t,s=[],a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=K.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",s=K.getGraphPath.call(this,e),a=t.slice(0,s.length);for(let e=a.length-1;e>=0;e--)s.push(a[e])}}else s=K.getGraphPath.apply(this,arguments);return s}function l(e){let t=[];return(this.pointArrayMap||[]).forEach(s=>{t.push(e[s])}),t}function p(){let e=this.pointArrayMap,t=[],s;t=i(this),K.translate.apply(this,arguments),this.points.forEach(a=>{e.forEach((e,o)=>{s=a[e],this.dataModify&&(s=this.dataModify.modifyValue(s)),null!==s&&(a[t[o]]=this.yAxis.toPixels(s,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||s.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||a.slice(),o.drawGraph=r,o.getGraphPath=n,o.toYData=l,o.translate=p,e}}(i||(i={}));let _=i,{sma:j}=g().seriesTypes,{extend:q,merge:$,pick:J}=h();function Q(e,t){let s=e[0],a=0,o;for(o=1;o=s||"min"===t&&e[o]<=s)&&(s=e[o],a=o);return a}class ee extends j{getValues(e,t){let s,a,o,i,r;let n=t.period,l=e.xData,p=e.yData,u=p?p.length:0,h=[],d=[],c=[];for(i=n-1;i {series.name}
Aroon Up: {point.y}
Aroon Down: {point.aroonDown}
'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),q(ee.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),_.compose(ee),g().registerSeriesType("aroon",ee);let{aroon:et}=g().seriesTypes,{extend:es,merge:ea}=h();class eo extends et{getValues(e,t){let s,a;let o=[],i=[],r=[],n=super.getValues.call(this,e,t);for(a=0;a {series.name}: {point.y}'}}),es(eo.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),_.compose(et),g().registerSeriesType("aroonoscillator",eo);let{sma:ei}=g().seriesTypes,{isArray:er,merge:en}=h();function el(e,t){return Math.max(e[1]-e[2],void 0===t?0:Math.abs(e[1]-t[3]),void 0===t?0:Math.abs(e[2]-t[3]))}class ep extends ei{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[[a[0],o[0]]],n=[],l=[],p=[],u,h,d=0,c=1,m=0;if(!(a.length<=s)&&er(o[0])&&4===o[0].length){for(h=1;h<=i;h++){var g,y;!function(e,t,s,a){let o=t[a],i=s[a];e.push([o,i])}(r,a,o,h),s {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),eh(em.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","standardDeviation"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),_.compose(em),g().registerSeriesType("bb",em);let{sma:eg}=g().seriesTypes,{isArray:ey,merge:ef}=h();class ex extends eg{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p=[],u,h,d=[],c,m=1,g,y,f,x;if(!(a.length<=s)&&ey(o[0])&&4===o[0].length){for(;m=t.params.period}return!!(s&&a&&i(s)&&i(a)&&o)}getValues(e,t){if(this.isValid())return this.getMoneyFlow(e.xData,e.yData,this.volumeSeries.getColumn("y"),t.period)}getMoneyFlow(e,t,s,a){let o=t.length,i=[],r=[],n=[],l=[],p,u,h=-1,d=0,c=0;function m(e,t){let s=e[1],a=e[2],o=e[3];return null!==t&&null!==s&&null!==a&&null!==o&&s!==a?(o-a-(s-o))/(s-a)*t:(h=p,null)}if(a>0&&a<=o){for(p=0;p=a&&0!==d?c/d:null),l.push([r[0],n[0]]);p=a?c/d:null],r.push(u[0]),n.push(u[1]),l.push([u[0],u[1]])}return{values:l,xData:r,yData:n}}}eS.defaultOptions=ev(eD.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),g().registerSeriesType("cmf",eS);let{sma:eA}=g().seriesTypes,{correctFloat:eb,extend:eC,isArray:eT,merge:eP}=h();class eM extends eA{calculateDM(e,t,s){let a=e[t][1],o=e[t][2],i=e[t-1][1],r=e[t-1][2];return eb(a-i>r-o?s?Math.max(a-i,0):0:s?0:Math.max(r-o,0))}calculateDI(e,t){return e/t*100}calculateDX(e,t){return eb(Math.abs(e-t)/Math.abs(e+t)*100)}smoothValues(e,t,s){return eb(e-e/s+t)}getTR(e,t){return eb(Math.max(e[1]-e[2],t?Math.abs(e[1]-t[3]):0,t?Math.abs(e[2]-t[3]):0))}getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[];if(a.length<=s||!eT(o[0])||4!==o[0].length)return;let p=0,u=0,h=0,d;for(d=1;d {series.name}
DX: {point.y}
+DI: {point.plusDI}
-DI: {point.minusDI}
'},plusDILine:{styles:{lineWidth:1,lineColor:"#06b535"}},minusDILine:{styles:{lineWidth:1,lineColor:"#f21313"}},dataGrouping:{approximation:"averages"}}),eC(eM.prototype,{areaLinesNames:[],nameBase:"DMI",linesApiNames:["plusDILine","minusDILine"],pointArrayMap:["y","plusDI","minusDI"],parallelArrays:["x","y","plusDI","minusDI"],pointValKey:"y"}),_.compose(eM),g().registerSeriesType("dmi",eM);let{sma:eV}=g().seriesTypes,{extend:eL,merge:ek,correctFloat:eO,pick:ew}=h();function eE(e,t,s,a,o){let i=ew(t[s][a],t[s]);return o?eO(e-i):eO(e+i)}class eI extends eV{getValues(e,t){let s=t.period,a=t.index,o=Math.floor(s/2+1),i=s+o,r=e.xData||[],n=e.yData||[],l=n.length,p=[],u=[],h=[],d,c,m,g,y,f=0;if(!(r.length<=i)){for(g=0;ge[u]));let d=0,c=0,m=0,g;for(let e=s;e>0;e--)h[e]>h[e-1]?c+=h[e]-h[e-1]:h[e]0?100*(c-m)/(c+m):0,n.push(a[s]),l.push(g),r.push([a[s],g]),p=s+1;ph[p-1]?c+=h[p]-h[p-1]:h[p]h[p-s-1]?c-=d:m-=d,g=c+m>0?100*(c-m)/(c+m):0,n.push(a[p]),l.push(g),r.push([a[p],g]);return{values:r,xData:n,yData:l}}}eK.defaultOptions=eR(eF.defaultOptions,{params:{period:20,index:3}}),g().registerSeriesType("cmo",eK);let{ema:eH}=g().seriesTypes,{correctFloat:eU,isArray:eZ,merge:e_}=h();class ej extends eH{getEMA(e,t,s,a,o,i){return super.calculateEma(i||[],e,void 0===o?1:o,this.EMApercent,t,void 0===a?-1:a,s)}getValues(e,t){let s=t.period,a=[],o=2*s,i=e.xData,r=e.yData,n=r?r.length:0,l=[],p=[],u=[],h=0,d=0,c,m,g,y,f=-1,x,D=0;if(this.EMApercent=2/(s+1),!(n<2*s-1)){for(eZ(r[0])&&(f=t.index?t.index:0),D=(h=super.accumulatePeriodPoints(s,f,r))/s,h=0,y=s;yt)return[e[a-3],0!==s.prevLevel3?e2(s.level3-s.prevLevel3)/s.prevLevel3*100:null]}}e4.defaultOptions=e3(e1.defaultOptions),g().registerSeriesType("trix",e4);let{ema:e5}=g().seriesTypes,{extend:e6,merge:e9,error:e8}=h();class e7 extends e5{getValues(e,t){let s,a;let o=t.periods,i=t.index,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0]){e8('Error: "APO requires two periods. Notice, first period should be lower than the second one."');return}let p=super.getValues.call(this,e,{index:i,period:o[0]}),u=super.getValues.call(this,e,{index:i,period:o[1]});if(!p||!u)return;let h=o[1]-o[0];for(a=0;a=0&&u<=1&&h>=0&&h<=1)return{plotX:e.plotX+h*o,plotY:e.plotY+h*i}}}(l.senkouSpanA[e-1],l.senkouSpanA[e],l.senkouSpanB[e-1],l.senkouSpanB[e]);if(t){let s={plotX:t.plotX,plotY:t.plotY,isNull:!1,intersectPoint:!0};l.senkouSpanA.splice(e,0,s),l.senkouSpanB.splice(e,0,s),p.push(e)}}}if(th(l,(t,a)=>{s[a]&&"senkouSpan"!==a&&(e.points=n[f],e.options=tu(s[a].styles,i),e.graph=e["graph"+a],e.fillGraph=!1,e.color=o,g().seriesTypes.sma.prototype.drawGraph.call(e),e["graph"+a]=e.graph),f++}),e.graphCollection)for(let t of e.graphCollection)e[t].destroy(),delete e[t];if(e.graphCollection=[],d&&l.senkouSpanA[0]&&l.senkouSpanB[0]){for(p.unshift(0),p.push(l.senkouSpanA.length-1),L=0;L=1){let e=Math.floor(b.length/2);if(b[e].plotY===C[e].plotY){for(k=0,T=0,P=0;kP?0:1]=c[V].concat(b),m[V]=m[V].concat(C)}else c[V=b[e].plotY>C[e].plotY?0:1]=c[V].concat(b),m[V]=m[V].concat(C)}else c[V=b[0].plotY>C[0].plotY?0:1]=c[V].concat(b),m[V]=m[V].concat(C);["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(t,a){c[a].length&&m[a].length&&(M=0===a?h:d,tc({indicator:e,points:c[a],nextPoints:m[a],color:M,options:s,gap:i,graph:e[t]}),e[t]=e.graph,e.graphCollection.push(t))})}else tc({indicator:e,points:l.senkouSpanB,nextPoints:l.senkouSpanA,color:h,options:s,gap:i,graph:e.graphsenkouSpan}),e.graphsenkouSpan=e.graph;delete e.nextPoints,delete e.fillGraph,e.points=t,e.options=s,e.graph=a,e.color=o}getGraphPath(e){let t=[],s,a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((s=g().seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&s.length){s[0][0]="L",t=g().seriesTypes.sma.prototype.getGraphPath.call(this,e),a=s.slice(0,t.length);for(let e=a.length-1;e>=0;e--)t.push(a[e])}}else t=g().seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return t}getValues(e,t){let s,a,o,i,r,n,l,p,u,h;let d=t.period,c=t.periodTenkan,m=t.periodSenkouSpanB,g=e.xData,y=e.yData,f=e.xAxis,x=y&&y.length||0,D=tp(f.series.map(e=>e.getColumn("x"))),v=[],S=[];if(g.length<=d||!tn(y[0])||4!==y[0].length)return;let A=g[0]-d*D;for(r=0;r=c&&(n=((a=td(y.slice(r-c,r))).high+a.low)/2),r>=d&&(u=(n+(l=((o=td(y.slice(r-d,r))).high+o.low)/2))/2),r>=m&&(h=((i=td(y.slice(r-m,r))).high+i.low)/2),p=y[r][3],s=g[r],void 0===v[r]&&(v[r]=[]),void 0===v[r+d-1]&&(v[r+d-1]=[]),v[r+d-1][0]=n,v[r+d-1][1]=l,v[r+d-1][2]=void 0,void 0===v[r+1]&&(v[r+1]=[]),v[r+1][2]=p,r<=d&&(v[r+d-1][3]=void 0,v[r+d-1][4]=void 0),void 0===v[r+2*d-2]&&(v[r+2*d-2]=[]),v[r+2*d-2][3]=u,v[r+2*d-2][4]=h,S.push(s);for(r=1;r<=d;r++)S.push(s+r*D);return{values:v,xData:S,yData:v}}}tm.defaultOptions=tu(to.defaultOptions,{params:{index:void 0,period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
TENKAN SEN: {point.tenkanSen:.3f}
KIJUN SEN: {point.kijunSen:.3f}
CHIKOU SPAN: {point.chikouSpan:.3f}
SENKOU SPAN A: {point.senkouSpanA:.3f}
SENKOU SPAN B: {point.senkouSpanB:.3f}
'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}}),tr(tm.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"]}),tt()["ichimoku-averages"]=function(){let e;let t=[];return[].forEach.call(arguments,function(s,a){t.push(tt().average(s)),e=!e&&void 0===t[a]}),e?void 0:t},g().registerSeriesType("ikh",tm);let{sma:tg}=g().seriesTypes,{correctFloat:ty,extend:tf,merge:tx}=h();class tD extends tg{init(){g().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=tx({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l;let p=t.period,u=t.periodATR,h=t.multiplierATR,d=t.index,c=e.yData,m=c?c.length:0,y=[],f=g().seriesTypes.ema.prototype.getValues(e,{period:p,index:d}),x=g().seriesTypes.atr.prototype.getValues(e,{period:u}),D=[],v=[];if(!(m {series.name}
Upper Channel: {point.top}
EMA({series.options.params.period}): {point.middle}
Lower Channel: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1}),tf(tD.prototype,{nameBase:"Keltner Channels",areaLinesNames:["top","bottom"],nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),_.compose(tD),g().registerSeriesType("keltnerchannels",tD);let{ema:tv,sma:tS}=g().seriesTypes,{correctFloat:tA,error:tb,extend:tC,isArray:tT,merge:tP}=h();class tM extends tS{calculateTrend(e,t){return e[t][1]+e[t][2]+e[t][3]>e[t-1][1]+e[t-1][2]+e[t-1][3]?1:-1}isValidData(e){let t=this.chart,s=this.options,a=this.linkedParent,o=tT(e)&&4===e.length,i=this.volumeSeries||(this.volumeSeries=t.get(s.params.volumeSeriesID));return i||tb("Series "+s.params.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,a.chart),!!([a,i].every(function(e){return e&&e.dataTable.rowCount>=s.params.slowAvgPeriod})&&o)}getCM(e,t,s,a,o){return tA(t+(s===a?e:o))}getDM(e,t){return tA(e-t)}getVolumeForce(e){let t=[],s=0,a,o=1,i=0,r=e[0][1]-e[0][2],n=0,l;for(;o=t.fastAvgPeriod&&(d=u=this.getEMA(g,d,y,x,0,p,a)[1]),p>=t.slowAvgPeriod&&(c=h=this.getEMA(g,c,f,D,0,p,a)[1],n.push(l=tA(u-h)),n.length>=t.signalPeriod&&(m=n.slice(-t.signalPeriod).reduce((e,t)=>e+t)/t.signalPeriod),s.push([a[p],l,m]),i.push(a[p]),r.push([l,m]));return{values:s,xData:i,yData:r}}}tM.defaultOptions=tP(tS.defaultOptions,{params:{fastAvgPeriod:34,slowAvgPeriod:55,signalPeriod:13,volumeSeriesID:"volume"},signalLine:{styles:{lineWidth:1,lineColor:"#ff0000"}},dataGrouping:{approximation:"averages"},tooltip:{pointFormat:' {series.name}
Klinger: {point.y}
Signal: {point.signal}
'}}),tC(tM.prototype,{areaLinesNames:[],linesApiNames:["signalLine"],nameBase:"Klinger",nameComponents:["fastAvgPeriod","slowAvgPeriod"],pointArrayMap:["y","signal"],parallelArrays:["x","y","signal"],pointValKey:"y"}),_.compose(tM),g().registerSeriesType("klinger",tM);let{noop:tV}=h(),{column:tL,sma:tk}=g().seriesTypes,{extend:tO,correctFloat:tw,defined:tE,merge:tI}=h();class tN extends tk{init(){g().seriesTypes.sma.prototype.init.apply(this,arguments);let e=this.color;this.options&&(tE(this.colorIndex)&&(this.options.signalLine&&this.options.signalLine.styles&&!this.options.signalLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.signalLine.styles.lineColor=this.color),this.options.macdLine&&this.options.macdLine.styles&&!this.options.macdLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.macdLine.styles.lineColor=this.color)),this.macdZones={zones:this.options.macdLine.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones.length}),this.color=e}toYData(e){return[e.y,e.signal,e.MACD]}translate(){let e=this,t=["plotSignal","plotMACD"];h().seriesTypes.column.prototype.translate.apply(e),e.points.forEach(function(s){[s.signal,s.MACD].forEach(function(a,o){null!==a&&(s[t[o]]=e.yAxis.toPixels(a,!0))})})}destroy(){this.graph=null,this.graphmacd=this.graphmacd&&this.graphmacd.destroy(),this.graphsignal=this.graphsignal&&this.graphsignal.destroy(),g().seriesTypes.sma.prototype.destroy.apply(this,arguments)}drawGraph(){let e=this,t=e.points,s=e.options,a=e.zones,o={options:{gapSize:s.gapSize}},i=[[],[]],r,n=t.length;for(;n--;)tE((r=t[n]).plotMACD)&&i[0].push({plotX:r.plotX,plotY:r.plotMACD,isNull:!tE(r.plotMACD)}),tE(r.plotSignal)&&i[1].push({plotX:r.plotX,plotY:r.plotSignal,isNull:!tE(r.plotMACD)});["macd","signal"].forEach((t,a)=>{e.points=i[a],e.options=tI(s[`${t}Line`]?.styles||{},o),e.graph=e[`graph${t}`],e.zones=(e[`${t}Zones`].zones||[]).slice(e[`${t}Zones`].startIndex||0),g().seriesTypes.sma.prototype.drawGraph.call(e),e[`graph${t}`]=e.graph}),e.points=t,e.options=s,e.zones=a}applyZones(){let e=this.zones;this.zones=this.signalZones.zones,g().seriesTypes.sma.prototype.applyZones.call(this),this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(),this.zones=e}getValues(e,t){let s=t.longPeriod-t.shortPeriod,a=[],o=[],i=[],r,n,l,p=0,u=[];if(!(e.xData.length=u[0][0]&&(a[l][2]=u[p][1],i[l]=[0,u[p][1],a[l][3]],null===a[l][3]?(a[l][1]=0,i[l][0]=0):(a[l][1]=tw(a[l][3]-u[p][1]),i[l][0]=tw(a[l][3]-u[p][1])),p++);return{values:a,xData:o,yData:i}}}}tN.defaultOptions=tI(tk.defaultOptions,{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,crisp:!1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:' {series.name}
Value: {point.MACD}
Signal: {point.signal}
Histogram: {point.y}
'},dataGrouping:{approximation:"averages"},minPointLength:0}),tO(tN.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:tV,getColumnMetrics:h().seriesTypes.column.prototype.getColumnMetrics,crispCol:h().seriesTypes.column.prototype.crispCol,drawPoints:h().seriesTypes.column.prototype.drawPoints}),g().registerSeriesType("macd",tN);let{sma:tB}=g().seriesTypes,{extend:tG,merge:tW,error:tz,isArray:tY}=h();function tF(e){return e.reduce(function(e,t){return e+t})}function tX(e){return(e[1]+e[2]+e[3])/3}class tR extends tB{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=t.decimals,n=e.chart.get(t.volumeSeriesID),l=n?.getColumn("y")||[],p=[],u=[],h=[],d=[],c=[],m,g,y,f,x,D,v=!1,S=1;if(!n){tz("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}if(!(a.length<=s)&&tY(o[0])&&4===o[0].length&&l){for(m=tX(o[S]);S=g,y=m*l[S],d.push(v?y:0),c.push(v?0:y),S++;for(D=S-1;DS-1&&(d.shift(),c.shift(),g=m,v=(m=tX(o[D]))>g,y=m*l[D],d.push(v?y:0),c.push(v?0:y)),f=tF(c),x=parseFloat((100-100/(1+tF(d)/f)).toFixed(r)),p.push([a[D],x]),u.push(a[D]),h.push(x);return{values:p,xData:u,yData:h}}}}tR.defaultOptions=tW(tB.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",decimals:4}}),tG(tR.prototype,{nameBase:"Money Flow Index"}),g().registerSeriesType("mfi",tR);let{sma:tK}=g().seriesTypes,{extend:tH,isArray:tU,merge:tZ}=h();function t_(e,t,s,a,o){let i=t[s-1][o]-t[s-a-1][o];return[e[s-1],i]}class tj extends tK{getValues(e,t){let s,a;let o=t.period,i=t.index,r=e.xData,n=e.yData,l=n?n.length:0,p=[],u=[],h=[];if(!(r.length<=o)&&tU(n[0])){for(s=o+1;sc?h+g[u]:m===c?h:h-g[u],p=[a[u],d],h=d,c=m,i.push(p),r.push(a[u]),n.push(p[1]);else{t1("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}return{values:i,xData:r,yData:n}}}t4.defaultOptions=t3(tQ.defaultOptions,{marker:{enabled:!1},params:{index:void 0,period:void 0,volumeSeriesID:"volume"},tooltip:{valueDecimals:0}}),t2(t4.prototype,{nameComponents:void 0}),g().registerSeriesType("obv",t4);let t5=g().seriesTypes.sma.prototype.pointClass;function t6(e,t){let s=e.series.pointArrayMap,a,o=s.length;for(g().seriesTypes.sma.prototype.pointClass.prototype[t].call(e);o--;)e[a="dataLabel"+s[o]]&&e[a].element&&e[a].destroy(),e[a]=null}let{sma:t9}=g().seriesTypes,{merge:t8,extend:t7,defined:se,isArray:st}=h();class ss extends t9{toYData(e){return[e.P]}translate(){let e=this;super.translate.apply(e),e.points.forEach(function(t){e.pointArrayMap.forEach(function(s){se(t[s])&&(t["plot"+s]=e.yAxis.toPixels(t[s],!0))})}),e.plotEndPoint=e.xAxis.toPixels(e.endPoint,!0)}getGraphPath(e){let t=this,s=[[],[],[],[],[],[],[],[],[]],a=t.pointArrayMap.length,o=t.plotEndPoint,i=[],r,n,l=e.length,p;for(;l--;){for(p=0,n=e[l];p{i=i.concat(super.getGraphPath.call(t,e))}),i}drawDataLabels(){let e,t,s,a;let o=this,i=o.pointArrayMap;o.options.dataLabels.enabled&&(t=o.points.length,i.concat([!1]).forEach((r,n)=>{for(a=t;a--;)s=o.points[a],r?(s.y=s[r],s.pivotLine=r,s.plotY=s["plot"+r],e=s["dataLabel"+r],n&&(s["dataLabel"+i[n-1]]=s.dataLabel),s.dataLabels||(s.dataLabels=[]),s.dataLabels[0]=s.dataLabel=e=e&&e.element?e:null):s["dataLabel"+i[n-1]]=s.dataLabel;super.drawDataLabels.call(o)}))}getValues(e,t){let s,a,o,i,r,n,l;let p=t.period,u=e.xData,h=e.yData,d=h?h.length:0,c=this[t.algorithm+"Placement"],m=[],g=[],y=[];if(!(u.length[Math.min(e[0],a[t]),Math.max(e[1],a[s])],[Number.MAX_VALUE,-Number.MAX_VALUE])}},su={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]},{sma:sh}=g().seriesTypes,{merge:sd,extend:sc}=h();class sm extends sh{getValues(e,t){let s,a,o,i,r,n,l;let p=t.period,u=e.xData,h=e.yData,d=h?h.length:0,c=[],m=[],g=[];if(!(d {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),sy(sD.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle"}),_.compose(sD),g().registerSeriesType("priceenvelopes",sD);let{sma:sv}=g().seriesTypes,{merge:sS}=h();function sA(e,t){return parseFloat(e.toFixed(t))}class sb extends sv{constructor(){super(...arguments),this.nameComponents=void 0}getValues(e,t){let s=e.xData,a=e.yData,o=t.maxAccelerationFactor,i=t.increment,r=t.initialAccelerationFactor,n=t.decimals,l=t.index,p=[],u=[],h=[],d=t.initialAccelerationFactor,c,m=a[0][1],g,y,f,x=1,D,v,S,A,b=a[0][2],C,T,P,M;if(!(l>=a.length)){for(M=0;Mb?1:-1,g=m-b,y=(d=t.initialAccelerationFactor)*g,p.push([s[l],b]),u.push(s[l]),h.push(sA(b,n)),M=l+1;MMath.max(A,S)?I+N:Math.max(A,S):B,V=c,L=m,C=1===V?T>L?T:L:PO||-1===k&&T>O?1:-1,W=c,z=m,Y=d,y=(d=G===W?1===G&&C>z||-1===G&&Ce[d]));c0?u+=g:h+=Math.abs(g),c++;for(y=sw(u/(s-1),r),f=sw(h/(s-1),r),x=c;x0?(u=g,h=0):(u=0,h=Math.abs(g)),y=sw((y*(s-1)+u)/s,r),m=0===(f=sw((f*(s-1)+h)/s,r))?100:0===y?0:sw(100-100/(1+y/f),r),n.push([a[x],m]),l.push(a[x]),p.push(m);return{values:n,xData:l,yData:p}}}}sE.defaultOptions=sO(sL.defaultOptions,{params:{decimals:4,index:3}}),g().registerSeriesType("rsi",sE);let{sma:sI}=g().seriesTypes,{extend:sN,isArray:sB,merge:sG}=h();class sW extends sI{init(){super.init.apply(this,arguments),this.options=sG({smoothedLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s=t.periods[0],a=t.periods[1],o=e.xData,i=e.yData,r=i?i.length:0,n=[],l=[],p=[],u,h,d,c=null,m,g;if(r=f+(s-1)+(a-1)&&(c=super.getValues({xData:l.slice(-a),yData:p.slice(-a)},{period:a}).yData[0]),n.push([o[g],d,c]),p[e-1][1]=c}return{values:n,xData:l,yData:p}}}sW.defaultOptions=sG(sI.defaultOptions,{params:{index:void 0,period:void 0,periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
%K: {point.y}
%D: {point.smoothed}
'},smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),sN(sW.prototype,{areaLinesNames:[],nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"]}),_.compose(sW),g().registerSeriesType("stochastic",sW);let{sma:sz,stochastic:sY}=g().seriesTypes,{extend:sF,merge:sX}=h();class sR extends sY{getValues(e,t){let s=t.periods,a=super.getValues.call(this,e,t),o={values:[],xData:[],yData:[]};if(!a)return;o.xData=a.xData.slice(s[1]-1);let i=a.yData.slice(s[1]-1),r=sz.prototype.getValues.call(this,{xData:o.xData,yData:i},{index:1,period:s[2]});if(r){for(let e=0,t=o.xData.length;e{if(e.options){let t=e.options,s=e.linkedParent.options;t.cropThreshold=s.cropThreshold-(t.params.period-1)}t()},{order:1})}drawGraph(){let e=this,t=e.options,s=e.linkedParent,a=s.getColumn("x"),o=s?s.points:[],i=e.points,r=e.graph,n=o.length-i.length,l=n>0?n:0,p={options:{gapSize:t.gapSize}},u={top:[],bottom:[],intersect:[]},h={top:{styles:{lineWidth:t.lineWidth,lineColor:t.fallingTrendColor||t.color,dashStyle:t.dashStyle}},bottom:{styles:{lineWidth:t.lineWidth,lineColor:t.risingTrendColor||t.color,dashStyle:t.dashStyle}},intersect:t.changeTrendLine},d,c,m,g,y,f,x,D,v,S=i.length;for(;S--;)d=i[S],c=i[S-1],m=o[S-1+l],g=o[S-2+l],y=o[S+l],f=o[S+l+1],x=d.options.color,D={x:d.x,plotX:d.plotX,plotY:d.plotY,isNull:!1},!g&&m&&sj(a[m.index-1])&&(g=sQ(s,m.index-1)),!f&&y&&sj(a[y.index+1])&&(f=sQ(s,y.index+1)),!m&&g&&sj(a[g.index+1])?m=sQ(s,g.index+1):!m&&y&&sj(a[y.index-1])&&(m=sQ(s,y.index-1)),d&&m&&y&&g&&d.x!==m.x&&(d.x===y.x?(g=m,m=y):d.x===g.x?(m=g,g={close:s.getColumn("close")[m.index-1],x:a[m.index-1]}):f&&d.x===f.x&&(m=f,g=y)),c&&g&&m?(v={x:c.x,plotX:c.plotX,plotY:c.plotY,isNull:!1},d.y>=m.close&&c.y>=g.close?(d.color=x||t.fallingTrendColor||t.color,u.top.push(D)):d.y=m.close&&c.y=g.close&&(d.color=x||t.risingTrendColor||t.color,c.color=x||t.fallingTrendColor||t.color,u.bottom.push(D),u.bottom.push(s$(v,{isNull:!0}))))):m&&(d.y>=m.close?(d.color=x||t.fallingTrendColor||t.color,u.top.push(D)):(d.color=x||t.risingTrendColor||t.color,u.bottom.push(D)));sJ(u,function(t,s){e.points=t,e.options=s$(h[s].styles,p),e.graph=e["graph"+s+"Line"],sH.prototype.drawGraph.call(e),e["graph"+s+"Line"]=e.graph}),e.points=i,e.options=t,e.graph=r}getValues(e,t){let s=t.period,a=t.multiplier,o=e.xData,i=e.yData,r=[],n=[],l=[],p=0===s?0:s-1,u=[],h=[],d=[],c,m,g,y,f,x,D,v,S;if(!(o.length<=s)&&s_(i[0])&&4===i[0].length&&!(s<0)){for(S=0,d=sK.prototype.getValues.call(this,e,{period:s}).yData;Sy?u[S]=c:u[S]=y,m>f||D[3]u[S]||x===f&&v[3]>h[S])&&(g=h[S]),r.push([o[p+S],g]),n.push(o[p+S]),l.push(g);return{values:r,xData:n,yData:l}}}}s0.defaultOptions=s$(sH.defaultOptions,{params:{index:void 0,multiplier:3,period:10},risingTrendColor:"#06b535",fallingTrendColor:"#f21313",changeTrendLine:{styles:{lineWidth:1,lineColor:"#333333",dashStyle:"LongDash"}}}),sq(s0.prototype,{nameBase:"Supertrend",nameComponents:["multiplier","period"]}),g().registerSeriesType("supertrend",s0);let{sma:{prototype:{pointClass:s1}}}=g().seriesTypes,s2=class extends s1{destroy(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy()),super.destroy.apply(this,arguments)}},{animObject:s3}=h(),{noop:s4}=h(),{column:{prototype:s5},sma:s6}=g().seriesTypes,{addEvent:s9,arrayMax:s8,arrayMin:s7,correctFloat:ae,defined:at,error:as,extend:aa,isArray:ao,merge:ai}=h(),ar=Math.abs;class an extends s6{init(e,t){let s=this;delete t.data,super.init.apply(s,arguments);let a=s9(this.chart.constructor,"afterLinkSeries",function(){if(s.options){let t=s.options.params,a=s.linkedParent,o=e.get(t.volumeSeriesID);s.addCustomEvents(a,o)}a()},{order:1});return s}addCustomEvents(e,t){let s=this,a=()=>{s.chart.redraw(),s.setData([]),s.zoneStarts=[],s.zoneLinesSVG&&(s.zoneLinesSVG=s.zoneLinesSVG.destroy())};return s.dataEventsToUnbind.push(s9(e,"remove",function(){a()})),t&&s.dataEventsToUnbind.push(s9(t,"remove",function(){a()})),s}animate(e){let t=this,s=t.chart.inverted,a=t.group,o={};if(!e&&a){let e=s?t.yAxis.top:t.xAxis.left;s?(a["forceAnimate:translateY"]=!0,o.translateY=e):(a["forceAnimate:translateX"]=!0,o.translateX=e),a.animate(o,aa(s3(t.options.animation),{step:function(e,s){t.group.attr({scaleX:Math.max(.001,s.pos)})}}))}}drawPoints(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),s5.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1)),s5.drawPoints.apply(this,arguments)}posNegVolume(e,t){let s=t?["positive","negative"]:["negative","positive"],a=this.options.volumeDivision,o=this.points.length,i=[],r=[],n=0,l,p,u,h;for(e?(this.posWidths=i,this.negWidths=r):(i=this.posWidths,r=this.negWidths);na&&(a=i);return{min:s,max:a}}(s),r=this.zoneStarts=[],n=[],l=i?i.min:s7(s),p=i?i.max:s8(s),u=0,h=1,d=this.linkedParent;if(!this.options.compareToMain&&d.dataModify&&(l=d.dataModify.modifyValue(l),p=d.dataModify.modifyValue(p)),!at(l)||!at(p))return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];let c=this.rangeStep=ae(p-l)/a;for(r.push(l);u=t.end&&t.index===c&&(n=!0),(l>t.start||r)&&(ll?t.negativeVolumeData+=d[p]:t.positiveVolumeData+=d[p])}u.volumeDataArray.push(t.wholeVolumeData)}),t}drawZones(e,t,s,a){let o=e.renderer,i=e.plotWidth,r=e.plotTop,n=this.zoneLinesSVG,l=[],p;s.forEach(function(s){p=t.toPixels(s)-r,l=l.concat(e.renderer.crispLine([["M",0,p],["L",i,p]],a.lineWidth))}),n?n.animate({d:l}):n=this.zoneLinesSVG=o.path(l).attr({"stroke-width":a.lineWidth,stroke:a.color,dashstyle:a.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}}an.defaultOptions=ai(s6.defaultOptions,{params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1e3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{allowOverlap:!0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"0.5em"},verticalAlign:"top"}}),aa(an.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],calculateOn:{chart:"render",xAxis:"afterSetExtremes"},pointClass:s2,markerAttribs:s4,drawGraph:s4,getColumnMetrics:s5.getColumnMetrics,crispCol:s5.crispCol}),g().registerSeriesType("vbp",an);let{sma:al}=g().seriesTypes,{error:ap,isArray:au,merge:ah}=h();class ad extends al{getValues(e,t){let s=e.chart,a=e.xData,o=e.yData,i=t.period,r=!0,n;if(!(n=s.get(t.volumeSeriesID))){ap("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,s);return}return au(o[0])||(r=!1),this.calculateVWAPValues(r,a,o,n,i)}calculateVWAPValues(e,t,s,a,o){let i,r,n,l,p,u;let h=a.getColumn("y"),d=h.length,c=t.length,m=[],g=[],y=[],f=[],x=[];for(p=0,i=c<=d?c:d,u=0;p=x*i.low&&(p.push([r[0],x]),m=[r[d],n[d][a]],g=!1,y=!0),y&&(u.push(p[0][0]),h.push(p[0][1]),c=d++,d=l);for(d=c;d=m[1]*i.low&&(f=a)):(n[d][a]>=m[1]&&(m=[r[d],n[d][a]]),n[d][s]<=m[1]*i.high&&(f=s)),!1!==f&&(p.push(m),u.push(m[0]),h.push(m[1]),m=[r[d],n[d][f]],g=!g,f=!1);let v=p.length;return 0!==v&&p[v-1][0]0&&(void 0===s||t●{series.name}: {point.y}\xb0
'}}),aX(aK.prototype,{nameBase:"Linear Regression Angle Indicator"}),g().registerSeriesType("linearRegressionAngle",aK);let{sma:aH}=g().seriesTypes,{correctFloat:aU,extend:aZ,merge:a_}=h();class aj extends aH{getValues(e,t){let s,a,o,i,r,n,l,p,u,h,d;let c=t.period,m=t.factor,g=t.index,y=e.xData,f=e.yData,x=f?f.length:0,D=[],v=[],S=[],A=[],b=[];if(!(x=c&&(u=y.slice(d-c,d),h=f.slice(d-c,d),l=super.getValues.call(this,{xData:u,yData:D.slice(d-c,d)},{period:c}),p=super.getValues.call(this,{xData:u,yData:v.slice(d-c,d)},{period:c}),i=(n=super.getValues.call(this,{xData:u,yData:h},{period:c,index:g})).xData[0],a=l.yData[0],o=p.yData[0],s=n.yData[0],S.push([i,a,s,o]),A.push(i),b.push([a,s,o]))}return{values:S,xData:A,yData:b}}}}aj.defaultOptions=a_(aH.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),aZ(aj.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),_.compose(aj),g().registerSeriesType("abands",aj);let{sma:aq}=g().seriesTypes,{extend:a$,merge:aJ,isArray:aQ}=h();class a0 extends aq{constructor(){super(...arguments),this.updateAllPoints=!0}getValues(e,t){let s=e.xData,a=e.yData,o=[],i=[],r=[],n=[],l=t.index,p=0,u=0,h=0,d=0,c=0;for(let e=0;e(()=>{"use strict";var i,r={960:e=>{e.exports=t},620:e=>{e.exports=o},512:e=>{e.exports=s},956:e=>{e.exports=a},944:t=>{t.exports=e}},n={};function l(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return r[e](s,s.exports,l),s.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var s in t)l.o(t,s)&&!l.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var p={};l.d(p,{default:()=>a7});var u=l(944),h=l.n(u),d=l(960),c=l.n(d),m=l(512),g=l.n(m);let{line:y}=g().seriesTypes,{addEvent:f,fireEvent:x,error:D,extend:v,isArray:S,merge:A,pick:b}=h(),C=(e,t)=>{let s=[],a=e.pointArrayMap,o=t&&e.dataTable.modified||e.dataTable;if(!a)return e.getColumn("y",t);let i=a.map(s=>e.getColumn(s,t));for(let e=0;ei[s]?.[e]||0);s.push(t)}return s};class T extends y{destroy(){this.dataEventsToUnbind.forEach(function(e){e()}),super.destroy.apply(this,arguments)}getName(){let e=[],t=this.name;return t||((this.nameComponents||[]).forEach(function(t,s){e.push(this.options.params[t]+b(this.nameSuffixes[s],""))},this),t=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+e.join(", ")+")":"")),t}getValues(e,t){let s=t.period,a=e.xData||[],o=e.yData,i=o.length,r=[],n=[],l=[],p,u=-1,h=0,d,c=0;if(!(a.length{d.forEach((t,s)=>{let a=c[t]||[];a.push(S(e)?e[s]:e),c[t]||(c[t]=a)})}),a&&!this.hasGroupedData&&this.visible&&this.points){if(this.cropped){this.xAxis&&(n=this.xAxis.min,l=this.xAxis.max);let a=this.cropData(t,n,l),o=["x",...this.pointArrayMap||["y"]];for(let t=0;t<(a.modified?.rowCount||0);t++){let s=o.map(e=>this.getColumn(e)[t]||0);e.push(s)}let p=this.getColumn("x");i=h.xData.indexOf(p[0]),r=h.xData.indexOf(p[p.length-1]),-1===i&&r===h.xData.length-2&&e[0][0]===s[0].x&&e.shift(),this.updateData(e)}else(this.updateAllPoints||h.xData.length!==a-1&&h.xData.length!==a+1)&&(o=!1,this.updateData(h.values))}o&&(t.setColumns({...c,x:h.xData}),this.options.data=h.values),this.calculateOn.xAxis&&this.getColumn("x",!0).length&&(this.isDirty=!0,this.redraw()),this.isDirtyData=!!this.linkedSeries.length,x(this,"updatedData")}processData(){let e=this.options.compareToMain,t=this.linkedParent;super.processData.apply(this,arguments),this.dataModify&&t&&t.dataModify&&t.dataModify.compareValue&&e&&(this.dataModify.compareValue=t.dataModify.compareValue)}}T.defaultOptions=A(y.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:3,period:14}}),v(T.prototype,{calculateOn:{chart:"init"},hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],useCommonDataGrouping:!0}),g().registerSeriesType("sma",T);let{sma:P}=g().seriesTypes,{correctFloat:M,isArray:V,merge:L}=h();class k extends P{accumulatePeriodPoints(e,t,s){let a=0,o=0;for(;o0&&(o[1]+=d[s-1][1]),d.push(o),c.push(o[0]),m.push(o[1]);return{values:d,xData:c,yData:m}}}}N.defaultOptions=I(O.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),E(N.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),g().registerSeriesType("ad",N);let{noop:B}=h(),{column:{prototype:G},sma:W}=g().seriesTypes,{extend:z,merge:Y,correctFloat:F,isArray:X}=h();class R extends W{drawGraph(){let e;let t=this.options,s=this.points,a=this.userOptions.color,o=t.greaterBarColor,i=t.lowerBarColor,r=s[0];if(!a&&r)for(e=1,r.color=o;es[e-1].y?s[e].color=o:s[e].y=29&&(m=F(m+u)),c=F(c+u);for(d=33;d{e!==t&&s.push(o(e))}),s}function r(){let e=this,t=e.pointValKey,s=e.linesApiNames,a=e.areaLinesNames,r=e.points,n=e.options,l=e.graph,p={options:{gapSize:n.gapSize}},u=[],h=i(e,t),d=r.length,c;if(h.forEach((e,t)=>{for(u[t]=[];d--;)c=r[d],u[t].push({x:c.x,plotX:c.plotX,plotY:c[e],isNull:!H(c[e])});d=r.length}),e.userOptions.fillColor&&a.length){let t=u[h.indexOf(o(a[0]))],s=1===a.length?r:u[h.indexOf(o(a[1]))],i=e.color;e.points=s,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=Z(r,p),e.graph=e.area,e.fillGraph=!0,K.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=i}s.forEach((t,s)=>{u[s]?(e.points=u[s],n[t]?e.options=Z(n[t].styles,p):U('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],K.drawGraph.call(e),e["graph"+t]=e.graph):U('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=r,e.options=n,e.graph=l,K.drawGraph.call(e)}function n(e){let t,s=[],a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=K.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",s=K.getGraphPath.call(this,e),a=t.slice(0,s.length);for(let e=a.length-1;e>=0;e--)s.push(a[e])}}else s=K.getGraphPath.apply(this,arguments);return s}function l(e){let t=[];return(this.pointArrayMap||[]).forEach(s=>{t.push(e[s])}),t}function p(){let e=this.pointArrayMap,t=[],s;t=i(this),K.translate.apply(this,arguments),this.points.forEach(a=>{e.forEach((e,o)=>{s=a[e],this.dataModify&&(s=this.dataModify.modifyValue(s)),null!==s&&(a[t[o]]=this.yAxis.toPixels(s,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||s.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||a.slice(),o.drawGraph=r,o.getGraphPath=n,o.toYData=l,o.translate=p,e}}(i||(i={}));let _=i,{sma:j}=g().seriesTypes,{extend:q,merge:$,pick:J}=h();function Q(e,t){let s=e[0],a=0,o;for(o=1;o=s||"min"===t&&e[o]<=s)&&(s=e[o],a=o);return a}class ee extends j{getValues(e,t){let s,a,o,i,r;let n=t.period,l=e.xData,p=e.yData,u=p?p.length:0,h=[],d=[],c=[];for(i=n-1;i {series.name}
Aroon Up: {point.y}
Aroon Down: {point.aroonDown}
'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),q(ee.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),_.compose(ee),g().registerSeriesType("aroon",ee);let{aroon:et}=g().seriesTypes,{extend:es,merge:ea}=h();class eo extends et{getValues(e,t){let s,a;let o=[],i=[],r=[],n=super.getValues.call(this,e,t);for(a=0;a {series.name}: {point.y}'}}),es(eo.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),_.compose(et),g().registerSeriesType("aroonoscillator",eo);let{sma:ei}=g().seriesTypes,{isArray:er,merge:en}=h();function el(e,t){return Math.max(e[1]-e[2],void 0===t?0:Math.abs(e[1]-t[3]),void 0===t?0:Math.abs(e[2]-t[3]))}class ep extends ei{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[[a[0],o[0]]],n=[],l=[],p=[],u,h,d=0,c=1,m=0;if(!(a.length<=s)&&er(o[0])&&4===o[0].length){for(h=1;h<=i;h++){var g,y;!function(e,t,s,a){let o=t[a],i=s[a];e.push([o,i])}(r,a,o,h),s {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),eh(em.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","standardDeviation"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),_.compose(em),g().registerSeriesType("bb",em);let{sma:eg}=g().seriesTypes,{isArray:ey,merge:ef}=h();class ex extends eg{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p=[],u,h,d=[],c,m=1,g,y,f,x;if(!(a.length<=s)&&ey(o[0])&&4===o[0].length){for(;m=t.params.period}return!!(s&&a&&i(s)&&i(a)&&o)}getValues(e,t){if(this.isValid())return this.getMoneyFlow(e.xData,e.yData,this.volumeSeries.getColumn("y"),t.period)}getMoneyFlow(e,t,s,a){let o=t.length,i=[],r=[],n=[],l=[],p,u,h=-1,d=0,c=0;function m(e,t){let s=e[1],a=e[2],o=e[3];return null!==t&&null!==s&&null!==a&&null!==o&&s!==a?(o-a-(s-o))/(s-a)*t:(h=p,null)}if(a>0&&a<=o){for(p=0;p=a&&0!==d?c/d:null),l.push([r[0],n[0]]);p=a?c/d:null],r.push(u[0]),n.push(u[1]),l.push([u[0],u[1]])}return{values:l,xData:r,yData:n}}}eS.defaultOptions=ev(eD.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),g().registerSeriesType("cmf",eS);let{sma:eA}=g().seriesTypes,{correctFloat:eb,extend:eC,isArray:eT,merge:eP}=h();class eM extends eA{calculateDM(e,t,s){let a=e[t][1],o=e[t][2],i=e[t-1][1],r=e[t-1][2];return eb(a-i>r-o?s?Math.max(a-i,0):0:s?0:Math.max(r-o,0))}calculateDI(e,t){return e/t*100}calculateDX(e,t){return eb(Math.abs(e-t)/Math.abs(e+t)*100)}smoothValues(e,t,s){return eb(e-e/s+t)}getTR(e,t){return eb(Math.max(e[1]-e[2],t?Math.abs(e[1]-t[3]):0,t?Math.abs(e[2]-t[3]):0))}getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[];if(a.length<=s||!eT(o[0])||4!==o[0].length)return;let p=0,u=0,h=0,d;for(d=1;d {series.name}
DX: {point.y}
+DI: {point.plusDI}
-DI: {point.minusDI}
'},plusDILine:{styles:{lineWidth:1,lineColor:"#06b535"}},minusDILine:{styles:{lineWidth:1,lineColor:"#f21313"}},dataGrouping:{approximation:"averages"}}),eC(eM.prototype,{areaLinesNames:[],nameBase:"DMI",linesApiNames:["plusDILine","minusDILine"],pointArrayMap:["y","plusDI","minusDI"],parallelArrays:["x","y","plusDI","minusDI"],pointValKey:"y"}),_.compose(eM),g().registerSeriesType("dmi",eM);let{sma:eV}=g().seriesTypes,{extend:eL,merge:ek,correctFloat:eO,pick:ew}=h();function eE(e,t,s,a,o){let i=ew(t[s][a],t[s]);return o?eO(e-i):eO(e+i)}class eI extends eV{getValues(e,t){let s=t.period,a=t.index,o=Math.floor(s/2+1),i=s+o,r=e.xData||[],n=e.yData||[],l=n.length,p=[],u=[],h=[],d,c,m,g,y,f=0;if(!(r.length<=i)){for(g=0;ge[u]));let d=0,c=0,m=0,g;for(let e=s;e>0;e--)h[e]>h[e-1]?c+=h[e]-h[e-1]:h[e]0?100*(c-m)/(c+m):0,n.push(a[s]),l.push(g),r.push([a[s],g]),p=s+1;ph[p-1]?c+=h[p]-h[p-1]:h[p]h[p-s-1]?c-=d:m-=d,g=c+m>0?100*(c-m)/(c+m):0,n.push(a[p]),l.push(g),r.push([a[p],g]);return{values:r,xData:n,yData:l}}}eK.defaultOptions=eR(eF.defaultOptions,{params:{period:20,index:3}}),g().registerSeriesType("cmo",eK);let{ema:eH}=g().seriesTypes,{correctFloat:eU,isArray:eZ,merge:e_}=h();class ej extends eH{getEMA(e,t,s,a,o,i){return super.calculateEma(i||[],e,void 0===o?1:o,this.EMApercent,t,void 0===a?-1:a,s)}getValues(e,t){let s=t.period,a=[],o=2*s,i=e.xData,r=e.yData,n=r?r.length:0,l=[],p=[],u=[],h=0,d=0,c,m,g,y,f=-1,x,D=0;if(this.EMApercent=2/(s+1),!(n<2*s-1)){for(eZ(r[0])&&(f=t.index?t.index:0),D=(h=super.accumulatePeriodPoints(s,f,r))/s,h=0,y=s;yt)return[e[a-3],0!==s.prevLevel3?e2(s.level3-s.prevLevel3)/s.prevLevel3*100:null]}}e4.defaultOptions=e3(e1.defaultOptions),g().registerSeriesType("trix",e4);let{ema:e5}=g().seriesTypes,{extend:e6,merge:e9,error:e8}=h();class e7 extends e5{getValues(e,t){let s,a;let o=t.periods,i=t.index,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0]){e8('Error: "APO requires two periods. Notice, first period should be lower than the second one."');return}let p=super.getValues.call(this,e,{index:i,period:o[0]}),u=super.getValues.call(this,e,{index:i,period:o[1]});if(!p||!u)return;let h=o[1]-o[0];for(a=0;a=0&&u<=1&&h>=0&&h<=1)return{plotX:e.plotX+h*o,plotY:e.plotY+h*i}}}(l.senkouSpanA[e-1],l.senkouSpanA[e],l.senkouSpanB[e-1],l.senkouSpanB[e]);if(t){let s={plotX:t.plotX,plotY:t.plotY,isNull:!1,intersectPoint:!0};l.senkouSpanA.splice(e,0,s),l.senkouSpanB.splice(e,0,s),p.push(e)}}}if(th(l,(t,a)=>{s[a]&&"senkouSpan"!==a&&(e.points=n[f],e.options=tu(s[a].styles,i),e.graph=e["graph"+a],e.fillGraph=!1,e.color=o,g().seriesTypes.sma.prototype.drawGraph.call(e),e["graph"+a]=e.graph),f++}),e.graphCollection)for(let t of e.graphCollection)e[t].destroy(),delete e[t];if(e.graphCollection=[],d&&l.senkouSpanA[0]&&l.senkouSpanB[0]){for(p.unshift(0),p.push(l.senkouSpanA.length-1),L=0;L=1){let e=Math.floor(b.length/2);if(b[e].plotY===C[e].plotY){for(k=0,T=0,P=0;kP?0:1]=c[V].concat(b),m[V]=m[V].concat(C)}else c[V=b[e].plotY>C[e].plotY?0:1]=c[V].concat(b),m[V]=m[V].concat(C)}else c[V=b[0].plotY>C[0].plotY?0:1]=c[V].concat(b),m[V]=m[V].concat(C);["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(t,a){c[a].length&&m[a].length&&(M=0===a?h:d,tc({indicator:e,points:c[a],nextPoints:m[a],color:M,options:s,gap:i,graph:e[t]}),e[t]=e.graph,e.graphCollection.push(t))})}else tc({indicator:e,points:l.senkouSpanB,nextPoints:l.senkouSpanA,color:h,options:s,gap:i,graph:e.graphsenkouSpan}),e.graphsenkouSpan=e.graph;delete e.nextPoints,delete e.fillGraph,e.points=t,e.options=s,e.graph=a,e.color=o}getGraphPath(e){let t=[],s,a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((s=g().seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&s.length){s[0][0]="L",t=g().seriesTypes.sma.prototype.getGraphPath.call(this,e),a=s.slice(0,t.length);for(let e=a.length-1;e>=0;e--)t.push(a[e])}}else t=g().seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return t}getValues(e,t){let s,a,o,i,r,n,l,p,u,h;let d=t.period,c=t.periodTenkan,m=t.periodSenkouSpanB,g=e.xData,y=e.yData,f=e.xAxis,x=y&&y.length||0,D=tp(f.series.map(e=>e.getColumn("x"))),v=[],S=[];if(g.length<=d||!tn(y[0])||4!==y[0].length)return;let A=g[0]-d*D;for(r=0;r=c&&(n=((a=td(y.slice(r-c,r))).high+a.low)/2),r>=d&&(u=(n+(l=((o=td(y.slice(r-d,r))).high+o.low)/2))/2),r>=m&&(h=((i=td(y.slice(r-m,r))).high+i.low)/2),p=y[r][3],s=g[r],void 0===v[r]&&(v[r]=[]),void 0===v[r+d-1]&&(v[r+d-1]=[]),v[r+d-1][0]=n,v[r+d-1][1]=l,v[r+d-1][2]=void 0,void 0===v[r+1]&&(v[r+1]=[]),v[r+1][2]=p,r<=d&&(v[r+d-1][3]=void 0,v[r+d-1][4]=void 0),void 0===v[r+2*d-2]&&(v[r+2*d-2]=[]),v[r+2*d-2][3]=u,v[r+2*d-2][4]=h,S.push(s);for(r=1;r<=d;r++)S.push(s+r*D);return{values:v,xData:S,yData:v}}}tm.defaultOptions=tu(to.defaultOptions,{params:{index:void 0,period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
TENKAN SEN: {point.tenkanSen:.3f}
KIJUN SEN: {point.kijunSen:.3f}
CHIKOU SPAN: {point.chikouSpan:.3f}
SENKOU SPAN A: {point.senkouSpanA:.3f}
SENKOU SPAN B: {point.senkouSpanB:.3f}
'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}}),tr(tm.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"]}),tt()["ichimoku-averages"]=function(){let e;let t=[];return[].forEach.call(arguments,function(s,a){t.push(tt().average(s)),e=!e&&void 0===t[a]}),e?void 0:t},g().registerSeriesType("ikh",tm);let{sma:tg}=g().seriesTypes,{correctFloat:ty,extend:tf,merge:tx}=h();class tD extends tg{init(){g().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=tx({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l;let p=t.period,u=t.periodATR,h=t.multiplierATR,d=t.index,c=e.yData,m=c?c.length:0,y=[],f=g().seriesTypes.ema.prototype.getValues(e,{period:p,index:d}),x=g().seriesTypes.atr.prototype.getValues(e,{period:u}),D=[],v=[];if(!(m {series.name}
Upper Channel: {point.top}
EMA({series.options.params.period}): {point.middle}
Lower Channel: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1}),tf(tD.prototype,{nameBase:"Keltner Channels",areaLinesNames:["top","bottom"],nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),_.compose(tD),g().registerSeriesType("keltnerchannels",tD);let{ema:tv,sma:tS}=g().seriesTypes,{correctFloat:tA,error:tb,extend:tC,isArray:tT,merge:tP}=h();class tM extends tS{calculateTrend(e,t){return e[t][1]+e[t][2]+e[t][3]>e[t-1][1]+e[t-1][2]+e[t-1][3]?1:-1}isValidData(e){let t=this.chart,s=this.options,a=this.linkedParent,o=tT(e)&&4===e.length,i=this.volumeSeries||(this.volumeSeries=t.get(s.params.volumeSeriesID));return i||tb("Series "+s.params.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,a.chart),!!([a,i].every(function(e){return e&&e.dataTable.rowCount>=s.params.slowAvgPeriod})&&o)}getCM(e,t,s,a,o){return tA(t+(s===a?e:o))}getDM(e,t){return tA(e-t)}getVolumeForce(e){let t=[],s=0,a,o=1,i=0,r=e[0][1]-e[0][2],n=0,l;for(;o=t.fastAvgPeriod&&(d=u=this.getEMA(g,d,y,x,0,p,a)[1]),p>=t.slowAvgPeriod&&(c=h=this.getEMA(g,c,f,D,0,p,a)[1],n.push(l=tA(u-h)),n.length>=t.signalPeriod&&(m=n.slice(-t.signalPeriod).reduce((e,t)=>e+t)/t.signalPeriod),s.push([a[p],l,m]),i.push(a[p]),r.push([l,m]));return{values:s,xData:i,yData:r}}}tM.defaultOptions=tP(tS.defaultOptions,{params:{fastAvgPeriod:34,slowAvgPeriod:55,signalPeriod:13,volumeSeriesID:"volume"},signalLine:{styles:{lineWidth:1,lineColor:"#ff0000"}},dataGrouping:{approximation:"averages"},tooltip:{pointFormat:' {series.name}
Klinger: {point.y}
Signal: {point.signal}
'}}),tC(tM.prototype,{areaLinesNames:[],linesApiNames:["signalLine"],nameBase:"Klinger",nameComponents:["fastAvgPeriod","slowAvgPeriod"],pointArrayMap:["y","signal"],parallelArrays:["x","y","signal"],pointValKey:"y"}),_.compose(tM),g().registerSeriesType("klinger",tM);let{noop:tV}=h(),{column:tL,sma:tk}=g().seriesTypes,{extend:tO,correctFloat:tw,defined:tE,merge:tI}=h();class tN extends tk{init(){g().seriesTypes.sma.prototype.init.apply(this,arguments);let e=this.color;this.options&&(tE(this.colorIndex)&&(this.options.signalLine&&this.options.signalLine.styles&&!this.options.signalLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.signalLine.styles.lineColor=this.color),this.options.macdLine&&this.options.macdLine.styles&&!this.options.macdLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.macdLine.styles.lineColor=this.color)),this.macdZones={zones:this.options.macdLine.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones.length}),this.color=e}toYData(e){return[e.y,e.signal,e.MACD]}translate(){let e=this,t=["plotSignal","plotMACD"];h().seriesTypes.column.prototype.translate.apply(e),e.points.forEach(function(s){[s.signal,s.MACD].forEach(function(a,o){null!==a&&(s[t[o]]=e.yAxis.toPixels(a,!0))})})}destroy(){this.graph=null,this.graphmacd=this.graphmacd&&this.graphmacd.destroy(),this.graphsignal=this.graphsignal&&this.graphsignal.destroy(),g().seriesTypes.sma.prototype.destroy.apply(this,arguments)}drawGraph(){let e=this,t=e.points,s=e.options,a=e.zones,o={options:{gapSize:s.gapSize}},i=[[],[]],r,n=t.length;for(;n--;)tE((r=t[n]).plotMACD)&&i[0].push({plotX:r.plotX,plotY:r.plotMACD,isNull:!tE(r.plotMACD)}),tE(r.plotSignal)&&i[1].push({plotX:r.plotX,plotY:r.plotSignal,isNull:!tE(r.plotMACD)});["macd","signal"].forEach((t,a)=>{e.points=i[a],e.options=tI(s[`${t}Line`]?.styles||{},o),e.graph=e[`graph${t}`],e.zones=(e[`${t}Zones`].zones||[]).slice(e[`${t}Zones`].startIndex||0),g().seriesTypes.sma.prototype.drawGraph.call(e),e[`graph${t}`]=e.graph}),e.points=t,e.options=s,e.zones=a}applyZones(){let e=this.zones;this.zones=this.signalZones.zones,g().seriesTypes.sma.prototype.applyZones.call(this),this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(),this.zones=e}getValues(e,t){let s=t.longPeriod-t.shortPeriod,a=[],o=[],i=[],r,n,l,p=0,u=[];if(!(e.xData.length=u[0][0]&&(a[l][2]=u[p][1],i[l]=[0,u[p][1],a[l][3]],null===a[l][3]?(a[l][1]=0,i[l][0]=0):(a[l][1]=tw(a[l][3]-u[p][1]),i[l][0]=tw(a[l][3]-u[p][1])),p++);return{values:a,xData:o,yData:i}}}}tN.defaultOptions=tI(tk.defaultOptions,{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,crisp:!1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:' {series.name}
Value: {point.MACD}
Signal: {point.signal}
Histogram: {point.y}
'},dataGrouping:{approximation:"averages"},minPointLength:0}),tO(tN.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:tV,getColumnMetrics:h().seriesTypes.column.prototype.getColumnMetrics,crispCol:h().seriesTypes.column.prototype.crispCol,drawPoints:h().seriesTypes.column.prototype.drawPoints}),g().registerSeriesType("macd",tN);let{sma:tB}=g().seriesTypes,{extend:tG,merge:tW,error:tz,isArray:tY}=h();function tF(e){return e.reduce(function(e,t){return e+t})}function tX(e){return(e[1]+e[2]+e[3])/3}class tR extends tB{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=t.decimals,n=e.chart.get(t.volumeSeriesID),l=n?.getColumn("y")||[],p=[],u=[],h=[],d=[],c=[],m,g,y,f,x,D,v=!1,S=1;if(!n){tz("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}if(!(a.length<=s)&&tY(o[0])&&4===o[0].length&&l){for(m=tX(o[S]);S=g,y=m*l[S],d.push(v?y:0),c.push(v?0:y),S++;for(D=S-1;DS-1&&(d.shift(),c.shift(),g=m,v=(m=tX(o[D]))>g,y=m*l[D],d.push(v?y:0),c.push(v?0:y)),f=tF(c),x=parseFloat((100-100/(1+tF(d)/f)).toFixed(r)),p.push([a[D],x]),u.push(a[D]),h.push(x);return{values:p,xData:u,yData:h}}}}tR.defaultOptions=tW(tB.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",decimals:4}}),tG(tR.prototype,{nameBase:"Money Flow Index"}),g().registerSeriesType("mfi",tR);let{sma:tK}=g().seriesTypes,{extend:tH,isArray:tU,merge:tZ}=h();function t_(e,t,s,a,o){let i=t[s-1][o]-t[s-a-1][o];return[e[s-1],i]}class tj extends tK{getValues(e,t){let s,a;let o=t.period,i=t.index,r=e.xData,n=e.yData,l=n?n.length:0,p=[],u=[],h=[];if(!(r.length<=o)&&tU(n[0])){for(s=o+1;sc?h+g[u]:m===c?h:h-g[u],p=[a[u],d],h=d,c=m,i.push(p),r.push(a[u]),n.push(p[1]);else{t1("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}return{values:i,xData:r,yData:n}}}t4.defaultOptions=t3(tQ.defaultOptions,{marker:{enabled:!1},params:{index:void 0,period:void 0,volumeSeriesID:"volume"},tooltip:{valueDecimals:0}}),t2(t4.prototype,{nameComponents:void 0}),g().registerSeriesType("obv",t4);let t5=g().seriesTypes.sma.prototype.pointClass;function t6(e,t){let s=e.series.pointArrayMap,a,o=s.length;for(g().seriesTypes.sma.prototype.pointClass.prototype[t].call(e);o--;)e[a="dataLabel"+s[o]]&&e[a].element&&e[a].destroy(),e[a]=null}let{sma:t9}=g().seriesTypes,{merge:t8,extend:t7,defined:se,isArray:st}=h();class ss extends t9{toYData(e){return[e.P]}translate(){let e=this;super.translate.apply(e),e.points.forEach(function(t){e.pointArrayMap.forEach(function(s){se(t[s])&&(t["plot"+s]=e.yAxis.toPixels(t[s],!0))})}),e.plotEndPoint=e.xAxis.toPixels(e.endPoint,!0)}getGraphPath(e){let t=this,s=[[],[],[],[],[],[],[],[],[]],a=t.pointArrayMap.length,o=t.plotEndPoint,i=[],r,n,l=e.length,p;for(;l--;){for(p=0,n=e[l];p{i=i.concat(super.getGraphPath.call(t,e))}),i}drawDataLabels(){let e,t,s,a;let o=this,i=o.pointArrayMap;o.options.dataLabels.enabled&&(t=o.points.length,i.concat([!1]).forEach((r,n)=>{for(a=t;a--;)s=o.points[a],r?(s.y=s[r],s.pivotLine=r,s.plotY=s["plot"+r],e=s["dataLabel"+r],n&&(s["dataLabel"+i[n-1]]=s.dataLabel),s.dataLabels||(s.dataLabels=[]),s.dataLabels[0]=s.dataLabel=e=e&&e.element?e:null):s["dataLabel"+i[n-1]]=s.dataLabel;super.drawDataLabels.call(o)}))}getValues(e,t){let s,a,o,i,r,n,l;let p=t.period,u=e.xData,h=e.yData,d=h?h.length:0,c=this[t.algorithm+"Placement"],m=[],g=[],y=[];if(!(u.length[Math.min(e[0],a[t]),Math.max(e[1],a[s])],[Number.MAX_VALUE,-Number.MAX_VALUE])}},su={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]},{sma:sh}=g().seriesTypes,{merge:sd,extend:sc}=h();class sm extends sh{getValues(e,t){let s,a,o,i,r,n,l;let p=t.period,u=e.xData,h=e.yData,d=h?h.length:0,c=[],m=[],g=[];if(!(d {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),sy(sD.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle"}),_.compose(sD),g().registerSeriesType("priceenvelopes",sD);let{sma:sv}=g().seriesTypes,{merge:sS}=h();function sA(e,t){return parseFloat(e.toFixed(t))}class sb extends sv{constructor(){super(...arguments),this.nameComponents=void 0}getValues(e,t){let s=e.xData,a=e.yData,o=t.maxAccelerationFactor,i=t.increment,r=t.initialAccelerationFactor,n=t.decimals,l=t.index,p=[],u=[],h=[],d=t.initialAccelerationFactor,c,m=a[0][1],g,y,f,x=1,D,v,S,A,b=a[0][2],C,T,P,M;if(!(l>=a.length)){for(M=0;Mb?1:-1,g=m-b,y=(d=t.initialAccelerationFactor)*g,p.push([s[l],b]),u.push(s[l]),h.push(sA(b,n)),M=l+1;MMath.max(A,S)?I+N:Math.max(A,S):B,V=c,L=m,C=1===V?T>L?T:L:PO||-1===k&&T>O?1:-1,W=c,z=m,Y=d,y=(d=G===W?1===G&&C>z||-1===G&&Ce[d]));c0?u+=g:h+=Math.abs(g),c++;for(y=sw(u/(s-1),r),f=sw(h/(s-1),r),x=c;x0?(u=g,h=0):(u=0,h=Math.abs(g)),y=sw((y*(s-1)+u)/s,r),m=0===(f=sw((f*(s-1)+h)/s,r))?100:0===y?0:sw(100-100/(1+y/f),r),n.push([a[x],m]),l.push(a[x]),p.push(m);return{values:n,xData:l,yData:p}}}}sE.defaultOptions=sO(sL.defaultOptions,{params:{decimals:4,index:3}}),g().registerSeriesType("rsi",sE);let{sma:sI}=g().seriesTypes,{extend:sN,isArray:sB,merge:sG}=h();class sW extends sI{init(){super.init.apply(this,arguments),this.options=sG({smoothedLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s=t.periods[0],a=t.periods[1],o=e.xData,i=e.yData,r=i?i.length:0,n=[],l=[],p=[],u,h,d,c=null,m,g;if(r=f+(s-1)+(a-1)&&(c=super.getValues({xData:l.slice(-a),yData:p.slice(-a)},{period:a}).yData[0]),n.push([o[g],d,c]),p[e-1][1]=c}return{values:n,xData:l,yData:p}}}sW.defaultOptions=sG(sI.defaultOptions,{params:{index:void 0,period:void 0,periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
%K: {point.y}
%D: {point.smoothed}
'},smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),sN(sW.prototype,{areaLinesNames:[],nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"]}),_.compose(sW),g().registerSeriesType("stochastic",sW);let{sma:sz,stochastic:sY}=g().seriesTypes,{extend:sF,merge:sX}=h();class sR extends sY{getValues(e,t){let s=t.periods,a=super.getValues.call(this,e,t),o={values:[],xData:[],yData:[]};if(!a)return;o.xData=a.xData.slice(s[1]-1);let i=a.yData.slice(s[1]-1),r=sz.prototype.getValues.call(this,{xData:o.xData,yData:i},{index:1,period:s[2]});if(r){for(let e=0,t=o.xData.length;e{if(e.options){let t=e.options,s=e.linkedParent.options;t.cropThreshold=s.cropThreshold-(t.params.period-1)}t()},{order:1})}drawGraph(){let e=this,t=e.options,s=e.linkedParent,a=s.getColumn("x"),o=s?s.points:[],i=e.points,r=e.graph,n=o.length-i.length,l=n>0?n:0,p={options:{gapSize:t.gapSize}},u={top:[],bottom:[],intersect:[]},h={top:{styles:{lineWidth:t.lineWidth,lineColor:t.fallingTrendColor||t.color,dashStyle:t.dashStyle}},bottom:{styles:{lineWidth:t.lineWidth,lineColor:t.risingTrendColor||t.color,dashStyle:t.dashStyle}},intersect:t.changeTrendLine},d,c,m,g,y,f,x,D,v,S=i.length;for(;S--;)d=i[S],c=i[S-1],m=o[S-1+l],g=o[S-2+l],y=o[S+l],f=o[S+l+1],x=d.options.color,D={x:d.x,plotX:d.plotX,plotY:d.plotY,isNull:!1},!g&&m&&sj(a[m.index-1])&&(g=sQ(s,m.index-1)),!f&&y&&sj(a[y.index+1])&&(f=sQ(s,y.index+1)),!m&&g&&sj(a[g.index+1])?m=sQ(s,g.index+1):!m&&y&&sj(a[y.index-1])&&(m=sQ(s,y.index-1)),d&&m&&y&&g&&d.x!==m.x&&(d.x===y.x?(g=m,m=y):d.x===g.x?(m=g,g={close:s.getColumn("close")[m.index-1],x:a[m.index-1]}):f&&d.x===f.x&&(m=f,g=y)),c&&g&&m?(v={x:c.x,plotX:c.plotX,plotY:c.plotY,isNull:!1},d.y>=m.close&&c.y>=g.close?(d.color=x||t.fallingTrendColor||t.color,u.top.push(D)):d.y=m.close&&c.y=g.close&&(d.color=x||t.risingTrendColor||t.color,c.color=x||t.fallingTrendColor||t.color,u.bottom.push(D),u.bottom.push(s$(v,{isNull:!0}))))):m&&(d.y>=m.close?(d.color=x||t.fallingTrendColor||t.color,u.top.push(D)):(d.color=x||t.risingTrendColor||t.color,u.bottom.push(D)));sJ(u,function(t,s){e.points=t,e.options=s$(h[s].styles,p),e.graph=e["graph"+s+"Line"],sH.prototype.drawGraph.call(e),e["graph"+s+"Line"]=e.graph}),e.points=i,e.options=t,e.graph=r}getValues(e,t){let s=t.period,a=t.multiplier,o=e.xData,i=e.yData,r=[],n=[],l=[],p=0===s?0:s-1,u=[],h=[],d=[],c,m,g,y,f,x,D,v,S;if(!(o.length<=s)&&s_(i[0])&&4===i[0].length&&!(s<0)){for(S=0,d=sK.prototype.getValues.call(this,e,{period:s}).yData;Sy?u[S]=c:u[S]=y,m>f||D[3]u[S]||x===f&&v[3]>h[S])&&(g=h[S]),r.push([o[p+S],g]),n.push(o[p+S]),l.push(g);return{values:r,xData:n,yData:l}}}}s0.defaultOptions=s$(sH.defaultOptions,{params:{index:void 0,multiplier:3,period:10},risingTrendColor:"#06b535",fallingTrendColor:"#f21313",changeTrendLine:{styles:{lineWidth:1,lineColor:"#333333",dashStyle:"LongDash"}}}),sq(s0.prototype,{nameBase:"Supertrend",nameComponents:["multiplier","period"]}),g().registerSeriesType("supertrend",s0);let{sma:{prototype:{pointClass:s1}}}=g().seriesTypes,s2=class extends s1{destroy(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy()),super.destroy.apply(this,arguments)}},{animObject:s3}=h(),{noop:s4}=h(),{column:{prototype:s5},sma:s6}=g().seriesTypes,{addEvent:s9,arrayMax:s8,arrayMin:s7,correctFloat:ae,defined:at,error:as,extend:aa,isArray:ao,merge:ai}=h(),ar=Math.abs;class an extends s6{init(e,t){let s=this;delete t.data,super.init.apply(s,arguments);let a=s9(this.chart.constructor,"afterLinkSeries",function(){if(s.options){let t=s.options.params,a=s.linkedParent,o=e.get(t.volumeSeriesID);s.addCustomEvents(a,o)}a()},{order:1});return s}addCustomEvents(e,t){let s=this,a=()=>{s.chart.redraw(),s.setData([]),s.zoneStarts=[],s.zoneLinesSVG&&(s.zoneLinesSVG=s.zoneLinesSVG.destroy())};return s.dataEventsToUnbind.push(s9(e,"remove",function(){a()})),t&&s.dataEventsToUnbind.push(s9(t,"remove",function(){a()})),s}animate(e){let t=this,s=t.chart.inverted,a=t.group,o={};if(!e&&a){let e=s?t.yAxis.top:t.xAxis.left;s?(a["forceAnimate:translateY"]=!0,o.translateY=e):(a["forceAnimate:translateX"]=!0,o.translateX=e),a.animate(o,aa(s3(t.options.animation),{step:function(e,s){t.group.attr({scaleX:Math.max(.001,s.pos)})}}))}}drawPoints(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),s5.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1)),s5.drawPoints.apply(this,arguments)}posNegVolume(e,t){let s=t?["positive","negative"]:["negative","positive"],a=this.options.volumeDivision,o=this.points.length,i=[],r=[],n=0,l,p,u,h;for(e?(this.posWidths=i,this.negWidths=r):(i=this.posWidths,r=this.negWidths);na&&(a=i);return{min:s,max:a}}(s),r=this.zoneStarts=[],n=[],l=i?i.min:s7(s),p=i?i.max:s8(s),u=0,h=1,d=this.linkedParent;if(!this.options.compareToMain&&d.dataModify&&(l=d.dataModify.modifyValue(l),p=d.dataModify.modifyValue(p)),!at(l)||!at(p))return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];let c=this.rangeStep=ae(p-l)/a;for(r.push(l);u=t.end&&t.index===c&&(n=!0),(l>t.start||r)&&(ll?t.negativeVolumeData+=d[p]:t.positiveVolumeData+=d[p])}u.volumeDataArray.push(t.wholeVolumeData)}),t}drawZones(e,t,s,a){let o=e.renderer,i=e.plotWidth,r=e.plotTop,n=this.zoneLinesSVG,l=[],p;s.forEach(function(s){p=t.toPixels(s)-r,l=l.concat(e.renderer.crispLine([["M",0,p],["L",i,p]],a.lineWidth))}),n?n.animate({d:l}):n=this.zoneLinesSVG=o.path(l).attr({"stroke-width":a.lineWidth,stroke:a.color,dashstyle:a.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}}an.defaultOptions=ai(s6.defaultOptions,{params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1e3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{align:"left",allowOverlap:!0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"0.5em"},verticalAlign:"top"}}),aa(an.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],calculateOn:{chart:"render",xAxis:"afterSetExtremes"},pointClass:s2,markerAttribs:s4,drawGraph:s4,getColumnMetrics:s5.getColumnMetrics,crispCol:s5.crispCol}),g().registerSeriesType("vbp",an);let{sma:al}=g().seriesTypes,{error:ap,isArray:au,merge:ah}=h();class ad extends al{getValues(e,t){let s=e.chart,a=e.xData,o=e.yData,i=t.period,r=!0,n;if(!(n=s.get(t.volumeSeriesID))){ap("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,s);return}return au(o[0])||(r=!1),this.calculateVWAPValues(r,a,o,n,i)}calculateVWAPValues(e,t,s,a,o){let i,r,n,l,p,u;let h=a.getColumn("y"),d=h.length,c=t.length,m=[],g=[],y=[],f=[],x=[];for(p=0,i=c<=d?c:d,u=0;p=x*i.low&&(p.push([r[0],x]),m=[r[d],n[d][a]],g=!1,y=!0),y&&(u.push(p[0][0]),h.push(p[0][1]),c=d++,d=l);for(d=c;d=m[1]*i.low&&(f=a)):(n[d][a]>=m[1]&&(m=[r[d],n[d][a]]),n[d][s]<=m[1]*i.high&&(f=s)),!1!==f&&(p.push(m),u.push(m[0]),h.push(m[1]),m=[r[d],n[d][f]],g=!g,f=!1);let v=p.length;return 0!==v&&p[v-1][0]0&&(void 0===s||t●{series.name}: {point.y}\xb0
'}}),aX(aK.prototype,{nameBase:"Linear Regression Angle Indicator"}),g().registerSeriesType("linearRegressionAngle",aK);let{sma:aH}=g().seriesTypes,{correctFloat:aU,extend:aZ,merge:a_}=h();class aj extends aH{getValues(e,t){let s,a,o,i,r,n,l,p,u,h,d;let c=t.period,m=t.factor,g=t.index,y=e.xData,f=e.yData,x=f?f.length:0,D=[],v=[],S=[],A=[],b=[];if(!(x=c&&(u=y.slice(d-c,d),h=f.slice(d-c,d),l=super.getValues.call(this,{xData:u,yData:D.slice(d-c,d)},{period:c}),p=super.getValues.call(this,{xData:u,yData:v.slice(d-c,d)},{period:c}),i=(n=super.getValues.call(this,{xData:u,yData:h},{period:c,index:g})).xData[0],a=l.yData[0],o=p.yData[0],s=n.yData[0],S.push([i,a,s,o]),A.push(i),b.push([a,s,o]))}return{values:S,xData:A,yData:b}}}}aj.defaultOptions=a_(aH.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),aZ(aj.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),_.compose(aj),g().registerSeriesType("abands",aj);let{sma:aq}=g().seriesTypes,{extend:a$,merge:aJ,isArray:aQ}=h();class a0 extends aq{constructor(){super(...arguments),this.updateAllPoints=!0}getValues(e,t){let s=e.xData,a=e.yData,o=[],i=[],r=[],n=[],l=t.index,p=0,u=0,h=0,d=0,c=0;for(let e=0;e(()=>{"use strict";var i,s={960:t=>{t.exports=e},512:t=>{t.exports=a},944:e=>{e.exports=t}},n={};function r(t){var e=n[t];if(void 0!==e)return e.exports;var a=n[t]={exports:{}};return s[t](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>N});var l=r(944),h=/*#__PURE__*/r.n(l),p=r(960),d=/*#__PURE__*/r.n(p),u=r(512),c=/*#__PURE__*/r.n(u);let{line:f}=c().seriesTypes,{addEvent:m,fireEvent:x,error:y,extend:g,isArray:D,merge:P,pick:C}=h(),v=(t,e)=>{let a=[],i=t.pointArrayMap,s=e&&t.dataTable.modified||t.dataTable;if(!i)return t.getColumn("y",e);let n=i.map(a=>t.getColumn(a,e));for(let t=0;tn[a]?.[t]||0);a.push(e)}return a};class A extends f{destroy(){this.dataEventsToUnbind.forEach(function(t){t()}),super.destroy.apply(this,arguments)}getName(){let t=[],e=this.name;return e||((this.nameComponents||[]).forEach(function(e,a){t.push(this.options.params[e]+C(this.nameSuffixes[a],""))},this),e=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+t.join(", ")+")":"")),e}getValues(t,e){let a=e.period,i=t.xData||[],s=t.yData,n=s.length,r=[],o=[],l=[],h,p=-1,d=0,u,c=0;if(!(i.length{u.forEach((e,a)=>{let i=c[e]||[];i.push(D(t)?t[a]:t),c[e]||(c[e]=i)})}),i&&!this.hasGroupedData&&this.visible&&this.points){if(this.cropped){this.xAxis&&(o=this.xAxis.min,l=this.xAxis.max);let i=this.cropData(e,o,l),s=["x",...this.pointArrayMap||["y"]];for(let e=0;e<(i.modified?.rowCount||0);e++){let a=s.map(t=>this.getColumn(t)[e]||0);t.push(a)}let h=this.getColumn("x");n=d.xData.indexOf(h[0]),r=d.xData.indexOf(h[h.length-1]),-1===n&&r===d.xData.length-2&&t[0][0]===a[0].x&&t.shift(),this.updateData(t)}else(this.updateAllPoints||d.xData.length!==i-1&&d.xData.length!==i+1)&&(s=!1,this.updateData(d.values))}s&&(e.setColumns({...c,x:d.xData}),this.options.data=d.values),this.calculateOn.xAxis&&this.getColumn("x",!0).length&&(this.isDirty=!0,this.redraw()),this.isDirtyData=!!this.linkedSeries.length,x(this,"updatedData")}processData(){let t=this.options.compareToMain,e=this.linkedParent;super.processData.apply(this,arguments),this.dataModify&&e&&e.dataModify&&e.dataModify.compareValue&&t&&(this.dataModify.compareValue=e.dataModify.compareValue)}}A.defaultOptions=P(f.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:3,period:14}}),g(A.prototype,{calculateOn:{chart:"init"},hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],useCommonDataGrouping:!0}),c().registerSeriesType("sma",A);let{sma:k}=c().seriesTypes,{correctFloat:T,isArray:M,merge:O}=h();class b extends k{accumulatePeriodPoints(t,e,a){let i=0,s=0;for(;s{t!==e&&a.push(s(t))}),a}function r(){let t=this,e=t.pointValKey,a=t.linesApiNames,i=t.areaLinesNames,r=t.points,o=t.options,l=t.graph,h={options:{gapSize:o.gapSize}},p=[],d=n(t,e),u=r.length,c;if(d.forEach((t,e)=>{for(p[e]=[];u--;)c=r[u],p[e].push({x:c.x,plotX:c.plotX,plotY:c[t],isNull:!w(c[t])});u=r.length}),t.userOptions.fillColor&&i.length){let e=p[d.indexOf(s(i[0]))],a=1===i.length?r:p[d.indexOf(s(i[1]))],n=t.color;t.points=a,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=V(r,h),t.graph=t.area,t.fillGraph=!0,E.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=n}a.forEach((e,a)=>{p[a]?(t.points=p[a],o[e]?t.options=V(o[e].styles,h):S('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],E.drawGraph.call(t),t["graph"+e]=t.graph):S('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=r,t.options=o,t.graph=l,E.drawGraph.call(t)}function o(t){let e,a=[],i=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=E.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",a=E.getGraphPath.call(this,t),i=e.slice(0,a.length);for(let t=i.length-1;t>=0;t--)a.push(i[t])}}else a=E.getGraphPath.apply(this,arguments);return a}function l(t){let e=[];return(this.pointArrayMap||[]).forEach(a=>{e.push(t[a])}),e}function h(){let t=this.pointArrayMap,e=[],a;e=n(this),E.translate.apply(this,arguments),this.points.forEach(i=>{t.forEach((t,s)=>{a=i[t],this.dataModify&&(a=this.dataModify.modifyValue(a)),null!==a&&(i[e[s]]=this.yAxis.toPixels(a,!0))})})}t.compose=function(t){let s=t.prototype;return s.linesApiNames=s.linesApiNames||e.slice(),s.pointArrayMap=s.pointArrayMap||a.slice(),s.pointValKey=s.pointValKey||"top",s.areaLinesNames=s.areaLinesNames||i.slice(),s.drawGraph=r,s.getGraphPath=o,s.toYData=l,s.translate=h,t}}(i||(i={}));let G=i,H=h();H.MultipleLinesComposition=H.MultipleLinesComposition||G;let N=h();return o.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/indicators",["highcharts/highcharts"],function(t){return e(t,t.Chart,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/indicators"]=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Chart,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,a)=>(()=>{"use strict";var i,s={960:t=>{t.exports=e},512:t=>{t.exports=a},944:e=>{e.exports=t}},n={};function r(t){var e=n[t];if(void 0!==e)return e.exports;var a=n[t]={exports:{}};return s[t](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>N});var l=r(944),h=r.n(l),p=r(960),d=r.n(p),u=r(512),c=r.n(u);let{line:f}=c().seriesTypes,{addEvent:m,fireEvent:x,error:y,extend:g,isArray:D,merge:P,pick:C}=h(),v=(t,e)=>{let a=[],i=t.pointArrayMap,s=e&&t.dataTable.modified||t.dataTable;if(!i)return t.getColumn("y",e);let n=i.map(a=>t.getColumn(a,e));for(let t=0;tn[a]?.[t]||0);a.push(e)}return a};class A extends f{destroy(){this.dataEventsToUnbind.forEach(function(t){t()}),super.destroy.apply(this,arguments)}getName(){let t=[],e=this.name;return e||((this.nameComponents||[]).forEach(function(e,a){t.push(this.options.params[e]+C(this.nameSuffixes[a],""))},this),e=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+t.join(", ")+")":"")),e}getValues(t,e){let a=e.period,i=t.xData||[],s=t.yData,n=s.length,r=[],o=[],l=[],h,p=-1,d=0,u,c=0;if(!(i.length{u.forEach((e,a)=>{let i=c[e]||[];i.push(D(t)?t[a]:t),c[e]||(c[e]=i)})}),i&&!this.hasGroupedData&&this.visible&&this.points){if(this.cropped){this.xAxis&&(o=this.xAxis.min,l=this.xAxis.max);let i=this.cropData(e,o,l),s=["x",...this.pointArrayMap||["y"]];for(let e=0;e<(i.modified?.rowCount||0);e++){let a=s.map(t=>this.getColumn(t)[e]||0);t.push(a)}let h=this.getColumn("x");n=d.xData.indexOf(h[0]),r=d.xData.indexOf(h[h.length-1]),-1===n&&r===d.xData.length-2&&t[0][0]===a[0].x&&t.shift(),this.updateData(t)}else(this.updateAllPoints||d.xData.length!==i-1&&d.xData.length!==i+1)&&(s=!1,this.updateData(d.values))}s&&(e.setColumns({...c,x:d.xData}),this.options.data=d.values),this.calculateOn.xAxis&&this.getColumn("x",!0).length&&(this.isDirty=!0,this.redraw()),this.isDirtyData=!!this.linkedSeries.length,x(this,"updatedData")}processData(){let t=this.options.compareToMain,e=this.linkedParent;super.processData.apply(this,arguments),this.dataModify&&e&&e.dataModify&&e.dataModify.compareValue&&t&&(this.dataModify.compareValue=e.dataModify.compareValue)}}A.defaultOptions=P(f.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:3,period:14}}),g(A.prototype,{calculateOn:{chart:"init"},hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],useCommonDataGrouping:!0}),c().registerSeriesType("sma",A);let{sma:k}=c().seriesTypes,{correctFloat:T,isArray:M,merge:O}=h();class b extends k{accumulatePeriodPoints(t,e,a){let i=0,s=0;for(;s{t!==e&&a.push(s(t))}),a}function r(){let t=this,e=t.pointValKey,a=t.linesApiNames,i=t.areaLinesNames,r=t.points,o=t.options,l=t.graph,h={options:{gapSize:o.gapSize}},p=[],d=n(t,e),u=r.length,c;if(d.forEach((t,e)=>{for(p[e]=[];u--;)c=r[u],p[e].push({x:c.x,plotX:c.plotX,plotY:c[t],isNull:!w(c[t])});u=r.length}),t.userOptions.fillColor&&i.length){let e=p[d.indexOf(s(i[0]))],a=1===i.length?r:p[d.indexOf(s(i[1]))],n=t.color;t.points=a,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=V(r,h),t.graph=t.area,t.fillGraph=!0,E.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=n}a.forEach((e,a)=>{p[a]?(t.points=p[a],o[e]?t.options=V(o[e].styles,h):S('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],E.drawGraph.call(t),t["graph"+e]=t.graph):S('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=r,t.options=o,t.graph=l,E.drawGraph.call(t)}function o(t){let e,a=[],i=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=E.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",a=E.getGraphPath.call(this,t),i=e.slice(0,a.length);for(let t=i.length-1;t>=0;t--)a.push(i[t])}}else a=E.getGraphPath.apply(this,arguments);return a}function l(t){let e=[];return(this.pointArrayMap||[]).forEach(a=>{e.push(t[a])}),e}function h(){let t=this.pointArrayMap,e=[],a;e=n(this),E.translate.apply(this,arguments),this.points.forEach(i=>{t.forEach((t,s)=>{a=i[t],this.dataModify&&(a=this.dataModify.modifyValue(a)),null!==a&&(i[e[s]]=this.yAxis.toPixels(a,!0))})})}t.compose=function(t){let s=t.prototype;return s.linesApiNames=s.linesApiNames||e.slice(),s.pointArrayMap=s.pointArrayMap||a.slice(),s.pointValKey=s.pointValKey||"top",s.areaLinesNames=s.areaLinesNames||i.slice(),s.drawGraph=r,s.getGraphPath=o,s.toYData=l,s.translate=h,t}}(i||(i={}));let G=i,H=h();H.MultipleLinesComposition=H.MultipleLinesComposition||G;let N=h();return o.default})()); \ No newline at end of file diff --git a/indicators/indicators.src.js b/indicators/indicators.src.js index 75daa014ba..339c3f5bc3 100644 --- a/indicators/indicators.src.js +++ b/indicators/indicators.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/indicators * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/keltner-channels.js b/indicators/keltner-channels.js index acaf21fd2a..3065ba0b5e 100644 --- a/indicators/keltner-channels.js +++ b/indicators/keltner-channels.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/keltner-channels * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Daniel Studencki * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/keltner-channels",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/keltner-channels"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var i,o={512:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={exports:{}};return o[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};s.d(a,{default:()=>v});var n=s(944),p=/*#__PURE__*/s.n(n),l=s(512),h=/*#__PURE__*/s.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:d,error:u,merge:f}=p();!function(e){let t=["bottomLine"],i=["top","bottom"],o=["top"];function r(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function s(e,t){let i=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&i.push(r(e))}),i}function a(){let e=this,t=e.pointValKey,i=e.linesApiNames,o=e.areaLinesNames,a=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],y=s(e,t),m=a.length,g;if(y.forEach((e,t)=>{for(h[t]=[];m--;)g=a[m],h[t].push({x:g.x,plotX:g.plotX,plotY:g[e],isNull:!d(g[e])});m=a.length}),e.userOptions.fillColor&&o.length){let t=h[y.indexOf(r(o[0]))],i=1===o.length?a:h[y.indexOf(r(o[1]))],s=e.color;e.points=i,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=f(a,l),e.graph=e.area,e.fillGraph=!0,c.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=s}i.forEach((t,i)=>{h[i]?(e.points=h[i],n[t]?e.options=f(n[t].styles,l):u('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],c.drawGraph.call(e),e["graph"+t]=e.graph):u('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=a,e.options=n,e.graph=p,c.drawGraph.call(e)}function n(e){let t,i=[],o=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=c.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",i=c.getGraphPath.call(this,e),o=t.slice(0,i.length);for(let e=o.length-1;e>=0;e--)i.push(o[e])}}else i=c.getGraphPath.apply(this,arguments);return i}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(i=>{t.push(e[i])}),t}function l(){let e=this.pointArrayMap,t=[],i;t=s(this),c.translate.apply(this,arguments),this.points.forEach(o=>{e.forEach((e,r)=>{i=o[e],this.dataModify&&(i=this.dataModify.modifyValue(i)),null!==i&&(o[t[r]]=this.yAxis.toPixels(i,!0))})})}e.compose=function(e){let r=e.prototype;return r.linesApiNames=r.linesApiNames||t.slice(),r.pointArrayMap=r.pointArrayMap||i.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||o.slice(),r.drawGraph=a,r.getGraphPath=n,r.toYData=p,r.translate=l,e}}(i||(i={}));let y=i,{sma:m}=h().seriesTypes,{correctFloat:g,extend:x,merge:A}=p();class b extends m{init(){h().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=A({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let i,o,r,s,a,n,p;let l=t.period,c=t.periodATR,d=t.multiplierATR,u=t.index,f=e.yData,y=f?f.length:0,m=[],x=h().seriesTypes.ema.prototype.getValues(e,{period:l,index:u}),A=h().seriesTypes.atr.prototype.getValues(e,{period:c}),b=[],v=[];if(!(y {series.name}
Upper Channel: {point.top}
EMA({series.options.params.period}): {point.middle}
Lower Channel: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1}),x(b.prototype,{nameBase:"Keltner Channels",areaLinesNames:["top","bottom"],nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),y.compose(b),h().registerSeriesType("keltnerchannels",b);let v=p();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/keltner-channels",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/keltner-channels"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var i,o={512:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={exports:{}};return o[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};s.d(a,{default:()=>v});var n=s(944),p=s.n(n),l=s(512),h=s.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:d,error:u,merge:f}=p();!function(e){let t=["bottomLine"],i=["top","bottom"],o=["top"];function r(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function s(e,t){let i=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&i.push(r(e))}),i}function a(){let e=this,t=e.pointValKey,i=e.linesApiNames,o=e.areaLinesNames,a=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],y=s(e,t),m=a.length,g;if(y.forEach((e,t)=>{for(h[t]=[];m--;)g=a[m],h[t].push({x:g.x,plotX:g.plotX,plotY:g[e],isNull:!d(g[e])});m=a.length}),e.userOptions.fillColor&&o.length){let t=h[y.indexOf(r(o[0]))],i=1===o.length?a:h[y.indexOf(r(o[1]))],s=e.color;e.points=i,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=f(a,l),e.graph=e.area,e.fillGraph=!0,c.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=s}i.forEach((t,i)=>{h[i]?(e.points=h[i],n[t]?e.options=f(n[t].styles,l):u('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],c.drawGraph.call(e),e["graph"+t]=e.graph):u('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=a,e.options=n,e.graph=p,c.drawGraph.call(e)}function n(e){let t,i=[],o=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=c.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",i=c.getGraphPath.call(this,e),o=t.slice(0,i.length);for(let e=o.length-1;e>=0;e--)i.push(o[e])}}else i=c.getGraphPath.apply(this,arguments);return i}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(i=>{t.push(e[i])}),t}function l(){let e=this.pointArrayMap,t=[],i;t=s(this),c.translate.apply(this,arguments),this.points.forEach(o=>{e.forEach((e,r)=>{i=o[e],this.dataModify&&(i=this.dataModify.modifyValue(i)),null!==i&&(o[t[r]]=this.yAxis.toPixels(i,!0))})})}e.compose=function(e){let r=e.prototype;return r.linesApiNames=r.linesApiNames||t.slice(),r.pointArrayMap=r.pointArrayMap||i.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||o.slice(),r.drawGraph=a,r.getGraphPath=n,r.toYData=p,r.translate=l,e}}(i||(i={}));let y=i,{sma:m}=h().seriesTypes,{correctFloat:g,extend:x,merge:A}=p();class b extends m{init(){h().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=A({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let i,o,r,s,a,n,p;let l=t.period,c=t.periodATR,d=t.multiplierATR,u=t.index,f=e.yData,y=f?f.length:0,m=[],x=h().seriesTypes.ema.prototype.getValues(e,{period:l,index:u}),A=h().seriesTypes.atr.prototype.getValues(e,{period:c}),b=[],v=[];if(!(y {series.name}
Upper Channel: {point.top}
EMA({series.options.params.period}): {point.middle}
Lower Channel: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1}),x(b.prototype,{nameBase:"Keltner Channels",areaLinesNames:["top","bottom"],nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),y.compose(b),h().registerSeriesType("keltnerchannels",b);let v=p();return a.default})()); \ No newline at end of file diff --git a/indicators/keltner-channels.src.js b/indicators/keltner-channels.src.js index 2ea99186d4..4756140e6d 100644 --- a/indicators/keltner-channels.src.js +++ b/indicators/keltner-channels.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/keltner-channels * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/klinger.js b/indicators/klinger.js index df379a123d..4d80a21325 100644 --- a/indicators/klinger.js +++ b/indicators/klinger.js @@ -1,5 +1,5 @@ !/** - * Highcharts Stock JS v12.0.2 (2024-12-04) + * Highcharts Stock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/klinger * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Karol Kolodziej * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/klinger",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/klinger"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r,i={512:e=>{e.exports=t},944:t=>{t.exports=e}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return i[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};s.d(a,{default:()=>w});var n=s(944),l=/*#__PURE__*/s.n(n),p=s(512),h=/*#__PURE__*/s.n(p);let{sma:{prototype:g}}=h().seriesTypes,{defined:u,error:c,merge:d}=l();!function(e){let t=["bottomLine"],r=["top","bottom"],i=["top"];function o(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function s(e,t){let r=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&r.push(o(e))}),r}function a(){let e=this,t=e.pointValKey,r=e.linesApiNames,i=e.areaLinesNames,a=e.points,n=e.options,l=e.graph,p={options:{gapSize:n.gapSize}},h=[],f=s(e,t),y=a.length,m;if(f.forEach((e,t)=>{for(h[t]=[];y--;)m=a[y],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!u(m[e])});y=a.length}),e.userOptions.fillColor&&i.length){let t=h[f.indexOf(o(i[0]))],r=1===i.length?a:h[f.indexOf(o(i[1]))],s=e.color;e.points=r,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=d(a,p),e.graph=e.area,e.fillGraph=!0,g.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=s}r.forEach((t,r)=>{h[r]?(e.points=h[r],n[t]?e.options=d(n[t].styles,p):c('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],g.drawGraph.call(e),e["graph"+t]=e.graph):c('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=a,e.options=n,e.graph=l,g.drawGraph.call(e)}function n(e){let t,r=[],i=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=g.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",r=g.getGraphPath.call(this,e),i=t.slice(0,r.length);for(let e=i.length-1;e>=0;e--)r.push(i[e])}}else r=g.getGraphPath.apply(this,arguments);return r}function l(e){let t=[];return(this.pointArrayMap||[]).forEach(r=>{t.push(e[r])}),t}function p(){let e=this.pointArrayMap,t=[],r;t=s(this),g.translate.apply(this,arguments),this.points.forEach(i=>{e.forEach((e,o)=>{r=i[e],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(i[t[o]]=this.yAxis.toPixels(r,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||r.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||i.slice(),o.drawGraph=a,o.getGraphPath=n,o.toYData=l,o.translate=p,e}}(r||(r={}));let f=r,{ema:y,sma:m}=h().seriesTypes,{correctFloat:v,error:A,extend:P,isArray:x,merge:M}=l();class S extends m{calculateTrend(e,t){return e[t][1]+e[t][2]+e[t][3]>e[t-1][1]+e[t-1][2]+e[t-1][3]?1:-1}isValidData(e){let t=this.chart,r=this.options,i=this.linkedParent,o=x(e)&&4===e.length,s=this.volumeSeries||(this.volumeSeries=t.get(r.params.volumeSeriesID));return s||A("Series "+r.params.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,i.chart),!!([i,s].every(function(e){return e&&e.dataTable.rowCount>=r.params.slowAvgPeriod})&&o)}getCM(e,t,r,i,o){return v(t+(r===i?e:o))}getDM(e,t){return v(e-t)}getVolumeForce(e){let t=[],r=0,i,o=1,s=0,a=e[0][1]-e[0][2],n=0,l;for(;o=t.fastAvgPeriod&&(u=h=this.getEMA(f,u,y,A,0,p,i)[1]),p>=t.slowAvgPeriod&&(c=g=this.getEMA(f,c,m,P,0,p,i)[1],n.push(l=v(h-g)),n.length>=t.signalPeriod&&(d=n.slice(-t.signalPeriod).reduce((e,t)=>e+t)/t.signalPeriod),r.push([i[p],l,d]),s.push(i[p]),a.push([l,d]));return{values:r,xData:s,yData:a}}}S.defaultOptions=M(m.defaultOptions,{params:{fastAvgPeriod:34,slowAvgPeriod:55,signalPeriod:13,volumeSeriesID:"volume"},signalLine:{styles:{lineWidth:1,lineColor:"#ff0000"}},dataGrouping:{approximation:"averages"},tooltip:{pointFormat:' {series.name}
Klinger: {point.y}
Signal: {point.signal}
'}}),P(S.prototype,{areaLinesNames:[],linesApiNames:["signalLine"],nameBase:"Klinger",nameComponents:["fastAvgPeriod","slowAvgPeriod"],pointArrayMap:["y","signal"],parallelArrays:["x","y","signal"],pointValKey:"y"}),f.compose(S),h().registerSeriesType("klinger",S);let w=l();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/klinger",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/klinger"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r,i={512:e=>{e.exports=t},944:t=>{t.exports=e}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return i[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};s.d(a,{default:()=>w});var n=s(944),l=s.n(n),p=s(512),h=s.n(p);let{sma:{prototype:g}}=h().seriesTypes,{defined:u,error:c,merge:d}=l();!function(e){let t=["bottomLine"],r=["top","bottom"],i=["top"];function o(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function s(e,t){let r=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&r.push(o(e))}),r}function a(){let e=this,t=e.pointValKey,r=e.linesApiNames,i=e.areaLinesNames,a=e.points,n=e.options,l=e.graph,p={options:{gapSize:n.gapSize}},h=[],f=s(e,t),y=a.length,m;if(f.forEach((e,t)=>{for(h[t]=[];y--;)m=a[y],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!u(m[e])});y=a.length}),e.userOptions.fillColor&&i.length){let t=h[f.indexOf(o(i[0]))],r=1===i.length?a:h[f.indexOf(o(i[1]))],s=e.color;e.points=r,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=d(a,p),e.graph=e.area,e.fillGraph=!0,g.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=s}r.forEach((t,r)=>{h[r]?(e.points=h[r],n[t]?e.options=d(n[t].styles,p):c('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],g.drawGraph.call(e),e["graph"+t]=e.graph):c('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=a,e.options=n,e.graph=l,g.drawGraph.call(e)}function n(e){let t,r=[],i=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=g.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",r=g.getGraphPath.call(this,e),i=t.slice(0,r.length);for(let e=i.length-1;e>=0;e--)r.push(i[e])}}else r=g.getGraphPath.apply(this,arguments);return r}function l(e){let t=[];return(this.pointArrayMap||[]).forEach(r=>{t.push(e[r])}),t}function p(){let e=this.pointArrayMap,t=[],r;t=s(this),g.translate.apply(this,arguments),this.points.forEach(i=>{e.forEach((e,o)=>{r=i[e],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(i[t[o]]=this.yAxis.toPixels(r,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||r.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||i.slice(),o.drawGraph=a,o.getGraphPath=n,o.toYData=l,o.translate=p,e}}(r||(r={}));let f=r,{ema:y,sma:m}=h().seriesTypes,{correctFloat:v,error:A,extend:P,isArray:x,merge:M}=l();class S extends m{calculateTrend(e,t){return e[t][1]+e[t][2]+e[t][3]>e[t-1][1]+e[t-1][2]+e[t-1][3]?1:-1}isValidData(e){let t=this.chart,r=this.options,i=this.linkedParent,o=x(e)&&4===e.length,s=this.volumeSeries||(this.volumeSeries=t.get(r.params.volumeSeriesID));return s||A("Series "+r.params.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,i.chart),!!([i,s].every(function(e){return e&&e.dataTable.rowCount>=r.params.slowAvgPeriod})&&o)}getCM(e,t,r,i,o){return v(t+(r===i?e:o))}getDM(e,t){return v(e-t)}getVolumeForce(e){let t=[],r=0,i,o=1,s=0,a=e[0][1]-e[0][2],n=0,l;for(;o=t.fastAvgPeriod&&(u=h=this.getEMA(f,u,y,A,0,p,i)[1]),p>=t.slowAvgPeriod&&(c=g=this.getEMA(f,c,m,P,0,p,i)[1],n.push(l=v(h-g)),n.length>=t.signalPeriod&&(d=n.slice(-t.signalPeriod).reduce((e,t)=>e+t)/t.signalPeriod),r.push([i[p],l,d]),s.push(i[p]),a.push([l,d]));return{values:r,xData:s,yData:a}}}S.defaultOptions=M(m.defaultOptions,{params:{fastAvgPeriod:34,slowAvgPeriod:55,signalPeriod:13,volumeSeriesID:"volume"},signalLine:{styles:{lineWidth:1,lineColor:"#ff0000"}},dataGrouping:{approximation:"averages"},tooltip:{pointFormat:' {series.name}
Klinger: {point.y}
Signal: {point.signal}
'}}),P(S.prototype,{areaLinesNames:[],linesApiNames:["signalLine"],nameBase:"Klinger",nameComponents:["fastAvgPeriod","slowAvgPeriod"],pointArrayMap:["y","signal"],parallelArrays:["x","y","signal"],pointValKey:"y"}),f.compose(S),h().registerSeriesType("klinger",S);let w=l();return a.default})()); \ No newline at end of file diff --git a/indicators/klinger.src.js b/indicators/klinger.src.js index 4cef7603f2..b94170a26b 100644 --- a/indicators/klinger.src.js +++ b/indicators/klinger.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts Stock JS v12.0.2 (2024-12-04) + * @license Highcharts Stock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/klinger * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/macd.js b/indicators/macd.js index 73cfad2660..f2316d3865 100644 --- a/indicators/macd.js +++ b/indicators/macd.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/macd * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Sebastian Bochan * * License: www.highcharts.com/license - */function(s,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(s._Highcharts,s._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/macd",["highcharts/highcharts"],function(s){return e(s,s.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/macd"]=e(s._Highcharts,s._Highcharts.SeriesRegistry):s.Highcharts=e(s.Highcharts,s.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(s,e)=>(()=>{"use strict";var o={512:s=>{s.exports=e},944:e=>{e.exports=s}},t={};function i(s){var e=t[s];if(void 0!==e)return e.exports;var n=t[s]={exports:{}};return o[s](n,n.exports,i),n.exports}i.n=s=>{var e=s&&s.__esModule?()=>s.default:()=>s;return i.d(e,{a:e}),e},i.d=(s,e)=>{for(var o in e)i.o(e,o)&&!i.o(s,o)&&Object.defineProperty(s,o,{enumerable:!0,get:e[o]})},i.o=(s,e)=>Object.prototype.hasOwnProperty.call(s,e);var n={};i.d(n,{default:()=>x});var r=i(944),a=/*#__PURE__*/i.n(r),l=i(512),p=/*#__PURE__*/i.n(l);let{noop:h}=a(),{column:d,sma:c}=p().seriesTypes,{extend:g,correctFloat:y,defined:u,merge:m}=a();class f extends c{init(){p().seriesTypes.sma.prototype.init.apply(this,arguments);let s=this.color;this.options&&(u(this.colorIndex)&&(this.options.signalLine&&this.options.signalLine.styles&&!this.options.signalLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.signalLine.styles.lineColor=this.color),this.options.macdLine&&this.options.macdLine.styles&&!this.options.macdLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.macdLine.styles.lineColor=this.color)),this.macdZones={zones:this.options.macdLine.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones.length}),this.color=s}toYData(s){return[s.y,s.signal,s.MACD]}translate(){let s=this,e=["plotSignal","plotMACD"];a().seriesTypes.column.prototype.translate.apply(s),s.points.forEach(function(o){[o.signal,o.MACD].forEach(function(t,i){null!==t&&(o[e[i]]=s.yAxis.toPixels(t,!0))})})}destroy(){this.graph=null,this.graphmacd=this.graphmacd&&this.graphmacd.destroy(),this.graphsignal=this.graphsignal&&this.graphsignal.destroy(),p().seriesTypes.sma.prototype.destroy.apply(this,arguments)}drawGraph(){let s=this,e=s.points,o=s.options,t=s.zones,i={options:{gapSize:o.gapSize}},n=[[],[]],r,a=e.length;for(;a--;)u((r=e[a]).plotMACD)&&n[0].push({plotX:r.plotX,plotY:r.plotMACD,isNull:!u(r.plotMACD)}),u(r.plotSignal)&&n[1].push({plotX:r.plotX,plotY:r.plotSignal,isNull:!u(r.plotMACD)});["macd","signal"].forEach((e,t)=>{s.points=n[t],s.options=m(o[`${e}Line`]?.styles||{},i),s.graph=s[`graph${e}`],s.zones=(s[`${e}Zones`].zones||[]).slice(s[`${e}Zones`].startIndex||0),p().seriesTypes.sma.prototype.drawGraph.call(s),s[`graph${e}`]=s.graph}),s.points=e,s.options=o,s.zones=t}applyZones(){let s=this.zones;this.zones=this.signalZones.zones,p().seriesTypes.sma.prototype.applyZones.call(this),this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(),this.zones=s}getValues(s,e){let o=e.longPeriod-e.shortPeriod,t=[],i=[],n=[],r,a,l,h=0,d=[];if(!(s.xData.length=d[0][0]&&(t[l][2]=d[h][1],n[l]=[0,d[h][1],t[l][3]],null===t[l][3]?(t[l][1]=0,n[l][0]=0):(t[l][1]=y(t[l][3]-d[h][1]),n[l][0]=y(t[l][3]-d[h][1])),h++);return{values:t,xData:i,yData:n}}}}f.defaultOptions=m(c.defaultOptions,{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,crisp:!1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:' {series.name}
Value: {point.MACD}
Signal: {point.signal}
Histogram: {point.y}
'},dataGrouping:{approximation:"averages"},minPointLength:0}),g(f.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:h,getColumnMetrics:a().seriesTypes.column.prototype.getColumnMetrics,crispCol:a().seriesTypes.column.prototype.crispCol,drawPoints:a().seriesTypes.column.prototype.drawPoints}),p().registerSeriesType("macd",f);let x=a();return n.default})()); \ No newline at end of file + */function(s,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(s._Highcharts,s._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/macd",["highcharts/highcharts"],function(s){return e(s,s.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/macd"]=e(s._Highcharts,s._Highcharts.SeriesRegistry):s.Highcharts=e(s.Highcharts,s.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(s,e)=>(()=>{"use strict";var o={512:s=>{s.exports=e},944:e=>{e.exports=s}},t={};function i(s){var e=t[s];if(void 0!==e)return e.exports;var n=t[s]={exports:{}};return o[s](n,n.exports,i),n.exports}i.n=s=>{var e=s&&s.__esModule?()=>s.default:()=>s;return i.d(e,{a:e}),e},i.d=(s,e)=>{for(var o in e)i.o(e,o)&&!i.o(s,o)&&Object.defineProperty(s,o,{enumerable:!0,get:e[o]})},i.o=(s,e)=>Object.prototype.hasOwnProperty.call(s,e);var n={};i.d(n,{default:()=>x});var r=i(944),a=i.n(r),l=i(512),p=i.n(l);let{noop:h}=a(),{column:d,sma:c}=p().seriesTypes,{extend:g,correctFloat:y,defined:u,merge:m}=a();class f extends c{init(){p().seriesTypes.sma.prototype.init.apply(this,arguments);let s=this.color;this.options&&(u(this.colorIndex)&&(this.options.signalLine&&this.options.signalLine.styles&&!this.options.signalLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.signalLine.styles.lineColor=this.color),this.options.macdLine&&this.options.macdLine.styles&&!this.options.macdLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.macdLine.styles.lineColor=this.color)),this.macdZones={zones:this.options.macdLine.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones.length}),this.color=s}toYData(s){return[s.y,s.signal,s.MACD]}translate(){let s=this,e=["plotSignal","plotMACD"];a().seriesTypes.column.prototype.translate.apply(s),s.points.forEach(function(o){[o.signal,o.MACD].forEach(function(t,i){null!==t&&(o[e[i]]=s.yAxis.toPixels(t,!0))})})}destroy(){this.graph=null,this.graphmacd=this.graphmacd&&this.graphmacd.destroy(),this.graphsignal=this.graphsignal&&this.graphsignal.destroy(),p().seriesTypes.sma.prototype.destroy.apply(this,arguments)}drawGraph(){let s=this,e=s.points,o=s.options,t=s.zones,i={options:{gapSize:o.gapSize}},n=[[],[]],r,a=e.length;for(;a--;)u((r=e[a]).plotMACD)&&n[0].push({plotX:r.plotX,plotY:r.plotMACD,isNull:!u(r.plotMACD)}),u(r.plotSignal)&&n[1].push({plotX:r.plotX,plotY:r.plotSignal,isNull:!u(r.plotMACD)});["macd","signal"].forEach((e,t)=>{s.points=n[t],s.options=m(o[`${e}Line`]?.styles||{},i),s.graph=s[`graph${e}`],s.zones=(s[`${e}Zones`].zones||[]).slice(s[`${e}Zones`].startIndex||0),p().seriesTypes.sma.prototype.drawGraph.call(s),s[`graph${e}`]=s.graph}),s.points=e,s.options=o,s.zones=t}applyZones(){let s=this.zones;this.zones=this.signalZones.zones,p().seriesTypes.sma.prototype.applyZones.call(this),this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(),this.zones=s}getValues(s,e){let o=e.longPeriod-e.shortPeriod,t=[],i=[],n=[],r,a,l,h=0,d=[];if(!(s.xData.length=d[0][0]&&(t[l][2]=d[h][1],n[l]=[0,d[h][1],t[l][3]],null===t[l][3]?(t[l][1]=0,n[l][0]=0):(t[l][1]=y(t[l][3]-d[h][1]),n[l][0]=y(t[l][3]-d[h][1])),h++);return{values:t,xData:i,yData:n}}}}f.defaultOptions=m(c.defaultOptions,{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,crisp:!1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:' {series.name}
Value: {point.MACD}
Signal: {point.signal}
Histogram: {point.y}
'},dataGrouping:{approximation:"averages"},minPointLength:0}),g(f.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:h,getColumnMetrics:a().seriesTypes.column.prototype.getColumnMetrics,crispCol:a().seriesTypes.column.prototype.crispCol,drawPoints:a().seriesTypes.column.prototype.drawPoints}),p().registerSeriesType("macd",f);let x=a();return n.default})()); \ No newline at end of file diff --git a/indicators/macd.src.js b/indicators/macd.src.js index 3bc5bae412..2774e63176 100644 --- a/indicators/macd.src.js +++ b/indicators/macd.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/macd * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/mfi.js b/indicators/mfi.js index f782b64086..bfd4c1baa9 100644 --- a/indicators/mfi.js +++ b/indicators/mfi.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/mfi * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Grzegorz Blachliński * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/mfi",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/mfi"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>x});var n=i(944),a=/*#__PURE__*/i.n(n),u=i(512),h=/*#__PURE__*/i.n(u);let{sma:p}=h().seriesTypes,{extend:c,merge:f,error:d,isArray:l}=a();function g(e){return e.reduce(function(e,t){return e+t})}function y(e){return(e[1]+e[2]+e[3])/3}class m extends p{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,o=i?i.length:0,n=t.decimals,a=e.chart.get(t.volumeSeriesID),u=a?.getColumn("y")||[],h=[],p=[],c=[],f=[],m=[],x,v,S,D,H,b,w=!1,_=1;if(!a){d("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}if(!(s.length<=r)&&l(i[0])&&4===i[0].length&&u){for(x=y(i[_]);_=v,S=x*u[_],f.push(w?S:0),m.push(w?0:S),_++;for(b=_-1;b_-1&&(f.shift(),m.shift(),v=x,w=(x=y(i[b]))>v,S=x*u[b],f.push(w?S:0),m.push(w?0:S)),D=g(m),H=parseFloat((100-100/(1+g(f)/D)).toFixed(n)),h.push([s[b],H]),p.push(s[b]),c.push(H);return{values:h,xData:p,yData:c}}}}m.defaultOptions=f(p.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",decimals:4}}),c(m.prototype,{nameBase:"Money Flow Index"}),h().registerSeriesType("mfi",m);let x=a();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/mfi",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/mfi"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>x});var n=i(944),a=i.n(n),u=i(512),h=i.n(u);let{sma:p}=h().seriesTypes,{extend:c,merge:f,error:d,isArray:l}=a();function g(e){return e.reduce(function(e,t){return e+t})}function y(e){return(e[1]+e[2]+e[3])/3}class m extends p{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,o=i?i.length:0,n=t.decimals,a=e.chart.get(t.volumeSeriesID),u=a?.getColumn("y")||[],h=[],p=[],c=[],f=[],m=[],x,v,S,D,H,b,w=!1,_=1;if(!a){d("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}if(!(s.length<=r)&&l(i[0])&&4===i[0].length&&u){for(x=y(i[_]);_=v,S=x*u[_],f.push(w?S:0),m.push(w?0:S),_++;for(b=_-1;b_-1&&(f.shift(),m.shift(),v=x,w=(x=y(i[b]))>v,S=x*u[b],f.push(w?S:0),m.push(w?0:S)),D=g(m),H=parseFloat((100-100/(1+g(f)/D)).toFixed(n)),h.push([s[b],H]),p.push(s[b]),c.push(H);return{values:h,xData:p,yData:c}}}}m.defaultOptions=f(p.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",decimals:4}}),c(m.prototype,{nameBase:"Money Flow Index"}),h().registerSeriesType("mfi",m);let x=a();return o.default})()); \ No newline at end of file diff --git a/indicators/mfi.src.js b/indicators/mfi.src.js index ebb9c8215c..3d1ed21956 100644 --- a/indicators/mfi.src.js +++ b/indicators/mfi.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/mfi * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/momentum.js b/indicators/momentum.js index a5b5bc4ce6..93ebbca708 100644 --- a/indicators/momentum.js +++ b/indicators/momentum.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/momentum * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Sebastian Bochan * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/momentum",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/momentum"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>m});var a=i(944),n=/*#__PURE__*/i.n(a),h=i(512),u=/*#__PURE__*/i.n(h);let{sma:p}=u().seriesTypes,{extend:d,isArray:c,merge:f}=n();function l(e,t,r,s,i){let o=t[r-1][i]-t[r-s-1][i];return[e[r-1],o]}class g extends p{getValues(e,t){let r,s;let i=t.period,o=t.index,a=e.xData,n=e.yData,h=n?n.length:0,u=[],p=[],d=[];if(!(a.length<=i)&&c(n[0])){for(r=i+1;r(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>m});var a=i(944),n=i.n(a),h=i(512),u=i.n(h);let{sma:p}=u().seriesTypes,{extend:d,isArray:c,merge:f}=n();function l(e,t,r,s,i){let o=t[r-1][i]-t[r-s-1][i];return[e[r-1],o]}class g extends p{getValues(e,t){let r,s;let i=t.period,o=t.index,a=e.xData,n=e.yData,h=n?n.length:0,u=[],p=[],d=[];if(!(a.length<=i)&&c(n[0])){for(r=i+1;r(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>f});var o=i(944),n=/*#__PURE__*/i.n(o),h=i(512),u=/*#__PURE__*/i.n(h);let{atr:p}=u().seriesTypes,{merge:c}=n();class d extends p{getValues(e,t){let r=super.getValues.apply(this,arguments),s=r.values.length,i=e.yData,a=0,o=t.period-1;if(r){for(;a(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>f});var o=i(944),n=i.n(o),h=i(512),u=i.n(h);let{atr:p}=u().seriesTypes,{merge:c}=n();class d extends p{getValues(e,t){let r=super.getValues.apply(this,arguments),s=r.values.length,i=e.yData,a=0,o=t.period-1;if(r){for(;a(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>v});var a=o(944),n=/*#__PURE__*/o.n(a),h=o(512),u=/*#__PURE__*/o.n(h);let{sma:p}=u().seriesTypes,{isNumber:d,error:c,extend:l,merge:f}=n();class g extends p{getValues(e,t){let r=e.chart.get(t.volumeSeriesID),s=e.xData,o=e.yData,i=[],a=[],n=[],h=!d(o[0]),u=[],p=1,l=0,f=0,g=0,v=0,y;if(r)for(y=r.getColumn("y"),u=[s[0],l],g=h?o[0][3]:o[0],i.push(u),a.push(s[0]),n.push(u[1]);pg?l+y[p]:v===g?l:l-y[p],u=[s[p],f],l=f,g=v,i.push(u),a.push(s[p]),n.push(u[1]);else{c("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}return{values:i,xData:a,yData:n}}}g.defaultOptions=f(p.defaultOptions,{marker:{enabled:!1},params:{index:void 0,period:void 0,volumeSeriesID:"volume"},tooltip:{valueDecimals:0}}),l(g.prototype,{nameComponents:void 0}),u().registerSeriesType("obv",g);let v=n();return i.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/obv",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/obv"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>v});var a=o(944),n=o.n(a),h=o(512),u=o.n(h);let{sma:p}=u().seriesTypes,{isNumber:d,error:c,extend:l,merge:f}=n();class g extends p{getValues(e,t){let r=e.chart.get(t.volumeSeriesID),s=e.xData,o=e.yData,i=[],a=[],n=[],h=!d(o[0]),u=[],p=1,l=0,f=0,g=0,v=0,y;if(r)for(y=r.getColumn("y"),u=[s[0],l],g=h?o[0][3]:o[0],i.push(u),a.push(s[0]),n.push(u[1]);pg?l+y[p]:v===g?l:l-y[p],u=[s[p],f],l=f,g=v,i.push(u),a.push(s[p]),n.push(u[1]);else{c("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);return}return{values:i,xData:a,yData:n}}}g.defaultOptions=f(p.defaultOptions,{marker:{enabled:!1},params:{index:void 0,period:void 0,volumeSeriesID:"volume"},tooltip:{valueDecimals:0}}),l(g.prototype,{nameComponents:void 0}),u().registerSeriesType("obv",g);let v=n();return i.default})()); \ No newline at end of file diff --git a/indicators/obv.src.js b/indicators/obv.src.js index 61d8d9f5e9..3a4b71c4a8 100644 --- a/indicators/obv.src.js +++ b/indicators/obv.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/obv * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/pivot-points.js b/indicators/pivot-points.js index 64df400441..15a06e57ef 100644 --- a/indicators/pivot-points.js +++ b/indicators/pivot-points.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/pivot-points * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Paweł Fus * * License: 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/indicators/pivot-points",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/pivot-points"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var a={512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var l=r[t]={exports:{}};return a[t](l,l.exports,o),l.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var a in e)o.o(e,a)&&!o.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};o.d(l,{default:()=>b});var n=o(944),s=/*#__PURE__*/o.n(n),i=o(512),p=/*#__PURE__*/o.n(i);let d=p().seriesTypes.sma.prototype.pointClass;function h(t,e){let a=t.series.pointArrayMap,r,o=a.length;for(p().seriesTypes.sma.prototype.pointClass.prototype[e].call(t);o--;)t[r="dataLabel"+a[o]]&&t[r].element&&t[r].destroy(),t[r]=null}let{sma:c}=p().seriesTypes,{merge:u,extend:f,defined:y,isArray:g}=s();class m extends c{toYData(t){return[t.P]}translate(){let t=this;super.translate.apply(t),t.points.forEach(function(e){t.pointArrayMap.forEach(function(a){y(e[a])&&(e["plot"+a]=t.yAxis.toPixels(e[a],!0))})}),t.plotEndPoint=t.xAxis.toPixels(t.endPoint,!0)}getGraphPath(t){let e=this,a=[[],[],[],[],[],[],[],[],[]],r=e.pointArrayMap.length,o=e.plotEndPoint,l=[],n,s,i=t.length,p;for(;i--;){for(p=0,s=t[i];p{l=l.concat(super.getGraphPath.call(e,t))}),l}drawDataLabels(){let t,e,a,r;let o=this,l=o.pointArrayMap;o.options.dataLabels.enabled&&(e=o.points.length,l.concat([!1]).forEach((n,s)=>{for(r=e;r--;)a=o.points[r],n?(a.y=a[n],a.pivotLine=n,a.plotY=a["plot"+n],t=a["dataLabel"+n],s&&(a["dataLabel"+l[s-1]]=a.dataLabel),a.dataLabels||(a.dataLabels=[]),a.dataLabels[0]=a.dataLabel=t=t&&t.element?t:null):a["dataLabel"+l[s-1]]=a.dataLabel;super.drawDataLabels.call(o)}))}getValues(t,e){let a,r,o,l,n,s,i;let p=e.period,d=t.xData,h=t.yData,c=h?h.length:0,u=this[e.algorithm+"Placement"],f=[],y=[],m=[];if(!(d.length(()=>{"use strict";var a={512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var l=r[t]={exports:{}};return a[t](l,l.exports,o),l.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var a in e)o.o(e,a)&&!o.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};o.d(l,{default:()=>b});var n=o(944),s=o.n(n),i=o(512),p=o.n(i);let d=p().seriesTypes.sma.prototype.pointClass;function h(t,e){let a=t.series.pointArrayMap,r,o=a.length;for(p().seriesTypes.sma.prototype.pointClass.prototype[e].call(t);o--;)t[r="dataLabel"+a[o]]&&t[r].element&&t[r].destroy(),t[r]=null}let{sma:c}=p().seriesTypes,{merge:u,extend:f,defined:y,isArray:g}=s();class m extends c{toYData(t){return[t.P]}translate(){let t=this;super.translate.apply(t),t.points.forEach(function(e){t.pointArrayMap.forEach(function(a){y(e[a])&&(e["plot"+a]=t.yAxis.toPixels(e[a],!0))})}),t.plotEndPoint=t.xAxis.toPixels(t.endPoint,!0)}getGraphPath(t){let e=this,a=[[],[],[],[],[],[],[],[],[]],r=e.pointArrayMap.length,o=e.plotEndPoint,l=[],n,s,i=t.length,p;for(;i--;){for(p=0,s=t[i];p{l=l.concat(super.getGraphPath.call(e,t))}),l}drawDataLabels(){let t,e,a,r;let o=this,l=o.pointArrayMap;o.options.dataLabels.enabled&&(e=o.points.length,l.concat([!1]).forEach((n,s)=>{for(r=e;r--;)a=o.points[r],n?(a.y=a[n],a.pivotLine=n,a.plotY=a["plot"+n],t=a["dataLabel"+n],s&&(a["dataLabel"+l[s-1]]=a.dataLabel),a.dataLabels||(a.dataLabels=[]),a.dataLabels[0]=a.dataLabel=t=t&&t.element?t:null):a["dataLabel"+l[s-1]]=a.dataLabel;super.drawDataLabels.call(o)}))}getValues(t,e){let a,r,o,l,n,s,i;let p=e.period,d=t.xData,h=t.yData,c=h?h.length:0,u=this[e.algorithm+"Placement"],f=[],y=[],m=[];if(!(d.length(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>y});var a=o(944),n=/*#__PURE__*/o.n(a),p=o(512),d=/*#__PURE__*/o.n(p);let{ema:h}=d().seriesTypes,{correctFloat:u,extend:l,merge:c,error:f}=n();class g extends h{getValues(e,t){let r,s;let o=t.periods,i=t.index,a=[],n=[],p=[];if(2!==o.length||o[1]<=o[0]){f('Error: "PPO requires two periods. Notice, first period should be lower than the second one."');return}let d=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!d||!h)return;let l=o[1]-o[0];for(s=0;s(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};o.d(i,{default:()=>y});var a=o(944),n=o.n(a),p=o(512),d=o.n(p);let{ema:h}=d().seriesTypes,{correctFloat:u,extend:l,merge:c,error:f}=n();class g extends h{getValues(e,t){let r,s;let o=t.periods,i=t.index,a=[],n=[],p=[];if(2!==o.length||o[1]<=o[0]){f('Error: "PPO requires two periods. Notice, first period should be lower than the second one."');return}let d=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!d||!h)return;let l=o[1]-o[0];for(s=0;s(()=>{"use strict";var r,i={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return i[e](r,r.exports,o),r.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};o.d(s,{default:()=>M});var n=o(944),p=/*#__PURE__*/o.n(n);let l={getArrayExtremes:function(e,t,r){return e.reduce((e,i)=>[Math.min(e[0],i[t]),Math.max(e[1],i[r])],[Number.MAX_VALUE,-Number.MAX_VALUE])}};var h=o(512),c=/*#__PURE__*/o.n(h);let{sma:{prototype:f}}=c().seriesTypes,{defined:u,error:d,merge:g}=p();!function(e){let t=["bottomLine"],r=["top","bottom"],i=["top"];function a(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function o(e,t){let r=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&r.push(a(e))}),r}function s(){let e=this,t=e.pointValKey,r=e.linesApiNames,i=e.areaLinesNames,s=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],c=o(e,t),y=s.length,m;if(c.forEach((e,t)=>{for(h[t]=[];y--;)m=s[y],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!u(m[e])});y=s.length}),e.userOptions.fillColor&&i.length){let t=h[c.indexOf(a(i[0]))],r=1===i.length?s:h[c.indexOf(a(i[1]))],o=e.color;e.points=r,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=g(s,l),e.graph=e.area,e.fillGraph=!0,f.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=o}r.forEach((t,r)=>{h[r]?(e.points=h[r],n[t]?e.options=g(n[t].styles,l):d('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],f.drawGraph.call(e),e["graph"+t]=e.graph):d('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=n,e.graph=p,f.drawGraph.call(e)}function n(e){let t,r=[],i=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=f.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",r=f.getGraphPath.call(this,e),i=t.slice(0,r.length);for(let e=i.length-1;e>=0;e--)r.push(i[e])}}else r=f.getGraphPath.apply(this,arguments);return r}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(r=>{t.push(e[r])}),t}function l(){let e=this.pointArrayMap,t=[],r;t=o(this),f.translate.apply(this,arguments),this.points.forEach(i=>{e.forEach((e,a)=>{r=i[e],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(i[t[a]]=this.yAxis.toPixels(r,!0))})})}e.compose=function(e){let a=e.prototype;return a.linesApiNames=a.linesApiNames||t.slice(),a.pointArrayMap=a.pointArrayMap||r.slice(),a.pointValKey=a.pointValKey||"top",a.areaLinesNames=a.areaLinesNames||i.slice(),a.drawGraph=s,a.getGraphPath=n,a.toYData=p,a.translate=l,e}}(r||(r={}));let y=r,m={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]},{sma:x}=c().seriesTypes,{merge:A,extend:b}=p();class v extends x{getValues(e,t){let r,i,a,o,s,n,p;let h=t.period,c=e.xData,f=e.yData,u=f?f.length:0,d=[],g=[],y=[];if(!(u(()=>{"use strict";var r,i={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return i[e](r,r.exports,o),r.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};o.d(s,{default:()=>M});var n=o(944),p=o.n(n);let l={getArrayExtremes:function(e,t,r){return e.reduce((e,i)=>[Math.min(e[0],i[t]),Math.max(e[1],i[r])],[Number.MAX_VALUE,-Number.MAX_VALUE])}};var h=o(512),c=o.n(h);let{sma:{prototype:f}}=c().seriesTypes,{defined:u,error:d,merge:g}=p();!function(e){let t=["bottomLine"],r=["top","bottom"],i=["top"];function a(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function o(e,t){let r=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&r.push(a(e))}),r}function s(){let e=this,t=e.pointValKey,r=e.linesApiNames,i=e.areaLinesNames,s=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],c=o(e,t),y=s.length,m;if(c.forEach((e,t)=>{for(h[t]=[];y--;)m=s[y],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!u(m[e])});y=s.length}),e.userOptions.fillColor&&i.length){let t=h[c.indexOf(a(i[0]))],r=1===i.length?s:h[c.indexOf(a(i[1]))],o=e.color;e.points=r,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=g(s,l),e.graph=e.area,e.fillGraph=!0,f.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=o}r.forEach((t,r)=>{h[r]?(e.points=h[r],n[t]?e.options=g(n[t].styles,l):d('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],f.drawGraph.call(e),e["graph"+t]=e.graph):d('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=n,e.graph=p,f.drawGraph.call(e)}function n(e){let t,r=[],i=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=f.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",r=f.getGraphPath.call(this,e),i=t.slice(0,r.length);for(let e=i.length-1;e>=0;e--)r.push(i[e])}}else r=f.getGraphPath.apply(this,arguments);return r}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(r=>{t.push(e[r])}),t}function l(){let e=this.pointArrayMap,t=[],r;t=o(this),f.translate.apply(this,arguments),this.points.forEach(i=>{e.forEach((e,a)=>{r=i[e],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(i[t[a]]=this.yAxis.toPixels(r,!0))})})}e.compose=function(e){let a=e.prototype;return a.linesApiNames=a.linesApiNames||t.slice(),a.pointArrayMap=a.pointArrayMap||r.slice(),a.pointValKey=a.pointValKey||"top",a.areaLinesNames=a.areaLinesNames||i.slice(),a.drawGraph=s,a.getGraphPath=n,a.toYData=p,a.translate=l,e}}(r||(r={}));let y=r,m={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]},{sma:x}=c().seriesTypes,{merge:A,extend:b}=p();class v extends x{getValues(e,t){let r,i,a,o,s,n,p;let h=t.period,c=e.xData,f=e.yData,u=f?f.length:0,d=[],g=[],y=[];if(!(u(()=>{"use strict";var o,i={512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var o=r[t]={exports:{}};return i[t](o,o.exports,a),o.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var o in e)a.o(e,o)&&!a.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};a.d(s,{default:()=>A});var n=a(944),p=/*#__PURE__*/a.n(n),l=a(512),h=/*#__PURE__*/a.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:d,error:u,merge:f}=p();!function(t){let e=["bottomLine"],o=["top","bottom"],i=["top"];function r(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function a(t,e){let o=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&o.push(r(t))}),o}function s(){let t=this,e=t.pointValKey,o=t.linesApiNames,i=t.areaLinesNames,s=t.points,n=t.options,p=t.graph,l={options:{gapSize:n.gapSize}},h=[],y=a(t,e),m=s.length,g;if(y.forEach((t,e)=>{for(h[e]=[];m--;)g=s[m],h[e].push({x:g.x,plotX:g.plotX,plotY:g[t],isNull:!d(g[t])});m=s.length}),t.userOptions.fillColor&&i.length){let e=h[y.indexOf(r(i[0]))],o=1===i.length?s:h[y.indexOf(r(i[1]))],a=t.color;t.points=o,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=f(s,l),t.graph=t.area,t.fillGraph=!0,c.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=a}o.forEach((e,o)=>{h[o]?(t.points=h[o],n[e]?t.options=f(n[e].styles,l):u('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],c.drawGraph.call(t),t["graph"+e]=t.graph):u('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=s,t.options=n,t.graph=p,c.drawGraph.call(t)}function n(t){let e,o=[],i=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=c.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",o=c.getGraphPath.call(this,t),i=e.slice(0,o.length);for(let t=i.length-1;t>=0;t--)o.push(i[t])}}else o=c.getGraphPath.apply(this,arguments);return o}function p(t){let e=[];return(this.pointArrayMap||[]).forEach(o=>{e.push(t[o])}),e}function l(){let t=this.pointArrayMap,e=[],o;e=a(this),c.translate.apply(this,arguments),this.points.forEach(i=>{t.forEach((t,r)=>{o=i[t],this.dataModify&&(o=this.dataModify.modifyValue(o)),null!==o&&(i[e[r]]=this.yAxis.toPixels(o,!0))})})}t.compose=function(t){let r=t.prototype;return r.linesApiNames=r.linesApiNames||e.slice(),r.pointArrayMap=r.pointArrayMap||o.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||i.slice(),r.drawGraph=s,r.getGraphPath=n,r.toYData=p,r.translate=l,t}}(o||(o={}));let y=o,{sma:m}=h().seriesTypes,{extend:g,isArray:x,merge:b}=p();class v extends m{init(){super.init.apply(this,arguments),this.options=b({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(t,e){let o,i,r,a,s,n,p,l;let h=e.period,c=e.topBand,d=e.bottomBand,u=t.xData,f=t.yData,y=f?f.length:0,m=[],g=[],b=[];if(!(u.length {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),g(v.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle"}),y.compose(v),h().registerSeriesType("priceenvelopes",v);let A=p();return s.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/price-envelopes",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/price-envelopes"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var o,i={512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var o=r[t]={exports:{}};return i[t](o,o.exports,a),o.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var o in e)a.o(e,o)&&!a.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};a.d(s,{default:()=>A});var n=a(944),p=a.n(n),l=a(512),h=a.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:d,error:u,merge:f}=p();!function(t){let e=["bottomLine"],o=["top","bottom"],i=["top"];function r(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function a(t,e){let o=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&o.push(r(t))}),o}function s(){let t=this,e=t.pointValKey,o=t.linesApiNames,i=t.areaLinesNames,s=t.points,n=t.options,p=t.graph,l={options:{gapSize:n.gapSize}},h=[],y=a(t,e),m=s.length,g;if(y.forEach((t,e)=>{for(h[e]=[];m--;)g=s[m],h[e].push({x:g.x,plotX:g.plotX,plotY:g[t],isNull:!d(g[t])});m=s.length}),t.userOptions.fillColor&&i.length){let e=h[y.indexOf(r(i[0]))],o=1===i.length?s:h[y.indexOf(r(i[1]))],a=t.color;t.points=o,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=f(s,l),t.graph=t.area,t.fillGraph=!0,c.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=a}o.forEach((e,o)=>{h[o]?(t.points=h[o],n[e]?t.options=f(n[e].styles,l):u('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],c.drawGraph.call(t),t["graph"+e]=t.graph):u('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=s,t.options=n,t.graph=p,c.drawGraph.call(t)}function n(t){let e,o=[],i=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=c.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",o=c.getGraphPath.call(this,t),i=e.slice(0,o.length);for(let t=i.length-1;t>=0;t--)o.push(i[t])}}else o=c.getGraphPath.apply(this,arguments);return o}function p(t){let e=[];return(this.pointArrayMap||[]).forEach(o=>{e.push(t[o])}),e}function l(){let t=this.pointArrayMap,e=[],o;e=a(this),c.translate.apply(this,arguments),this.points.forEach(i=>{t.forEach((t,r)=>{o=i[t],this.dataModify&&(o=this.dataModify.modifyValue(o)),null!==o&&(i[e[r]]=this.yAxis.toPixels(o,!0))})})}t.compose=function(t){let r=t.prototype;return r.linesApiNames=r.linesApiNames||e.slice(),r.pointArrayMap=r.pointArrayMap||o.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||i.slice(),r.drawGraph=s,r.getGraphPath=n,r.toYData=p,r.translate=l,t}}(o||(o={}));let y=o,{sma:m}=h().seriesTypes,{extend:g,isArray:x,merge:b}=p();class v extends m{init(){super.init.apply(this,arguments),this.options=b({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(t,e){let o,i,r,a,s,n,p,l;let h=e.period,c=e.topBand,d=e.bottomBand,u=t.xData,f=t.yData,y=f?f.length:0,m=[],g=[],b=[];if(!(u.length {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),g(v.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle"}),y.compose(v),h().registerSeriesType("priceenvelopes",v);let A=p();return s.default})()); \ No newline at end of file diff --git a/indicators/price-envelopes.src.js b/indicators/price-envelopes.src.js index a8fe684aeb..57352fab00 100644 --- a/indicators/price-envelopes.src.js +++ b/indicators/price-envelopes.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/price-envelopes * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/psar.js b/indicators/psar.js index a4dde148b6..85d10b6bfa 100644 --- a/indicators/psar.js +++ b/indicators/psar.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/psar * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Grzegorz Blachliński * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/psar",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/psar"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return r[e](n,n.exports,i),n.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>f});var s=i(944),o=/*#__PURE__*/i.n(s),c=i(512),l=/*#__PURE__*/i.n(c);let{sma:h}=l().seriesTypes,{merge:u}=o();function p(e,t){return parseFloat(e.toFixed(t))}class d extends h{constructor(){super(...arguments),this.nameComponents=void 0}getValues(e,t){let r=e.xData,a=e.yData,i=t.maxAccelerationFactor,n=t.increment,s=t.initialAccelerationFactor,o=t.decimals,c=t.index,l=[],h=[],u=[],d=t.initialAccelerationFactor,f,m=a[0][1],x,g,y,v=1,F,b,H,M,A=a[0][2],_,j,w,O;if(!(c>=a.length)){for(O=0;OA?1:-1,x=m-A,g=(d=t.initialAccelerationFactor)*x,l.push([r[c],A]),h.push(r[c]),u.push(p(A,o)),O=c+1;OMath.max(M,H)?k+C:Math.max(M,H):V,S=f,D=m,_=1===S?j>D?j:D:wP||-1===R&&j>P?1:-1,z=f,B=m,E=d,g=(d=q===z?1===q&&_>B||-1===q&&_(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return r[e](n,n.exports,i),n.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>f});var s=i(944),o=i.n(s),c=i(512),l=i.n(c);let{sma:h}=l().seriesTypes,{merge:u}=o();function p(e,t){return parseFloat(e.toFixed(t))}class d extends h{constructor(){super(...arguments),this.nameComponents=void 0}getValues(e,t){let r=e.xData,a=e.yData,i=t.maxAccelerationFactor,n=t.increment,s=t.initialAccelerationFactor,o=t.decimals,c=t.index,l=[],h=[],u=[],d=t.initialAccelerationFactor,f,m=a[0][1],x,g,y,v=1,F,b,H,M,A=a[0][2],_,j,w,O;if(!(c>=a.length)){for(O=0;OA?1:-1,x=m-A,g=(d=t.initialAccelerationFactor)*x,l.push([r[c],A]),h.push(r[c]),u.push(p(A,o)),O=c+1;OMath.max(M,H)?k+C:Math.max(M,H):V,S=f,D=m,_=1===S?j>D?j:D:wP||-1===R&&j>P?1:-1,z=f,B=m,E=d,g=(d=q===z?1===q&&_>B||-1===q&&_(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};n.d(i,{default:()=>H});var o=n(944),a=/*#__PURE__*/n.n(o),p=n(512),l=/*#__PURE__*/n.n(p);let{sma:g}=l().seriesTypes,{isArray:u,extend:d,merge:c}=a();class h extends g{getRegressionLineParameters(e,t){let r=this.options.params.index,s=function(e,t){return u(e)?e[t]:e},n=e.reduce(function(e,t){return t+e},0),i=t.reduce(function(e,t){return s(t,r)+e},0),o=n/e.length,a=i/t.length,p,l,g=0,d=0;for(l=0;l0&&(void 0===r||t●{series.name}: {point.y}\xb0
'}}),S(b.prototype,{nameBase:"Linear Regression Angle Indicator"}),l().registerSeriesType("linearRegressionAngle",b);let H=a();return i.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/regressions",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/regressions"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};n.d(i,{default:()=>H});var o=n(944),a=n.n(o),p=n(512),l=n.n(p);let{sma:g}=l().seriesTypes,{isArray:u,extend:d,merge:c}=a();class h extends g{getRegressionLineParameters(e,t){let r=this.options.params.index,s=function(e,t){return u(e)?e[t]:e},n=e.reduce(function(e,t){return t+e},0),i=t.reduce(function(e,t){return s(t,r)+e},0),o=n/e.length,a=i/t.length,p,l,g=0,d=0;for(l=0;l0&&(void 0===r||t●{series.name}: {point.y}\xb0
'}}),S(b.prototype,{nameBase:"Linear Regression Angle Indicator"}),l().registerSeriesType("linearRegressionAngle",b);let H=a();return i.default})()); \ No newline at end of file diff --git a/indicators/regressions.src.js b/indicators/regressions.src.js index 9104b16299..979daa40ee 100644 --- a/indicators/regressions.src.js +++ b/indicators/regressions.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/regressions * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/roc.js b/indicators/roc.js index 7a0b89bdec..8ec8979417 100644 --- a/indicators/roc.js +++ b/indicators/roc.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/roc * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Kacper Madej * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/roc",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/roc"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>g});var a=i(944),n=/*#__PURE__*/i.n(a),h=i(512),p=/*#__PURE__*/i.n(h);let{sma:u}=p().seriesTypes,{isArray:c,merge:d,extend:f}=n();class l extends u{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,o=i?i.length:0,a=[],n=[],h=[],p,u=-1,d;if(!(s.length<=r)){for(c(i[0])&&(u=t.index),p=r;p(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>g});var a=i(944),n=i.n(a),h=i(512),p=i.n(h);let{sma:u}=p().seriesTypes,{isArray:c,merge:d,extend:f}=n();class l extends u{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,o=i?i.length:0,a=[],n=[],h=[],p,u=-1,d;if(!(s.length<=r)){for(c(i[0])&&(u=t.index),p=r;p(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>g});var o=i(944),n=/*#__PURE__*/i.n(o),h=i(512),d=/*#__PURE__*/i.n(h);let{sma:p}=d().seriesTypes,{isNumber:c,merge:u}=n();function f(e,t){return parseFloat(e.toFixed(t))}class l extends p{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,a=i?i.length:0,o=t.decimals,n=[],h=[],d=[],p=0,u=0,l=t.index,g=1,x,y,m,v,b,H;if(!(s.lengthe[l]));g0?p+=y:u+=Math.abs(y),g++;for(m=f(p/(r-1),o),v=f(u/(r-1),o),b=g;b0?(p=y,u=0):(p=0,u=Math.abs(y)),m=f((m*(r-1)+p)/r,o),x=0===(v=f((v*(r-1)+u)/r,o))?100:0===m?0:f(100-100/(1+m/v),o),n.push([s[b],x]),h.push(s[b]),d.push(x);return{values:n,xData:h,yData:d}}}}l.defaultOptions=u(p.defaultOptions,{params:{decimals:4,index:3}}),d().registerSeriesType("rsi",l);let g=n();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/rsi",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/rsi"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>g});var o=i(944),n=i.n(o),h=i(512),d=i.n(h);let{sma:p}=d().seriesTypes,{isNumber:c,merge:u}=n();function f(e,t){return parseFloat(e.toFixed(t))}class l extends p{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,a=i?i.length:0,o=t.decimals,n=[],h=[],d=[],p=0,u=0,l=t.index,g=1,x,y,m,v,b,H;if(!(s.lengthe[l]));g0?p+=y:u+=Math.abs(y),g++;for(m=f(p/(r-1),o),v=f(u/(r-1),o),b=g;b0?(p=y,u=0):(p=0,u=Math.abs(y)),m=f((m*(r-1)+p)/r,o),x=0===(v=f((v*(r-1)+u)/r,o))?100:0===m?0:f(100-100/(1+m/v),o),n.push([s[b],x]),h.push(s[b]),d.push(x);return{values:n,xData:h,yData:d}}}}l.defaultOptions=u(p.defaultOptions,{params:{decimals:4,index:3}}),d().registerSeriesType("rsi",l);let g=n();return a.default})()); \ No newline at end of file diff --git a/indicators/rsi.src.js b/indicators/rsi.src.js index 402700c8de..70c14382d7 100644 --- a/indicators/rsi.src.js +++ b/indicators/rsi.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/rsi * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/slow-stochastic.js b/indicators/slow-stochastic.js index 33dba4427c..c0fbee7c30 100644 --- a/indicators/slow-stochastic.js +++ b/indicators/slow-stochastic.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/indicators * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Pawel Fus * * License: 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/indicators/slow-stochastic",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/slow-stochastic"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var a={512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function r(t){var e=s[t];if(void 0!==e)return e.exports;var i=s[t]={exports:{}};return a[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};r.d(i,{default:()=>y});var o=r(944),c=/*#__PURE__*/r.n(o),n=r(512),l=/*#__PURE__*/r.n(n);let{sma:h,stochastic:p}=l().seriesTypes,{extend:u,merge:d}=c();class f extends p{getValues(t,e){let a=e.periods,s=super.getValues.call(this,t,e),r={values:[],xData:[],yData:[]};if(!s)return;r.xData=s.xData.slice(a[1]-1);let i=s.yData.slice(a[1]-1),o=h.prototype.getValues.call(this,{xData:r.xData,yData:i},{index:1,period:a[2]});if(o){for(let t=0,e=r.xData.length;t(()=>{"use strict";var a={512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function r(t){var e=s[t];if(void 0!==e)return e.exports;var i=s[t]={exports:{}};return a[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};r.d(i,{default:()=>y});var o=r(944),c=r.n(o),n=r(512),l=r.n(n);let{sma:h,stochastic:p}=l().seriesTypes,{extend:u,merge:d}=c();class f extends p{getValues(t,e){let a=e.periods,s=super.getValues.call(this,t,e),r={values:[],xData:[],yData:[]};if(!s)return;r.xData=s.xData.slice(a[1]-1);let i=s.yData.slice(a[1]-1),o=h.prototype.getValues.call(this,{xData:r.xData,yData:i},{index:1,period:a[2]});if(o){for(let t=0,e=r.xData.length;t(()=>{"use strict";var i,r={512:e=>{e.exports=t},944:t=>{t.exports=e}},o={};function a(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={exports:{}};return r[e](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};a.d(s,{default:()=>v});var n=a(944),p=/*#__PURE__*/a.n(n);let l={getArrayExtremes:function(e,t,i){return e.reduce((e,r)=>[Math.min(e[0],r[t]),Math.max(e[1],r[i])],[Number.MAX_VALUE,-Number.MAX_VALUE])}};var h=a(512),c=/*#__PURE__*/a.n(h);let{sma:{prototype:u}}=c().seriesTypes,{defined:d,error:f,merge:y}=p();!function(e){let t=["bottomLine"],i=["top","bottom"],r=["top"];function o(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function a(e,t){let i=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&i.push(o(e))}),i}function s(){let e=this,t=e.pointValKey,i=e.linesApiNames,r=e.areaLinesNames,s=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],c=a(e,t),g=s.length,m;if(c.forEach((e,t)=>{for(h[t]=[];g--;)m=s[g],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!d(m[e])});g=s.length}),e.userOptions.fillColor&&r.length){let t=h[c.indexOf(o(r[0]))],i=1===r.length?s:h[c.indexOf(o(r[1]))],a=e.color;e.points=i,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=y(s,l),e.graph=e.area,e.fillGraph=!0,u.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=a}i.forEach((t,i)=>{h[i]?(e.points=h[i],n[t]?e.options=y(n[t].styles,l):f('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],u.drawGraph.call(e),e["graph"+t]=e.graph):f('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=n,e.graph=p,u.drawGraph.call(e)}function n(e){let t,i=[],r=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=u.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",i=u.getGraphPath.call(this,e),r=t.slice(0,i.length);for(let e=r.length-1;e>=0;e--)i.push(r[e])}}else i=u.getGraphPath.apply(this,arguments);return i}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(i=>{t.push(e[i])}),t}function l(){let e=this.pointArrayMap,t=[],i;t=a(this),u.translate.apply(this,arguments),this.points.forEach(r=>{e.forEach((e,o)=>{i=r[e],this.dataModify&&(i=this.dataModify.modifyValue(i)),null!==i&&(r[t[o]]=this.yAxis.toPixels(i,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||i.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||r.slice(),o.drawGraph=s,o.getGraphPath=n,o.toYData=p,o.translate=l,e}}(i||(i={}));let g=i,{sma:m}=c().seriesTypes,{extend:x,isArray:A,merge:N}=p();class b extends m{init(){super.init.apply(this,arguments),this.options=N({smoothedLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let i=t.periods[0],r=t.periods[1],o=e.xData,a=e.yData,s=a?a.length:0,n=[],p=[],h=[],c,u,d,f=null,y,g;if(s=x+(i-1)+(r-1)&&(f=super.getValues({xData:p.slice(-r),yData:h.slice(-r)},{period:r}).yData[0]),n.push([o[g],d,f]),h[e-1][1]=f}return{values:n,xData:p,yData:h}}}b.defaultOptions=N(m.defaultOptions,{params:{index:void 0,period:void 0,periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
%K: {point.y}
%D: {point.smoothed}
'},smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),x(b.prototype,{areaLinesNames:[],nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"]}),g.compose(b),c().registerSeriesType("stochastic",b);let v=p();return s.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/stochastic",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/stochastic"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var i,r={512:e=>{e.exports=t},944:t=>{t.exports=e}},o={};function a(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={exports:{}};return r[e](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};a.d(s,{default:()=>v});var n=a(944),p=a.n(n);let l={getArrayExtremes:function(e,t,i){return e.reduce((e,r)=>[Math.min(e[0],r[t]),Math.max(e[1],r[i])],[Number.MAX_VALUE,-Number.MAX_VALUE])}};var h=a(512),c=a.n(h);let{sma:{prototype:u}}=c().seriesTypes,{defined:d,error:f,merge:y}=p();!function(e){let t=["bottomLine"],i=["top","bottom"],r=["top"];function o(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function a(e,t){let i=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&i.push(o(e))}),i}function s(){let e=this,t=e.pointValKey,i=e.linesApiNames,r=e.areaLinesNames,s=e.points,n=e.options,p=e.graph,l={options:{gapSize:n.gapSize}},h=[],c=a(e,t),g=s.length,m;if(c.forEach((e,t)=>{for(h[t]=[];g--;)m=s[g],h[t].push({x:m.x,plotX:m.plotX,plotY:m[e],isNull:!d(m[e])});g=s.length}),e.userOptions.fillColor&&r.length){let t=h[c.indexOf(o(r[0]))],i=1===r.length?s:h[c.indexOf(o(r[1]))],a=e.color;e.points=i,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=y(s,l),e.graph=e.area,e.fillGraph=!0,u.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=a}i.forEach((t,i)=>{h[i]?(e.points=h[i],n[t]?e.options=y(n[t].styles,l):f('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],u.drawGraph.call(e),e["graph"+t]=e.graph):f('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=n,e.graph=p,u.drawGraph.call(e)}function n(e){let t,i=[],r=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=u.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",i=u.getGraphPath.call(this,e),r=t.slice(0,i.length);for(let e=r.length-1;e>=0;e--)i.push(r[e])}}else i=u.getGraphPath.apply(this,arguments);return i}function p(e){let t=[];return(this.pointArrayMap||[]).forEach(i=>{t.push(e[i])}),t}function l(){let e=this.pointArrayMap,t=[],i;t=a(this),u.translate.apply(this,arguments),this.points.forEach(r=>{e.forEach((e,o)=>{i=r[e],this.dataModify&&(i=this.dataModify.modifyValue(i)),null!==i&&(r[t[o]]=this.yAxis.toPixels(i,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||i.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||r.slice(),o.drawGraph=s,o.getGraphPath=n,o.toYData=p,o.translate=l,e}}(i||(i={}));let g=i,{sma:m}=c().seriesTypes,{extend:x,isArray:A,merge:N}=p();class b extends m{init(){super.init.apply(this,arguments),this.options=N({smoothedLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let i=t.periods[0],r=t.periods[1],o=e.xData,a=e.yData,s=a?a.length:0,n=[],p=[],h=[],c,u,d,f=null,y,g;if(s=x+(i-1)+(r-1)&&(f=super.getValues({xData:p.slice(-r),yData:h.slice(-r)},{period:r}).yData[0]),n.push([o[g],d,f]),h[e-1][1]=f}return{values:n,xData:p,yData:h}}}b.defaultOptions=N(m.defaultOptions,{params:{index:void 0,period:void 0,periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
%K: {point.y}
%D: {point.smoothed}
'},smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),x(b.prototype,{areaLinesNames:[],nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"]}),g.compose(b),c().registerSeriesType("stochastic",b);let v=p();return s.default})()); \ No newline at end of file diff --git a/indicators/stochastic.src.js b/indicators/stochastic.src.js index b99ca86804..1d5983805c 100644 --- a/indicators/stochastic.src.js +++ b/indicators/stochastic.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/stochastic * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/supertrend.js b/indicators/supertrend.js index 4b1ce62fd2..f02e8198e8 100644 --- a/indicators/supertrend.js +++ b/indicators/supertrend.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/supertrend * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Wojciech Chmiel * * License: www.highcharts.com/license - */function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/supertrend",["highcharts/highcharts"],function(e){return o(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/supertrend"]=o(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=o(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,o)=>(()=>{"use strict";var t={512:e=>{e.exports=o},944:o=>{o.exports=e}},r={};function i(e){var o=r[e];if(void 0!==o)return o.exports;var l=r[e]={exports:{}};return t[e](l,l.exports,i),l.exports}i.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return i.d(o,{a:o}),o},i.d=(e,o)=>{for(var t in o)i.o(o,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},i.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o);var l={};i.d(l,{default:()=>S});var s=i(944),n=/*#__PURE__*/i.n(s),p=i(512),a=/*#__PURE__*/i.n(p);let{atr:h,sma:d}=a().seriesTypes,{addEvent:c,correctFloat:u,isArray:g,isNumber:x,extend:y,merge:f,objectEach:m}=n();function C(e,o){return{index:o,close:e.getColumn("close")[o],x:e.getColumn("x")[o]}}class T extends d{init(){let e=this;super.init.apply(e,arguments);let o=c(this.chart.constructor,"afterLinkSeries",()=>{if(e.options){let o=e.options,t=e.linkedParent.options;o.cropThreshold=t.cropThreshold-(o.params.period-1)}o()},{order:1})}drawGraph(){let e=this,o=e.options,t=e.linkedParent,r=t.getColumn("x"),i=t?t.points:[],l=e.points,s=e.graph,n=i.length-l.length,p=n>0?n:0,a={options:{gapSize:o.gapSize}},h={top:[],bottom:[],intersect:[]},c={top:{styles:{lineWidth:o.lineWidth,lineColor:o.fallingTrendColor||o.color,dashStyle:o.dashStyle}},bottom:{styles:{lineWidth:o.lineWidth,lineColor:o.risingTrendColor||o.color,dashStyle:o.dashStyle}},intersect:o.changeTrendLine},u,g,y,T,S,b,v,w,H,D=l.length;for(;D--;)u=l[D],g=l[D-1],y=i[D-1+p],T=i[D-2+p],S=i[D+p],b=i[D+p+1],v=u.options.color,w={x:u.x,plotX:u.plotX,plotY:u.plotY,isNull:!1},!T&&y&&x(r[y.index-1])&&(T=C(t,y.index-1)),!b&&S&&x(r[S.index+1])&&(b=C(t,S.index+1)),!y&&T&&x(r[T.index+1])?y=C(t,T.index+1):!y&&S&&x(r[S.index-1])&&(y=C(t,S.index-1)),u&&y&&S&&T&&u.x!==y.x&&(u.x===S.x?(T=y,y=S):u.x===T.x?(y=T,T={close:t.getColumn("close")[y.index-1],x:r[y.index-1]}):b&&u.x===b.x&&(y=b,T=S)),g&&T&&y?(H={x:g.x,plotX:g.plotX,plotY:g.plotY,isNull:!1},u.y>=y.close&&g.y>=T.close?(u.color=v||o.fallingTrendColor||o.color,h.top.push(w)):u.y=y.close&&g.y=T.close&&(u.color=v||o.risingTrendColor||o.color,g.color=v||o.fallingTrendColor||o.color,h.bottom.push(w),h.bottom.push(f(H,{isNull:!0}))))):y&&(u.y>=y.close?(u.color=v||o.fallingTrendColor||o.color,h.top.push(w)):(u.color=v||o.risingTrendColor||o.color,h.bottom.push(w)));m(h,function(o,t){e.points=o,e.options=f(c[t].styles,a),e.graph=e["graph"+t+"Line"],d.prototype.drawGraph.call(e),e["graph"+t+"Line"]=e.graph}),e.points=l,e.options=o,e.graph=s}getValues(e,o){let t=o.period,r=o.multiplier,i=e.xData,l=e.yData,s=[],n=[],p=[],a=0===t?0:t-1,d=[],c=[],x=[],y,f,m,C,T,S,b,v,w;if(!(i.length<=t)&&g(l[0])&&4===l[0].length&&!(t<0)){for(w=0,x=h.prototype.getValues.call(this,e,{period:t}).yData;wC?d[w]=y:d[w]=C,f>T||b[3]d[w]||S===T&&v[3]>c[w])&&(m=c[w]),s.push([i[a+w],m]),n.push(i[a+w]),p.push(m);return{values:s,xData:n,yData:p}}}}T.defaultOptions=f(d.defaultOptions,{params:{index:void 0,multiplier:3,period:10},risingTrendColor:"#06b535",fallingTrendColor:"#f21313",changeTrendLine:{styles:{lineWidth:1,lineColor:"#333333",dashStyle:"LongDash"}}}),y(T.prototype,{nameBase:"Supertrend",nameComponents:["multiplier","period"]}),a().registerSeriesType("supertrend",T);let S=n();return l.default})()); \ No newline at end of file + */function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/supertrend",["highcharts/highcharts"],function(e){return o(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/supertrend"]=o(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=o(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,o)=>(()=>{"use strict";var t={512:e=>{e.exports=o},944:o=>{o.exports=e}},r={};function i(e){var o=r[e];if(void 0!==o)return o.exports;var l=r[e]={exports:{}};return t[e](l,l.exports,i),l.exports}i.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return i.d(o,{a:o}),o},i.d=(e,o)=>{for(var t in o)i.o(o,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},i.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o);var l={};i.d(l,{default:()=>S});var s=i(944),n=i.n(s),p=i(512),a=i.n(p);let{atr:h,sma:d}=a().seriesTypes,{addEvent:c,correctFloat:u,isArray:g,isNumber:x,extend:y,merge:f,objectEach:m}=n();function C(e,o){return{index:o,close:e.getColumn("close")[o],x:e.getColumn("x")[o]}}class T extends d{init(){let e=this;super.init.apply(e,arguments);let o=c(this.chart.constructor,"afterLinkSeries",()=>{if(e.options){let o=e.options,t=e.linkedParent.options;o.cropThreshold=t.cropThreshold-(o.params.period-1)}o()},{order:1})}drawGraph(){let e=this,o=e.options,t=e.linkedParent,r=t.getColumn("x"),i=t?t.points:[],l=e.points,s=e.graph,n=i.length-l.length,p=n>0?n:0,a={options:{gapSize:o.gapSize}},h={top:[],bottom:[],intersect:[]},c={top:{styles:{lineWidth:o.lineWidth,lineColor:o.fallingTrendColor||o.color,dashStyle:o.dashStyle}},bottom:{styles:{lineWidth:o.lineWidth,lineColor:o.risingTrendColor||o.color,dashStyle:o.dashStyle}},intersect:o.changeTrendLine},u,g,y,T,S,b,v,w,H,D=l.length;for(;D--;)u=l[D],g=l[D-1],y=i[D-1+p],T=i[D-2+p],S=i[D+p],b=i[D+p+1],v=u.options.color,w={x:u.x,plotX:u.plotX,plotY:u.plotY,isNull:!1},!T&&y&&x(r[y.index-1])&&(T=C(t,y.index-1)),!b&&S&&x(r[S.index+1])&&(b=C(t,S.index+1)),!y&&T&&x(r[T.index+1])?y=C(t,T.index+1):!y&&S&&x(r[S.index-1])&&(y=C(t,S.index-1)),u&&y&&S&&T&&u.x!==y.x&&(u.x===S.x?(T=y,y=S):u.x===T.x?(y=T,T={close:t.getColumn("close")[y.index-1],x:r[y.index-1]}):b&&u.x===b.x&&(y=b,T=S)),g&&T&&y?(H={x:g.x,plotX:g.plotX,plotY:g.plotY,isNull:!1},u.y>=y.close&&g.y>=T.close?(u.color=v||o.fallingTrendColor||o.color,h.top.push(w)):u.y=y.close&&g.y=T.close&&(u.color=v||o.risingTrendColor||o.color,g.color=v||o.fallingTrendColor||o.color,h.bottom.push(w),h.bottom.push(f(H,{isNull:!0}))))):y&&(u.y>=y.close?(u.color=v||o.fallingTrendColor||o.color,h.top.push(w)):(u.color=v||o.risingTrendColor||o.color,h.bottom.push(w)));m(h,function(o,t){e.points=o,e.options=f(c[t].styles,a),e.graph=e["graph"+t+"Line"],d.prototype.drawGraph.call(e),e["graph"+t+"Line"]=e.graph}),e.points=l,e.options=o,e.graph=s}getValues(e,o){let t=o.period,r=o.multiplier,i=e.xData,l=e.yData,s=[],n=[],p=[],a=0===t?0:t-1,d=[],c=[],x=[],y,f,m,C,T,S,b,v,w;if(!(i.length<=t)&&g(l[0])&&4===l[0].length&&!(t<0)){for(w=0,x=h.prototype.getValues.call(this,e,{period:t}).yData;wC?d[w]=y:d[w]=C,f>T||b[3]d[w]||S===T&&v[3]>c[w])&&(m=c[w]),s.push([i[a+w],m]),n.push(i[a+w]),p.push(m);return{values:s,xData:n,yData:p}}}}T.defaultOptions=f(d.defaultOptions,{params:{index:void 0,multiplier:3,period:10},risingTrendColor:"#06b535",fallingTrendColor:"#f21313",changeTrendLine:{styles:{lineWidth:1,lineColor:"#333333",dashStyle:"LongDash"}}}),y(T.prototype,{nameBase:"Supertrend",nameComponents:["multiplier","period"]}),a().registerSeriesType("supertrend",T);let S=n();return l.default})()); \ No newline at end of file diff --git a/indicators/supertrend.src.js b/indicators/supertrend.src.js index a6ac29ec03..b565bb140b 100644 --- a/indicators/supertrend.src.js +++ b/indicators/supertrend.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/supertrend * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/tema.js b/indicators/tema.js index 4a00858c25..187eb0cf57 100644 --- a/indicators/tema.js +++ b/indicators/tema.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/tema * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Rafal Sebestjanski * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/tema",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/tema"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var i=l[e]={exports:{}};return r[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>g});var a=s(944),o=/*#__PURE__*/s.n(a),n=s(512),h=/*#__PURE__*/s.n(n);let{ema:v}=h().seriesTypes,{correctFloat:p,isArray:u,merge:c}=o();class d extends v{getEMA(e,t,r,l,s,i){return super.calculateEma(i||[],e,void 0===s?1:s,this.EMApercent,t,void 0===l?-1:l,r)}getTemaPoint(e,t,r,l){return[e[l-3],p(3*r.level1-3*r.level2+r.level3)]}getValues(e,t){let r=t.period,l=2*r,s=3*r,i=e.xData,a=e.yData,o=a?a.length:0,n=[],h=[],v=[],p=[],c=[],d={},g=-1,f=0,y=0,x,m,E,M;if(this.EMApercent=2/(r+1),!(o<3*r-2)){for(u(a[0])&&(g=t.index?t.index:0),y=(f=super.accumulatePeriodPoints(r,g,a))/r,f=0,E=r;E(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var i=l[e]={exports:{}};return r[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>g});var a=s(944),o=s.n(a),n=s(512),h=s.n(n);let{ema:v}=h().seriesTypes,{correctFloat:p,isArray:u,merge:c}=o();class d extends v{getEMA(e,t,r,l,s,i){return super.calculateEma(i||[],e,void 0===s?1:s,this.EMApercent,t,void 0===l?-1:l,r)}getTemaPoint(e,t,r,l){return[e[l-3],p(3*r.level1-3*r.level2+r.level3)]}getValues(e,t){let r=t.period,l=2*r,s=3*r,i=e.xData,a=e.yData,o=a?a.length:0,n=[],h=[],v=[],p=[],c=[],d={},g=-1,f=0,y=0,x,m,E,M;if(this.EMApercent=2/(r+1),!(o<3*r-2)){for(u(a[0])&&(g=t.index?t.index:0),y=(f=super.accumulatePeriodPoints(r,g,a))/r,f=0,E=r;E(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};n.d(i,{default:()=>g});var o=n(944),a=/*#__PURE__*/n.n(o),h=n(512),l=/*#__PURE__*/n.n(h);let{sma:p}=l().seriesTypes,{extend:d,merge:u,isArray:c}=a();class f extends p{constructor(){super(...arguments),this.updateAllPoints=!0}getValues(e,t){let r=e.xData,s=e.yData,n=[],i=[],o=[],a=[],h=t.index,l=0,p=0,d=0,u=0,f=0;for(let e=0;e(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};n.d(i,{default:()=>g});var o=n(944),a=n.n(o),h=n(512),l=n.n(h);let{sma:p}=l().seriesTypes,{extend:d,merge:u,isArray:c}=a();class f extends p{constructor(){super(...arguments),this.updateAllPoints=!0}getValues(e,t){let r=e.xData,s=e.yData,n=[],i=[],o=[],a=[],h=t.index,l=0,p=0,d=0,u=0,f=0;for(let e=0;e(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>l});var n=s(944),a=/*#__PURE__*/s.n(n),h=s(512),p=/*#__PURE__*/s.n(h);let{tema:c}=p().seriesTypes,{correctFloat:d,merge:f}=a();class u extends c{getTemaPoint(e,t,r,i){if(i>t)return[e[i-3],0!==r.prevLevel3?d(r.level3-r.prevLevel3)/r.prevLevel3*100:null]}}u.defaultOptions=f(c.defaultOptions),p().registerSeriesType("trix",u);let l=a();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/trix",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/trix"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>l});var n=s(944),a=s.n(n),h=s(512),p=s.n(h);let{tema:c}=p().seriesTypes,{correctFloat:d,merge:f}=a();class u extends c{getTemaPoint(e,t,r,i){if(i>t)return[e[i-3],0!==r.prevLevel3?d(r.level3-r.prevLevel3)/r.prevLevel3*100:null]}}u.defaultOptions=f(c.defaultOptions),p().registerSeriesType("trix",u);let l=a();return o.default})()); \ No newline at end of file diff --git a/indicators/trix.src.js b/indicators/trix.src.js index ff5049beee..275c9e3698 100644 --- a/indicators/trix.src.js +++ b/indicators/trix.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/trix * @requires highcharts * @requires highcharts/modules/stock diff --git a/indicators/volume-by-price.js b/indicators/volume-by-price.js index cd5c87c72c..7c5b868cea 100644 --- a/indicators/volume-by-price.js +++ b/indicators/volume-by-price.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/volume-by-price * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Paweł Dalek * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/volume-by-price",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/volume-by-price"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var i={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return i[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};o.d(a,{default:()=>A});var n=o(944),r=/*#__PURE__*/o.n(n),l=o(512),p=/*#__PURE__*/o.n(l);let{sma:{prototype:{pointClass:h}}}=p().seriesTypes,d=class extends h{destroy(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy()),super.destroy.apply(this,arguments)}},{animObject:u}=r(),{noop:m}=r(),{column:{prototype:c},sma:g}=p().seriesTypes,{addEvent:f,arrayMax:v,arrayMin:y,correctFloat:x,defined:D,error:S,extend:V,isArray:b,merge:w}=r(),P=Math.abs;class C extends g{init(e,t){let i=this;delete t.data,super.init.apply(i,arguments);let s=f(this.chart.constructor,"afterLinkSeries",function(){if(i.options){let t=i.options.params,s=i.linkedParent,o=e.get(t.volumeSeriesID);i.addCustomEvents(s,o)}s()},{order:1});return i}addCustomEvents(e,t){let i=this,s=()=>{i.chart.redraw(),i.setData([]),i.zoneStarts=[],i.zoneLinesSVG&&(i.zoneLinesSVG=i.zoneLinesSVG.destroy())};return i.dataEventsToUnbind.push(f(e,"remove",function(){s()})),t&&i.dataEventsToUnbind.push(f(t,"remove",function(){s()})),i}animate(e){let t=this,i=t.chart.inverted,s=t.group,o={};if(!e&&s){let e=i?t.yAxis.top:t.xAxis.left;i?(s["forceAnimate:translateY"]=!0,o.translateY=e):(s["forceAnimate:translateX"]=!0,o.translateX=e),s.animate(o,V(u(t.options.animation),{step:function(e,i){t.group.attr({scaleX:Math.max(.001,i.pos)})}}))}}drawPoints(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),c.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1)),c.drawPoints.apply(this,arguments)}posNegVolume(e,t){let i=t?["positive","negative"]:["negative","positive"],s=this.options.volumeDivision,o=this.points.length,a=[],n=[],r=0,l,p,h,d;for(e?(this.posWidths=a,this.negWidths=n):(a=this.posWidths,n=this.negWidths);rs&&(s=a);return{min:i,max:s}}(i),n=this.zoneStarts=[],r=[],l=a?a.min:y(i),p=a?a.max:v(i),h=0,d=1,u=this.linkedParent;if(!this.options.compareToMain&&u.dataModify&&(l=u.dataModify.modifyValue(l),p=u.dataModify.modifyValue(p)),!D(l)||!D(p))return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];let m=this.rangeStep=x(p-l)/s;for(n.push(l);h=t.end&&t.index===m&&(r=!0),(l>t.start||n)&&(ll?t.negativeVolumeData+=u[p]:t.positiveVolumeData+=u[p])}h.volumeDataArray.push(t.wholeVolumeData)}),t}drawZones(e,t,i,s){let o=e.renderer,a=e.plotWidth,n=e.plotTop,r=this.zoneLinesSVG,l=[],p;i.forEach(function(i){p=t.toPixels(i)-n,l=l.concat(e.renderer.crispLine([["M",0,p],["L",a,p]],s.lineWidth))}),r?r.animate({d:l}):r=this.zoneLinesSVG=o.path(l).attr({"stroke-width":s.lineWidth,stroke:s.color,dashstyle:s.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}}C.defaultOptions=w(g.defaultOptions,{params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1e3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{allowOverlap:!0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"0.5em"},verticalAlign:"top"}}),V(C.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],calculateOn:{chart:"render",xAxis:"afterSetExtremes"},pointClass:d,markerAttribs:m,drawGraph:m,getColumnMetrics:c.getColumnMetrics,crispCol:c.crispCol}),p().registerSeriesType("vbp",C);let A=r();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/volume-by-price",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/volume-by-price"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var i={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return i[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};o.d(a,{default:()=>A});var n=o(944),r=o.n(n),l=o(512),p=o.n(l);let{sma:{prototype:{pointClass:h}}}=p().seriesTypes,d=class extends h{destroy(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy()),super.destroy.apply(this,arguments)}},{animObject:u}=r(),{noop:m}=r(),{column:{prototype:c},sma:g}=p().seriesTypes,{addEvent:f,arrayMax:v,arrayMin:y,correctFloat:x,defined:D,error:S,extend:V,isArray:b,merge:w}=r(),P=Math.abs;class C extends g{init(e,t){let i=this;delete t.data,super.init.apply(i,arguments);let s=f(this.chart.constructor,"afterLinkSeries",function(){if(i.options){let t=i.options.params,s=i.linkedParent,o=e.get(t.volumeSeriesID);i.addCustomEvents(s,o)}s()},{order:1});return i}addCustomEvents(e,t){let i=this,s=()=>{i.chart.redraw(),i.setData([]),i.zoneStarts=[],i.zoneLinesSVG&&(i.zoneLinesSVG=i.zoneLinesSVG.destroy())};return i.dataEventsToUnbind.push(f(e,"remove",function(){s()})),t&&i.dataEventsToUnbind.push(f(t,"remove",function(){s()})),i}animate(e){let t=this,i=t.chart.inverted,s=t.group,o={};if(!e&&s){let e=i?t.yAxis.top:t.xAxis.left;i?(s["forceAnimate:translateY"]=!0,o.translateY=e):(s["forceAnimate:translateX"]=!0,o.translateX=e),s.animate(o,V(u(t.options.animation),{step:function(e,i){t.group.attr({scaleX:Math.max(.001,i.pos)})}}))}}drawPoints(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),c.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1)),c.drawPoints.apply(this,arguments)}posNegVolume(e,t){let i=t?["positive","negative"]:["negative","positive"],s=this.options.volumeDivision,o=this.points.length,a=[],n=[],r=0,l,p,h,d;for(e?(this.posWidths=a,this.negWidths=n):(a=this.posWidths,n=this.negWidths);rs&&(s=a);return{min:i,max:s}}(i),n=this.zoneStarts=[],r=[],l=a?a.min:y(i),p=a?a.max:v(i),h=0,d=1,u=this.linkedParent;if(!this.options.compareToMain&&u.dataModify&&(l=u.dataModify.modifyValue(l),p=u.dataModify.modifyValue(p)),!D(l)||!D(p))return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];let m=this.rangeStep=x(p-l)/s;for(n.push(l);h=t.end&&t.index===m&&(r=!0),(l>t.start||n)&&(ll?t.negativeVolumeData+=u[p]:t.positiveVolumeData+=u[p])}h.volumeDataArray.push(t.wholeVolumeData)}),t}drawZones(e,t,i,s){let o=e.renderer,a=e.plotWidth,n=e.plotTop,r=this.zoneLinesSVG,l=[],p;i.forEach(function(i){p=t.toPixels(i)-n,l=l.concat(e.renderer.crispLine([["M",0,p],["L",a,p]],s.lineWidth))}),r?r.animate({d:l}):r=this.zoneLinesSVG=o.path(l).attr({"stroke-width":s.lineWidth,stroke:s.color,dashstyle:s.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}}C.defaultOptions=w(g.defaultOptions,{params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1e3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{align:"left",allowOverlap:!0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"0.5em"},verticalAlign:"top"}}),V(C.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],calculateOn:{chart:"render",xAxis:"afterSetExtremes"},pointClass:d,markerAttribs:m,drawGraph:m,getColumnMetrics:c.getColumnMetrics,crispCol:c.crispCol}),p().registerSeriesType("vbp",C);let A=r();return a.default})()); \ No newline at end of file diff --git a/indicators/volume-by-price.src.js b/indicators/volume-by-price.src.js index 7dfee5a7e1..317dc6948b 100644 --- a/indicators/volume-by-price.src.js +++ b/indicators/volume-by-price.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/volume-by-price * @requires highcharts * @requires highcharts/modules/stock @@ -684,6 +684,7 @@ VBPIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, { enabled: false }, dataLabels: { + align: 'left', allowOverlap: true, enabled: true, format: 'P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}', diff --git a/indicators/vwap.js b/indicators/vwap.js index c52a1ecdab..7787e0b709 100644 --- a/indicators/vwap.js +++ b/indicators/vwap.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/indicators/vwap * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Paweł Dalek * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/vwap",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/vwap"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>g});var o=i(944),n=/*#__PURE__*/i.n(o),u=i(512),h=/*#__PURE__*/i.n(u);let{sma:p}=h().seriesTypes,{error:l,isArray:c,merge:d}=n();class f extends p{getValues(e,t){let r=e.chart,s=e.xData,i=e.yData,a=t.period,o=!0,n;if(!(n=r.get(t.volumeSeriesID))){l("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,r);return}return c(i[0])||(o=!1),this.calculateVWAPValues(o,s,i,n,a)}calculateVWAPValues(e,t,r,s,i){let a,o,n,u,h,p;let l=s.getColumn("y"),c=l.length,d=t.length,f=[],g=[],v=[],y=[],x=[];for(h=0,a=d<=c?d:c,p=0;h(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>g});var o=i(944),n=i.n(o),u=i(512),h=i.n(u);let{sma:p}=h().seriesTypes,{error:l,isArray:c,merge:d}=n();class f extends p{getValues(e,t){let r=e.chart,s=e.xData,i=e.yData,a=t.period,o=!0,n;if(!(n=r.get(t.volumeSeriesID))){l("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,r);return}return c(i[0])||(o=!1),this.calculateVWAPValues(o,s,i,n,a)}calculateVWAPValues(e,t,r,s,i){let a,o,n,u,h,p;let l=s.getColumn("y"),c=l.length,d=t.length,f=[],g=[],v=[],y=[],x=[];for(h=0,a=d<=c?d:c,p=0;h(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>y});var o=i(944),n=/*#__PURE__*/i.n(o);let h={getArrayExtremes:function(e,t,r){return e.reduce((e,s)=>[Math.min(e[0],s[t]),Math.max(e[1],s[r])],[Number.MAX_VALUE,-Number.MAX_VALUE])}};var l=i(512),p=/*#__PURE__*/i.n(l);let{sma:u}=p().seriesTypes,{extend:d,isArray:c,merge:f}=n();class g extends u{getValues(e,t){let r,s,i,a,o,n;let l=t.period,p=e.xData,u=e.yData,d=u?u.length:0,f=[],g=[],y=[];if(!(p.length(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var a=s[e]={exports:{}};return r[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>y});var o=i(944),n=i.n(o);let h={getArrayExtremes:function(e,t,r){return e.reduce((e,s)=>[Math.min(e[0],s[t]),Math.max(e[1],s[r])],[Number.MAX_VALUE,-Number.MAX_VALUE])}};var l=i(512),p=i.n(l);let{sma:u}=p().seriesTypes,{extend:d,isArray:c,merge:f}=n();class g extends u{getValues(e,t){let r,s,i,a,o,n;let l=t.period,p=e.xData,u=e.yData,d=u?u.length:0,f=[],g=[],y=[];if(!(p.length(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e](n,n.exports,i),n.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>y});var a=i(944),o=/*#__PURE__*/i.n(a),h=i(512),u=/*#__PURE__*/i.n(h);let{sma:p}=u().seriesTypes,{isArray:c,merge:d}=o();function f(e,t,r,s,i){let n=t[s],a=i<0?r[s]:r[s][i];e.push([n,a])}function l(e,t,r,s){let i=e.length,n=e.reduce(function(e,t,r){return[null,e[1]+t[1]*(r+1)]})[1]/((i+1)/2*i),a=t[s-1];return e.shift(),[a,n]}class g extends p{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,n=i?i.length:0,a=s[0],o=[],h=[],u=[],p=1,d=-1,g,y,x=i[0];if(s.length(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e](n,n.exports,i),n.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>y});var a=i(944),o=i.n(a),h=i(512),u=i.n(h);let{sma:p}=u().seriesTypes,{isArray:c,merge:d}=o();function f(e,t,r,s,i){let n=t[s],a=i<0?r[s]:r[s][i];e.push([n,a])}function l(e,t,r,s){let i=e.length,n=e.reduce(function(e,t,r){return[null,e[1]+t[1]*(r+1)]})[1]/((i+1)/2*i),a=t[s-1];return e.shift(),[a,n]}class g extends p{getValues(e,t){let r=t.period,s=e.xData,i=e.yData,n=i?i.length:0,a=s[0],o=[],h=[],u=[],p=1,d=-1,g,y,x=i[0];if(s.length(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>f});var a=s(944),h=/*#__PURE__*/s.n(a),n=s(512),p=/*#__PURE__*/s.n(n);let{sma:d}=p().seriesTypes,{merge:u,extend:g}=h();class l extends d{getValues(e,t){let r=t.lowIndex,i=t.highIndex,s=t.deviation/100,o={low:1+s,high:1-s},a=e.xData,h=e.yData,n=h?h.length:0,p=[],d=[],u=[],g,l,f,c,x=!1,y=!1;if(!a||a.length<=1||n&&(void 0===h[0][r]||void 0===h[0][i]))return;let v=h[0][r],m=h[0][i];for(g=1;g=v*o.low&&(p.push([a[0],v]),f=[a[g],h[g][i]],c=!1,x=!0),x&&(d.push(p[0][0]),u.push(p[0][1]),l=g++,g=n);for(g=l;g=f[1]*o.low&&(y=i)):(h[g][i]>=f[1]&&(f=[a[g],h[g][i]]),h[g][r]<=f[1]*o.high&&(y=r)),!1!==y&&(p.push(f),d.push(f[0]),u.push(f[1]),f=[a[g],h[g][y]],c=!c,y=!1);let w=p.length;return 0!==w&&p[w-1][0](()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>f});var a=s(944),h=s.n(a),n=s(512),p=s.n(n);let{sma:d}=p().seriesTypes,{merge:u,extend:g}=h();class l extends d{getValues(e,t){let r=t.lowIndex,i=t.highIndex,s=t.deviation/100,o={low:1+s,high:1-s},a=e.xData,h=e.yData,n=h?h.length:0,p=[],d=[],u=[],g,l,f,c,x=!1,y=!1;if(!a||a.length<=1||n&&(void 0===h[0][r]||void 0===h[0][i]))return;let v=h[0][r],m=h[0][i];for(g=1;g=v*o.low&&(p.push([a[0],v]),f=[a[g],h[g][i]],c=!1,x=!0),x&&(d.push(p[0][0]),u.push(p[0][1]),l=g++,g=n);for(g=l;g=f[1]*o.low&&(y=i)):(h[g][i]>=f[1]&&(f=[a[g],h[g][i]]),h[g][r]<=f[1]*o.high&&(y=r)),!1!==y&&(p.push(f),d.push(f[0]),u.push(f[1]),f=[a[g],h[g][y]],c=!c,y=!1);let w=p.length;return 0!==w&&p[w-1][0](()=>{"use strict";let d;var u,p,g,m,b={660:e=>{e.exports=i},532:e=>{e.exports=n},620:e=>{e.exports=r},632:e=>{e.exports=s},260:e=>{e.exports=h},608:e=>{e.exports=a},540:e=>{e.exports=l},820:e=>{e.exports=c},512:e=>{e.exports=o},984:e=>{e.exports=t},944:t=>{t.exports=e}},f={};function x(e){var t=f[e];if(void 0!==t)return t.exports;var i=f[e]={exports:{}};return b[e](i,i.exports,x),i.exports}x.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return x.d(t,{a:t}),t},x.d=(e,t)=>{for(var i in t)x.o(t,i)&&!x.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},x.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var y={};x.d(y,{default:()=>nx});var v=x(944),w=/*#__PURE__*/x.n(v);let{doc:E,win:A}=w(),{css:T}=w(),C=A.EventTarget&&new A.EventTarget||"none";function M(e){if("function"==typeof A.MouseEvent)return new A.MouseEvent(e.type,e);if(E.createEvent){let t=E.createEvent("MouseEvent");if(t.initMouseEvent)return t.initMouseEvent(e.type,e.bubbles,e.cancelable,e.view||A,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget),t}return k(e.type)}function k(e,t,i){let s=t||{x:0,y:0};if("function"==typeof A.MouseEvent)return new A.MouseEvent(e,{bubbles:!0,cancelable:!0,composed:!0,button:0,buttons:1,relatedTarget:i||C,view:A,detail:"click"===e?1:0,screenX:s.x,screenY:s.y,clientX:s.x,clientY:s.y});if(E.createEvent){let t=E.createEvent("MouseEvent");if(t.initMouseEvent)return t.initMouseEvent(e,!0,!0,A,"click"===e?1:0,s.x,s.y,s.x,s.y,!1,!1,!1,!1,0,null),t}return{type:e}}let S={addClass:function(e,t){e.classList?e.classList.add(t):0>e.className.indexOf(t)&&(e.className+=" "+t)},cloneMouseEvent:M,cloneTouchEvent:function(e){let t=e=>{let t=[];for(let i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},getElement:function(e){return E.getElementById(e)},getFakeMouseEvent:k,getHeadingTagNameForElement:function(e){let t=e=>"h"+Math.min(6,parseInt(e.slice(1),10)+1),i=e=>/^H[1-6]$/i.test(e),s=e=>{let t=e;for(;t=t.previousSibling;){let e=t.tagName||"";if(i(e))return e}return""},n=e=>{let r=s(e);if(r)return t(r);let o=e.parentElement;if(!o)return"h6";let a=o.tagName;return i(a)?t(a):n(o)};return n(e)},removeChildNodes:function(e){for(;e.lastChild;)e.removeChild(e.lastChild)},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(RegExp(t,"g"),"")},removeElement:function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},reverseChildNodes:function(e){let t=e.childNodes.length;for(;t--;)e.appendChild(e.childNodes[t])},simulatedEventTarget:C,stripHTMLTagsFromString:function(e,t=!1){return"string"==typeof e?t?e.replace(/<\/?[^>]+(>|$)/g,""):e.replace(/<\/?(?!\s)[^>]+(>|$)/g,""):e},visuallyHideElement:function(e){T(e,{position:"absolute",width:"1px",height:"1px",overflow:"hidden",whiteSpace:"nowrap",clip:"rect(1px, 1px, 1px, 1px)",marginTop:"-3px","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)",filter:"alpha(opacity=1)",opacity:.01})}};var P=x(984),D=/*#__PURE__*/x.n(P);let{format:N}=D(),{getNestedProperty:B,pick:I}=w();!function(e){function t(e,t,i){let s=(e,t)=>{let i=e.slice(t||0),s=i.indexOf("{"),n=i.indexOf("}");if(s>-1&&n>s)return{statement:i.substring(s+1,n),begin:t+s+1,end:t+n}},n=[],r,o,a=0;do r=s(e,a),(o=e.substring(a,r&&r.begin-1)).length&&n.push({value:o,type:"constant"}),r&&n.push({value:r.statement,type:"statement"}),a=r?r.end+1:a+1;while(r);return n.forEach(e=>{"statement"===e.type&&(e.value=function(e,t){let i,s;let n=e.indexOf("#each("),r=e.indexOf("#plural("),o=e.indexOf("["),a=e.indexOf("]");if(n>-1){let r=e.slice(n).indexOf(")")+n,o=e.substring(0,n),a=e.substring(r+1),l=e.substring(n+6,r).split(","),h=Number(l[1]),c;if(s="",i=B(l[0],t)){c=(h=isNaN(h)?i.length:h)<0?i.length+h:Math.min(h,i.length);for(let e=0;e-1){var l;let i=e.slice(r).indexOf(")")+r,n=e.substring(r+8,i).split(",");switch(Number(B(n[0],t))){case 0:s=I(n[4],n[1]);break;case 1:s=I(n[2],n[1]);break;case 2:s=I(n[3],n[1]);break;default:s=n[1]}return s?(l=s).trim&&l.trim()||l.replace(/^\s+|\s+$/g,""):""}if(o>-1){let s;let n=e.substring(0,o),r=Number(e.substring(o+1,a));return i=B(n,t),!isNaN(r)&&i&&(r<0?void 0===(s=i[i.length+r])&&(s=i[0]):void 0===(s=i[r])&&(s=i[i.length-1])),void 0!==s?s:""}return"{"+e+"}"}(e.value,t))}),N(n.reduce((e,t)=>e+t.value,""),t,i)}function i(e,i){let s=e.split("."),n=this.options.lang,r=0;for(;r!!e.graphic);return t&&t.graphic&&t.graphic.element}}function G(e){let t=q(e);return t&&t.parentNode||e.graph&&e.graph.element||e.group&&e.group.element}let K={fireEventOnWrappedOrUnwrappedElement:function e(t,i){let s=i.type,n=t.hcEvents;O.createEvent&&(t.dispatchEvent||t.fireEvent)?t.dispatchEvent?t.dispatchEvent(i):t.fireEvent(s,i):n&&n[s]?z(t,s,i):t.element&&e(t.element,i)},getChartTitle:function(e){return R(e.options.title.text||e.langFormat("accessibility.defaultChartTitle",{chart:e}),e.renderer.forExport)},getAxisDescription:function(e){return e&&(e.options.accessibility?.description||e.axisTitle?.textStr||e.options.id||e.categories&&"categories"||e.dateTime&&"Time"||"values")},getAxisRangeDescription:function(e){let t=e.options||{};return t.accessibility&&void 0!==t.accessibility.rangeDescription?t.accessibility.rangeDescription:e.categories?function(e){let t=e.chart;return e.dataMax&&e.dataMin?t.langFormat("accessibility.axis.rangeCategories",{chart:t,axis:e,numCategories:e.dataMax-e.dataMin+1}):""}(e):e.dateTime&&(0===e.min||0===e.dataMin)?function(e){let t=e.chart,i={},s=e.dataMin||e.min||0,n=e.dataMax||e.max||0,r="Seconds";i.Seconds=(n-s)/1e3,i.Minutes=i.Seconds/60,i.Hours=i.Minutes/60,i.Days=i.Hours/24,["Minutes","Hours","Days"].forEach(function(e){i[e]>2&&(r=e)});let o=i[r].toFixed("Seconds"!==r&&"Minutes"!==r?1:0);return t.langFormat("accessibility.axis.timeRange"+r,{chart:t,axis:e,range:o.replace(".0","")})}(e):function(e){let t=e.chart,i=t.options,s=i&&i.accessibility&&i.accessibility.screenReaderSection.axisRangeDateFormat||"",n={min:e.dataMin||e.min||0,max:e.dataMax||e.max||0},r=function(i){return e.dateTime?t.time.dateFormat(s,n[i]):n[i].toString()};return t.langFormat("accessibility.axis.rangeFromTo",{chart:t,axis:e,rangeFrom:r("min"),rangeTo:r("max")})}(e)},getPointFromXY:function(e,t,i){let s=e.length,n;for(;s--;)if(n=H(e[s].points||[],function(e){return e.x===t&&e.y===i}))return n},getSeriesFirstPointElement:q,getSeriesFromName:function(e,t){return t?(e.series||[]).filter(function(e){return e.name===t}):e.series},getSeriesA11yElement:G,unhideChartElementFromAT:function e(t,i){i.setAttribute("aria-hidden",!1),i!==t.renderTo&&i.parentNode&&i.parentNode!==O.body&&(Array.prototype.forEach.call(i.parentNode.childNodes,function(e){e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden",!0)}),e(t,i.parentNode))},hideSeriesFromAT:function(e){let t=G(e);t&&t.setAttribute("aria-hidden",!0)},scrollAxisToPoint:function(e){let t=e.series.xAxis,i=e.series.yAxis,s=t&&t.scrollbar?t:i,n=s&&s.scrollbar;if(n&&L(n.to)&&L(n.from)){let t=n.to-n.from,i=function(e,t){if(!L(e.dataMin)||!L(e.dataMax))return 0;let i=e.toPixels(e.dataMin),s=e.toPixels(e.dataMax),n="xAxis"===e.coll?"x":"y";return(e.toPixels(t[n]||0)-i)/(s-i)}(s,e);n.updatePosition(i-t/2,i+t/2),z(n,"changed",{from:n.from,to:n.to,trigger:"scrollbar",DOMEvent:null})}}},{doc:U}=w(),{removeElement:V}=S,W=class{constructor(){this.elements=[]}createElement(){let e=U.createElement.apply(U,arguments);return this.elements.push(e),e}removeElement(e){V(e),this.elements.splice(this.elements.indexOf(e),1)}destroyCreatedElements(){this.elements.forEach(function(e){V(e)}),this.elements=[]}},{addEvent:X}=w(),Y=class{constructor(){this.eventRemovers=[]}addEvent(){let e=X.apply(w(),arguments);return this.eventRemovers.push({element:arguments[0],remover:e}),e}removeEvent(e){let t=this.eventRemovers.map(e=>e.remover).indexOf(e);this.eventRemovers[t].remover(),this.eventRemovers.splice(t,1)}removeAddedEvents(){this.eventRemovers.map(e=>e.remover).forEach(e=>e()),this.eventRemovers=[]}},{fireEventOnWrappedOrUnwrappedElement:j}=K,{getFakeMouseEvent:_}=S,Z=class{destroy(){}getKeyboardNavigation(){return[]}init(){}onChartRender(){}onChartUpdate(){}initBase(e,t){this.chart=e,this.eventProvider=new Y,this.domElementProvider=new W,this.proxyProvider=t,this.keyCodes={left:37,right:39,up:38,down:40,enter:13,space:32,esc:27,tab:9,pageUp:33,pageDown:34,end:35,home:36}}addEvent(e,t,i,s){return this.eventProvider.addEvent(e,t,i,s)}createElement(e,t){return this.domElementProvider.createElement(e,t)}fakeClickEvent(e){j(e,_("click"))}destroyBase(){this.domElementProvider.destroyCreatedElements(),this.eventProvider.removeAddedEvents()}},{find:$}=w(),Q=class{constructor(e,t){this.chart=e,this.keyCodeMap=t.keyCodeMap||[],this.validate=t.validate,this.init=t.init,this.terminate=t.terminate,this.response={success:1,prev:2,next:3,noHandler:4,fail:5}}run(e){let t=e.which||e.keyCode,i=this.response.noHandler,s=$(this.keyCodeMap,function(e){return e[0].indexOf(t)>-1});return s?i=s[1].call(this,t,e):9===t&&(i=this.response[e.shiftKey?"prev":"next"]),i}},{unhideChartElementFromAT:J,getChartTitle:ee}=K,{doc:et}=w(),{stripHTMLTagsFromString:ei}=S,es=class extends Z{onChartUpdate(){this.handleSVGTitleElement(),this.setSVGContainerLabel(),this.setGraphicContainerAttrs(),this.setRenderToAttrs(),this.makeCreditsAccessible()}handleSVGTitleElement(){let e=this.chart,t="highcharts-title-"+e.index,i=ei(e.langFormat("accessibility.svgContainerTitle",{chartTitle:ee(e)}));if(i.length){let s=this.svgTitleElement=this.svgTitleElement||et.createElementNS("http://www.w3.org/2000/svg","title");s.textContent=i,s.id=t,e.renderTo.insertBefore(s,e.renderTo.firstChild)}}setSVGContainerLabel(){let e=this.chart,t=e.langFormat("accessibility.svgContainerLabel",{chartTitle:ee(e)});e.renderer.box&&t.length&&e.renderer.box.setAttribute("aria-label",t)}setGraphicContainerAttrs(){let e=this.chart,t=e.langFormat("accessibility.graphicContainerLabel",{chartTitle:ee(e)});t.length&&e.container.setAttribute("aria-label",t)}setRenderToAttrs(){let e=this.chart,t="disabled"!==e.options.accessibility.landmarkVerbosity,i=e.langFormat("accessibility.chartContainerLabel",{title:ee(e),chart:e});i&&(e.renderTo.setAttribute("role",t?"region":"group"),e.renderTo.setAttribute("aria-label",i))}makeCreditsAccessible(){let e=this.chart,t=e.credits;t&&(t.textStr&&t.element.setAttribute("aria-label",e.langFormat("accessibility.credits",{creditsStr:ei(t.textStr,e.renderer.forExport)})),J(e,t.element))}getKeyboardNavigation(){let e=this.chart;return new Q(e,{keyCodeMap:[],validate:function(){return!0},init:function(){let t=e.accessibility;t&&t.keyboardNavigation.tabindexContainer.focus()}})}destroy(){this.chart.renderTo.setAttribute("aria-hidden",!0)}},{addEvent:en,pick:er}=w();!function(e){let t=["x","y","transform","width","height","r","d","stroke-width"];function i(){let e=this.focusElement,t=this.options.accessibility.keyboardNavigation.focusBorder;e&&(e.removeFocusBorder(),t.enabled&&e.addFocusBorder(t.margin,{stroke:t.style.color,strokeWidth:t.style.lineWidth,r:t.style.borderRadius}))}function s(e,t){let i=this.options.accessibility.keyboardNavigation.focusBorder,s=t||e.element;s&&s.focus&&(s.hcEvents&&s.hcEvents.focusin||en(s,"focusin",function(){}),s.focus(),i.hideBrowserFocusOutline&&(s.style.outline="none")),this.focusElement&&this.focusElement.removeFocusBorder(),this.focusElement=e,this.renderFocusBorder()}function n(e,i){this.focusBorder&&this.removeFocusBorder();let s=this.getBBox(),n=er(e,3),r=this.parentGroup,o=this.scaleX||r&&r.scaleX,a=this.scaleY||r&&r.scaleY,l=(o?!a:a)?Math.abs(o||a||1):(Math.abs(o||1)+Math.abs(a||1))/2,h=this.renderer.fontMetrics(this).h;s.x+=this.translateX?this.translateX:0,s.y+=this.translateY?this.translateY:0;let c=s.x-n,d=s.y-n,u=s.width+2*n,p=s.height+2*n,g=!!this.text;if("text"===this.element.nodeName||g){let e,t;let i=!!this.rotation,r=g?{x:i?1:0,y:0}:(e=0,t=0,"middle"===this.attr("text-anchor")?e=t=.5:this.rotation?e=.25:t=.75,{x:e,y:t}),o=+this.attr("x"),a=+this.attr("y");if(isNaN(o)||(c=o-s.width*r.x-n),isNaN(a)||(d=a-("start"===this.attr("text-anchor")?h:s.height)*r.y-n),g&&i){let e=u;u=p,p=e,isNaN(o)||(c=o-s.height*r.x-n),isNaN(a)||(d=a-s.width*r.y-n)}}this.focusBorder=this.renderer.rect(c,d,u,p,parseInt((i&&i.r||0).toString(),10)/l).addClass("highcharts-focus-border").attr({zIndex:99}).add(r),this.renderer.styledMode||this.focusBorder.attr({stroke:i&&i.stroke,"stroke-width":(i&&i.strokeWidth||0)/l}),function(e,...i){e.focusBorderUpdateHooks||(e.focusBorderUpdateHooks={},t.forEach(t=>{let s=t+"Setter",n=e[s]||e._defaultSetter;e.focusBorderUpdateHooks[s]=n,e[s]=function(){let t=n.apply(e,arguments);return e.addFocusBorder.apply(e,i),t}}))}(this,e,i),function(e){if(e.focusBorderDestroyHook)return;let t=e.destroy;e.destroy=function(){return e.focusBorder&&e.focusBorder.destroy&&e.focusBorder.destroy(),t.apply(e,arguments)},e.focusBorderDestroyHook=t}(this)}function r(){var e;e=this,e.focusBorderUpdateHooks&&(Object.keys(e.focusBorderUpdateHooks).forEach(t=>{let i=e.focusBorderUpdateHooks[t];i===e._defaultSetter?delete e[t]:e[t]=i}),delete e.focusBorderUpdateHooks),this.focusBorderDestroyHook&&(this.destroy=this.focusBorderDestroyHook,delete this.focusBorderDestroyHook),this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}e.compose=function(e,t){let o=e.prototype,a=t.prototype;o.renderFocusBorder||(o.renderFocusBorder=i,o.setFocusToElement=s),a.addFocusBorder||(a.addFocusBorder=n,a.removeFocusBorder=r)}}(p||(p={}));let eo=p;var ea=x(660),el=/*#__PURE__*/x.n(ea);let{doc:eh}=w(),{addClass:ec,visuallyHideElement:ed}=S,{attr:eu}=w(),ep=class{constructor(e,t){this.chart=e,this.domElementProvider=new W,this.announceRegion=this.addAnnounceRegion(t)}destroy(){this.domElementProvider.destroyCreatedElements()}announce(e){el().setElementHTML(this.announceRegion,e),this.clearAnnouncementRegionTimer&&clearTimeout(this.clearAnnouncementRegionTimer),this.clearAnnouncementRegionTimer=setTimeout(()=>{this.announceRegion.innerHTML=el().emptyHTML,delete this.clearAnnouncementRegionTimer},3e3)}addAnnounceRegion(e){let t=this.chart.announcerContainer||this.createAnnouncerContainer(),i=this.domElementProvider.createElement("div");return eu(i,{"aria-hidden":!1,"aria-live":e,"aria-atomic":!0}),this.chart.styledMode?ec(i,"highcharts-visually-hidden"):ed(i),t.appendChild(i),i}createAnnouncerContainer(){let e=this.chart,t=eh.createElement("div");return eu(t,{"aria-hidden":!1,class:"highcharts-announcer-container"}),t.style.position="relative",e.renderTo.insertBefore(t,e.renderTo.firstChild),e.announcerContainer=t,t}},{escapeStringForHTML:eg,stripHTMLTagsFromString:em}=S;function eb(e){return(e.annotations||[]).reduce((e,t)=>(t.options&&!1!==t.options.visible&&(e=e.concat(t.labels)),e),[])}function ef(e){return e.options&&e.options.accessibility&&e.options.accessibility.description||e.graphic&&e.graphic.text&&e.graphic.text.textStr||""}function ex(e){let t=e.options&&e.options.accessibility&&e.options.accessibility.description;if(t)return t;let i=e.chart,s=ef(e),n=e.points,r=e=>e.graphic&&e.graphic.element&&e.graphic.element.getAttribute("aria-label")||"",o=n.filter(e=>!!e.graphic).map(e=>{let t=e.accessibility&&e.accessibility.valueDescription||r(e),i=e&&e.series.name||"";return(i?i+", ":"")+"data point "+t}).filter(e=>!!e),a=o.length,l=a>1?"MultiplePoints":a?"SinglePoint":"NoPoints",h={annotationText:s,annotation:e,numPoints:a,annotationPoint:o[0],additionalAnnotationPoints:o.slice(1)};return i.langFormat("accessibility.screenReaderSection.annotations.description"+l,h)}function ey(e){return eb(e).map(t=>{let i=eg(em(ex(t),e.renderer.forExport));return i?`
  • ${i}
  • `:""})}let ev={getAnnotationsInfoHTML:function(e){let t=e.annotations;if(!(t&&t.length))return"";let i=ey(e);return`
      ${i.join(" ")}
    `},getAnnotationLabelDescription:ex,getAnnotationListItems:ey,getPointAnnotationTexts:function(e){let t=eb(e.series.chart).filter(t=>t.points.indexOf(e)>-1);return t.length?t.map(e=>`${ef(e)}`):[]}},{getAnnotationsInfoHTML:ew}=ev,{getAxisDescription:eE,getAxisRangeDescription:eA,getChartTitle:eT,unhideChartElementFromAT:eC}=K,{format:eM}=D(),{doc:ek}=w(),{addClass:eS,getElement:eP,getHeadingTagNameForElement:eD,stripHTMLTagsFromString:eN,visuallyHideElement:eB}=S,{attr:eI,pick:eF,replaceNested:eO}=w();function eR(e){return eO(e,[/<([\w\-.:!]+)\b[^<>]*>\s*<\/\1>/g,""])}let eL=class extends Z{constructor(){super(...arguments),this.screenReaderSections={}}init(){let e=this.chart,t=this;this.initRegionsDefinitions(),this.addEvent(e,"aftergetTableAST",function(e){t.onDataTableCreated(e)}),this.addEvent(e,"afterViewData",function(e){e.wasHidden&&(t.dataTableDiv=e.element,setTimeout(function(){t.focusDataTable()},300))}),this.addEvent(e,"afterHideData",function(){t.viewDataTableButton&&t.viewDataTableButton.setAttribute("aria-expanded","false")}),e.exporting&&this.addEvent(e,"afterPrint",function(){t.updateAllScreenReaderSections()}),this.announcer=new ep(e,"assertive")}initRegionsDefinitions(){let e=this,t=this.chart.options.accessibility;this.screenReaderSections={before:{element:null,buildContent:function(i){let s=t.screenReaderSection.beforeChartFormatter;return s?s(i):e.defaultBeforeChartFormatter(i)},insertIntoDOM:function(e,t){t.renderTo.insertBefore(e,t.renderTo.firstChild)},afterInserted:function(){void 0!==e.sonifyButtonId&&e.initSonifyButton(e.sonifyButtonId),void 0!==e.dataTableButtonId&&e.initDataTableButton(e.dataTableButtonId)}},after:{element:null,buildContent:function(i){let s=t.screenReaderSection.afterChartFormatter;return s?s(i):e.defaultAfterChartFormatter()},insertIntoDOM:function(e,t){t.renderTo.insertBefore(e,t.container.nextSibling)},afterInserted:function(){e.chart.accessibility&&t.keyboardNavigation.enabled&&e.chart.accessibility.keyboardNavigation.updateExitAnchor()}}}}onChartRender(){this.linkedDescriptionElement=this.getLinkedDescriptionElement(),this.setLinkedDescriptionAttrs(),this.updateAllScreenReaderSections()}updateAllScreenReaderSections(){let e=this;Object.keys(this.screenReaderSections).forEach(function(t){e.updateScreenReaderSection(t)})}getLinkedDescriptionElement(){let e=this.chart.options.accessibility.linkedDescription;if(!e)return;if("string"!=typeof e)return e;let t=eM(e,this.chart),i=ek.querySelectorAll(t);if(1===i.length)return i[0]}setLinkedDescriptionAttrs(){let e=this.linkedDescriptionElement;e&&(e.setAttribute("aria-hidden","true"),eS(e,"highcharts-linked-description"))}updateScreenReaderSection(e){let t=this.chart,i=this.screenReaderSections[e],s=i.buildContent(t),n=i.element=i.element||this.createElement("div"),r=n.firstChild||this.createElement("div");s?(this.setScreenReaderSectionAttribs(n,e),el().setElementHTML(r,s),n.appendChild(r),i.insertIntoDOM(n,t),t.styledMode?eS(r,"highcharts-visually-hidden"):eB(r),eC(t,r),i.afterInserted&&i.afterInserted()):(n.parentNode&&n.parentNode.removeChild(n),i.element=null)}setScreenReaderSectionAttribs(e,t){let i=this.chart,s=i.langFormat("accessibility.screenReaderSection."+t+"RegionLabel",{chart:i,chartTitle:eT(i)});eI(e,{id:`highcharts-screen-reader-region-${t}-${i.index}`,"aria-label":s||void 0}),e.style.position="relative",s&&e.setAttribute("role","all"===i.options.accessibility.landmarkVerbosity?"region":"group")}defaultBeforeChartFormatter(){let e=this.chart,t=e.options.accessibility.screenReaderSection.beforeChartFormat;if(!t)return"";let i=this.getAxesDescription(),s=e.sonify&&e.options.sonification&&e.options.sonification.enabled,n="highcharts-a11y-sonify-data-btn-"+e.index,r="hc-linkto-highcharts-data-table-"+e.index,o=ew(e),a=e.langFormat("accessibility.screenReaderSection.annotations.heading",{chart:e}),l={headingTagName:eD(e.renderTo),chartTitle:eT(e),typeDescription:this.getTypeDescriptionText(),chartSubtitle:this.getSubtitleText(),chartLongdesc:this.getLongdescText(),xAxisDescription:i.xAxis,yAxisDescription:i.yAxis,playAsSoundButton:s?this.getSonifyButtonText(n):"",viewTableButton:e.getCSV?this.getDataTableButtonText(r):"",annotationsTitle:o?a:"",annotationsList:o},h=F.i18nFormat(t,l,e);return this.dataTableButtonId=r,this.sonifyButtonId=n,eR(h)}defaultAfterChartFormatter(){let e=this.chart,t=e.options.accessibility.screenReaderSection.afterChartFormat;if(!t)return"";let i={endOfChartMarker:this.getEndOfChartMarkerText()};return eR(F.i18nFormat(t,i,e))}getLinkedDescription(){let e=this.linkedDescriptionElement;return eN(e&&e.innerHTML||"",this.chart.renderer.forExport)}getLongdescText(){let e=this.chart.options,t=e.caption,i=t&&t.text,s=this.getLinkedDescription();return e.accessibility.description||s||i||""}getTypeDescriptionText(){let e=this.chart;return e.types?e.options.accessibility.typeDescription||function(e,t){let i=t[0],s=e.series&&e.series[0]||{},n=e.mapView&&e.mapView.geoMap&&e.mapView.geoMap.title,r={numSeries:e.series.length,numPoints:s.points&&s.points.length,chart:e,mapTitle:n};return i?"map"===i||"tiledwebmap"===i?r.mapTitle?e.langFormat("accessibility.chartTypes.mapTypeDescription",r):e.langFormat("accessibility.chartTypes.unknownMap",r):e.types.length>1?e.langFormat("accessibility.chartTypes.combinationChart",r):function(e,t,i){let s=t[0],n=e.langFormat("accessibility.seriesTypeDescriptions."+s,i),r=e.series&&e.series.length<2?"Single":"Multiple";return(e.langFormat("accessibility.chartTypes."+s+r,i)||e.langFormat("accessibility.chartTypes.default"+r,i))+(n?" "+n:"")}(e,t,r):e.langFormat("accessibility.chartTypes.emptyChart",r)}(e,e.types):""}getDataTableButtonText(e){let t=this.chart;return'"}getSonifyButtonText(e){let t=this.chart;return t.options.sonification&&!1===t.options.sonification.enabled?"":'"}getSubtitleText(){let e=this.chart.options.subtitle;return eN(e&&e.text||"",this.chart.renderer.forExport)}getEndOfChartMarkerText(){let e=eP(`highcharts-end-of-chart-marker-${this.chart.index}`);if(e)return e.outerHTML;let t=this.chart,i=t.langFormat("accessibility.screenReaderSection.endOfChartMarker",{chart:t});return'
    '+i+"
    "}onDataTableCreated(e){let t=this.chart;if(t.options.accessibility.enabled){this.viewDataTableButton&&this.viewDataTableButton.setAttribute("aria-expanded","true");let i=e.tree.attributes||{};i.tabindex=-1,i.summary=t.langFormat("accessibility.table.tableSummary",{chart:t}),e.tree.attributes=i}}focusDataTable(){let e=this.dataTableDiv,t=e&&e.getElementsByTagName("table")[0];t&&t.focus&&t.focus()}initSonifyButton(e){let t=this.sonifyButton=eP(e),i=this.chart,s=e=>{t&&(t.setAttribute("aria-hidden","true"),t.setAttribute("aria-label","")),e.preventDefault(),e.stopPropagation();let s=i.langFormat("accessibility.sonification.playAsSoundClickAnnouncement",{chart:i});this.announcer.announce(s),setTimeout(()=>{t&&(t.removeAttribute("aria-hidden"),t.removeAttribute("aria-label")),i.sonify&&i.sonify()},1e3)};t&&i&&(t.setAttribute("tabindex",-1),t.onclick=function(e){(i.options.accessibility&&i.options.accessibility.screenReaderSection.onPlayAsSoundClick||s).call(this,e,i)})}initDataTableButton(e){let t=this.viewDataTableButton=eP(e),i=this.chart,s=e.replace("hc-linkto-","");t&&(eI(t,{tabindex:-1,"aria-expanded":!!eP(s)}),t.onclick=i.options.accessibility.screenReaderSection.onViewDataTableClick||function(){i.viewData()})}getAxesDescription(){let e=this.chart,t=function(t,i){let s=e[t];return s.length>1||s[0]&&eF(s[0].options.accessibility&&s[0].options.accessibility.enabled,i)},i=!!e.types&&0>e.types.indexOf("map")&&0>e.types.indexOf("treemap")&&0>e.types.indexOf("tilemap"),s=!!e.hasCartesianSeries,n=t("xAxis",!e.angular&&s&&i),r=t("yAxis",s&&i),o={};return n&&(o.xAxis=this.getAxisDescriptionText("xAxis")),r&&(o.yAxis=this.getAxisDescriptionText("yAxis")),o}getAxisDescriptionText(e){let t=this.chart,i=t[e];return t.langFormat("accessibility.axis."+e+"Description"+(i.length>1?"Plural":"Singular"),{chart:t,names:i.map(function(e){return eE(e)}),ranges:i.map(function(e){return eA(e)}),numAxes:i.length})}destroy(){this.announcer&&this.announcer.destroy()}},{attr:eH}=w(),{getChartTitle:ez,unhideChartElementFromAT:eq}=K,{getFakeMouseEvent:eG}=S;function eK(e){return e.exportSVGElements&&e.exportSVGElements[0]}class eU extends Z{init(){let e=this.chart,t=this;this.addEvent(e,"exportMenuShown",function(){t.onMenuShown()}),this.addEvent(e,"exportMenuHidden",function(){t.onMenuHidden()}),this.createProxyGroup()}onMenuHidden(){let e=this.chart.exportContextMenu;e&&e.setAttribute("aria-hidden","true"),this.setExportButtonExpandedState("false")}onMenuShown(){let e=this.chart,t=e.exportContextMenu;t&&(this.addAccessibleContextMenuAttribs(),eq(e,t)),this.setExportButtonExpandedState("true")}setExportButtonExpandedState(e){this.exportButtonProxy&&this.exportButtonProxy.innerElement.setAttribute("aria-expanded",e)}onChartRender(){let e=this.chart,t=e.focusElement,i=e.accessibility;this.proxyProvider.clearGroup("chartMenu"),this.proxyMenuButton(),this.exportButtonProxy&&t&&t===e.exportingGroup&&(t.focusBorder?e.setFocusToElement(t,this.exportButtonProxy.innerElement):i&&i.keyboardNavigation.tabindexContainer.focus())}proxyMenuButton(){let e=this.chart,t=this.proxyProvider,i=eK(e);(function(e){let t=e.options.exporting,i=eK(e);return!!(t&&!1!==t.enabled&&t.accessibility&&t.accessibility.enabled&&i&&i.element)})(e)&&i&&(this.exportButtonProxy=t.addProxyElement("chartMenu",{click:i},"button",{"aria-label":e.langFormat("accessibility.exporting.menuButtonLabel",{chart:e,chartTitle:ez(e)}),"aria-expanded":!1,title:e.options.lang.contextButtonTitle||null}))}createProxyGroup(){this.chart&&this.proxyProvider&&this.proxyProvider.addGroup("chartMenu")}addAccessibleContextMenuAttribs(){let e=this.chart,t=e.exportDivElements;if(t&&t.length){t.forEach(e=>{e&&("LI"!==e.tagName||e.children&&e.children.length?e.setAttribute("aria-hidden","true"):e.setAttribute("tabindex",-1))});let i=t[0]&&t[0].parentNode;i&&eH(i,{"aria-hidden":void 0,"aria-label":e.langFormat("accessibility.exporting.chartMenuLabel",{chart:e}),role:"list"})}}getKeyboardNavigation(){let e=this.keyCodes,t=this.chart,i=this;return new Q(t,{keyCodeMap:[[[e.left,e.up],function(){return i.onKbdPrevious(this)}],[[e.right,e.down],function(){return i.onKbdNext(this)}],[[e.enter,e.space],function(){return i.onKbdClick(this)}]],validate:function(){return!!t.exporting&&!1!==t.options.exporting.enabled&&!1!==t.options.exporting.accessibility.enabled},init:function(){let e=i.exportButtonProxy,s=i.chart.exportingGroup;e&&s&&t.setFocusToElement(s,e.innerElement)},terminate:function(){t.hideExportMenu()}})}onKbdPrevious(e){let t=this.chart,i=t.options.accessibility,s=e.response,n=t.highlightedExportItemIx||0;for(;n--;)if(t.highlightExportItem(n))return s.success;return i.keyboardNavigation.wrapAround?(t.highlightLastExportItem(),s.success):s.prev}onKbdNext(e){let t=this.chart,i=t.options.accessibility,s=e.response;for(let e=(t.highlightedExportItemIx||0)+1;e{e&&"highcharts-menu-item"===e.className&&e.onmouseout&&e.onmouseout(eG("mouseout"))}),this.highlightedExportItemIx=0,this.exportContextMenu.hideMenu(),this.container.focus())}function s(e){let t=this.exportDivElements&&this.exportDivElements[e],i=this.exportDivElements&&this.exportDivElements[this.highlightedExportItemIx];if(t&&"LI"===t.tagName&&!(t.children&&t.children.length)){let s=!!(this.renderTo.getElementsByTagName("g")[0]||{}).focus;return t.focus&&s&&t.focus(),i&&i.onmouseout&&i.onmouseout(eG("mouseout")),t.onmouseover&&t.onmouseover(eG("mouseover")),this.highlightedExportItemIx=e,!0}return!1}function n(){if(this.exportDivElements){let e=this.exportDivElements.length;for(;e--;)if(this.highlightExportItem(e))return!0}return!1}e.compose=function(e){let r=e.prototype;r.hideExportMenu||(r.hideExportMenu=i,r.highlightExportItem=s,r.highlightLastExportItem=n,r.showExportMenu=t)}}(eU||(eU={}));let eV=eU,{doc:eW,win:eX}=w(),{addEvent:eY,defined:ej,fireEvent:e_}=w(),{getElement:eZ,simulatedEventTarget:e$}=S;class eQ{constructor(e,t){this.currentModuleIx=NaN,this.modules=[],this.init(e,t)}init(e,t){let i=this.eventProvider=new Y;this.chart=e,this.components=t,this.modules=[],this.currentModuleIx=0,this.update(),i.addEvent(this.tabindexContainer,"keydown",e=>this.onKeydown(e)),i.addEvent(this.tabindexContainer,"focus",e=>this.onFocus(e)),["mouseup","touchend"].forEach(e=>i.addEvent(eW,e,e=>this.onMouseUp(e))),["mousedown","touchstart"].forEach(t=>i.addEvent(e.renderTo,t,()=>{this.isClickingChart=!0}))}update(e){let t=this.chart.options.accessibility,i=t&&t.keyboardNavigation,s=this.components;this.updateContainerTabindex(),i&&i.enabled&&e&&e.length?(this.modules=e.reduce(function(e,t){let i=s[t].getKeyboardNavigation();return e.concat(i)},[]),this.updateExitAnchor()):(this.modules=[],this.currentModuleIx=0,this.removeExitAnchor())}updateExitAnchor(){let e=eZ(`highcharts-end-of-chart-marker-${this.chart.index}`);this.removeExitAnchor(),e?(this.makeElementAnExitAnchor(e),this.exitAnchor=e):this.createExitAnchor()}move(e){let t=this.modules&&this.modules[this.currentModuleIx];t&&t.terminate&&t.terminate(e),this.chart.focusElement&&this.chart.focusElement.removeFocusBorder(),this.currentModuleIx+=e;let i=this.modules&&this.modules[this.currentModuleIx];if(i){if(i.validate&&!i.validate())return this.move(e);if(i.init)return i.init(e),!0}return this.currentModuleIx=0,this.exiting=!0,e>0?this.exitAnchor&&this.exitAnchor.focus():this.tabindexContainer.focus(),!1}onFocus(e){let t=this.chart,i=e.relatedTarget&&t.container.contains(e.relatedTarget),s=t.options.accessibility,n=s&&s.keyboardNavigation;if(n&&n.enabled&&!this.exiting&&!this.tabbingInBackwards&&!this.isClickingChart&&!i){let e=this.getFirstValidModuleIx();null!==e&&(this.currentModuleIx=e,this.modules[e].init(1))}this.keyboardReset=!1,this.exiting=!1}onMouseUp(e){if(delete this.isClickingChart,!this.keyboardReset&&e.relatedTarget!==e$){let t=this.chart;if(!e.target||!t.container.contains(e.target)){let e=this.modules&&this.modules[this.currentModuleIx||0];e&&e.terminate&&e.terminate(),this.currentModuleIx=0}t.focusElement&&(t.focusElement.removeFocusBorder(),delete t.focusElement),this.keyboardReset=!0}}onKeydown(e){let t;let i=e||eX.event,s=this.modules&&this.modules.length&&this.modules[this.currentModuleIx],n=i.target;if((!n||"INPUT"!==n.nodeName||n.classList.contains("highcharts-a11y-proxy-element"))&&(this.keyboardReset=!1,this.exiting=!1,s)){let e=s.run(i);e===s.response.success?t=!0:e===s.response.prev?t=this.move(-1):e===s.response.next&&(t=this.move(1)),t&&(i.preventDefault(),i.stopPropagation())}}updateContainerTabindex(){let e;let t=this.chart.options.accessibility,i=t&&t.keyboardNavigation,s=!(i&&!1===i.enabled),n=this.chart,r=n.container;n.renderTo.hasAttribute("tabindex")?(r.removeAttribute("tabindex"),e=n.renderTo):e=r,this.tabindexContainer=e;let o=e.getAttribute("tabindex");s&&!o?e.setAttribute("tabindex","0"):s||n.container.removeAttribute("tabindex")}createExitAnchor(){let e=this.chart,t=this.exitAnchor=eW.createElement("div");e.renderTo.appendChild(t),this.makeElementAnExitAnchor(t)}makeElementAnExitAnchor(e){let t=this.tabindexContainer.getAttribute("tabindex")||0;e.setAttribute("class","highcharts-exit-anchor"),e.setAttribute("tabindex",t),e.setAttribute("aria-hidden",!1),this.addExitAnchorEventsToEl(e)}removeExitAnchor(){if(this.exitAnchor){let e=this.eventProvider.eventRemovers.find(e=>e.element===this.exitAnchor);e&&ej(e.remover)&&this.eventProvider.removeEvent(e.remover),this.exitAnchor.parentNode&&this.exitAnchor.parentNode.removeChild(this.exitAnchor),delete this.exitAnchor}}addExitAnchorEventsToEl(e){let t=this.chart,i=this;this.eventProvider.addEvent(e,"focus",function(e){let s=e||eX.event,n=!(s.relatedTarget&&t.container.contains(s.relatedTarget)||i.exiting);if(t.focusElement&&delete t.focusElement,n){if(i.tabbingInBackwards=!0,i.tabindexContainer.focus(),delete i.tabbingInBackwards,s.preventDefault(),i.modules&&i.modules.length){i.currentModuleIx=i.modules.length-1;let e=i.modules[i.currentModuleIx];e&&e.validate&&!e.validate()?i.move(-1):e&&e.init(-1)}}else i.exiting=!1})}getFirstValidModuleIx(){let e=this.modules.length;for(let t=0;t{e&&e.dismissPopupContent&&e.dismissPopupContent()})}e.compose=function(e){eV.compose(e);let s=e.prototype;return s.dismissPopupContent||(s.dismissPopupContent=t,eY(eW,"keydown",i)),e}}(eQ||(eQ={}));let eJ=eQ;var e0=x(632),e1=/*#__PURE__*/x.n(e0);let{animObject:e2}=w(),{doc:e3}=w(),{addEvent:e5,fireEvent:e4,isNumber:e6,pick:e9,syncTimeout:e8}=w(),{getChartTitle:e7}=K,{stripHTMLTagsFromString:te,addClass:tt,removeClass:ti}=S;function ts(e){let t=e.legend&&e.legend.allItems,i=e.options.legend.accessibility||{},s=e.colorAxis&&e.colorAxis.some(e=>!e.dataClasses||!e.dataClasses.length);return!!(t&&t.length&&!s&&!1!==i.enabled)}function tn(e,t){let i=t.legendItem||{};for(let s of(t.setState(e?"hover":"",!0),["group","label","symbol"])){let t=i[s],n=t&&t.element||t;n&&e4(n,e?"mouseover":"mouseout")}}class tr extends Z{constructor(){super(...arguments),this.highlightedLegendItemIx=NaN,this.proxyGroup=null}init(){let e=this;this.recreateProxies(),this.addEvent(e1(),"afterScroll",function(){this.chart===e.chart&&(e.proxyProvider.updateGroupProxyElementPositions("legend"),e.updateLegendItemProxyVisibility(),e.highlightedLegendItemIx>-1&&this.chart.highlightLegendItem(e.highlightedLegendItemIx))}),this.addEvent(e1(),"afterPositionItem",function(t){this.chart===e.chart&&this.chart.renderer&&e.updateProxyPositionForItem(t.item)}),this.addEvent(e1(),"afterRender",function(){this.chart===e.chart&&this.chart.renderer&&e.recreateProxies()&&e8(()=>e.proxyProvider.updateGroupProxyElementPositions("legend"),e2(e9(this.chart.renderer.globalAnimation,!0)).duration)})}updateLegendItemProxyVisibility(){let e;let t=this.chart,i=t.legend,s=i.allItems||[],n=i.currentPage||1,r=i.clipHeight||0;s.forEach(s=>{if(s.a11yProxyElement){let o=i.pages&&i.pages.length,a=s.a11yProxyElement.element,l=!1;if(e=s.legendItem||{},o){let t=e.pageIx||0;l=(e.y||0)+(e.label?Math.round(e.label.getBBox().height):0)-i.pages[t]>r||t!==n-1}l?t.styledMode?tt(a,"highcharts-a11y-invisible"):a.style.visibility="hidden":(ti(a,"highcharts-a11y-invisible"),a.style.visibility="")}})}onChartRender(){ts(this.chart)||this.removeProxies()}highlightAdjacentLegendPage(e){let t=this.chart,i=t.legend,s=(i.currentPage||1)+e,n=i.pages||[];if(s>0&&s<=n.length){let e=0;for(let n of i.allItems)((n.legendItem||{}).pageIx||0)+1===s&&t.highlightLegendItem(e)&&(this.highlightedLegendItemIx=e),++e}}updateProxyPositionForItem(e){e.a11yProxyElement&&e.a11yProxyElement.refreshPosition()}recreateProxies(){let e=e3.activeElement,t=this.proxyGroup,i=e&&t&&t.contains(e);return this.removeProxies(),!!ts(this.chart)&&(this.addLegendProxyGroup(),this.proxyLegendItems(),this.updateLegendItemProxyVisibility(),this.updateLegendTitle(),i&&this.chart.highlightLegendItem(this.highlightedLegendItemIx),!0)}removeProxies(){this.proxyProvider.removeGroup("legend")}updateLegendTitle(){let e=this.chart,t=te((e.legend&&e.legend.options.title&&e.legend.options.title.text||"").replace(/
    /g," "),e.renderer.forExport),i=e.langFormat("accessibility.legend.legendLabel"+(t?"":"NoTitle"),{chart:e,legendTitle:t,chartTitle:e7(e)});this.proxyProvider.updateGroupAttrs("legend",{"aria-label":i})}addLegendProxyGroup(){let e="all"===this.chart.options.accessibility.landmarkVerbosity?"region":null;this.proxyGroup=this.proxyProvider.addGroup("legend","ul",{"aria-label":"_placeholder_",role:e})}proxyLegendItems(){let e;let t=this;((this.chart.legend||{}).allItems||[]).forEach(i=>{(e=i.legendItem||{}).label&&e.label.element&&t.proxyLegendItem(i)})}proxyLegendItem(e){let t=e.legendItem||{};if(!t.label||!t.group)return;let i=this.chart.langFormat("accessibility.legend.legendItem",{chart:this.chart,itemName:te(e.name,this.chart.renderer.forExport),item:e}),s={tabindex:-1,"aria-pressed":e.visible,"aria-label":i},n=t.group.div?t.label:t.group;e.a11yProxyElement=this.proxyProvider.addProxyElement("legend",{click:t.label,visual:n.element},"button",s)}getKeyboardNavigation(){let e=this.keyCodes,t=this,i=this.chart;return new Q(i,{keyCodeMap:[[[e.left,e.right,e.up,e.down],function(e){return t.onKbdArrowKey(this,e)}],[[e.enter,e.space],function(){return t.onKbdClick(this)}],[[e.pageDown,e.pageUp],function(i){let s=i===e.pageDown?1:-1;return t.highlightAdjacentLegendPage(s),this.response.success}]],validate:function(){return t.shouldHaveLegendNavigation()},init:function(){i.highlightLegendItem(0),t.highlightedLegendItemIx=0},terminate:function(){t.highlightedLegendItemIx=-1,i.legend.allItems.forEach(e=>tn(!1,e))}})}onKbdArrowKey(e,t){let{keyCodes:{left:i,up:s},highlightedLegendItemIx:n,chart:r}=this,o=r.legend.allItems.length,a=r.options.accessibility.keyboardNavigation.wrapAround,l=t===i||t===s?-1:1;return r.highlightLegendItem(n+l)?this.highlightedLegendItemIx+=l:a&&o>1&&(this.highlightedLegendItemIx=l>0?0:o-1,r.highlightLegendItem(this.highlightedLegendItemIx)),e.response.success}onKbdClick(e){let t=this.chart.legend.allItems[this.highlightedLegendItemIx];return t&&t.a11yProxyElement&&t.a11yProxyElement.click(),e.response.success}shouldHaveLegendNavigation(){if(!ts(this.chart))return!1;let e=this.chart,t=(e.options.legend||{}).accessibility||{};return!!(e.legend.display&&t.keyboardNavigation&&t.keyboardNavigation.enabled)}destroy(){this.removeProxies()}}!function(e){function t(e){let t=this.legend.allItems,i=this.accessibility&&this.accessibility.components.legend.highlightedLegendItemIx,s=t[e],n=s?.legendItem||{};if(s){e6(i)&&t[i]&&tn(!1,t[i]),function(e,t){let i=(e.allItems[t].legendItem||{}).pageIx,s=e.currentPage;void 0!==i&&i+1!==s&&e.scroll(1+i-s)}(this.legend,e);let r=n.label,o=s.a11yProxyElement&&s.a11yProxyElement.innerElement;return r&&r.element&&o&&this.setFocusToElement(r,o),tn(!0,s),!0}return!1}function i(e){let t=this.chart.options.accessibility,i=e.item;t.enabled&&i&&i.a11yProxyElement&&i.a11yProxyElement.innerElement.setAttribute("aria-pressed",e.visible?"true":"false")}e.compose=function(e,s){let n=e.prototype;n.highlightLegendItem||(n.highlightLegendItem=t,e5(s,"afterColorizeItem",i))}}(tr||(tr={}));let to=tr;var ta=x(532),tl=/*#__PURE__*/x.n(ta);let{isTouchDevice:th}=w(),{addEvent:tc,merge:td,pick:tu}=w(),tp=[];function tg(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function tm(){let e,t,i;let s=this.legend,n=this.navigator;if(n){e=s&&s.options,t=n.xAxis,i=n.yAxis;let{scrollbarHeight:r,scrollButtonSize:o}=n;this.inverted?(n.left=n.opposite?this.chartWidth-r-n.height:this.spacing[3]+r,n.top=this.plotTop+o):(n.left=tu(t.left,this.plotLeft+o),n.top=n.navigatorOptions.top||this.chartHeight-n.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(e&&"bottom"===e.verticalAlign&&"proximate"!==e.layout&&e.enabled&&!e.floating?s.legendHeight+tu(e.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),t&&i&&(this.inverted?t.options.left=i.options.left=n.left:t.options.top=i.options.top=n.top,t.setAxisSize(),i.setAxisSize())}}function tb(e){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this),tu(e.redraw,!0)&&this.redraw(e.animation))}function tf(){let e=this.options;(e.navigator.enabled||e.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this))}function tx(){let e=this.options,t=e.navigator,i=e.rangeSelector;if((t&&t.enabled||i&&i.enabled)&&(!th&&"x"===this.zooming.type||th&&"x"===this.zooming.pinchType))return!1}function ty(e){let t=e.navigator;if(t&&e.xAxis[0]){let i=e.xAxis[0].getExtremes();t.render(i.min,i.max)}}function tv(e){let t=e.options.navigator||{},i=e.options.scrollbar||{};!this.navigator&&!this.scroller&&(t.enabled||i.enabled)&&(td(!0,this.options.navigator,t),td(!0,this.options.scrollbar,i),delete e.options.navigator,delete e.options.scrollbar)}let tw={compose:function(e,t){if(w().pushUnique(tp,e)){let i=e.prototype;d=t,i.callbacks.push(ty),tc(e,"afterAddSeries",tg),tc(e,"afterSetChartSize",tm),tc(e,"afterUpdate",tb),tc(e,"beforeRender",tf),tc(e,"beforeShowResetZoom",tx),tc(e,"update",tv)}}},{isTouchDevice:tE}=w(),{addEvent:tA,correctFloat:tT,defined:tC,isNumber:tM,pick:tk}=w();function tS(){this.navigatorAxis||(this.navigatorAxis=new tD(this))}function tP(e){let t;let i=this.chart,s=i.options,n=s.navigator,r=this.navigatorAxis,o=i.zooming.pinchType,a=s.rangeSelector,l=i.zooming.type;if(this.isXAxis&&(n?.enabled||a?.enabled)){if("y"===l&&"zoom"===e.trigger)t=!1;else if(("zoom"===e.trigger&&"xy"===l||tE&&"xy"===o)&&this.options.range){let t=r.previousZoom;tC(e.min)?r.previousZoom=[this.min,this.max]:t&&(e.min=t[0],e.max=t[1],r.previousZoom=void 0)}}void 0!==t&&e.preventDefault()}class tD{static compose(e){e.keepProps.includes("navigatorAxis")||(e.keepProps.push("navigatorAxis"),tA(e,"init",tS),tA(e,"setExtremes",tP))}constructor(e){this.axis=e}destroy(){this.axis=void 0}toFixedRange(e,t,i,s){let n=this.axis,r=(n.pointRange||0)/2,o=tk(i,n.translate(e,!0,!n.horiz)),a=tk(s,n.translate(t,!0,!n.horiz));return tC(i)||(o=tT(o+r)),tC(s)||(a=tT(a-r)),tM(o)&&tM(a)||(o=a=void 0),{min:o,max:a}}}var tN=x(620),tB=/*#__PURE__*/x.n(tN),tI=x(512),tF=/*#__PURE__*/x.n(tI);let{parse:tO}=tB(),{seriesTypes:tR}=tF(),tL={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:tO("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===tR.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:tH,isNumber:tz,pick:tq}=w(),tG={rect:function(e,t,i,s,n){return n&&n.r?function(e,t,i,s,n){let r=n?.r||0;return[["M",e+r,t],["L",e+i-r,t],["A",r,r,0,0,1,e+i,t+r],["L",e+i,t+s-r],["A",r,r,0,0,1,e+i-r,t+s],["L",e+r,t+s],["A",r,r,0,0,1,e,t+s-r],["L",e,t+r],["A",r,r,0,0,1,e+r,t],["Z"]]}(e,t,i,s,n):[["M",e,t],["L",e+i,t],["L",e+i,t+s],["L",e,t+s],["Z"]]}},{relativeLength:tK}=w(),tU={"navigator-handle":function(e,t,i,s,n={}){let r=n.width?n.width/2:i,o=tK(n.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=n.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...tG.rect(-r-1,.5,2*r+1,s,{r:o})]}};var tV=x(608),tW=/*#__PURE__*/x.n(tV);let{defined:tX}=w(),{setOptions:tY}=w(),{composed:tj}=w(),{getRendererType:t_}=tW(),{setFixedRange:tZ}={setFixedRange:function(e){let t=this.xAxis[0];tX(t.dataMax)&&tX(t.dataMin)&&e?this.fixedRange=Math.min(e,t.dataMax-t.dataMin):this.fixedRange=e}},{addEvent:t$,extend:tQ,pushUnique:tJ}=w();function t0(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let t1={compose:function(e,t,i){tD.compose(t),tJ(tj,"Navigator")&&(e.prototype.setFixedRange=tZ,tQ(t_().prototype.symbols,tU),t$(i,"afterUpdate",t0),tY({navigator:tL}))}},{composed:t2}=w(),{addEvent:t3,defined:t5,pick:t4,pushUnique:t6}=w();!function(e){let t;function i(e){let t=t4(e.options&&e.options.min,e.min),i=t4(e.options&&e.options.max,e.max);return{axisMin:t,axisMax:i,scrollMin:t5(e.dataMin)?Math.min(t,e.min,e.dataMin,t4(e.threshold,1/0)):t,scrollMax:t5(e.dataMax)?Math.max(i,e.max,e.dataMax,t4(e.threshold,-1/0)):i}}function s(){let e=this.scrollbar,t=e&&!e.options.opposite,i=this.horiz?2:t?3:1;e&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=e.size+(e.options.margin||0))}function n(){let e=this;e.options&&e.options.scrollbar&&e.options.scrollbar.enabled&&(e.options.scrollbar.vertical=!e.horiz,e.options.startOnTick=e.options.endOnTick=!1,e.scrollbar=new t(e.chart.renderer,e.options.scrollbar,e.chart),t3(e.scrollbar,"changed",function(t){let s,n;let{axisMin:r,axisMax:o,scrollMin:a,scrollMax:l}=i(e),h=l-a;if(t5(r)&&t5(o)){if(e.horiz&&!e.reversed||!e.horiz&&e.reversed?(s=a+h*this.to,n=a+h*this.from):(s=a+h*(1-this.from),n=a+h*(1-this.to)),this.shouldUpdateExtremes(t.DOMType)){let i="mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&void 0;e.setExtremes(n,s,!0,i,t)}else this.setRange(this.from,this.to)}}))}function r(){let e,t,s;let{scrollMin:n,scrollMax:r}=i(this),o=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,h=this.options.margin||0;if(o&&l){if(this.horiz)this.opposite||(l[1]+=a),o.position(this.left,this.top+this.height+2+l[1]-(this.opposite?h:0),this.width,this.height),this.opposite||(l[1]+=h),e=1;else{let t;this.opposite&&(l[0]+=a),t=o.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:h):this.opposite?0:h,o.position(t,this.top,this.width,this.height),this.opposite&&(l[0]+=h),e=0}if(l[e]+=o.size+(o.options.margin||0),isNaN(n)||isNaN(r)||!t5(this.min)||!t5(this.max)||this.dataMin===this.dataMax)o.setRange(0,1);else if(this.min===this.max){let e=this.pointRange/(this.dataMax+1);t=e*this.min,s=e*(this.max+1),o.setRange(t,s)}else t=(this.min-n)/(r-n),s=(this.max-n)/(r-n),this.horiz&&!this.reversed||!this.horiz&&this.reversed?o.setRange(t,s):o.setRange(1-s,1-t)}}e.compose=function(e,i){t6(t2,"Axis.Scrollbar")&&(t=i,t3(e,"afterGetOffset",s),t3(e,"afterInit",n),t3(e,"afterRender",r))}}(g||(g={}));let t9=g,t8={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:t7}=w(),{addEvent:ie,correctFloat:it,crisp:ii,defined:is,destroyObjectProperties:ir,fireEvent:io,merge:ia,pick:il,removeEvent:ih}=w();class ic{static compose(e){t9.compose(e,ic)}static swapXY(e,t){return t&&e.forEach(e=>{let t;let i=e.length;for(let s=0;sthis.calculatedWidth?t.minWidth:0;return{chartX:(e.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(e.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let e=this,t=e.chart.scroller;e.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(t){e[t]&&e[t].destroy&&(e[t]=e[t].destroy())}),t&&e===t.scrollbar&&(t.scrollbar=null,ir(t.scrollbarButtons))}drawScrollbarButton(e){let t=this.renderer,i=this.scrollbarButtons,s=this.options,n=this.size,r=t.g().add(this.group);if(i.push(r),s.buttonsEnabled){let o=t.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||o.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),o.attr(o.crisp({x:-.5,y:-.5,width:n,height:n,r:s.buttonBorderRadius},o.strokeWidth()));let a=t.path(ic.swapXY([["M",n/2+(e?-1:1),n/2-3],["L",n/2+(e?-1:1),n/2+3],["L",n/2+(e?2:-2),n/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[e]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(e,t,i){this.scrollbarButtons=[],this.renderer=e,this.userOptions=t,this.options=ia(t8,t7.scrollbar,t),this.options.margin=il(this.options.margin,10),this.chart=i,this.size=il(this.options.size,this.options.height),t.enabled&&(this.render(),this.addEvents())}mouseDownHandler(e){let t=this.chart.pointer?.normalize(e)||e,i=this.cursorToScrollbarPosition(t);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(e){let t;let i=this.chart.pointer?.normalize(e)||e,s=this.options.vertical?"chartY":"chartX",n=this.initPositions||[];this.grabbedCenter&&(!e.touches||0!==e.touches[0][s])&&(t=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(n[0]+t,n[1]+t),this.hasDragged&&io(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:e.type,DOMEvent:e}))}mouseUpHandler(e){this.hasDragged&&io(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:e.type,DOMEvent:e}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(e,t,i,s){let{buttonsEnabled:n,margin:r=0,vertical:o}=this.options,a=this.rendered?"animate":"attr",l=s,h=0;this.group.show(),this.x=e,this.y=t+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=l,this.yOffset=h,o?(this.width=this.yOffset=i=h=this.size,this.xOffset=l=0,this.yOffset=h=n?this.size:0,this.barWidth=s-(n?2*i:0),this.x=e+=r):(this.height=s=this.size,this.xOffset=l=n?this.size:0,this.barWidth=i-(n?2*s:0),this.y=this.y+r),this.group[a]({translateX:e,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:o?0:i-l,translateY:o?s-h:0})}removeEvents(){this._events.forEach(function(e){ih.apply(null,e)}),this._events.length=0}render(){let e=this.renderer,t=this.options,i=this.size,s=this.chart.styledMode,n=e.g("scrollbar").attr({zIndex:t.zIndex}).hide().add();this.group=n,this.track=e.rect().addClass("highcharts-scrollbar-track").attr({r:t.trackBorderRadius||0,height:i,width:i}).add(n),s||this.track.attr({fill:t.trackBackgroundColor,stroke:t.trackBorderColor,"stroke-width":t.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-ii(0,r),y:-ii(0,r)}),this.scrollbarGroup=e.g().add(n),this.scrollbar=e.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:t.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=e.path(ic.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],t.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:t.barBackgroundColor,stroke:t.barBorderColor,"stroke-width":t.barBorderWidth}),this.scrollbarRifles.attr({stroke:t.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-ii(0,this.scrollbarStrokeWidth),-ii(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(e,t){let i,s;let n=this.options,r=n.vertical,o=n.minWidth,a=this.barWidth,l=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!is(a))return;let h=a*Math.min(t,1);i=Math.ceil(a*(e=Math.max(e,0))),this.calculatedWidth=s=it(h-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(e){return il(this.options.liveRedraw,w().svg&&!w().isTouchDevice&&!this.chart.boosted)||"mouseup"===e||"touchend"===e||!is(e)}trackClick(e){let t=this.chart.pointer?.normalize(e)||e,i=this.to-this.from,s=this.y+this.scrollbarTop,n=this.x+this.scrollbarLeft;this.options.vertical&&t.chartY>s||!this.options.vertical&&t.chartX>n?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),io(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:e})}update(e){this.destroy(),this.init(this.chart.renderer,ia(!0,this.options,e),this.chart)}updatePosition(e,t){t>1&&(e=it(1-it(t-e)),t=1),e<0&&(t=it(t-e),e=0),this.from=e,this.to=t}}ic.defaultOptions=t8,t7.scrollbar=ia(!0,ic.defaultOptions,t7.scrollbar);var id=x(540),iu=/*#__PURE__*/x.n(id);let{defaultOptions:ip}=w(),{isTouchDevice:ig}=w(),{prototype:{symbols:im}}=iu(),{addEvent:ib,clamp:ix,correctFloat:iy,defined:iv,destroyObjectProperties:iw,erase:iE,extend:iA,find:iT,fireEvent:iC,isArray:iM,isNumber:ik,merge:iS,pick:iP,removeEvent:iD,splat:iN}=w();function iB(e,...t){let i=[].filter.call(t,ik);if(i.length)return Math[e].apply(0,i)}class iI{static compose(e,t,i){tw.compose(e,iI),t1.compose(e,t,i)}constructor(e){this.isDirty=!1,this.scrollbarHeight=0,this.init(e)}drawHandle(e,t,i,s){let n=this.navigatorOptions.handles.height;this.handles[t][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(e,10)+.5-n)}:{translateX:Math.round(this.left+parseInt(e,10)),translateY:Math.round(this.top+this.height/2-n/2-1)})}drawOutline(e,t,i,s){let n=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),o=r/2,a=r%2/2,l=this.scrollButtonSize,h=this.size,c=this.top,d=this.height,u=c-o,p=c+d,g=this.left,m,b;i?(m=c+t+a,t=c+e+a,b=[["M",g+d,c-l-a],["L",g+d,m],["L",g,m],["M",g,t],["L",g+d,t],["L",g+d,c+h+l]],n&&b.push(["M",g+d,m-o],["L",g+d,t+o])):(g-=l,e+=g+l-a,t+=g+l-a,b=[["M",g,u],["L",e,u],["L",e,p],["M",t,p],["L",t,u],["L",g+h+2*l,u]],n&&b.push(["M",e-o,u],["L",t+o,u])),this.outline[s]({d:b})}drawMasks(e,t,i,s){let n,r,o,a;let l=this.left,h=this.top,c=this.height;i?(o=[l,l,l],a=[h,h+e,h+t],r=[c,c,c],n=[e,t-e,this.size-t]):(o=[l,l+e,l+t],a=[h,h,h],r=[e,t-e,this.size-t],n=[c,c,c]),this.shades.forEach((e,t)=>{e[s]({x:o[t],y:a[t],width:r[t],height:n[t]})})}renderElements(){let e=this,t=e.navigatorOptions,i=t.maskInside,s=e.chart,n=s.inverted,r=s.renderer,o={cursor:n?"ns-resize":"ew-resize"},a=e.navigatorGroup??(e.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,n)=>{let l=e.shades[n]??(e.shades[n]=r.rect().addClass("highcharts-navigator-mask"+(1===n?"-inside":"-outside")).add(a));s.styledMode||(l.attr({fill:i?t.maskFill:"rgba(0,0,0,0)"}),1===n&&l.css(o))}),e.outline||(e.outline=r.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||e.outline.attr({"stroke-width":t.outlineWidth,stroke:t.outlineColor}),t.handles?.enabled){let i=t.handles,{height:n,width:l}=i;[0,1].forEach(t=>{let h=i.symbols[t];if(e.handles[t]&&e.handles[t].symbolUrl===h){if(!e.handles[t].isImg&&e.handles[t].symbolName!==h){let i=im[h].call(im,-l/2-1,0,l,n);e.handles[t].attr({d:i}),e.handles[t].symbolName=h}}else e.handles[t]?.destroy(),e.handles[t]=r.symbol(h,-l/2-1,0,l,n,i),e.handles[t].attr({zIndex:7-t}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][t]).add(a),e.addMouseEvents();s.inverted&&e.handles[t].attr({rotation:90,rotationOriginX:Math.floor(-l/2),rotationOriginY:(n+l)/2}),s.styledMode||e.handles[t].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-l/2-1,y:0}).css(o)})}}update(e,t=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(iS(!0,i.options.navigator,e),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),iv(e.enabled)||s)return this.destroy(),this.navigatorEnabled=e.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===e.adaptToUpdatedData&&this.baseSeries.forEach(e=>{iD(e,"updatedData",this.updatedDataHandler)},this),e.adaptToUpdatedData&&this.baseSeries.forEach(e=>{e.eventsToUnbind.push(ib(e,"updatedData",this.updatedDataHandler))},this),(e.series||e.baseSeries)&&this.setBaseSeries(void 0,!1),e.height||e.xAxis||e.yAxis)){this.height=e.height??this.height;let t=this.getXAxisOffsets();this.xAxis.update({...e.xAxis,offsets:t,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...e.yAxis,[i.inverted?"width":"height"]:this.height},!1)}t&&i.redraw()}render(e,t,i,s){let n=this.chart,r=this.xAxis,o=r.pointRange||0,a=r.navigatorAxis.fake?n.xAxis[0]:r,l=this.navigatorEnabled,h=this.rendered,c=n.inverted,d=n.xAxis[0].minRange,u=n.xAxis[0].options.maxRange,p=this.scrollButtonSize,g,m,b,f=this.scrollbarHeight,x,y;if(this.hasDragged&&!iv(i))return;if(this.isDirty&&this.renderElements(),e=iy(e-o/2),t=iy(t+o/2),!ik(e)||!ik(t)){if(!h)return;i=0,s=iP(r.width,a.width)}this.left=iP(r.left,n.plotLeft+p+(c?n.plotWidth:0));let v=this.size=x=iP(r.len,(c?n.plotHeight:n.plotWidth)-2*p);g=c?f:x+2*p,i=iP(i,r.toPixels(e,!0)),s=iP(s,r.toPixels(t,!0)),ik(i)&&Math.abs(i)!==1/0||(i=0,s=g);let w=r.toValue(i,!0),E=r.toValue(s,!0),A=Math.abs(iy(E-w));Au&&(this.grabbedLeft?i=r.toPixels(E-u-o,!0):this.grabbedRight&&(s=r.toPixels(w+u+o,!0))),this.zoomedMax=ix(Math.max(i,s),0,v),this.zoomedMin=ix(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let T=Math.round(this.zoomedMin);l&&(this.navigatorGroup.attr({visibility:"inherit"}),y=h&&!this.hasDragged?"animate":"attr",this.drawMasks(T,v,c,y),this.drawOutline(T,v,c,y),this.navigatorOptions.handles.enabled&&(this.drawHandle(T,0,c,y),this.drawHandle(v,1,c,y))),this.scrollbar&&(c?(b=this.top-p,m=this.left-f+(l||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),f=x+2*p):(b=this.top+(l?this.height:-f),m=this.left-p),this.scrollbar.position(m,b,g,f),this.scrollbar.setRange(this.zoomedMin/(x||1),this.zoomedMax/(x||1))),this.rendered=!0,this.isDirty=!1,iC(this,"afterRender")}addMouseEvents(){let e=this,t=e.chart,i=t.container,s=[],n,r;e.mouseMoveHandler=n=function(t){e.onMouseMove(t)},e.mouseUpHandler=r=function(t){e.onMouseUp(t)},(s=e.getPartsEvents("mousedown")).push(ib(t.renderTo,"mousemove",n),ib(i.ownerDocument,"mouseup",r),ib(t.renderTo,"touchmove",n),ib(i.ownerDocument,"touchend",r)),s.concat(e.getPartsEvents("touchstart")),e.eventsToUnbind=s,e.series&&e.series[0]&&s.push(ib(e.series[0].xAxis,"foundExtremes",function(){t.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(e){let t=this,i=[];return["shades","handles"].forEach(function(s){t[s].forEach(function(n,r){i.push(ib(n.element,e,function(e){t[s+"Mousedown"](e,r)}))})}),i}shadesMousedown(e,t){e=this.chart.pointer?.normalize(e)||e;let i=this.chart,s=this.xAxis,n=this.zoomedMin,r=this.size,o=this.range,a=this.left,l=e.chartX,h,c,d,u;i.inverted&&(l=e.chartY,a=this.top),1===t?(this.grabbedCenter=l,this.fixedWidth=o,this.dragOffset=l-n):(u=l-a-o/2,0===t?u=Math.max(0,u):2===t&&u+o>=r&&(u=r-o,this.reversedExtremes?(u-=o,c=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),u!==n&&(this.fixedWidth=o,iv((d=s.navigatorAxis.toFixedRange(u,u+o,c,h)).min)&&iC(this,"setRange",{min:Math.min(d.min,d.max),max:Math.max(d.min,d.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(e,t){e=this.chart.pointer?.normalize(e)||e;let i=this.chart,s=i.xAxis[0],n=this.reversedExtremes;0===t?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=n?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=n?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(e){let t=this,i=t.chart,s=t.navigatorSize,n=t.range,r=t.dragOffset,o=i.inverted,a=t.left,l;(!e.touches||0!==e.touches[0].pageX)&&(l=(e=i.pointer?.normalize(e)||e).chartX,o&&(a=t.top,l=e.chartY),t.grabbedLeft?(t.hasDragged=!0,t.render(0,0,l-a,t.otherHandlePos)):t.grabbedRight?(t.hasDragged=!0,t.render(0,0,t.otherHandlePos,l-a)):t.grabbedCenter&&(t.hasDragged=!0,ls+r-n&&(l=s+r-n),t.render(0,0,l-r,l-r+n)),t.hasDragged&&t.scrollbar&&iP(t.scrollbar.options.liveRedraw,!ig&&!this.chart.boosted)&&(e.DOMType=e.type,setTimeout(function(){t.onMouseUp(e)},0)))}onMouseUp(e){let t,i,s,n,r,o;let a=this.chart,l=this.xAxis,h=this.scrollbar,c=e.DOMEvent||e,d=a.inverted,u=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!h||!h.hasDragged)||"scrollbar"===e.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?n=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(n=this.reversedExtremes?s.dataMax:s.dataMin),iv((o=l.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,n,r)).min)&&iC(this,"setRange",{min:Math.min(o.min,o.max),max:Math.max(o.min,o.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:c}})),"mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&ik(this.zoomedMin)&&ik(this.zoomedMax)&&(i=Math.round(this.zoomedMin),t=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,t,d,u),this.outline&&this.drawOutline(i,t,d,u),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,d,u),this.drawHandle(t,1,d,u)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(e){e()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let e=this.baseSeries||[];this.navigatorEnabled&&e[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&e.forEach(function(e){iD(e,"updatedData",this.updatedDataHandler)},this),e[0].xAxis&&iD(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(e){let t=e.options,i=t.navigator||{},s=i.enabled,n=t.scrollbar||{},r=n.enabled,o=s&&i.height||0,a=r&&n.height||0,l=n.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=e,this.setBaseSeries(),this.height=o,this.scrollbarHeight=a,this.scrollButtonSize=l,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=n,this.setOpposite();let h=this,c=h.baseSeries,d=e.xAxis.length,u=e.yAxis.length,p=c&&c[0]&&c[0].xAxis||e.xAxis[0]||{options:{}};if(e.isDirtyBox=!0,h.navigatorEnabled){let t=this.getXAxisOffsets();h.xAxis=new(tl())(e,iS({breaks:p.options.breaks,ordinal:p.options.ordinal,overscroll:p.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:d,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:p.options.ordinal?0:p.options.minPadding,maxPadding:p.options.ordinal?0:p.options.maxPadding,zoomEnabled:!1},e.inverted?{offsets:t,width:o}:{offsets:t,height:o}),"xAxis"),h.yAxis=new(tl())(e,iS(i.yAxis,{alignTicks:!1,offset:0,index:u,isInternal:!0,reversed:iP(i.yAxis&&i.yAxis.reversed,e.yAxis[0]&&e.yAxis[0].reversed,!1),zoomEnabled:!1},e.inverted?{width:o}:{height:o}),"yAxis"),c||i.series.data?h.updateNavigatorSeries(!1):0===e.series.length&&(h.unbindRedraw=ib(e,"beforeRedraw",function(){e.series.length>0&&!h.series&&(h.setBaseSeries(),h.unbindRedraw())})),h.reversedExtremes=e.inverted&&!h.xAxis.reversed||!e.inverted&&h.xAxis.reversed,h.renderElements(),h.addMouseEvents()}else h.xAxis={chart:e,navigatorAxis:{fake:!0},translate:function(t,i){let s=e.xAxis[0],n=s.getExtremes(),r=s.len-2*l,o=iB("min",s.options.min,n.dataMin),a=iB("max",s.options.max,n.dataMax)-o;return i?t*a/r+o:r*(t-o)/a},toPixels:function(e){return this.translate(e)},toValue:function(e){return this.translate(e,!0)}},h.xAxis.navigatorAxis.axis=h.xAxis,h.xAxis.navigatorAxis.toFixedRange=tD.prototype.toFixedRange.bind(h.xAxis.navigatorAxis);if(e.options.scrollbar.enabled){let t=iS(e.options.scrollbar,{vertical:e.inverted});!ik(t.margin)&&h.navigatorEnabled&&(t.margin=e.inverted?-3:3),e.scrollbar=h.scrollbar=new ic(e.renderer,t,e),ib(h.scrollbar,"changed",function(e){let t=h.size,i=t*this.to,s=t*this.from;h.hasDragged=h.scrollbar.hasDragged,h.render(0,0,s,i),this.shouldUpdateExtremes(e.DOMType)&&setTimeout(function(){h.onMouseUp(e)})})}h.addBaseSeriesEvents(),h.addChartEvents()}setOpposite(){let e=this.navigatorOptions,t=this.navigatorEnabled,i=this.chart;this.opposite=iP(e.opposite,!!(!t&&i.inverted))}getUnionExtremes(e){let t;let i=this.chart.xAxis[0],s=this.chart.time,n=this.xAxis,r=n.options,o=i.options;return e&&null===i.dataMin||(t={dataMin:iP(s.parse(r?.min),iB("min",s.parse(o.min),i.dataMin,n.dataMin,n.min)),dataMax:iP(s.parse(r?.max),iB("max",s.parse(o.max),i.dataMax,n.dataMax,n.max))}),t}setBaseSeries(e,t){let i=this.chart,s=this.baseSeries=[];e=e||i.options&&i.options.navigator.baseSeries||(i.series.length?iT(i.series,e=>!e.options.isInternal).index:0),(i.series||[]).forEach((t,i)=>{!t.options.isInternal&&(t.options.showInNavigator||(i===e||t.options.id===e)&&!1!==t.options.showInNavigator)&&s.push(t)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,t)}updateNavigatorSeries(e,t){let i=this,s=i.chart,n=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},o=i.series=(i.series||[]).filter(e=>{let t=e.baseSeries;return!(0>n.indexOf(t))||(t&&(iD(t,"updatedData",i.updatedDataHandler),delete t.navigatorSeries),e.chart&&e.destroy(),!1)}),a,l,h=i.navigatorOptions.series,c;n&&n.length&&n.forEach(e=>{let d=e.navigatorSeries,u=iA({color:e.color,visible:e.visible},iM(h)?ip.navigator.series:h);if(d&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+n.length,c=(a=e.options||{}).navigatorOptions||{},u.dataLabels=iN(u.dataLabels),(l=iS(a,r,u,c)).pointRange=iP(u.pointRange,c.pointRange,ip.plotOptions[l.type||"line"].pointRange);let p=c.data||u.data;i.hasNavigatorData=i.hasNavigatorData||!!p,l.data=p||a.data?.slice(0),d&&d.options?d.update(l,t):(e.navigatorSeries=s.initSeries(l),s.setSortedData(),e.navigatorSeries.baseSeries=e,o.push(e.navigatorSeries))}),(h.data&&!(n&&n.length)||iM(h))&&(i.hasNavigatorData=!1,(h=iN(h)).forEach((e,t)=>{r.name="Navigator "+(o.length+1),(l=iS(ip.navigator.series,{color:s.series[t]&&!s.series[t].options.isInternal&&s.series[t].color||s.options.colors[t]||s.options.colors[0]},r,e)).data=e.data,l.data&&(i.hasNavigatorData=!0,o.push(s.initSeries(l)))})),e&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let e=this,t=e.baseSeries||[];t[0]&&t[0].xAxis&&t[0].eventsToUnbind.push(ib(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),t.forEach(i=>{i.eventsToUnbind.push(ib(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(ib(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(ib(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(ib(i,"remove",function(){t&&iE(t,i),this.navigatorSeries&&e.series&&(iE(e.series,this.navigatorSeries),iv(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(e){return this.baseSeries.reduce(function(e,t){return Math.min(e,t.getColumn("x")[0]??e)},e)}modifyNavigatorAxisExtremes(){let e=this.xAxis;if(void 0!==e.getExtremes){let t=this.getUnionExtremes(!0);t&&(t.dataMin!==e.min||t.dataMax!==e.max)&&(e.min=t.dataMin,e.max=t.dataMax)}}modifyBaseAxisExtremes(){let e,t;let i=this.chart.navigator,s=this.getExtremes(),n=s.min,r=s.max,o=s.dataMin,a=s.dataMax,l=r-n,h=i.stickToMin,c=i.stickToMax,d=iP(this.ordinal?.convertOverscroll(this.options.overscroll),0),u=i.series&&i.series[0],p=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(h&&(e=(t=o)+l),c&&(e=a+d,h||(t=Math.max(o,e-l,i.getBaseSeriesMin(u&&u.xData?u.xData[0]:-Number.MAX_VALUE)))),p&&(h||c)&&ik(t)&&(this.min=this.userMin=t,this.max=this.userMax=e)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let e=this.chart.navigator,t=this.navigatorSeries,i=e.reversedExtremes?0===Math.round(e.zoomedMin):Math.round(e.zoomedMax)>=Math.round(e.size);e.stickToMax=iP(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),e.stickToMin=e.shouldStickToMin(this,e),t&&!e.hasNavigatorData&&(t.options.pointStart=this.getColumn("x")[0],t.setData(this.options.data,!1,null,!1))}shouldStickToMin(e,t){let i=t.getBaseSeriesMin(e.getColumn("x")[0]),s=e.xAxis,n=s.max,r=s.min,o=s.options.range;return!!(ik(n)&&ik(r))&&(o&&n-i>0?n-i{e.destroy&&e.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(e=>{this[e]&&this[e].destroy&&this[e].destroy(),this[e]=null}),[this.handles].forEach(e=>{iw(e)}),this.navigatorEnabled=!1}}let{animObject:iF}=w(),{format:iO}=D(),{clamp:iR,pick:iL,syncTimeout:iH}=w(),{getFakeMouseEvent:iz}=S,{getAxisRangeDescription:iq,fireEventOnWrappedOrUnwrappedElement:iG}=K,iK=class extends Z{init(){let e=this.chart,t=this;this.announcer=new ep(e,"polite"),this.addEvent(iI,"afterRender",function(){this.chart===t.chart&&this.chart.renderer&&iH(()=>{t.proxyProvider.updateGroupProxyElementPositions("navigator"),t.updateHandleValues()},iF(iL(this.chart.renderer.globalAnimation,!0)).duration)})}onChartUpdate(){let e=this.chart,t=e.options,i=t.navigator;if(i.enabled&&i.accessibility?.enabled){let i=t.accessibility.landmarkVerbosity,s=t.lang.accessibility?.navigator.groupLabel;this.proxyProvider.removeGroup("navigator"),this.proxyProvider.addGroup("navigator","div",{role:"all"===i?"region":"group","aria-label":iO(s,{chart:e},e)});let n=t.lang.accessibility?.navigator.handleLabel;[0,1].forEach(t=>{let i=this.getHandleByIx(t);if(i){let s=this.proxyProvider.addProxyElement("navigator",{click:i},"input",{type:"range","aria-label":iO(n,{handleIx:t,chart:e},e)});this[t?"maxHandleProxy":"minHandleProxy"]=s.innerElement,s.innerElement.style.pointerEvents="none",s.innerElement.oninput=()=>this.updateNavigator()}}),this.updateHandleValues()}else this.proxyProvider.removeGroup("navigator")}getNavigatorHandleNavigation(e){let t=this,i=this.chart,s=e?this.maxHandleProxy:this.minHandleProxy,n=this.keyCodes;return new Q(i,{keyCodeMap:[[[n.left,n.right,n.up,n.down],function(r){if(s){let o=r===n.left||r===n.up?-1:1;s.value=""+iR(parseFloat(s.value)+o,0,100),t.updateNavigator(()=>{let n=t.getHandleByIx(e);n&&i.setFocusToElement(n,s)})}return this.response.success}]],init:()=>{i.setFocusToElement(this.getHandleByIx(e),s)},validate:()=>!!(this.getHandleByIx(e)&&s&&i.options.navigator.accessibility?.enabled)})}getKeyboardNavigation(){return[this.getNavigatorHandleNavigation(0),this.getNavigatorHandleNavigation(1)]}destroy(){this.updateNavigatorThrottleTimer&&clearTimeout(this.updateNavigatorThrottleTimer),this.proxyProvider.removeGroup("navigator"),this.announcer&&this.announcer.destroy()}updateHandleValues(){let e=this.chart.navigator;if(e&&this.minHandleProxy&&this.maxHandleProxy){let t=e.size;this.minHandleProxy.value=""+Math.round(e.zoomedMin/t*100),this.maxHandleProxy.value=""+Math.round(e.zoomedMax/t*100)}}getHandleByIx(e){let t=this.chart.navigator;return t&&t.handles&&t.handles[e]}updateNavigator(e){this.updateNavigatorThrottleTimer&&clearTimeout(this.updateNavigatorThrottleTimer),this.updateNavigatorThrottleTimer=setTimeout((e=>{let t=this.chart,{navigator:i,pointer:s}=t;if(i&&s&&this.minHandleProxy&&this.maxHandleProxy){let n=s.getChartPosition(),r=parseFloat(this.minHandleProxy.value)/100*i.size,o=parseFloat(this.maxHandleProxy.value)/100*i.size;[[0,"mousedown",i.zoomedMin],[0,"mousemove",r],[0,"mouseup",r],[1,"mousedown",i.zoomedMax],[1,"mousemove",o],[1,"mouseup",o]].forEach(([e,t,s])=>{let r=this.getHandleByIx(e)?.element;r&&iG(r,iz(t,{x:n.left+i.left+s,y:n.top+i.top},r))}),e&&e();let a=t.options.lang.accessibility?.navigator.changeAnnouncement,l=iq(t.xAxis[0]);this.announcer.announce(iO(a,{axisRangeDescription:l,chart:t},t))}}).bind(this,e),20)}},{getPointAnnotationTexts:iU}=ev,{getAxisDescription:iV,getSeriesFirstPointElement:iW,getSeriesA11yElement:iX,unhideChartElementFromAT:iY}=K,{format:ij,numberFormat:i_}=D(),{reverseChildNodes:iZ,stripHTMLTagsFromString:i$}=S,{find:iQ,isNumber:iJ,isString:i0,pick:i1,defined:i2}=w();function i3(e){let t=e.chart.options.accessibility.series.pointDescriptionEnabledThreshold;return!!(!1!==t&&e.points&&e.points.length>=+t)}function i5(e,t){let i=e.series,s=i.chart,n=s.options.accessibility.point||{},r=i.options.accessibility&&i.options.accessibility.point||{},o=i.tooltipOptions||{},a=s.options.lang;return iJ(t)?i_(t,r.valueDecimals||n.valueDecimals||o.valueDecimals||-1,a.decimalPoint,a.accessibility.thousandsSep||a.thousandsSep):t}function i4(e,t){let i=e[t];return e.chart.langFormat("accessibility.series."+t+"Description",{name:iV(i),series:e})}function i6(e){let t=e.series,i=t.chart.series.length>1||t.options.name,s=function(e){let t=e.series,i=t.chart,s=t.options.accessibility,n=s&&s.point&&s.point.valueDescriptionFormat||i.options.accessibility.point.valueDescriptionFormat,r=i1(t.xAxis&&t.xAxis.options.accessibility&&t.xAxis.options.accessibility.enabled,!i.angular&&"flowmap"!==t.type),o=r?function(e){let t=function(e){let t=e.series,i=t.chart,s=t.options.accessibility&&t.options.accessibility.point||{},n=i.options.accessibility.point||{},r=t.xAxis&&t.xAxis.dateTime;if(r){let t=r.getXDateFormat(e.x||0,i.options.tooltip.dateTimeLabelFormats),o=s.dateFormatter&&s.dateFormatter(e)||n.dateFormatter&&n.dateFormatter(e)||s.dateFormat||n.dateFormat||t;return i.time.dateFormat(o,e.x||0,void 0)}}(e),i=(e.series.xAxis||{}).categories&&i2(e.category)&&(""+e.category).replace("
    "," "),s=i2(e.id)&&0>(""+e.id).indexOf("highcharts-"),n="x, "+e.x;return e.name||t||i||(s?e.id:n)}(e):"";return ij(n,{point:e,index:i2(e.index)?e.index+1:"",xDescription:o,value:function(e){let t=e.series,i=t.chart.options.accessibility.point||{},s=t.chart.options.accessibility&&t.chart.options.accessibility.point||{},n=t.tooltipOptions||{},r=s.valuePrefix||i.valuePrefix||n.valuePrefix||"",o=s.valueSuffix||i.valueSuffix||n.valueSuffix||"",a=void 0!==e.value?"value":"y",l=i5(e,e[a]);return e.isNull?t.chart.langFormat("accessibility.series.nullPointValue",{point:e}):t.pointArrayMap?function(e,t,i){let s=t||"",n=i||"",r=function(t){let i=i5(e,i1(e[t],e.options[t]));return void 0!==i?t+": "+s+i+n:i};return e.series.pointArrayMap.reduce(function(e,t){let i=r(t);return i?e+(e.length?", ":"")+i:e},"")}(e,r,o):r+l+o}(e),separator:r?", ":""},i)}(e),n=e.options&&e.options.accessibility&&e.options.accessibility.description,r=i?" "+t.name+".":"",o=function(e){let t=e.series.chart,i=iU(e);return i.length?t.langFormat("accessibility.series.pointAnnotationsDescription",{point:e,annotations:i}):""}(e);return e.accessibility=e.accessibility||{},e.accessibility.valueDescription=s,s+(n?" "+n:"")+r+(o?" "+o:"")}function i9(e){let t=e.chart,i=t.types||[],s=function(e){let t=(e.options.accessibility||{}).description;return t&&e.chart.langFormat("accessibility.series.description",{description:t,series:e})||""}(e),n=function(i){return t[i]&&t[i].length>1&&e[i]},r=e.index+1,o=i4(e,"xAxis"),a=i4(e,"yAxis"),l={seriesNumber:r,series:e,chart:t},h=i.length>1?"Combination":"",c=t.langFormat("accessibility.series.summary."+e.type+h,l)||t.langFormat("accessibility.series.summary.default"+h,l),d=(n("yAxis")?" "+a+".":"")+(n("xAxis")?" "+o+".":"");return ij(i1(e.options.accessibility&&e.options.accessibility.descriptionFormat,t.options.accessibility.series.descriptionFormat,""),{seriesDescription:c,authorDescription:s?" "+s:"",axisDescription:d,series:e,chart:t,seriesNumber:r},void 0)}let i8={defaultPointDescriptionFormatter:i6,defaultSeriesDescriptionFormatter:i9,describeSeries:function(e){let t=e.chart,i=iW(e),s=iX(e),n=t.is3d&&t.is3d();s&&(s.lastChild!==i||n||iZ(s),function(e){let t=function(e){let t=e.options.accessibility||{};return!i3(e)&&!t.exposeAsGroupOnly}(e),i=function(e){let t=e.chart.options.accessibility.keyboardNavigation.seriesNavigation;return!!(e.points&&(e.points.length<+t.pointNavigationEnabledThreshold||!1===t.pointNavigationEnabledThreshold))}(e),s=e.chart.options.accessibility.point.describeNull;(t||i)&&e.points.forEach(i=>{let n=i.graphic&&i.graphic.element||function(e){let t=e.series,i=t&&t.chart,s=t&&t.is("sunburst"),n=e.isNull,r=i&&i.options.accessibility.point.describeNull;return n&&!s&&r}(i)&&function(e){let t=e.series,i=function(e){let t=e.index;return e.series&&e.series.data&&i2(t)&&iQ(e.series.data,function(e){return!!(e&&void 0!==e.index&&e.index>t&&e.graphic&&e.graphic.element)})||null}(e),s=i&&i.graphic,n=s?s.parentGroup:t.graph||t.group,r=i?{x:i1(e.plotX,i.plotX,0),y:i1(e.plotY,i.plotY,0)}:{x:i1(e.plotX,0),y:i1(e.plotY,0)},o=function(e,t){let i=e.series.chart.renderer.rect(t.x,t.y,1,1);return i.attr({class:"highcharts-a11y-mock-point",fill:"none",opacity:0,"fill-opacity":0,"stroke-opacity":0}),i}(e,r);if(n&&n.element)return e.graphic=o,e.hasMockGraphic=!0,o.add(n),n.element.insertBefore(o.element,s?s.element:null),o.element}(i),r=i.options&&i.options.accessibility&&!1===i.options.accessibility.enabled;if(n){if(i.isNull&&!s){n.setAttribute("aria-hidden",!0);return}n.setAttribute("tabindex","-1"),e.chart.styledMode||(n.style.outline="none"),t&&!r?function(e,t){let i=e.series,s=i.options.accessibility?.point||{},n=i.chart.options.accessibility.point||{},r=i$(i0(s.descriptionFormat)&&ij(s.descriptionFormat,e,i.chart)||s.descriptionFormatter?.(e)||i0(n.descriptionFormat)&&ij(n.descriptionFormat,e,i.chart)||n.descriptionFormatter?.(e)||i6(e),i.chart.renderer.forExport);t.setAttribute("role","img"),t.setAttribute("aria-label",r)}(i,n):n.setAttribute("aria-hidden",!0)}})}(e),iY(t,s),function(e){let t=e.chart,i=t.options.chart,s=i.options3d&&i.options3d.enabled,n=t.series.length>1,r=t.options.accessibility.series.describeSingleSeries,o=(e.options.accessibility||{}).exposeAsGroupOnly;return!(s&&n)&&(n||r||o||i3(e))}(e)?function(e,t){let i=e.options.accessibility||{},s=e.chart.options.accessibility,n=s.landmarkVerbosity;i.exposeAsGroupOnly?t.setAttribute("role","img"):"all"===n?t.setAttribute("role","region"):t.setAttribute("role","group"),t.setAttribute("tabindex","-1"),e.chart.styledMode||(t.style.outline="none"),t.setAttribute("aria-label",i$(s.series.descriptionFormatter&&s.series.descriptionFormatter(e)||i9(e),e.chart.renderer.forExport))}(e,s):s.removeAttribute("aria-label"))}},{composed:i7}=w(),{addEvent:se,defined:st,pushUnique:si}=w(),{getChartTitle:ss}=K,{defaultPointDescriptionFormatter:sn,defaultSeriesDescriptionFormatter:sr}=i8;function so(e){return!!e.options.accessibility.announceNewData.enabled}class sa{constructor(e){this.dirty={allSeries:{}},this.lastAnnouncementTime=0,this.chart=e}init(){let e=this.chart,t=e.options.accessibility.announceNewData.interruptUser?"assertive":"polite";this.lastAnnouncementTime=0,this.dirty={allSeries:{}},this.eventProvider=new Y,this.announcer=new ep(e,t),this.addEventListeners()}destroy(){this.eventProvider.removeAddedEvents(),this.announcer.destroy()}addEventListeners(){let e=this,t=this.chart,i=this.eventProvider;i.addEvent(t,"afterApplyDrilldown",function(){e.lastAnnouncementTime=0}),i.addEvent(t,"afterAddSeries",function(t){e.onSeriesAdded(t.series)}),i.addEvent(t,"redraw",function(){e.announceDirtyData()})}onSeriesAdded(e){so(this.chart)&&(this.dirty.hasDirty=!0,this.dirty.allSeries[e.name+e.index]=e,this.dirty.newSeries=st(this.dirty.newSeries)?void 0:e)}announceDirtyData(){let e=this.chart,t=this;if(e.options.accessibility.announceNewData&&this.dirty.hasDirty){let e=this.dirty.newPoint;e&&(e=function(e){let t=e.series.data.filter(t=>e.x===t.x&&e.y===t.y);return 1===t.length?t[0]:e}(e)),this.queueAnnouncement(Object.keys(this.dirty.allSeries).map(e=>t.dirty.allSeries[e]),this.dirty.newSeries,e),this.dirty={allSeries:{}}}}queueAnnouncement(e,t,i){let s=this.chart.options.accessibility.announceNewData;if(s.enabled){let n=+new Date,r=n-this.lastAnnouncementTime,o=Math.max(0,s.minAnnounceInterval-r),a=function(e,t){let i=(e||[]).concat(t||[]).reduce((e,t)=>(e[t.name+t.index]=t,e),{});return Object.keys(i).map(e=>i[e])}(this.queuedAnnouncement&&this.queuedAnnouncement.series,e),l=this.buildAnnouncementMessage(a,t,i);l&&(this.queuedAnnouncement&&clearTimeout(this.queuedAnnouncementTimer),this.queuedAnnouncement={time:n,message:l,series:a},this.queuedAnnouncementTimer=setTimeout(()=>{this&&this.announcer&&(this.lastAnnouncementTime=+new Date,this.announcer.announce(this.queuedAnnouncement.message),delete this.queuedAnnouncement,delete this.queuedAnnouncementTimer)},o))}}buildAnnouncementMessage(e,t,i){let s=this.chart,n=s.options.accessibility.announceNewData;if(n.announcementFormatter){let s=n.announcementFormatter(e,t,i);if(!1!==s)return s.length?s:null}let r=w().charts&&w().charts.length>1?"Multiple":"Single",o=t?"newSeriesAnnounce"+r:i?"newPointAnnounce"+r:"newDataAnnounce",a=ss(s);return s.langFormat("accessibility.announceNewData."+o,{chartTitle:a,seriesDesc:t?sr(t):null,pointDesc:i?sn(i):null,point:i,series:t})}}!function(e){function t(e){let t=this.chart,i=t.accessibility?.components.series.newDataAnnouncer;i&&i.chart===t&&so(t)&&(i.dirty.newPoint=st(i.dirty.newPoint)?void 0:e.point)}function i(){let e=this.chart,t=e.accessibility?.components.series.newDataAnnouncer;t&&t.chart===e&&so(e)&&(t.dirty.hasDirty=!0,t.dirty.allSeries[this.name+this.index]=this)}e.compose=function(e){si(i7,"A11y.NDA")&&(se(e,"addPoint",t),se(e,"updatedData",i))}}(sa||(sa={}));let sl=sa,{doc:sh}=w(),{attr:sc,css:sd,merge:su}=w(),{fireEventOnWrappedOrUnwrappedElement:sp}=K,{cloneMouseEvent:sg,cloneTouchEvent:sm,getFakeMouseEvent:sb,removeElement:sf}=S,sx=class{constructor(e,t,i="button",s,n){this.chart=e,this.target=t,this.eventProvider=new Y;let r=this.innerElement=sh.createElement(i),o=this.element=s?sh.createElement(s):r;e.styledMode||this.hideElementVisually(r),s&&("li"!==s||e.styledMode||(o.style.listStyle="none"),o.appendChild(r),this.element=o),this.updateTarget(t,n)}click(){let e=this.getTargetPosition();e.x+=e.width/2,e.y+=e.height/2;let t=sb("click",e);sp(this.target.click,t)}updateTarget(e,t){this.target=e,this.updateCSSClassName();let i=t||{};Object.keys(i).forEach(e=>{null===i[e]&&delete i[e]});let s=this.getTargetAttr(e.click,"aria-label");sc(this.innerElement,su(s?{"aria-label":s}:{},i)),this.eventProvider.removeAddedEvents(),this.addProxyEventsToElement(this.innerElement,e.click),this.refreshPosition()}refreshPosition(){let e=this.getTargetPosition();sd(this.innerElement,{width:(e.width||1)+"px",height:(e.height||1)+"px",left:(Math.round(e.x)||0)+"px",top:(Math.round(e.y)||0)+"px"})}remove(){this.eventProvider.removeAddedEvents(),sf(this.element)}updateCSSClassName(){let e=e=>e.indexOf("highcharts-no-tooltip")>-1,t=this.chart.legend,i=t.group&&t.group.div,s=e(i&&i.className||""),n=e(this.getTargetAttr(this.target.click,"class")||"");this.innerElement.className=s||n?"highcharts-a11y-proxy-element highcharts-no-tooltip":"highcharts-a11y-proxy-element"}addProxyEventsToElement(e,t){["click","touchstart","touchend","touchcancel","touchmove","mouseover","mouseenter","mouseleave","mouseout"].forEach(i=>{let s=0===i.indexOf("touch");this.eventProvider.addEvent(e,i,e=>{let i=s?sm(e):sg(e);t&&sp(t,i),e.stopPropagation(),s||e.preventDefault()},{passive:!1})})}hideElementVisually(e){sd(e,{borderWidth:0,backgroundColor:"transparent",cursor:"pointer",outline:"none",opacity:.001,filter:"alpha(opacity=1)",zIndex:999,overflow:"hidden",padding:0,margin:0,display:"block",position:"absolute","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)"})}getTargetPosition(){let e=this.target.click,t=e.element?e.element:e,i=this.target.visual||t,s=this.chart.renderTo,n=this.chart.pointer;if(s&&i?.getBoundingClientRect&&n){let e=i.getBoundingClientRect(),t=n.getChartPosition();return{x:(e.left-t.left)/t.scaleX,y:(e.top-t.top)/t.scaleY,width:e.right/t.scaleX-e.left/t.scaleX,height:e.bottom/t.scaleY-e.top/t.scaleY}}return{x:0,y:0,width:1,height:1}}getTargetAttr(e,t){return e.element?e.element.getAttribute(t):e.getAttribute(t)}},{doc:sy}=w(),{attr:sv,css:sw}=w(),{unhideChartElementFromAT:sE}=K,{removeChildNodes:sA}=S,sT=class{constructor(e){this.chart=e,this.domElementProvider=new W,this.groups={},this.groupOrder=[],this.beforeChartProxyPosContainer=this.createProxyPosContainer("before"),this.afterChartProxyPosContainer=this.createProxyPosContainer("after"),this.update()}addProxyElement(e,t,i="button",s){let n=this.groups[e];if(!n)throw Error("ProxyProvider.addProxyElement: Invalid group key "+e);let r="ul"===n.type||"ol"===n.type?"li":void 0,o=new sx(this.chart,t,i,r,s);return n.proxyContainerElement.appendChild(o.element),n.proxyElements.push(o),o}addGroup(e,t="div",i){let s;let n=this.groups[e];if(n)return n.groupElement;let r=this.domElementProvider.createElement(t);return i&&i.role&&"div"!==t?(s=this.domElementProvider.createElement("div")).appendChild(r):s=r,s.className="highcharts-a11y-proxy-group highcharts-a11y-proxy-group-"+e.replace(/\W/g,"-"),this.groups[e]={proxyContainerElement:r,groupElement:s,type:t,proxyElements:[]},sv(s,i||{}),"ul"===t&&r.setAttribute("role","list"),this.afterChartProxyPosContainer.appendChild(s),this.updateGroupOrder(this.groupOrder),s}updateGroupAttrs(e,t){let i=this.groups[e];if(!i)throw Error("ProxyProvider.updateGroupAttrs: Invalid group key "+e);sv(i.groupElement,t)}updateGroupOrder(e){if(this.groupOrder=e.slice(),this.isDOMOrderGroupOrder())return;let t=e.indexOf("series"),i=t>-1?e.slice(0,t):e,s=t>-1?e.slice(t+1):[],n=sy.activeElement;["before","after"].forEach(e=>{let t=this["before"===e?"beforeChartProxyPosContainer":"afterChartProxyPosContainer"];sA(t),("before"===e?i:s).forEach(e=>{let i=this.groups[e];i&&t.appendChild(i.groupElement)})}),(this.beforeChartProxyPosContainer.contains(n)||this.afterChartProxyPosContainer.contains(n))&&n&&n.focus&&n.focus()}clearGroup(e){let t=this.groups[e];if(!t)throw Error("ProxyProvider.clearGroup: Invalid group key "+e);sA(t.proxyContainerElement)}removeGroup(e){let t=this.groups[e];t&&(this.domElementProvider.removeElement(t.groupElement),t.groupElement!==t.proxyContainerElement&&this.domElementProvider.removeElement(t.proxyContainerElement),delete this.groups[e])}update(){this.updatePosContainerPositions(),this.updateGroupOrder(this.groupOrder),this.updateProxyElementPositions()}updateProxyElementPositions(){Object.keys(this.groups).forEach(this.updateGroupProxyElementPositions.bind(this))}updateGroupProxyElementPositions(e){let t=this.groups[e];t&&t.proxyElements.forEach(e=>e.refreshPosition())}destroy(){this.domElementProvider.destroyCreatedElements()}createProxyPosContainer(e){let t=this.domElementProvider.createElement("div");return t.setAttribute("aria-hidden","false"),t.className="highcharts-a11y-proxy-container"+(e?"-"+e:""),sw(t,{top:"0",left:"0"}),this.chart.styledMode||(t.style.whiteSpace="nowrap",t.style.position="absolute"),t}getCurrentGroupOrderInDOM(){let e=e=>{let t=Object.keys(this.groups),i=t.length;for(;i--;){let s=t[i],n=this.groups[s];if(n&&e===n.groupElement)return s}},t=t=>{let i=[],s=t.children;for(let t=0;t"series"===e||!!this.groups[e]),i=e.length;if(i!==t.length)return!1;for(;i--;)if(e[i]!==t[i])return!1;return!0}updatePosContainerPositions(){let e=this.chart;if(e.renderer.forExport)return;let t=e.renderer.box;e.container.insertBefore(this.afterChartProxyPosContainer,t.nextSibling),e.container.insertBefore(this.beforeChartProxyPosContainer,t),sE(this.chart,this.afterChartProxyPosContainer),sE(this.chart,this.beforeChartProxyPosContainer)}},{unhideChartElementFromAT:sC,getAxisRangeDescription:sM}=K,{addEvent:sk,attr:sS}=w();class sP extends Z{init(){let e=this.chart;this.announcer=new ep(e,"polite")}onChartUpdate(){let e=this.chart,t=this,i=e.rangeSelector;i&&(this.updateSelectorVisibility(),this.setDropdownAttrs(),i.buttons&&i.buttons.length&&i.buttons.forEach(e=>{t.setRangeButtonAttrs(e)}),i.maxInput&&i.minInput&&["minInput","maxInput"].forEach(function(s,n){let r=i[s];r&&(sC(e,r),t.setRangeInputAttrs(r,"accessibility.rangeSelector."+(n?"max":"min")+"InputLabel"))}))}updateSelectorVisibility(){let e=this.chart,t=e.rangeSelector,i=t&&t.dropdown,s=t&&t.buttons||[],n=e=>e.setAttribute("aria-hidden",!0);t&&t.hasVisibleDropdown&&i?(sC(e,i),s.forEach(e=>n(e.element))):(i&&n(i),s.forEach(t=>sC(e,t.element)))}setDropdownAttrs(){let e=this.chart,t=e.rangeSelector&&e.rangeSelector.dropdown;if(t){let i=e.langFormat("accessibility.rangeSelector.dropdownLabel",{rangeTitle:e.options.lang.rangeSelectorZoom});t.setAttribute("aria-label",i),t.setAttribute("tabindex",-1)}}setRangeButtonAttrs(e){sS(e.element,{tabindex:-1,role:"button"})}setRangeInputAttrs(e,t){let i=this.chart;sS(e,{tabindex:-1,"aria-label":i.langFormat(t,{chart:i})})}onButtonNavKbdArrowKey(e,t){let i=e.response,s=this.keyCodes,n=this.chart,r=n.options.accessibility.keyboardNavigation.wrapAround,o=t===s.left||t===s.up?-1:1;return n.highlightRangeSelectorButton(n.highlightedRangeSelectorItemIx+o)?i.success:r?(e.init(o),i.success):i[o>0?"next":"prev"]}onButtonNavKbdClick(e){let t=e.response,i=this.chart;return 3!==i.oldRangeSelectorItemState&&this.fakeClickEvent(i.rangeSelector.buttons[i.highlightedRangeSelectorItemIx].element),t.success}onAfterBtnClick(){let e=this.chart,t=sM(e.xAxis[0]),i=e.langFormat("accessibility.rangeSelector.clickButtonAnnouncement",{chart:e,axisRangeDescription:t});i&&this.announcer.announce(i)}onInputKbdMove(e){let t=this.chart,i=t.rangeSelector,s=t.highlightedInputRangeIx=(t.highlightedInputRangeIx||0)+e;if(s>1||s<0){if(t.accessibility)return t.accessibility.keyboardNavigation.exiting=!0,t.accessibility.keyboardNavigation.tabindexContainer.focus(),t.accessibility.keyboardNavigation.move(e)}else if(i){let e=i[s?"maxDateBox":"minDateBox"],n=i[s?"maxInput":"minInput"];e&&n&&t.setFocusToElement(e,n)}return!0}onInputNavInit(e){let t=this,i=this.chart,s=e>0?0:1,n=i.rangeSelector,r=n&&n[s?"maxDateBox":"minDateBox"],o=n&&n.minInput,a=n&&n.maxInput;if(i.highlightedInputRangeIx=s,r&&o&&a){i.setFocusToElement(r,s?a:o),this.removeInputKeydownHandler&&this.removeInputKeydownHandler();let e=e=>{(e.which||e.keyCode)===this.keyCodes.tab&&t.onInputKbdMove(e.shiftKey?-1:1)&&(e.preventDefault(),e.stopPropagation())},n=sk(o,"keydown",e),l=sk(a,"keydown",e);this.removeInputKeydownHandler=()=>{n(),l()}}}onInputNavTerminate(){let e=this.chart.rangeSelector||{};e.maxInput&&e.hideInput("max"),e.minInput&&e.hideInput("min"),this.removeInputKeydownHandler&&(this.removeInputKeydownHandler(),delete this.removeInputKeydownHandler)}initDropdownNav(){let e=this.chart,t=e.rangeSelector,i=t&&t.dropdown;t&&i&&(e.setFocusToElement(t.buttonGroup,i),this.removeDropdownKeydownHandler&&this.removeDropdownKeydownHandler(),this.removeDropdownKeydownHandler=sk(i,"keydown",t=>{let i=(t.which||t.keyCode)===this.keyCodes.tab,s=e.accessibility;i&&(t.preventDefault(),t.stopPropagation(),s&&s.keyboardNavigation.move(t.shiftKey?-1:1))}))}getRangeSelectorButtonNavigation(){let e=this.chart,t=this.keyCodes,i=this;return new Q(e,{keyCodeMap:[[[t.left,t.right,t.up,t.down],function(e){return i.onButtonNavKbdArrowKey(this,e)}],[[t.enter,t.space],function(){return i.onButtonNavKbdClick(this)}]],validate:function(){return!!(e.rangeSelector&&e.rangeSelector.buttons&&e.rangeSelector.buttons.length)},init:function(t){let s=e.rangeSelector;if(s&&s.hasVisibleDropdown)i.initDropdownNav();else if(s){let i=s.buttons.length-1;e.highlightRangeSelectorButton(t>0?0:i)}},terminate:function(){i.removeDropdownKeydownHandler&&(i.removeDropdownKeydownHandler(),delete i.removeDropdownKeydownHandler)}})}getRangeSelectorInputNavigation(){let e=this.chart,t=this;return new Q(e,{keyCodeMap:[],validate:function(){return!!(e.rangeSelector&&e.rangeSelector.inputGroup&&"hidden"!==e.rangeSelector.inputGroup.element.style.visibility&&!1!==e.options.rangeSelector.inputEnabled&&e.rangeSelector.minInput&&e.rangeSelector.maxInput)},init:function(e){t.onInputNavInit(e)},terminate:function(){t.onInputNavTerminate()}})}getKeyboardNavigation(){return[this.getRangeSelectorButtonNavigation(),this.getRangeSelectorInputNavigation()]}destroy(){this.removeDropdownKeydownHandler&&this.removeDropdownKeydownHandler(),this.removeInputKeydownHandler&&this.removeInputKeydownHandler(),this.announcer&&this.announcer.destroy()}}!function(e){function t(e){let t=this.rangeSelector&&this.rangeSelector.buttons||[],i=this.highlightedRangeSelectorItemIx,s=this.rangeSelector&&this.rangeSelector.selected;return void 0!==i&&t[i]&&i!==s&&t[i].setState(this.oldRangeSelectorItemState||0),this.highlightedRangeSelectorItemIx=e,!!t[e]&&(this.setFocusToElement(t[e].box,t[e].element),e!==s&&(this.oldRangeSelectorItemState=t[e].state,t[e].setState(1)),!0)}function i(){let e=this.chart.accessibility;if(e&&e.components.rangeSelector)return e.components.rangeSelector.onAfterBtnClick()}e.compose=function(e,s){let n=e.prototype;n.highlightRangeSelectorButton||(n.highlightRangeSelectorButton=t,sk(s,"afterBtnClick",i))}}(sP||(sP={}));let sD=sP,{composed:sN}=w(),{addEvent:sB,merge:sI,pushUnique:sF}=w();!function(e){function t(e){sI(!0,e,{marker:{enabled:!0,states:{normal:{opacity:0}}}})}function i(e){return e.marker.states&&e.marker.states.normal&&e.marker.states.normal.opacity}function s(e){return!!(e._hasPointMarkers&&e.points&&e.points.length)}function n(){this.chart.styledMode&&(this.markerGroup&&this.markerGroup[this.a11yMarkersForced?"addClass":"removeClass"]("highcharts-a11y-markers-hidden"),s(this)&&this.points.forEach(e=>{e.graphic&&(e.graphic[e.hasForcedA11yMarker?"addClass":"removeClass"]("highcharts-a11y-marker-hidden"),e.graphic[!1===e.hasForcedA11yMarker?"addClass":"removeClass"]("highcharts-a11y-marker-visible"))}))}function r(e){this.resetA11yMarkerOptions=sI(e.options.marker||{},this.userOptions.marker||{})}function o(){let e=this.options;!function(e){let t=e.chart.options.accessibility.enabled,i=!1!==(e.options.accessibility&&e.options.accessibility.enabled);return t&&i&&function(e){let t=e.chart.options.accessibility;return e.points.length-1;t.highlightedPoint===this&&i!==e&&!n&&e&&e.focus&&e.focus()})}onDrillupAll(){let e;let t=this.lastDrilledDownPoint,i=this.chart,s=t&&sW(i,t.seriesName);t&&s&&sK(t.x)&&sK(t.y)&&(e=sV(s,t.x,t.y)),e=e||sZ(i),i.container&&i.container.focus(),e&&e.highlight&&e.highlight(!1)}getKeyboardNavigationHandler(){let e=this,t=this.keyCodes,i=this.chart,s=i.inverted;return new Q(i,{keyCodeMap:[[s?[t.up,t.down]:[t.left,t.right],function(t){return e.onKbdSideways(this,t)}],[s?[t.left,t.right]:[t.up,t.down],function(t){return e.onKbdVertical(this,t)}],[[t.enter,t.space],function(e,t){let s=i.highlightedPoint;if(s){let{plotLeft:e,plotTop:i}=this.chart,{plotX:n=0,plotY:r=0}=s;t={...t,chartX:e+n,chartY:i+r,point:s,target:s.graphic?.element||t.target},sU(s.series,"click",t),s.firePointEvent("click",t)}return this.response.success}],[[t.home],function(){return sQ(i),this.response.success}],[[t.end],function(){return s$(i),this.response.success}],[[t.pageDown,t.pageUp],function(e){return i.highlightAdjacentSeries(e===t.pageDown),this.response.success}]],init:function(){return e.onHandlerInit(this)},validate:function(){return!!sZ(i)},terminate:function(){return e.onHandlerTerminate()}})}onKbdSideways(e,t){let i=this.keyCodes,s=t===i.right||t===i.down;return this.attemptHighlightAdjacentPoint(e,s)}onHandlerInit(e){let t=this.chart;return t.options.accessibility.keyboardNavigation.seriesNavigation.rememberPointFocus&&t.highlightedPoint?t.highlightedPoint.highlight():sQ(t),e.response.success}onKbdVertical(e,t){let i=this.chart,s=this.keyCodes,n=t===s.down||t===s.right,r=i.options.accessibility.keyboardNavigation.seriesNavigation;if(r.mode&&"serialize"===r.mode)return this.attemptHighlightAdjacentPoint(e,n);let o=i.highlightedPoint&&i.highlightedPoint.series.keyboardMoveVertical?"highlightAdjacentPointVertical":"highlightAdjacentSeries";return i[o](n),e.response.success}onHandlerTerminate(){let e=this.chart,t=e.options.accessibility.keyboardNavigation;e.tooltip&&e.tooltip.hide(0);let i=e.highlightedPoint&&e.highlightedPoint.series;i&&i.onMouseOut&&i.onMouseOut(),e.highlightedPoint&&e.highlightedPoint.onMouseOut&&e.highlightedPoint.onMouseOut(),t.seriesNavigation.rememberPointFocus||delete e.highlightedPoint}attemptHighlightAdjacentPoint(e,t){let i=this.chart,s=i.options.accessibility.keyboardNavigation.wrapAround;return i.highlightAdjacentPoint(t)?e.response.success:s&&(t?sQ(i):s$(i))?e.response.success:e.response[t?"next":"prev"]}onSeriesDestroy(e){let t=this.chart;t.highlightedPoint&&t.highlightedPoint.series===e&&(delete t.highlightedPoint,t.focusElement&&t.focusElement.removeFocusBorder())}destroy(){this.eventProvider.removeAddedEvents()}}!function(e){function t(e){let t,i;let s=this.series,n=this.highlightedPoint,r=n&&sY(n)||0,o=n&&n.series.points||[],a=this.series&&this.series[this.series.length-1],l=a&&a.points&&a.points[a.points.length-1];if(!s[0]||!s[0].points)return!1;if(n){if(t=s[n.series.index+(e?1:-1)],(i=o[r+(e?1:-1)])||!t||(i=t.points[e?0:t.points.length-1]),!i)return!1}else i=e?s[0].points[0]:l;return s_(i)?(sj(t=i.series)?this.highlightedPoint=e?t.points[t.points.length-1]:t.points[0]:this.highlightedPoint=i,this.highlightAdjacentPoint(e)):i.highlight()}function i(e){let t=this.highlightedPoint,i=1/0,s;return!!(sK(t.plotX)&&sK(t.plotY))&&(this.series.forEach(n=>{sj(n)||n.points.forEach(r=>{if(!sK(r.plotY)||!sK(r.plotX)||r===t)return;let o=r.plotY-t.plotY,a=Math.abs(r.plotX-t.plotX),l=Math.abs(o)*Math.abs(o)+a*a*4;n.yAxis&&n.yAxis.reversed&&(o*=-1),!(o<=0&&e||o>=0&&!e||l<5||s_(r))&&l!(sK(e.plotX)&&sK(e.plotY));if(!h(e)){for(;l--;)!h(r=t.points[l])&&(a=(e.plotX-r.plotX)*(e.plotX-r.plotX)*4+(e.plotY-r.plotY)*(e.plotY-r.plotY)*1)=0;--e)if(!s_(i[e]))return i[e].highlight()}return!1}e.compose=function(e,o,a){let l=e.prototype,h=o.prototype,c=a.prototype;l.highlightAdjacentPoint||(l.highlightAdjacentPoint=t,l.highlightAdjacentPointVertical=i,l.highlightAdjacentSeries=s,h.highlight=n,c.keyboardMoveVertical=!0,["column","gantt","pie"].forEach(e=>{sq[e]&&(sq[e].prototype.keyboardMoveVertical=!1)}),c.highlightNextValidPoint=r)}}(sJ||(sJ={}));let s0=sJ,{hideSeriesFromAT:s1}=K,{describeSeries:s2}=i8,s3=class extends Z{static compose(e,t,i){sl.compose(i),sO.compose(i),s0.compose(e,t,i)}init(){this.newDataAnnouncer=new sl(this.chart),this.newDataAnnouncer.init(),this.keyboardNavigation=new s0(this.chart,this.keyCodes),this.keyboardNavigation.init(),this.hideTooltipFromATWhenShown(),this.hideSeriesLabelsFromATWhenShown()}hideTooltipFromATWhenShown(){let e=this;this.chart.tooltip&&this.addEvent(this.chart.tooltip.constructor,"refresh",function(){this.chart===e.chart&&this.label&&this.label.element&&this.label.element.setAttribute("aria-hidden",!0)})}hideSeriesLabelsFromATWhenShown(){this.addEvent(this.chart,"afterDrawSeriesLabels",function(){this.series.forEach(function(e){e.labelBySeries&&e.labelBySeries.attr("aria-hidden",!0)})})}onChartRender(){this.chart.series.forEach(function(e){!1!==(e.options.accessibility&&e.options.accessibility.enabled)&&e.visible&&0!==e.getPointsCollection().length?s2(e):s1(e)})}getKeyboardNavigation(){return this.keyboardNavigation.getKeyboardNavigationHandler()}destroy(){this.newDataAnnouncer.destroy(),this.keyboardNavigation.destroy()}},{unhideChartElementFromAT:s5}=K,{getFakeMouseEvent:s4}=S,{attr:s6,pick:s9}=w(),s8=class extends Z{constructor(){super(...arguments),this.focusedMapNavButtonIx=-1}init(){let e=this,t=this.chart;this.proxyProvider.addGroup("zoom","div"),["afterShowResetZoom","afterApplyDrilldown","drillupall"].forEach(i=>{e.addEvent(t,i,function(){e.updateProxyOverlays()})})}onChartUpdate(){let e=this.chart,t=this;e.mapNavigation&&e.mapNavigation.navButtons.forEach((i,s)=>{s5(e,i.element),t.setMapNavButtonAttrs(i.element,"accessibility.zoom.mapZoom"+(s?"Out":"In"))})}setMapNavButtonAttrs(e,t){let i=this.chart;s6(e,{tabindex:-1,role:"button","aria-label":i.langFormat(t,{chart:i})})}onChartRender(){this.updateProxyOverlays()}updateProxyOverlays(){let e=this.chart;if(this.proxyProvider.clearGroup("zoom"),e.resetZoomButton&&this.createZoomProxyButton(e.resetZoomButton,"resetZoomProxyButton",e.langFormat("accessibility.zoom.resetZoomButton",{chart:e})),e.drillUpButton&&e.breadcrumbs&&e.breadcrumbs.list){let t=e.breadcrumbs.list[e.breadcrumbs.list.length-1];this.createZoomProxyButton(e.drillUpButton,"drillUpProxyButton",e.langFormat("accessibility.drillUpButton",{chart:e,buttonText:e.breadcrumbs.getButtonText(t)}))}}createZoomProxyButton(e,t,i){this[t]=this.proxyProvider.addProxyElement("zoom",{click:e},"button",{"aria-label":i,tabindex:-1})}getMapZoomNavigation(){let e=this.keyCodes,t=this.chart,i=this;return new Q(t,{keyCodeMap:[[[e.up,e.down,e.left,e.right],function(e){return i.onMapKbdArrow(this,e)}],[[e.tab],function(e,t){return i.onMapKbdTab(this,t)}],[[e.space,e.enter],function(){return i.onMapKbdClick(this)}]],validate:function(){return!!(t.mapView&&t.mapNavigation&&t.mapNavigation.navButtons.length)},init:function(e){return i.onMapNavInit(e)}})}onMapKbdArrow(e,t){let i=this.chart,s=this.keyCodes,n=i.container,r=t===s.up||t===s.down,o=t===s.left||t===s.up?1:-1,a=(r?i.plotHeight:i.plotWidth)/10*o,l=10*Math.random(),h={x:n.offsetLeft+i.plotLeft+i.plotWidth/2+l,y:n.offsetTop+i.plotTop+i.plotHeight/2+l},c=r?{x:h.x,y:h.y+a}:{x:h.x+a,y:h.y};return[s4("mousedown",h),s4("mousemove",c),s4("mouseup",c)].forEach(e=>n.dispatchEvent(e)),e.response.success}onMapKbdTab(e,t){let i=this.chart,s=e.response,n=t.shiftKey,r=n&&!this.focusedMapNavButtonIx||!n&&this.focusedMapNavButtonIx;if(i.mapNavigation.navButtons[this.focusedMapNavButtonIx].setState(0),r)return i.mapView&&i.mapView.zoomBy(),s[n?"prev":"next"];this.focusedMapNavButtonIx+=n?-1:1;let o=i.mapNavigation.navButtons[this.focusedMapNavButtonIx];return i.setFocusToElement(o.box,o.element),o.setState(2),s.success}onMapKbdClick(e){let t=this.chart.mapNavigation.navButtons[this.focusedMapNavButtonIx].element;return this.fakeClickEvent(t),e.response.success}onMapNavInit(e){let t=this.chart,i=t.mapNavigation.navButtons[0],s=t.mapNavigation.navButtons[1],n=e>0?i:s;t.setFocusToElement(n.box,n.element),n.setState(2),this.focusedMapNavButtonIx=e>0?0:1}simpleButtonNavigation(e,t,i){let s=this.keyCodes,n=this,r=this.chart;return new Q(r,{keyCodeMap:[[[s.tab,s.up,s.down,s.left,s.right],function(e,t){let i=e===s.tab&&t.shiftKey||e===s.left||e===s.up;return this.response[i?"prev":"next"]}],[[s.space,s.enter],function(){return s9(i(this,r),this.response.success)}]],validate:function(){return r[e]&&r[e].box&&n[t].innerElement},init:function(){r.setFocusToElement(r[e].box,n[t].innerElement)}})}getKeyboardNavigation(){return[this.simpleButtonNavigation("resetZoomButton","resetZoomProxyButton",function(e,t){t.zoomOut()}),this.simpleButtonNavigation("drillUpButton","drillUpProxyButton",function(e,t){return t.drillUp(),e.response.prev}),this.getMapZoomNavigation()]}},{doc:s7,isMS:ne,win:nt}=w(),ni={isHighContrastModeActive:function(){let e=/(Edg)/.test(nt.navigator.userAgent);if(nt.matchMedia&&e)return nt.matchMedia("(-ms-high-contrast: active)").matches;if(ne&&nt.getComputedStyle){let e=s7.createElement("div");e.style.backgroundImage="url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)",s7.body.appendChild(e);let t=(e.currentStyle||nt.getComputedStyle(e)).backgroundImage;return s7.body.removeChild(e),"none"===t}return nt.matchMedia&&nt.matchMedia("(forced-colors: active)").matches},setHighContrastTheme:function(e){e.highContrastModeActive=!0;let t=e.options.accessibility.highContrastTheme;e.update(t,!1);let i=t.colors?.length>1;e.series.forEach(function(e){let s=t.plotOptions[e.type]||{},n=i&&void 0!==e.colorIndex?t.colors[e.colorIndex]:s.color||"window",r={color:s.color||"windowText",colors:i?t.colors:[s.color||"windowText"],borderColor:s.borderColor||"window",fillColor:n};e.update(r,!1),e.points&&e.points.forEach(function(e){e.options&&e.options.color&&e.update({color:s.color||"windowText",borderColor:s.borderColor||"window"},!1)})}),e.redraw()}},{error:ns,pick:nn}=w();function nr(e,t,i){let s=e,n,r=0;for(;r"series"!==e)):Object.keys(this.components):[]}update(){let e=this.components,t=this.chart,i=t.options.accessibility;nu(t,"beforeA11yUpdate"),t.types=this.getChartTypes();let s=i.keyboardNavigation.order;this.proxyProvider.updateGroupOrder(s),this.getComponentOrder().forEach(function(i){e[i].onChartUpdate(),nu(t,"afterA11yComponentUpdate",{name:i,component:e[i]})}),this.keyboardNavigation.update(s),!t.highContrastModeActive&&!1!==i.highContrastMode&&(ni.isHighContrastModeActive()||!0===i.highContrastMode)&&ni.setHighContrastTheme(t),nu(t,"afterA11yUpdate",{accessibility:this})}destroy(){let e=this.chart||{},t=this.components;Object.keys(t).forEach(function(e){t[e].destroy(),t[e].destroyBase()}),this.proxyProvider&&this.proxyProvider.destroy(),e.announcerContainer&&ng(e.announcerContainer),this.keyboardNavigation&&this.keyboardNavigation.destroy(),e.renderTo&&e.renderTo.setAttribute("aria-hidden",!0),e.focusElement&&e.focusElement.removeFocusBorder()}getChartTypes(){let e={};return this.chart.series.forEach(function(t){e[t.type]=1}),Object.keys(e)}}!function(e){function t(){this.accessibility&&this.accessibility.destroy()}function i(){this.a11yDirty&&this.renderTo&&(delete this.a11yDirty,this.updateA11yEnabled());let e=this.accessibility;e&&!e.zombie&&(e.proxyProvider.updateProxyElementPositions(),e.getComponentOrder().forEach(function(t){e.components[t].onChartRender()}))}function s(e){let t=e.options.accessibility;t&&(t.customComponents&&(this.options.accessibility.customComponents=t.customComponents,delete t.customComponents),np(!0,this.options.accessibility,t),this.accessibility&&this.accessibility.destroy&&(this.accessibility.destroy(),delete this.accessibility)),this.a11yDirty=!0}function n(){let t=this.accessibility,i=this.options.accessibility,s=this.renderer.boxWrapper.element,n=this.title;if(i&&i.enabled)t&&!t.zombie?t.update():(this.accessibility=t=new e(this),t&&!t.zombie&&t.update(),"img"===s.getAttribute("role")&&s.removeAttribute("role"));else if(t)t.destroy&&t.destroy(),delete this.accessibility;else{this.renderTo.setAttribute("role","img"),this.renderTo.setAttribute("aria-hidden",!1),this.renderTo.setAttribute("aria-label",(n&&n.element.textContent||"").replace(/{nc(e,t,function(){this.a11yDirty=!0})}),["afterApplyDrilldown","drillupall"].forEach(t=>{nc(e,t,function(){let e=this.accessibility;e&&!e.zombie&&e.update()})}),nc(a,"update",r),["update","updatedData","remove"].forEach(e=>{nc(l,e,function(){this.chart.accessibility&&(this.chart.a11yDirty=!0)})}))}}(nm||(nm={})),np(!0,nl,{accessibility:{enabled:!0,screenReaderSection:{beforeChartFormat:"<{headingTagName}>{chartTitle}
    {typeDescription}
    {chartSubtitle}
    {chartLongdesc}
    {playAsSoundButton}
    {viewTableButton}
    {xAxisDescription}
    {yAxisDescription}
    {annotationsTitle}{annotationsList}
    ",afterChartFormat:"{endOfChartMarker}",axisRangeDateFormat:"%Y-%m-%d %H:%M:%S"},series:{descriptionFormat:"{seriesDescription}{authorDescription}{axisDescription}",describeSingleSeries:!1,pointDescriptionEnabledThreshold:200},point:{valueDescriptionFormat:"{xDescription}{separator}{value}.",describeNull:!0},landmarkVerbosity:"all",linkedDescription:'*[data-highcharts-chart="{index}"] + .highcharts-description',highContrastMode:"auto",keyboardNavigation:{enabled:!0,focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#334eff",lineWidth:2,borderRadius:3},margin:2},order:["series","zoom","rangeSelector","navigator","legend","chartMenu"],wrapAround:!0,seriesNavigation:{skipNullPoints:!0,pointNavigationEnabledThreshold:!1,rememberPointFocus:!1}},announceNewData:{enabled:!1,minAnnounceInterval:5e3,interruptUser:!1}},legend:{accessibility:{enabled:!0,keyboardNavigation:{enabled:!0}}},exporting:{accessibility:{enabled:!0}},navigator:{accessibility:{enabled:!0}}},{accessibility:{highContrastTheme:{chart:{backgroundColor:"window"},title:{style:{color:"windowText"}},subtitle:{style:{color:"windowText"}},colorAxis:{minColor:"windowText",maxColor:"windowText",stops:[],dataClasses:[]},colors:["windowText"],xAxis:{gridLineColor:"windowText",labels:{style:{color:"windowText"}},lineColor:"windowText",minorGridLineColor:"windowText",tickColor:"windowText",title:{style:{color:"windowText"}}},yAxis:{gridLineColor:"windowText",labels:{style:{color:"windowText"}},lineColor:"windowText",minorGridLineColor:"windowText",tickColor:"windowText",title:{style:{color:"windowText"}}},tooltip:{backgroundColor:"window",borderColor:"windowText",style:{color:"windowText"}},plotOptions:{series:{lineColor:"windowText",fillColor:"window",borderColor:"windowText",edgeColor:"windowText",borderWidth:1,dataLabels:{connectorColor:"windowText",color:"windowText",style:{color:"windowText",textOutline:"none"}},marker:{lineColor:"windowText",fillColor:"windowText"}},pie:{color:"window",colors:["window"],borderColor:"windowText",borderWidth:1},boxplot:{fillColor:"window"},candlestick:{lineColor:"windowText",fillColor:"window"},errorbar:{fillColor:"window"}},legend:{backgroundColor:"window",itemStyle:{color:"windowText"},itemHoverStyle:{color:"windowText"},itemHiddenStyle:{color:"#555"},title:{style:{color:"windowText"}}},credits:{style:{color:"windowText"}},drilldown:{activeAxisLabelStyle:{color:"windowText"},activeDataLabelStyle:{color:"windowText"}},navigation:{buttonOptions:{symbolStroke:"windowText",theme:{fill:"window"}}},rangeSelector:{buttonTheme:{fill:"window",stroke:"windowText",style:{color:"windowText"},states:{hover:{fill:"window",stroke:"windowText",style:{color:"windowText"}},select:{fill:"#444",stroke:"windowText",style:{color:"windowText"}}}},inputBoxBorderColor:"windowText",inputStyle:{backgroundColor:"window",color:"windowText"},labelStyle:{color:"windowText"}},navigator:{handles:{backgroundColor:"window",borderColor:"windowText"},outlineColor:"windowText",maskFill:"transparent",series:{color:"windowText",lineColor:"windowText"},xAxis:{gridLineColor:"windowText"}},scrollbar:{barBackgroundColor:"#444",barBorderColor:"windowText",buttonArrowColor:"windowText",buttonBackgroundColor:"window",buttonBorderColor:"windowText",rifleColor:"windowText",trackBackgroundColor:"window",trackBorderColor:"windowText"}}},lang:{accessibility:{defaultChartTitle:"Chart",chartContainerLabel:"{title}. Highcharts interactive chart.",svgContainerLabel:"Interactive chart",drillUpButton:"{buttonText}",credits:"Chart credits: {creditsStr}",thousandsSep:",",svgContainerTitle:"",graphicContainerLabel:"",screenReaderSection:{beforeRegionLabel:"",afterRegionLabel:"",annotations:{heading:"Chart annotations summary",descriptionSinglePoint:"{annotationText}. Related to {annotationPoint}",descriptionMultiplePoints:"{annotationText}. Related to {annotationPoint}{#each additionalAnnotationPoints}, also related to {this}{/each}",descriptionNoPoints:"{annotationText}"},endOfChartMarker:"End of interactive chart."},sonification:{playAsSoundButtonText:"Play as sound, {chartTitle}",playAsSoundClickAnnouncement:"Play"},legend:{legendLabelNoTitle:"Toggle series visibility, {chartTitle}",legendLabel:"Chart legend: {legendTitle}",legendItem:"Show {itemName}"},zoom:{mapZoomIn:"Zoom chart",mapZoomOut:"Zoom out chart",resetZoomButton:"Reset zoom"},rangeSelector:{dropdownLabel:"{rangeTitle}",minInputLabel:"Select start date.",maxInputLabel:"Select end date.",clickButtonAnnouncement:"Viewing {axisRangeDescription}"},navigator:{handleLabel:"{#eq handleIx 0}Start, percent{else}End, percent{/eq}",groupLabel:"Axis zoom",changeAnnouncement:"{axisRangeDescription}"},table:{viewAsDataTableButtonText:"View as data table, {chartTitle}",tableSummary:"Table representation of chart."},announceNewData:{newDataAnnounce:"Updated data for chart {chartTitle}",newSeriesAnnounceSingle:"New data series: {seriesDesc}",newPointAnnounceSingle:"New data point: {pointDesc}",newSeriesAnnounceMultiple:"New data series in chart {chartTitle}: {seriesDesc}",newPointAnnounceMultiple:"New data point in chart {chartTitle}: {pointDesc}"},seriesTypeDescriptions:{boxplot:"Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile, and maximum.",arearange:"Arearange charts are line charts displaying a range between a lower and higher value for each point.",areasplinerange:"These charts are line charts displaying a range between a lower and higher value for each point.",bubble:"Bubble charts are scatter charts where each data point also has a size value.",columnrange:"Columnrange charts are column charts displaying a range between a lower and higher value for each point.",errorbar:"Errorbar series are used to display the variability of the data.",funnel:"Funnel charts are used to display reduction of data in stages.",pyramid:"Pyramid charts consist of a single pyramid with item heights corresponding to each point value.",waterfall:"A waterfall chart is a column chart where each column contributes towards a total end value."},chartTypes:{emptyChart:"Empty chart",mapTypeDescription:"Map of {mapTitle} with {numSeries} data series.",unknownMap:"Map of unspecified region with {numSeries} data series.",combinationChart:"Combination chart with {numSeries} data series.",defaultSingle:"Chart with {numPoints} data {#eq numPoints 1}point{else}points{/eq}.",defaultMultiple:"Chart with {numSeries} data series.",splineSingle:"Line chart with {numPoints} data {#eq numPoints 1}point{else}points{/eq}.",splineMultiple:"Line chart with {numSeries} lines.",lineSingle:"Line chart with {numPoints} data {#eq numPoints 1}point{else}points{/eq}.",lineMultiple:"Line chart with {numSeries} lines.",columnSingle:"Bar chart with {numPoints} {#eq numPoints 1}bar{else}bars{/eq}.",columnMultiple:"Bar chart with {numSeries} data series.",barSingle:"Bar chart with {numPoints} {#eq numPoints 1}bar{else}bars{/eq}.",barMultiple:"Bar chart with {numSeries} data series.",pieSingle:"Pie chart with {numPoints} {#eq numPoints 1}slice{else}slices{/eq}.",pieMultiple:"Pie chart with {numSeries} pies.",scatterSingle:"Scatter chart with {numPoints} {#eq numPoints 1}point{else}points{/eq}.",scatterMultiple:"Scatter chart with {numSeries} data series.",boxplotSingle:"Boxplot with {numPoints} {#eq numPoints 1}box{else}boxes{/eq}.",boxplotMultiple:"Boxplot with {numSeries} data series.",bubbleSingle:"Bubble chart with {numPoints} {#eq numPoints 1}bubbles{else}bubble{/eq}.",bubbleMultiple:"Bubble chart with {numSeries} data series."},axis:{xAxisDescriptionSingular:"The chart has 1 X axis displaying {names[0]}. {ranges[0]}",xAxisDescriptionPlural:"The chart has {numAxes} X axes displaying {#each names}{#unless @first},{/unless}{#if @last} and{/if} {this}{/each}.",yAxisDescriptionSingular:"The chart has 1 Y axis displaying {names[0]}. {ranges[0]}",yAxisDescriptionPlural:"The chart has {numAxes} Y axes displaying {#each names}{#unless @first},{/unless}{#if @last} and{/if} {this}{/each}.",timeRangeDays:"Data range: {range} days.",timeRangeHours:"Data range: {range} hours.",timeRangeMinutes:"Data range: {range} minutes.",timeRangeSeconds:"Data range: {range} seconds.",rangeFromTo:"Data ranges from {rangeFrom} to {rangeTo}.",rangeCategories:"Data range: {numCategories} categories."},exporting:{chartMenuLabel:"Chart menu",menuButtonLabel:"View chart menu, {chartTitle}"},series:{summary:{default:"{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",defaultCombination:"{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",line:"{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",lineCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",spline:"{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",splineCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",column:"{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",columnCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",bar:"{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",barCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",pie:"{series.name}, pie {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}slice{else}slices{/eq}.",pieCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Pie with {series.points.length} {#eq series.points.length 1}slice{else}slices{/eq}.",scatter:"{series.name}, scatter plot {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}point{else}points{/eq}.",scatterCombination:"{series.name}, series {seriesNumber} of {chart.series.length}, scatter plot with {series.points.length} {#eq series.points.length 1}point{else}points{/eq}.",boxplot:"{series.name}, boxplot {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}box{else}boxes{/eq}.",boxplotCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Boxplot with {series.points.length} {#eq series.points.length 1}box{else}boxes{/eq}.",bubble:"{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.",bubbleCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.",map:"{series.name}, map {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}area{else}areas{/eq}.",mapCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Map with {series.points.length} {#eq series.points.length 1}area{else}areas{/eq}.",mapline:"{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",maplineCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",mapbubble:"{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.",mapbubbleCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}."},description:"{description}",xAxisDescription:"X axis, {name}",yAxisDescription:"Y axis, {name}",nullPointValue:"No value",pointAnnotationsDescription:"{#each annotations}Annotation: {this}{/each}"}}}});let nb=nm,nf=w();nf.i18nFormat=nb.i18nFormat,nf.A11yChartUtilities=K,nf.A11yHTMLUtilities=S,nf.AccessibilityComponent=Z,nf.KeyboardNavigationHandler=Q,nf.SeriesAccessibilityDescriber=i8,nb.compose(nf.Chart,nf.Legend,nf.Point,nf.Series,nf.SVGElement,nf.RangeSelector);let nx=w();return y.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Templating,e._Highcharts.AST,e._Highcharts.Legend,e._Highcharts.Axis,e._Highcharts.Color,e._Highcharts.SeriesRegistry,e._Highcharts.RendererRegistry,e._Highcharts.SVGRenderer,e._Highcharts.Point,e._Highcharts.Series):"function"==typeof define&&define.amd?define("highcharts/modules/accessibility",["highcharts/highcharts"],function(e){return t(e,e.Templating,e.AST,e.Legend,e.Axis,e.Color,e.SeriesRegistry,e.RendererRegistry,e.SVGRenderer,e.Point,e.Series)}):"object"==typeof exports?exports["highcharts/modules/accessibility"]=t(e._Highcharts,e._Highcharts.Templating,e._Highcharts.AST,e._Highcharts.Legend,e._Highcharts.Axis,e._Highcharts.Color,e._Highcharts.SeriesRegistry,e._Highcharts.RendererRegistry,e._Highcharts.SVGRenderer,e._Highcharts.Point,e._Highcharts.Series):e.Highcharts=t(e.Highcharts,e.Highcharts.Templating,e.Highcharts.AST,e.Highcharts.Legend,e.Highcharts.Axis,e.Highcharts.Color,e.Highcharts.SeriesRegistry,e.Highcharts.RendererRegistry,e.Highcharts.SVGRenderer,e.Highcharts.Point,e.Highcharts.Series)}("undefined"==typeof window?this:window,(e,t,i,s,n,r,o,a,l,h,c)=>(()=>{"use strict";let d;var u,p,g,m,b={660:e=>{e.exports=i},532:e=>{e.exports=n},620:e=>{e.exports=r},632:e=>{e.exports=s},260:e=>{e.exports=h},608:e=>{e.exports=a},540:e=>{e.exports=l},820:e=>{e.exports=c},512:e=>{e.exports=o},984:e=>{e.exports=t},944:t=>{t.exports=e}},f={};function x(e){var t=f[e];if(void 0!==t)return t.exports;var i=f[e]={exports:{}};return b[e](i,i.exports,x),i.exports}x.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return x.d(t,{a:t}),t},x.d=(e,t)=>{for(var i in t)x.o(t,i)&&!x.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},x.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var y={};x.d(y,{default:()=>nx});var v=x(944),w=x.n(v);let{doc:E,win:A}=w(),{css:T}=w(),C=A.EventTarget&&new A.EventTarget||"none";function M(e){if("function"==typeof A.MouseEvent)return new A.MouseEvent(e.type,e);if(E.createEvent){let t=E.createEvent("MouseEvent");if(t.initMouseEvent)return t.initMouseEvent(e.type,e.bubbles,e.cancelable,e.view||A,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget),t}return k(e.type)}function k(e,t,i){let s=t||{x:0,y:0};if("function"==typeof A.MouseEvent)return new A.MouseEvent(e,{bubbles:!0,cancelable:!0,composed:!0,button:0,buttons:1,relatedTarget:i||C,view:A,detail:"click"===e?1:0,screenX:s.x,screenY:s.y,clientX:s.x,clientY:s.y});if(E.createEvent){let t=E.createEvent("MouseEvent");if(t.initMouseEvent)return t.initMouseEvent(e,!0,!0,A,"click"===e?1:0,s.x,s.y,s.x,s.y,!1,!1,!1,!1,0,null),t}return{type:e}}let S={addClass:function(e,t){e.classList?e.classList.add(t):0>e.className.indexOf(t)&&(e.className+=" "+t)},cloneMouseEvent:M,cloneTouchEvent:function(e){let t=e=>{let t=[];for(let i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},getElement:function(e){return E.getElementById(e)},getFakeMouseEvent:k,getHeadingTagNameForElement:function(e){let t=e=>"h"+Math.min(6,parseInt(e.slice(1),10)+1),i=e=>/^H[1-6]$/i.test(e),s=e=>{let t=e;for(;t=t.previousSibling;){let e=t.tagName||"";if(i(e))return e}return""},n=e=>{let r=s(e);if(r)return t(r);let o=e.parentElement;if(!o)return"h6";let a=o.tagName;return i(a)?t(a):n(o)};return n(e)},removeChildNodes:function(e){for(;e.lastChild;)e.removeChild(e.lastChild)},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(RegExp(t,"g"),"")},removeElement:function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},reverseChildNodes:function(e){let t=e.childNodes.length;for(;t--;)e.appendChild(e.childNodes[t])},simulatedEventTarget:C,stripHTMLTagsFromString:function(e,t=!1){return"string"==typeof e?t?e.replace(/<\/?[^>]+(>|$)/g,""):e.replace(/<\/?(?!\s)[^>]+(>|$)/g,""):e},visuallyHideElement:function(e){T(e,{position:"absolute",width:"1px",height:"1px",overflow:"hidden",whiteSpace:"nowrap",clip:"rect(1px, 1px, 1px, 1px)",marginTop:"-3px","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)",filter:"alpha(opacity=1)",opacity:.01})}};var P=x(984),D=x.n(P);let{format:N}=D(),{getNestedProperty:B,pick:I}=w();!function(e){function t(e,t,i){let s=(e,t)=>{let i=e.slice(t||0),s=i.indexOf("{"),n=i.indexOf("}");if(s>-1&&n>s)return{statement:i.substring(s+1,n),begin:t+s+1,end:t+n}},n=[],r,o,a=0;do r=s(e,a),(o=e.substring(a,r&&r.begin-1)).length&&n.push({value:o,type:"constant"}),r&&n.push({value:r.statement,type:"statement"}),a=r?r.end+1:a+1;while(r);return n.forEach(e=>{"statement"===e.type&&(e.value=function(e,t){let i,s;let n=e.indexOf("#each("),r=e.indexOf("#plural("),o=e.indexOf("["),a=e.indexOf("]");if(n>-1){let r=e.slice(n).indexOf(")")+n,o=e.substring(0,n),a=e.substring(r+1),l=e.substring(n+6,r).split(","),h=Number(l[1]),c;if(s="",i=B(l[0],t)){c=(h=isNaN(h)?i.length:h)<0?i.length+h:Math.min(h,i.length);for(let e=0;e-1){var l;let i=e.slice(r).indexOf(")")+r,n=e.substring(r+8,i).split(",");switch(Number(B(n[0],t))){case 0:s=I(n[4],n[1]);break;case 1:s=I(n[2],n[1]);break;case 2:s=I(n[3],n[1]);break;default:s=n[1]}return s?(l=s).trim&&l.trim()||l.replace(/^\s+|\s+$/g,""):""}if(o>-1){let s;let n=e.substring(0,o),r=Number(e.substring(o+1,a));return i=B(n,t),!isNaN(r)&&i&&(r<0?void 0===(s=i[i.length+r])&&(s=i[0]):void 0===(s=i[r])&&(s=i[i.length-1])),void 0!==s?s:""}return"{"+e+"}"}(e.value,t))}),N(n.reduce((e,t)=>e+t.value,""),t,i)}function i(e,i){let s=e.split("."),n=this.options.lang,r=0;for(;r!!e.graphic);return t&&t.graphic&&t.graphic.element}}function G(e){let t=q(e);return t&&t.parentNode||e.graph&&e.graph.element||e.group&&e.group.element}let K={fireEventOnWrappedOrUnwrappedElement:function e(t,i){let s=i.type,n=t.hcEvents;O.createEvent&&(t.dispatchEvent||t.fireEvent)?t.dispatchEvent?t.dispatchEvent(i):t.fireEvent(s,i):n&&n[s]?z(t,s,i):t.element&&e(t.element,i)},getChartTitle:function(e){return R(e.options.title.text||e.langFormat("accessibility.defaultChartTitle",{chart:e}),e.renderer.forExport)},getAxisDescription:function(e){return e&&(e.options.accessibility?.description||e.axisTitle?.textStr||e.options.id||e.categories&&"categories"||e.dateTime&&"Time"||"values")},getAxisRangeDescription:function(e){let t=e.options||{};return t.accessibility&&void 0!==t.accessibility.rangeDescription?t.accessibility.rangeDescription:e.categories?function(e){let t=e.chart;return e.dataMax&&e.dataMin?t.langFormat("accessibility.axis.rangeCategories",{chart:t,axis:e,numCategories:e.dataMax-e.dataMin+1}):""}(e):e.dateTime&&(0===e.min||0===e.dataMin)?function(e){let t=e.chart,i={},s=e.dataMin||e.min||0,n=e.dataMax||e.max||0,r="Seconds";i.Seconds=(n-s)/1e3,i.Minutes=i.Seconds/60,i.Hours=i.Minutes/60,i.Days=i.Hours/24,["Minutes","Hours","Days"].forEach(function(e){i[e]>2&&(r=e)});let o=i[r].toFixed("Seconds"!==r&&"Minutes"!==r?1:0);return t.langFormat("accessibility.axis.timeRange"+r,{chart:t,axis:e,range:o.replace(".0","")})}(e):function(e){let t=e.chart,i=t.options,s=i&&i.accessibility&&i.accessibility.screenReaderSection.axisRangeDateFormat||"",n={min:e.dataMin||e.min||0,max:e.dataMax||e.max||0},r=function(i){return e.dateTime?t.time.dateFormat(s,n[i]):n[i].toString()};return t.langFormat("accessibility.axis.rangeFromTo",{chart:t,axis:e,rangeFrom:r("min"),rangeTo:r("max")})}(e)},getPointFromXY:function(e,t,i){let s=e.length,n;for(;s--;)if(n=H(e[s].points||[],function(e){return e.x===t&&e.y===i}))return n},getSeriesFirstPointElement:q,getSeriesFromName:function(e,t){return t?(e.series||[]).filter(function(e){return e.name===t}):e.series},getSeriesA11yElement:G,unhideChartElementFromAT:function e(t,i){i.setAttribute("aria-hidden",!1),i!==t.renderTo&&i.parentNode&&i.parentNode!==O.body&&(Array.prototype.forEach.call(i.parentNode.childNodes,function(e){e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden",!0)}),e(t,i.parentNode))},hideSeriesFromAT:function(e){let t=G(e);t&&t.setAttribute("aria-hidden",!0)},scrollAxisToPoint:function(e){let t=e.series.xAxis,i=e.series.yAxis,s=t&&t.scrollbar?t:i,n=s&&s.scrollbar;if(n&&L(n.to)&&L(n.from)){let t=n.to-n.from,i=function(e,t){if(!L(e.dataMin)||!L(e.dataMax))return 0;let i=e.toPixels(e.dataMin),s=e.toPixels(e.dataMax),n="xAxis"===e.coll?"x":"y";return(e.toPixels(t[n]||0)-i)/(s-i)}(s,e);n.updatePosition(i-t/2,i+t/2),z(n,"changed",{from:n.from,to:n.to,trigger:"scrollbar",DOMEvent:null})}}},{doc:U}=w(),{removeElement:V}=S,W=class{constructor(){this.elements=[]}createElement(){let e=U.createElement.apply(U,arguments);return this.elements.push(e),e}removeElement(e){V(e),this.elements.splice(this.elements.indexOf(e),1)}destroyCreatedElements(){this.elements.forEach(function(e){V(e)}),this.elements=[]}},{addEvent:X}=w(),Y=class{constructor(){this.eventRemovers=[]}addEvent(){let e=X.apply(w(),arguments);return this.eventRemovers.push({element:arguments[0],remover:e}),e}removeEvent(e){let t=this.eventRemovers.map(e=>e.remover).indexOf(e);this.eventRemovers[t].remover(),this.eventRemovers.splice(t,1)}removeAddedEvents(){this.eventRemovers.map(e=>e.remover).forEach(e=>e()),this.eventRemovers=[]}},{fireEventOnWrappedOrUnwrappedElement:j}=K,{getFakeMouseEvent:_}=S,Z=class{destroy(){}getKeyboardNavigation(){return[]}init(){}onChartRender(){}onChartUpdate(){}initBase(e,t){this.chart=e,this.eventProvider=new Y,this.domElementProvider=new W,this.proxyProvider=t,this.keyCodes={left:37,right:39,up:38,down:40,enter:13,space:32,esc:27,tab:9,pageUp:33,pageDown:34,end:35,home:36}}addEvent(e,t,i,s){return this.eventProvider.addEvent(e,t,i,s)}createElement(e,t){return this.domElementProvider.createElement(e,t)}fakeClickEvent(e){j(e,_("click"))}destroyBase(){this.domElementProvider.destroyCreatedElements(),this.eventProvider.removeAddedEvents()}},{find:$}=w(),Q=class{constructor(e,t){this.chart=e,this.keyCodeMap=t.keyCodeMap||[],this.validate=t.validate,this.init=t.init,this.terminate=t.terminate,this.response={success:1,prev:2,next:3,noHandler:4,fail:5}}run(e){let t=e.which||e.keyCode,i=this.response.noHandler,s=$(this.keyCodeMap,function(e){return e[0].indexOf(t)>-1});return s?i=s[1].call(this,t,e):9===t&&(i=this.response[e.shiftKey?"prev":"next"]),i}},{unhideChartElementFromAT:J,getChartTitle:ee}=K,{doc:et}=w(),{stripHTMLTagsFromString:ei}=S,es=class extends Z{onChartUpdate(){this.handleSVGTitleElement(),this.setSVGContainerLabel(),this.setGraphicContainerAttrs(),this.setRenderToAttrs(),this.makeCreditsAccessible()}handleSVGTitleElement(){let e=this.chart,t="highcharts-title-"+e.index,i=ei(e.langFormat("accessibility.svgContainerTitle",{chartTitle:ee(e)}));if(i.length){let s=this.svgTitleElement=this.svgTitleElement||et.createElementNS("http://www.w3.org/2000/svg","title");s.textContent=i,s.id=t,e.renderTo.insertBefore(s,e.renderTo.firstChild)}}setSVGContainerLabel(){let e=this.chart,t=e.langFormat("accessibility.svgContainerLabel",{chartTitle:ee(e)});e.renderer.box&&t.length&&e.renderer.box.setAttribute("aria-label",t)}setGraphicContainerAttrs(){let e=this.chart,t=e.langFormat("accessibility.graphicContainerLabel",{chartTitle:ee(e)});t.length&&e.container.setAttribute("aria-label",t)}setRenderToAttrs(){let e=this.chart,t="disabled"!==e.options.accessibility.landmarkVerbosity,i=e.langFormat("accessibility.chartContainerLabel",{title:ee(e),chart:e});i&&(e.renderTo.setAttribute("role",t?"region":"group"),e.renderTo.setAttribute("aria-label",i))}makeCreditsAccessible(){let e=this.chart,t=e.credits;t&&(t.textStr&&t.element.setAttribute("aria-label",e.langFormat("accessibility.credits",{creditsStr:ei(t.textStr,e.renderer.forExport)})),J(e,t.element))}getKeyboardNavigation(){let e=this.chart;return new Q(e,{keyCodeMap:[],validate:function(){return!0},init:function(){let t=e.accessibility;t&&t.keyboardNavigation.tabindexContainer.focus()}})}destroy(){this.chart.renderTo.setAttribute("aria-hidden",!0)}},{addEvent:en,pick:er}=w();!function(e){let t=["x","y","transform","width","height","r","d","stroke-width"];function i(){let e=this.focusElement,t=this.options.accessibility.keyboardNavigation.focusBorder;e&&(e.removeFocusBorder(),t.enabled&&e.addFocusBorder(t.margin,{stroke:t.style.color,strokeWidth:t.style.lineWidth,r:t.style.borderRadius}))}function s(e,t){let i=this.options.accessibility.keyboardNavigation.focusBorder,s=t||e.element;s&&s.focus&&(s.hcEvents&&s.hcEvents.focusin||en(s,"focusin",function(){}),s.focus(),i.hideBrowserFocusOutline&&(s.style.outline="none")),this.focusElement&&this.focusElement.removeFocusBorder(),this.focusElement=e,this.renderFocusBorder()}function n(e,i){this.focusBorder&&this.removeFocusBorder();let s=this.getBBox(),n=er(e,3),r=this.parentGroup,o=this.scaleX||r&&r.scaleX,a=this.scaleY||r&&r.scaleY,l=(o?!a:a)?Math.abs(o||a||1):(Math.abs(o||1)+Math.abs(a||1))/2,h=this.renderer.fontMetrics(this).h;s.x+=this.translateX?this.translateX:0,s.y+=this.translateY?this.translateY:0;let c=s.x-n,d=s.y-n,u=s.width+2*n,p=s.height+2*n,g=!!this.text;if("text"===this.element.nodeName||g){let e,t;let i=!!this.rotation,r=g?{x:i?1:0,y:0}:(e=0,t=0,"middle"===this.attr("text-anchor")?e=t=.5:this.rotation?e=.25:t=.75,{x:e,y:t}),o=+this.attr("x"),a=+this.attr("y");if(isNaN(o)||(c=o-s.width*r.x-n),isNaN(a)||(d=a-("start"===this.attr("text-anchor")?h:s.height)*r.y-n),g&&i){let e=u;u=p,p=e,isNaN(o)||(c=o-s.height*r.x-n),isNaN(a)||(d=a-s.width*r.y-n)}}this.focusBorder=this.renderer.rect(c,d,u,p,parseInt((i&&i.r||0).toString(),10)/l).addClass("highcharts-focus-border").attr({zIndex:99}).add(r),this.renderer.styledMode||this.focusBorder.attr({stroke:i&&i.stroke,"stroke-width":(i&&i.strokeWidth||0)/l}),function(e,...i){e.focusBorderUpdateHooks||(e.focusBorderUpdateHooks={},t.forEach(t=>{let s=t+"Setter",n=e[s]||e._defaultSetter;e.focusBorderUpdateHooks[s]=n,e[s]=function(){let t=n.apply(e,arguments);return e.addFocusBorder.apply(e,i),t}}))}(this,e,i),function(e){if(e.focusBorderDestroyHook)return;let t=e.destroy;e.destroy=function(){return e.focusBorder&&e.focusBorder.destroy&&e.focusBorder.destroy(),t.apply(e,arguments)},e.focusBorderDestroyHook=t}(this)}function r(){var e;e=this,e.focusBorderUpdateHooks&&(Object.keys(e.focusBorderUpdateHooks).forEach(t=>{let i=e.focusBorderUpdateHooks[t];i===e._defaultSetter?delete e[t]:e[t]=i}),delete e.focusBorderUpdateHooks),this.focusBorderDestroyHook&&(this.destroy=this.focusBorderDestroyHook,delete this.focusBorderDestroyHook),this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}e.compose=function(e,t){let o=e.prototype,a=t.prototype;o.renderFocusBorder||(o.renderFocusBorder=i,o.setFocusToElement=s),a.addFocusBorder||(a.addFocusBorder=n,a.removeFocusBorder=r)}}(p||(p={}));let eo=p;var ea=x(660),el=x.n(ea);let{doc:eh}=w(),{addClass:ec,visuallyHideElement:ed}=S,{attr:eu}=w(),ep=class{constructor(e,t){this.chart=e,this.domElementProvider=new W,this.announceRegion=this.addAnnounceRegion(t)}destroy(){this.domElementProvider.destroyCreatedElements()}announce(e){el().setElementHTML(this.announceRegion,e),this.clearAnnouncementRegionTimer&&clearTimeout(this.clearAnnouncementRegionTimer),this.clearAnnouncementRegionTimer=setTimeout(()=>{this.announceRegion.innerHTML=el().emptyHTML,delete this.clearAnnouncementRegionTimer},3e3)}addAnnounceRegion(e){let t=this.chart.announcerContainer||this.createAnnouncerContainer(),i=this.domElementProvider.createElement("div");return eu(i,{"aria-hidden":!1,"aria-live":e,"aria-atomic":!0}),this.chart.styledMode?ec(i,"highcharts-visually-hidden"):ed(i),t.appendChild(i),i}createAnnouncerContainer(){let e=this.chart,t=eh.createElement("div");return eu(t,{"aria-hidden":!1,class:"highcharts-announcer-container"}),t.style.position="relative",e.renderTo.insertBefore(t,e.renderTo.firstChild),e.announcerContainer=t,t}},{escapeStringForHTML:eg,stripHTMLTagsFromString:em}=S;function eb(e){return(e.annotations||[]).reduce((e,t)=>(t.options&&!1!==t.options.visible&&(e=e.concat(t.labels)),e),[])}function ef(e){return e.options&&e.options.accessibility&&e.options.accessibility.description||e.graphic&&e.graphic.text&&e.graphic.text.textStr||""}function ex(e){let t=e.options&&e.options.accessibility&&e.options.accessibility.description;if(t)return t;let i=e.chart,s=ef(e),n=e.points,r=e=>e.graphic&&e.graphic.element&&e.graphic.element.getAttribute("aria-label")||"",o=n.filter(e=>!!e.graphic).map(e=>{let t=e.accessibility&&e.accessibility.valueDescription||r(e),i=e&&e.series.name||"";return(i?i+", ":"")+"data point "+t}).filter(e=>!!e),a=o.length,l=a>1?"MultiplePoints":a?"SinglePoint":"NoPoints",h={annotationText:s,annotation:e,numPoints:a,annotationPoint:o[0],additionalAnnotationPoints:o.slice(1)};return i.langFormat("accessibility.screenReaderSection.annotations.description"+l,h)}function ey(e){return eb(e).map(t=>{let i=eg(em(ex(t),e.renderer.forExport));return i?`
  • ${i}
  • `:""})}let ev={getAnnotationsInfoHTML:function(e){let t=e.annotations;if(!(t&&t.length))return"";let i=ey(e);return`
      ${i.join(" ")}
    `},getAnnotationLabelDescription:ex,getAnnotationListItems:ey,getPointAnnotationTexts:function(e){let t=eb(e.series.chart).filter(t=>t.points.indexOf(e)>-1);return t.length?t.map(e=>`${ef(e)}`):[]}},{getAnnotationsInfoHTML:ew}=ev,{getAxisDescription:eE,getAxisRangeDescription:eA,getChartTitle:eT,unhideChartElementFromAT:eC}=K,{format:eM}=D(),{doc:ek}=w(),{addClass:eS,getElement:eP,getHeadingTagNameForElement:eD,stripHTMLTagsFromString:eN,visuallyHideElement:eB}=S,{attr:eI,pick:eF,replaceNested:eO}=w();function eR(e){return eO(e,[/<([\w\-.:!]+)\b[^<>]*>\s*<\/\1>/g,""])}let eL=class extends Z{constructor(){super(...arguments),this.screenReaderSections={}}init(){let e=this.chart,t=this;this.initRegionsDefinitions(),this.addEvent(e,"aftergetTableAST",function(e){t.onDataTableCreated(e)}),this.addEvent(e,"afterViewData",function(e){e.wasHidden&&(t.dataTableDiv=e.element,setTimeout(function(){t.focusDataTable()},300))}),this.addEvent(e,"afterHideData",function(){t.viewDataTableButton&&t.viewDataTableButton.setAttribute("aria-expanded","false")}),e.exporting&&this.addEvent(e,"afterPrint",function(){t.updateAllScreenReaderSections()}),this.announcer=new ep(e,"assertive")}initRegionsDefinitions(){let e=this,t=this.chart.options.accessibility;this.screenReaderSections={before:{element:null,buildContent:function(i){let s=t.screenReaderSection.beforeChartFormatter;return s?s(i):e.defaultBeforeChartFormatter(i)},insertIntoDOM:function(e,t){t.renderTo.insertBefore(e,t.renderTo.firstChild)},afterInserted:function(){void 0!==e.sonifyButtonId&&e.initSonifyButton(e.sonifyButtonId),void 0!==e.dataTableButtonId&&e.initDataTableButton(e.dataTableButtonId)}},after:{element:null,buildContent:function(i){let s=t.screenReaderSection.afterChartFormatter;return s?s(i):e.defaultAfterChartFormatter()},insertIntoDOM:function(e,t){t.renderTo.insertBefore(e,t.container.nextSibling)},afterInserted:function(){e.chart.accessibility&&t.keyboardNavigation.enabled&&e.chart.accessibility.keyboardNavigation.updateExitAnchor()}}}}onChartRender(){this.linkedDescriptionElement=this.getLinkedDescriptionElement(),this.setLinkedDescriptionAttrs(),this.updateAllScreenReaderSections()}updateAllScreenReaderSections(){let e=this;Object.keys(this.screenReaderSections).forEach(function(t){e.updateScreenReaderSection(t)})}getLinkedDescriptionElement(){let e=this.chart.options.accessibility.linkedDescription;if(!e)return;if("string"!=typeof e)return e;let t=eM(e,this.chart),i=ek.querySelectorAll(t);if(1===i.length)return i[0]}setLinkedDescriptionAttrs(){let e=this.linkedDescriptionElement;e&&(e.setAttribute("aria-hidden","true"),eS(e,"highcharts-linked-description"))}updateScreenReaderSection(e){let t=this.chart,i=this.screenReaderSections[e],s=i.buildContent(t),n=i.element=i.element||this.createElement("div"),r=n.firstChild||this.createElement("div");s?(this.setScreenReaderSectionAttribs(n,e),el().setElementHTML(r,s),n.appendChild(r),i.insertIntoDOM(n,t),t.styledMode?eS(r,"highcharts-visually-hidden"):eB(r),eC(t,r),i.afterInserted&&i.afterInserted()):(n.parentNode&&n.parentNode.removeChild(n),i.element=null)}setScreenReaderSectionAttribs(e,t){let i=this.chart,s=i.langFormat("accessibility.screenReaderSection."+t+"RegionLabel",{chart:i,chartTitle:eT(i)});eI(e,{id:`highcharts-screen-reader-region-${t}-${i.index}`,"aria-label":s||void 0}),e.style.position="relative",s&&e.setAttribute("role","all"===i.options.accessibility.landmarkVerbosity?"region":"group")}defaultBeforeChartFormatter(){let e=this.chart,t=e.options.accessibility.screenReaderSection.beforeChartFormat;if(!t)return"";let i=this.getAxesDescription(),s=e.sonify&&e.options.sonification&&e.options.sonification.enabled,n="highcharts-a11y-sonify-data-btn-"+e.index,r="hc-linkto-highcharts-data-table-"+e.index,o=ew(e),a=e.langFormat("accessibility.screenReaderSection.annotations.heading",{chart:e}),l={headingTagName:eD(e.renderTo),chartTitle:eT(e),typeDescription:this.getTypeDescriptionText(),chartSubtitle:this.getSubtitleText(),chartLongdesc:this.getLongdescText(),xAxisDescription:i.xAxis,yAxisDescription:i.yAxis,playAsSoundButton:s?this.getSonifyButtonText(n):"",viewTableButton:e.getCSV?this.getDataTableButtonText(r):"",annotationsTitle:o?a:"",annotationsList:o},h=F.i18nFormat(t,l,e);return this.dataTableButtonId=r,this.sonifyButtonId=n,eR(h)}defaultAfterChartFormatter(){let e=this.chart,t=e.options.accessibility.screenReaderSection.afterChartFormat;if(!t)return"";let i={endOfChartMarker:this.getEndOfChartMarkerText()};return eR(F.i18nFormat(t,i,e))}getLinkedDescription(){let e=this.linkedDescriptionElement;return eN(e&&e.innerHTML||"",this.chart.renderer.forExport)}getLongdescText(){let e=this.chart.options,t=e.caption,i=t&&t.text,s=this.getLinkedDescription();return e.accessibility.description||s||i||""}getTypeDescriptionText(){let e=this.chart;return e.types?e.options.accessibility.typeDescription||function(e,t){let i=t[0],s=e.series&&e.series[0]||{},n=e.mapView&&e.mapView.geoMap&&e.mapView.geoMap.title,r={numSeries:e.series.length,numPoints:s.points&&s.points.length,chart:e,mapTitle:n};return i?"map"===i||"tiledwebmap"===i?r.mapTitle?e.langFormat("accessibility.chartTypes.mapTypeDescription",r):e.langFormat("accessibility.chartTypes.unknownMap",r):e.types.length>1?e.langFormat("accessibility.chartTypes.combinationChart",r):function(e,t,i){let s=t[0],n=e.langFormat("accessibility.seriesTypeDescriptions."+s,i),r=e.series&&e.series.length<2?"Single":"Multiple";return(e.langFormat("accessibility.chartTypes."+s+r,i)||e.langFormat("accessibility.chartTypes.default"+r,i))+(n?" "+n:"")}(e,t,r):e.langFormat("accessibility.chartTypes.emptyChart",r)}(e,e.types):""}getDataTableButtonText(e){let t=this.chart;return'"}getSonifyButtonText(e){let t=this.chart;return t.options.sonification&&!1===t.options.sonification.enabled?"":'"}getSubtitleText(){let e=this.chart.options.subtitle;return eN(e&&e.text||"",this.chart.renderer.forExport)}getEndOfChartMarkerText(){let e=eP(`highcharts-end-of-chart-marker-${this.chart.index}`);if(e)return e.outerHTML;let t=this.chart,i=t.langFormat("accessibility.screenReaderSection.endOfChartMarker",{chart:t});return'
    '+i+"
    "}onDataTableCreated(e){let t=this.chart;if(t.options.accessibility.enabled){this.viewDataTableButton&&this.viewDataTableButton.setAttribute("aria-expanded","true");let i=e.tree.attributes||{};i.tabindex=-1,i.summary=t.langFormat("accessibility.table.tableSummary",{chart:t}),e.tree.attributes=i}}focusDataTable(){let e=this.dataTableDiv,t=e&&e.getElementsByTagName("table")[0];t&&t.focus&&t.focus()}initSonifyButton(e){let t=this.sonifyButton=eP(e),i=this.chart,s=e=>{t&&(t.setAttribute("aria-hidden","true"),t.setAttribute("aria-label","")),e.preventDefault(),e.stopPropagation();let s=i.langFormat("accessibility.sonification.playAsSoundClickAnnouncement",{chart:i});this.announcer.announce(s),setTimeout(()=>{t&&(t.removeAttribute("aria-hidden"),t.removeAttribute("aria-label")),i.sonify&&i.sonify()},1e3)};t&&i&&(t.setAttribute("tabindex",-1),t.onclick=function(e){(i.options.accessibility&&i.options.accessibility.screenReaderSection.onPlayAsSoundClick||s).call(this,e,i)})}initDataTableButton(e){let t=this.viewDataTableButton=eP(e),i=this.chart,s=e.replace("hc-linkto-","");t&&(eI(t,{tabindex:-1,"aria-expanded":!!eP(s)}),t.onclick=i.options.accessibility.screenReaderSection.onViewDataTableClick||function(){i.viewData()})}getAxesDescription(){let e=this.chart,t=function(t,i){let s=e[t];return s.length>1||s[0]&&eF(s[0].options.accessibility&&s[0].options.accessibility.enabled,i)},i=!!e.types&&0>e.types.indexOf("map")&&0>e.types.indexOf("treemap")&&0>e.types.indexOf("tilemap"),s=!!e.hasCartesianSeries,n=t("xAxis",!e.angular&&s&&i),r=t("yAxis",s&&i),o={};return n&&(o.xAxis=this.getAxisDescriptionText("xAxis")),r&&(o.yAxis=this.getAxisDescriptionText("yAxis")),o}getAxisDescriptionText(e){let t=this.chart,i=t[e];return t.langFormat("accessibility.axis."+e+"Description"+(i.length>1?"Plural":"Singular"),{chart:t,names:i.map(function(e){return eE(e)}),ranges:i.map(function(e){return eA(e)}),numAxes:i.length})}destroy(){this.announcer&&this.announcer.destroy()}},{attr:eH}=w(),{getChartTitle:ez,unhideChartElementFromAT:eq}=K,{getFakeMouseEvent:eG}=S;function eK(e){return e.exportSVGElements&&e.exportSVGElements[0]}class eU extends Z{init(){let e=this.chart,t=this;this.addEvent(e,"exportMenuShown",function(){t.onMenuShown()}),this.addEvent(e,"exportMenuHidden",function(){t.onMenuHidden()}),this.createProxyGroup()}onMenuHidden(){let e=this.chart.exportContextMenu;e&&e.setAttribute("aria-hidden","true"),this.setExportButtonExpandedState("false")}onMenuShown(){let e=this.chart,t=e.exportContextMenu;t&&(this.addAccessibleContextMenuAttribs(),eq(e,t)),this.setExportButtonExpandedState("true")}setExportButtonExpandedState(e){this.exportButtonProxy&&this.exportButtonProxy.innerElement.setAttribute("aria-expanded",e)}onChartRender(){let e=this.chart,t=e.focusElement,i=e.accessibility;this.proxyProvider.clearGroup("chartMenu"),this.proxyMenuButton(),this.exportButtonProxy&&t&&t===e.exportingGroup&&(t.focusBorder?e.setFocusToElement(t,this.exportButtonProxy.innerElement):i&&i.keyboardNavigation.tabindexContainer.focus())}proxyMenuButton(){let e=this.chart,t=this.proxyProvider,i=eK(e);(function(e){let t=e.options.exporting,i=eK(e);return!!(t&&!1!==t.enabled&&t.accessibility&&t.accessibility.enabled&&i&&i.element)})(e)&&i&&(this.exportButtonProxy=t.addProxyElement("chartMenu",{click:i},"button",{"aria-label":e.langFormat("accessibility.exporting.menuButtonLabel",{chart:e,chartTitle:ez(e)}),"aria-expanded":!1,title:e.options.lang.contextButtonTitle||null}))}createProxyGroup(){this.chart&&this.proxyProvider&&this.proxyProvider.addGroup("chartMenu")}addAccessibleContextMenuAttribs(){let e=this.chart,t=e.exportDivElements;if(t&&t.length){t.forEach(e=>{e&&("LI"!==e.tagName||e.children&&e.children.length?e.setAttribute("aria-hidden","true"):e.setAttribute("tabindex",-1))});let i=t[0]&&t[0].parentNode;i&&eH(i,{"aria-hidden":void 0,"aria-label":e.langFormat("accessibility.exporting.chartMenuLabel",{chart:e}),role:"list"})}}getKeyboardNavigation(){let e=this.keyCodes,t=this.chart,i=this;return new Q(t,{keyCodeMap:[[[e.left,e.up],function(){return i.onKbdPrevious(this)}],[[e.right,e.down],function(){return i.onKbdNext(this)}],[[e.enter,e.space],function(){return i.onKbdClick(this)}]],validate:function(){return!!t.exporting&&!1!==t.options.exporting.enabled&&!1!==t.options.exporting.accessibility.enabled},init:function(){let e=i.exportButtonProxy,s=i.chart.exportingGroup;e&&s&&t.setFocusToElement(s,e.innerElement)},terminate:function(){t.hideExportMenu()}})}onKbdPrevious(e){let t=this.chart,i=t.options.accessibility,s=e.response,n=t.highlightedExportItemIx||0;for(;n--;)if(t.highlightExportItem(n))return s.success;return i.keyboardNavigation.wrapAround?(t.highlightLastExportItem(),s.success):s.prev}onKbdNext(e){let t=this.chart,i=t.options.accessibility,s=e.response;for(let e=(t.highlightedExportItemIx||0)+1;e{e&&"highcharts-menu-item"===e.className&&e.onmouseout&&e.onmouseout(eG("mouseout"))}),this.highlightedExportItemIx=0,this.exportContextMenu.hideMenu(),this.container.focus())}function s(e){let t=this.exportDivElements&&this.exportDivElements[e],i=this.exportDivElements&&this.exportDivElements[this.highlightedExportItemIx];if(t&&"LI"===t.tagName&&!(t.children&&t.children.length)){let s=!!(this.renderTo.getElementsByTagName("g")[0]||{}).focus;return t.focus&&s&&t.focus(),i&&i.onmouseout&&i.onmouseout(eG("mouseout")),t.onmouseover&&t.onmouseover(eG("mouseover")),this.highlightedExportItemIx=e,!0}return!1}function n(){if(this.exportDivElements){let e=this.exportDivElements.length;for(;e--;)if(this.highlightExportItem(e))return!0}return!1}e.compose=function(e){let r=e.prototype;r.hideExportMenu||(r.hideExportMenu=i,r.highlightExportItem=s,r.highlightLastExportItem=n,r.showExportMenu=t)}}(eU||(eU={}));let eV=eU,{doc:eW,win:eX}=w(),{addEvent:eY,defined:ej,fireEvent:e_}=w(),{getElement:eZ,simulatedEventTarget:e$}=S;class eQ{constructor(e,t){this.currentModuleIx=NaN,this.modules=[],this.init(e,t)}init(e,t){let i=this.eventProvider=new Y;this.chart=e,this.components=t,this.modules=[],this.currentModuleIx=0,this.update(),i.addEvent(this.tabindexContainer,"keydown",e=>this.onKeydown(e)),i.addEvent(this.tabindexContainer,"focus",e=>this.onFocus(e)),["mouseup","touchend"].forEach(e=>i.addEvent(eW,e,e=>this.onMouseUp(e))),["mousedown","touchstart"].forEach(t=>i.addEvent(e.renderTo,t,()=>{this.isClickingChart=!0}))}update(e){let t=this.chart.options.accessibility,i=t&&t.keyboardNavigation,s=this.components;this.updateContainerTabindex(),i&&i.enabled&&e&&e.length?(this.modules=e.reduce(function(e,t){let i=s[t].getKeyboardNavigation();return e.concat(i)},[]),this.updateExitAnchor()):(this.modules=[],this.currentModuleIx=0,this.removeExitAnchor())}updateExitAnchor(){let e=eZ(`highcharts-end-of-chart-marker-${this.chart.index}`);this.removeExitAnchor(),e?(this.makeElementAnExitAnchor(e),this.exitAnchor=e):this.createExitAnchor()}move(e){let t=this.modules&&this.modules[this.currentModuleIx];t&&t.terminate&&t.terminate(e),this.chart.focusElement&&this.chart.focusElement.removeFocusBorder(),this.currentModuleIx+=e;let i=this.modules&&this.modules[this.currentModuleIx];if(i){if(i.validate&&!i.validate())return this.move(e);if(i.init)return i.init(e),!0}return this.currentModuleIx=0,this.exiting=!0,e>0?this.exitAnchor&&this.exitAnchor.focus():this.tabindexContainer.focus(),!1}onFocus(e){let t=this.chart,i=e.relatedTarget&&t.container.contains(e.relatedTarget),s=t.options.accessibility,n=s&&s.keyboardNavigation;if(n&&n.enabled&&!this.exiting&&!this.tabbingInBackwards&&!this.isClickingChart&&!i){let e=this.getFirstValidModuleIx();null!==e&&(this.currentModuleIx=e,this.modules[e].init(1))}this.keyboardReset=!1,this.exiting=!1}onMouseUp(e){if(delete this.isClickingChart,!this.keyboardReset&&e.relatedTarget!==e$){let t=this.chart;if(!e.target||!t.container.contains(e.target)){let e=this.modules&&this.modules[this.currentModuleIx||0];e&&e.terminate&&e.terminate(),this.currentModuleIx=0}t.focusElement&&(t.focusElement.removeFocusBorder(),delete t.focusElement),this.keyboardReset=!0}}onKeydown(e){let t;let i=e||eX.event,s=this.modules&&this.modules.length&&this.modules[this.currentModuleIx],n=i.target;if((!n||"INPUT"!==n.nodeName||n.classList.contains("highcharts-a11y-proxy-element"))&&(this.keyboardReset=!1,this.exiting=!1,s)){let e=s.run(i);e===s.response.success?t=!0:e===s.response.prev?t=this.move(-1):e===s.response.next&&(t=this.move(1)),t&&(i.preventDefault(),i.stopPropagation())}}updateContainerTabindex(){let e;let t=this.chart.options.accessibility,i=t&&t.keyboardNavigation,s=!(i&&!1===i.enabled),n=this.chart,r=n.container;n.renderTo.hasAttribute("tabindex")?(r.removeAttribute("tabindex"),e=n.renderTo):e=r,this.tabindexContainer=e;let o=e.getAttribute("tabindex");s&&!o?e.setAttribute("tabindex","0"):s||n.container.removeAttribute("tabindex")}createExitAnchor(){let e=this.chart,t=this.exitAnchor=eW.createElement("div");e.renderTo.appendChild(t),this.makeElementAnExitAnchor(t)}makeElementAnExitAnchor(e){let t=this.tabindexContainer.getAttribute("tabindex")||0;e.setAttribute("class","highcharts-exit-anchor"),e.setAttribute("tabindex",t),e.setAttribute("aria-hidden",!1),this.addExitAnchorEventsToEl(e)}removeExitAnchor(){if(this.exitAnchor){let e=this.eventProvider.eventRemovers.find(e=>e.element===this.exitAnchor);e&&ej(e.remover)&&this.eventProvider.removeEvent(e.remover),this.exitAnchor.parentNode&&this.exitAnchor.parentNode.removeChild(this.exitAnchor),delete this.exitAnchor}}addExitAnchorEventsToEl(e){let t=this.chart,i=this;this.eventProvider.addEvent(e,"focus",function(e){let s=e||eX.event,n=!(s.relatedTarget&&t.container.contains(s.relatedTarget)||i.exiting);if(t.focusElement&&delete t.focusElement,n){if(i.tabbingInBackwards=!0,i.tabindexContainer.focus(),delete i.tabbingInBackwards,s.preventDefault(),i.modules&&i.modules.length){i.currentModuleIx=i.modules.length-1;let e=i.modules[i.currentModuleIx];e&&e.validate&&!e.validate()?i.move(-1):e&&e.init(-1)}}else i.exiting=!1})}getFirstValidModuleIx(){let e=this.modules.length;for(let t=0;t{e&&e.dismissPopupContent&&e.dismissPopupContent()})}e.compose=function(e){eV.compose(e);let s=e.prototype;return s.dismissPopupContent||(s.dismissPopupContent=t,eY(eW,"keydown",i)),e}}(eQ||(eQ={}));let eJ=eQ;var e0=x(632),e1=x.n(e0);let{animObject:e2}=w(),{doc:e3}=w(),{addEvent:e5,fireEvent:e4,isNumber:e6,pick:e9,syncTimeout:e8}=w(),{getChartTitle:e7}=K,{stripHTMLTagsFromString:te,addClass:tt,removeClass:ti}=S;function ts(e){let t=e.legend&&e.legend.allItems,i=e.options.legend.accessibility||{},s=e.colorAxis&&e.colorAxis.some(e=>!e.dataClasses||!e.dataClasses.length);return!!(t&&t.length&&!s&&!1!==i.enabled)}function tn(e,t){let i=t.legendItem||{};for(let s of(t.setState(e?"hover":"",!0),["group","label","symbol"])){let t=i[s],n=t&&t.element||t;n&&e4(n,e?"mouseover":"mouseout")}}class tr extends Z{constructor(){super(...arguments),this.highlightedLegendItemIx=NaN,this.proxyGroup=null}init(){let e=this;this.recreateProxies(),this.addEvent(e1(),"afterScroll",function(){this.chart===e.chart&&(e.proxyProvider.updateGroupProxyElementPositions("legend"),e.updateLegendItemProxyVisibility(),e.highlightedLegendItemIx>-1&&this.chart.highlightLegendItem(e.highlightedLegendItemIx))}),this.addEvent(e1(),"afterPositionItem",function(t){this.chart===e.chart&&this.chart.renderer&&e.updateProxyPositionForItem(t.item)}),this.addEvent(e1(),"afterRender",function(){this.chart===e.chart&&this.chart.renderer&&e.recreateProxies()&&e8(()=>e.proxyProvider.updateGroupProxyElementPositions("legend"),e2(e9(this.chart.renderer.globalAnimation,!0)).duration)})}updateLegendItemProxyVisibility(){let e;let t=this.chart,i=t.legend,s=i.allItems||[],n=i.currentPage||1,r=i.clipHeight||0;s.forEach(s=>{if(s.a11yProxyElement){let o=i.pages&&i.pages.length,a=s.a11yProxyElement.element,l=!1;if(e=s.legendItem||{},o){let t=e.pageIx||0;l=(e.y||0)+(e.label?Math.round(e.label.getBBox().height):0)-i.pages[t]>r||t!==n-1}l?t.styledMode?tt(a,"highcharts-a11y-invisible"):a.style.visibility="hidden":(ti(a,"highcharts-a11y-invisible"),a.style.visibility="")}})}onChartRender(){ts(this.chart)||this.removeProxies()}highlightAdjacentLegendPage(e){let t=this.chart,i=t.legend,s=(i.currentPage||1)+e,n=i.pages||[];if(s>0&&s<=n.length){let e=0;for(let n of i.allItems)((n.legendItem||{}).pageIx||0)+1===s&&t.highlightLegendItem(e)&&(this.highlightedLegendItemIx=e),++e}}updateProxyPositionForItem(e){e.a11yProxyElement&&e.a11yProxyElement.refreshPosition()}recreateProxies(){let e=e3.activeElement,t=this.proxyGroup,i=e&&t&&t.contains(e);return this.removeProxies(),!!ts(this.chart)&&(this.addLegendProxyGroup(),this.proxyLegendItems(),this.updateLegendItemProxyVisibility(),this.updateLegendTitle(),i&&this.chart.highlightLegendItem(this.highlightedLegendItemIx),!0)}removeProxies(){this.proxyProvider.removeGroup("legend")}updateLegendTitle(){let e=this.chart,t=te((e.legend&&e.legend.options.title&&e.legend.options.title.text||"").replace(/
    /g," "),e.renderer.forExport),i=e.langFormat("accessibility.legend.legendLabel"+(t?"":"NoTitle"),{chart:e,legendTitle:t,chartTitle:e7(e)});this.proxyProvider.updateGroupAttrs("legend",{"aria-label":i})}addLegendProxyGroup(){let e="all"===this.chart.options.accessibility.landmarkVerbosity?"region":null;this.proxyGroup=this.proxyProvider.addGroup("legend","ul",{"aria-label":"_placeholder_",role:e})}proxyLegendItems(){let e;let t=this;((this.chart.legend||{}).allItems||[]).forEach(i=>{(e=i.legendItem||{}).label&&e.label.element&&t.proxyLegendItem(i)})}proxyLegendItem(e){let t=e.legendItem||{};if(!t.label||!t.group)return;let i=this.chart.langFormat("accessibility.legend.legendItem",{chart:this.chart,itemName:te(e.name,this.chart.renderer.forExport),item:e}),s={tabindex:-1,"aria-pressed":e.visible,"aria-label":i},n=t.group.div?t.label:t.group;e.a11yProxyElement=this.proxyProvider.addProxyElement("legend",{click:t.label,visual:n.element},"button",s)}getKeyboardNavigation(){let e=this.keyCodes,t=this,i=this.chart;return new Q(i,{keyCodeMap:[[[e.left,e.right,e.up,e.down],function(e){return t.onKbdArrowKey(this,e)}],[[e.enter,e.space],function(){return t.onKbdClick(this)}],[[e.pageDown,e.pageUp],function(i){let s=i===e.pageDown?1:-1;return t.highlightAdjacentLegendPage(s),this.response.success}]],validate:function(){return t.shouldHaveLegendNavigation()},init:function(){i.highlightLegendItem(0),t.highlightedLegendItemIx=0},terminate:function(){t.highlightedLegendItemIx=-1,i.legend.allItems.forEach(e=>tn(!1,e))}})}onKbdArrowKey(e,t){let{keyCodes:{left:i,up:s},highlightedLegendItemIx:n,chart:r}=this,o=r.legend.allItems.length,a=r.options.accessibility.keyboardNavigation.wrapAround,l=t===i||t===s?-1:1;return r.highlightLegendItem(n+l)?this.highlightedLegendItemIx+=l:a&&o>1&&(this.highlightedLegendItemIx=l>0?0:o-1,r.highlightLegendItem(this.highlightedLegendItemIx)),e.response.success}onKbdClick(e){let t=this.chart.legend.allItems[this.highlightedLegendItemIx];return t&&t.a11yProxyElement&&t.a11yProxyElement.click(),e.response.success}shouldHaveLegendNavigation(){if(!ts(this.chart))return!1;let e=this.chart,t=(e.options.legend||{}).accessibility||{};return!!(e.legend.display&&t.keyboardNavigation&&t.keyboardNavigation.enabled)}destroy(){this.removeProxies()}}!function(e){function t(e){let t=this.legend.allItems,i=this.accessibility&&this.accessibility.components.legend.highlightedLegendItemIx,s=t[e],n=s?.legendItem||{};if(s){e6(i)&&t[i]&&tn(!1,t[i]),function(e,t){let i=(e.allItems[t].legendItem||{}).pageIx,s=e.currentPage;void 0!==i&&i+1!==s&&e.scroll(1+i-s)}(this.legend,e);let r=n.label,o=s.a11yProxyElement&&s.a11yProxyElement.innerElement;return r&&r.element&&o&&this.setFocusToElement(r,o),tn(!0,s),!0}return!1}function i(e){let t=this.chart.options.accessibility,i=e.item;t.enabled&&i&&i.a11yProxyElement&&i.a11yProxyElement.innerElement.setAttribute("aria-pressed",e.visible?"true":"false")}e.compose=function(e,s){let n=e.prototype;n.highlightLegendItem||(n.highlightLegendItem=t,e5(s,"afterColorizeItem",i))}}(tr||(tr={}));let to=tr;var ta=x(532),tl=x.n(ta);let{isTouchDevice:th}=w(),{addEvent:tc,merge:td,pick:tu}=w(),tp=[];function tg(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function tm(){let e,t,i;let s=this.legend,n=this.navigator;if(n){e=s&&s.options,t=n.xAxis,i=n.yAxis;let{scrollbarHeight:r,scrollButtonSize:o}=n;this.inverted?(n.left=n.opposite?this.chartWidth-r-n.height:this.spacing[3]+r,n.top=this.plotTop+o):(n.left=tu(t.left,this.plotLeft+o),n.top=n.navigatorOptions.top||this.chartHeight-n.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(e&&"bottom"===e.verticalAlign&&"proximate"!==e.layout&&e.enabled&&!e.floating?s.legendHeight+tu(e.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),t&&i&&(this.inverted?t.options.left=i.options.left=n.left:t.options.top=i.options.top=n.top,t.setAxisSize(),i.setAxisSize())}}function tb(e){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this),tu(e.redraw,!0)&&this.redraw(e.animation))}function tf(){let e=this.options;(e.navigator.enabled||e.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this))}function tx(){let e=this.options,t=e.navigator,i=e.rangeSelector;if((t&&t.enabled||i&&i.enabled)&&(!th&&"x"===this.zooming.type||th&&"x"===this.zooming.pinchType))return!1}function ty(e){let t=e.navigator;if(t&&e.xAxis[0]){let i=e.xAxis[0].getExtremes();t.render(i.min,i.max)}}function tv(e){let t=e.options.navigator||{},i=e.options.scrollbar||{};!this.navigator&&!this.scroller&&(t.enabled||i.enabled)&&(td(!0,this.options.navigator,t),td(!0,this.options.scrollbar,i),delete e.options.navigator,delete e.options.scrollbar)}let tw={compose:function(e,t){if(w().pushUnique(tp,e)){let i=e.prototype;d=t,i.callbacks.push(ty),tc(e,"afterAddSeries",tg),tc(e,"afterSetChartSize",tm),tc(e,"afterUpdate",tb),tc(e,"beforeRender",tf),tc(e,"beforeShowResetZoom",tx),tc(e,"update",tv)}}},{isTouchDevice:tE}=w(),{addEvent:tA,correctFloat:tT,defined:tC,isNumber:tM,pick:tk}=w();function tS(){this.navigatorAxis||(this.navigatorAxis=new tD(this))}function tP(e){let t;let i=this.chart,s=i.options,n=s.navigator,r=this.navigatorAxis,o=i.zooming.pinchType,a=s.rangeSelector,l=i.zooming.type;if(this.isXAxis&&(n?.enabled||a?.enabled)){if("y"===l&&"zoom"===e.trigger)t=!1;else if(("zoom"===e.trigger&&"xy"===l||tE&&"xy"===o)&&this.options.range){let t=r.previousZoom;tC(e.min)?r.previousZoom=[this.min,this.max]:t&&(e.min=t[0],e.max=t[1],r.previousZoom=void 0)}}void 0!==t&&e.preventDefault()}class tD{static compose(e){e.keepProps.includes("navigatorAxis")||(e.keepProps.push("navigatorAxis"),tA(e,"init",tS),tA(e,"setExtremes",tP))}constructor(e){this.axis=e}destroy(){this.axis=void 0}toFixedRange(e,t,i,s){let n=this.axis,r=(n.pointRange||0)/2,o=tk(i,n.translate(e,!0,!n.horiz)),a=tk(s,n.translate(t,!0,!n.horiz));return tC(i)||(o=tT(o+r)),tC(s)||(a=tT(a-r)),tM(o)&&tM(a)||(o=a=void 0),{min:o,max:a}}}var tN=x(620),tB=x.n(tN),tI=x(512),tF=x.n(tI);let{parse:tO}=tB(),{seriesTypes:tR}=tF(),tL={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:tO("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===tR.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:tH,isNumber:tz,pick:tq}=w(),tG={rect:function(e,t,i,s,n){return n&&n.r?function(e,t,i,s,n){let r=n?.r||0;return[["M",e+r,t],["L",e+i-r,t],["A",r,r,0,0,1,e+i,t+r],["L",e+i,t+s-r],["A",r,r,0,0,1,e+i-r,t+s],["L",e+r,t+s],["A",r,r,0,0,1,e,t+s-r],["L",e,t+r],["A",r,r,0,0,1,e+r,t],["Z"]]}(e,t,i,s,n):[["M",e,t],["L",e+i,t],["L",e+i,t+s],["L",e,t+s],["Z"]]}},{relativeLength:tK}=w(),tU={"navigator-handle":function(e,t,i,s,n={}){let r=n.width?n.width/2:i,o=tK(n.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=n.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...tG.rect(-r-1,.5,2*r+1,s,{r:o})]}};var tV=x(608),tW=x.n(tV);let{defined:tX}=w(),{setOptions:tY}=w(),{composed:tj}=w(),{getRendererType:t_}=tW(),{setFixedRange:tZ}={setFixedRange:function(e){let t=this.xAxis[0];tX(t.dataMax)&&tX(t.dataMin)&&e?this.fixedRange=Math.min(e,t.dataMax-t.dataMin):this.fixedRange=e}},{addEvent:t$,extend:tQ,pushUnique:tJ}=w();function t0(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let t1={compose:function(e,t,i){tD.compose(t),tJ(tj,"Navigator")&&(e.prototype.setFixedRange=tZ,tQ(t_().prototype.symbols,tU),t$(i,"afterUpdate",t0),tY({navigator:tL}))}},{composed:t2}=w(),{addEvent:t3,defined:t5,pick:t4,pushUnique:t6}=w();!function(e){let t;function i(e){let t=t4(e.options&&e.options.min,e.min),i=t4(e.options&&e.options.max,e.max);return{axisMin:t,axisMax:i,scrollMin:t5(e.dataMin)?Math.min(t,e.min,e.dataMin,t4(e.threshold,1/0)):t,scrollMax:t5(e.dataMax)?Math.max(i,e.max,e.dataMax,t4(e.threshold,-1/0)):i}}function s(){let e=this.scrollbar,t=e&&!e.options.opposite,i=this.horiz?2:t?3:1;e&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=e.size+(e.options.margin||0))}function n(){let e=this;e.options&&e.options.scrollbar&&e.options.scrollbar.enabled&&(e.options.scrollbar.vertical=!e.horiz,e.options.startOnTick=e.options.endOnTick=!1,e.scrollbar=new t(e.chart.renderer,e.options.scrollbar,e.chart),t3(e.scrollbar,"changed",function(t){let s,n;let{axisMin:r,axisMax:o,scrollMin:a,scrollMax:l}=i(e),h=l-a;if(t5(r)&&t5(o)){if(e.horiz&&!e.reversed||!e.horiz&&e.reversed?(s=a+h*this.to,n=a+h*this.from):(s=a+h*(1-this.from),n=a+h*(1-this.to)),this.shouldUpdateExtremes(t.DOMType)){let i="mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&void 0;e.setExtremes(n,s,!0,i,t)}else this.setRange(this.from,this.to)}}))}function r(){let e,t,s;let{scrollMin:n,scrollMax:r}=i(this),o=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,h=this.options.margin||0;if(o&&l){if(this.horiz)this.opposite||(l[1]+=a),o.position(this.left,this.top+this.height+2+l[1]-(this.opposite?h:0),this.width,this.height),this.opposite||(l[1]+=h),e=1;else{let t;this.opposite&&(l[0]+=a),t=o.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:h):this.opposite?0:h,o.position(t,this.top,this.width,this.height),this.opposite&&(l[0]+=h),e=0}if(l[e]+=o.size+(o.options.margin||0),isNaN(n)||isNaN(r)||!t5(this.min)||!t5(this.max)||this.dataMin===this.dataMax)o.setRange(0,1);else if(this.min===this.max){let e=this.pointRange/(this.dataMax+1);t=e*this.min,s=e*(this.max+1),o.setRange(t,s)}else t=(this.min-n)/(r-n),s=(this.max-n)/(r-n),this.horiz&&!this.reversed||!this.horiz&&this.reversed?o.setRange(t,s):o.setRange(1-s,1-t)}}e.compose=function(e,i){t6(t2,"Axis.Scrollbar")&&(t=i,t3(e,"afterGetOffset",s),t3(e,"afterInit",n),t3(e,"afterRender",r))}}(g||(g={}));let t9=g,t8={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:t7}=w(),{addEvent:ie,correctFloat:it,crisp:ii,defined:is,destroyObjectProperties:ir,fireEvent:io,merge:ia,pick:il,removeEvent:ih}=w();class ic{static compose(e){t9.compose(e,ic)}static swapXY(e,t){return t&&e.forEach(e=>{let t;let i=e.length;for(let s=0;sthis.calculatedWidth?t.minWidth:0;return{chartX:(e.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(e.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let e=this,t=e.chart.scroller;e.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(t){e[t]&&e[t].destroy&&(e[t]=e[t].destroy())}),t&&e===t.scrollbar&&(t.scrollbar=null,ir(t.scrollbarButtons))}drawScrollbarButton(e){let t=this.renderer,i=this.scrollbarButtons,s=this.options,n=this.size,r=t.g().add(this.group);if(i.push(r),s.buttonsEnabled){let o=t.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||o.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),o.attr(o.crisp({x:-.5,y:-.5,width:n,height:n,r:s.buttonBorderRadius},o.strokeWidth()));let a=t.path(ic.swapXY([["M",n/2+(e?-1:1),n/2-3],["L",n/2+(e?-1:1),n/2+3],["L",n/2+(e?2:-2),n/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[e]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(e,t,i){this.scrollbarButtons=[],this.renderer=e,this.userOptions=t,this.options=ia(t8,t7.scrollbar,t),this.options.margin=il(this.options.margin,10),this.chart=i,this.size=il(this.options.size,this.options.height),t.enabled&&(this.render(),this.addEvents())}mouseDownHandler(e){let t=this.chart.pointer?.normalize(e)||e,i=this.cursorToScrollbarPosition(t);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(e){let t;let i=this.chart.pointer?.normalize(e)||e,s=this.options.vertical?"chartY":"chartX",n=this.initPositions||[];this.grabbedCenter&&(!e.touches||0!==e.touches[0][s])&&(t=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(n[0]+t,n[1]+t),this.hasDragged&&io(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:e.type,DOMEvent:e}))}mouseUpHandler(e){this.hasDragged&&io(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:e.type,DOMEvent:e}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(e,t,i,s){let{buttonsEnabled:n,margin:r=0,vertical:o}=this.options,a=this.rendered?"animate":"attr",l=s,h=0;this.group.show(),this.x=e,this.y=t+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=l,this.yOffset=h,o?(this.width=this.yOffset=i=h=this.size,this.xOffset=l=0,this.yOffset=h=n?this.size:0,this.barWidth=s-(n?2*i:0),this.x=e+=r):(this.height=s=this.size,this.xOffset=l=n?this.size:0,this.barWidth=i-(n?2*s:0),this.y=this.y+r),this.group[a]({translateX:e,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:o?0:i-l,translateY:o?s-h:0})}removeEvents(){this._events.forEach(function(e){ih.apply(null,e)}),this._events.length=0}render(){let e=this.renderer,t=this.options,i=this.size,s=this.chart.styledMode,n=e.g("scrollbar").attr({zIndex:t.zIndex}).hide().add();this.group=n,this.track=e.rect().addClass("highcharts-scrollbar-track").attr({r:t.trackBorderRadius||0,height:i,width:i}).add(n),s||this.track.attr({fill:t.trackBackgroundColor,stroke:t.trackBorderColor,"stroke-width":t.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-ii(0,r),y:-ii(0,r)}),this.scrollbarGroup=e.g().add(n),this.scrollbar=e.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:t.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=e.path(ic.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],t.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:t.barBackgroundColor,stroke:t.barBorderColor,"stroke-width":t.barBorderWidth}),this.scrollbarRifles.attr({stroke:t.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-ii(0,this.scrollbarStrokeWidth),-ii(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(e,t){let i,s;let n=this.options,r=n.vertical,o=n.minWidth,a=this.barWidth,l=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!is(a))return;let h=a*Math.min(t,1);i=Math.ceil(a*(e=Math.max(e,0))),this.calculatedWidth=s=it(h-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(e){return il(this.options.liveRedraw,w().svg&&!w().isTouchDevice&&!this.chart.boosted)||"mouseup"===e||"touchend"===e||!is(e)}trackClick(e){let t=this.chart.pointer?.normalize(e)||e,i=this.to-this.from,s=this.y+this.scrollbarTop,n=this.x+this.scrollbarLeft;this.options.vertical&&t.chartY>s||!this.options.vertical&&t.chartX>n?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),io(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:e})}update(e){this.destroy(),this.init(this.chart.renderer,ia(!0,this.options,e),this.chart)}updatePosition(e,t){t>1&&(e=it(1-it(t-e)),t=1),e<0&&(t=it(t-e),e=0),this.from=e,this.to=t}}ic.defaultOptions=t8,t7.scrollbar=ia(!0,ic.defaultOptions,t7.scrollbar);var id=x(540),iu=x.n(id);let{defaultOptions:ip}=w(),{isTouchDevice:ig}=w(),{prototype:{symbols:im}}=iu(),{addEvent:ib,clamp:ix,correctFloat:iy,defined:iv,destroyObjectProperties:iw,erase:iE,extend:iA,find:iT,fireEvent:iC,isArray:iM,isNumber:ik,merge:iS,pick:iP,removeEvent:iD,splat:iN}=w();function iB(e,...t){let i=[].filter.call(t,ik);if(i.length)return Math[e].apply(0,i)}class iI{static compose(e,t,i){tw.compose(e,iI),t1.compose(e,t,i)}constructor(e){this.isDirty=!1,this.scrollbarHeight=0,this.init(e)}drawHandle(e,t,i,s){let n=this.navigatorOptions.handles.height;this.handles[t][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(e,10)+.5-n)}:{translateX:Math.round(this.left+parseInt(e,10)),translateY:Math.round(this.top+this.height/2-n/2-1)})}drawOutline(e,t,i,s){let n=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),o=r/2,a=r%2/2,l=this.scrollButtonSize,h=this.size,c=this.top,d=this.height,u=c-o,p=c+d,g=this.left,m,b;i?(m=c+t+a,t=c+e+a,b=[["M",g+d,c-l-a],["L",g+d,m],["L",g,m],["M",g,t],["L",g+d,t],["L",g+d,c+h+l]],n&&b.push(["M",g+d,m-o],["L",g+d,t+o])):(g-=l,e+=g+l-a,t+=g+l-a,b=[["M",g,u],["L",e,u],["L",e,p],["M",t,p],["L",t,u],["L",g+h+2*l,u]],n&&b.push(["M",e-o,u],["L",t+o,u])),this.outline[s]({d:b})}drawMasks(e,t,i,s){let n,r,o,a;let l=this.left,h=this.top,c=this.height;i?(o=[l,l,l],a=[h,h+e,h+t],r=[c,c,c],n=[e,t-e,this.size-t]):(o=[l,l+e,l+t],a=[h,h,h],r=[e,t-e,this.size-t],n=[c,c,c]),this.shades.forEach((e,t)=>{e[s]({x:o[t],y:a[t],width:r[t],height:n[t]})})}renderElements(){let e=this,t=e.navigatorOptions,i=t.maskInside,s=e.chart,n=s.inverted,r=s.renderer,o={cursor:n?"ns-resize":"ew-resize"},a=e.navigatorGroup??(e.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,n)=>{let l=e.shades[n]??(e.shades[n]=r.rect().addClass("highcharts-navigator-mask"+(1===n?"-inside":"-outside")).add(a));s.styledMode||(l.attr({fill:i?t.maskFill:"rgba(0,0,0,0)"}),1===n&&l.css(o))}),e.outline||(e.outline=r.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||e.outline.attr({"stroke-width":t.outlineWidth,stroke:t.outlineColor}),t.handles?.enabled){let i=t.handles,{height:n,width:l}=i;[0,1].forEach(t=>{let h=i.symbols[t];if(e.handles[t]&&e.handles[t].symbolUrl===h){if(!e.handles[t].isImg&&e.handles[t].symbolName!==h){let i=im[h].call(im,-l/2-1,0,l,n);e.handles[t].attr({d:i}),e.handles[t].symbolName=h}}else e.handles[t]?.destroy(),e.handles[t]=r.symbol(h,-l/2-1,0,l,n,i),e.handles[t].attr({zIndex:7-t}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][t]).add(a),e.addMouseEvents();s.inverted&&e.handles[t].attr({rotation:90,rotationOriginX:Math.floor(-l/2),rotationOriginY:(n+l)/2}),s.styledMode||e.handles[t].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-l/2-1,y:0}).css(o)})}}update(e,t=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(iS(!0,i.options.navigator,e),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),iv(e.enabled)||s)return this.destroy(),this.navigatorEnabled=e.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===e.adaptToUpdatedData&&this.baseSeries.forEach(e=>{iD(e,"updatedData",this.updatedDataHandler)},this),e.adaptToUpdatedData&&this.baseSeries.forEach(e=>{e.eventsToUnbind.push(ib(e,"updatedData",this.updatedDataHandler))},this),(e.series||e.baseSeries)&&this.setBaseSeries(void 0,!1),e.height||e.xAxis||e.yAxis)){this.height=e.height??this.height;let t=this.getXAxisOffsets();this.xAxis.update({...e.xAxis,offsets:t,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...e.yAxis,[i.inverted?"width":"height"]:this.height},!1)}t&&i.redraw()}render(e,t,i,s){let n=this.chart,r=this.xAxis,o=r.pointRange||0,a=r.navigatorAxis.fake?n.xAxis[0]:r,l=this.navigatorEnabled,h=this.rendered,c=n.inverted,d=n.xAxis[0].minRange,u=n.xAxis[0].options.maxRange,p=this.scrollButtonSize,g,m,b,f=this.scrollbarHeight,x,y;if(this.hasDragged&&!iv(i))return;if(this.isDirty&&this.renderElements(),e=iy(e-o/2),t=iy(t+o/2),!ik(e)||!ik(t)){if(!h)return;i=0,s=iP(r.width,a.width)}this.left=iP(r.left,n.plotLeft+p+(c?n.plotWidth:0));let v=this.size=x=iP(r.len,(c?n.plotHeight:n.plotWidth)-2*p);g=c?f:x+2*p,i=iP(i,r.toPixels(e,!0)),s=iP(s,r.toPixels(t,!0)),ik(i)&&Math.abs(i)!==1/0||(i=0,s=g);let w=r.toValue(i,!0),E=r.toValue(s,!0),A=Math.abs(iy(E-w));Au&&(this.grabbedLeft?i=r.toPixels(E-u-o,!0):this.grabbedRight&&(s=r.toPixels(w+u+o,!0))),this.zoomedMax=ix(Math.max(i,s),0,v),this.zoomedMin=ix(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let T=Math.round(this.zoomedMin);l&&(this.navigatorGroup.attr({visibility:"inherit"}),y=h&&!this.hasDragged?"animate":"attr",this.drawMasks(T,v,c,y),this.drawOutline(T,v,c,y),this.navigatorOptions.handles.enabled&&(this.drawHandle(T,0,c,y),this.drawHandle(v,1,c,y))),this.scrollbar&&(c?(b=this.top-p,m=this.left-f+(l||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),f=x+2*p):(b=this.top+(l?this.height:-f),m=this.left-p),this.scrollbar.position(m,b,g,f),this.scrollbar.setRange(this.zoomedMin/(x||1),this.zoomedMax/(x||1))),this.rendered=!0,this.isDirty=!1,iC(this,"afterRender")}addMouseEvents(){let e=this,t=e.chart,i=t.container,s=[],n,r;e.mouseMoveHandler=n=function(t){e.onMouseMove(t)},e.mouseUpHandler=r=function(t){e.onMouseUp(t)},(s=e.getPartsEvents("mousedown")).push(ib(t.renderTo,"mousemove",n),ib(i.ownerDocument,"mouseup",r),ib(t.renderTo,"touchmove",n),ib(i.ownerDocument,"touchend",r)),s.concat(e.getPartsEvents("touchstart")),e.eventsToUnbind=s,e.series&&e.series[0]&&s.push(ib(e.series[0].xAxis,"foundExtremes",function(){t.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(e){let t=this,i=[];return["shades","handles"].forEach(function(s){t[s].forEach(function(n,r){i.push(ib(n.element,e,function(e){t[s+"Mousedown"](e,r)}))})}),i}shadesMousedown(e,t){e=this.chart.pointer?.normalize(e)||e;let i=this.chart,s=this.xAxis,n=this.zoomedMin,r=this.size,o=this.range,a=this.left,l=e.chartX,h,c,d,u;i.inverted&&(l=e.chartY,a=this.top),1===t?(this.grabbedCenter=l,this.fixedWidth=o,this.dragOffset=l-n):(u=l-a-o/2,0===t?u=Math.max(0,u):2===t&&u+o>=r&&(u=r-o,this.reversedExtremes?(u-=o,c=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),u!==n&&(this.fixedWidth=o,iv((d=s.navigatorAxis.toFixedRange(u,u+o,c,h)).min)&&iC(this,"setRange",{min:Math.min(d.min,d.max),max:Math.max(d.min,d.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(e,t){e=this.chart.pointer?.normalize(e)||e;let i=this.chart,s=i.xAxis[0],n=this.reversedExtremes;0===t?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=n?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=n?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(e){let t=this,i=t.chart,s=t.navigatorSize,n=t.range,r=t.dragOffset,o=i.inverted,a=t.left,l;(!e.touches||0!==e.touches[0].pageX)&&(l=(e=i.pointer?.normalize(e)||e).chartX,o&&(a=t.top,l=e.chartY),t.grabbedLeft?(t.hasDragged=!0,t.render(0,0,l-a,t.otherHandlePos)):t.grabbedRight?(t.hasDragged=!0,t.render(0,0,t.otherHandlePos,l-a)):t.grabbedCenter&&(t.hasDragged=!0,ls+r-n&&(l=s+r-n),t.render(0,0,l-r,l-r+n)),t.hasDragged&&t.scrollbar&&iP(t.scrollbar.options.liveRedraw,!ig&&!this.chart.boosted)&&(e.DOMType=e.type,setTimeout(function(){t.onMouseUp(e)},0)))}onMouseUp(e){let t,i,s,n,r,o;let a=this.chart,l=this.xAxis,h=this.scrollbar,c=e.DOMEvent||e,d=a.inverted,u=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!h||!h.hasDragged)||"scrollbar"===e.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?n=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(n=this.reversedExtremes?s.dataMax:s.dataMin),iv((o=l.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,n,r)).min)&&iC(this,"setRange",{min:Math.min(o.min,o.max),max:Math.max(o.min,o.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:c}})),"mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&ik(this.zoomedMin)&&ik(this.zoomedMax)&&(i=Math.round(this.zoomedMin),t=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,t,d,u),this.outline&&this.drawOutline(i,t,d,u),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,d,u),this.drawHandle(t,1,d,u)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(e){e()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let e=this.baseSeries||[];this.navigatorEnabled&&e[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&e.forEach(function(e){iD(e,"updatedData",this.updatedDataHandler)},this),e[0].xAxis&&iD(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(e){let t=e.options,i=t.navigator||{},s=i.enabled,n=t.scrollbar||{},r=n.enabled,o=s&&i.height||0,a=r&&n.height||0,l=n.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=e,this.setBaseSeries(),this.height=o,this.scrollbarHeight=a,this.scrollButtonSize=l,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=n,this.setOpposite();let h=this,c=h.baseSeries,d=e.xAxis.length,u=e.yAxis.length,p=c&&c[0]&&c[0].xAxis||e.xAxis[0]||{options:{}};if(e.isDirtyBox=!0,h.navigatorEnabled){let t=this.getXAxisOffsets();h.xAxis=new(tl())(e,iS({breaks:p.options.breaks,ordinal:p.options.ordinal,overscroll:p.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:d,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:p.options.ordinal?0:p.options.minPadding,maxPadding:p.options.ordinal?0:p.options.maxPadding,zoomEnabled:!1},e.inverted?{offsets:t,width:o}:{offsets:t,height:o}),"xAxis"),h.yAxis=new(tl())(e,iS(i.yAxis,{alignTicks:!1,offset:0,index:u,isInternal:!0,reversed:iP(i.yAxis&&i.yAxis.reversed,e.yAxis[0]&&e.yAxis[0].reversed,!1),zoomEnabled:!1},e.inverted?{width:o}:{height:o}),"yAxis"),c||i.series.data?h.updateNavigatorSeries(!1):0===e.series.length&&(h.unbindRedraw=ib(e,"beforeRedraw",function(){e.series.length>0&&!h.series&&(h.setBaseSeries(),h.unbindRedraw())})),h.reversedExtremes=e.inverted&&!h.xAxis.reversed||!e.inverted&&h.xAxis.reversed,h.renderElements(),h.addMouseEvents()}else h.xAxis={chart:e,navigatorAxis:{fake:!0},translate:function(t,i){let s=e.xAxis[0],n=s.getExtremes(),r=s.len-2*l,o=iB("min",s.options.min,n.dataMin),a=iB("max",s.options.max,n.dataMax)-o;return i?t*a/r+o:r*(t-o)/a},toPixels:function(e){return this.translate(e)},toValue:function(e){return this.translate(e,!0)}},h.xAxis.navigatorAxis.axis=h.xAxis,h.xAxis.navigatorAxis.toFixedRange=tD.prototype.toFixedRange.bind(h.xAxis.navigatorAxis);if(e.options.scrollbar.enabled){let t=iS(e.options.scrollbar,{vertical:e.inverted});!ik(t.margin)&&h.navigatorEnabled&&(t.margin=e.inverted?-3:3),e.scrollbar=h.scrollbar=new ic(e.renderer,t,e),ib(h.scrollbar,"changed",function(e){let t=h.size,i=t*this.to,s=t*this.from;h.hasDragged=h.scrollbar.hasDragged,h.render(0,0,s,i),this.shouldUpdateExtremes(e.DOMType)&&setTimeout(function(){h.onMouseUp(e)})})}h.addBaseSeriesEvents(),h.addChartEvents()}setOpposite(){let e=this.navigatorOptions,t=this.navigatorEnabled,i=this.chart;this.opposite=iP(e.opposite,!!(!t&&i.inverted))}getUnionExtremes(e){let t;let i=this.chart.xAxis[0],s=this.chart.time,n=this.xAxis,r=n.options,o=i.options;return e&&null===i.dataMin||(t={dataMin:iP(s.parse(r?.min),iB("min",s.parse(o.min),i.dataMin,n.dataMin,n.min)),dataMax:iP(s.parse(r?.max),iB("max",s.parse(o.max),i.dataMax,n.dataMax,n.max))}),t}setBaseSeries(e,t){let i=this.chart,s=this.baseSeries=[];e=e||i.options&&i.options.navigator.baseSeries||(i.series.length?iT(i.series,e=>!e.options.isInternal).index:0),(i.series||[]).forEach((t,i)=>{!t.options.isInternal&&(t.options.showInNavigator||(i===e||t.options.id===e)&&!1!==t.options.showInNavigator)&&s.push(t)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,t)}updateNavigatorSeries(e,t){let i=this,s=i.chart,n=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},o=i.series=(i.series||[]).filter(e=>{let t=e.baseSeries;return!(0>n.indexOf(t))||(t&&(iD(t,"updatedData",i.updatedDataHandler),delete t.navigatorSeries),e.chart&&e.destroy(),!1)}),a,l,h=i.navigatorOptions.series,c;n&&n.length&&n.forEach(e=>{let d=e.navigatorSeries,u=iA({color:e.color,visible:e.visible},iM(h)?ip.navigator.series:h);if(d&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+n.length,c=(a=e.options||{}).navigatorOptions||{},u.dataLabels=iN(u.dataLabels),(l=iS(a,r,u,c)).pointRange=iP(u.pointRange,c.pointRange,ip.plotOptions[l.type||"line"].pointRange);let p=c.data||u.data;i.hasNavigatorData=i.hasNavigatorData||!!p,l.data=p||a.data?.slice(0),d&&d.options?d.update(l,t):(e.navigatorSeries=s.initSeries(l),s.setSortedData(),e.navigatorSeries.baseSeries=e,o.push(e.navigatorSeries))}),(h.data&&!(n&&n.length)||iM(h))&&(i.hasNavigatorData=!1,(h=iN(h)).forEach((e,t)=>{r.name="Navigator "+(o.length+1),(l=iS(ip.navigator.series,{color:s.series[t]&&!s.series[t].options.isInternal&&s.series[t].color||s.options.colors[t]||s.options.colors[0]},r,e)).data=e.data,l.data&&(i.hasNavigatorData=!0,o.push(s.initSeries(l)))})),e&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let e=this,t=e.baseSeries||[];t[0]&&t[0].xAxis&&t[0].eventsToUnbind.push(ib(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),t.forEach(i=>{i.eventsToUnbind.push(ib(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(ib(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(ib(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(ib(i,"remove",function(){t&&iE(t,i),this.navigatorSeries&&e.series&&(iE(e.series,this.navigatorSeries),iv(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(e){return this.baseSeries.reduce(function(e,t){return Math.min(e,t.getColumn("x")[0]??e)},e)}modifyNavigatorAxisExtremes(){let e=this.xAxis;if(void 0!==e.getExtremes){let t=this.getUnionExtremes(!0);t&&(t.dataMin!==e.min||t.dataMax!==e.max)&&(e.min=t.dataMin,e.max=t.dataMax)}}modifyBaseAxisExtremes(){let e,t;let i=this.chart.navigator,s=this.getExtremes(),n=s.min,r=s.max,o=s.dataMin,a=s.dataMax,l=r-n,h=i.stickToMin,c=i.stickToMax,d=iP(this.ordinal?.convertOverscroll(this.options.overscroll),0),u=i.series&&i.series[0],p=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(h&&(e=(t=o)+l),c&&(e=a+d,h||(t=Math.max(o,e-l,i.getBaseSeriesMin(u&&u.xData?u.xData[0]:-Number.MAX_VALUE)))),p&&(h||c)&&ik(t)&&(this.min=this.userMin=t,this.max=this.userMax=e)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let e=this.chart.navigator,t=this.navigatorSeries,i=e.reversedExtremes?0===Math.round(e.zoomedMin):Math.round(e.zoomedMax)>=Math.round(e.size);e.stickToMax=iP(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),e.stickToMin=e.shouldStickToMin(this,e),t&&!e.hasNavigatorData&&(t.options.pointStart=this.getColumn("x")[0],t.setData(this.options.data,!1,null,!1))}shouldStickToMin(e,t){let i=t.getBaseSeriesMin(e.getColumn("x")[0]),s=e.xAxis,n=s.max,r=s.min,o=s.options.range;return!!(ik(n)&&ik(r))&&(o&&n-i>0?n-i{e.destroy&&e.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(e=>{this[e]&&this[e].destroy&&this[e].destroy(),this[e]=null}),[this.handles].forEach(e=>{iw(e)}),this.navigatorEnabled=!1}}let{animObject:iF}=w(),{format:iO}=D(),{clamp:iR,pick:iL,syncTimeout:iH}=w(),{getFakeMouseEvent:iz}=S,{getAxisRangeDescription:iq,fireEventOnWrappedOrUnwrappedElement:iG}=K,iK=class extends Z{init(){let e=this.chart,t=this;this.announcer=new ep(e,"polite"),this.addEvent(iI,"afterRender",function(){this.chart===t.chart&&this.chart.renderer&&iH(()=>{t.proxyProvider.updateGroupProxyElementPositions("navigator"),t.updateHandleValues()},iF(iL(this.chart.renderer.globalAnimation,!0)).duration)})}onChartUpdate(){let e=this.chart,t=e.options,i=t.navigator;if(i.enabled&&i.accessibility?.enabled){let i=t.accessibility.landmarkVerbosity,s=t.lang.accessibility?.navigator.groupLabel;this.proxyProvider.removeGroup("navigator"),this.proxyProvider.addGroup("navigator","div",{role:"all"===i?"region":"group","aria-label":iO(s,{chart:e},e)});let n=t.lang.accessibility?.navigator.handleLabel;[0,1].forEach(t=>{let i=this.getHandleByIx(t);if(i){let s=this.proxyProvider.addProxyElement("navigator",{click:i},"input",{type:"range","aria-label":iO(n,{handleIx:t,chart:e},e)});this[t?"maxHandleProxy":"minHandleProxy"]=s.innerElement,s.innerElement.style.pointerEvents="none",s.innerElement.oninput=()=>this.updateNavigator()}}),this.updateHandleValues()}else this.proxyProvider.removeGroup("navigator")}getNavigatorHandleNavigation(e){let t=this,i=this.chart,s=e?this.maxHandleProxy:this.minHandleProxy,n=this.keyCodes;return new Q(i,{keyCodeMap:[[[n.left,n.right,n.up,n.down],function(r){if(s){let o=r===n.left||r===n.up?-1:1;s.value=""+iR(parseFloat(s.value)+o,0,100),t.updateNavigator(()=>{let n=t.getHandleByIx(e);n&&i.setFocusToElement(n,s)})}return this.response.success}]],init:()=>{i.setFocusToElement(this.getHandleByIx(e),s)},validate:()=>!!(this.getHandleByIx(e)&&s&&i.options.navigator.accessibility?.enabled)})}getKeyboardNavigation(){return[this.getNavigatorHandleNavigation(0),this.getNavigatorHandleNavigation(1)]}destroy(){this.updateNavigatorThrottleTimer&&clearTimeout(this.updateNavigatorThrottleTimer),this.proxyProvider.removeGroup("navigator"),this.announcer&&this.announcer.destroy()}updateHandleValues(){let e=this.chart.navigator;if(e&&this.minHandleProxy&&this.maxHandleProxy){let t=e.size;this.minHandleProxy.value=""+Math.round(e.zoomedMin/t*100),this.maxHandleProxy.value=""+Math.round(e.zoomedMax/t*100)}}getHandleByIx(e){let t=this.chart.navigator;return t&&t.handles&&t.handles[e]}updateNavigator(e){this.updateNavigatorThrottleTimer&&clearTimeout(this.updateNavigatorThrottleTimer),this.updateNavigatorThrottleTimer=setTimeout((e=>{let t=this.chart,{navigator:i,pointer:s}=t;if(i&&s&&this.minHandleProxy&&this.maxHandleProxy){let n=s.getChartPosition(),r=parseFloat(this.minHandleProxy.value)/100*i.size,o=parseFloat(this.maxHandleProxy.value)/100*i.size;[[0,"mousedown",i.zoomedMin],[0,"mousemove",r],[0,"mouseup",r],[1,"mousedown",i.zoomedMax],[1,"mousemove",o],[1,"mouseup",o]].forEach(([e,t,s])=>{let r=this.getHandleByIx(e)?.element;r&&iG(r,iz(t,{x:n.left+i.left+s,y:n.top+i.top},r))}),e&&e();let a=t.options.lang.accessibility?.navigator.changeAnnouncement,l=iq(t.xAxis[0]);this.announcer.announce(iO(a,{axisRangeDescription:l,chart:t},t))}}).bind(this,e),20)}},{getPointAnnotationTexts:iU}=ev,{getAxisDescription:iV,getSeriesFirstPointElement:iW,getSeriesA11yElement:iX,unhideChartElementFromAT:iY}=K,{format:ij,numberFormat:i_}=D(),{reverseChildNodes:iZ,stripHTMLTagsFromString:i$}=S,{find:iQ,isNumber:iJ,isString:i0,pick:i1,defined:i2}=w();function i3(e){let t=e.chart.options.accessibility.series.pointDescriptionEnabledThreshold;return!!(!1!==t&&e.points&&e.points.length>=+t)}function i5(e,t){let i=e.series,s=i.chart,n=s.options.accessibility.point||{},r=i.options.accessibility&&i.options.accessibility.point||{},o=i.tooltipOptions||{},a=s.options.lang;return iJ(t)?i_(t,r.valueDecimals||n.valueDecimals||o.valueDecimals||-1,a.decimalPoint,a.accessibility.thousandsSep||a.thousandsSep):t}function i4(e,t){let i=e[t];return e.chart.langFormat("accessibility.series."+t+"Description",{name:iV(i),series:e})}function i6(e){let t=e.series,i=t.chart.series.length>1||t.options.name,s=function(e){let t=e.series,i=t.chart,s=t.options.accessibility,n=s&&s.point&&s.point.valueDescriptionFormat||i.options.accessibility.point.valueDescriptionFormat,r=i1(t.xAxis&&t.xAxis.options.accessibility&&t.xAxis.options.accessibility.enabled,!i.angular&&"flowmap"!==t.type),o=r?function(e){let t=function(e){let t=e.series,i=t.chart,s=t.options.accessibility&&t.options.accessibility.point||{},n=i.options.accessibility.point||{},r=t.xAxis&&t.xAxis.dateTime;if(r){let t=r.getXDateFormat(e.x||0,i.options.tooltip.dateTimeLabelFormats),o=s.dateFormatter&&s.dateFormatter(e)||n.dateFormatter&&n.dateFormatter(e)||s.dateFormat||n.dateFormat||t;return i.time.dateFormat(o,e.x||0,void 0)}}(e),i=(e.series.xAxis||{}).categories&&i2(e.category)&&(""+e.category).replace("
    "," "),s=i2(e.id)&&0>(""+e.id).indexOf("highcharts-"),n="x, "+e.x;return e.name||t||i||(s?e.id:n)}(e):"";return ij(n,{point:e,index:i2(e.index)?e.index+1:"",xDescription:o,value:function(e){let t=e.series,i=t.chart.options.accessibility.point||{},s=t.chart.options.accessibility&&t.chart.options.accessibility.point||{},n=t.tooltipOptions||{},r=s.valuePrefix||i.valuePrefix||n.valuePrefix||"",o=s.valueSuffix||i.valueSuffix||n.valueSuffix||"",a=void 0!==e.value?"value":"y",l=i5(e,e[a]);return e.isNull?t.chart.langFormat("accessibility.series.nullPointValue",{point:e}):t.pointArrayMap?function(e,t,i){let s=t||"",n=i||"",r=function(t){let i=i5(e,i1(e[t],e.options[t]));return void 0!==i?t+": "+s+i+n:i};return e.series.pointArrayMap.reduce(function(e,t){let i=r(t);return i?e+(e.length?", ":"")+i:e},"")}(e,r,o):r+l+o}(e),separator:r?", ":""},i)}(e),n=e.options&&e.options.accessibility&&e.options.accessibility.description,r=i?" "+t.name+".":"",o=function(e){let t=e.series.chart,i=iU(e);return i.length?t.langFormat("accessibility.series.pointAnnotationsDescription",{point:e,annotations:i}):""}(e);return e.accessibility=e.accessibility||{},e.accessibility.valueDescription=s,s+(n?" "+n:"")+r+(o?" "+o:"")}function i9(e){let t=e.chart,i=t.types||[],s=function(e){let t=(e.options.accessibility||{}).description;return t&&e.chart.langFormat("accessibility.series.description",{description:t,series:e})||""}(e),n=function(i){return t[i]&&t[i].length>1&&e[i]},r=e.index+1,o=i4(e,"xAxis"),a=i4(e,"yAxis"),l={seriesNumber:r,series:e,chart:t},h=i.length>1?"Combination":"",c=t.langFormat("accessibility.series.summary."+e.type+h,l)||t.langFormat("accessibility.series.summary.default"+h,l),d=(n("yAxis")?" "+a+".":"")+(n("xAxis")?" "+o+".":"");return ij(i1(e.options.accessibility&&e.options.accessibility.descriptionFormat,t.options.accessibility.series.descriptionFormat,""),{seriesDescription:c,authorDescription:s?" "+s:"",axisDescription:d,series:e,chart:t,seriesNumber:r},void 0)}let i8={defaultPointDescriptionFormatter:i6,defaultSeriesDescriptionFormatter:i9,describeSeries:function(e){let t=e.chart,i=iW(e),s=iX(e),n=t.is3d&&t.is3d();s&&(s.lastChild!==i||n||iZ(s),function(e){let t=function(e){let t=e.options.accessibility||{};return!i3(e)&&!t.exposeAsGroupOnly}(e),i=function(e){let t=e.chart.options.accessibility.keyboardNavigation.seriesNavigation;return!!(e.points&&(e.points.length<+t.pointNavigationEnabledThreshold||!1===t.pointNavigationEnabledThreshold))}(e),s=e.chart.options.accessibility.point.describeNull;(t||i)&&e.points.forEach(i=>{let n=i.graphic&&i.graphic.element||function(e){let t=e.series,i=t&&t.chart,s=t&&t.is("sunburst"),n=e.isNull,r=i&&i.options.accessibility.point.describeNull;return n&&!s&&r}(i)&&function(e){let t=e.series,i=function(e){let t=e.index;return e.series&&e.series.data&&i2(t)&&iQ(e.series.data,function(e){return!!(e&&void 0!==e.index&&e.index>t&&e.graphic&&e.graphic.element)})||null}(e),s=i&&i.graphic,n=s?s.parentGroup:t.graph||t.group,r=i?{x:i1(e.plotX,i.plotX,0),y:i1(e.plotY,i.plotY,0)}:{x:i1(e.plotX,0),y:i1(e.plotY,0)},o=function(e,t){let i=e.series.chart.renderer.rect(t.x,t.y,1,1);return i.attr({class:"highcharts-a11y-mock-point",fill:"none",opacity:0,"fill-opacity":0,"stroke-opacity":0}),i}(e,r);if(n&&n.element)return e.graphic=o,e.hasMockGraphic=!0,o.add(n),n.element.insertBefore(o.element,s?s.element:null),o.element}(i),r=i.options&&i.options.accessibility&&!1===i.options.accessibility.enabled;if(n){if(i.isNull&&!s){n.setAttribute("aria-hidden",!0);return}n.setAttribute("tabindex","-1"),e.chart.styledMode||(n.style.outline="none"),t&&!r?function(e,t){let i=e.series,s=i.options.accessibility?.point||{},n=i.chart.options.accessibility.point||{},r=i$(i0(s.descriptionFormat)&&ij(s.descriptionFormat,e,i.chart)||s.descriptionFormatter?.(e)||i0(n.descriptionFormat)&&ij(n.descriptionFormat,e,i.chart)||n.descriptionFormatter?.(e)||i6(e),i.chart.renderer.forExport);t.setAttribute("role","img"),t.setAttribute("aria-label",r)}(i,n):n.setAttribute("aria-hidden",!0)}})}(e),iY(t,s),function(e){let t=e.chart,i=t.options.chart,s=i.options3d&&i.options3d.enabled,n=t.series.length>1,r=t.options.accessibility.series.describeSingleSeries,o=(e.options.accessibility||{}).exposeAsGroupOnly;return!(s&&n)&&(n||r||o||i3(e))}(e)?function(e,t){let i=e.options.accessibility||{},s=e.chart.options.accessibility,n=s.landmarkVerbosity;i.exposeAsGroupOnly?t.setAttribute("role","img"):"all"===n?t.setAttribute("role","region"):t.setAttribute("role","group"),t.setAttribute("tabindex","-1"),e.chart.styledMode||(t.style.outline="none"),t.setAttribute("aria-label",i$(s.series.descriptionFormatter&&s.series.descriptionFormatter(e)||i9(e),e.chart.renderer.forExport))}(e,s):s.removeAttribute("aria-label"))}},{composed:i7}=w(),{addEvent:se,defined:st,pushUnique:si}=w(),{getChartTitle:ss}=K,{defaultPointDescriptionFormatter:sn,defaultSeriesDescriptionFormatter:sr}=i8;function so(e){return!!e.options.accessibility.announceNewData.enabled}class sa{constructor(e){this.dirty={allSeries:{}},this.lastAnnouncementTime=0,this.chart=e}init(){let e=this.chart,t=e.options.accessibility.announceNewData.interruptUser?"assertive":"polite";this.lastAnnouncementTime=0,this.dirty={allSeries:{}},this.eventProvider=new Y,this.announcer=new ep(e,t),this.addEventListeners()}destroy(){this.eventProvider.removeAddedEvents(),this.announcer.destroy()}addEventListeners(){let e=this,t=this.chart,i=this.eventProvider;i.addEvent(t,"afterApplyDrilldown",function(){e.lastAnnouncementTime=0}),i.addEvent(t,"afterAddSeries",function(t){e.onSeriesAdded(t.series)}),i.addEvent(t,"redraw",function(){e.announceDirtyData()})}onSeriesAdded(e){so(this.chart)&&(this.dirty.hasDirty=!0,this.dirty.allSeries[e.name+e.index]=e,this.dirty.newSeries=st(this.dirty.newSeries)?void 0:e)}announceDirtyData(){let e=this.chart,t=this;if(e.options.accessibility.announceNewData&&this.dirty.hasDirty){let e=this.dirty.newPoint;e&&(e=function(e){let t=e.series.data.filter(t=>e.x===t.x&&e.y===t.y);return 1===t.length?t[0]:e}(e)),this.queueAnnouncement(Object.keys(this.dirty.allSeries).map(e=>t.dirty.allSeries[e]),this.dirty.newSeries,e),this.dirty={allSeries:{}}}}queueAnnouncement(e,t,i){let s=this.chart.options.accessibility.announceNewData;if(s.enabled){let n=+new Date,r=n-this.lastAnnouncementTime,o=Math.max(0,s.minAnnounceInterval-r),a=function(e,t){let i=(e||[]).concat(t||[]).reduce((e,t)=>(e[t.name+t.index]=t,e),{});return Object.keys(i).map(e=>i[e])}(this.queuedAnnouncement&&this.queuedAnnouncement.series,e),l=this.buildAnnouncementMessage(a,t,i);l&&(this.queuedAnnouncement&&clearTimeout(this.queuedAnnouncementTimer),this.queuedAnnouncement={time:n,message:l,series:a},this.queuedAnnouncementTimer=setTimeout(()=>{this&&this.announcer&&(this.lastAnnouncementTime=+new Date,this.announcer.announce(this.queuedAnnouncement.message),delete this.queuedAnnouncement,delete this.queuedAnnouncementTimer)},o))}}buildAnnouncementMessage(e,t,i){let s=this.chart,n=s.options.accessibility.announceNewData;if(n.announcementFormatter){let s=n.announcementFormatter(e,t,i);if(!1!==s)return s.length?s:null}let r=w().charts&&w().charts.length>1?"Multiple":"Single",o=t?"newSeriesAnnounce"+r:i?"newPointAnnounce"+r:"newDataAnnounce",a=ss(s);return s.langFormat("accessibility.announceNewData."+o,{chartTitle:a,seriesDesc:t?sr(t):null,pointDesc:i?sn(i):null,point:i,series:t})}}!function(e){function t(e){let t=this.chart,i=t.accessibility?.components.series.newDataAnnouncer;i&&i.chart===t&&so(t)&&(i.dirty.newPoint=st(i.dirty.newPoint)?void 0:e.point)}function i(){let e=this.chart,t=e.accessibility?.components.series.newDataAnnouncer;t&&t.chart===e&&so(e)&&(t.dirty.hasDirty=!0,t.dirty.allSeries[this.name+this.index]=this)}e.compose=function(e){si(i7,"A11y.NDA")&&(se(e,"addPoint",t),se(e,"updatedData",i))}}(sa||(sa={}));let sl=sa,{doc:sh}=w(),{attr:sc,css:sd,merge:su}=w(),{fireEventOnWrappedOrUnwrappedElement:sp}=K,{cloneMouseEvent:sg,cloneTouchEvent:sm,getFakeMouseEvent:sb,removeElement:sf}=S,sx=class{constructor(e,t,i="button",s,n){this.chart=e,this.target=t,this.eventProvider=new Y;let r=this.innerElement=sh.createElement(i),o=this.element=s?sh.createElement(s):r;e.styledMode||this.hideElementVisually(r),s&&("li"!==s||e.styledMode||(o.style.listStyle="none"),o.appendChild(r),this.element=o),this.updateTarget(t,n)}click(){let e=this.getTargetPosition();e.x+=e.width/2,e.y+=e.height/2;let t=sb("click",e);sp(this.target.click,t)}updateTarget(e,t){this.target=e,this.updateCSSClassName();let i=t||{};Object.keys(i).forEach(e=>{null===i[e]&&delete i[e]});let s=this.getTargetAttr(e.click,"aria-label");sc(this.innerElement,su(s?{"aria-label":s}:{},i)),this.eventProvider.removeAddedEvents(),this.addProxyEventsToElement(this.innerElement,e.click),this.refreshPosition()}refreshPosition(){let e=this.getTargetPosition();sd(this.innerElement,{width:(e.width||1)+"px",height:(e.height||1)+"px",left:(Math.round(e.x)||0)+"px",top:(Math.round(e.y)||0)+"px"})}remove(){this.eventProvider.removeAddedEvents(),sf(this.element)}updateCSSClassName(){let e=e=>e.indexOf("highcharts-no-tooltip")>-1,t=this.chart.legend,i=t.group&&t.group.div,s=e(i&&i.className||""),n=e(this.getTargetAttr(this.target.click,"class")||"");this.innerElement.className=s||n?"highcharts-a11y-proxy-element highcharts-no-tooltip":"highcharts-a11y-proxy-element"}addProxyEventsToElement(e,t){["click","touchstart","touchend","touchcancel","touchmove","mouseover","mouseenter","mouseleave","mouseout"].forEach(i=>{let s=0===i.indexOf("touch");this.eventProvider.addEvent(e,i,e=>{let i=s?sm(e):sg(e);t&&sp(t,i),e.stopPropagation(),s||e.preventDefault()},{passive:!1})})}hideElementVisually(e){sd(e,{borderWidth:0,backgroundColor:"transparent",cursor:"pointer",outline:"none",opacity:.001,filter:"alpha(opacity=1)",zIndex:999,overflow:"hidden",padding:0,margin:0,display:"block",position:"absolute","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)"})}getTargetPosition(){let e=this.target.click,t=e.element?e.element:e,i=this.target.visual||t,s=this.chart.renderTo,n=this.chart.pointer;if(s&&i?.getBoundingClientRect&&n){let e=i.getBoundingClientRect(),t=n.getChartPosition();return{x:(e.left-t.left)/t.scaleX,y:(e.top-t.top)/t.scaleY,width:e.right/t.scaleX-e.left/t.scaleX,height:e.bottom/t.scaleY-e.top/t.scaleY}}return{x:0,y:0,width:1,height:1}}getTargetAttr(e,t){return e.element?e.element.getAttribute(t):e.getAttribute(t)}},{doc:sy}=w(),{attr:sv,css:sw}=w(),{unhideChartElementFromAT:sE}=K,{removeChildNodes:sA}=S,sT=class{constructor(e){this.chart=e,this.domElementProvider=new W,this.groups={},this.groupOrder=[],this.beforeChartProxyPosContainer=this.createProxyPosContainer("before"),this.afterChartProxyPosContainer=this.createProxyPosContainer("after"),this.update()}addProxyElement(e,t,i="button",s){let n=this.groups[e];if(!n)throw Error("ProxyProvider.addProxyElement: Invalid group key "+e);let r="ul"===n.type||"ol"===n.type?"li":void 0,o=new sx(this.chart,t,i,r,s);return n.proxyContainerElement.appendChild(o.element),n.proxyElements.push(o),o}addGroup(e,t="div",i){let s;let n=this.groups[e];if(n)return n.groupElement;let r=this.domElementProvider.createElement(t);return i&&i.role&&"div"!==t?(s=this.domElementProvider.createElement("div")).appendChild(r):s=r,s.className="highcharts-a11y-proxy-group highcharts-a11y-proxy-group-"+e.replace(/\W/g,"-"),this.groups[e]={proxyContainerElement:r,groupElement:s,type:t,proxyElements:[]},sv(s,i||{}),"ul"===t&&r.setAttribute("role","list"),this.afterChartProxyPosContainer.appendChild(s),this.updateGroupOrder(this.groupOrder),s}updateGroupAttrs(e,t){let i=this.groups[e];if(!i)throw Error("ProxyProvider.updateGroupAttrs: Invalid group key "+e);sv(i.groupElement,t)}updateGroupOrder(e){if(this.groupOrder=e.slice(),this.isDOMOrderGroupOrder())return;let t=e.indexOf("series"),i=t>-1?e.slice(0,t):e,s=t>-1?e.slice(t+1):[],n=sy.activeElement;["before","after"].forEach(e=>{let t=this["before"===e?"beforeChartProxyPosContainer":"afterChartProxyPosContainer"];sA(t),("before"===e?i:s).forEach(e=>{let i=this.groups[e];i&&t.appendChild(i.groupElement)})}),(this.beforeChartProxyPosContainer.contains(n)||this.afterChartProxyPosContainer.contains(n))&&n&&n.focus&&n.focus()}clearGroup(e){let t=this.groups[e];if(!t)throw Error("ProxyProvider.clearGroup: Invalid group key "+e);sA(t.proxyContainerElement)}removeGroup(e){let t=this.groups[e];t&&(this.domElementProvider.removeElement(t.groupElement),t.groupElement!==t.proxyContainerElement&&this.domElementProvider.removeElement(t.proxyContainerElement),delete this.groups[e])}update(){this.updatePosContainerPositions(),this.updateGroupOrder(this.groupOrder),this.updateProxyElementPositions()}updateProxyElementPositions(){Object.keys(this.groups).forEach(this.updateGroupProxyElementPositions.bind(this))}updateGroupProxyElementPositions(e){let t=this.groups[e];t&&t.proxyElements.forEach(e=>e.refreshPosition())}destroy(){this.domElementProvider.destroyCreatedElements()}createProxyPosContainer(e){let t=this.domElementProvider.createElement("div");return t.setAttribute("aria-hidden","false"),t.className="highcharts-a11y-proxy-container"+(e?"-"+e:""),sw(t,{top:"0",left:"0"}),this.chart.styledMode||(t.style.whiteSpace="nowrap",t.style.position="absolute"),t}getCurrentGroupOrderInDOM(){let e=e=>{let t=Object.keys(this.groups),i=t.length;for(;i--;){let s=t[i],n=this.groups[s];if(n&&e===n.groupElement)return s}},t=t=>{let i=[],s=t.children;for(let t=0;t"series"===e||!!this.groups[e]),i=e.length;if(i!==t.length)return!1;for(;i--;)if(e[i]!==t[i])return!1;return!0}updatePosContainerPositions(){let e=this.chart;if(e.renderer.forExport)return;let t=e.renderer.box;e.container.insertBefore(this.afterChartProxyPosContainer,t.nextSibling),e.container.insertBefore(this.beforeChartProxyPosContainer,t),sE(this.chart,this.afterChartProxyPosContainer),sE(this.chart,this.beforeChartProxyPosContainer)}},{unhideChartElementFromAT:sC,getAxisRangeDescription:sM}=K,{addEvent:sk,attr:sS}=w();class sP extends Z{init(){let e=this.chart;this.announcer=new ep(e,"polite")}onChartUpdate(){let e=this.chart,t=this,i=e.rangeSelector;i&&(this.updateSelectorVisibility(),this.setDropdownAttrs(),i.buttons&&i.buttons.length&&i.buttons.forEach(e=>{t.setRangeButtonAttrs(e)}),i.maxInput&&i.minInput&&["minInput","maxInput"].forEach(function(s,n){let r=i[s];r&&(sC(e,r),t.setRangeInputAttrs(r,"accessibility.rangeSelector."+(n?"max":"min")+"InputLabel"))}))}updateSelectorVisibility(){let e=this.chart,t=e.rangeSelector,i=t&&t.dropdown,s=t&&t.buttons||[],n=e=>e.setAttribute("aria-hidden",!0);t&&t.hasVisibleDropdown&&i?(sC(e,i),s.forEach(e=>n(e.element))):(i&&n(i),s.forEach(t=>sC(e,t.element)))}setDropdownAttrs(){let e=this.chart,t=e.rangeSelector&&e.rangeSelector.dropdown;if(t){let i=e.langFormat("accessibility.rangeSelector.dropdownLabel",{rangeTitle:e.options.lang.rangeSelectorZoom});t.setAttribute("aria-label",i),t.setAttribute("tabindex",-1)}}setRangeButtonAttrs(e){sS(e.element,{tabindex:-1,role:"button"})}setRangeInputAttrs(e,t){let i=this.chart;sS(e,{tabindex:-1,"aria-label":i.langFormat(t,{chart:i})})}onButtonNavKbdArrowKey(e,t){let i=e.response,s=this.keyCodes,n=this.chart,r=n.options.accessibility.keyboardNavigation.wrapAround,o=t===s.left||t===s.up?-1:1;return n.highlightRangeSelectorButton(n.highlightedRangeSelectorItemIx+o)?i.success:r?(e.init(o),i.success):i[o>0?"next":"prev"]}onButtonNavKbdClick(e){let t=e.response,i=this.chart;return 3!==i.oldRangeSelectorItemState&&this.fakeClickEvent(i.rangeSelector.buttons[i.highlightedRangeSelectorItemIx].element),t.success}onAfterBtnClick(){let e=this.chart,t=sM(e.xAxis[0]),i=e.langFormat("accessibility.rangeSelector.clickButtonAnnouncement",{chart:e,axisRangeDescription:t});i&&this.announcer.announce(i)}onInputKbdMove(e){let t=this.chart,i=t.rangeSelector,s=t.highlightedInputRangeIx=(t.highlightedInputRangeIx||0)+e;if(s>1||s<0){if(t.accessibility)return t.accessibility.keyboardNavigation.exiting=!0,t.accessibility.keyboardNavigation.tabindexContainer.focus(),t.accessibility.keyboardNavigation.move(e)}else if(i){let e=i[s?"maxDateBox":"minDateBox"],n=i[s?"maxInput":"minInput"];e&&n&&t.setFocusToElement(e,n)}return!0}onInputNavInit(e){let t=this,i=this.chart,s=e>0?0:1,n=i.rangeSelector,r=n&&n[s?"maxDateBox":"minDateBox"],o=n&&n.minInput,a=n&&n.maxInput;if(i.highlightedInputRangeIx=s,r&&o&&a){i.setFocusToElement(r,s?a:o),this.removeInputKeydownHandler&&this.removeInputKeydownHandler();let e=e=>{(e.which||e.keyCode)===this.keyCodes.tab&&t.onInputKbdMove(e.shiftKey?-1:1)&&(e.preventDefault(),e.stopPropagation())},n=sk(o,"keydown",e),l=sk(a,"keydown",e);this.removeInputKeydownHandler=()=>{n(),l()}}}onInputNavTerminate(){let e=this.chart.rangeSelector||{};e.maxInput&&e.hideInput("max"),e.minInput&&e.hideInput("min"),this.removeInputKeydownHandler&&(this.removeInputKeydownHandler(),delete this.removeInputKeydownHandler)}initDropdownNav(){let e=this.chart,t=e.rangeSelector,i=t&&t.dropdown;t&&i&&(e.setFocusToElement(t.buttonGroup,i),this.removeDropdownKeydownHandler&&this.removeDropdownKeydownHandler(),this.removeDropdownKeydownHandler=sk(i,"keydown",t=>{let i=(t.which||t.keyCode)===this.keyCodes.tab,s=e.accessibility;i&&(t.preventDefault(),t.stopPropagation(),s&&s.keyboardNavigation.move(t.shiftKey?-1:1))}))}getRangeSelectorButtonNavigation(){let e=this.chart,t=this.keyCodes,i=this;return new Q(e,{keyCodeMap:[[[t.left,t.right,t.up,t.down],function(e){return i.onButtonNavKbdArrowKey(this,e)}],[[t.enter,t.space],function(){return i.onButtonNavKbdClick(this)}]],validate:function(){return!!(e.rangeSelector&&e.rangeSelector.buttons&&e.rangeSelector.buttons.length)},init:function(t){let s=e.rangeSelector;if(s&&s.hasVisibleDropdown)i.initDropdownNav();else if(s){let i=s.buttons.length-1;e.highlightRangeSelectorButton(t>0?0:i)}},terminate:function(){i.removeDropdownKeydownHandler&&(i.removeDropdownKeydownHandler(),delete i.removeDropdownKeydownHandler)}})}getRangeSelectorInputNavigation(){let e=this.chart,t=this;return new Q(e,{keyCodeMap:[],validate:function(){return!!(e.rangeSelector&&e.rangeSelector.inputGroup&&"hidden"!==e.rangeSelector.inputGroup.element.style.visibility&&!1!==e.options.rangeSelector.inputEnabled&&e.rangeSelector.minInput&&e.rangeSelector.maxInput)},init:function(e){t.onInputNavInit(e)},terminate:function(){t.onInputNavTerminate()}})}getKeyboardNavigation(){return[this.getRangeSelectorButtonNavigation(),this.getRangeSelectorInputNavigation()]}destroy(){this.removeDropdownKeydownHandler&&this.removeDropdownKeydownHandler(),this.removeInputKeydownHandler&&this.removeInputKeydownHandler(),this.announcer&&this.announcer.destroy()}}!function(e){function t(e){let t=this.rangeSelector&&this.rangeSelector.buttons||[],i=this.highlightedRangeSelectorItemIx,s=this.rangeSelector&&this.rangeSelector.selected;return void 0!==i&&t[i]&&i!==s&&t[i].setState(this.oldRangeSelectorItemState||0),this.highlightedRangeSelectorItemIx=e,!!t[e]&&(this.setFocusToElement(t[e].box,t[e].element),e!==s&&(this.oldRangeSelectorItemState=t[e].state,t[e].setState(1)),!0)}function i(){let e=this.chart.accessibility;if(e&&e.components.rangeSelector)return e.components.rangeSelector.onAfterBtnClick()}e.compose=function(e,s){let n=e.prototype;n.highlightRangeSelectorButton||(n.highlightRangeSelectorButton=t,sk(s,"afterBtnClick",i))}}(sP||(sP={}));let sD=sP,{composed:sN}=w(),{addEvent:sB,merge:sI,pushUnique:sF}=w();!function(e){function t(e){sI(!0,e,{marker:{enabled:!0,states:{normal:{opacity:0}}}})}function i(e){return e.marker.states&&e.marker.states.normal&&e.marker.states.normal.opacity}function s(e){return!!(e._hasPointMarkers&&e.points&&e.points.length)}function n(){this.chart.styledMode&&(this.markerGroup&&this.markerGroup[this.a11yMarkersForced?"addClass":"removeClass"]("highcharts-a11y-markers-hidden"),s(this)&&this.points.forEach(e=>{e.graphic&&(e.graphic[e.hasForcedA11yMarker?"addClass":"removeClass"]("highcharts-a11y-marker-hidden"),e.graphic[!1===e.hasForcedA11yMarker?"addClass":"removeClass"]("highcharts-a11y-marker-visible"))}))}function r(e){this.resetA11yMarkerOptions=sI(e.options.marker||{},this.userOptions.marker||{})}function o(){let e=this.options;!function(e){let t=e.chart.options.accessibility.enabled,i=!1!==(e.options.accessibility&&e.options.accessibility.enabled);return t&&i&&function(e){let t=e.chart.options.accessibility;return e.points.length-1;t.highlightedPoint===this&&i!==e&&!n&&e&&e.focus&&e.focus()})}onDrillupAll(){let e;let t=this.lastDrilledDownPoint,i=this.chart,s=t&&sW(i,t.seriesName);t&&s&&sK(t.x)&&sK(t.y)&&(e=sV(s,t.x,t.y)),e=e||sZ(i),i.container&&i.container.focus(),e&&e.highlight&&e.highlight(!1)}getKeyboardNavigationHandler(){let e=this,t=this.keyCodes,i=this.chart,s=i.inverted;return new Q(i,{keyCodeMap:[[s?[t.up,t.down]:[t.left,t.right],function(t){return e.onKbdSideways(this,t)}],[s?[t.left,t.right]:[t.up,t.down],function(t){return e.onKbdVertical(this,t)}],[[t.enter,t.space],function(e,t){let s=i.highlightedPoint;if(s){let{plotLeft:e,plotTop:i}=this.chart,{plotX:n=0,plotY:r=0}=s;t={...t,chartX:e+n,chartY:i+r,point:s,target:s.graphic?.element||t.target},sU(s.series,"click",t),s.firePointEvent("click",t)}return this.response.success}],[[t.home],function(){return sQ(i),this.response.success}],[[t.end],function(){return s$(i),this.response.success}],[[t.pageDown,t.pageUp],function(e){return i.highlightAdjacentSeries(e===t.pageDown),this.response.success}]],init:function(){return e.onHandlerInit(this)},validate:function(){return!!sZ(i)},terminate:function(){return e.onHandlerTerminate()}})}onKbdSideways(e,t){let i=this.keyCodes,s=t===i.right||t===i.down;return this.attemptHighlightAdjacentPoint(e,s)}onHandlerInit(e){let t=this.chart;return t.options.accessibility.keyboardNavigation.seriesNavigation.rememberPointFocus&&t.highlightedPoint?t.highlightedPoint.highlight():sQ(t),e.response.success}onKbdVertical(e,t){let i=this.chart,s=this.keyCodes,n=t===s.down||t===s.right,r=i.options.accessibility.keyboardNavigation.seriesNavigation;if(r.mode&&"serialize"===r.mode)return this.attemptHighlightAdjacentPoint(e,n);let o=i.highlightedPoint&&i.highlightedPoint.series.keyboardMoveVertical?"highlightAdjacentPointVertical":"highlightAdjacentSeries";return i[o](n),e.response.success}onHandlerTerminate(){let e=this.chart,t=e.options.accessibility.keyboardNavigation;e.tooltip&&e.tooltip.hide(0);let i=e.highlightedPoint&&e.highlightedPoint.series;i&&i.onMouseOut&&i.onMouseOut(),e.highlightedPoint&&e.highlightedPoint.onMouseOut&&e.highlightedPoint.onMouseOut(),t.seriesNavigation.rememberPointFocus||delete e.highlightedPoint}attemptHighlightAdjacentPoint(e,t){let i=this.chart,s=i.options.accessibility.keyboardNavigation.wrapAround;return i.highlightAdjacentPoint(t)?e.response.success:s&&(t?sQ(i):s$(i))?e.response.success:e.response[t?"next":"prev"]}onSeriesDestroy(e){let t=this.chart;t.highlightedPoint&&t.highlightedPoint.series===e&&(delete t.highlightedPoint,t.focusElement&&t.focusElement.removeFocusBorder())}destroy(){this.eventProvider.removeAddedEvents()}}!function(e){function t(e){let t,i;let s=this.series,n=this.highlightedPoint,r=n&&sY(n)||0,o=n&&n.series.points||[],a=this.series&&this.series[this.series.length-1],l=a&&a.points&&a.points[a.points.length-1];if(!s[0]||!s[0].points)return!1;if(n){if(t=s[n.series.index+(e?1:-1)],(i=o[r+(e?1:-1)])||!t||(i=t.points[e?0:t.points.length-1]),!i)return!1}else i=e?s[0].points[0]:l;return s_(i)?(sj(t=i.series)?this.highlightedPoint=e?t.points[t.points.length-1]:t.points[0]:this.highlightedPoint=i,this.highlightAdjacentPoint(e)):i.highlight()}function i(e){let t=this.highlightedPoint,i=1/0,s;return!!(sK(t.plotX)&&sK(t.plotY))&&(this.series.forEach(n=>{sj(n)||n.points.forEach(r=>{if(!sK(r.plotY)||!sK(r.plotX)||r===t)return;let o=r.plotY-t.plotY,a=Math.abs(r.plotX-t.plotX),l=Math.abs(o)*Math.abs(o)+a*a*4;n.yAxis&&n.yAxis.reversed&&(o*=-1),!(o<=0&&e||o>=0&&!e||l<5||s_(r))&&l!(sK(e.plotX)&&sK(e.plotY));if(!h(e)){for(;l--;)!h(r=t.points[l])&&(a=(e.plotX-r.plotX)*(e.plotX-r.plotX)*4+(e.plotY-r.plotY)*(e.plotY-r.plotY)*1)=0;--e)if(!s_(i[e]))return i[e].highlight()}return!1}e.compose=function(e,o,a){let l=e.prototype,h=o.prototype,c=a.prototype;l.highlightAdjacentPoint||(l.highlightAdjacentPoint=t,l.highlightAdjacentPointVertical=i,l.highlightAdjacentSeries=s,h.highlight=n,c.keyboardMoveVertical=!0,["column","gantt","pie"].forEach(e=>{sq[e]&&(sq[e].prototype.keyboardMoveVertical=!1)}),c.highlightNextValidPoint=r)}}(sJ||(sJ={}));let s0=sJ,{hideSeriesFromAT:s1}=K,{describeSeries:s2}=i8,s3=class extends Z{static compose(e,t,i){sl.compose(i),sO.compose(i),s0.compose(e,t,i)}init(){this.newDataAnnouncer=new sl(this.chart),this.newDataAnnouncer.init(),this.keyboardNavigation=new s0(this.chart,this.keyCodes),this.keyboardNavigation.init(),this.hideTooltipFromATWhenShown(),this.hideSeriesLabelsFromATWhenShown()}hideTooltipFromATWhenShown(){let e=this;this.chart.tooltip&&this.addEvent(this.chart.tooltip.constructor,"refresh",function(){this.chart===e.chart&&this.label&&this.label.element&&this.label.element.setAttribute("aria-hidden",!0)})}hideSeriesLabelsFromATWhenShown(){this.addEvent(this.chart,"afterDrawSeriesLabels",function(){this.series.forEach(function(e){e.labelBySeries&&e.labelBySeries.attr("aria-hidden",!0)})})}onChartRender(){this.chart.series.forEach(function(e){!1!==(e.options.accessibility&&e.options.accessibility.enabled)&&e.visible&&0!==e.getPointsCollection().length?s2(e):s1(e)})}getKeyboardNavigation(){return this.keyboardNavigation.getKeyboardNavigationHandler()}destroy(){this.newDataAnnouncer.destroy(),this.keyboardNavigation.destroy()}},{unhideChartElementFromAT:s5}=K,{getFakeMouseEvent:s4}=S,{attr:s6,pick:s9}=w(),s8=class extends Z{constructor(){super(...arguments),this.focusedMapNavButtonIx=-1}init(){let e=this,t=this.chart;this.proxyProvider.addGroup("zoom","div"),["afterShowResetZoom","afterApplyDrilldown","drillupall"].forEach(i=>{e.addEvent(t,i,function(){e.updateProxyOverlays()})})}onChartUpdate(){let e=this.chart,t=this;e.mapNavigation&&e.mapNavigation.navButtons.forEach((i,s)=>{s5(e,i.element),t.setMapNavButtonAttrs(i.element,"accessibility.zoom.mapZoom"+(s?"Out":"In"))})}setMapNavButtonAttrs(e,t){let i=this.chart;s6(e,{tabindex:-1,role:"button","aria-label":i.langFormat(t,{chart:i})})}onChartRender(){this.updateProxyOverlays()}updateProxyOverlays(){let e=this.chart;if(this.proxyProvider.clearGroup("zoom"),e.resetZoomButton&&this.createZoomProxyButton(e.resetZoomButton,"resetZoomProxyButton",e.langFormat("accessibility.zoom.resetZoomButton",{chart:e})),e.drillUpButton&&e.breadcrumbs&&e.breadcrumbs.list){let t=e.breadcrumbs.list[e.breadcrumbs.list.length-1];this.createZoomProxyButton(e.drillUpButton,"drillUpProxyButton",e.langFormat("accessibility.drillUpButton",{chart:e,buttonText:e.breadcrumbs.getButtonText(t)}))}}createZoomProxyButton(e,t,i){this[t]=this.proxyProvider.addProxyElement("zoom",{click:e},"button",{"aria-label":i,tabindex:-1})}getMapZoomNavigation(){let e=this.keyCodes,t=this.chart,i=this;return new Q(t,{keyCodeMap:[[[e.up,e.down,e.left,e.right],function(e){return i.onMapKbdArrow(this,e)}],[[e.tab],function(e,t){return i.onMapKbdTab(this,t)}],[[e.space,e.enter],function(){return i.onMapKbdClick(this)}]],validate:function(){return!!(t.mapView&&t.mapNavigation&&t.mapNavigation.navButtons.length)},init:function(e){return i.onMapNavInit(e)}})}onMapKbdArrow(e,t){let i=this.chart,s=this.keyCodes,n=i.container,r=t===s.up||t===s.down,o=t===s.left||t===s.up?1:-1,a=(r?i.plotHeight:i.plotWidth)/10*o,l=10*Math.random(),h={x:n.offsetLeft+i.plotLeft+i.plotWidth/2+l,y:n.offsetTop+i.plotTop+i.plotHeight/2+l},c=r?{x:h.x,y:h.y+a}:{x:h.x+a,y:h.y};return[s4("mousedown",h),s4("mousemove",c),s4("mouseup",c)].forEach(e=>n.dispatchEvent(e)),e.response.success}onMapKbdTab(e,t){let i=this.chart,s=e.response,n=t.shiftKey,r=n&&!this.focusedMapNavButtonIx||!n&&this.focusedMapNavButtonIx;if(i.mapNavigation.navButtons[this.focusedMapNavButtonIx].setState(0),r)return i.mapView&&i.mapView.zoomBy(),s[n?"prev":"next"];this.focusedMapNavButtonIx+=n?-1:1;let o=i.mapNavigation.navButtons[this.focusedMapNavButtonIx];return i.setFocusToElement(o.box,o.element),o.setState(2),s.success}onMapKbdClick(e){let t=this.chart.mapNavigation.navButtons[this.focusedMapNavButtonIx].element;return this.fakeClickEvent(t),e.response.success}onMapNavInit(e){let t=this.chart,i=t.mapNavigation.navButtons[0],s=t.mapNavigation.navButtons[1],n=e>0?i:s;t.setFocusToElement(n.box,n.element),n.setState(2),this.focusedMapNavButtonIx=e>0?0:1}simpleButtonNavigation(e,t,i){let s=this.keyCodes,n=this,r=this.chart;return new Q(r,{keyCodeMap:[[[s.tab,s.up,s.down,s.left,s.right],function(e,t){let i=e===s.tab&&t.shiftKey||e===s.left||e===s.up;return this.response[i?"prev":"next"]}],[[s.space,s.enter],function(){return s9(i(this,r),this.response.success)}]],validate:function(){return r[e]&&r[e].box&&n[t].innerElement},init:function(){r.setFocusToElement(r[e].box,n[t].innerElement)}})}getKeyboardNavigation(){return[this.simpleButtonNavigation("resetZoomButton","resetZoomProxyButton",function(e,t){t.zoomOut()}),this.simpleButtonNavigation("drillUpButton","drillUpProxyButton",function(e,t){return t.drillUp(),e.response.prev}),this.getMapZoomNavigation()]}},{doc:s7,isMS:ne,win:nt}=w(),ni={isHighContrastModeActive:function(){let e=/(Edg)/.test(nt.navigator.userAgent);if(nt.matchMedia&&e)return nt.matchMedia("(-ms-high-contrast: active)").matches;if(ne&&nt.getComputedStyle){let e=s7.createElement("div");e.style.backgroundImage="url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)",s7.body.appendChild(e);let t=(e.currentStyle||nt.getComputedStyle(e)).backgroundImage;return s7.body.removeChild(e),"none"===t}return nt.matchMedia&&nt.matchMedia("(forced-colors: active)").matches},setHighContrastTheme:function(e){e.highContrastModeActive=!0;let t=e.options.accessibility.highContrastTheme;e.update(t,!1);let i=t.colors?.length>1;e.series.forEach(function(e){let s=t.plotOptions[e.type]||{},n=i&&void 0!==e.colorIndex?t.colors[e.colorIndex]:s.color||"window",r={color:s.color||"windowText",colors:i?t.colors:[s.color||"windowText"],borderColor:s.borderColor||"window",fillColor:n};e.update(r,!1),e.points&&e.points.forEach(function(e){e.options&&e.options.color&&e.update({color:s.color||"windowText",borderColor:s.borderColor||"window"},!1)})}),e.redraw()}},{error:ns,pick:nn}=w();function nr(e,t,i){let s=e,n,r=0;for(;r"series"!==e)):Object.keys(this.components):[]}update(){let e=this.components,t=this.chart,i=t.options.accessibility;nu(t,"beforeA11yUpdate"),t.types=this.getChartTypes();let s=i.keyboardNavigation.order;this.proxyProvider.updateGroupOrder(s),this.getComponentOrder().forEach(function(i){e[i].onChartUpdate(),nu(t,"afterA11yComponentUpdate",{name:i,component:e[i]})}),this.keyboardNavigation.update(s),!t.highContrastModeActive&&!1!==i.highContrastMode&&(ni.isHighContrastModeActive()||!0===i.highContrastMode)&&ni.setHighContrastTheme(t),nu(t,"afterA11yUpdate",{accessibility:this})}destroy(){let e=this.chart||{},t=this.components;Object.keys(t).forEach(function(e){t[e].destroy(),t[e].destroyBase()}),this.proxyProvider&&this.proxyProvider.destroy(),e.announcerContainer&&ng(e.announcerContainer),this.keyboardNavigation&&this.keyboardNavigation.destroy(),e.renderTo&&e.renderTo.setAttribute("aria-hidden",!0),e.focusElement&&e.focusElement.removeFocusBorder()}getChartTypes(){let e={};return this.chart.series.forEach(function(t){e[t.type]=1}),Object.keys(e)}}!function(e){function t(){this.accessibility&&this.accessibility.destroy()}function i(){this.a11yDirty&&this.renderTo&&(delete this.a11yDirty,this.updateA11yEnabled());let e=this.accessibility;e&&!e.zombie&&(e.proxyProvider.updateProxyElementPositions(),e.getComponentOrder().forEach(function(t){e.components[t].onChartRender()}))}function s(e){let t=e.options.accessibility;t&&(t.customComponents&&(this.options.accessibility.customComponents=t.customComponents,delete t.customComponents),np(!0,this.options.accessibility,t),this.accessibility&&this.accessibility.destroy&&(this.accessibility.destroy(),delete this.accessibility)),this.a11yDirty=!0}function n(){let t=this.accessibility,i=this.options.accessibility,s=this.renderer.boxWrapper.element,n=this.title;if(i&&i.enabled)t&&!t.zombie?t.update():(this.accessibility=t=new e(this),t&&!t.zombie&&t.update(),"img"===s.getAttribute("role")&&s.removeAttribute("role"));else if(t)t.destroy&&t.destroy(),delete this.accessibility;else{this.renderTo.setAttribute("role","img"),this.renderTo.setAttribute("aria-hidden",!1),this.renderTo.setAttribute("aria-label",(n&&n.element.textContent||"").replace(/{nc(e,t,function(){this.a11yDirty=!0})}),["afterApplyDrilldown","drillupall"].forEach(t=>{nc(e,t,function(){let e=this.accessibility;e&&!e.zombie&&e.update()})}),nc(a,"update",r),["update","updatedData","remove"].forEach(e=>{nc(l,e,function(){this.chart.accessibility&&(this.chart.a11yDirty=!0)})}))}}(nm||(nm={})),np(!0,nl,{accessibility:{enabled:!0,screenReaderSection:{beforeChartFormat:"<{headingTagName}>{chartTitle}
    {typeDescription}
    {chartSubtitle}
    {chartLongdesc}
    {playAsSoundButton}
    {viewTableButton}
    {xAxisDescription}
    {yAxisDescription}
    {annotationsTitle}{annotationsList}
    ",afterChartFormat:"{endOfChartMarker}",axisRangeDateFormat:"%Y-%m-%d %H:%M:%S"},series:{descriptionFormat:"{seriesDescription}{authorDescription}{axisDescription}",describeSingleSeries:!1,pointDescriptionEnabledThreshold:200},point:{valueDescriptionFormat:"{xDescription}{separator}{value}.",describeNull:!0},landmarkVerbosity:"all",linkedDescription:'*[data-highcharts-chart="{index}"] + .highcharts-description',highContrastMode:"auto",keyboardNavigation:{enabled:!0,focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#334eff",lineWidth:2,borderRadius:3},margin:2},order:["series","zoom","rangeSelector","navigator","legend","chartMenu"],wrapAround:!0,seriesNavigation:{skipNullPoints:!0,pointNavigationEnabledThreshold:!1,rememberPointFocus:!1}},announceNewData:{enabled:!1,minAnnounceInterval:5e3,interruptUser:!1}},legend:{accessibility:{enabled:!0,keyboardNavigation:{enabled:!0}}},exporting:{accessibility:{enabled:!0}},navigator:{accessibility:{enabled:!0}}},{accessibility:{highContrastTheme:{chart:{backgroundColor:"window"},title:{style:{color:"windowText"}},subtitle:{style:{color:"windowText"}},colorAxis:{minColor:"windowText",maxColor:"windowText",stops:[],dataClasses:[]},colors:["windowText"],xAxis:{gridLineColor:"windowText",labels:{style:{color:"windowText"}},lineColor:"windowText",minorGridLineColor:"windowText",tickColor:"windowText",title:{style:{color:"windowText"}}},yAxis:{gridLineColor:"windowText",labels:{style:{color:"windowText"}},lineColor:"windowText",minorGridLineColor:"windowText",tickColor:"windowText",title:{style:{color:"windowText"}}},tooltip:{backgroundColor:"window",borderColor:"windowText",style:{color:"windowText"}},plotOptions:{series:{lineColor:"windowText",fillColor:"window",borderColor:"windowText",edgeColor:"windowText",borderWidth:1,dataLabels:{connectorColor:"windowText",color:"windowText",style:{color:"windowText",textOutline:"none"}},marker:{lineColor:"windowText",fillColor:"windowText"}},pie:{color:"window",colors:["window"],borderColor:"windowText",borderWidth:1},boxplot:{fillColor:"window"},candlestick:{lineColor:"windowText",fillColor:"window"},errorbar:{fillColor:"window"}},legend:{backgroundColor:"window",itemStyle:{color:"windowText"},itemHoverStyle:{color:"windowText"},itemHiddenStyle:{color:"#555"},title:{style:{color:"windowText"}}},credits:{style:{color:"windowText"}},drilldown:{activeAxisLabelStyle:{color:"windowText"},activeDataLabelStyle:{color:"windowText"}},navigation:{buttonOptions:{symbolStroke:"windowText",theme:{fill:"window"}}},rangeSelector:{buttonTheme:{fill:"window",stroke:"windowText",style:{color:"windowText"},states:{hover:{fill:"window",stroke:"windowText",style:{color:"windowText"}},select:{fill:"#444",stroke:"windowText",style:{color:"windowText"}}}},inputBoxBorderColor:"windowText",inputStyle:{backgroundColor:"window",color:"windowText"},labelStyle:{color:"windowText"}},navigator:{handles:{backgroundColor:"window",borderColor:"windowText"},outlineColor:"windowText",maskFill:"transparent",series:{color:"windowText",lineColor:"windowText"},xAxis:{gridLineColor:"windowText"}},scrollbar:{barBackgroundColor:"#444",barBorderColor:"windowText",buttonArrowColor:"windowText",buttonBackgroundColor:"window",buttonBorderColor:"windowText",rifleColor:"windowText",trackBackgroundColor:"window",trackBorderColor:"windowText"}}},lang:{accessibility:{defaultChartTitle:"Chart",chartContainerLabel:"{title}. Highcharts interactive chart.",svgContainerLabel:"Interactive chart",drillUpButton:"{buttonText}",credits:"Chart credits: {creditsStr}",thousandsSep:",",svgContainerTitle:"",graphicContainerLabel:"",screenReaderSection:{beforeRegionLabel:"",afterRegionLabel:"",annotations:{heading:"Chart annotations summary",descriptionSinglePoint:"{annotationText}. Related to {annotationPoint}",descriptionMultiplePoints:"{annotationText}. Related to {annotationPoint}{#each additionalAnnotationPoints}, also related to {this}{/each}",descriptionNoPoints:"{annotationText}"},endOfChartMarker:"End of interactive chart."},sonification:{playAsSoundButtonText:"Play as sound, {chartTitle}",playAsSoundClickAnnouncement:"Play"},legend:{legendLabelNoTitle:"Toggle series visibility, {chartTitle}",legendLabel:"Chart legend: {legendTitle}",legendItem:"Show {itemName}"},zoom:{mapZoomIn:"Zoom chart",mapZoomOut:"Zoom out chart",resetZoomButton:"Reset zoom"},rangeSelector:{dropdownLabel:"{rangeTitle}",minInputLabel:"Select start date.",maxInputLabel:"Select end date.",clickButtonAnnouncement:"Viewing {axisRangeDescription}"},navigator:{handleLabel:"{#eq handleIx 0}Start, percent{else}End, percent{/eq}",groupLabel:"Axis zoom",changeAnnouncement:"{axisRangeDescription}"},table:{viewAsDataTableButtonText:"View as data table, {chartTitle}",tableSummary:"Table representation of chart."},announceNewData:{newDataAnnounce:"Updated data for chart {chartTitle}",newSeriesAnnounceSingle:"New data series: {seriesDesc}",newPointAnnounceSingle:"New data point: {pointDesc}",newSeriesAnnounceMultiple:"New data series in chart {chartTitle}: {seriesDesc}",newPointAnnounceMultiple:"New data point in chart {chartTitle}: {pointDesc}"},seriesTypeDescriptions:{boxplot:"Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile, and maximum.",arearange:"Arearange charts are line charts displaying a range between a lower and higher value for each point.",areasplinerange:"These charts are line charts displaying a range between a lower and higher value for each point.",bubble:"Bubble charts are scatter charts where each data point also has a size value.",columnrange:"Columnrange charts are column charts displaying a range between a lower and higher value for each point.",errorbar:"Errorbar series are used to display the variability of the data.",funnel:"Funnel charts are used to display reduction of data in stages.",pyramid:"Pyramid charts consist of a single pyramid with item heights corresponding to each point value.",waterfall:"A waterfall chart is a column chart where each column contributes towards a total end value."},chartTypes:{emptyChart:"Empty chart",mapTypeDescription:"Map of {mapTitle} with {numSeries} data series.",unknownMap:"Map of unspecified region with {numSeries} data series.",combinationChart:"Combination chart with {numSeries} data series.",defaultSingle:"Chart with {numPoints} data {#eq numPoints 1}point{else}points{/eq}.",defaultMultiple:"Chart with {numSeries} data series.",splineSingle:"Line chart with {numPoints} data {#eq numPoints 1}point{else}points{/eq}.",splineMultiple:"Line chart with {numSeries} lines.",lineSingle:"Line chart with {numPoints} data {#eq numPoints 1}point{else}points{/eq}.",lineMultiple:"Line chart with {numSeries} lines.",columnSingle:"Bar chart with {numPoints} {#eq numPoints 1}bar{else}bars{/eq}.",columnMultiple:"Bar chart with {numSeries} data series.",barSingle:"Bar chart with {numPoints} {#eq numPoints 1}bar{else}bars{/eq}.",barMultiple:"Bar chart with {numSeries} data series.",pieSingle:"Pie chart with {numPoints} {#eq numPoints 1}slice{else}slices{/eq}.",pieMultiple:"Pie chart with {numSeries} pies.",scatterSingle:"Scatter chart with {numPoints} {#eq numPoints 1}point{else}points{/eq}.",scatterMultiple:"Scatter chart with {numSeries} data series.",boxplotSingle:"Boxplot with {numPoints} {#eq numPoints 1}box{else}boxes{/eq}.",boxplotMultiple:"Boxplot with {numSeries} data series.",bubbleSingle:"Bubble chart with {numPoints} {#eq numPoints 1}bubbles{else}bubble{/eq}.",bubbleMultiple:"Bubble chart with {numSeries} data series."},axis:{xAxisDescriptionSingular:"The chart has 1 X axis displaying {names[0]}. {ranges[0]}",xAxisDescriptionPlural:"The chart has {numAxes} X axes displaying {#each names}{#unless @first},{/unless}{#if @last} and{/if} {this}{/each}.",yAxisDescriptionSingular:"The chart has 1 Y axis displaying {names[0]}. {ranges[0]}",yAxisDescriptionPlural:"The chart has {numAxes} Y axes displaying {#each names}{#unless @first},{/unless}{#if @last} and{/if} {this}{/each}.",timeRangeDays:"Data range: {range} days.",timeRangeHours:"Data range: {range} hours.",timeRangeMinutes:"Data range: {range} minutes.",timeRangeSeconds:"Data range: {range} seconds.",rangeFromTo:"Data ranges from {rangeFrom} to {rangeTo}.",rangeCategories:"Data range: {numCategories} categories."},exporting:{chartMenuLabel:"Chart menu",menuButtonLabel:"View chart menu, {chartTitle}"},series:{summary:{default:"{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",defaultCombination:"{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",line:"{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",lineCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",spline:"{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",splineCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",column:"{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",columnCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",bar:"{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",barCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#eq series.points.length 1}bar{else}bars{/eq}.",pie:"{series.name}, pie {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}slice{else}slices{/eq}.",pieCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Pie with {series.points.length} {#eq series.points.length 1}slice{else}slices{/eq}.",scatter:"{series.name}, scatter plot {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}point{else}points{/eq}.",scatterCombination:"{series.name}, series {seriesNumber} of {chart.series.length}, scatter plot with {series.points.length} {#eq series.points.length 1}point{else}points{/eq}.",boxplot:"{series.name}, boxplot {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}box{else}boxes{/eq}.",boxplotCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Boxplot with {series.points.length} {#eq series.points.length 1}box{else}boxes{/eq}.",bubble:"{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.",bubbleCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.",map:"{series.name}, map {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}area{else}areas{/eq}.",mapCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Map with {series.points.length} {#eq series.points.length 1}area{else}areas{/eq}.",mapline:"{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",maplineCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#eq series.points.length 1}point{else}points{/eq}.",mapbubble:"{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}.",mapbubbleCombination:"{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#eq series.points.length 1}bubble{else}bubbles{/eq}."},description:"{description}",xAxisDescription:"X axis, {name}",yAxisDescription:"Y axis, {name}",nullPointValue:"No value",pointAnnotationsDescription:"{#each annotations}Annotation: {this}{/each}"}}}});let nb=nm,nf=w();nf.i18nFormat=nb.i18nFormat,nf.A11yChartUtilities=K,nf.A11yHTMLUtilities=S,nf.AccessibilityComponent=Z,nf.KeyboardNavigationHandler=Q,nf.SeriesAccessibilityDescriber=i8,nb.compose(nf.Chart,nf.Legend,nf.Point,nf.Series,nf.SVGElement,nf.RangeSelector);let nx=w();return y.default})()); \ No newline at end of file diff --git a/modules/accessibility.src.js b/modules/accessibility.src.js index 39e9f3de69..cf0ca6d074 100644 --- a/modules/accessibility.src.js +++ b/modules/accessibility.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/accessibility * @requires highcharts * @@ -11939,6 +11939,8 @@ const Options = { /** * When a series contains more points than this, we no longer expose * information about individual points to screen readers. + * Note that the keyboard navigation remains functional, but points + * won't have accessible descriptions unless handled separately. * * Set to `false` to disable. * diff --git a/modules/annotations-advanced.js b/modules/annotations-advanced.js index 29de90249d..dcd76e29db 100644 --- a/modules/annotations-advanced.js +++ b/modules/annotations-advanced.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/annotations * @requires highcharts * @@ -8,8 +8,8 @@ * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/annotations-advanced",["highcharts/highcharts"],function(t){return i(t,t.SeriesRegistry,t.Templating,t.AST)}):"object"==typeof exports?exports["highcharts/modules/annotations-advanced"]=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):t.Highcharts=i(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Templating,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,i,s,e)=>(()=>{"use strict";var o,n,a,r,h={660:t=>{t.exports=e},512:t=>{t.exports=i},984:t=>{t.exports=s},944:i=>{i.exports=t}},l={};function p(t){var i=l[t];if(void 0!==i)return i.exports;var s=l[t]={exports:{}};return h[t](s,s.exports,p),s.exports}p.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return p.d(i,{a:i}),i},p.d=(t,i)=>{for(var s in i)p.o(i,s)&&!p.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},p.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var c={};p.d(c,{default:()=>sZ});var d=p(944),u=/*#__PURE__*/p.n(d);let{addEvent:x,erase:g,find:y,fireEvent:f,pick:m,wrap:v}=u();function b(t,i){let s=this.initAnnotation(t);return this.options.annotations.push(s.options),m(i,!0)&&(s.redraw(),s.graphic.attr({opacity:1})),s}function A(){let t=this;t.plotBoxClip=this.renderer.clipRect(this.plotBox),t.controlPointsGroup=t.renderer.g("control-points").attr({zIndex:99}).clip(t.plotBoxClip).add(),t.options.annotations.forEach((i,s)=>{if(!t.annotations.some(t=>t.options===i)){let e=t.initAnnotation(i);t.options.annotations[s]=e.options}}),t.drawAnnotations(),x(t,"redraw",t.drawAnnotations),x(t,"destroy",function(){t.plotBoxClip.destroy(),t.controlPointsGroup.destroy()}),x(t,"exportData",function(i){let s=t.annotations,e=(this.options.exporting&&this.options.exporting.csv||{}).columnHeaderFormatter,o=!i.dataRows[1].xValues,n=t.options.lang&&t.options.lang.exportData&&t.options.lang.exportData.annotationHeader,a=i.dataRows[0].length,r=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.itemDelimiter,h=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.join;s.forEach(t=>{t.options.labelOptions&&t.options.labelOptions.includeInDataExport&&t.labels.forEach(t=>{if(t.options.text){let s=t.options.text;t.points.forEach(t=>{let e=t.x,o=t.series.xAxis?t.series.xAxis.index:-1,n=!1;if(-1===o){let t=i.dataRows[0].length,a=Array(t);for(let i=0;i{!n&&t.xValues&&void 0!==o&&e===t.xValues[o]&&(h&&t.length>a?t[t.length-1]+=r+s:t.push(s),n=!0)}),!n){let t=i.dataRows[0].length,n=Array(t);for(let i=0;i{l=Math.max(l,t.length)});let p=l-i.dataRows[0].length;for(let t=0;t{t.redraw(),t.graphic.animate({opacity:1},t.animationConfig)})}function O(t){let i=this.annotations,s="annotations"===t.coll?t:y(i,function(i){return i.options.id===t});s&&(f(s,"remove"),g(this.options.annotations,s.options),g(i,s),s.destroy())}function M(){this.annotations=[],this.options.annotations||(this.options.annotations=[])}function k(t){this.chart.hasDraggedAnnotation||t.apply(this,Array.prototype.slice.call(arguments,1))}(o||(o={})).compose=function(t,i,s){let e=i.prototype;if(!e.addAnnotation){let o=s.prototype;x(i,"afterInit",M),e.addAnnotation=b,e.callbacks.push(A),e.collectionsWithInit.annotations=[b],e.collectionsWithUpdate.push("annotations"),e.drawAnnotations=P,e.removeAnnotation=O,e.initAnnotation=function(i){let s=new(t.types[i.type]||t)(this,i);return this.annotations.push(s),s},v(o,"onContainerMouseDown",k)}};let w=o,{defined:E}=u(),{doc:C,isTouchDevice:T}=u(),{addEvent:B,fireEvent:N,objectEach:L,pick:Y,removeEvent:X}=u(),S=class{addEvents(){let t=this,i=function(i){B(i,T?"touchstart":"mousedown",i=>{t.onMouseDown(i)},{passive:!1})};if(i(this.graphic.element),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&i(t.graphic.text.element)}),L(t.options.events,(i,s)=>{let e=function(e){"click"===s&&t.cancelClick||i.call(t,t.chart.pointer?.normalize(e),t.target)};-1===(t.nonDOMEvents||[]).indexOf(s)?(B(t.graphic.element,s,e,{passive:!1}),t.graphic.div&&B(t.graphic.div,s,e,{passive:!1})):B(t,s,e,{passive:!1})}),t.options.draggable&&(B(t,"drag",t.onDrag),!t.graphic.renderer.styledMode)){let i={cursor:{x:"ew-resize",y:"ns-resize",xy:"move"}[t.options.draggable]};t.graphic.css(i),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&t.graphic.text.css(i)})}t.isUpdating||N(t,"add")}destroy(){this.removeDocEvents(),X(this),this.hcEvents=null}mouseMoveToRadians(t,i,s){let e=t.prevChartY-s,o=t.prevChartX-i,n=t.chartY-s,a=t.chartX-i,r;return this.chart.inverted&&(r=o,o=e,e=r,r=a,a=n,n=r),Math.atan2(n,a)-Math.atan2(e,o)}mouseMoveToScale(t,i,s){let e=t.prevChartX-i,o=t.prevChartY-s,n=t.chartX-i,a=t.chartY-s,r=(n||1)/(e||1),h=(a||1)/(o||1);if(this.chart.inverted){let t=h;h=r,r=t}return{x:r,y:h}}mouseMoveToTranslation(t){let i=t.chartX-t.prevChartX,s=t.chartY-t.prevChartY,e;return this.chart.inverted&&(e=s,s=i,i=e),{x:i,y:s}}onDrag(t){if(this.chart.isInsidePlot(t.chartX-this.chart.plotLeft,t.chartY-this.chart.plotTop,{visiblePlotOnly:!0})){let i=this.mouseMoveToTranslation(t);"x"===this.options.draggable&&(i.y=0),"y"===this.options.draggable&&(i.x=0),this.points.length?this.translate(i.x,i.y):(this.shapes.forEach(t=>t.translate(i.x,i.y)),this.labels.forEach(t=>t.translate(i.x,i.y))),this.redraw(!1)}}onMouseDown(t){if(t.preventDefault&&t.preventDefault(),2===t.button)return;let i=this,s=i.chart.pointer,e=t?.sourceCapabilities?.firesTouchEvents||!1,o=(t=s?.normalize(t)||t).chartX,n=t.chartY;i.cancelClick=!1,i.chart.hasDraggedAnnotation=!0,i.removeDrag=B(C,T||e?"touchmove":"mousemove",function(t){i.hasDragged=!0,(t=s?.normalize(t)||t).prevChartX=o,t.prevChartY=n,N(i,"drag",t),o=t.chartX,n=t.chartY},T||e?{passive:!1}:void 0),i.removeMouseUp=B(C,T||e?"touchend":"mouseup",function(){let t=Y(i.target&&i.target.annotation,i.target);t&&(t.cancelClick=i.hasDragged),i.cancelClick=i.hasDragged,i.chart.hasDraggedAnnotation=!1,i.hasDragged&&N(Y(t,i),"afterUpdate"),i.hasDragged=!1,i.onMouseUp()},T||e?{passive:!1}:void 0)}onMouseUp(){this.removeDocEvents()}removeDocEvents(){this.removeDrag&&(this.removeDrag=this.removeDrag()),this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())}},{merge:I,pick:D}=u(),R=class extends S{constructor(t,i,s,e){super(),this.nonDOMEvents=["drag"],this.chart=t,this.target=i,this.options=s,this.index=D(s.index,e)}destroy(){super.destroy(),this.graphic&&(this.graphic=this.graphic.destroy()),this.chart=null,this.target=null,this.options=null}redraw(t){this.graphic[t?"animate":"attr"](this.options.positioner.call(this,this.target))}render(){let t=this.chart,i=this.options;this.graphic=t.renderer.symbol(i.symbol,0,0,i.width,i.height).add(t.controlPointsGroup).css(i.style),this.setVisibility(i.visible),this.addEvents()}setVisibility(t){this.graphic[t?"show":"hide"](),this.options.visible=t}update(t){let i=this.chart,s=this.target,e=this.index,o=I(!0,this.options,t);this.destroy(),this.constructor(i,s,o,e),this.render(i.controlPointsGroup),this.redraw()}};var F=p(512),W=/*#__PURE__*/p.n(F);let{series:{prototype:z}}=W(),{defined:U,fireEvent:V}=u();class H{static fromPoint(t){return new H(t.series.chart,null,{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis})}static pointToPixels(t,i){let s=t.series,e=s.chart,o=t.plotX||0,n=t.plotY||0,a;return e.inverted&&(t.mock?(o=t.plotY,n=t.plotX):(o=e.plotWidth-(t.plotY||0),n=e.plotHeight-(t.plotX||0))),s&&!i&&(o+=(a=s.getPlotBox()).translateX,n+=a.translateY),{x:o,y:n}}static pointToOptions(t){return{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis}}constructor(t,i,s){this.mock=!0,this.point=this,this.series={visible:!0,chart:t,getPlotBox:z.getPlotBox},this.target=i||null,this.options=s,this.applyOptions(this.getOptions())}applyOptions(t){this.command=t.command,this.setAxis(t,"x"),this.setAxis(t,"y"),this.refresh()}getOptions(){return this.hasDynamicOptions()?this.options(this.target):this.options}hasDynamicOptions(){return"function"==typeof this.options}isInsidePlot(){let t=this.plotX,i=this.plotY,s=this.series.xAxis,e=this.series.yAxis,o={x:t,y:i,isInsidePlot:!0,options:{}};return s&&(o.isInsidePlot=U(t)&&t>=0&&t<=s.len),e&&(o.isInsidePlot=o.isInsidePlot&&U(i)&&i>=0&&i<=e.len),V(this.series.chart,"afterIsInsidePlot",o),o.isInsidePlot}refresh(){let t=this.series,i=t.xAxis,s=t.yAxis,e=this.getOptions();i?(this.x=e.x,this.plotX=i.toPixels(e.x,!0)):(this.x=void 0,this.plotX=e.x),s?(this.y=e.y,this.plotY=s.toPixels(e.y,!0)):(this.y=null,this.plotY=e.y),this.isInside=this.isInsidePlot()}refreshOptions(){let t=this.series,i=t.xAxis,s=t.yAxis;this.x=this.options.x=i?this.options.x=i.toValue(this.plotX,!0):this.plotX,this.y=this.options.y=s?s.toValue(this.plotY,!0):this.plotY}rotate(t,i,s){if(!this.hasDynamicOptions()){let e=Math.cos(s),o=Math.sin(s),n=this.plotX-t,a=this.plotY-i;this.plotX=n*e-a*o+t,this.plotY=n*o+a*e+i,this.refreshOptions()}}scale(t,i,s,e){if(!this.hasDynamicOptions()){let o=this.plotX*s,n=this.plotY*e;this.plotX=(1-s)*t+o,this.plotY=(1-e)*i+n,this.refreshOptions()}}setAxis(t,i){let s=i+"Axis",e=t[s],o=this.series.chart;this.series[s]="object"==typeof e?e:U(e)?o[s][e]||o.get(e):null}toAnchor(){let t=[this.plotX,this.plotY,0,0];return this.series.chart.inverted&&(t[0]=this.plotY,t[1]=this.plotX),t}translate(t,i,s,e){this.hasDynamicOptions()||(this.plotX+=s,this.plotY+=e,this.refreshOptions())}}!function(t){function i(){let t=this.controlPoints,i=this.options.controlPoints||[];i.forEach((s,e)=>{let o=u().merge(this.options.controlPointOptions,s);o.index||(o.index=e),i[e]=o,t.push(new R(this.chart,this,o))})}function s(t){let i=t.series.getPlotBox(),s=t.series.chart,e=t.mock?t.toAnchor():s.tooltip&&s.tooltip.getAnchor.call({chart:t.series.chart},t)||[0,0,0,0],o={x:e[0]+(this.options.x||0),y:e[1]+(this.options.y||0),height:e[2]||0,width:e[3]||0};return{relativePosition:o,absolutePosition:u().merge(o,{x:o.x+(t.mock?i.translateX:s.plotLeft),y:o.y+(t.mock?i.translateY:s.plotTop)})}}function e(){this.controlPoints.forEach(t=>t.destroy()),this.chart=null,this.controlPoints=null,this.points=null,this.options=null,this.annotation&&(this.annotation=null)}function o(){let t=this.options;return t.points||t.point&&u().splat(t.point)}function n(){let t,i;let s=this.getPointsOptions(),e=this.points,o=s&&s.length||0;for(t=0;ti.redraw(t))}function h(){this.controlPoints.forEach(t=>t.render())}function l(t,i,s,e,o){if(this.chart.inverted){let t=i;i=s,s=t}this.points.forEach((n,a)=>this.transformPoint(t,i,s,e,o,a),this)}function p(t,i,s,e,o,n){let a=this.points[n];a.mock||(a=this.points[n]=H.fromPoint(a)),a[t](i,s,e,o)}function c(t,i){this.transform("translate",null,null,t,i)}function d(t,i,s){this.transformPoint("translate",null,null,t,i,s)}t.compose=function(t){let x=t.prototype;x.addControlPoints||u().merge(!0,x,{addControlPoints:i,anchor:s,destroyControlTarget:e,getPointsOptions:o,linkPoints:n,point:a,redrawControlPoints:r,renderControlPoints:h,transform:l,transformPoint:p,translate:c,translatePoint:d})}}(n||(n={}));let q=n,{merge:j}=u();class _{constructor(t,i,s,e){this.annotation=t,this.chart=t.chart,this.collection="label"===e?"labels":"shapes",this.controlPoints=[],this.options=i,this.points=[],this.index=s,this.itemType=e,this.init(t,i,s)}attr(...t){this.graphic.attr.apply(this.graphic,arguments)}attrsFromOptions(t){let i,s;let e=this.constructor.attrsMap,o={},n=this.chart.styledMode;for(i in t)s=e[i],void 0===e[i]||n&&-1!==["fill","stroke","stroke-width"].indexOf(s)||(o[s]=t[i]);return o}destroy(){this.graphic&&(this.graphic=this.graphic.destroy()),this.tracker&&(this.tracker=this.tracker.destroy()),this.destroyControlTarget()}init(t,i,s){this.annotation=t,this.chart=t.chart,this.options=i,this.points=[],this.controlPoints=[],this.index=s,this.linkPoints(),this.addControlPoints()}redraw(t){this.redrawControlPoints(t)}render(t){this.options.className&&this.graphic&&this.graphic.addClass(this.options.className),this.renderControlPoints()}rotate(t,i,s){this.transform("rotate",t,i,s)}scale(t,i,s,e){this.transform("scale",t,i,s,e)}setControlPointsVisibility(t){this.controlPoints.forEach(i=>{i.setVisibility(t)})}shouldBeDrawn(){return!!this.points.length}translateShape(t,i,s){let e=this.annotation.chart,o=this.annotation.userOptions,n=e.annotations.indexOf(this.annotation),a=e.options.annotations[n];this.translatePoint(t,i,0),s&&this.translatePoint(t,i,1),a[this.collection][this.index].point=this.options.point,o[this.collection][this.index].point=this.options.point}update(t){let i=this.annotation,s=j(!0,this.options,t),e=this.graphic.parentGroup,o=this.constructor;this.destroy(),j(!0,this,new o(i,s,this.index,this.itemType)),this.render(e),this.redraw()}}q.compose(_);let G=_,{defaultMarkers:K}={defaultMarkers:{arrow:{tagName:"marker",attributes:{id:"arrow",refY:5,refX:9,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 0 L 10 5 L 0 10 Z","stroke-width":0}}]},"reverse-arrow":{tagName:"marker",attributes:{id:"reverse-arrow",refY:5,refX:1,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 5 L 10 0 L 10 10 Z","stroke-width":0}}]}}},{addEvent:Z,defined:$,extend:J,merge:Q,uniqueKey:tt}=u(),ti=to("marker-end"),ts=to("marker-start"),te="rgba(192,192,192,"+(u().svg?1e-4:.002)+")";function to(t){return function(i){this.attr(t,"url(#"+i+")")}}function tn(){this.options.defs=Q(K,this.options.defs||{})}function ta(t,i){let s={attributes:{id:t}},e={stroke:i.color||"none",fill:i.color||"rgba(0, 0, 0, 0.75)"};s.children=i.children&&i.children.map(function(t){return Q(e,t)});let o=Q(!0,{attributes:{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"}},i,s),n=this.definition(o);return n.id=t,n}class tr extends G{static compose(t,i){let s=i.prototype;s.addMarker||(Z(t,"afterGetContainer",tn),s.addMarker=ta)}constructor(t,i,s){super(t,i,s,"shape"),this.type="path"}toD(){let t=this.options.d;if(t)return"function"==typeof t?t.call(this):t;let i=this.points,s=i.length,e=[],o=s,n=i[0],a=o&&this.anchor(n).absolutePosition,r=0,h;if(a)for(e.push(["M",a.x,a.y]);++r{t.yAxis=i.yAxis}),tu(i.xAxis)&&i.points.forEach(t=>{t.xAxis=i.xAxis}),super.init(t,i,s)}render(t){this.graphic=this.annotation.chart.renderer.createElement("ellipse").attr(this.attrsFromOptions(this.options)).add(t),super.render()}translate(t,i){super.translateShape(t,i,!0)}getDistanceFromLine(t,i,s,e){return Math.abs((i.y-t.y)*s-(i.x-t.x)*e+i.x*t.y-i.y*t.x)/Math.sqrt((i.y-t.y)*(i.y-t.y)+(i.x-t.x)*(i.x-t.x))}getAttrs(t,i){let s=t.x,e=t.y,o=i.x,n=i.y,a=(s+o)/2,r=Math.sqrt((s-o)*(s-o)/4+(e-n)*(e-n)/4),h=180*Math.atan((n-e)/(o-s))/Math.PI;return ai+e?r.push(["L",t+l,i+e]):at+s&&r.push(["L",t+s,i+e/2])),r||[]}class tO extends G{static alignedPosition(t,i){return{x:Math.round((i.x||0)+(t.x||0)+(i.width-(t.width||0))*tv(t.align)),y:Math.round((i.y||0)+(t.y||0)+(i.height-(t.height||0))*tv(t.verticalAlign))}}static compose(t){t.prototype.symbols.connector=tP}static justifiedOptions(t,i,s,e){let o;let n=s.align,a=s.verticalAlign,r=i.box?0:i.padding||0,h=i.getBBox(),l={align:n,verticalAlign:a,x:s.x,y:s.y,width:i.width,height:i.height},p=(e.x||0)-t.plotLeft,c=(e.y||0)-t.plotTop;return(o=p+r)<0&&("right"===n?l.align="left":l.x=(l.x||0)-o),(o=p+h.width-r)>t.plotWidth&&("left"===n?l.align="right":l.x=(l.x||0)+t.plotWidth-o),(o=c+r)<0&&("bottom"===a?l.verticalAlign="top":l.y=(l.y||0)-o),(o=c+h.height-r)>t.plotHeight&&("top"===a?l.verticalAlign="bottom":l.y=(l.y||0)+t.plotHeight-o),l}constructor(t,i,s){super(t,i,s,"label")}translatePoint(t,i){super.translatePoint(t,i,0)}translate(t,i){let s=this.annotation.chart,e=this.annotation.userOptions,o=s.annotations.indexOf(this.annotation),n=s.options.annotations[o];if(s.inverted){let s=t;t=i,i=s}this.options.x+=t,this.options.y+=i,n[this.collection][this.index].x=this.options.x,n[this.collection][this.index].y=this.options.y,e[this.collection][this.index].x=this.options.x,e[this.collection][this.index].y=this.options.y}render(t){let i=this.options,s=this.attrsFromOptions(i),e=i.style;this.graphic=this.annotation.chart.renderer.label("",0,-9999,i.shape,null,null,i.useHTML,null,"annotation-label").attr(s).add(t),this.annotation.chart.styledMode||("contrast"===e.color&&(e.color=this.annotation.chart.renderer.getContrast(tO.shapesWithoutBackground.indexOf(i.shape)>-1?"#FFFFFF":i.backgroundColor)),this.graphic.css(i.style).shadow(i.shadow)),this.graphic.labelrank=i.labelrank,super.render()}redraw(t){let i=this.options,s=this.text||i.format||i.text,e=this.graphic,o=this.points[0];if(!e){this.redraw(t);return}e.attr({text:s?tf(String(s),o,this.annotation.chart):i.formatter.call(o,this)});let n=this.anchor(o),a=this.position(n);a?(e.alignAttr=a,a.anchorX=n.absolutePosition.x,a.anchorY=n.absolutePosition.y,e[t?"animate":"attr"](a)):e.attr({x:0,y:-9999}),e.placed=!!a,super.redraw(t)}anchor(t){let i=super.anchor.apply(this,arguments),s=this.options.x||0,e=this.options.y||0;return i.absolutePosition.x-=s,i.absolutePosition.y-=e,i.relativePosition.x-=s,i.relativePosition.y-=e,i}position(t){let i=this.graphic,s=this.annotation.chart,e=s.tooltip,o=this.points[0],n=this.options,a=t.absolutePosition,r=t.relativePosition,h,l,p,c,d=o.series.visible&&H.prototype.isInsidePlot.call(o);if(i&&d){let{width:t=0,height:u=0}=i;n.distance&&e?h=e.getPosition.call({chart:s,distance:tA(n.distance,16),getPlayingField:e.getPlayingField,pointer:e.pointer},t,u,{plotX:r.x,plotY:r.y,negative:o.negative,ttBelow:o.ttBelow,h:r.height||r.width}):n.positioner?h=n.positioner.call(this):(l={x:a.x,y:a.y,width:0,height:0},h=tO.alignedPosition(tm(n,{width:t,height:u}),l),"justify"===this.options.overflow&&(h=tO.alignedPosition(tO.justifiedOptions(s,i,n,h),l))),n.crop&&(p=h.x-s.plotLeft,c=h.y-s.plotTop,d=s.isInsidePlot(p,c)&&s.isInsidePlot(p+t,c+u))}return d?h:null}}tO.attrsMap={backgroundColor:"fill",borderColor:"stroke",borderWidth:"stroke-width",zIndex:"zIndex",borderRadius:"r",padding:"padding"},tO.shapesWithoutBackground=["connector"];class tM extends G{constructor(t,i,s){super(t,i,s,"shape"),this.type="image",this.translate=super.translateShape}render(t){let i=this.attrsFromOptions(this.options),s=this.options;this.graphic=this.annotation.chart.renderer.image(s.src,0,-9e9,s.width,s.height).attr(i).add(t),this.graphic.width=s.width,this.graphic.height=s.height,super.render()}redraw(t){if(this.graphic){let i=this.anchor(this.points[0]),s=tO.prototype.position.call(this,i);s?this.graphic[t?"animate":"attr"]({x:s.x,y:s.y}):this.graphic.attr({x:0,y:-9e9}),this.graphic.placed=!!s}super.redraw(t)}}tM.attrsMap={width:"width",height:"height",zIndex:"zIndex"};var tk=p(660),tw=/*#__PURE__*/p.n(tk);let{addEvent:tE,createElement:tC}=u(),tT=class{constructor(t,i){this.iconsURL=i,this.container=this.createPopupContainer(t),this.closeButton=this.addCloseButton()}createPopupContainer(t,i="highcharts-popup highcharts-no-tooltip"){return tC("div",{className:i},void 0,t)}addCloseButton(t="highcharts-popup-close"){let i=this,s=this.iconsURL,e=tC("button",{className:t},void 0,this.container);return e.style["background-image"]="url("+(s.match(/png|svg|jpeg|jpg|gif/ig)?s:s+"close.svg")+")",["click","touchstart"].forEach(t=>{tE(e,t,i.closeButtonEvents.bind(i))}),tE(document,"keydown",function(t){"Escape"===t.code&&i.closeButtonEvents()}),e}closeButtonEvents(){this.closePopup()}showPopup(t="highcharts-annotation-toolbar"){let i=this.container,s=this.closeButton;this.type=void 0,i.innerHTML=tw().emptyHTML,i.className.indexOf(t)>=0&&(i.classList.remove(t),i.removeAttribute("style")),i.appendChild(s),i.style.display="block",i.style.height=""}closePopup(){this.container.style.display="none"}},{doc:tB,isFirefox:tN}=u(),{createElement:tL,isArray:tY,isObject:tX,objectEach:tS,pick:tI,stableSort:tD}=u();function tR(t,i,s,e,o,n){let a,r;if(!i)return;let h=this.addInput,l=this.lang;tS(e,(e,n)=>{a=""!==s?s+"."+n:n,tX(e)&&(!tY(e)||tY(e)&&tX(e[0])?((r=l[n]||n).match(/\d/g)||o.push([!0,r,t]),tR.call(this,t,i,a,e,o,!1)):o.push([this,a,"annotation",t,e]))}),n&&(tD(o,t=>t[1].match(/format/g)?-1:1),tN&&o.reverse(),o.forEach(t=>{!0===t[0]?tL("span",{className:"highcharts-annotation-title"},void 0,t[2]).appendChild(tB.createTextNode(t[1])):(t[4]={value:t[4][0],type:t[4][1]},h.apply(t[0],t.splice(1)))}))}let{doc:tF}=u(),{seriesTypes:tW}=W(),{addEvent:tz,createElement:tU,defined:tV,isArray:tH,isObject:tq,objectEach:tj,stableSort:t_}=u();!function(t){t[t["params.algorithm"]=0]="params.algorithm",t[t["params.average"]=1]="params.average"}(a||(a={}));let tG={"algorithm-pivotpoints":["standard","fibonacci","camarilla"],"average-disparityindex":["sma","ema","dema","tema","wma"]};function tK(t){let i=tU("div",{className:"highcharts-popup-lhs-col"},void 0,t),s=tU("div",{className:"highcharts-popup-rhs-col"},void 0,t);return tU("div",{className:"highcharts-popup-rhs-col-wrapper"},void 0,s),{lhsCol:i,rhsCol:s}}function tZ(t,i,s,e){let o=i.params||i.options.params;e.innerHTML=tw().emptyHTML,tU("h3",{className:"highcharts-indicator-title"},void 0,e).appendChild(tF.createTextNode(t4(i,s).indicatorFullName)),tU("input",{type:"hidden",name:"highcharts-type-"+s,value:s},void 0,e),t5.call(this,s,"series",t,e,i,i.linkedParent&&i.linkedParent.options.id),o.volumeSeriesID&&t5.call(this,s,"volume",t,e,i,i.linkedParent&&o.volumeSeriesID),tJ.call(this,t,"params",o,s,e)}function t$(t,i,s,e){function o(i,s){let e=x.parentNode.children[1];tZ.call(n,t,i,s,x),e&&(e.style.display="block"),l&&i.options&&tU("input",{type:"hidden",name:"highcharts-id-"+s,value:i.options.id},void 0,x).setAttribute("highcharts-data-series-id",i.options.id)}let n=this,a=n.lang,r=i.querySelectorAll(".highcharts-popup-lhs-col")[0],h=i.querySelectorAll(".highcharts-popup-rhs-col")[0],l="edit"===s,p=l?t.series:t.options.plotOptions||{};if(!t&&p)return;let c,d=[];l||tH(p)?tH(p)&&(d=t9.call(this,p)):d=t2.call(this,p,e),t_(d,(t,i)=>{let s=t.indicatorFullName.toLowerCase(),e=i.indicatorFullName.toLowerCase();return se?1:0}),r.children[1]&&r.children[1].remove();let u=tU("ul",{className:"highcharts-indicator-list"},void 0,r),x=h.querySelectorAll(".highcharts-popup-rhs-col-wrapper")[0];if(d.forEach(t=>{let{indicatorFullName:i,indicatorType:s,series:e}=t;c=tU("li",{className:"highcharts-indicator-list"},void 0,u);let n=tU("button",{className:"highcharts-indicator-list-item",textContent:i},void 0,c);["click","touchstart"].forEach(t=>{tz(n,t,function(){o(e,s)})})}),d.length>0){let{series:t,indicatorType:i}=d[0];o(t,i)}else l||(tw().setElementHTML(x.parentNode.children[0],a.noFilterMatch||""),x.parentNode.children[1].style.display="none")}function tJ(t,i,s,e,o){if(!t)return;let n=this.addInput;tj(s,(s,r)=>{let h=i+"."+r;if(tV(s)&&h){if(tq(s)&&(n.call(this,h,e,o,{}),tJ.call(this,t,h,s,e,o)),h in a){let n=t0.call(this,e,h,o);t1.call(this,t,i,n,e,r,s)}else"params.volumeSeriesID"===h||tH(s)||n.call(this,h,e,o,{value:s,type:"number"})}})}function tQ(t,i){let s=this,e=i.querySelectorAll(".highcharts-popup-lhs-col")[0],o=this.lang.clearFilter,n=tU("div",{className:"highcharts-input-wrapper"},void 0,e),a=function(i){t$.call(s,t,s.container,"add",i)},r=this.addInput("searchIndicators","input",n,{value:"",type:"text",htmlFor:"search-indicators",labelClassName:"highcharts-input-search-indicators-label"}),h=tU("a",{textContent:o},void 0,n);r.classList.add("highcharts-input-search-indicators"),h.classList.add("clear-filter-button"),tz(r,"input",function(){a(this.value),this.value.length?h.style.display="inline-block":h.style.display="none"}),["click","touchstart"].forEach(t=>{tz(h,t,function(){r.value="",a(""),h.style.display="none"})})}function t0(t,i,s){let e=i.split("."),o=e[e.length-1],n="highcharts-"+i+"-type-"+t,a=this.lang;tU("label",{htmlFor:n},null,s).appendChild(tF.createTextNode(a[o]||i));let r=tU("select",{name:n,className:"highcharts-popup-field",id:"highcharts-select-"+i},null,s);return r.setAttribute("id","highcharts-select-"+i),r}function t1(t,i,s,e,o,n,a){"series"===i||"volume"===i?t.series.forEach(t=>{let e=t.options,o=e.name||e.params?t.name:e.id||"";"highcharts-navigator-series"!==e.id&&e.id!==(a&&a.options&&a.options.id)&&(tV(n)||"volume"!==i||"column"!==t.type||(n=e.id),tU("option",{value:e.id},void 0,s).appendChild(tF.createTextNode(o)))}):e&&o&&tG[o+"-"+e].forEach(t=>{tU("option",{value:t},void 0,s).appendChild(tF.createTextNode(t))}),tV(n)&&(s.value=n)}function t2(t,i){let s;let e=this.chart&&this.chart.options.lang,o=e&&e.navigation&&e.navigation.popup&&e.navigation.popup.indicatorAliases,n=[];return tj(t,(t,e)=>{let a=t&&t.options;if(t.params||a&&a.params){let{indicatorFullName:a,indicatorType:r}=t4(t,e);if(i){let e=RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=o&&o[r]&&o[r].join(" ")||"";(a.match(e)||h.match(e))&&(s={indicatorFullName:a,indicatorType:r,series:t},n.push(s))}else s={indicatorFullName:a,indicatorType:r,series:t},n.push(s)}}),n}function t9(t){let i=[];return t.forEach(t=>{t.is("sma")&&i.push({indicatorFullName:t.name,indicatorType:t.type,series:t})}),i}function t4(t,i){let s=t.options,e=tW[i]&&tW[i].prototype.nameBase||i.toUpperCase(),o=i;return s&&s.type&&(o=t.options.type,e=t.name),{indicatorFullName:e,indicatorType:o}}function t5(t,i,s,e,o,n){if(!s)return;let a=t0.call(this,t,i,e);t1.call(this,s,i,a,void 0,void 0,void 0,o),tV(n)&&(a.value=n)}let{doc:t3}=u(),{addEvent:t6,createElement:t7}=u();function t8(){return t7("div",{className:"highcharts-tab-item-content highcharts-no-mousewheel"},void 0,this.container)}function it(t,i){let s=this.container,e=this.lang,o="highcharts-tab-item";0===i&&(o+=" highcharts-tab-disabled");let n=t7("button",{className:o},void 0,s);return n.appendChild(t3.createTextNode(e[t+"Button"]||t)),n.setAttribute("highcharts-data-tab-type",t),n}function ii(){let t=this.container,i=t.querySelectorAll(".highcharts-tab-item"),s=t.querySelectorAll(".highcharts-tab-item-content");for(let t=0;t{(0!==t||"edit"!==s.getAttribute("highcharts-data-tab-type"))&&["click","touchstart"].forEach(t=>{t6(s,t,function(){ii.call(i),is.call(i,this,e)})})})}let{doc:io}=u(),{getOptions:ia}=u(),{addEvent:ir,createElement:ih,extend:il,fireEvent:ip,pick:ic}=u();class id extends tT{constructor(t,i,s){super(t,i),this.chart=s,this.lang=(ia().lang.navigation||{}).popup||{},ir(this.container,"mousedown",()=>{let t=s&&s.navigationBindings&&s.navigationBindings.activeAnnotation;if(t){t.cancelClick=!0;let i=ir(io,"click",()=>{setTimeout(()=>{t.cancelClick=!1},0),i()})}})}addInput(t,i,s,e){let o=t.split("."),n=o[o.length-1],a=this.lang,r="highcharts-"+i+"-"+ic(e.htmlFor,n);n.match(/^\d+$/)||ih("label",{htmlFor:r,className:e.labelClassName},void 0,s).appendChild(io.createTextNode(a[n]||n));let h=ih("input",{name:r,value:e.value,type:e.type,className:"highcharts-popup-field"},void 0,s);return h.setAttribute("highcharts-data-name",t),h}closeButtonEvents(){if(this.chart){let t=this.chart.navigationBindings;ip(t,"closePopup"),t&&t.selectedButtonElement&&ip(t,"deselectButton",{button:t.selectedButtonElement})}else super.closeButtonEvents()}addButton(t,i,s,e,o){let n=ih("button",void 0,void 0,t);return n.appendChild(io.createTextNode(i)),o&&["click","touchstart"].forEach(t=>{ir(n,t,()=>(this.closePopup(),o(function(t,i){let s=Array.prototype.slice.call(t.querySelectorAll("input")),e=Array.prototype.slice.call(t.querySelectorAll("select")),o=t.querySelectorAll("#highcharts-select-series > option:checked")[0],n=t.querySelectorAll("#highcharts-select-volume > option:checked")[0],a={actionType:i,linkedTo:o&&o.getAttribute("value")||"",fields:{}};return s.forEach(t=>{let i=t.getAttribute("highcharts-data-name");t.getAttribute("highcharts-data-series-id")?a.seriesId=t.value:i?a.fields[i]=t.value:a.type=t.value}),e.forEach(t=>{let i=t.id;if("highcharts-select-series"!==i&&"highcharts-select-volume"!==i){let s=i.split("highcharts-select-")[1];a.fields[s]=t.value}}),n&&(a.fields["params.volumeSeriesID"]=n.getAttribute("value")||""),a}(e,s))))}),n}showForm(t,i,s,e){i&&(this.showPopup(),"indicators"===t&&this.indicators.addForm.call(this,i,s,e),"annotation-toolbar"===t&&this.annotations.addToolbar.call(this,i,s,e),"annotation-edit"===t&&this.annotations.addForm.call(this,i,s,e),"flag"===t&&this.annotations.addForm.call(this,i,s,e,!0),this.type=t,this.container.style.height=this.container.offsetHeight+"px")}}il(id.prototype,{annotations:{addForm:function(t,i,s,e){if(!t)return;let o=this.container,n=this.lang,a=tL("h2",{className:"highcharts-popup-main-title"},void 0,o);a.appendChild(tB.createTextNode(n[i.langKey]||i.langKey||"")),a=tL("div",{className:"highcharts-popup-lhs-col highcharts-popup-lhs-full"},void 0,o);let r=tL("div",{className:"highcharts-popup-bottom-row"},void 0,o);tR.call(this,a,t,"",i,[],!0),this.addButton(r,e?n.addButton||"Add":n.saveButton||"Save",e?"add":"save",o,s)},addToolbar:function(t,i,s){let e=this.lang,o=this.container,n=this.showForm,a="highcharts-annotation-toolbar";-1===o.className.indexOf(a)&&(o.className+=" "+a+" highcharts-no-mousewheel"),t&&(o.style.top=t.plotTop+10+"px");let r=tL("p",{className:"highcharts-annotation-label"},void 0,o);r.setAttribute("aria-label","Annotation type"),r.appendChild(tB.createTextNode(tI(e[i.langKey]||i.langKey,i.shapes&&i.shapes[0].type,"")));let h=this.addButton(o,e.editButton||"Edit","edit",o,()=>{n.call(this,"annotation-edit",t,i,s)});h.className+=" highcharts-annotation-edit-button",h.style["background-image"]="url("+this.iconsURL+"edit.svg)",h=this.addButton(o,e.removeButton||"Remove","remove",o,s),h.className+=" highcharts-annotation-remove-button",h.style["background-image"]="url("+this.iconsURL+"destroy.svg)"}},indicators:{addForm:function(t,i,s){let e;let o=this.lang;if(!t)return;this.tabs.init.call(this,t);let n=this.container.querySelectorAll(".highcharts-tab-item-content");tK(n[0]),tQ.call(this,t,n[0]),t$.call(this,t,n[0],"add"),e=n[0].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(e,o.addButton||"add","add",e,s),tK(n[1]),t$.call(this,t,n[1],"edit"),e=n[1].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(e,o.saveButton||"save","edit",e,s),this.addButton(e,o.removeButton||"remove","remove",e,s)},getAmount:function(){let t=0;return this.series.forEach(i=>{(i.params||i.options.params)&&t++}),t}},tabs:{init:function(t){if(!t)return;let i=this.indicators.getAmount.call(t),s=it.call(this,"add");it.call(this,"edit",i),t8.call(this),t8.call(this),ie.call(this,i),is.call(this,s,0)}}});let{composed:iu}=u(),{addEvent:ix,pushUnique:ig,wrap:iy}=u();function im(){this.popup&&this.popup.closePopup()}function iv(t){this.popup||(this.popup=new id(this.chart.container,this.chart.options.navigation.iconsURL||this.chart.options.stockTools&&this.chart.options.stockTools.gui.iconsURL||"https://code.highcharts.com/12.0.2/gfx/stock-icons/",this.chart)),this.popup.showForm(t.formType,this.chart,t.options,t.onSubmit)}function ib(t,i){this.inClass(i.target,"highcharts-popup")||t.apply(this,Array.prototype.slice.call(arguments,1))}let iA={compose:function(t,i){ig(iu,"Popup")&&(ix(t,"closePopup",im),ix(t,"showPopup",iv),iy(i.prototype,"onContainerMouseDown",ib))}},{getDeferredAnimation:iP}=u(),{destroyObjectProperties:iO,erase:iM,fireEvent:ik,merge:iw,pick:iE,splat:iC}=u();function iT(t,i){let s={};return["labels","shapes"].forEach(e=>{let o=t[e],n=i[e];o&&(n?s[e]=iC(n).map((t,i)=>iw(o[i],t)):s[e]=t[e])}),s}class iB extends S{static compose(t,i,s,e){w.compose(iB,t,s),tO.compose(e),tr.compose(t,e),i.compose(iB,t),iA.compose(i,s)}constructor(t,i){super(),this.coll="annotations",this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.index=-1,this.labels=[],this.shapes=[],this.options=iw(this.defaultOptions,i),this.userOptions=i;let s=iT(this.options,i);this.options.labels=s.labels,this.options.shapes=s.shapes,this.init(t,this.options)}addClipPaths(){this.setClipAxes(),this.clipXAxis&&this.clipYAxis&&this.options.crop&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))}addLabels(){let t=this.options.labels||[];t.forEach((i,s)=>{let e=this.initLabel(i,s);iw(!0,t[s],e.options)})}addShapes(){let t=this.options.shapes||[];t.forEach((i,s)=>{let e=this.initShape(i,s);iw(!0,t[s],e.options)})}destroy(){let t=this.chart,i=function(t){t.destroy()};this.labels.forEach(i),this.shapes.forEach(i),this.clipXAxis=null,this.clipYAxis=null,iM(t.labelCollectors,this.labelCollector),super.destroy(),this.destroyControlTarget(),iO(this,t)}destroyItem(t){iM(this[t.itemType+"s"],t),t.destroy()}getClipBox(){if(this.clipXAxis&&this.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}}initProperties(t,i){this.setOptions(i);let s=iT(this.options,i);this.options.labels=s.labels,this.options.shapes=s.shapes,this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.userOptions=i,this.labels=[],this.shapes=[]}init(t,i,s=this.index){let e=this.chart,o=this.options.animation;this.index=s,this.linkPoints(),this.addControlPoints(),this.addShapes(),this.addLabels(),this.setLabelCollector(),this.animationConfig=iP(e,o)}initLabel(t,i){let s=new tO(this,iw(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},t),i);return s.itemType="label",this.labels.push(s),s}initShape(t,i){let s=iw(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},t),e=new iB.shapesMap[s.type](this,s,i);return e.itemType="shape",this.shapes.push(e),e}redraw(t){this.linkPoints(),this.graphic||this.render(),this.clipRect&&this.clipRect.animate(this.getClipBox()),this.redrawItems(this.shapes,t),this.redrawItems(this.labels,t),this.redrawControlPoints(t)}redrawItem(t,i){t.linkPoints(),t.shouldBeDrawn()?(t.graphic||this.renderItem(t),t.redraw(iE(i,!0)&&t.graphic.placed),t.points.length&&function(t){let i=t.graphic,s=t.points.some(t=>!1!==t.series.visible&&!1!==t.visible);i&&(s?"hidden"===i.visibility&&i.show():i.hide())}(t)):this.destroyItem(t)}redrawItems(t,i){let s=t.length;for(;s--;)this.redrawItem(t[s],i)}remove(){return this.chart.removeAnnotation(this)}render(){let t=this.chart.renderer;this.graphic=t.g("annotation").attr({opacity:0,zIndex:this.options.zIndex,visibility:this.options.visible?"inherit":"hidden"}).add(),this.shapesGroup=t.g("annotation-shapes").add(this.graphic),this.options.crop&&this.shapesGroup.clip(this.chart.plotBoxClip),this.labelsGroup=t.g("annotation-labels").attr({translateX:0,translateY:0}).add(this.graphic),this.addClipPaths(),this.clipRect&&this.graphic.clip(this.clipRect),this.renderItems(this.shapes),this.renderItems(this.labels),this.addEvents(),this.renderControlPoints()}renderItem(t){t.render("label"===t.itemType?this.labelsGroup:this.shapesGroup)}renderItems(t){let i=t.length;for(;i--;)this.renderItem(t[i])}setClipAxes(){let t=this.chart.xAxis,i=this.chart.yAxis,s=(this.options.labels||[]).concat(this.options.shapes||[]).reduce((s,e)=>{let o=e&&(e.point||e.points&&e.points[0]);return[t[o&&o.xAxis]||s[0],i[o&&o.yAxis]||s[1]]},[]);this.clipXAxis=s[0],this.clipYAxis=s[1]}setControlPointsVisibility(t){let i=function(i){i.setControlPointsVisibility(t)};this.controlPoints.forEach(i=>{i.setVisibility(t)}),this.shapes.forEach(i),this.labels.forEach(i)}setLabelCollector(){let t=this;t.labelCollector=function(){return t.labels.reduce(function(t,i){return i.options.allowOverlap||t.push(i.graphic),t},[])},t.chart.labelCollectors.push(t.labelCollector)}setOptions(t){this.options=iw(this.defaultOptions,t)}setVisibility(t){let i=this.options,s=this.chart.navigationBindings,e=iE(t,!i.visible);if(this.graphic.attr("visibility",e?"inherit":"hidden"),!e){let t=function(t){t.setControlPointsVisibility(e)};this.shapes.forEach(t),this.labels.forEach(t),s.activeAnnotation===this&&s.popup&&"annotation-toolbar"===s.popup.type&&ik(s,"closePopup")}i.visible=e}update(t,i){let s=this.chart,e=iT(this.userOptions,t),o=s.annotations.indexOf(this),n=iw(!0,this.userOptions,t);n.labels=e.labels,n.shapes=e.shapes,this.destroy(),this.initProperties(s,n),this.init(s,n),s.options.annotations[o]=this.options,this.isUpdating=!0,iE(i,!0)&&s.drawAnnotations(),ik(this,"afterUpdate"),this.isUpdating=!1}}iB.ControlPoint=R,iB.MockPoint=H,iB.shapesMap={rect:tl,circle:tc,ellipse:tx,path:tr,image:tM},iB.types={},iB.prototype.defaultOptions={visible:!0,animation:{},crop:!0,draggable:"xy",labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"#000000",borderRadius:3,borderWidth:1,className:"highcharts-no-tooltip",crop:!1,formatter:function(){return E(this.y)?""+this.y:"Annotation label"},includeInDataExport:!0,overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"0.7em",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0,snap:2},controlPointOptions:{events:{},style:{cursor:"pointer",fill:"#ffffff",stroke:"#000000","stroke-width":2},height:10,symbol:"circle",visible:!1,width:10},events:{},zIndex:6},iB.prototype.nonDOMEvents=["add","afterUpdate","drag","remove"],q.compose(iB);let iN=iB;!function(t){t.compose=function(t){return t.navigation||(t.navigation=new i(t)),t};class i{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(s=>{s.call(this.chart,t,i)})}}t.Additions=i}(r||(r={}));let iL=r,{defined:iY,isNumber:iX,pick:iS}=u(),iI={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},iD={annotationsFieldsTypes:iI,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),s=i.min,e=i.max,o=iS(t.axis.minPointOffset,0);return iX(s)&&iX(e)&&t.value>=s-o&&t.value<=e+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,i){let s=iI[t],e=typeof i;return iY(s)&&(e=s),({string:"text",number:"number",boolean:"checkbox"})[e]}},{getAssignedAxis:iR}=iD,{isNumber:iF,merge:iW}=u(),iz={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis),o=this.chart.options.navigation;if(s&&e)return this.chart.addAnnotation(iW({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:s.value,y:e.value,xAxis:s.axis.index,yAxis:e.axis.index},r:5}]},o.annotationsOptions,o.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let s;let e=i.options.shapes,o=e&&e[0]&&e[0].point||{};if(iF(o.xAxis)&&iF(o.yAxis)){let i=this.chart.inverted,e=this.chart.xAxis[o.xAxis].toPixels(o.x),n=this.chart.yAxis[o.yAxis].toPixels(o.y);s=Math.max(Math.sqrt(Math.pow(i?n-t.chartX:e-t.chartX,2)+Math.pow(i?e-t.chartY:n-t.chartY,2)),5)}i.update({shapes:[{r:s}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis),o=this.chart.options.navigation;if(s&&e)return this.chart.addAnnotation(iW({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:s.axis.index,yAxis:e.axis.index,points:[{x:s.value,y:e.value},{x:s.value,y:e.value}],ry:1}]},o.annotationsOptions,o.bindings.ellipseAnnotation.annotationOptions))},steps:[function(t,i){let s=i.shapes[0],e=s.getAbsolutePosition(s.points[1]);s.translatePoint(t.chartX-e.x,t.chartY-e.y,1),s.redraw(!1)},function(t,i){let s=i.shapes[0],e=s.getAbsolutePosition(s.points[0]),o=s.getAbsolutePosition(s.points[1]),n=s.getDistanceFromLine(e,o,t.chartX,t.chartY),a=s.getYAxis(),r=Math.abs(a.toValue(0)-a.toValue(n));s.setYRadius(r),s.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis);if(!s||!e)return;let o=s.value,n=e.value,a=s.axis.index,r=e.axis.index,h=this.chart.options.navigation;return this.chart.addAnnotation(iW({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{command:"Z"}]}]},h.annotationsOptions,h.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let s=i.options.shapes,e=s&&s[0]&&s[0].points||[],o=this.chart.pointer?.getCoordinates(t),n=o&&iR(o.xAxis),a=o&&iR(o.yAxis);if(n&&a){let t=n.value,s=a.value;e[1].x=t,e[2].x=t,e[2].y=s,e[3].y=s,i.update({shapes:[{points:e}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis),o=this.chart.options.navigation;if(s&&e)return this.chart.addAnnotation(iW({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:s.axis.index,yAxis:e.axis.index,x:s.value,y:e.value}}]},o.annotationsOptions,o.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:iU}=u(),{format:iV}=ty(),{composed:iH,doc:iq,win:ij}=u(),{getAssignedAxis:i_,getFieldType:iG}=iD,{addEvent:iK,attr:iZ,defined:i$,fireEvent:iJ,isArray:iQ,isFunction:i0,isNumber:i1,isObject:i2,merge:i9,objectEach:i4,pick:i5,pushUnique:i3}=u();function i6(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function i7(){this.navigationBindings&&this.navigationBindings.destroy()}function i8(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new so(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function st(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let s=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(s=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let e=this.navigationBindings.container[0];i4(t.boundClassNames,(t,o)=>{let n=e.querySelectorAll("."+o);if(n)for(let e=0;e=4||o.call(this,t)}})}class so{static compose(t,i){i3(iH,"NavigationBindings")&&(iK(t,"remove",i6),se(t),i4(t.types,t=>{se(t)}),iK(i,"destroy",i7),iK(i,"load",i8),iK(i,"render",st),iK(so,"closePopup",si),iK(so,"deselectButton",ss),iU(iz))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=iq.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&i_(i.xAxis),i&&i_(i.yAxis)]}initEvents(){let t=this,i=t.chart,s=t.container,e=t.options;t.boundClassNames={},i4(e.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(s,i=>{t.eventsToUnbind.push(iK(i,"click",s=>{let e=t.getButtonEvents(i,s);e&&!e.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(e.button,e.events,s)}))}),i4(e.events||{},(i,s)=>{i0(i)&&t.eventsToUnbind.push(iK(t,s,i,{passive:!1}))}),t.eventsToUnbind.push(iK(i.container,"click",function(s){!i.cancelClick&&i.isInsidePlot(s.chartX-i.plotLeft,s.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,s)})),t.eventsToUnbind.push(iK(i.container,u().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},u().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;iL.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,s){let e=this.chart,o=e.renderer.boxWrapper,n=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(n=!1),iJ(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&e.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),n?(this.selectedButton=i,this.selectedButtonElement=t,iJ(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,s),(i.start||i.steps)&&e.renderer.boxWrapper.addClass("highcharts-draw-mode")):(e.stockTools&&t.classList.remove("highcharts-active"),o.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let s=this.activeAnnotation,e=this.selectedButton,o=t.renderer.boxWrapper;s&&(s.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let s=ij.Element.prototype,e=s.matches||s.msMatchesSelector||s.webkitMatchesSelector,o=null;if(s.closest)o=s.closest.call(t,i);else do{if(e.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return o}(i.target,".highcharts-popup")?s.cancelClick&&setTimeout(()=>{s.cancelClick=!1},0):iJ(this,"closePopup")),e&&e.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,e.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=e.steps[this.stepIndex]:(iJ(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),e.end&&e.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=e.start.call(this,i),this.currentUserDetails&&e.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=e.steps[this.stepIndex]):(iJ(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,e.end&&e.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return i4(t,(t,s)=>{let e=parseFloat(t),o=s.split("."),n=o.length-1;if(!i1(e)||t.match(/px|em/g)||s.match(/format/g)||(t=e),"undefined"!==t){let s=i;o.forEach((i,e)=>{if("__proto__"!==i&&"constructor"!==i){let a=i5(o[e+1],"");n===e?s[i]=t:(s[i]||(s[i]=a.match(/\d/g)?[]:{}),s=s[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,s=so.annotationsEditable,e=s.nestedOptions,o=i5(i.type,i.shapes&&i.shapes[0]&&i.shapes[0].type,i.labels&&i.labels[0]&&i.labels[0].type,"label"),n=so.annotationsNonEditable[i.langKey]||[],a={langKey:i.langKey,type:o};function r(i,s,o,a,h){let l;o&&i$(i)&&-1===n.indexOf(s)&&((o.indexOf&&o.indexOf(s))>=0||o[s]||!0===o)&&(iQ(i)?(a[s]=[],i.forEach((t,i)=>{i2(t)?(a[s][i]={},i4(t,(t,o)=>{r(t,o,e[s],a[s][i],s)})):r(t,0,e[s],a[s],s)})):i2(i)?(l={},iQ(a)?(a.push(l),l[s]={},l=l[s]):a[s]=l,i4(i,(t,i)=>{r(t,i,0===s?o:e[s],l,s)})):"format"===s?a[s]=[iV(i,t.labels[0].points[0]).toString(),"text"]:iQ(a)?a.push([i,iG(h,i)]):a[s]=[i,iG(s,i)])}return i4(i,(t,n)=>{"typeOptions"===n?(a[n]={},i4(i[n],(t,i)=>{r(t,i,e,a[n],i)})):r(t,n,s[o],a,n)}),a}getClickedClassNames(t,i){let s=i.target,e=[],o;for(;s&&s.tagName&&((o=iZ(s,"class"))&&(e=e.concat(o.split(" ").map(t=>[t,s]))),(s=s.parentNode)!==t););return e}getButtonEvents(t,i){let s;let e=this;return this.getClickedClassNames(t,i).forEach(t=>{e.boundClassNames[t[0]]&&!s&&(s={events:e.boundClassNames[t[0]],button:t[1]})}),s}update(t){this.options=i9(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}so.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},so.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};let sn=u();sn.Annotation=sn.Annotation||iN,sn.NavigationBindings=sn.NavigationBindings||so,sn.Annotation.compose(sn.Chart,sn.NavigationBindings,sn.Pointer,sn.SVGRenderer);let{merge:sa}=u();class sr extends iN{addControlPoints(){let t=this.options,i=sr.basicControlPoints,s=this.basicType;(t.labels||t.shapes||[]).forEach(t=>{t.controlPoints=i[s]})}init(){let t=this.options;if(t.shapes){delete t.labelOptions;let i=t.shapes[0].type;t.shapes[0].className=(t.shapes[0].className||"")+" highcharts-basic-shape",i&&"path"!==i?this.basicType=i:this.basicType="rectangle"}else delete t.shapes,this.basicType="label";super.init.apply(this,arguments)}}sr.basicControlPoints={label:[{symbol:"triangle-down",positioner:function(t){if(!t.graphic.placed)return{x:0,y:-9e7};let i=H.pointToPixels(t.points[0]);return{x:i.x-(this.graphic.width||0)/2,y:i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=this.mouseMoveToTranslation(t);i.translatePoint(s.x,s.y),i.annotation.userOptions.labels[0].point=i.options.point,i.redraw(!1)}}},{symbol:"square",positioner:function(t){return t.graphic.placed?{x:t.graphic.alignAttr.x-(this.graphic.width||0)/2,y:t.graphic.alignAttr.y-(this.graphic.height||0)/2}:{x:0,y:-9e7}},events:{drag:function(t,i){let s=this.mouseMoveToTranslation(t);i.translate(s.x,s.y),i.annotation.userOptions.labels[0].point=i.options.point,i.redraw(!1)}}}],rectangle:[{positioner:function(t){let i=H.pointToPixels(t.points[2]);return{x:i.x-4,y:i.y-4}},events:{drag:function(t,i){let s=i.annotation,e=this.chart.pointer?.getCoordinates(t),o=i.options.points,n=s.userOptions.shapes,a=s.clipXAxis?.index||0,r=s.clipYAxis?.index||0;if(e){let t=e.xAxis[a].value,s=e.yAxis[r].value;o[1].x=t,o[2].x=t,o[2].y=s,o[3].y=s,n&&n[0]&&(n[0].points=i.options.points)}s.redraw(!1)}}}],circle:[{positioner:function(t){let i=H.pointToPixels(t.points[0]),s=t.options.r;return{x:i.x+s*Math.cos(Math.PI/4)-(this.graphic.width||0)/2,y:i.y+s*Math.sin(Math.PI/4)-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=i.annotation,e=this.mouseMoveToTranslation(t),o=s.userOptions.shapes;i.setRadius(Math.max(i.options.r+e.y/Math.sin(Math.PI/4),5)),o&&o[0]&&(o[0].r=i.options.r,o[0].point=i.options.point),i.redraw(!1)}}}],ellipse:[{positioner:function(t){let i=t.getAbsolutePosition(t.points[0]);return{x:i.x-(this.graphic.width||0)/2,y:i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=i.getAbsolutePosition(i.points[0]);i.translatePoint(t.chartX-s.x,t.chartY-s.y,0),i.redraw(!1)}}},{positioner:function(t){let i=t.getAbsolutePosition(t.points[1]);return{x:i.x-(this.graphic.width||0)/2,y:i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=i.getAbsolutePosition(i.points[1]);i.translatePoint(t.chartX-s.x,t.chartY-s.y,1),i.redraw(!1)}}},{positioner:function(t){let i=t.getAbsolutePosition(t.points[0]),s=t.getAbsolutePosition(t.points[1]),e=t.getAttrs(i,s);return{x:e.cx-(this.graphic.width||0)/2+e.ry*Math.sin(e.angle*Math.PI/180),y:e.cy-(this.graphic.height||0)/2-e.ry*Math.cos(e.angle*Math.PI/180)}},events:{drag:function(t,i){let s=i.getAbsolutePosition(i.points[0]),e=i.getAbsolutePosition(i.points[1]),o=i.getDistanceFromLine(s,e,t.chartX,t.chartY),n=i.getYAxis(),a=Math.abs(n.toValue(0)-n.toValue(o));i.setYRadius(a),i.redraw(!1)}}}]},sr.prototype.defaultOptions=sa(iN.prototype.defaultOptions,{}),iN.types.basicAnnotation=sr;let{merge:sh}=u();class sl extends iN{setClipAxes(){this.clipXAxis=this.chart.xAxis[this.options.typeOptions.xAxis],this.clipYAxis=this.chart.yAxis[this.options.typeOptions.yAxis]}getPointsOptions(){let t=this.options.typeOptions;return(t.points||[]).map(i=>(i.xAxis=t.xAxis,i.yAxis=t.yAxis,i))}getControlPointsOptions(){return this.getPointsOptions()}addControlPoints(){this.getControlPointsOptions().forEach(function(t,i){let s=new R(this.chart,this,sh(this.options.controlPointOptions,t.controlPoint),i);this.controlPoints.push(s),t.controlPoint=s.options},this)}addShapes(){let t=this.options.typeOptions,i=this.initShape(sh(t.line,{type:"path",className:"highcharts-crooked-lines",points:this.points.map((t,i)=>function(t){return t.annotation.points[i]})}),0);t.line=i.options}}sl.prototype.defaultOptions=sh(iN.prototype.defaultOptions,{typeOptions:{xAxis:0,yAxis:0,line:{fill:"none"}},controlPointOptions:{positioner:function(t){let i=this.graphic,s=H.pointToPixels(t.points[this.index]);return{x:s.x-(i.width||0)/2,y:s.y-(i.height||0)/2}},events:{drag:function(t,i){if(i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})){let s=this.mouseMoveToTranslation(t),e=i.options.typeOptions;i.translatePoint(s.x,s.y,this.index),e.points[this.index].x=i.points[this.index].x,e.points[this.index].y=i.points[this.index].y,i.redraw(!1)}}}}}),iN.types.crookedLine=sl;let sp=sl,{merge:sc}=u();class sd extends sp{addLabels(){this.getPointsOptions().forEach((t,i)=>{let s=this.options.typeOptions,e=this.initLabel(sc(t.label,{text:s.labels[i],point:function(t){return t.annotation.points[i]}}),!1);t.label=e.options})}}sd.prototype.defaultOptions=sc(sp.prototype.defaultOptions,{typeOptions:{labels:["(0)","(A)","(B)","(C)","(D)","(E)"],line:{strokeWidth:1}},labelOptions:{align:"center",allowOverlap:!0,crop:!0,overflow:"none",type:"rect",backgroundColor:"none",borderWidth:0,y:-5}}),iN.types.elliottWave=sd;let{merge:su}=u();class sx extends sp{getPointsOptions(){let t=sp.prototype.getPointsOptions.call(this),i=this.options.typeOptions.yAxis||0,s=this.chart.yAxis[i];if(t[2]=this.heightPointOptions(t[1]),t[3]=this.heightPointOptions(t[0]),s&&s.logarithmic){let i=s.toPixels(t[2].y)-s.toPixels(t[1].y),e=s.toPixels(t[0].y)+i;t[3].y=s.toValue(e)}return t}getControlPointsOptions(){return this.getPointsOptions().slice(0,2)}heightPointOptions(t){let i=su(t),s=this.options.typeOptions;return i.y+=s.height,i}addControlPoints(){sp.prototype.addControlPoints.call(this);let t=this.options,i=t.typeOptions,s=new R(this.chart,this,su(t.controlPointOptions,i.heightControlPoint),2);this.controlPoints.push(s),i.heightControlPoint=s.options}addShapes(){this.addLine(),this.addBackground()}addLine(){let t=this.initShape(su(this.options.typeOptions.line,{type:"path",points:[this.points[0],this.points[1],function(t){let i=H.pointToOptions(t.annotation.points[2]);return i.command="M",i},this.points[3]],className:"highcharts-tunnel-lines"}),0);this.options.typeOptions.line=t.options}addBackground(){let t=this.initShape(su(this.options.typeOptions.background,{type:"path",points:this.points.slice(),className:"highcharts-tunnel-background"}),1);this.options.typeOptions.background=t.options}translateSide(t,i,s){let e=Number(s);this.translatePoint(t,i,e),this.translatePoint(t,i,0===e?3:2)}translateHeight(t){this.translatePoint(0,t,2),this.translatePoint(0,t,3),this.options.typeOptions.height=this.points[3].y-this.points[0].y,this.userOptions.typeOptions.height=this.options.typeOptions.height}}sx.prototype.defaultOptions=su(sp.prototype.defaultOptions,{typeOptions:{background:{fill:"rgba(130, 170, 255, 0.4)",strokeWidth:0},line:{strokeWidth:1},height:-2,heightControlPoint:{positioner:function(t){let i=H.pointToPixels(t.points[2]),s=H.pointToPixels(t.points[3]),e=(i.x+s.x)/2;return{x:e-(this.graphic.width||0)/2,y:(s.y-i.y)/(s.x-i.x)*(e-i.x)+i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})&&(i.translateHeight(this.mouseMoveToTranslation(t).y),i.redraw(!1))}}}},controlPointOptions:{events:{drag:function(t,i){if(i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})){let s=this.mouseMoveToTranslation(t);i.translateSide(s.x,s.y,!!this.index),i.redraw(!1)}}}}}),iN.types.tunnel=sx;let sg=sx,{merge:sy}=u();class sf extends sp{static edgePoint(t,i){return function(s){let e=s.annotation,o=e.options.typeOptions.type,n=e.points;return("horizontalLine"===o||"verticalLine"===o)&&(n=[n[0],new H(e.chart,n[0].target,{x:n[0].x+ +("horizontalLine"===o),y:n[0].y+ +("verticalLine"===o),xAxis:n[0].options.xAxis,yAxis:n[0].options.yAxis})]),sf.findEdgePoint(n[t],n[i])}}static findEdgeCoordinate(t,i,s,e){let o="x"===s?"y":"x";return(i[s]-t[s])*(e-t[o])/(i[o]-t[o])+t[s]}static findEdgePoint(t,i){let s,e,o;let n=t.series.chart,a=t.series.xAxis,r=i.series.yAxis,h=H.pointToPixels(t),l=H.pointToPixels(i),p=l.x-h.x,c=l.y-h.y,d=a.left,u=d+a.width,x=r.top,g=x+r.height,y=p<0?d:u,f=c<0?x:g,m={x:0===p?h.x:y,y:0===c?h.y:f};return 0!==p&&0!==c&&(e=sf.findEdgeCoordinate(h,l,"y",y),s=sf.findEdgeCoordinate(h,l,"x",f),e>=x&&e<=g?(m.x=y,m.y=e):(m.x=s,m.y=f)),m.x-=n.plotLeft,m.y-=n.plotTop,t.series.chart.inverted&&(o=m.x,m.x=m.y,m.y=o),m}addShapes(){let t=this.options.typeOptions,i=[this.points[0],sf.endEdgePoint];t.type.match(/line/gi)&&(i[0]=sf.startEdgePoint);let s=this.initShape(sy(t.line,{type:"path",points:i,className:"highcharts-infinity-lines"}),0);t.line=s.options}}sf.endEdgePoint=sf.edgePoint(0,1),sf.startEdgePoint=sf.edgePoint(1,0),sf.prototype.defaultOptions=sy(sp.prototype.defaultOptions,{}),iN.types.infinityLine=sf;let sm=sf,{merge:sv,isNumber:sb,defined:sA}=u();class sP extends sp{init(t,i,s){sA(i.yAxis)&&i.points.forEach(t=>{t.yAxis=i.yAxis}),sA(i.xAxis)&&i.points.forEach(t=>{t.xAxis=i.xAxis}),super.init(t,i,s)}setPath(){this.shapes[0].options.d=this.getPath()}getPath(){return[["M",this.startX,this.y]].concat(function(t,i,s,e){let o=[];for(let n=1;n<=i;n++)o.push(["A",t/2,t/2,0,1,1,s+n*t,e]);return o}(this.pixelInterval,this.numberOfCircles,this.startX,this.y))}addShapes(){let t=this.options.typeOptions;this.setPathProperties();let i=this.initShape(sv(t.line,{type:"path",d:this.getPath(),points:this.options.points,className:"highcharts-timecycles-lines"}),0);t.line=i.options}addControlPoints(){let t=this.options,i=t.typeOptions;t.controlPointOptions.style.cursor=this.chart.inverted?"ns-resize":"ew-resize",i.controlPointOptions.forEach(i=>{let s=sv(t.controlPointOptions,i),e=new R(this.chart,this,s,0);this.controlPoints.push(e)})}setPathProperties(){let t=this.options.typeOptions,i=t.points;if(!i)return;let s=i[0],e=i[1],o=t.xAxis||0,n=t.yAxis||0,a=this.chart.xAxis[o],r=this.chart.yAxis[n],h=s.x,l=s.y,p=e.x;if(!h||!p)return;let c=sb(l)?r.toPixels(l):r.top+r.height,d=sb(h)?a.toPixels(h):a.left,u=sb(p)?a.toPixels(p):a.left+30,x=a.len,g=Math.round(Math.max(Math.abs(u-d),2)),y=Math.floor(x/g)+2,f=(Math.floor((d-a.left)/g)+1)*g;this.startX=d-f,this.y=c,this.pixelInterval=g,this.numberOfCircles=y}redraw(t){this.setPathProperties(),this.setPath(),super.redraw(t)}}sP.prototype.defaultOptions=sv(sp.prototype.defaultOptions,{typeOptions:{controlPointOptions:[{positioner:function(t){let i=t.points[0];return{x:t.anchor(i).absolutePosition.x-(this.graphic.width||0)/2,y:t.y-(this.graphic.height||0)}},events:{drag:function(t,i){let s=i.anchor(i.points[0]).absolutePosition;i.translatePoint(t.chartX-s.x,0,0),i.redraw(!1)}}},{positioner:function(t){let i=t.points[1];return{x:t.anchor(i).absolutePosition.x-(this.graphic.width||0)/2,y:t.y-(this.graphic.height||0)}},events:{drag:function(t,i){let s=i.anchor(i.points[1]).absolutePosition;i.translatePoint(t.chartX-s.x,0,1),i.redraw(!1)}}}]}}),iN.types.timeCycles=sP;let{merge:sO}=u();function sM(t,i){return function(){let s=this.annotation;if(!s.startRetracements||!s.endRetracements)return[];let e=this.anchor(s.startRetracements[t]).absolutePosition,o=this.anchor(s.endRetracements[t]).absolutePosition,n=[["M",Math.round(e.x),Math.round(e.y)],["L",Math.round(o.x),Math.round(o.y)]];if(i){let i=this.anchor(s.endRetracements[t-1]).absolutePosition,e=this.anchor(s.startRetracements[t-1]).absolutePosition;n.push(["L",Math.round(i.x),Math.round(i.y)],["L",Math.round(e.x),Math.round(e.y)])}return n}}class sk extends sg{linkPoints(){super.linkPoints(),this.linkRetracementsPoints()}linkRetracementsPoints(){let t=this.points,i=t[0].y-t[3].y,s=t[1].y-t[2].y,e=t[0].x,o=t[1].x;sk.levels.forEach((n,a)=>{let r=t[0].y-i*n,h=t[1].y-s*n,l=this.options.typeOptions.reversed?sk.levels.length-a-1:a;this.startRetracements=this.startRetracements||[],this.endRetracements=this.endRetracements||[],this.linkRetracementPoint(l,e,r,this.startRetracements),this.linkRetracementPoint(l,o,h,this.endRetracements)})}linkRetracementPoint(t,i,s,e){let o=e[t],n=this.options.typeOptions;o?(o.options.x=i,o.options.y=s,o.refresh()):e[t]=new H(this.chart,this,{x:i,y:s,xAxis:n.xAxis,yAxis:n.yAxis})}addShapes(){sk.levels.forEach(function(t,i){let{backgroundColors:s,lineColor:e,lineColors:o}=this.options.typeOptions;this.initShape({type:"path",d:sM(i),stroke:o[i]||e,className:"highcharts-fibonacci-line"},i),i>0&&this.initShape({type:"path",fill:s[i-1],strokeWidth:0,d:sM(i,!0),className:"highcharts-fibonacci-background-"+(i-1)})},this)}addLabels(){sk.levels.forEach(function(t,i){let s=this.options.typeOptions,e=this.initLabel(sO(s.labels[i],{point:function(t){return H.pointToOptions(t.annotation.startRetracements[i])},text:t.toString()}));s.labels[i]=e.options},this)}}sk.levels=[0,.236,.382,.5,.618,.786,1],sk.prototype.defaultOptions=sO(sg.prototype.defaultOptions,{typeOptions:{reversed:!1,height:2,backgroundColors:["rgba(130, 170, 255, 0.4)","rgba(139, 191, 216, 0.4)","rgba(150, 216, 192, 0.4)","rgba(156, 229, 161, 0.4)","rgba(162, 241, 130, 0.4)","rgba(169, 255, 101, 0.4)"],lineColor:"#999999",lineColors:[],labels:[]},labelOptions:{allowOverlap:!0,align:"right",backgroundColor:"none",borderWidth:0,crop:!1,overflow:"none",shape:"rect",style:{color:"grey"},verticalAlign:"middle",y:0}}),iN.types.fibonacci=sk;let{merge:sw}=u();function sE(t,i,s){return function(e){let o=e.annotation.chart,n=o.inverted?o.plotTop:o.plotLeft,a=e.annotation.points,r=a[0].series.xAxis,h=a.length>1?a[1].plotX-a[0].plotX:0,l=r.toValue(a[0].plotX+n+s*h);return a=[new H(o,a[0].target,{x:l,y:0,xAxis:a[0].options.xAxis,yAxis:a[0].options.yAxis}),new H(o,a[0].target,{x:l,y:1,xAxis:a[0].options.xAxis,yAxis:a[0].options.yAxis})],sm.findEdgePoint(a[t],a[i])}}class sC extends sp{addShapes(){let t=1,i=1;for(let s=0;s<11;s++){let e=s?t:0,o=[sE(1,0,e),sE(0,1,e)];t=(i=t+i)-t,1===s&&(this.secondLineEdgePoints=[o[0],o[1]]),this.initShape(sw(this.options.typeOptions.line,{type:"path",points:o,className:"highcharts-fibonacci-timezones-lines"}),s)}}addControlPoints(){let t=this.options,i=t.typeOptions,s=new R(this.chart,this,sw(t.controlPointOptions,i.controlPointOptions),0);this.controlPoints.push(s),i.controlPointOptions=s.options}}sC.prototype.defaultOptions=sw(sp.prototype.defaultOptions,{typeOptions:{line:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:void 0},controlPointOptions:{positioner:function(){let t=this.target,i=this.graphic,s=t.secondLineEdgePoints,e={annotation:t},o=s[0](e).y,n=s[1](e).y,a=this.chart.plotLeft,r=this.chart.plotTop,h=s[0](e).x,l=(o+n)/2;return this.chart.inverted&&([h,l]=[l,h]),{x:a+h-(i.width||0)/2,y:r+l-(i.height||0)/2}},events:{drag:function(t,i){if(i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})){let s=this.mouseMoveToTranslation(t);i.translatePoint(s.x,0,1),i.redraw(!1)}}}}}}),iN.types.fibonacciTimeZones=sC;let{merge:sT}=u();class sB extends sm{static outerLineEdgePoint(t){return function(i){let s=i.annotation,e=s.points;return sB.findEdgePoint(e[t],e[0],new H(s.chart,i,s.midPointOptions()))}}static findEdgePoint(t,i,s){let e=Math.atan2(s.plotY-i.plotY,s.plotX-i.plotX);return{x:t.plotX+1e7*Math.cos(e),y:t.plotY+1e7*Math.sin(e)}}static middleLineEdgePoint(t){let i=t.annotation,s=i.points;return sm.findEdgePoint(s[0],new H(i.chart,t,i.midPointOptions()))}midPointOptions(){let t=this.points;return{x:(t[1].x+t[2].x)/2,y:(t[1].y+t[2].y)/2,xAxis:t[0].series.xAxis,yAxis:t[0].series.yAxis}}addShapes(){this.addLines(),this.addBackgrounds()}addLines(){let t="highcharts-pitchfork-lines";this.initShape({type:"path",points:[this.points[0],sB.middleLineEdgePoint],className:t},0),this.initShape({type:"path",points:[this.points[1],sB.topLineEdgePoint],className:t},1),this.initShape({type:"path",points:[this.points[2],sB.bottomLineEdgePoint],className:t},2)}addBackgrounds(){let t=this.shapes,i=this.options.typeOptions,s=this.initShape(sT(i.innerBackground,{type:"path",points:[function(t){let i=t.annotation,s=i.points,e=i.midPointOptions();return{x:(s[1].x+e.x)/2,y:(s[1].y+e.y)/2,xAxis:e.xAxis,yAxis:e.yAxis}},t[1].points[1],t[2].points[1],function(t){let i=t.annotation,s=i.points,e=i.midPointOptions();return{x:(e.x+s[2].x)/2,y:(e.y+s[2].y)/2,xAxis:e.xAxis,yAxis:e.yAxis}}],className:"highcharts-pitchfork-inner-background"}),3),e=this.initShape(sT(i.outerBackground,{type:"path",points:[this.points[1],t[1].points[1],t[2].points[1],this.points[2]],className:"highcharts-pitchfork-outer-background"}),4);i.innerBackground=s.options,i.outerBackground=e.options}}sB.topLineEdgePoint=sB.outerLineEdgePoint(1),sB.bottomLineEdgePoint=sB.outerLineEdgePoint(0),sB.prototype.defaultOptions=sT(sm.prototype.defaultOptions,{typeOptions:{innerBackground:{fill:"rgba(130, 170, 255, 0.4)",strokeWidth:0},outerBackground:{fill:"rgba(156, 229, 161, 0.4)",strokeWidth:0}}}),iN.types.pitchfork=sB;let{merge:sN,pick:sL}=u();class sY extends iN{static connectorFirstPoint(t){let i=t.annotation,s=i.chart,e=s.inverted,o=i.points[0],n=sL(o.series.yAxis&&o.series.yAxis.left,0),a=sL(o.series.yAxis&&o.series.yAxis.top,0),r=i.options.typeOptions.label.offset,h=H.pointToPixels(o,!0)[e?"x":"y"];return{x:o.x,xAxis:o.series.xAxis,y:h+r+(e?n-s.plotLeft:a-s.plotTop)}}static connectorSecondPoint(t){let i=t.annotation,s=i.chart,e=s.inverted,o=i.options.typeOptions,n=i.points[0],a=sL(n.series.yAxis&&n.series.yAxis.left,0),r=sL(n.series.yAxis&&n.series.yAxis.top,0),h=H.pointToPixels(n,!0)[e?"x":"y"],l=o.yOffset;return o.label.offset<0&&(l*=-1),{x:n.x,xAxis:n.series.xAxis,y:h+l+(e?a-s.plotLeft:r-s.plotTop)}}getPointsOptions(){return[this.options.typeOptions.point]}addShapes(){let t=this.options.typeOptions,i=this.initShape(sN(t.connector,{type:"path",points:[sY.connectorFirstPoint,sY.connectorSecondPoint],className:"highcharts-vertical-line"}),0);t.connector=i.options,this.userOptions.typeOptions.point=t.point}addLabels(){let t=this.options.typeOptions,i=t.label,s=0,e=i.offset,o=i.offset<0?"bottom":"top",n="center";this.chart.inverted&&(s=i.offset,e=0,o="middle",n=i.offset<0?"right":"left");let a=this.initLabel(sN(i,{verticalAlign:o,align:n,x:s,y:e}));t.label=a.options}}sY.prototype.defaultOptions=sN(iN.prototype.defaultOptions,{typeOptions:{yOffset:10,label:{offset:-40,point:function(t){return t.annotation.points[0]},allowOverlap:!0,backgroundColor:"none",borderWidth:0,crop:!0,overflow:"none",shape:"rect",text:"{y:.2f}"},connector:{strokeWidth:1,markerEnd:"arrow"}}}),iN.types.verticalLine=sY;let{defined:sX,extend:sS,isNumber:sI,merge:sD,pick:sR}=u();function sF(){let t="";return""!==this.max&&""!==this.min&&(t=(this.max+this.min)/2),t}function sW(){let t=this.chart.series,i=sU(this.xAxisMin,this.xAxisMax,this.yAxisMin,this.yAxisMax),s=0,e=!1;return t.forEach(t=>{t.visible&&"highcharts-navigator-series"!==t.options.id&&t.points.forEach(t=>{!t.isNull&&t.x>i.xAxisMin&&t.x<=i.xAxisMax&&t.y>i.yAxisMin&&t.y<=i.yAxisMax&&(s++,e=!0)})}),e||(s=""),s}function sz(){return"Min: "+this.min+"
    Max: "+this.max+"
    Average: "+this.average+"
    Bins: "+this.bins}function sU(t,i,s,e){return{xAxisMin:Math.min(i,t),xAxisMax:Math.max(i,t),yAxisMin:Math.min(e,s),yAxisMax:Math.max(e,s)}}function sV(t,i,s){return t.toValue(t.toPixels(i)+s)}function sH(){let t=this.options.typeOptions,i=this.chart,s=i.inverted,e=i.xAxis[t.xAxis],o=i.yAxis[t.yAxis],n=t.background,a=s?n.height:n.width,r=s?n.width:n.height,h=t.selectType,l=s?e.left:o.top,p=s?o.top:e.left;this.startXMin=t.point.x,this.startYMin=t.point.y,sI(a)?this.startXMax=this.startXMin+a:this.startXMax=sV(e,this.startXMin,parseFloat(a)),sI(r)?this.startYMax=this.startYMin-r:this.startYMax=sV(o,this.startYMin,parseFloat(r)),"x"===h?(this.startYMin=o.toValue(l),this.startYMax=o.toValue(l+o.len)):"y"===h&&(this.startXMin=e.toValue(p),this.startXMax=e.toValue(p+e.len))}function sq(){let t=this.chart.series,i=sU(this.xAxisMin,this.xAxisMax,this.yAxisMin,this.yAxisMax),s=-1/0,e=!1;return t.forEach(t=>{t.visible&&"highcharts-navigator-series"!==t.options.id&&t.points.forEach(t=>{!t.isNull&&t.y>s&&t.x>i.xAxisMin&&t.x<=i.xAxisMax&&t.y>i.yAxisMin&&t.y<=i.yAxisMax&&(s=t.y,e=!0)})}),e||(s=""),s}function sj(){let t=this.chart.series,i=sU(this.xAxisMin,this.xAxisMax,this.yAxisMin,this.yAxisMax),s=1/0,e=!1;return t.forEach(t=>{t.visible&&"highcharts-navigator-series"!==t.options.id&&t.points.forEach(t=>{!t.isNull&&t.yi.xAxisMin&&t.x<=i.xAxisMax&&t.y>i.yAxisMin&&t.y<=i.yAxisMax&&(s=t.y,e=!0)})}),e||(s=""),s}function s_(t){let i=this.options.typeOptions,s=this.chart.xAxis[i.xAxis],e=this.chart.yAxis[i.yAxis],o=this.offsetX,n=this.offsetY;this.xAxisMin=sV(s,this.startXMin,o),this.xAxisMax=sV(s,this.startXMax,o),this.yAxisMin=sV(e,this.startYMin,n),this.yAxisMax=sV(e,this.startYMax,n),this.min=sj.call(this),this.max=sq.call(this),this.average=sF.call(this),this.bins=sW.call(this),t&&this.resize(0,0)}function sG(t,i,s,e,o){let n=this.options.typeOptions,a=n.selectType,r=this.chart.xAxis[n.xAxis],h=this.chart.yAxis[n.yAxis],l=this.startXMin,p=this.startXMax,c=this.startYMin,d=this.startYMax,u=this.offsetX,x=this.offsetY;i&&("x"===a?0===s?this.startXMin=sV(r,l,e):this.startXMax=sV(r,p,e):"y"===a?0===s?this.startYMin=sV(h,c,o):this.startYMax=sV(h,d,o):(this.startXMax=sV(r,p,e),this.startYMax=sV(h,d,o))),t&&(this.startXMin=sV(r,l,u),this.startXMax=sV(r,p,u),this.startYMin=sV(h,c,x),this.startYMax=sV(h,d,x),this.offsetX=0,this.offsetY=0),this.options.typeOptions.point={x:this.startXMin,y:this.startYMin},this.userOptions.typeOptions.point={x:this.startXMin,y:this.startYMin}}class sK extends iN{init(t,i,s){super.init(t,i,s),this.offsetX=0,this.offsetY=0,this.resizeX=0,this.resizeY=0,sH.call(this),this.addValues(),this.addShapes()}setClipAxes(){this.clipXAxis=this.chart.xAxis[this.options.typeOptions.xAxis],this.clipYAxis=this.chart.yAxis[this.options.typeOptions.yAxis]}pointsOptions(){return this.options.points}shapePointsOptions(){let t=this.options.typeOptions,i=t.xAxis,s=t.yAxis;return[{x:this.xAxisMin,y:this.yAxisMin,xAxis:i,yAxis:s},{x:this.xAxisMax,y:this.yAxisMin,xAxis:i,yAxis:s},{x:this.xAxisMax,y:this.yAxisMax,xAxis:i,yAxis:s},{x:this.xAxisMin,y:this.yAxisMax,xAxis:i,yAxis:s},{command:"Z"}]}addControlPoints(){let t=this.chart.inverted,i=this.options.controlPointOptions,s=this.options.typeOptions.selectType;sX(this.userOptions.controlPointOptions&&this.userOptions.controlPointOptions.style.cursor)||("x"===s?i.style.cursor=t?"ns-resize":"ew-resize":"y"!==s||(i.style.cursor=t?"ew-resize":"ns-resize"));let e=new R(this.chart,this,this.options.controlPointOptions,0);this.controlPoints.push(e),"xy"!==s&&(e=new R(this.chart,this,this.options.controlPointOptions,1),this.controlPoints.push(e))}addValues(t){let i=this.options.typeOptions,s=i.label.formatter;s_.call(this,t),i.label.enabled&&(this.labels.length>0?this.labels[0].text=s&&s.call(this)||sz.call(this):this.initLabel(sS({shape:"rect",backgroundColor:"none",color:"black",borderWidth:0,dashStyle:"Dash",overflow:"allow",align:"left",y:0,x:0,verticalAlign:"top",crop:!0,xAxis:0,yAxis:0,point:function(t){let s=t.annotation,e=t.options;return{x:s.xAxisMin,y:s.yAxisMin,xAxis:sR(i.xAxis,e.xAxis),yAxis:sR(i.yAxis,e.yAxis)}},text:s&&s.call(this)||sz.call(this)},i.label),void 0))}addShapes(){this.addCrosshairs(),this.addBackground()}addBackground(){let t=this.shapePointsOptions();void 0!==t[0].x&&this.initShape(sS({type:"path",points:t,className:"highcharts-measure-background"},this.options.typeOptions.background),2)}addCrosshairs(){let t=this.chart,i=this.options.typeOptions,s=this.options.typeOptions.point,e=t.xAxis[i.xAxis],o=t.yAxis[i.yAxis],n=t.inverted,a={point:s,type:"path"},r=e.toPixels(this.xAxisMin),h=e.toPixels(this.xAxisMax),l=o.toPixels(this.yAxisMin),p=o.toPixels(this.yAxisMax),c=[],d=[],u,x,g;n&&(g=r,r=l,l=g,g=h,h=p,p=g),i.crosshairX.enabled&&(c=[["M",r,l+(p-l)/2],["L",h,l+(p-l)/2]]),i.crosshairY.enabled&&(d=[["M",r+(h-r)/2,l],["L",r+(h-r)/2,p]]),this.shapes.length>0?(this.shapes[0].options.d=c,this.shapes[1].options.d=d):(u=sD(a,{className:"highcharts-measure-crosshair-x"},i.crosshairX),x=sD(a,{className:"highcharts-measure-crosshair-y"},i.crosshairY),this.initShape(sS({d:c},u),0),this.initShape(sS({d:d},x),1))}onDrag(t){let i=this.mouseMoveToTranslation(t),s=this.options.typeOptions.selectType,e="y"===s?0:i.x,o="x"===s?0:i.y;this.translate(e,o),this.offsetX+=e,this.offsetY+=o,this.redraw(!1,!1,!0)}resize(t,i,s,e){let o=this.shapes[2];"x"===e?0===s?(o.translatePoint(t,0,0),o.translatePoint(t,i,3)):(o.translatePoint(t,0,1),o.translatePoint(t,i,2)):"y"===e?0===s?(o.translatePoint(0,i,0),o.translatePoint(0,i,1)):(o.translatePoint(0,i,2),o.translatePoint(0,i,3)):(o.translatePoint(t,0,1),o.translatePoint(t,i,2),o.translatePoint(0,i,3)),sG.call(this,!1,!0,s,t,i),this.options.typeOptions.background.height=Math.abs(this.startYMax-this.startYMin),this.options.typeOptions.background.width=Math.abs(this.startXMax-this.startXMin)}redraw(t,i,s){this.linkPoints(),this.graphic||this.render(),s&&sG.call(this,!0,!1),this.clipRect&&this.clipRect.animate(this.getClipBox()),this.addValues(i),this.addCrosshairs(),this.redrawItems(this.shapes,t),this.redrawItems(this.labels,t);let e=this.options.typeOptions.background;if(e?.strokeWidth&&this.shapes[2]?.graphic){let t=e.strokeWidth/2,i=this.shapes[2],s=i.graphic.pathArray,o=s[0],n=s[1],a=s[2],r=s[3];o[1]=(o[1]||0)+t,n[1]=(n[1]||0)-t,a[1]=(a[1]||0)-t,r[1]=(r[1]||0)+t,o[2]=(o[2]||0)+t,n[2]=(n[2]||0)+t,a[2]=(a[2]||0)-t,r[2]=(r[2]||0)-t,i.graphic.attr({d:s})}this.controlPoints.forEach(t=>t.redraw())}translate(t,i){this.shapes.forEach(s=>s.translate(t,i))}}sK.prototype.defaultOptions=sD(iN.prototype.defaultOptions,{typeOptions:{selectType:"xy",xAxis:0,yAxis:0,background:{fill:"rgba(130, 170, 255, 0.4)",strokeWidth:0,stroke:void 0},crosshairX:{enabled:!0,zIndex:6,dashStyle:"Dash",markerEnd:"arrow"},crosshairY:{enabled:!0,zIndex:6,dashStyle:"Dash",markerEnd:"arrow"},label:{enabled:!0,style:{fontSize:"0.7em",color:"#666666"},formatter:void 0}},controlPointOptions:{positioner:function(t){let i=this.index,s=t.chart,e=t.options,o=e.typeOptions,n=o.selectType,a=e.controlPointOptions,r=s.inverted,h=s.xAxis[o.xAxis],l=s.yAxis[o.yAxis],p=sU(t.xAxisMin,t.xAxisMax,t.yAxisMin,t.yAxisMax),c=t.xAxisMax,d=t.yAxisMax,u,x;return"x"===n&&(d=(p.yAxisMax+p.yAxisMin)/2,0===i&&(c=t.xAxisMin)),"y"===n&&(c=p.xAxisMin+(p.xAxisMax-p.xAxisMin)/2,0===i&&(d=t.yAxisMin)),r?(u=l.toPixels(d),x=h.toPixels(c)):(u=h.toPixels(c),x=l.toPixels(d)),{x:u-a.width/2,y:x-a.height/2}},events:{drag:function(t,i){let s=this.mouseMoveToTranslation(t),e=i.options.typeOptions.selectType,o=this.index,n="y"===e?0:s.x,a="x"===e?0:s.y;i.resize(n,a,o,e),i.resizeX+=n,i.resizeY+=a,i.redraw(!1,!0)}}}}),iN.types.measure=sK;/** - * @license Highcharts JS v12.0.2 (2024-12-04) + */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/annotations-advanced",["highcharts/highcharts"],function(t){return i(t,t.SeriesRegistry,t.Templating,t.AST)}):"object"==typeof exports?exports["highcharts/modules/annotations-advanced"]=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):t.Highcharts=i(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Templating,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,i,s,e)=>(()=>{"use strict";var o,n,a,r,h={660:t=>{t.exports=e},512:t=>{t.exports=i},984:t=>{t.exports=s},944:i=>{i.exports=t}},l={};function p(t){var i=l[t];if(void 0!==i)return i.exports;var s=l[t]={exports:{}};return h[t](s,s.exports,p),s.exports}p.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return p.d(i,{a:i}),i},p.d=(t,i)=>{for(var s in i)p.o(i,s)&&!p.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},p.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var c={};p.d(c,{default:()=>sZ});var d=p(944),u=p.n(d);let{addEvent:x,erase:g,find:y,fireEvent:f,pick:m,wrap:v}=u();function b(t,i){let s=this.initAnnotation(t);return this.options.annotations.push(s.options),m(i,!0)&&(s.redraw(),s.graphic.attr({opacity:1})),s}function A(){let t=this;t.plotBoxClip=this.renderer.clipRect(this.plotBox),t.controlPointsGroup=t.renderer.g("control-points").attr({zIndex:99}).clip(t.plotBoxClip).add(),t.options.annotations.forEach((i,s)=>{if(!t.annotations.some(t=>t.options===i)){let e=t.initAnnotation(i);t.options.annotations[s]=e.options}}),t.drawAnnotations(),x(t,"redraw",t.drawAnnotations),x(t,"destroy",function(){t.plotBoxClip.destroy(),t.controlPointsGroup.destroy()}),x(t,"exportData",function(i){let s=t.annotations,e=(this.options.exporting&&this.options.exporting.csv||{}).columnHeaderFormatter,o=!i.dataRows[1].xValues,n=t.options.lang&&t.options.lang.exportData&&t.options.lang.exportData.annotationHeader,a=i.dataRows[0].length,r=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.itemDelimiter,h=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.join;s.forEach(t=>{t.options.labelOptions&&t.options.labelOptions.includeInDataExport&&t.labels.forEach(t=>{if(t.options.text){let s=t.options.text;t.points.forEach(t=>{let e=t.x,o=t.series.xAxis?t.series.xAxis.index:-1,n=!1;if(-1===o){let t=i.dataRows[0].length,a=Array(t);for(let i=0;i{!n&&t.xValues&&void 0!==o&&e===t.xValues[o]&&(h&&t.length>a?t[t.length-1]+=r+s:t.push(s),n=!0)}),!n){let t=i.dataRows[0].length,n=Array(t);for(let i=0;i{l=Math.max(l,t.length)});let p=l-i.dataRows[0].length;for(let t=0;t{t.redraw(),t.graphic.animate({opacity:1},t.animationConfig)})}function O(t){let i=this.annotations,s="annotations"===t.coll?t:y(i,function(i){return i.options.id===t});s&&(f(s,"remove"),g(this.options.annotations,s.options),g(i,s),s.destroy())}function M(){this.annotations=[],this.options.annotations||(this.options.annotations=[])}function k(t){this.chart.hasDraggedAnnotation||t.apply(this,Array.prototype.slice.call(arguments,1))}(o||(o={})).compose=function(t,i,s){let e=i.prototype;if(!e.addAnnotation){let o=s.prototype;x(i,"afterInit",M),e.addAnnotation=b,e.callbacks.push(A),e.collectionsWithInit.annotations=[b],e.collectionsWithUpdate.push("annotations"),e.drawAnnotations=P,e.removeAnnotation=O,e.initAnnotation=function(i){let s=new(t.types[i.type]||t)(this,i);return this.annotations.push(s),s},v(o,"onContainerMouseDown",k)}};let w=o,{defined:E}=u(),{doc:C,isTouchDevice:T}=u(),{addEvent:B,fireEvent:N,objectEach:L,pick:Y,removeEvent:X}=u(),S=class{addEvents(){let t=this,i=function(i){B(i,T?"touchstart":"mousedown",i=>{t.onMouseDown(i)},{passive:!1})};if(i(this.graphic.element),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&i(t.graphic.text.element)}),L(t.options.events,(i,s)=>{let e=function(e){"click"===s&&t.cancelClick||i.call(t,t.chart.pointer?.normalize(e),t.target)};-1===(t.nonDOMEvents||[]).indexOf(s)?(B(t.graphic.element,s,e,{passive:!1}),t.graphic.div&&B(t.graphic.div,s,e,{passive:!1})):B(t,s,e,{passive:!1})}),t.options.draggable&&(B(t,"drag",t.onDrag),!t.graphic.renderer.styledMode)){let i={cursor:{x:"ew-resize",y:"ns-resize",xy:"move"}[t.options.draggable]};t.graphic.css(i),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&t.graphic.text.css(i)})}t.isUpdating||N(t,"add")}destroy(){this.removeDocEvents(),X(this),this.hcEvents=null}mouseMoveToRadians(t,i,s){let e=t.prevChartY-s,o=t.prevChartX-i,n=t.chartY-s,a=t.chartX-i,r;return this.chart.inverted&&(r=o,o=e,e=r,r=a,a=n,n=r),Math.atan2(n,a)-Math.atan2(e,o)}mouseMoveToScale(t,i,s){let e=t.prevChartX-i,o=t.prevChartY-s,n=t.chartX-i,a=t.chartY-s,r=(n||1)/(e||1),h=(a||1)/(o||1);if(this.chart.inverted){let t=h;h=r,r=t}return{x:r,y:h}}mouseMoveToTranslation(t){let i=t.chartX-t.prevChartX,s=t.chartY-t.prevChartY,e;return this.chart.inverted&&(e=s,s=i,i=e),{x:i,y:s}}onDrag(t){if(this.chart.isInsidePlot(t.chartX-this.chart.plotLeft,t.chartY-this.chart.plotTop,{visiblePlotOnly:!0})){let i=this.mouseMoveToTranslation(t);"x"===this.options.draggable&&(i.y=0),"y"===this.options.draggable&&(i.x=0),this.points.length?this.translate(i.x,i.y):(this.shapes.forEach(t=>t.translate(i.x,i.y)),this.labels.forEach(t=>t.translate(i.x,i.y))),this.redraw(!1)}}onMouseDown(t){if(t.preventDefault&&t.preventDefault(),2===t.button)return;let i=this,s=i.chart.pointer,e=t?.sourceCapabilities?.firesTouchEvents||!1,o=(t=s?.normalize(t)||t).chartX,n=t.chartY;i.cancelClick=!1,i.chart.hasDraggedAnnotation=!0,i.removeDrag=B(C,T||e?"touchmove":"mousemove",function(t){i.hasDragged=!0,(t=s?.normalize(t)||t).prevChartX=o,t.prevChartY=n,N(i,"drag",t),o=t.chartX,n=t.chartY},T||e?{passive:!1}:void 0),i.removeMouseUp=B(C,T||e?"touchend":"mouseup",function(){let t=Y(i.target&&i.target.annotation,i.target);t&&(t.cancelClick=i.hasDragged),i.cancelClick=i.hasDragged,i.chart.hasDraggedAnnotation=!1,i.hasDragged&&N(Y(t,i),"afterUpdate"),i.hasDragged=!1,i.onMouseUp()},T||e?{passive:!1}:void 0)}onMouseUp(){this.removeDocEvents()}removeDocEvents(){this.removeDrag&&(this.removeDrag=this.removeDrag()),this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())}},{merge:I,pick:D}=u(),R=class extends S{constructor(t,i,s,e){super(),this.nonDOMEvents=["drag"],this.chart=t,this.target=i,this.options=s,this.index=D(s.index,e)}destroy(){super.destroy(),this.graphic&&(this.graphic=this.graphic.destroy()),this.chart=null,this.target=null,this.options=null}redraw(t){this.graphic[t?"animate":"attr"](this.options.positioner.call(this,this.target))}render(){let t=this.chart,i=this.options;this.graphic=t.renderer.symbol(i.symbol,0,0,i.width,i.height).add(t.controlPointsGroup).css(i.style),this.setVisibility(i.visible),this.addEvents()}setVisibility(t){this.graphic[t?"show":"hide"](),this.options.visible=t}update(t){let i=this.chart,s=this.target,e=this.index,o=I(!0,this.options,t);this.destroy(),this.constructor(i,s,o,e),this.render(i.controlPointsGroup),this.redraw()}};var F=p(512),W=p.n(F);let{series:{prototype:z}}=W(),{defined:U,fireEvent:V}=u();class H{static fromPoint(t){return new H(t.series.chart,null,{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis})}static pointToPixels(t,i){let s=t.series,e=s.chart,o=t.plotX||0,n=t.plotY||0,a;return e.inverted&&(t.mock?(o=t.plotY,n=t.plotX):(o=e.plotWidth-(t.plotY||0),n=e.plotHeight-(t.plotX||0))),s&&!i&&(o+=(a=s.getPlotBox()).translateX,n+=a.translateY),{x:o,y:n}}static pointToOptions(t){return{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis}}constructor(t,i,s){this.mock=!0,this.point=this,this.series={visible:!0,chart:t,getPlotBox:z.getPlotBox},this.target=i||null,this.options=s,this.applyOptions(this.getOptions())}applyOptions(t){this.command=t.command,this.setAxis(t,"x"),this.setAxis(t,"y"),this.refresh()}getOptions(){return this.hasDynamicOptions()?this.options(this.target):this.options}hasDynamicOptions(){return"function"==typeof this.options}isInsidePlot(){let t=this.plotX,i=this.plotY,s=this.series.xAxis,e=this.series.yAxis,o={x:t,y:i,isInsidePlot:!0,options:{}};return s&&(o.isInsidePlot=U(t)&&t>=0&&t<=s.len),e&&(o.isInsidePlot=o.isInsidePlot&&U(i)&&i>=0&&i<=e.len),V(this.series.chart,"afterIsInsidePlot",o),o.isInsidePlot}refresh(){let t=this.series,i=t.xAxis,s=t.yAxis,e=this.getOptions();i?(this.x=e.x,this.plotX=i.toPixels(e.x,!0)):(this.x=void 0,this.plotX=e.x),s?(this.y=e.y,this.plotY=s.toPixels(e.y,!0)):(this.y=null,this.plotY=e.y),this.isInside=this.isInsidePlot()}refreshOptions(){let t=this.series,i=t.xAxis,s=t.yAxis;this.x=this.options.x=i?this.options.x=i.toValue(this.plotX,!0):this.plotX,this.y=this.options.y=s?s.toValue(this.plotY,!0):this.plotY}rotate(t,i,s){if(!this.hasDynamicOptions()){let e=Math.cos(s),o=Math.sin(s),n=this.plotX-t,a=this.plotY-i;this.plotX=n*e-a*o+t,this.plotY=n*o+a*e+i,this.refreshOptions()}}scale(t,i,s,e){if(!this.hasDynamicOptions()){let o=this.plotX*s,n=this.plotY*e;this.plotX=(1-s)*t+o,this.plotY=(1-e)*i+n,this.refreshOptions()}}setAxis(t,i){let s=i+"Axis",e=t[s],o=this.series.chart;this.series[s]="object"==typeof e?e:U(e)?o[s][e]||o.get(e):null}toAnchor(){let t=[this.plotX,this.plotY,0,0];return this.series.chart.inverted&&(t[0]=this.plotY,t[1]=this.plotX),t}translate(t,i,s,e){this.hasDynamicOptions()||(this.plotX+=s,this.plotY+=e,this.refreshOptions())}}!function(t){function i(){let t=this.controlPoints,i=this.options.controlPoints||[];i.forEach((s,e)=>{let o=u().merge(this.options.controlPointOptions,s);o.index||(o.index=e),i[e]=o,t.push(new R(this.chart,this,o))})}function s(t){let i=t.series.getPlotBox(),s=t.series.chart,e=t.mock?t.toAnchor():s.tooltip&&s.tooltip.getAnchor.call({chart:t.series.chart},t)||[0,0,0,0],o={x:e[0]+(this.options.x||0),y:e[1]+(this.options.y||0),height:e[2]||0,width:e[3]||0};return{relativePosition:o,absolutePosition:u().merge(o,{x:o.x+(t.mock?i.translateX:s.plotLeft),y:o.y+(t.mock?i.translateY:s.plotTop)})}}function e(){this.controlPoints.forEach(t=>t.destroy()),this.chart=null,this.controlPoints=null,this.points=null,this.options=null,this.annotation&&(this.annotation=null)}function o(){let t=this.options;return t.points||t.point&&u().splat(t.point)}function n(){let t,i;let s=this.getPointsOptions(),e=this.points,o=s&&s.length||0;for(t=0;ti.redraw(t))}function h(){this.controlPoints.forEach(t=>t.render())}function l(t,i,s,e,o){if(this.chart.inverted){let t=i;i=s,s=t}this.points.forEach((n,a)=>this.transformPoint(t,i,s,e,o,a),this)}function p(t,i,s,e,o,n){let a=this.points[n];a.mock||(a=this.points[n]=H.fromPoint(a)),a[t](i,s,e,o)}function c(t,i){this.transform("translate",null,null,t,i)}function d(t,i,s){this.transformPoint("translate",null,null,t,i,s)}t.compose=function(t){let x=t.prototype;x.addControlPoints||u().merge(!0,x,{addControlPoints:i,anchor:s,destroyControlTarget:e,getPointsOptions:o,linkPoints:n,point:a,redrawControlPoints:r,renderControlPoints:h,transform:l,transformPoint:p,translate:c,translatePoint:d})}}(n||(n={}));let q=n,{merge:j}=u();class _{constructor(t,i,s,e){this.annotation=t,this.chart=t.chart,this.collection="label"===e?"labels":"shapes",this.controlPoints=[],this.options=i,this.points=[],this.index=s,this.itemType=e,this.init(t,i,s)}attr(...t){this.graphic.attr.apply(this.graphic,arguments)}attrsFromOptions(t){let i,s;let e=this.constructor.attrsMap,o={},n=this.chart.styledMode;for(i in t)s=e[i],void 0===e[i]||n&&-1!==["fill","stroke","stroke-width"].indexOf(s)||(o[s]=t[i]);return o}destroy(){this.graphic&&(this.graphic=this.graphic.destroy()),this.tracker&&(this.tracker=this.tracker.destroy()),this.destroyControlTarget()}init(t,i,s){this.annotation=t,this.chart=t.chart,this.options=i,this.points=[],this.controlPoints=[],this.index=s,this.linkPoints(),this.addControlPoints()}redraw(t){this.redrawControlPoints(t)}render(t){this.options.className&&this.graphic&&this.graphic.addClass(this.options.className),this.renderControlPoints()}rotate(t,i,s){this.transform("rotate",t,i,s)}scale(t,i,s,e){this.transform("scale",t,i,s,e)}setControlPointsVisibility(t){this.controlPoints.forEach(i=>{i.setVisibility(t)})}shouldBeDrawn(){return!!this.points.length}translateShape(t,i,s){let e=this.annotation.chart,o=this.annotation.userOptions,n=e.annotations.indexOf(this.annotation),a=e.options.annotations[n];this.translatePoint(t,i,0),s&&this.translatePoint(t,i,1),a[this.collection][this.index].point=this.options.point,o[this.collection][this.index].point=this.options.point}update(t){let i=this.annotation,s=j(!0,this.options,t),e=this.graphic.parentGroup,o=this.constructor;this.destroy(),j(!0,this,new o(i,s,this.index,this.itemType)),this.render(e),this.redraw()}}q.compose(_);let G=_,{defaultMarkers:K}={defaultMarkers:{arrow:{tagName:"marker",attributes:{id:"arrow",refY:5,refX:9,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 0 L 10 5 L 0 10 Z","stroke-width":0}}]},"reverse-arrow":{tagName:"marker",attributes:{id:"reverse-arrow",refY:5,refX:1,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 5 L 10 0 L 10 10 Z","stroke-width":0}}]}}},{addEvent:Z,defined:$,extend:J,merge:Q,uniqueKey:tt}=u(),ti=to("marker-end"),ts=to("marker-start"),te="rgba(192,192,192,"+(u().svg?1e-4:.002)+")";function to(t){return function(i){this.attr(t,"url(#"+i+")")}}function tn(){this.options.defs=Q(K,this.options.defs||{})}function ta(t,i){let s={attributes:{id:t}},e={stroke:i.color||"none",fill:i.color||"rgba(0, 0, 0, 0.75)"};s.children=i.children&&i.children.map(function(t){return Q(e,t)});let o=Q(!0,{attributes:{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"}},i,s),n=this.definition(o);return n.id=t,n}class tr extends G{static compose(t,i){let s=i.prototype;s.addMarker||(Z(t,"afterGetContainer",tn),s.addMarker=ta)}constructor(t,i,s){super(t,i,s,"shape"),this.type="path"}toD(){let t=this.options.d;if(t)return"function"==typeof t?t.call(this):t;let i=this.points,s=i.length,e=[],o=s,n=i[0],a=o&&this.anchor(n).absolutePosition,r=0,h;if(a)for(e.push(["M",a.x,a.y]);++r{t.yAxis=i.yAxis}),tu(i.xAxis)&&i.points.forEach(t=>{t.xAxis=i.xAxis}),super.init(t,i,s)}render(t){this.graphic=this.annotation.chart.renderer.createElement("ellipse").attr(this.attrsFromOptions(this.options)).add(t),super.render()}translate(t,i){super.translateShape(t,i,!0)}getDistanceFromLine(t,i,s,e){return Math.abs((i.y-t.y)*s-(i.x-t.x)*e+i.x*t.y-i.y*t.x)/Math.sqrt((i.y-t.y)*(i.y-t.y)+(i.x-t.x)*(i.x-t.x))}getAttrs(t,i){let s=t.x,e=t.y,o=i.x,n=i.y,a=(s+o)/2,r=Math.sqrt((s-o)*(s-o)/4+(e-n)*(e-n)/4),h=180*Math.atan((n-e)/(o-s))/Math.PI;return ai+e?r.push(["L",t+l,i+e]):at+s&&r.push(["L",t+s,i+e/2])),r||[]}class tO extends G{static alignedPosition(t,i){return{x:Math.round((i.x||0)+(t.x||0)+(i.width-(t.width||0))*tv(t.align)),y:Math.round((i.y||0)+(t.y||0)+(i.height-(t.height||0))*tv(t.verticalAlign))}}static compose(t){t.prototype.symbols.connector=tP}static justifiedOptions(t,i,s,e){let o;let n=s.align,a=s.verticalAlign,r=i.box?0:i.padding||0,h=i.getBBox(),l={align:n,verticalAlign:a,x:s.x,y:s.y,width:i.width,height:i.height},p=(e.x||0)-t.plotLeft,c=(e.y||0)-t.plotTop;return(o=p+r)<0&&("right"===n?l.align="left":l.x=(l.x||0)-o),(o=p+h.width-r)>t.plotWidth&&("left"===n?l.align="right":l.x=(l.x||0)+t.plotWidth-o),(o=c+r)<0&&("bottom"===a?l.verticalAlign="top":l.y=(l.y||0)-o),(o=c+h.height-r)>t.plotHeight&&("top"===a?l.verticalAlign="bottom":l.y=(l.y||0)+t.plotHeight-o),l}constructor(t,i,s){super(t,i,s,"label")}translatePoint(t,i){super.translatePoint(t,i,0)}translate(t,i){let s=this.annotation.chart,e=this.annotation.userOptions,o=s.annotations.indexOf(this.annotation),n=s.options.annotations[o];if(s.inverted){let s=t;t=i,i=s}this.options.x+=t,this.options.y+=i,n[this.collection][this.index].x=this.options.x,n[this.collection][this.index].y=this.options.y,e[this.collection][this.index].x=this.options.x,e[this.collection][this.index].y=this.options.y}render(t){let i=this.options,s=this.attrsFromOptions(i),e=i.style;this.graphic=this.annotation.chart.renderer.label("",0,-9999,i.shape,null,null,i.useHTML,null,"annotation-label").attr(s).add(t),this.annotation.chart.styledMode||("contrast"===e.color&&(e.color=this.annotation.chart.renderer.getContrast(tO.shapesWithoutBackground.indexOf(i.shape)>-1?"#FFFFFF":i.backgroundColor)),this.graphic.css(i.style).shadow(i.shadow)),this.graphic.labelrank=i.labelrank,super.render()}redraw(t){let i=this.options,s=this.text||i.format||i.text,e=this.graphic,o=this.points[0];if(!e){this.redraw(t);return}e.attr({text:s?tf(String(s),o,this.annotation.chart):i.formatter.call(o,this)});let n=this.anchor(o),a=this.position(n);a?(e.alignAttr=a,a.anchorX=n.absolutePosition.x,a.anchorY=n.absolutePosition.y,e[t?"animate":"attr"](a)):e.attr({x:0,y:-9999}),e.placed=!!a,super.redraw(t)}anchor(t){let i=super.anchor.apply(this,arguments),s=this.options.x||0,e=this.options.y||0;return i.absolutePosition.x-=s,i.absolutePosition.y-=e,i.relativePosition.x-=s,i.relativePosition.y-=e,i}position(t){let i=this.graphic,s=this.annotation.chart,e=s.tooltip,o=this.points[0],n=this.options,a=t.absolutePosition,r=t.relativePosition,h,l,p,c,d=o.series.visible&&H.prototype.isInsidePlot.call(o);if(i&&d){let{width:t=0,height:u=0}=i;n.distance&&e?h=e.getPosition.call({chart:s,distance:tA(n.distance,16),getPlayingField:e.getPlayingField,pointer:e.pointer},t,u,{plotX:r.x,plotY:r.y,negative:o.negative,ttBelow:o.ttBelow,h:r.height||r.width}):n.positioner?h=n.positioner.call(this):(l={x:a.x,y:a.y,width:0,height:0},h=tO.alignedPosition(tm(n,{width:t,height:u}),l),"justify"===this.options.overflow&&(h=tO.alignedPosition(tO.justifiedOptions(s,i,n,h),l))),n.crop&&(p=h.x-s.plotLeft,c=h.y-s.plotTop,d=s.isInsidePlot(p,c)&&s.isInsidePlot(p+t,c+u))}return d?h:null}}tO.attrsMap={backgroundColor:"fill",borderColor:"stroke",borderWidth:"stroke-width",zIndex:"zIndex",borderRadius:"r",padding:"padding"},tO.shapesWithoutBackground=["connector"];class tM extends G{constructor(t,i,s){super(t,i,s,"shape"),this.type="image",this.translate=super.translateShape}render(t){let i=this.attrsFromOptions(this.options),s=this.options;this.graphic=this.annotation.chart.renderer.image(s.src,0,-9e9,s.width,s.height).attr(i).add(t),this.graphic.width=s.width,this.graphic.height=s.height,super.render()}redraw(t){if(this.graphic){let i=this.anchor(this.points[0]),s=tO.prototype.position.call(this,i);s?this.graphic[t?"animate":"attr"]({x:s.x,y:s.y}):this.graphic.attr({x:0,y:-9e9}),this.graphic.placed=!!s}super.redraw(t)}}tM.attrsMap={width:"width",height:"height",zIndex:"zIndex"};var tk=p(660),tw=p.n(tk);let{addEvent:tE,createElement:tC}=u(),tT=class{constructor(t,i){this.iconsURL=i,this.container=this.createPopupContainer(t),this.closeButton=this.addCloseButton()}createPopupContainer(t,i="highcharts-popup highcharts-no-tooltip"){return tC("div",{className:i},void 0,t)}addCloseButton(t="highcharts-popup-close"){let i=this,s=this.iconsURL,e=tC("button",{className:t},void 0,this.container);return e.style["background-image"]="url("+(s.match(/png|svg|jpeg|jpg|gif/ig)?s:s+"close.svg")+")",["click","touchstart"].forEach(t=>{tE(e,t,i.closeButtonEvents.bind(i))}),tE(document,"keydown",function(t){"Escape"===t.code&&i.closeButtonEvents()}),e}closeButtonEvents(){this.closePopup()}showPopup(t="highcharts-annotation-toolbar"){let i=this.container,s=this.closeButton;this.type=void 0,i.innerHTML=tw().emptyHTML,i.className.indexOf(t)>=0&&(i.classList.remove(t),i.removeAttribute("style")),i.appendChild(s),i.style.display="block",i.style.height=""}closePopup(){this.container.style.display="none"}},{doc:tB,isFirefox:tN}=u(),{createElement:tL,isArray:tY,isObject:tX,objectEach:tS,pick:tI,stableSort:tD}=u();function tR(t,i,s,e,o,n){let a,r;if(!i)return;let h=this.addInput,l=this.lang;tS(e,(e,n)=>{a=""!==s?s+"."+n:n,tX(e)&&(!tY(e)||tY(e)&&tX(e[0])?((r=l[n]||n).match(/\d/g)||o.push([!0,r,t]),tR.call(this,t,i,a,e,o,!1)):o.push([this,a,"annotation",t,e]))}),n&&(tD(o,t=>t[1].match(/format/g)?-1:1),tN&&o.reverse(),o.forEach(t=>{!0===t[0]?tL("span",{className:"highcharts-annotation-title"},void 0,t[2]).appendChild(tB.createTextNode(t[1])):(t[4]={value:t[4][0],type:t[4][1]},h.apply(t[0],t.splice(1)))}))}let{doc:tF}=u(),{seriesTypes:tW}=W(),{addEvent:tz,createElement:tU,defined:tV,isArray:tH,isObject:tq,objectEach:tj,stableSort:t_}=u();!function(t){t[t["params.algorithm"]=0]="params.algorithm",t[t["params.average"]=1]="params.average"}(a||(a={}));let tG={"algorithm-pivotpoints":["standard","fibonacci","camarilla"],"average-disparityindex":["sma","ema","dema","tema","wma"]};function tK(t){let i=tU("div",{className:"highcharts-popup-lhs-col"},void 0,t),s=tU("div",{className:"highcharts-popup-rhs-col"},void 0,t);return tU("div",{className:"highcharts-popup-rhs-col-wrapper"},void 0,s),{lhsCol:i,rhsCol:s}}function tZ(t,i,s,e){let o=i.params||i.options.params;e.innerHTML=tw().emptyHTML,tU("h3",{className:"highcharts-indicator-title"},void 0,e).appendChild(tF.createTextNode(t4(i,s).indicatorFullName)),tU("input",{type:"hidden",name:"highcharts-type-"+s,value:s},void 0,e),t5.call(this,s,"series",t,e,i,i.linkedParent&&i.linkedParent.options.id),o.volumeSeriesID&&t5.call(this,s,"volume",t,e,i,i.linkedParent&&o.volumeSeriesID),tJ.call(this,t,"params",o,s,e)}function t$(t,i,s,e){function o(i,s){let e=x.parentNode.children[1];tZ.call(n,t,i,s,x),e&&(e.style.display="block"),l&&i.options&&tU("input",{type:"hidden",name:"highcharts-id-"+s,value:i.options.id},void 0,x).setAttribute("highcharts-data-series-id",i.options.id)}let n=this,a=n.lang,r=i.querySelectorAll(".highcharts-popup-lhs-col")[0],h=i.querySelectorAll(".highcharts-popup-rhs-col")[0],l="edit"===s,p=l?t.series:t.options.plotOptions||{};if(!t&&p)return;let c,d=[];l||tH(p)?tH(p)&&(d=t9.call(this,p)):d=t2.call(this,p,e),t_(d,(t,i)=>{let s=t.indicatorFullName.toLowerCase(),e=i.indicatorFullName.toLowerCase();return se?1:0}),r.children[1]&&r.children[1].remove();let u=tU("ul",{className:"highcharts-indicator-list"},void 0,r),x=h.querySelectorAll(".highcharts-popup-rhs-col-wrapper")[0];if(d.forEach(t=>{let{indicatorFullName:i,indicatorType:s,series:e}=t;c=tU("li",{className:"highcharts-indicator-list"},void 0,u);let n=tU("button",{className:"highcharts-indicator-list-item",textContent:i},void 0,c);["click","touchstart"].forEach(t=>{tz(n,t,function(){o(e,s)})})}),d.length>0){let{series:t,indicatorType:i}=d[0];o(t,i)}else l||(tw().setElementHTML(x.parentNode.children[0],a.noFilterMatch||""),x.parentNode.children[1].style.display="none")}function tJ(t,i,s,e,o){if(!t)return;let n=this.addInput;tj(s,(s,r)=>{let h=i+"."+r;if(tV(s)&&h){if(tq(s)&&(n.call(this,h,e,o,{}),tJ.call(this,t,h,s,e,o)),h in a){let n=t0.call(this,e,h,o);t1.call(this,t,i,n,e,r,s)}else"params.volumeSeriesID"===h||tH(s)||n.call(this,h,e,o,{value:s,type:"number"})}})}function tQ(t,i){let s=this,e=i.querySelectorAll(".highcharts-popup-lhs-col")[0],o=this.lang.clearFilter,n=tU("div",{className:"highcharts-input-wrapper"},void 0,e),a=function(i){t$.call(s,t,s.container,"add",i)},r=this.addInput("searchIndicators","input",n,{value:"",type:"text",htmlFor:"search-indicators",labelClassName:"highcharts-input-search-indicators-label"}),h=tU("a",{textContent:o},void 0,n);r.classList.add("highcharts-input-search-indicators"),h.classList.add("clear-filter-button"),tz(r,"input",function(){a(this.value),this.value.length?h.style.display="inline-block":h.style.display="none"}),["click","touchstart"].forEach(t=>{tz(h,t,function(){r.value="",a(""),h.style.display="none"})})}function t0(t,i,s){let e=i.split("."),o=e[e.length-1],n="highcharts-"+i+"-type-"+t,a=this.lang;tU("label",{htmlFor:n},null,s).appendChild(tF.createTextNode(a[o]||i));let r=tU("select",{name:n,className:"highcharts-popup-field",id:"highcharts-select-"+i},null,s);return r.setAttribute("id","highcharts-select-"+i),r}function t1(t,i,s,e,o,n,a){"series"===i||"volume"===i?t.series.forEach(t=>{let e=t.options,o=e.name||e.params?t.name:e.id||"";"highcharts-navigator-series"!==e.id&&e.id!==(a&&a.options&&a.options.id)&&(tV(n)||"volume"!==i||"column"!==t.type||(n=e.id),tU("option",{value:e.id},void 0,s).appendChild(tF.createTextNode(o)))}):e&&o&&tG[o+"-"+e].forEach(t=>{tU("option",{value:t},void 0,s).appendChild(tF.createTextNode(t))}),tV(n)&&(s.value=n)}function t2(t,i){let s;let e=this.chart&&this.chart.options.lang,o=e&&e.navigation&&e.navigation.popup&&e.navigation.popup.indicatorAliases,n=[];return tj(t,(t,e)=>{let a=t&&t.options;if(t.params||a&&a.params){let{indicatorFullName:a,indicatorType:r}=t4(t,e);if(i){let e=RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=o&&o[r]&&o[r].join(" ")||"";(a.match(e)||h.match(e))&&(s={indicatorFullName:a,indicatorType:r,series:t},n.push(s))}else s={indicatorFullName:a,indicatorType:r,series:t},n.push(s)}}),n}function t9(t){let i=[];return t.forEach(t=>{t.is("sma")&&i.push({indicatorFullName:t.name,indicatorType:t.type,series:t})}),i}function t4(t,i){let s=t.options,e=tW[i]&&tW[i].prototype.nameBase||i.toUpperCase(),o=i;return s&&s.type&&(o=t.options.type,e=t.name),{indicatorFullName:e,indicatorType:o}}function t5(t,i,s,e,o,n){if(!s)return;let a=t0.call(this,t,i,e);t1.call(this,s,i,a,void 0,void 0,void 0,o),tV(n)&&(a.value=n)}let{doc:t3}=u(),{addEvent:t6,createElement:t7}=u();function t8(){return t7("div",{className:"highcharts-tab-item-content highcharts-no-mousewheel"},void 0,this.container)}function it(t,i){let s=this.container,e=this.lang,o="highcharts-tab-item";0===i&&(o+=" highcharts-tab-disabled");let n=t7("button",{className:o},void 0,s);return n.appendChild(t3.createTextNode(e[t+"Button"]||t)),n.setAttribute("highcharts-data-tab-type",t),n}function ii(){let t=this.container,i=t.querySelectorAll(".highcharts-tab-item"),s=t.querySelectorAll(".highcharts-tab-item-content");for(let t=0;t{(0!==t||"edit"!==s.getAttribute("highcharts-data-tab-type"))&&["click","touchstart"].forEach(t=>{t6(s,t,function(){ii.call(i),is.call(i,this,e)})})})}let{doc:io}=u(),{getOptions:ia}=u(),{addEvent:ir,createElement:ih,extend:il,fireEvent:ip,pick:ic}=u();class id extends tT{constructor(t,i,s){super(t,i),this.chart=s,this.lang=(ia().lang.navigation||{}).popup||{},ir(this.container,"mousedown",()=>{let t=s&&s.navigationBindings&&s.navigationBindings.activeAnnotation;if(t){t.cancelClick=!0;let i=ir(io,"click",()=>{setTimeout(()=>{t.cancelClick=!1},0),i()})}})}addInput(t,i,s,e){let o=t.split("."),n=o[o.length-1],a=this.lang,r="highcharts-"+i+"-"+ic(e.htmlFor,n);n.match(/^\d+$/)||ih("label",{htmlFor:r,className:e.labelClassName},void 0,s).appendChild(io.createTextNode(a[n]||n));let h=ih("input",{name:r,value:e.value,type:e.type,className:"highcharts-popup-field"},void 0,s);return h.setAttribute("highcharts-data-name",t),h}closeButtonEvents(){if(this.chart){let t=this.chart.navigationBindings;ip(t,"closePopup"),t&&t.selectedButtonElement&&ip(t,"deselectButton",{button:t.selectedButtonElement})}else super.closeButtonEvents()}addButton(t,i,s,e,o){let n=ih("button",void 0,void 0,t);return n.appendChild(io.createTextNode(i)),o&&["click","touchstart"].forEach(t=>{ir(n,t,()=>(this.closePopup(),o(function(t,i){let s=Array.prototype.slice.call(t.querySelectorAll("input")),e=Array.prototype.slice.call(t.querySelectorAll("select")),o=t.querySelectorAll("#highcharts-select-series > option:checked")[0],n=t.querySelectorAll("#highcharts-select-volume > option:checked")[0],a={actionType:i,linkedTo:o&&o.getAttribute("value")||"",fields:{}};return s.forEach(t=>{let i=t.getAttribute("highcharts-data-name");t.getAttribute("highcharts-data-series-id")?a.seriesId=t.value:i?a.fields[i]=t.value:a.type=t.value}),e.forEach(t=>{let i=t.id;if("highcharts-select-series"!==i&&"highcharts-select-volume"!==i){let s=i.split("highcharts-select-")[1];a.fields[s]=t.value}}),n&&(a.fields["params.volumeSeriesID"]=n.getAttribute("value")||""),a}(e,s))))}),n}showForm(t,i,s,e){i&&(this.showPopup(),"indicators"===t&&this.indicators.addForm.call(this,i,s,e),"annotation-toolbar"===t&&this.annotations.addToolbar.call(this,i,s,e),"annotation-edit"===t&&this.annotations.addForm.call(this,i,s,e),"flag"===t&&this.annotations.addForm.call(this,i,s,e,!0),this.type=t,this.container.style.height=this.container.offsetHeight+"px")}}il(id.prototype,{annotations:{addForm:function(t,i,s,e){if(!t)return;let o=this.container,n=this.lang,a=tL("h2",{className:"highcharts-popup-main-title"},void 0,o);a.appendChild(tB.createTextNode(n[i.langKey]||i.langKey||"")),a=tL("div",{className:"highcharts-popup-lhs-col highcharts-popup-lhs-full"},void 0,o);let r=tL("div",{className:"highcharts-popup-bottom-row"},void 0,o);tR.call(this,a,t,"",i,[],!0),this.addButton(r,e?n.addButton||"Add":n.saveButton||"Save",e?"add":"save",o,s)},addToolbar:function(t,i,s){let e=this.lang,o=this.container,n=this.showForm,a="highcharts-annotation-toolbar";-1===o.className.indexOf(a)&&(o.className+=" "+a+" highcharts-no-mousewheel"),t&&(o.style.top=t.plotTop+10+"px");let r=tL("p",{className:"highcharts-annotation-label"},void 0,o);r.setAttribute("aria-label","Annotation type"),r.appendChild(tB.createTextNode(tI(e[i.langKey]||i.langKey,i.shapes&&i.shapes[0].type,"")));let h=this.addButton(o,e.editButton||"Edit","edit",o,()=>{n.call(this,"annotation-edit",t,i,s)});h.className+=" highcharts-annotation-edit-button",h.style["background-image"]="url("+this.iconsURL+"edit.svg)",h=this.addButton(o,e.removeButton||"Remove","remove",o,s),h.className+=" highcharts-annotation-remove-button",h.style["background-image"]="url("+this.iconsURL+"destroy.svg)"}},indicators:{addForm:function(t,i,s){let e;let o=this.lang;if(!t)return;this.tabs.init.call(this,t);let n=this.container.querySelectorAll(".highcharts-tab-item-content");tK(n[0]),tQ.call(this,t,n[0]),t$.call(this,t,n[0],"add"),e=n[0].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(e,o.addButton||"add","add",e,s),tK(n[1]),t$.call(this,t,n[1],"edit"),e=n[1].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(e,o.saveButton||"save","edit",e,s),this.addButton(e,o.removeButton||"remove","remove",e,s)},getAmount:function(){let t=0;return this.series.forEach(i=>{(i.params||i.options.params)&&t++}),t}},tabs:{init:function(t){if(!t)return;let i=this.indicators.getAmount.call(t),s=it.call(this,"add");it.call(this,"edit",i),t8.call(this),t8.call(this),ie.call(this,i),is.call(this,s,0)}}});let{composed:iu}=u(),{addEvent:ix,pushUnique:ig,wrap:iy}=u();function im(){this.popup&&this.popup.closePopup()}function iv(t){this.popup||(this.popup=new id(this.chart.container,this.chart.options.navigation.iconsURL||this.chart.options.stockTools&&this.chart.options.stockTools.gui.iconsURL||"https://code.highcharts.com/12.1.0/gfx/stock-icons/",this.chart)),this.popup.showForm(t.formType,this.chart,t.options,t.onSubmit)}function ib(t,i){this.inClass(i.target,"highcharts-popup")||t.apply(this,Array.prototype.slice.call(arguments,1))}let iA={compose:function(t,i){ig(iu,"Popup")&&(ix(t,"closePopup",im),ix(t,"showPopup",iv),iy(i.prototype,"onContainerMouseDown",ib))}},{getDeferredAnimation:iP}=u(),{destroyObjectProperties:iO,erase:iM,fireEvent:ik,merge:iw,pick:iE,splat:iC}=u();function iT(t,i){let s={};return["labels","shapes"].forEach(e=>{let o=t[e],n=i[e];o&&(n?s[e]=iC(n).map((t,i)=>iw(o[i],t)):s[e]=t[e])}),s}class iB extends S{static compose(t,i,s,e){w.compose(iB,t,s),tO.compose(e),tr.compose(t,e),i.compose(iB,t),iA.compose(i,s)}constructor(t,i){super(),this.coll="annotations",this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.index=-1,this.labels=[],this.shapes=[],this.options=iw(this.defaultOptions,i),this.userOptions=i;let s=iT(this.options,i);this.options.labels=s.labels,this.options.shapes=s.shapes,this.init(t,this.options)}addClipPaths(){this.setClipAxes(),this.clipXAxis&&this.clipYAxis&&this.options.crop&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))}addLabels(){let t=this.options.labels||[];t.forEach((i,s)=>{let e=this.initLabel(i,s);iw(!0,t[s],e.options)})}addShapes(){let t=this.options.shapes||[];t.forEach((i,s)=>{let e=this.initShape(i,s);iw(!0,t[s],e.options)})}destroy(){let t=this.chart,i=function(t){t.destroy()};this.labels.forEach(i),this.shapes.forEach(i),this.clipXAxis=null,this.clipYAxis=null,iM(t.labelCollectors,this.labelCollector),super.destroy(),this.destroyControlTarget(),iO(this,t)}destroyItem(t){iM(this[t.itemType+"s"],t),t.destroy()}getClipBox(){if(this.clipXAxis&&this.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}}initProperties(t,i){this.setOptions(i);let s=iT(this.options,i);this.options.labels=s.labels,this.options.shapes=s.shapes,this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.userOptions=i,this.labels=[],this.shapes=[]}init(t,i,s=this.index){let e=this.chart,o=this.options.animation;this.index=s,this.linkPoints(),this.addControlPoints(),this.addShapes(),this.addLabels(),this.setLabelCollector(),this.animationConfig=iP(e,o)}initLabel(t,i){let s=new tO(this,iw(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},t),i);return s.itemType="label",this.labels.push(s),s}initShape(t,i){let s=iw(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},t),e=new iB.shapesMap[s.type](this,s,i);return e.itemType="shape",this.shapes.push(e),e}redraw(t){this.linkPoints(),this.graphic||this.render(),this.clipRect&&this.clipRect.animate(this.getClipBox()),this.redrawItems(this.shapes,t),this.redrawItems(this.labels,t),this.redrawControlPoints(t)}redrawItem(t,i){t.linkPoints(),t.shouldBeDrawn()?(t.graphic||this.renderItem(t),t.redraw(iE(i,!0)&&t.graphic.placed),t.points.length&&function(t){let i=t.graphic,s=t.points.some(t=>!1!==t.series.visible&&!1!==t.visible);i&&(s?"hidden"===i.visibility&&i.show():i.hide())}(t)):this.destroyItem(t)}redrawItems(t,i){let s=t.length;for(;s--;)this.redrawItem(t[s],i)}remove(){return this.chart.removeAnnotation(this)}render(){let t=this.chart.renderer;this.graphic=t.g("annotation").attr({opacity:0,zIndex:this.options.zIndex,visibility:this.options.visible?"inherit":"hidden"}).add(),this.shapesGroup=t.g("annotation-shapes").add(this.graphic),this.options.crop&&this.shapesGroup.clip(this.chart.plotBoxClip),this.labelsGroup=t.g("annotation-labels").attr({translateX:0,translateY:0}).add(this.graphic),this.addClipPaths(),this.clipRect&&this.graphic.clip(this.clipRect),this.renderItems(this.shapes),this.renderItems(this.labels),this.addEvents(),this.renderControlPoints()}renderItem(t){t.render("label"===t.itemType?this.labelsGroup:this.shapesGroup)}renderItems(t){let i=t.length;for(;i--;)this.renderItem(t[i])}setClipAxes(){let t=this.chart.xAxis,i=this.chart.yAxis,s=(this.options.labels||[]).concat(this.options.shapes||[]).reduce((s,e)=>{let o=e&&(e.point||e.points&&e.points[0]);return[t[o&&o.xAxis]||s[0],i[o&&o.yAxis]||s[1]]},[]);this.clipXAxis=s[0],this.clipYAxis=s[1]}setControlPointsVisibility(t){let i=function(i){i.setControlPointsVisibility(t)};this.controlPoints.forEach(i=>{i.setVisibility(t)}),this.shapes.forEach(i),this.labels.forEach(i)}setLabelCollector(){let t=this;t.labelCollector=function(){return t.labels.reduce(function(t,i){return i.options.allowOverlap||t.push(i.graphic),t},[])},t.chart.labelCollectors.push(t.labelCollector)}setOptions(t){this.options=iw(this.defaultOptions,t)}setVisibility(t){let i=this.options,s=this.chart.navigationBindings,e=iE(t,!i.visible);if(this.graphic.attr("visibility",e?"inherit":"hidden"),!e){let t=function(t){t.setControlPointsVisibility(e)};this.shapes.forEach(t),this.labels.forEach(t),s.activeAnnotation===this&&s.popup&&"annotation-toolbar"===s.popup.type&&ik(s,"closePopup")}i.visible=e}update(t,i){let s=this.chart,e=iT(this.userOptions,t),o=s.annotations.indexOf(this),n=iw(!0,this.userOptions,t);n.labels=e.labels,n.shapes=e.shapes,this.destroy(),this.initProperties(s,n),this.init(s,n),s.options.annotations[o]=this.options,this.isUpdating=!0,iE(i,!0)&&s.drawAnnotations(),ik(this,"afterUpdate"),this.isUpdating=!1}}iB.ControlPoint=R,iB.MockPoint=H,iB.shapesMap={rect:tl,circle:tc,ellipse:tx,path:tr,image:tM},iB.types={},iB.prototype.defaultOptions={visible:!0,animation:{},crop:!0,draggable:"xy",labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"#000000",borderRadius:3,borderWidth:1,className:"highcharts-no-tooltip",crop:!1,formatter:function(){return E(this.y)?""+this.y:"Annotation label"},includeInDataExport:!0,overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"0.7em",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0,snap:2},controlPointOptions:{events:{},style:{cursor:"pointer",fill:"#ffffff",stroke:"#000000","stroke-width":2},height:10,symbol:"circle",visible:!1,width:10},events:{},zIndex:6},iB.prototype.nonDOMEvents=["add","afterUpdate","drag","remove"],q.compose(iB);let iN=iB;!function(t){t.compose=function(t){return t.navigation||(t.navigation=new i(t)),t};class i{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(s=>{s.call(this.chart,t,i)})}}t.Additions=i}(r||(r={}));let iL=r,{defined:iY,isNumber:iX,pick:iS}=u(),iI={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},iD={annotationsFieldsTypes:iI,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),s=i.min,e=i.max,o=iS(t.axis.minPointOffset,0);return iX(s)&&iX(e)&&t.value>=s-o&&t.value<=e+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,i){let s=iI[t],e=typeof i;return iY(s)&&(e=s),({string:"text",number:"number",boolean:"checkbox"})[e]}},{getAssignedAxis:iR}=iD,{isNumber:iF,merge:iW}=u(),iz={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis),o=this.chart.options.navigation;if(s&&e)return this.chart.addAnnotation(iW({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:s.value,y:e.value,xAxis:s.axis.index,yAxis:e.axis.index},r:5}]},o.annotationsOptions,o.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let s;let e=i.options.shapes,o=e&&e[0]&&e[0].point||{};if(iF(o.xAxis)&&iF(o.yAxis)){let i=this.chart.inverted,e=this.chart.xAxis[o.xAxis].toPixels(o.x),n=this.chart.yAxis[o.yAxis].toPixels(o.y);s=Math.max(Math.sqrt(Math.pow(i?n-t.chartX:e-t.chartX,2)+Math.pow(i?e-t.chartY:n-t.chartY,2)),5)}i.update({shapes:[{r:s}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis),o=this.chart.options.navigation;if(s&&e)return this.chart.addAnnotation(iW({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:s.axis.index,yAxis:e.axis.index,points:[{x:s.value,y:e.value},{x:s.value,y:e.value}],ry:1}]},o.annotationsOptions,o.bindings.ellipseAnnotation.annotationOptions))},steps:[function(t,i){let s=i.shapes[0],e=s.getAbsolutePosition(s.points[1]);s.translatePoint(t.chartX-e.x,t.chartY-e.y,1),s.redraw(!1)},function(t,i){let s=i.shapes[0],e=s.getAbsolutePosition(s.points[0]),o=s.getAbsolutePosition(s.points[1]),n=s.getDistanceFromLine(e,o,t.chartX,t.chartY),a=s.getYAxis(),r=Math.abs(a.toValue(0)-a.toValue(n));s.setYRadius(r),s.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis);if(!s||!e)return;let o=s.value,n=e.value,a=s.axis.index,r=e.axis.index,h=this.chart.options.navigation;return this.chart.addAnnotation(iW({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{command:"Z"}]}]},h.annotationsOptions,h.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let s=i.options.shapes,e=s&&s[0]&&s[0].points||[],o=this.chart.pointer?.getCoordinates(t),n=o&&iR(o.xAxis),a=o&&iR(o.yAxis);if(n&&a){let t=n.value,s=a.value;e[1].x=t,e[2].x=t,e[2].y=s,e[3].y=s,i.update({shapes:[{points:e}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&iR(i.xAxis),e=i&&iR(i.yAxis),o=this.chart.options.navigation;if(s&&e)return this.chart.addAnnotation(iW({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:s.axis.index,yAxis:e.axis.index,x:s.value,y:e.value}}]},o.annotationsOptions,o.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:iU}=u(),{format:iV}=ty(),{composed:iH,doc:iq,win:ij}=u(),{getAssignedAxis:i_,getFieldType:iG}=iD,{addEvent:iK,attr:iZ,defined:i$,fireEvent:iJ,isArray:iQ,isFunction:i0,isNumber:i1,isObject:i2,merge:i9,objectEach:i4,pick:i5,pushUnique:i3}=u();function i6(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function i7(){this.navigationBindings&&this.navigationBindings.destroy()}function i8(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new so(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function st(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let s=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(s=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let e=this.navigationBindings.container[0];i4(t.boundClassNames,(t,o)=>{let n=e.querySelectorAll("."+o);if(n)for(let e=0;e=4||o.call(this,t)}})}class so{static compose(t,i){i3(iH,"NavigationBindings")&&(iK(t,"remove",i6),se(t),i4(t.types,t=>{se(t)}),iK(i,"destroy",i7),iK(i,"load",i8),iK(i,"render",st),iK(so,"closePopup",si),iK(so,"deselectButton",ss),iU(iz))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=iq.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&i_(i.xAxis),i&&i_(i.yAxis)]}initEvents(){let t=this,i=t.chart,s=t.container,e=t.options;t.boundClassNames={},i4(e.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(s,i=>{t.eventsToUnbind.push(iK(i,"click",s=>{let e=t.getButtonEvents(i,s);e&&!e.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(e.button,e.events,s)}))}),i4(e.events||{},(i,s)=>{i0(i)&&t.eventsToUnbind.push(iK(t,s,i,{passive:!1}))}),t.eventsToUnbind.push(iK(i.container,"click",function(s){!i.cancelClick&&i.isInsidePlot(s.chartX-i.plotLeft,s.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,s)})),t.eventsToUnbind.push(iK(i.container,u().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},u().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;iL.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,s){let e=this.chart,o=e.renderer.boxWrapper,n=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(n=!1),iJ(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&e.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),n?(this.selectedButton=i,this.selectedButtonElement=t,iJ(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,s),(i.start||i.steps)&&e.renderer.boxWrapper.addClass("highcharts-draw-mode")):(e.stockTools&&t.classList.remove("highcharts-active"),o.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let s=this.activeAnnotation,e=this.selectedButton,o=t.renderer.boxWrapper;s&&(s.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let s=ij.Element.prototype,e=s.matches||s.msMatchesSelector||s.webkitMatchesSelector,o=null;if(s.closest)o=s.closest.call(t,i);else do{if(e.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return o}(i.target,".highcharts-popup")?s.cancelClick&&setTimeout(()=>{s.cancelClick=!1},0):iJ(this,"closePopup")),e&&e.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,e.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=e.steps[this.stepIndex]:(iJ(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),e.end&&e.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=e.start.call(this,i),this.currentUserDetails&&e.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=e.steps[this.stepIndex]):(iJ(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,e.end&&e.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return i4(t,(t,s)=>{let e=parseFloat(t),o=s.split("."),n=o.length-1;if(!i1(e)||t.match(/px|em/g)||s.match(/format/g)||(t=e),"undefined"!==t){let s=i;o.forEach((i,e)=>{if("__proto__"!==i&&"constructor"!==i){let a=i5(o[e+1],"");n===e?s[i]=t:(s[i]||(s[i]=a.match(/\d/g)?[]:{}),s=s[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,s=so.annotationsEditable,e=s.nestedOptions,o=i5(i.type,i.shapes&&i.shapes[0]&&i.shapes[0].type,i.labels&&i.labels[0]&&i.labels[0].type,"label"),n=so.annotationsNonEditable[i.langKey]||[],a={langKey:i.langKey,type:o};function r(i,s,o,a,h){let l;o&&i$(i)&&-1===n.indexOf(s)&&((o.indexOf&&o.indexOf(s))>=0||o[s]||!0===o)&&(iQ(i)?(a[s]=[],i.forEach((t,i)=>{i2(t)?(a[s][i]={},i4(t,(t,o)=>{r(t,o,e[s],a[s][i],s)})):r(t,0,e[s],a[s],s)})):i2(i)?(l={},iQ(a)?(a.push(l),l[s]={},l=l[s]):a[s]=l,i4(i,(t,i)=>{r(t,i,0===s?o:e[s],l,s)})):"format"===s?a[s]=[iV(i,t.labels[0].points[0]).toString(),"text"]:iQ(a)?a.push([i,iG(h,i)]):a[s]=[i,iG(s,i)])}return i4(i,(t,n)=>{"typeOptions"===n?(a[n]={},i4(i[n],(t,i)=>{r(t,i,e,a[n],i)})):r(t,n,s[o],a,n)}),a}getClickedClassNames(t,i){let s=i.target,e=[],o;for(;s&&s.tagName&&((o=iZ(s,"class"))&&(e=e.concat(o.split(" ").map(t=>[t,s]))),(s=s.parentNode)!==t););return e}getButtonEvents(t,i){let s;let e=this;return this.getClickedClassNames(t,i).forEach(t=>{e.boundClassNames[t[0]]&&!s&&(s={events:e.boundClassNames[t[0]],button:t[1]})}),s}update(t){this.options=i9(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}so.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},so.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};let sn=u();sn.Annotation=sn.Annotation||iN,sn.NavigationBindings=sn.NavigationBindings||so,sn.Annotation.compose(sn.Chart,sn.NavigationBindings,sn.Pointer,sn.SVGRenderer);let{merge:sa}=u();class sr extends iN{addControlPoints(){let t=this.options,i=sr.basicControlPoints,s=this.basicType;(t.labels||t.shapes||[]).forEach(t=>{t.controlPoints=i[s]})}init(){let t=this.options;if(t.shapes){delete t.labelOptions;let i=t.shapes[0].type;t.shapes[0].className=(t.shapes[0].className||"")+" highcharts-basic-shape",i&&"path"!==i?this.basicType=i:this.basicType="rectangle"}else delete t.shapes,this.basicType="label";super.init.apply(this,arguments)}}sr.basicControlPoints={label:[{symbol:"triangle-down",positioner:function(t){if(!t.graphic.placed)return{x:0,y:-9e7};let i=H.pointToPixels(t.points[0]);return{x:i.x-(this.graphic.width||0)/2,y:i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=this.mouseMoveToTranslation(t);i.translatePoint(s.x,s.y),i.annotation.userOptions.labels[0].point=i.options.point,i.redraw(!1)}}},{symbol:"square",positioner:function(t){return t.graphic.placed?{x:t.graphic.alignAttr.x-(this.graphic.width||0)/2,y:t.graphic.alignAttr.y-(this.graphic.height||0)/2}:{x:0,y:-9e7}},events:{drag:function(t,i){let s=this.mouseMoveToTranslation(t);i.translate(s.x,s.y),i.annotation.userOptions.labels[0].point=i.options.point,i.redraw(!1)}}}],rectangle:[{positioner:function(t){let i=H.pointToPixels(t.points[2]);return{x:i.x-4,y:i.y-4}},events:{drag:function(t,i){let s=i.annotation,e=this.chart.pointer?.getCoordinates(t),o=i.options.points,n=s.userOptions.shapes,a=s.clipXAxis?.index||0,r=s.clipYAxis?.index||0;if(e){let t=e.xAxis[a].value,s=e.yAxis[r].value;o[1].x=t,o[2].x=t,o[2].y=s,o[3].y=s,n&&n[0]&&(n[0].points=i.options.points)}s.redraw(!1)}}}],circle:[{positioner:function(t){let i=H.pointToPixels(t.points[0]),s=t.options.r;return{x:i.x+s*Math.cos(Math.PI/4)-(this.graphic.width||0)/2,y:i.y+s*Math.sin(Math.PI/4)-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=i.annotation,e=this.mouseMoveToTranslation(t),o=s.userOptions.shapes;i.setRadius(Math.max(i.options.r+e.y/Math.sin(Math.PI/4),5)),o&&o[0]&&(o[0].r=i.options.r,o[0].point=i.options.point),i.redraw(!1)}}}],ellipse:[{positioner:function(t){let i=t.getAbsolutePosition(t.points[0]);return{x:i.x-(this.graphic.width||0)/2,y:i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=i.getAbsolutePosition(i.points[0]);i.translatePoint(t.chartX-s.x,t.chartY-s.y,0),i.redraw(!1)}}},{positioner:function(t){let i=t.getAbsolutePosition(t.points[1]);return{x:i.x-(this.graphic.width||0)/2,y:i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){let s=i.getAbsolutePosition(i.points[1]);i.translatePoint(t.chartX-s.x,t.chartY-s.y,1),i.redraw(!1)}}},{positioner:function(t){let i=t.getAbsolutePosition(t.points[0]),s=t.getAbsolutePosition(t.points[1]),e=t.getAttrs(i,s);return{x:e.cx-(this.graphic.width||0)/2+e.ry*Math.sin(e.angle*Math.PI/180),y:e.cy-(this.graphic.height||0)/2-e.ry*Math.cos(e.angle*Math.PI/180)}},events:{drag:function(t,i){let s=i.getAbsolutePosition(i.points[0]),e=i.getAbsolutePosition(i.points[1]),o=i.getDistanceFromLine(s,e,t.chartX,t.chartY),n=i.getYAxis(),a=Math.abs(n.toValue(0)-n.toValue(o));i.setYRadius(a),i.redraw(!1)}}}]},sr.prototype.defaultOptions=sa(iN.prototype.defaultOptions,{}),iN.types.basicAnnotation=sr;let{merge:sh}=u();class sl extends iN{setClipAxes(){this.clipXAxis=this.chart.xAxis[this.options.typeOptions.xAxis],this.clipYAxis=this.chart.yAxis[this.options.typeOptions.yAxis]}getPointsOptions(){let t=this.options.typeOptions;return(t.points||[]).map(i=>(i.xAxis=t.xAxis,i.yAxis=t.yAxis,i))}getControlPointsOptions(){return this.getPointsOptions()}addControlPoints(){this.getControlPointsOptions().forEach(function(t,i){let s=new R(this.chart,this,sh(this.options.controlPointOptions,t.controlPoint),i);this.controlPoints.push(s),t.controlPoint=s.options},this)}addShapes(){let t=this.options.typeOptions,i=this.initShape(sh(t.line,{type:"path",className:"highcharts-crooked-lines",points:this.points.map((t,i)=>function(t){return t.annotation.points[i]})}),0);t.line=i.options}}sl.prototype.defaultOptions=sh(iN.prototype.defaultOptions,{typeOptions:{xAxis:0,yAxis:0,line:{fill:"none"}},controlPointOptions:{positioner:function(t){let i=this.graphic,s=H.pointToPixels(t.points[this.index]);return{x:s.x-(i.width||0)/2,y:s.y-(i.height||0)/2}},events:{drag:function(t,i){if(i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})){let s=this.mouseMoveToTranslation(t),e=i.options.typeOptions;i.translatePoint(s.x,s.y,this.index),e.points[this.index].x=i.points[this.index].x,e.points[this.index].y=i.points[this.index].y,i.redraw(!1)}}}}}),iN.types.crookedLine=sl;let sp=sl,{merge:sc}=u();class sd extends sp{addLabels(){this.getPointsOptions().forEach((t,i)=>{let s=this.options.typeOptions,e=this.initLabel(sc(t.label,{text:s.labels[i],point:function(t){return t.annotation.points[i]}}),!1);t.label=e.options})}}sd.prototype.defaultOptions=sc(sp.prototype.defaultOptions,{typeOptions:{labels:["(0)","(A)","(B)","(C)","(D)","(E)"],line:{strokeWidth:1}},labelOptions:{align:"center",allowOverlap:!0,crop:!0,overflow:"none",type:"rect",backgroundColor:"none",borderWidth:0,y:-5}}),iN.types.elliottWave=sd;let{merge:su}=u();class sx extends sp{getPointsOptions(){let t=sp.prototype.getPointsOptions.call(this),i=this.options.typeOptions.yAxis||0,s=this.chart.yAxis[i];if(t[2]=this.heightPointOptions(t[1]),t[3]=this.heightPointOptions(t[0]),s&&s.logarithmic){let i=s.toPixels(t[2].y)-s.toPixels(t[1].y),e=s.toPixels(t[0].y)+i;t[3].y=s.toValue(e)}return t}getControlPointsOptions(){return this.getPointsOptions().slice(0,2)}heightPointOptions(t){let i=su(t),s=this.options.typeOptions;return i.y+=s.height,i}addControlPoints(){sp.prototype.addControlPoints.call(this);let t=this.options,i=t.typeOptions,s=new R(this.chart,this,su(t.controlPointOptions,i.heightControlPoint),2);this.controlPoints.push(s),i.heightControlPoint=s.options}addShapes(){this.addLine(),this.addBackground()}addLine(){let t=this.initShape(su(this.options.typeOptions.line,{type:"path",points:[this.points[0],this.points[1],function(t){let i=H.pointToOptions(t.annotation.points[2]);return i.command="M",i},this.points[3]],className:"highcharts-tunnel-lines"}),0);this.options.typeOptions.line=t.options}addBackground(){let t=this.initShape(su(this.options.typeOptions.background,{type:"path",points:this.points.slice(),className:"highcharts-tunnel-background"}),1);this.options.typeOptions.background=t.options}translateSide(t,i,s){let e=Number(s);this.translatePoint(t,i,e),this.translatePoint(t,i,0===e?3:2)}translateHeight(t){this.translatePoint(0,t,2),this.translatePoint(0,t,3),this.options.typeOptions.height=this.points[3].y-this.points[0].y,this.userOptions.typeOptions.height=this.options.typeOptions.height}}sx.prototype.defaultOptions=su(sp.prototype.defaultOptions,{typeOptions:{background:{fill:"rgba(130, 170, 255, 0.4)",strokeWidth:0},line:{strokeWidth:1},height:-2,heightControlPoint:{positioner:function(t){let i=H.pointToPixels(t.points[2]),s=H.pointToPixels(t.points[3]),e=(i.x+s.x)/2;return{x:e-(this.graphic.width||0)/2,y:(s.y-i.y)/(s.x-i.x)*(e-i.x)+i.y-(this.graphic.height||0)/2}},events:{drag:function(t,i){i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})&&(i.translateHeight(this.mouseMoveToTranslation(t).y),i.redraw(!1))}}}},controlPointOptions:{events:{drag:function(t,i){if(i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})){let s=this.mouseMoveToTranslation(t);i.translateSide(s.x,s.y,!!this.index),i.redraw(!1)}}}}}),iN.types.tunnel=sx;let sg=sx,{merge:sy}=u();class sf extends sp{static edgePoint(t,i){return function(s){let e=s.annotation,o=e.options.typeOptions.type,n=e.points;return("horizontalLine"===o||"verticalLine"===o)&&(n=[n[0],new H(e.chart,n[0].target,{x:n[0].x+ +("horizontalLine"===o),y:n[0].y+ +("verticalLine"===o),xAxis:n[0].options.xAxis,yAxis:n[0].options.yAxis})]),sf.findEdgePoint(n[t],n[i])}}static findEdgeCoordinate(t,i,s,e){let o="x"===s?"y":"x";return(i[s]-t[s])*(e-t[o])/(i[o]-t[o])+t[s]}static findEdgePoint(t,i){let s,e,o;let n=t.series.chart,a=t.series.xAxis,r=i.series.yAxis,h=H.pointToPixels(t),l=H.pointToPixels(i),p=l.x-h.x,c=l.y-h.y,d=a.left,u=d+a.width,x=r.top,g=x+r.height,y=p<0?d:u,f=c<0?x:g,m={x:0===p?h.x:y,y:0===c?h.y:f};return 0!==p&&0!==c&&(e=sf.findEdgeCoordinate(h,l,"y",y),s=sf.findEdgeCoordinate(h,l,"x",f),e>=x&&e<=g?(m.x=y,m.y=e):(m.x=s,m.y=f)),m.x-=n.plotLeft,m.y-=n.plotTop,t.series.chart.inverted&&(o=m.x,m.x=m.y,m.y=o),m}addShapes(){let t=this.options.typeOptions,i=[this.points[0],sf.endEdgePoint];t.type.match(/line/gi)&&(i[0]=sf.startEdgePoint);let s=this.initShape(sy(t.line,{type:"path",points:i,className:"highcharts-infinity-lines"}),0);t.line=s.options}}sf.endEdgePoint=sf.edgePoint(0,1),sf.startEdgePoint=sf.edgePoint(1,0),sf.prototype.defaultOptions=sy(sp.prototype.defaultOptions,{}),iN.types.infinityLine=sf;let sm=sf,{merge:sv,isNumber:sb,defined:sA}=u();class sP extends sp{init(t,i,s){sA(i.yAxis)&&i.points.forEach(t=>{t.yAxis=i.yAxis}),sA(i.xAxis)&&i.points.forEach(t=>{t.xAxis=i.xAxis}),super.init(t,i,s)}setPath(){this.shapes[0].options.d=this.getPath()}getPath(){return[["M",this.startX,this.y]].concat(function(t,i,s,e){let o=[];for(let n=1;n<=i;n++)o.push(["A",t/2,t/2,0,1,1,s+n*t,e]);return o}(this.pixelInterval,this.numberOfCircles,this.startX,this.y))}addShapes(){let t=this.options.typeOptions;this.setPathProperties();let i=this.initShape(sv(t.line,{type:"path",d:this.getPath(),points:this.options.points,className:"highcharts-timecycles-lines"}),0);t.line=i.options}addControlPoints(){let t=this.options,i=t.typeOptions;t.controlPointOptions.style.cursor=this.chart.inverted?"ns-resize":"ew-resize",i.controlPointOptions.forEach(i=>{let s=sv(t.controlPointOptions,i),e=new R(this.chart,this,s,0);this.controlPoints.push(e)})}setPathProperties(){let t=this.options.typeOptions,i=t.points;if(!i)return;let s=i[0],e=i[1],o=t.xAxis||0,n=t.yAxis||0,a=this.chart.xAxis[o],r=this.chart.yAxis[n],h=s.x,l=s.y,p=e.x;if(!h||!p)return;let c=sb(l)?r.toPixels(l):r.top+r.height,d=sb(h)?a.toPixels(h):a.left,u=sb(p)?a.toPixels(p):a.left+30,x=a.len,g=Math.round(Math.max(Math.abs(u-d),2)),y=Math.floor(x/g)+2,f=(Math.floor((d-a.left)/g)+1)*g;this.startX=d-f,this.y=c,this.pixelInterval=g,this.numberOfCircles=y}redraw(t){this.setPathProperties(),this.setPath(),super.redraw(t)}}sP.prototype.defaultOptions=sv(sp.prototype.defaultOptions,{typeOptions:{controlPointOptions:[{positioner:function(t){let i=t.points[0];return{x:t.anchor(i).absolutePosition.x-(this.graphic.width||0)/2,y:t.y-(this.graphic.height||0)}},events:{drag:function(t,i){let s=i.anchor(i.points[0]).absolutePosition;i.translatePoint(t.chartX-s.x,0,0),i.redraw(!1)}}},{positioner:function(t){let i=t.points[1];return{x:t.anchor(i).absolutePosition.x-(this.graphic.width||0)/2,y:t.y-(this.graphic.height||0)}},events:{drag:function(t,i){let s=i.anchor(i.points[1]).absolutePosition;i.translatePoint(t.chartX-s.x,0,1),i.redraw(!1)}}}]}}),iN.types.timeCycles=sP;let{merge:sO}=u();function sM(t,i){return function(){let s=this.annotation;if(!s.startRetracements||!s.endRetracements)return[];let e=this.anchor(s.startRetracements[t]).absolutePosition,o=this.anchor(s.endRetracements[t]).absolutePosition,n=[["M",Math.round(e.x),Math.round(e.y)],["L",Math.round(o.x),Math.round(o.y)]];if(i){let i=this.anchor(s.endRetracements[t-1]).absolutePosition,e=this.anchor(s.startRetracements[t-1]).absolutePosition;n.push(["L",Math.round(i.x),Math.round(i.y)],["L",Math.round(e.x),Math.round(e.y)])}return n}}class sk extends sg{linkPoints(){super.linkPoints(),this.linkRetracementsPoints()}linkRetracementsPoints(){let t=this.points,i=t[0].y-t[3].y,s=t[1].y-t[2].y,e=t[0].x,o=t[1].x;sk.levels.forEach((n,a)=>{let r=t[0].y-i*n,h=t[1].y-s*n,l=this.options.typeOptions.reversed?sk.levels.length-a-1:a;this.startRetracements=this.startRetracements||[],this.endRetracements=this.endRetracements||[],this.linkRetracementPoint(l,e,r,this.startRetracements),this.linkRetracementPoint(l,o,h,this.endRetracements)})}linkRetracementPoint(t,i,s,e){let o=e[t],n=this.options.typeOptions;o?(o.options.x=i,o.options.y=s,o.refresh()):e[t]=new H(this.chart,this,{x:i,y:s,xAxis:n.xAxis,yAxis:n.yAxis})}addShapes(){sk.levels.forEach(function(t,i){let{backgroundColors:s,lineColor:e,lineColors:o}=this.options.typeOptions;this.initShape({type:"path",d:sM(i),stroke:o[i]||e,className:"highcharts-fibonacci-line"},i),i>0&&this.initShape({type:"path",fill:s[i-1],strokeWidth:0,d:sM(i,!0),className:"highcharts-fibonacci-background-"+(i-1)})},this)}addLabels(){sk.levels.forEach(function(t,i){let s=this.options.typeOptions,e=this.initLabel(sO(s.labels[i],{point:function(t){return H.pointToOptions(t.annotation.startRetracements[i])},text:t.toString()}));s.labels[i]=e.options},this)}}sk.levels=[0,.236,.382,.5,.618,.786,1],sk.prototype.defaultOptions=sO(sg.prototype.defaultOptions,{typeOptions:{reversed:!1,height:2,backgroundColors:["rgba(130, 170, 255, 0.4)","rgba(139, 191, 216, 0.4)","rgba(150, 216, 192, 0.4)","rgba(156, 229, 161, 0.4)","rgba(162, 241, 130, 0.4)","rgba(169, 255, 101, 0.4)"],lineColor:"#999999",lineColors:[],labels:[]},labelOptions:{allowOverlap:!0,align:"right",backgroundColor:"none",borderWidth:0,crop:!1,overflow:"none",shape:"rect",style:{color:"grey"},verticalAlign:"middle",y:0}}),iN.types.fibonacci=sk;let{merge:sw}=u();function sE(t,i,s){return function(e){let o=e.annotation.chart,n=o.inverted?o.plotTop:o.plotLeft,a=e.annotation.points,r=a[0].series.xAxis,h=a.length>1?a[1].plotX-a[0].plotX:0,l=r.toValue(a[0].plotX+n+s*h);return a=[new H(o,a[0].target,{x:l,y:0,xAxis:a[0].options.xAxis,yAxis:a[0].options.yAxis}),new H(o,a[0].target,{x:l,y:1,xAxis:a[0].options.xAxis,yAxis:a[0].options.yAxis})],sm.findEdgePoint(a[t],a[i])}}class sC extends sp{addShapes(){let t=1,i=1;for(let s=0;s<11;s++){let e=s?t:0,o=[sE(1,0,e),sE(0,1,e)];t=(i=t+i)-t,1===s&&(this.secondLineEdgePoints=[o[0],o[1]]),this.initShape(sw(this.options.typeOptions.line,{type:"path",points:o,className:"highcharts-fibonacci-timezones-lines"}),s)}}addControlPoints(){let t=this.options,i=t.typeOptions,s=new R(this.chart,this,sw(t.controlPointOptions,i.controlPointOptions),0);this.controlPoints.push(s),i.controlPointOptions=s.options}}sC.prototype.defaultOptions=sw(sp.prototype.defaultOptions,{typeOptions:{line:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:void 0},controlPointOptions:{positioner:function(){let t=this.target,i=this.graphic,s=t.secondLineEdgePoints,e={annotation:t},o=s[0](e).y,n=s[1](e).y,a=this.chart.plotLeft,r=this.chart.plotTop,h=s[0](e).x,l=(o+n)/2;return this.chart.inverted&&([h,l]=[l,h]),{x:a+h-(i.width||0)/2,y:r+l-(i.height||0)/2}},events:{drag:function(t,i){if(i.chart.isInsidePlot(t.chartX-i.chart.plotLeft,t.chartY-i.chart.plotTop,{visiblePlotOnly:!0})){let s=this.mouseMoveToTranslation(t);i.translatePoint(s.x,0,1),i.redraw(!1)}}}}}}),iN.types.fibonacciTimeZones=sC;let{merge:sT}=u();class sB extends sm{static outerLineEdgePoint(t){return function(i){let s=i.annotation,e=s.points;return sB.findEdgePoint(e[t],e[0],new H(s.chart,i,s.midPointOptions()))}}static findEdgePoint(t,i,s){let e=Math.atan2(s.plotY-i.plotY,s.plotX-i.plotX);return{x:t.plotX+1e7*Math.cos(e),y:t.plotY+1e7*Math.sin(e)}}static middleLineEdgePoint(t){let i=t.annotation,s=i.points;return sm.findEdgePoint(s[0],new H(i.chart,t,i.midPointOptions()))}midPointOptions(){let t=this.points;return{x:(t[1].x+t[2].x)/2,y:(t[1].y+t[2].y)/2,xAxis:t[0].series.xAxis,yAxis:t[0].series.yAxis}}addShapes(){this.addLines(),this.addBackgrounds()}addLines(){let t="highcharts-pitchfork-lines";this.initShape({type:"path",points:[this.points[0],sB.middleLineEdgePoint],className:t},0),this.initShape({type:"path",points:[this.points[1],sB.topLineEdgePoint],className:t},1),this.initShape({type:"path",points:[this.points[2],sB.bottomLineEdgePoint],className:t},2)}addBackgrounds(){let t=this.shapes,i=this.options.typeOptions,s=this.initShape(sT(i.innerBackground,{type:"path",points:[function(t){let i=t.annotation,s=i.points,e=i.midPointOptions();return{x:(s[1].x+e.x)/2,y:(s[1].y+e.y)/2,xAxis:e.xAxis,yAxis:e.yAxis}},t[1].points[1],t[2].points[1],function(t){let i=t.annotation,s=i.points,e=i.midPointOptions();return{x:(e.x+s[2].x)/2,y:(e.y+s[2].y)/2,xAxis:e.xAxis,yAxis:e.yAxis}}],className:"highcharts-pitchfork-inner-background"}),3),e=this.initShape(sT(i.outerBackground,{type:"path",points:[this.points[1],t[1].points[1],t[2].points[1],this.points[2]],className:"highcharts-pitchfork-outer-background"}),4);i.innerBackground=s.options,i.outerBackground=e.options}}sB.topLineEdgePoint=sB.outerLineEdgePoint(1),sB.bottomLineEdgePoint=sB.outerLineEdgePoint(0),sB.prototype.defaultOptions=sT(sm.prototype.defaultOptions,{typeOptions:{innerBackground:{fill:"rgba(130, 170, 255, 0.4)",strokeWidth:0},outerBackground:{fill:"rgba(156, 229, 161, 0.4)",strokeWidth:0}}}),iN.types.pitchfork=sB;let{merge:sN,pick:sL}=u();class sY extends iN{static connectorFirstPoint(t){let i=t.annotation,s=i.chart,e=s.inverted,o=i.points[0],n=sL(o.series.yAxis&&o.series.yAxis.left,0),a=sL(o.series.yAxis&&o.series.yAxis.top,0),r=i.options.typeOptions.label.offset,h=H.pointToPixels(o,!0)[e?"x":"y"];return{x:o.x,xAxis:o.series.xAxis,y:h+r+(e?n-s.plotLeft:a-s.plotTop)}}static connectorSecondPoint(t){let i=t.annotation,s=i.chart,e=s.inverted,o=i.options.typeOptions,n=i.points[0],a=sL(n.series.yAxis&&n.series.yAxis.left,0),r=sL(n.series.yAxis&&n.series.yAxis.top,0),h=H.pointToPixels(n,!0)[e?"x":"y"],l=o.yOffset;return o.label.offset<0&&(l*=-1),{x:n.x,xAxis:n.series.xAxis,y:h+l+(e?a-s.plotLeft:r-s.plotTop)}}getPointsOptions(){return[this.options.typeOptions.point]}addShapes(){let t=this.options.typeOptions,i=this.initShape(sN(t.connector,{type:"path",points:[sY.connectorFirstPoint,sY.connectorSecondPoint],className:"highcharts-vertical-line"}),0);t.connector=i.options,this.userOptions.typeOptions.point=t.point}addLabels(){let t=this.options.typeOptions,i=t.label,s=0,e=i.offset,o=i.offset<0?"bottom":"top",n="center";this.chart.inverted&&(s=i.offset,e=0,o="middle",n=i.offset<0?"right":"left");let a=this.initLabel(sN(i,{verticalAlign:o,align:n,x:s,y:e}));t.label=a.options}}sY.prototype.defaultOptions=sN(iN.prototype.defaultOptions,{typeOptions:{yOffset:10,label:{offset:-40,point:function(t){return t.annotation.points[0]},allowOverlap:!0,backgroundColor:"none",borderWidth:0,crop:!0,overflow:"none",shape:"rect",text:"{y:.2f}"},connector:{strokeWidth:1,markerEnd:"arrow"}}}),iN.types.verticalLine=sY;let{defined:sX,extend:sS,isNumber:sI,merge:sD,pick:sR}=u();function sF(){let t="";return""!==this.max&&""!==this.min&&(t=(this.max+this.min)/2),t}function sW(){let t=this.chart.series,i=sU(this.xAxisMin,this.xAxisMax,this.yAxisMin,this.yAxisMax),s=0,e=!1;return t.forEach(t=>{t.visible&&"highcharts-navigator-series"!==t.options.id&&t.points.forEach(t=>{!t.isNull&&t.x>i.xAxisMin&&t.x<=i.xAxisMax&&t.y>i.yAxisMin&&t.y<=i.yAxisMax&&(s++,e=!0)})}),e||(s=""),s}function sz(){return"Min: "+this.min+"
    Max: "+this.max+"
    Average: "+this.average+"
    Bins: "+this.bins}function sU(t,i,s,e){return{xAxisMin:Math.min(i,t),xAxisMax:Math.max(i,t),yAxisMin:Math.min(e,s),yAxisMax:Math.max(e,s)}}function sV(t,i,s){return t.toValue(t.toPixels(i)+s)}function sH(){let t=this.options.typeOptions,i=this.chart,s=i.inverted,e=i.xAxis[t.xAxis],o=i.yAxis[t.yAxis],n=t.background,a=s?n.height:n.width,r=s?n.width:n.height,h=t.selectType,l=s?e.left:o.top,p=s?o.top:e.left;this.startXMin=t.point.x,this.startYMin=t.point.y,sI(a)?this.startXMax=this.startXMin+a:this.startXMax=sV(e,this.startXMin,parseFloat(a)),sI(r)?this.startYMax=this.startYMin-r:this.startYMax=sV(o,this.startYMin,parseFloat(r)),"x"===h?(this.startYMin=o.toValue(l),this.startYMax=o.toValue(l+o.len)):"y"===h&&(this.startXMin=e.toValue(p),this.startXMax=e.toValue(p+e.len))}function sq(){let t=this.chart.series,i=sU(this.xAxisMin,this.xAxisMax,this.yAxisMin,this.yAxisMax),s=-1/0,e=!1;return t.forEach(t=>{t.visible&&"highcharts-navigator-series"!==t.options.id&&t.points.forEach(t=>{!t.isNull&&t.y>s&&t.x>i.xAxisMin&&t.x<=i.xAxisMax&&t.y>i.yAxisMin&&t.y<=i.yAxisMax&&(s=t.y,e=!0)})}),e||(s=""),s}function sj(){let t=this.chart.series,i=sU(this.xAxisMin,this.xAxisMax,this.yAxisMin,this.yAxisMax),s=1/0,e=!1;return t.forEach(t=>{t.visible&&"highcharts-navigator-series"!==t.options.id&&t.points.forEach(t=>{!t.isNull&&t.yi.xAxisMin&&t.x<=i.xAxisMax&&t.y>i.yAxisMin&&t.y<=i.yAxisMax&&(s=t.y,e=!0)})}),e||(s=""),s}function s_(t){let i=this.options.typeOptions,s=this.chart.xAxis[i.xAxis],e=this.chart.yAxis[i.yAxis],o=this.offsetX,n=this.offsetY;this.xAxisMin=sV(s,this.startXMin,o),this.xAxisMax=sV(s,this.startXMax,o),this.yAxisMin=sV(e,this.startYMin,n),this.yAxisMax=sV(e,this.startYMax,n),this.min=sj.call(this),this.max=sq.call(this),this.average=sF.call(this),this.bins=sW.call(this),t&&this.resize(0,0)}function sG(t,i,s,e,o){let n=this.options.typeOptions,a=n.selectType,r=this.chart.xAxis[n.xAxis],h=this.chart.yAxis[n.yAxis],l=this.startXMin,p=this.startXMax,c=this.startYMin,d=this.startYMax,u=this.offsetX,x=this.offsetY;i&&("x"===a?0===s?this.startXMin=sV(r,l,e):this.startXMax=sV(r,p,e):"y"===a?0===s?this.startYMin=sV(h,c,o):this.startYMax=sV(h,d,o):(this.startXMax=sV(r,p,e),this.startYMax=sV(h,d,o))),t&&(this.startXMin=sV(r,l,u),this.startXMax=sV(r,p,u),this.startYMin=sV(h,c,x),this.startYMax=sV(h,d,x),this.offsetX=0,this.offsetY=0),this.options.typeOptions.point={x:this.startXMin,y:this.startYMin},this.userOptions.typeOptions.point={x:this.startXMin,y:this.startYMin}}class sK extends iN{init(t,i,s){super.init(t,i,s),this.offsetX=0,this.offsetY=0,this.resizeX=0,this.resizeY=0,sH.call(this),this.addValues(),this.addShapes()}setClipAxes(){this.clipXAxis=this.chart.xAxis[this.options.typeOptions.xAxis],this.clipYAxis=this.chart.yAxis[this.options.typeOptions.yAxis]}pointsOptions(){return this.options.points}shapePointsOptions(){let t=this.options.typeOptions,i=t.xAxis,s=t.yAxis;return[{x:this.xAxisMin,y:this.yAxisMin,xAxis:i,yAxis:s},{x:this.xAxisMax,y:this.yAxisMin,xAxis:i,yAxis:s},{x:this.xAxisMax,y:this.yAxisMax,xAxis:i,yAxis:s},{x:this.xAxisMin,y:this.yAxisMax,xAxis:i,yAxis:s},{command:"Z"}]}addControlPoints(){let t=this.chart.inverted,i=this.options.controlPointOptions,s=this.options.typeOptions.selectType;sX(this.userOptions.controlPointOptions&&this.userOptions.controlPointOptions.style.cursor)||("x"===s?i.style.cursor=t?"ns-resize":"ew-resize":"y"!==s||(i.style.cursor=t?"ew-resize":"ns-resize"));let e=new R(this.chart,this,this.options.controlPointOptions,0);this.controlPoints.push(e),"xy"!==s&&(e=new R(this.chart,this,this.options.controlPointOptions,1),this.controlPoints.push(e))}addValues(t){let i=this.options.typeOptions,s=i.label.formatter;s_.call(this,t),i.label.enabled&&(this.labels.length>0?this.labels[0].text=s&&s.call(this)||sz.call(this):this.initLabel(sS({shape:"rect",backgroundColor:"none",color:"black",borderWidth:0,dashStyle:"Dash",overflow:"allow",align:"left",y:0,x:0,verticalAlign:"top",crop:!0,xAxis:0,yAxis:0,point:function(t){let s=t.annotation,e=t.options;return{x:s.xAxisMin,y:s.yAxisMin,xAxis:sR(i.xAxis,e.xAxis),yAxis:sR(i.yAxis,e.yAxis)}},text:s&&s.call(this)||sz.call(this)},i.label),void 0))}addShapes(){this.addCrosshairs(),this.addBackground()}addBackground(){let t=this.shapePointsOptions();void 0!==t[0].x&&this.initShape(sS({type:"path",points:t,className:"highcharts-measure-background"},this.options.typeOptions.background),2)}addCrosshairs(){let t=this.chart,i=this.options.typeOptions,s=this.options.typeOptions.point,e=t.xAxis[i.xAxis],o=t.yAxis[i.yAxis],n=t.inverted,a={point:s,type:"path"},r=e.toPixels(this.xAxisMin),h=e.toPixels(this.xAxisMax),l=o.toPixels(this.yAxisMin),p=o.toPixels(this.yAxisMax),c=[],d=[],u,x,g;n&&(g=r,r=l,l=g,g=h,h=p,p=g),i.crosshairX.enabled&&(c=[["M",r,l+(p-l)/2],["L",h,l+(p-l)/2]]),i.crosshairY.enabled&&(d=[["M",r+(h-r)/2,l],["L",r+(h-r)/2,p]]),this.shapes.length>0?(this.shapes[0].options.d=c,this.shapes[1].options.d=d):(u=sD(a,{className:"highcharts-measure-crosshair-x"},i.crosshairX),x=sD(a,{className:"highcharts-measure-crosshair-y"},i.crosshairY),this.initShape(sS({d:c},u),0),this.initShape(sS({d:d},x),1))}onDrag(t){let i=this.mouseMoveToTranslation(t),s=this.options.typeOptions.selectType,e="y"===s?0:i.x,o="x"===s?0:i.y;this.translate(e,o),this.offsetX+=e,this.offsetY+=o,this.redraw(!1,!1,!0)}resize(t,i,s,e){let o=this.shapes[2];"x"===e?0===s?(o.translatePoint(t,0,0),o.translatePoint(t,i,3)):(o.translatePoint(t,0,1),o.translatePoint(t,i,2)):"y"===e?0===s?(o.translatePoint(0,i,0),o.translatePoint(0,i,1)):(o.translatePoint(0,i,2),o.translatePoint(0,i,3)):(o.translatePoint(t,0,1),o.translatePoint(t,i,2),o.translatePoint(0,i,3)),sG.call(this,!1,!0,s,t,i),this.options.typeOptions.background.height=Math.abs(this.startYMax-this.startYMin),this.options.typeOptions.background.width=Math.abs(this.startXMax-this.startXMin)}redraw(t,i,s){this.linkPoints(),this.graphic||this.render(),s&&sG.call(this,!0,!1),this.clipRect&&this.clipRect.animate(this.getClipBox()),this.addValues(i),this.addCrosshairs(),this.redrawItems(this.shapes,t),this.redrawItems(this.labels,t);let e=this.options.typeOptions.background;if(e?.strokeWidth&&this.shapes[2]?.graphic){let t=e.strokeWidth/2,i=this.shapes[2],s=i.graphic.pathArray,o=s[0],n=s[1],a=s[2],r=s[3];o[1]=(o[1]||0)+t,n[1]=(n[1]||0)-t,a[1]=(a[1]||0)-t,r[1]=(r[1]||0)+t,o[2]=(o[2]||0)+t,n[2]=(n[2]||0)+t,a[2]=(a[2]||0)-t,r[2]=(r[2]||0)-t,i.graphic.attr({d:s})}this.controlPoints.forEach(t=>t.redraw())}translate(t,i){this.shapes.forEach(s=>s.translate(t,i))}}sK.prototype.defaultOptions=sD(iN.prototype.defaultOptions,{typeOptions:{selectType:"xy",xAxis:0,yAxis:0,background:{fill:"rgba(130, 170, 255, 0.4)",strokeWidth:0,stroke:void 0},crosshairX:{enabled:!0,zIndex:6,dashStyle:"Dash",markerEnd:"arrow"},crosshairY:{enabled:!0,zIndex:6,dashStyle:"Dash",markerEnd:"arrow"},label:{enabled:!0,style:{fontSize:"0.7em",color:"#666666"},formatter:void 0}},controlPointOptions:{positioner:function(t){let i=this.index,s=t.chart,e=t.options,o=e.typeOptions,n=o.selectType,a=e.controlPointOptions,r=s.inverted,h=s.xAxis[o.xAxis],l=s.yAxis[o.yAxis],p=sU(t.xAxisMin,t.xAxisMax,t.yAxisMin,t.yAxisMax),c=t.xAxisMax,d=t.yAxisMax,u,x;return"x"===n&&(d=(p.yAxisMax+p.yAxisMin)/2,0===i&&(c=t.xAxisMin)),"y"===n&&(c=p.xAxisMin+(p.xAxisMax-p.xAxisMin)/2,0===i&&(d=t.yAxisMin)),r?(u=l.toPixels(d),x=h.toPixels(c)):(u=h.toPixels(c),x=l.toPixels(d)),{x:u-a.width/2,y:x-a.height/2}},events:{drag:function(t,i){let s=this.mouseMoveToTranslation(t),e=i.options.typeOptions.selectType,o=this.index,n="y"===e?0:s.x,a="x"===e?0:s.y;i.resize(n,a,o,e),i.resizeX+=n,i.resizeY+=a,i.redraw(!1,!0)}}}}),iN.types.measure=sK;/** + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/annotations-advanced * @requires highcharts * diff --git a/modules/annotations-advanced.src.js b/modules/annotations-advanced.src.js index ffd64b5d14..19ab6dae27 100644 --- a/modules/annotations-advanced.src.js +++ b/modules/annotations-advanced.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/annotations * @requires highcharts * @@ -5052,7 +5052,7 @@ function onNavigationBindingsShowPopup(config) { this.popup = new Popup_Popup(this.chart.container, (this.chart.options.navigation.iconsURL || (this.chart.options.stockTools && this.chart.options.stockTools.gui.iconsURL) || - 'https://code.highcharts.com/12.0.2/gfx/stock-icons/'), this.chart); + 'https://code.highcharts.com/12.1.0/gfx/stock-icons/'), this.chart); } this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit); } @@ -6234,7 +6234,7 @@ const navigation = { * from a different server. * * @type {string} - * @default https://code.highcharts.com/12.0.2/gfx/stock-icons/ + * @default https://code.highcharts.com/12.1.0/gfx/stock-icons/ * @since 7.1.3 * @apioption navigation.iconsURL */ @@ -9698,7 +9698,7 @@ Annotations_Annotation.types.measure = Measure; ;// ./code/es-modules/masters/modules/annotations-advanced.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/annotations-advanced * @requires highcharts * diff --git a/modules/annotations.js b/modules/annotations.js index 5b7462d750..6dac8752b2 100644 --- a/modules/annotations.js +++ b/modules/annotations.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/annotations * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/annotations",["highcharts/highcharts"],function(t){return i(t,t.SeriesRegistry,t.Templating,t.AST)}):"object"==typeof exports?exports["highcharts/modules/annotations"]=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):t.Highcharts=i(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Templating,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,i,e,s)=>(()=>{"use strict";var o,n,a,r,h={660:t=>{t.exports=s},512:t=>{t.exports=i},984:t=>{t.exports=e},944:i=>{i.exports=t}},l={};function c(t){var i=l[t];if(void 0!==i)return i.exports;var e=l[t]={exports:{}};return h[t](e,e.exports,c),e.exports}c.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return c.d(i,{a:i}),i},c.d=(t,i)=>{for(var e in i)c.o(i,e)&&!c.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},c.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var p={};c.d(p,{default:()=>en});var d=c(944),u=/*#__PURE__*/c.n(d);let{addEvent:g,erase:m,find:f,fireEvent:x,pick:v,wrap:y}=u();function b(t,i){let e=this.initAnnotation(t);return this.options.annotations.push(e.options),v(i,!0)&&(e.redraw(),e.graphic.attr({opacity:1})),e}function A(){let t=this;t.plotBoxClip=this.renderer.clipRect(this.plotBox),t.controlPointsGroup=t.renderer.g("control-points").attr({zIndex:99}).clip(t.plotBoxClip).add(),t.options.annotations.forEach((i,e)=>{if(!t.annotations.some(t=>t.options===i)){let s=t.initAnnotation(i);t.options.annotations[e]=s.options}}),t.drawAnnotations(),g(t,"redraw",t.drawAnnotations),g(t,"destroy",function(){t.plotBoxClip.destroy(),t.controlPointsGroup.destroy()}),g(t,"exportData",function(i){let e=t.annotations,s=(this.options.exporting&&this.options.exporting.csv||{}).columnHeaderFormatter,o=!i.dataRows[1].xValues,n=t.options.lang&&t.options.lang.exportData&&t.options.lang.exportData.annotationHeader,a=i.dataRows[0].length,r=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.itemDelimiter,h=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.join;e.forEach(t=>{t.options.labelOptions&&t.options.labelOptions.includeInDataExport&&t.labels.forEach(t=>{if(t.options.text){let e=t.options.text;t.points.forEach(t=>{let s=t.x,o=t.series.xAxis?t.series.xAxis.index:-1,n=!1;if(-1===o){let t=i.dataRows[0].length,a=Array(t);for(let i=0;i{!n&&t.xValues&&void 0!==o&&s===t.xValues[o]&&(h&&t.length>a?t[t.length-1]+=r+e:t.push(e),n=!0)}),!n){let t=i.dataRows[0].length,n=Array(t);for(let i=0;i{l=Math.max(l,t.length)});let c=l-i.dataRows[0].length;for(let t=0;t{t.redraw(),t.graphic.animate({opacity:1},t.animationConfig)})}function w(t){let i=this.annotations,e="annotations"===t.coll?t:f(i,function(i){return i.options.id===t});e&&(x(e,"remove"),m(this.options.annotations,e.options),m(i,e),e.destroy())}function C(){this.annotations=[],this.options.annotations||(this.options.annotations=[])}function E(t){this.chart.hasDraggedAnnotation||t.apply(this,Array.prototype.slice.call(arguments,1))}(o||(o={})).compose=function(t,i,e){let s=i.prototype;if(!s.addAnnotation){let o=e.prototype;g(i,"afterInit",C),s.addAnnotation=b,s.callbacks.push(A),s.collectionsWithInit.annotations=[b],s.collectionsWithUpdate.push("annotations"),s.drawAnnotations=k,s.removeAnnotation=w,s.initAnnotation=function(i){let e=new(t.types[i.type]||t)(this,i);return this.annotations.push(e),e},y(o,"onContainerMouseDown",E)}};let P=o,{defined:O}=u(),{doc:B,isTouchDevice:M}=u(),{addEvent:T,fireEvent:N,objectEach:D,pick:L,removeEvent:I}=u(),S=class{addEvents(){let t=this,i=function(i){T(i,M?"touchstart":"mousedown",i=>{t.onMouseDown(i)},{passive:!1})};if(i(this.graphic.element),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&i(t.graphic.text.element)}),D(t.options.events,(i,e)=>{let s=function(s){"click"===e&&t.cancelClick||i.call(t,t.chart.pointer?.normalize(s),t.target)};-1===(t.nonDOMEvents||[]).indexOf(e)?(T(t.graphic.element,e,s,{passive:!1}),t.graphic.div&&T(t.graphic.div,e,s,{passive:!1})):T(t,e,s,{passive:!1})}),t.options.draggable&&(T(t,"drag",t.onDrag),!t.graphic.renderer.styledMode)){let i={cursor:{x:"ew-resize",y:"ns-resize",xy:"move"}[t.options.draggable]};t.graphic.css(i),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&t.graphic.text.css(i)})}t.isUpdating||N(t,"add")}destroy(){this.removeDocEvents(),I(this),this.hcEvents=null}mouseMoveToRadians(t,i,e){let s=t.prevChartY-e,o=t.prevChartX-i,n=t.chartY-e,a=t.chartX-i,r;return this.chart.inverted&&(r=o,o=s,s=r,r=a,a=n,n=r),Math.atan2(n,a)-Math.atan2(s,o)}mouseMoveToScale(t,i,e){let s=t.prevChartX-i,o=t.prevChartY-e,n=t.chartX-i,a=t.chartY-e,r=(n||1)/(s||1),h=(a||1)/(o||1);if(this.chart.inverted){let t=h;h=r,r=t}return{x:r,y:h}}mouseMoveToTranslation(t){let i=t.chartX-t.prevChartX,e=t.chartY-t.prevChartY,s;return this.chart.inverted&&(s=e,e=i,i=s),{x:i,y:e}}onDrag(t){if(this.chart.isInsidePlot(t.chartX-this.chart.plotLeft,t.chartY-this.chart.plotTop,{visiblePlotOnly:!0})){let i=this.mouseMoveToTranslation(t);"x"===this.options.draggable&&(i.y=0),"y"===this.options.draggable&&(i.x=0),this.points.length?this.translate(i.x,i.y):(this.shapes.forEach(t=>t.translate(i.x,i.y)),this.labels.forEach(t=>t.translate(i.x,i.y))),this.redraw(!1)}}onMouseDown(t){if(t.preventDefault&&t.preventDefault(),2===t.button)return;let i=this,e=i.chart.pointer,s=t?.sourceCapabilities?.firesTouchEvents||!1,o=(t=e?.normalize(t)||t).chartX,n=t.chartY;i.cancelClick=!1,i.chart.hasDraggedAnnotation=!0,i.removeDrag=T(B,M||s?"touchmove":"mousemove",function(t){i.hasDragged=!0,(t=e?.normalize(t)||t).prevChartX=o,t.prevChartY=n,N(i,"drag",t),o=t.chartX,n=t.chartY},M||s?{passive:!1}:void 0),i.removeMouseUp=T(B,M||s?"touchend":"mouseup",function(){let t=L(i.target&&i.target.annotation,i.target);t&&(t.cancelClick=i.hasDragged),i.cancelClick=i.hasDragged,i.chart.hasDraggedAnnotation=!1,i.hasDragged&&N(L(t,i),"afterUpdate"),i.hasDragged=!1,i.onMouseUp()},M||s?{passive:!1}:void 0)}onMouseUp(){this.removeDocEvents()}removeDocEvents(){this.removeDrag&&(this.removeDrag=this.removeDrag()),this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())}},{merge:Y,pick:X}=u(),F=class extends S{constructor(t,i,e,s){super(),this.nonDOMEvents=["drag"],this.chart=t,this.target=i,this.options=e,this.index=X(e.index,s)}destroy(){super.destroy(),this.graphic&&(this.graphic=this.graphic.destroy()),this.chart=null,this.target=null,this.options=null}redraw(t){this.graphic[t?"animate":"attr"](this.options.positioner.call(this,this.target))}render(){let t=this.chart,i=this.options;this.graphic=t.renderer.symbol(i.symbol,0,0,i.width,i.height).add(t.controlPointsGroup).css(i.style),this.setVisibility(i.visible),this.addEvents()}setVisibility(t){this.graphic[t?"show":"hide"](),this.options.visible=t}update(t){let i=this.chart,e=this.target,s=this.index,o=Y(!0,this.options,t);this.destroy(),this.constructor(i,e,o,s),this.render(i.controlPointsGroup),this.redraw()}};var R=c(512),U=/*#__PURE__*/c.n(R);let{series:{prototype:W}}=U(),{defined:H,fireEvent:V}=u();class j{static fromPoint(t){return new j(t.series.chart,null,{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis})}static pointToPixels(t,i){let e=t.series,s=e.chart,o=t.plotX||0,n=t.plotY||0,a;return s.inverted&&(t.mock?(o=t.plotY,n=t.plotX):(o=s.plotWidth-(t.plotY||0),n=s.plotHeight-(t.plotX||0))),e&&!i&&(o+=(a=e.getPlotBox()).translateX,n+=a.translateY),{x:o,y:n}}static pointToOptions(t){return{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis}}constructor(t,i,e){this.mock=!0,this.point=this,this.series={visible:!0,chart:t,getPlotBox:W.getPlotBox},this.target=i||null,this.options=e,this.applyOptions(this.getOptions())}applyOptions(t){this.command=t.command,this.setAxis(t,"x"),this.setAxis(t,"y"),this.refresh()}getOptions(){return this.hasDynamicOptions()?this.options(this.target):this.options}hasDynamicOptions(){return"function"==typeof this.options}isInsidePlot(){let t=this.plotX,i=this.plotY,e=this.series.xAxis,s=this.series.yAxis,o={x:t,y:i,isInsidePlot:!0,options:{}};return e&&(o.isInsidePlot=H(t)&&t>=0&&t<=e.len),s&&(o.isInsidePlot=o.isInsidePlot&&H(i)&&i>=0&&i<=s.len),V(this.series.chart,"afterIsInsidePlot",o),o.isInsidePlot}refresh(){let t=this.series,i=t.xAxis,e=t.yAxis,s=this.getOptions();i?(this.x=s.x,this.plotX=i.toPixels(s.x,!0)):(this.x=void 0,this.plotX=s.x),e?(this.y=s.y,this.plotY=e.toPixels(s.y,!0)):(this.y=null,this.plotY=s.y),this.isInside=this.isInsidePlot()}refreshOptions(){let t=this.series,i=t.xAxis,e=t.yAxis;this.x=this.options.x=i?this.options.x=i.toValue(this.plotX,!0):this.plotX,this.y=this.options.y=e?e.toValue(this.plotY,!0):this.plotY}rotate(t,i,e){if(!this.hasDynamicOptions()){let s=Math.cos(e),o=Math.sin(e),n=this.plotX-t,a=this.plotY-i;this.plotX=n*s-a*o+t,this.plotY=n*o+a*s+i,this.refreshOptions()}}scale(t,i,e,s){if(!this.hasDynamicOptions()){let o=this.plotX*e,n=this.plotY*s;this.plotX=(1-e)*t+o,this.plotY=(1-s)*i+n,this.refreshOptions()}}setAxis(t,i){let e=i+"Axis",s=t[e],o=this.series.chart;this.series[e]="object"==typeof s?s:H(s)?o[e][s]||o.get(s):null}toAnchor(){let t=[this.plotX,this.plotY,0,0];return this.series.chart.inverted&&(t[0]=this.plotY,t[1]=this.plotX),t}translate(t,i,e,s){this.hasDynamicOptions()||(this.plotX+=e,this.plotY+=s,this.refreshOptions())}}!function(t){function i(){let t=this.controlPoints,i=this.options.controlPoints||[];i.forEach((e,s)=>{let o=u().merge(this.options.controlPointOptions,e);o.index||(o.index=s),i[s]=o,t.push(new F(this.chart,this,o))})}function e(t){let i=t.series.getPlotBox(),e=t.series.chart,s=t.mock?t.toAnchor():e.tooltip&&e.tooltip.getAnchor.call({chart:t.series.chart},t)||[0,0,0,0],o={x:s[0]+(this.options.x||0),y:s[1]+(this.options.y||0),height:s[2]||0,width:s[3]||0};return{relativePosition:o,absolutePosition:u().merge(o,{x:o.x+(t.mock?i.translateX:e.plotLeft),y:o.y+(t.mock?i.translateY:e.plotTop)})}}function s(){this.controlPoints.forEach(t=>t.destroy()),this.chart=null,this.controlPoints=null,this.points=null,this.options=null,this.annotation&&(this.annotation=null)}function o(){let t=this.options;return t.points||t.point&&u().splat(t.point)}function n(){let t,i;let e=this.getPointsOptions(),s=this.points,o=e&&e.length||0;for(t=0;ti.redraw(t))}function h(){this.controlPoints.forEach(t=>t.render())}function l(t,i,e,s,o){if(this.chart.inverted){let t=i;i=e,e=t}this.points.forEach((n,a)=>this.transformPoint(t,i,e,s,o,a),this)}function c(t,i,e,s,o,n){let a=this.points[n];a.mock||(a=this.points[n]=j.fromPoint(a)),a[t](i,e,s,o)}function p(t,i){this.transform("translate",null,null,t,i)}function d(t,i,e){this.transformPoint("translate",null,null,t,i,e)}t.compose=function(t){let g=t.prototype;g.addControlPoints||u().merge(!0,g,{addControlPoints:i,anchor:e,destroyControlTarget:s,getPointsOptions:o,linkPoints:n,point:a,redrawControlPoints:r,renderControlPoints:h,transform:l,transformPoint:c,translate:p,translatePoint:d})}}(n||(n={}));let q=n,{merge:z}=u();class _{constructor(t,i,e,s){this.annotation=t,this.chart=t.chart,this.collection="label"===s?"labels":"shapes",this.controlPoints=[],this.options=i,this.points=[],this.index=e,this.itemType=s,this.init(t,i,e)}attr(...t){this.graphic.attr.apply(this.graphic,arguments)}attrsFromOptions(t){let i,e;let s=this.constructor.attrsMap,o={},n=this.chart.styledMode;for(i in t)e=s[i],void 0===s[i]||n&&-1!==["fill","stroke","stroke-width"].indexOf(e)||(o[e]=t[i]);return o}destroy(){this.graphic&&(this.graphic=this.graphic.destroy()),this.tracker&&(this.tracker=this.tracker.destroy()),this.destroyControlTarget()}init(t,i,e){this.annotation=t,this.chart=t.chart,this.options=i,this.points=[],this.controlPoints=[],this.index=e,this.linkPoints(),this.addControlPoints()}redraw(t){this.redrawControlPoints(t)}render(t){this.options.className&&this.graphic&&this.graphic.addClass(this.options.className),this.renderControlPoints()}rotate(t,i,e){this.transform("rotate",t,i,e)}scale(t,i,e,s){this.transform("scale",t,i,e,s)}setControlPointsVisibility(t){this.controlPoints.forEach(i=>{i.setVisibility(t)})}shouldBeDrawn(){return!!this.points.length}translateShape(t,i,e){let s=this.annotation.chart,o=this.annotation.userOptions,n=s.annotations.indexOf(this.annotation),a=s.options.annotations[n];this.translatePoint(t,i,0),e&&this.translatePoint(t,i,1),a[this.collection][this.index].point=this.options.point,o[this.collection][this.index].point=this.options.point}update(t){let i=this.annotation,e=z(!0,this.options,t),s=this.graphic.parentGroup,o=this.constructor;this.destroy(),z(!0,this,new o(i,e,this.index,this.itemType)),this.render(s),this.redraw()}}q.compose(_);let G=_,{defaultMarkers:K}={defaultMarkers:{arrow:{tagName:"marker",attributes:{id:"arrow",refY:5,refX:9,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 0 L 10 5 L 0 10 Z","stroke-width":0}}]},"reverse-arrow":{tagName:"marker",attributes:{id:"reverse-arrow",refY:5,refX:1,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 5 L 10 0 L 10 10 Z","stroke-width":0}}]}}},{addEvent:Z,defined:$,extend:J,merge:Q,uniqueKey:tt}=u(),ti=to("marker-end"),te=to("marker-start"),ts="rgba(192,192,192,"+(u().svg?1e-4:.002)+")";function to(t){return function(i){this.attr(t,"url(#"+i+")")}}function tn(){this.options.defs=Q(K,this.options.defs||{})}function ta(t,i){let e={attributes:{id:t}},s={stroke:i.color||"none",fill:i.color||"rgba(0, 0, 0, 0.75)"};e.children=i.children&&i.children.map(function(t){return Q(s,t)});let o=Q(!0,{attributes:{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"}},i,e),n=this.definition(o);return n.id=t,n}class tr extends G{static compose(t,i){let e=i.prototype;e.addMarker||(Z(t,"afterGetContainer",tn),e.addMarker=ta)}constructor(t,i,e){super(t,i,e,"shape"),this.type="path"}toD(){let t=this.options.d;if(t)return"function"==typeof t?t.call(this):t;let i=this.points,e=i.length,s=[],o=e,n=i[0],a=o&&this.anchor(n).absolutePosition,r=0,h;if(a)for(s.push(["M",a.x,a.y]);++r{t.yAxis=i.yAxis}),tu(i.xAxis)&&i.points.forEach(t=>{t.xAxis=i.xAxis}),super.init(t,i,e)}render(t){this.graphic=this.annotation.chart.renderer.createElement("ellipse").attr(this.attrsFromOptions(this.options)).add(t),super.render()}translate(t,i){super.translateShape(t,i,!0)}getDistanceFromLine(t,i,e,s){return Math.abs((i.y-t.y)*e-(i.x-t.x)*s+i.x*t.y-i.y*t.x)/Math.sqrt((i.y-t.y)*(i.y-t.y)+(i.x-t.x)*(i.x-t.x))}getAttrs(t,i){let e=t.x,s=t.y,o=i.x,n=i.y,a=(e+o)/2,r=Math.sqrt((e-o)*(e-o)/4+(s-n)*(s-n)/4),h=180*Math.atan((n-s)/(o-e))/Math.PI;return ai+s?r.push(["L",t+l,i+s]):at+e&&r.push(["L",t+e,i+s/2])),r||[]}class tw extends G{static alignedPosition(t,i){return{x:Math.round((i.x||0)+(t.x||0)+(i.width-(t.width||0))*ty(t.align)),y:Math.round((i.y||0)+(t.y||0)+(i.height-(t.height||0))*ty(t.verticalAlign))}}static compose(t){t.prototype.symbols.connector=tk}static justifiedOptions(t,i,e,s){let o;let n=e.align,a=e.verticalAlign,r=i.box?0:i.padding||0,h=i.getBBox(),l={align:n,verticalAlign:a,x:e.x,y:e.y,width:i.width,height:i.height},c=(s.x||0)-t.plotLeft,p=(s.y||0)-t.plotTop;return(o=c+r)<0&&("right"===n?l.align="left":l.x=(l.x||0)-o),(o=c+h.width-r)>t.plotWidth&&("left"===n?l.align="right":l.x=(l.x||0)+t.plotWidth-o),(o=p+r)<0&&("bottom"===a?l.verticalAlign="top":l.y=(l.y||0)-o),(o=p+h.height-r)>t.plotHeight&&("top"===a?l.verticalAlign="bottom":l.y=(l.y||0)+t.plotHeight-o),l}constructor(t,i,e){super(t,i,e,"label")}translatePoint(t,i){super.translatePoint(t,i,0)}translate(t,i){let e=this.annotation.chart,s=this.annotation.userOptions,o=e.annotations.indexOf(this.annotation),n=e.options.annotations[o];if(e.inverted){let e=t;t=i,i=e}this.options.x+=t,this.options.y+=i,n[this.collection][this.index].x=this.options.x,n[this.collection][this.index].y=this.options.y,s[this.collection][this.index].x=this.options.x,s[this.collection][this.index].y=this.options.y}render(t){let i=this.options,e=this.attrsFromOptions(i),s=i.style;this.graphic=this.annotation.chart.renderer.label("",0,-9999,i.shape,null,null,i.useHTML,null,"annotation-label").attr(e).add(t),this.annotation.chart.styledMode||("contrast"===s.color&&(s.color=this.annotation.chart.renderer.getContrast(tw.shapesWithoutBackground.indexOf(i.shape)>-1?"#FFFFFF":i.backgroundColor)),this.graphic.css(i.style).shadow(i.shadow)),this.graphic.labelrank=i.labelrank,super.render()}redraw(t){let i=this.options,e=this.text||i.format||i.text,s=this.graphic,o=this.points[0];if(!s){this.redraw(t);return}s.attr({text:e?tx(String(e),o,this.annotation.chart):i.formatter.call(o,this)});let n=this.anchor(o),a=this.position(n);a?(s.alignAttr=a,a.anchorX=n.absolutePosition.x,a.anchorY=n.absolutePosition.y,s[t?"animate":"attr"](a)):s.attr({x:0,y:-9999}),s.placed=!!a,super.redraw(t)}anchor(t){let i=super.anchor.apply(this,arguments),e=this.options.x||0,s=this.options.y||0;return i.absolutePosition.x-=e,i.absolutePosition.y-=s,i.relativePosition.x-=e,i.relativePosition.y-=s,i}position(t){let i=this.graphic,e=this.annotation.chart,s=e.tooltip,o=this.points[0],n=this.options,a=t.absolutePosition,r=t.relativePosition,h,l,c,p,d=o.series.visible&&j.prototype.isInsidePlot.call(o);if(i&&d){let{width:t=0,height:u=0}=i;n.distance&&s?h=s.getPosition.call({chart:e,distance:tA(n.distance,16),getPlayingField:s.getPlayingField,pointer:s.pointer},t,u,{plotX:r.x,plotY:r.y,negative:o.negative,ttBelow:o.ttBelow,h:r.height||r.width}):n.positioner?h=n.positioner.call(this):(l={x:a.x,y:a.y,width:0,height:0},h=tw.alignedPosition(tv(n,{width:t,height:u}),l),"justify"===this.options.overflow&&(h=tw.alignedPosition(tw.justifiedOptions(e,i,n,h),l))),n.crop&&(c=h.x-e.plotLeft,p=h.y-e.plotTop,d=e.isInsidePlot(c,p)&&e.isInsidePlot(c+t,p+u))}return d?h:null}}tw.attrsMap={backgroundColor:"fill",borderColor:"stroke",borderWidth:"stroke-width",zIndex:"zIndex",borderRadius:"r",padding:"padding"},tw.shapesWithoutBackground=["connector"];class tC extends G{constructor(t,i,e){super(t,i,e,"shape"),this.type="image",this.translate=super.translateShape}render(t){let i=this.attrsFromOptions(this.options),e=this.options;this.graphic=this.annotation.chart.renderer.image(e.src,0,-9e9,e.width,e.height).attr(i).add(t),this.graphic.width=e.width,this.graphic.height=e.height,super.render()}redraw(t){if(this.graphic){let i=this.anchor(this.points[0]),e=tw.prototype.position.call(this,i);e?this.graphic[t?"animate":"attr"]({x:e.x,y:e.y}):this.graphic.attr({x:0,y:-9e9}),this.graphic.placed=!!e}super.redraw(t)}}tC.attrsMap={width:"width",height:"height",zIndex:"zIndex"};var tE=c(660),tP=/*#__PURE__*/c.n(tE);let{addEvent:tO,createElement:tB}=u(),tM=class{constructor(t,i){this.iconsURL=i,this.container=this.createPopupContainer(t),this.closeButton=this.addCloseButton()}createPopupContainer(t,i="highcharts-popup highcharts-no-tooltip"){return tB("div",{className:i},void 0,t)}addCloseButton(t="highcharts-popup-close"){let i=this,e=this.iconsURL,s=tB("button",{className:t},void 0,this.container);return s.style["background-image"]="url("+(e.match(/png|svg|jpeg|jpg|gif/ig)?e:e+"close.svg")+")",["click","touchstart"].forEach(t=>{tO(s,t,i.closeButtonEvents.bind(i))}),tO(document,"keydown",function(t){"Escape"===t.code&&i.closeButtonEvents()}),s}closeButtonEvents(){this.closePopup()}showPopup(t="highcharts-annotation-toolbar"){let i=this.container,e=this.closeButton;this.type=void 0,i.innerHTML=tP().emptyHTML,i.className.indexOf(t)>=0&&(i.classList.remove(t),i.removeAttribute("style")),i.appendChild(e),i.style.display="block",i.style.height=""}closePopup(){this.container.style.display="none"}},{doc:tT,isFirefox:tN}=u(),{createElement:tD,isArray:tL,isObject:tI,objectEach:tS,pick:tY,stableSort:tX}=u();function tF(t,i,e,s,o,n){let a,r;if(!i)return;let h=this.addInput,l=this.lang;tS(s,(s,n)=>{a=""!==e?e+"."+n:n,tI(s)&&(!tL(s)||tL(s)&&tI(s[0])?((r=l[n]||n).match(/\d/g)||o.push([!0,r,t]),tF.call(this,t,i,a,s,o,!1)):o.push([this,a,"annotation",t,s]))}),n&&(tX(o,t=>t[1].match(/format/g)?-1:1),tN&&o.reverse(),o.forEach(t=>{!0===t[0]?tD("span",{className:"highcharts-annotation-title"},void 0,t[2]).appendChild(tT.createTextNode(t[1])):(t[4]={value:t[4][0],type:t[4][1]},h.apply(t[0],t.splice(1)))}))}let{doc:tR}=u(),{seriesTypes:tU}=U(),{addEvent:tW,createElement:tH,defined:tV,isArray:tj,isObject:tq,objectEach:tz,stableSort:t_}=u();!function(t){t[t["params.algorithm"]=0]="params.algorithm",t[t["params.average"]=1]="params.average"}(a||(a={}));let tG={"algorithm-pivotpoints":["standard","fibonacci","camarilla"],"average-disparityindex":["sma","ema","dema","tema","wma"]};function tK(t){let i=tH("div",{className:"highcharts-popup-lhs-col"},void 0,t),e=tH("div",{className:"highcharts-popup-rhs-col"},void 0,t);return tH("div",{className:"highcharts-popup-rhs-col-wrapper"},void 0,e),{lhsCol:i,rhsCol:e}}function tZ(t,i,e,s){let o=i.params||i.options.params;s.innerHTML=tP().emptyHTML,tH("h3",{className:"highcharts-indicator-title"},void 0,s).appendChild(tR.createTextNode(t4(i,e).indicatorFullName)),tH("input",{type:"hidden",name:"highcharts-type-"+e,value:e},void 0,s),t5.call(this,e,"series",t,s,i,i.linkedParent&&i.linkedParent.options.id),o.volumeSeriesID&&t5.call(this,e,"volume",t,s,i,i.linkedParent&&o.volumeSeriesID),tJ.call(this,t,"params",o,e,s)}function t$(t,i,e,s){function o(i,e){let s=g.parentNode.children[1];tZ.call(n,t,i,e,g),s&&(s.style.display="block"),l&&i.options&&tH("input",{type:"hidden",name:"highcharts-id-"+e,value:i.options.id},void 0,g).setAttribute("highcharts-data-series-id",i.options.id)}let n=this,a=n.lang,r=i.querySelectorAll(".highcharts-popup-lhs-col")[0],h=i.querySelectorAll(".highcharts-popup-rhs-col")[0],l="edit"===e,c=l?t.series:t.options.plotOptions||{};if(!t&&c)return;let p,d=[];l||tj(c)?tj(c)&&(d=t2.call(this,c)):d=t9.call(this,c,s),t_(d,(t,i)=>{let e=t.indicatorFullName.toLowerCase(),s=i.indicatorFullName.toLowerCase();return es?1:0}),r.children[1]&&r.children[1].remove();let u=tH("ul",{className:"highcharts-indicator-list"},void 0,r),g=h.querySelectorAll(".highcharts-popup-rhs-col-wrapper")[0];if(d.forEach(t=>{let{indicatorFullName:i,indicatorType:e,series:s}=t;p=tH("li",{className:"highcharts-indicator-list"},void 0,u);let n=tH("button",{className:"highcharts-indicator-list-item",textContent:i},void 0,p);["click","touchstart"].forEach(t=>{tW(n,t,function(){o(s,e)})})}),d.length>0){let{series:t,indicatorType:i}=d[0];o(t,i)}else l||(tP().setElementHTML(g.parentNode.children[0],a.noFilterMatch||""),g.parentNode.children[1].style.display="none")}function tJ(t,i,e,s,o){if(!t)return;let n=this.addInput;tz(e,(e,r)=>{let h=i+"."+r;if(tV(e)&&h){if(tq(e)&&(n.call(this,h,s,o,{}),tJ.call(this,t,h,e,s,o)),h in a){let n=t0.call(this,s,h,o);t1.call(this,t,i,n,s,r,e)}else"params.volumeSeriesID"===h||tj(e)||n.call(this,h,s,o,{value:e,type:"number"})}})}function tQ(t,i){let e=this,s=i.querySelectorAll(".highcharts-popup-lhs-col")[0],o=this.lang.clearFilter,n=tH("div",{className:"highcharts-input-wrapper"},void 0,s),a=function(i){t$.call(e,t,e.container,"add",i)},r=this.addInput("searchIndicators","input",n,{value:"",type:"text",htmlFor:"search-indicators",labelClassName:"highcharts-input-search-indicators-label"}),h=tH("a",{textContent:o},void 0,n);r.classList.add("highcharts-input-search-indicators"),h.classList.add("clear-filter-button"),tW(r,"input",function(){a(this.value),this.value.length?h.style.display="inline-block":h.style.display="none"}),["click","touchstart"].forEach(t=>{tW(h,t,function(){r.value="",a(""),h.style.display="none"})})}function t0(t,i,e){let s=i.split("."),o=s[s.length-1],n="highcharts-"+i+"-type-"+t,a=this.lang;tH("label",{htmlFor:n},null,e).appendChild(tR.createTextNode(a[o]||i));let r=tH("select",{name:n,className:"highcharts-popup-field",id:"highcharts-select-"+i},null,e);return r.setAttribute("id","highcharts-select-"+i),r}function t1(t,i,e,s,o,n,a){"series"===i||"volume"===i?t.series.forEach(t=>{let s=t.options,o=s.name||s.params?t.name:s.id||"";"highcharts-navigator-series"!==s.id&&s.id!==(a&&a.options&&a.options.id)&&(tV(n)||"volume"!==i||"column"!==t.type||(n=s.id),tH("option",{value:s.id},void 0,e).appendChild(tR.createTextNode(o)))}):s&&o&&tG[o+"-"+s].forEach(t=>{tH("option",{value:t},void 0,e).appendChild(tR.createTextNode(t))}),tV(n)&&(e.value=n)}function t9(t,i){let e;let s=this.chart&&this.chart.options.lang,o=s&&s.navigation&&s.navigation.popup&&s.navigation.popup.indicatorAliases,n=[];return tz(t,(t,s)=>{let a=t&&t.options;if(t.params||a&&a.params){let{indicatorFullName:a,indicatorType:r}=t4(t,s);if(i){let s=RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=o&&o[r]&&o[r].join(" ")||"";(a.match(s)||h.match(s))&&(e={indicatorFullName:a,indicatorType:r,series:t},n.push(e))}else e={indicatorFullName:a,indicatorType:r,series:t},n.push(e)}}),n}function t2(t){let i=[];return t.forEach(t=>{t.is("sma")&&i.push({indicatorFullName:t.name,indicatorType:t.type,series:t})}),i}function t4(t,i){let e=t.options,s=tU[i]&&tU[i].prototype.nameBase||i.toUpperCase(),o=i;return e&&e.type&&(o=t.options.type,s=t.name),{indicatorFullName:s,indicatorType:o}}function t5(t,i,e,s,o,n){if(!e)return;let a=t0.call(this,t,i,s);t1.call(this,e,i,a,void 0,void 0,void 0,o),tV(n)&&(a.value=n)}let{doc:t6}=u(),{addEvent:t7,createElement:t3}=u();function t8(){return t3("div",{className:"highcharts-tab-item-content highcharts-no-mousewheel"},void 0,this.container)}function it(t,i){let e=this.container,s=this.lang,o="highcharts-tab-item";0===i&&(o+=" highcharts-tab-disabled");let n=t3("button",{className:o},void 0,e);return n.appendChild(t6.createTextNode(s[t+"Button"]||t)),n.setAttribute("highcharts-data-tab-type",t),n}function ii(){let t=this.container,i=t.querySelectorAll(".highcharts-tab-item"),e=t.querySelectorAll(".highcharts-tab-item-content");for(let t=0;t{(0!==t||"edit"!==e.getAttribute("highcharts-data-tab-type"))&&["click","touchstart"].forEach(t=>{t7(e,t,function(){ii.call(i),ie.call(i,this,s)})})})}let{doc:io}=u(),{getOptions:ia}=u(),{addEvent:ir,createElement:ih,extend:il,fireEvent:ic,pick:ip}=u();class id extends tM{constructor(t,i,e){super(t,i),this.chart=e,this.lang=(ia().lang.navigation||{}).popup||{},ir(this.container,"mousedown",()=>{let t=e&&e.navigationBindings&&e.navigationBindings.activeAnnotation;if(t){t.cancelClick=!0;let i=ir(io,"click",()=>{setTimeout(()=>{t.cancelClick=!1},0),i()})}})}addInput(t,i,e,s){let o=t.split("."),n=o[o.length-1],a=this.lang,r="highcharts-"+i+"-"+ip(s.htmlFor,n);n.match(/^\d+$/)||ih("label",{htmlFor:r,className:s.labelClassName},void 0,e).appendChild(io.createTextNode(a[n]||n));let h=ih("input",{name:r,value:s.value,type:s.type,className:"highcharts-popup-field"},void 0,e);return h.setAttribute("highcharts-data-name",t),h}closeButtonEvents(){if(this.chart){let t=this.chart.navigationBindings;ic(t,"closePopup"),t&&t.selectedButtonElement&&ic(t,"deselectButton",{button:t.selectedButtonElement})}else super.closeButtonEvents()}addButton(t,i,e,s,o){let n=ih("button",void 0,void 0,t);return n.appendChild(io.createTextNode(i)),o&&["click","touchstart"].forEach(t=>{ir(n,t,()=>(this.closePopup(),o(function(t,i){let e=Array.prototype.slice.call(t.querySelectorAll("input")),s=Array.prototype.slice.call(t.querySelectorAll("select")),o=t.querySelectorAll("#highcharts-select-series > option:checked")[0],n=t.querySelectorAll("#highcharts-select-volume > option:checked")[0],a={actionType:i,linkedTo:o&&o.getAttribute("value")||"",fields:{}};return e.forEach(t=>{let i=t.getAttribute("highcharts-data-name");t.getAttribute("highcharts-data-series-id")?a.seriesId=t.value:i?a.fields[i]=t.value:a.type=t.value}),s.forEach(t=>{let i=t.id;if("highcharts-select-series"!==i&&"highcharts-select-volume"!==i){let e=i.split("highcharts-select-")[1];a.fields[e]=t.value}}),n&&(a.fields["params.volumeSeriesID"]=n.getAttribute("value")||""),a}(s,e))))}),n}showForm(t,i,e,s){i&&(this.showPopup(),"indicators"===t&&this.indicators.addForm.call(this,i,e,s),"annotation-toolbar"===t&&this.annotations.addToolbar.call(this,i,e,s),"annotation-edit"===t&&this.annotations.addForm.call(this,i,e,s),"flag"===t&&this.annotations.addForm.call(this,i,e,s,!0),this.type=t,this.container.style.height=this.container.offsetHeight+"px")}}il(id.prototype,{annotations:{addForm:function(t,i,e,s){if(!t)return;let o=this.container,n=this.lang,a=tD("h2",{className:"highcharts-popup-main-title"},void 0,o);a.appendChild(tT.createTextNode(n[i.langKey]||i.langKey||"")),a=tD("div",{className:"highcharts-popup-lhs-col highcharts-popup-lhs-full"},void 0,o);let r=tD("div",{className:"highcharts-popup-bottom-row"},void 0,o);tF.call(this,a,t,"",i,[],!0),this.addButton(r,s?n.addButton||"Add":n.saveButton||"Save",s?"add":"save",o,e)},addToolbar:function(t,i,e){let s=this.lang,o=this.container,n=this.showForm,a="highcharts-annotation-toolbar";-1===o.className.indexOf(a)&&(o.className+=" "+a+" highcharts-no-mousewheel"),t&&(o.style.top=t.plotTop+10+"px");let r=tD("p",{className:"highcharts-annotation-label"},void 0,o);r.setAttribute("aria-label","Annotation type"),r.appendChild(tT.createTextNode(tY(s[i.langKey]||i.langKey,i.shapes&&i.shapes[0].type,"")));let h=this.addButton(o,s.editButton||"Edit","edit",o,()=>{n.call(this,"annotation-edit",t,i,e)});h.className+=" highcharts-annotation-edit-button",h.style["background-image"]="url("+this.iconsURL+"edit.svg)",h=this.addButton(o,s.removeButton||"Remove","remove",o,e),h.className+=" highcharts-annotation-remove-button",h.style["background-image"]="url("+this.iconsURL+"destroy.svg)"}},indicators:{addForm:function(t,i,e){let s;let o=this.lang;if(!t)return;this.tabs.init.call(this,t);let n=this.container.querySelectorAll(".highcharts-tab-item-content");tK(n[0]),tQ.call(this,t,n[0]),t$.call(this,t,n[0],"add"),s=n[0].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(s,o.addButton||"add","add",s,e),tK(n[1]),t$.call(this,t,n[1],"edit"),s=n[1].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(s,o.saveButton||"save","edit",s,e),this.addButton(s,o.removeButton||"remove","remove",s,e)},getAmount:function(){let t=0;return this.series.forEach(i=>{(i.params||i.options.params)&&t++}),t}},tabs:{init:function(t){if(!t)return;let i=this.indicators.getAmount.call(t),e=it.call(this,"add");it.call(this,"edit",i),t8.call(this),t8.call(this),is.call(this,i),ie.call(this,e,0)}}});let{composed:iu}=u(),{addEvent:ig,pushUnique:im,wrap:ix}=u();function iv(){this.popup&&this.popup.closePopup()}function iy(t){this.popup||(this.popup=new id(this.chart.container,this.chart.options.navigation.iconsURL||this.chart.options.stockTools&&this.chart.options.stockTools.gui.iconsURL||"https://code.highcharts.com/12.0.2/gfx/stock-icons/",this.chart)),this.popup.showForm(t.formType,this.chart,t.options,t.onSubmit)}function ib(t,i){this.inClass(i.target,"highcharts-popup")||t.apply(this,Array.prototype.slice.call(arguments,1))}let iA={compose:function(t,i){im(iu,"Popup")&&(ig(t,"closePopup",iv),ig(t,"showPopup",iy),ix(i.prototype,"onContainerMouseDown",ib))}},{getDeferredAnimation:ik}=u(),{destroyObjectProperties:iw,erase:iC,fireEvent:iE,merge:iP,pick:iO,splat:iB}=u();function iM(t,i){let e={};return["labels","shapes"].forEach(s=>{let o=t[s],n=i[s];o&&(n?e[s]=iB(n).map((t,i)=>iP(o[i],t)):e[s]=t[s])}),e}class iT extends S{static compose(t,i,e,s){P.compose(iT,t,e),tw.compose(s),tr.compose(t,s),i.compose(iT,t),iA.compose(i,e)}constructor(t,i){super(),this.coll="annotations",this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.index=-1,this.labels=[],this.shapes=[],this.options=iP(this.defaultOptions,i),this.userOptions=i;let e=iM(this.options,i);this.options.labels=e.labels,this.options.shapes=e.shapes,this.init(t,this.options)}addClipPaths(){this.setClipAxes(),this.clipXAxis&&this.clipYAxis&&this.options.crop&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))}addLabels(){let t=this.options.labels||[];t.forEach((i,e)=>{let s=this.initLabel(i,e);iP(!0,t[e],s.options)})}addShapes(){let t=this.options.shapes||[];t.forEach((i,e)=>{let s=this.initShape(i,e);iP(!0,t[e],s.options)})}destroy(){let t=this.chart,i=function(t){t.destroy()};this.labels.forEach(i),this.shapes.forEach(i),this.clipXAxis=null,this.clipYAxis=null,iC(t.labelCollectors,this.labelCollector),super.destroy(),this.destroyControlTarget(),iw(this,t)}destroyItem(t){iC(this[t.itemType+"s"],t),t.destroy()}getClipBox(){if(this.clipXAxis&&this.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}}initProperties(t,i){this.setOptions(i);let e=iM(this.options,i);this.options.labels=e.labels,this.options.shapes=e.shapes,this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.userOptions=i,this.labels=[],this.shapes=[]}init(t,i,e=this.index){let s=this.chart,o=this.options.animation;this.index=e,this.linkPoints(),this.addControlPoints(),this.addShapes(),this.addLabels(),this.setLabelCollector(),this.animationConfig=ik(s,o)}initLabel(t,i){let e=new tw(this,iP(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},t),i);return e.itemType="label",this.labels.push(e),e}initShape(t,i){let e=iP(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},t),s=new iT.shapesMap[e.type](this,e,i);return s.itemType="shape",this.shapes.push(s),s}redraw(t){this.linkPoints(),this.graphic||this.render(),this.clipRect&&this.clipRect.animate(this.getClipBox()),this.redrawItems(this.shapes,t),this.redrawItems(this.labels,t),this.redrawControlPoints(t)}redrawItem(t,i){t.linkPoints(),t.shouldBeDrawn()?(t.graphic||this.renderItem(t),t.redraw(iO(i,!0)&&t.graphic.placed),t.points.length&&function(t){let i=t.graphic,e=t.points.some(t=>!1!==t.series.visible&&!1!==t.visible);i&&(e?"hidden"===i.visibility&&i.show():i.hide())}(t)):this.destroyItem(t)}redrawItems(t,i){let e=t.length;for(;e--;)this.redrawItem(t[e],i)}remove(){return this.chart.removeAnnotation(this)}render(){let t=this.chart.renderer;this.graphic=t.g("annotation").attr({opacity:0,zIndex:this.options.zIndex,visibility:this.options.visible?"inherit":"hidden"}).add(),this.shapesGroup=t.g("annotation-shapes").add(this.graphic),this.options.crop&&this.shapesGroup.clip(this.chart.plotBoxClip),this.labelsGroup=t.g("annotation-labels").attr({translateX:0,translateY:0}).add(this.graphic),this.addClipPaths(),this.clipRect&&this.graphic.clip(this.clipRect),this.renderItems(this.shapes),this.renderItems(this.labels),this.addEvents(),this.renderControlPoints()}renderItem(t){t.render("label"===t.itemType?this.labelsGroup:this.shapesGroup)}renderItems(t){let i=t.length;for(;i--;)this.renderItem(t[i])}setClipAxes(){let t=this.chart.xAxis,i=this.chart.yAxis,e=(this.options.labels||[]).concat(this.options.shapes||[]).reduce((e,s)=>{let o=s&&(s.point||s.points&&s.points[0]);return[t[o&&o.xAxis]||e[0],i[o&&o.yAxis]||e[1]]},[]);this.clipXAxis=e[0],this.clipYAxis=e[1]}setControlPointsVisibility(t){let i=function(i){i.setControlPointsVisibility(t)};this.controlPoints.forEach(i=>{i.setVisibility(t)}),this.shapes.forEach(i),this.labels.forEach(i)}setLabelCollector(){let t=this;t.labelCollector=function(){return t.labels.reduce(function(t,i){return i.options.allowOverlap||t.push(i.graphic),t},[])},t.chart.labelCollectors.push(t.labelCollector)}setOptions(t){this.options=iP(this.defaultOptions,t)}setVisibility(t){let i=this.options,e=this.chart.navigationBindings,s=iO(t,!i.visible);if(this.graphic.attr("visibility",s?"inherit":"hidden"),!s){let t=function(t){t.setControlPointsVisibility(s)};this.shapes.forEach(t),this.labels.forEach(t),e.activeAnnotation===this&&e.popup&&"annotation-toolbar"===e.popup.type&&iE(e,"closePopup")}i.visible=s}update(t,i){let e=this.chart,s=iM(this.userOptions,t),o=e.annotations.indexOf(this),n=iP(!0,this.userOptions,t);n.labels=s.labels,n.shapes=s.shapes,this.destroy(),this.initProperties(e,n),this.init(e,n),e.options.annotations[o]=this.options,this.isUpdating=!0,iO(i,!0)&&e.drawAnnotations(),iE(this,"afterUpdate"),this.isUpdating=!1}}iT.ControlPoint=F,iT.MockPoint=j,iT.shapesMap={rect:tl,circle:tp,ellipse:tg,path:tr,image:tC},iT.types={},iT.prototype.defaultOptions={visible:!0,animation:{},crop:!0,draggable:"xy",labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"#000000",borderRadius:3,borderWidth:1,className:"highcharts-no-tooltip",crop:!1,formatter:function(){return O(this.y)?""+this.y:"Annotation label"},includeInDataExport:!0,overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"0.7em",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0,snap:2},controlPointOptions:{events:{},style:{cursor:"pointer",fill:"#ffffff",stroke:"#000000","stroke-width":2},height:10,symbol:"circle",visible:!1,width:10},events:{},zIndex:6},iT.prototype.nonDOMEvents=["add","afterUpdate","drag","remove"],q.compose(iT),function(t){t.compose=function(t){return t.navigation||(t.navigation=new i(t)),t};class i{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(e=>{e.call(this.chart,t,i)})}}t.Additions=i}(r||(r={}));let iN=r,{defined:iD,isNumber:iL,pick:iI}=u(),iS={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},iY={annotationsFieldsTypes:iS,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),e=i.min,s=i.max,o=iI(t.axis.minPointOffset,0);return iL(e)&&iL(s)&&t.value>=e-o&&t.value<=s+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,i){let e=iS[t],s=typeof i;return iD(e)&&(s=e),({string:"text",number:"number",boolean:"checkbox"})[s]}},{getAssignedAxis:iX}=iY,{isNumber:iF,merge:iR}=u(),iU={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis),o=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(iR({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:e.value,y:s.value,xAxis:e.axis.index,yAxis:s.axis.index},r:5}]},o.annotationsOptions,o.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let e;let s=i.options.shapes,o=s&&s[0]&&s[0].point||{};if(iF(o.xAxis)&&iF(o.yAxis)){let i=this.chart.inverted,s=this.chart.xAxis[o.xAxis].toPixels(o.x),n=this.chart.yAxis[o.yAxis].toPixels(o.y);e=Math.max(Math.sqrt(Math.pow(i?n-t.chartX:s-t.chartX,2)+Math.pow(i?s-t.chartY:n-t.chartY,2)),5)}i.update({shapes:[{r:e}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis),o=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(iR({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:e.axis.index,yAxis:s.axis.index,points:[{x:e.value,y:s.value},{x:e.value,y:s.value}],ry:1}]},o.annotationsOptions,o.bindings.ellipseAnnotation.annotationOptions))},steps:[function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[1]);e.translatePoint(t.chartX-s.x,t.chartY-s.y,1),e.redraw(!1)},function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[0]),o=e.getAbsolutePosition(e.points[1]),n=e.getDistanceFromLine(s,o,t.chartX,t.chartY),a=e.getYAxis(),r=Math.abs(a.toValue(0)-a.toValue(n));e.setYRadius(r),e.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis);if(!e||!s)return;let o=e.value,n=s.value,a=e.axis.index,r=s.axis.index,h=this.chart.options.navigation;return this.chart.addAnnotation(iR({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{command:"Z"}]}]},h.annotationsOptions,h.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.options.shapes,s=e&&e[0]&&e[0].points||[],o=this.chart.pointer?.getCoordinates(t),n=o&&iX(o.xAxis),a=o&&iX(o.yAxis);if(n&&a){let t=n.value,e=a.value;s[1].x=t,s[2].x=t,s[2].y=e,s[3].y=e,i.update({shapes:[{points:s}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis),o=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(iR({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:e.axis.index,yAxis:s.axis.index,x:e.value,y:s.value}}]},o.annotationsOptions,o.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:iW}=u(),{format:iH}=tf(),{composed:iV,doc:ij,win:iq}=u(),{getAssignedAxis:iz,getFieldType:i_}=iY,{addEvent:iG,attr:iK,defined:iZ,fireEvent:i$,isArray:iJ,isFunction:iQ,isNumber:i0,isObject:i1,merge:i9,objectEach:i2,pick:i4,pushUnique:i5}=u();function i6(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function i7(){this.navigationBindings&&this.navigationBindings.destroy()}function i3(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new es(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function i8(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let e=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(e=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let s=this.navigationBindings.container[0];i2(t.boundClassNames,(t,o)=>{let n=s.querySelectorAll("."+o);if(n)for(let s=0;s=4||o.call(this,t)}})}class es{static compose(t,i){i5(iV,"NavigationBindings")&&(iG(t,"remove",i6),ee(t),i2(t.types,t=>{ee(t)}),iG(i,"destroy",i7),iG(i,"load",i3),iG(i,"render",i8),iG(es,"closePopup",et),iG(es,"deselectButton",ei),iW(iU))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=ij.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&iz(i.xAxis),i&&iz(i.yAxis)]}initEvents(){let t=this,i=t.chart,e=t.container,s=t.options;t.boundClassNames={},i2(s.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(e,i=>{t.eventsToUnbind.push(iG(i,"click",e=>{let s=t.getButtonEvents(i,e);s&&!s.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(s.button,s.events,e)}))}),i2(s.events||{},(i,e)=>{iQ(i)&&t.eventsToUnbind.push(iG(t,e,i,{passive:!1}))}),t.eventsToUnbind.push(iG(i.container,"click",function(e){!i.cancelClick&&i.isInsidePlot(e.chartX-i.plotLeft,e.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,e)})),t.eventsToUnbind.push(iG(i.container,u().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},u().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;iN.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,e){let s=this.chart,o=s.renderer.boxWrapper,n=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(n=!1),i$(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&s.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),n?(this.selectedButton=i,this.selectedButtonElement=t,i$(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,e),(i.start||i.steps)&&s.renderer.boxWrapper.addClass("highcharts-draw-mode")):(s.stockTools&&t.classList.remove("highcharts-active"),o.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let e=this.activeAnnotation,s=this.selectedButton,o=t.renderer.boxWrapper;e&&(e.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let e=iq.Element.prototype,s=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,o=null;if(e.closest)o=e.closest.call(t,i);else do{if(s.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return o}(i.target,".highcharts-popup")?e.cancelClick&&setTimeout(()=>{e.cancelClick=!1},0):i$(this,"closePopup")),s&&s.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,s.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]:(i$(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),s.end&&s.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=s.start.call(this,i),this.currentUserDetails&&s.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]):(i$(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,s.end&&s.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return i2(t,(t,e)=>{let s=parseFloat(t),o=e.split("."),n=o.length-1;if(!i0(s)||t.match(/px|em/g)||e.match(/format/g)||(t=s),"undefined"!==t){let e=i;o.forEach((i,s)=>{if("__proto__"!==i&&"constructor"!==i){let a=i4(o[s+1],"");n===s?e[i]=t:(e[i]||(e[i]=a.match(/\d/g)?[]:{}),e=e[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,e=es.annotationsEditable,s=e.nestedOptions,o=i4(i.type,i.shapes&&i.shapes[0]&&i.shapes[0].type,i.labels&&i.labels[0]&&i.labels[0].type,"label"),n=es.annotationsNonEditable[i.langKey]||[],a={langKey:i.langKey,type:o};function r(i,e,o,a,h){let l;o&&iZ(i)&&-1===n.indexOf(e)&&((o.indexOf&&o.indexOf(e))>=0||o[e]||!0===o)&&(iJ(i)?(a[e]=[],i.forEach((t,i)=>{i1(t)?(a[e][i]={},i2(t,(t,o)=>{r(t,o,s[e],a[e][i],e)})):r(t,0,s[e],a[e],e)})):i1(i)?(l={},iJ(a)?(a.push(l),l[e]={},l=l[e]):a[e]=l,i2(i,(t,i)=>{r(t,i,0===e?o:s[e],l,e)})):"format"===e?a[e]=[iH(i,t.labels[0].points[0]).toString(),"text"]:iJ(a)?a.push([i,i_(h,i)]):a[e]=[i,i_(e,i)])}return i2(i,(t,n)=>{"typeOptions"===n?(a[n]={},i2(i[n],(t,i)=>{r(t,i,s,a[n],i)})):r(t,n,e[o],a,n)}),a}getClickedClassNames(t,i){let e=i.target,s=[],o;for(;e&&e.tagName&&((o=iK(e,"class"))&&(s=s.concat(o.split(" ").map(t=>[t,e]))),(e=e.parentNode)!==t););return s}getButtonEvents(t,i){let e;let s=this;return this.getClickedClassNames(t,i).forEach(t=>{s.boundClassNames[t[0]]&&!e&&(e={events:s.boundClassNames[t[0]],button:t[1]})}),e}update(t){this.options=i9(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}es.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},es.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};let eo=u();eo.Annotation=eo.Annotation||iT,eo.NavigationBindings=eo.NavigationBindings||es,eo.Annotation.compose(eo.Chart,eo.NavigationBindings,eo.Pointer,eo.SVGRenderer);let en=u();return p.default})()); \ No newline at end of file + */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/annotations",["highcharts/highcharts"],function(t){return i(t,t.SeriesRegistry,t.Templating,t.AST)}):"object"==typeof exports?exports["highcharts/modules/annotations"]=i(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating,t._Highcharts.AST):t.Highcharts=i(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Templating,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,i,e,s)=>(()=>{"use strict";var o,n,a,r,h={660:t=>{t.exports=s},512:t=>{t.exports=i},984:t=>{t.exports=e},944:i=>{i.exports=t}},l={};function c(t){var i=l[t];if(void 0!==i)return i.exports;var e=l[t]={exports:{}};return h[t](e,e.exports,c),e.exports}c.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return c.d(i,{a:i}),i},c.d=(t,i)=>{for(var e in i)c.o(i,e)&&!c.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},c.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var p={};c.d(p,{default:()=>en});var d=c(944),u=c.n(d);let{addEvent:g,erase:m,find:f,fireEvent:x,pick:v,wrap:y}=u();function b(t,i){let e=this.initAnnotation(t);return this.options.annotations.push(e.options),v(i,!0)&&(e.redraw(),e.graphic.attr({opacity:1})),e}function A(){let t=this;t.plotBoxClip=this.renderer.clipRect(this.plotBox),t.controlPointsGroup=t.renderer.g("control-points").attr({zIndex:99}).clip(t.plotBoxClip).add(),t.options.annotations.forEach((i,e)=>{if(!t.annotations.some(t=>t.options===i)){let s=t.initAnnotation(i);t.options.annotations[e]=s.options}}),t.drawAnnotations(),g(t,"redraw",t.drawAnnotations),g(t,"destroy",function(){t.plotBoxClip.destroy(),t.controlPointsGroup.destroy()}),g(t,"exportData",function(i){let e=t.annotations,s=(this.options.exporting&&this.options.exporting.csv||{}).columnHeaderFormatter,o=!i.dataRows[1].xValues,n=t.options.lang&&t.options.lang.exportData&&t.options.lang.exportData.annotationHeader,a=i.dataRows[0].length,r=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.itemDelimiter,h=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.join;e.forEach(t=>{t.options.labelOptions&&t.options.labelOptions.includeInDataExport&&t.labels.forEach(t=>{if(t.options.text){let e=t.options.text;t.points.forEach(t=>{let s=t.x,o=t.series.xAxis?t.series.xAxis.index:-1,n=!1;if(-1===o){let t=i.dataRows[0].length,a=Array(t);for(let i=0;i{!n&&t.xValues&&void 0!==o&&s===t.xValues[o]&&(h&&t.length>a?t[t.length-1]+=r+e:t.push(e),n=!0)}),!n){let t=i.dataRows[0].length,n=Array(t);for(let i=0;i{l=Math.max(l,t.length)});let c=l-i.dataRows[0].length;for(let t=0;t{t.redraw(),t.graphic.animate({opacity:1},t.animationConfig)})}function w(t){let i=this.annotations,e="annotations"===t.coll?t:f(i,function(i){return i.options.id===t});e&&(x(e,"remove"),m(this.options.annotations,e.options),m(i,e),e.destroy())}function C(){this.annotations=[],this.options.annotations||(this.options.annotations=[])}function E(t){this.chart.hasDraggedAnnotation||t.apply(this,Array.prototype.slice.call(arguments,1))}(o||(o={})).compose=function(t,i,e){let s=i.prototype;if(!s.addAnnotation){let o=e.prototype;g(i,"afterInit",C),s.addAnnotation=b,s.callbacks.push(A),s.collectionsWithInit.annotations=[b],s.collectionsWithUpdate.push("annotations"),s.drawAnnotations=k,s.removeAnnotation=w,s.initAnnotation=function(i){let e=new(t.types[i.type]||t)(this,i);return this.annotations.push(e),e},y(o,"onContainerMouseDown",E)}};let P=o,{defined:O}=u(),{doc:B,isTouchDevice:M}=u(),{addEvent:T,fireEvent:N,objectEach:D,pick:L,removeEvent:I}=u(),S=class{addEvents(){let t=this,i=function(i){T(i,M?"touchstart":"mousedown",i=>{t.onMouseDown(i)},{passive:!1})};if(i(this.graphic.element),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&i(t.graphic.text.element)}),D(t.options.events,(i,e)=>{let s=function(s){"click"===e&&t.cancelClick||i.call(t,t.chart.pointer?.normalize(s),t.target)};-1===(t.nonDOMEvents||[]).indexOf(e)?(T(t.graphic.element,e,s,{passive:!1}),t.graphic.div&&T(t.graphic.div,e,s,{passive:!1})):T(t,e,s,{passive:!1})}),t.options.draggable&&(T(t,"drag",t.onDrag),!t.graphic.renderer.styledMode)){let i={cursor:{x:"ew-resize",y:"ns-resize",xy:"move"}[t.options.draggable]};t.graphic.css(i),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&t.graphic.text.css(i)})}t.isUpdating||N(t,"add")}destroy(){this.removeDocEvents(),I(this),this.hcEvents=null}mouseMoveToRadians(t,i,e){let s=t.prevChartY-e,o=t.prevChartX-i,n=t.chartY-e,a=t.chartX-i,r;return this.chart.inverted&&(r=o,o=s,s=r,r=a,a=n,n=r),Math.atan2(n,a)-Math.atan2(s,o)}mouseMoveToScale(t,i,e){let s=t.prevChartX-i,o=t.prevChartY-e,n=t.chartX-i,a=t.chartY-e,r=(n||1)/(s||1),h=(a||1)/(o||1);if(this.chart.inverted){let t=h;h=r,r=t}return{x:r,y:h}}mouseMoveToTranslation(t){let i=t.chartX-t.prevChartX,e=t.chartY-t.prevChartY,s;return this.chart.inverted&&(s=e,e=i,i=s),{x:i,y:e}}onDrag(t){if(this.chart.isInsidePlot(t.chartX-this.chart.plotLeft,t.chartY-this.chart.plotTop,{visiblePlotOnly:!0})){let i=this.mouseMoveToTranslation(t);"x"===this.options.draggable&&(i.y=0),"y"===this.options.draggable&&(i.x=0),this.points.length?this.translate(i.x,i.y):(this.shapes.forEach(t=>t.translate(i.x,i.y)),this.labels.forEach(t=>t.translate(i.x,i.y))),this.redraw(!1)}}onMouseDown(t){if(t.preventDefault&&t.preventDefault(),2===t.button)return;let i=this,e=i.chart.pointer,s=t?.sourceCapabilities?.firesTouchEvents||!1,o=(t=e?.normalize(t)||t).chartX,n=t.chartY;i.cancelClick=!1,i.chart.hasDraggedAnnotation=!0,i.removeDrag=T(B,M||s?"touchmove":"mousemove",function(t){i.hasDragged=!0,(t=e?.normalize(t)||t).prevChartX=o,t.prevChartY=n,N(i,"drag",t),o=t.chartX,n=t.chartY},M||s?{passive:!1}:void 0),i.removeMouseUp=T(B,M||s?"touchend":"mouseup",function(){let t=L(i.target&&i.target.annotation,i.target);t&&(t.cancelClick=i.hasDragged),i.cancelClick=i.hasDragged,i.chart.hasDraggedAnnotation=!1,i.hasDragged&&N(L(t,i),"afterUpdate"),i.hasDragged=!1,i.onMouseUp()},M||s?{passive:!1}:void 0)}onMouseUp(){this.removeDocEvents()}removeDocEvents(){this.removeDrag&&(this.removeDrag=this.removeDrag()),this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())}},{merge:Y,pick:X}=u(),F=class extends S{constructor(t,i,e,s){super(),this.nonDOMEvents=["drag"],this.chart=t,this.target=i,this.options=e,this.index=X(e.index,s)}destroy(){super.destroy(),this.graphic&&(this.graphic=this.graphic.destroy()),this.chart=null,this.target=null,this.options=null}redraw(t){this.graphic[t?"animate":"attr"](this.options.positioner.call(this,this.target))}render(){let t=this.chart,i=this.options;this.graphic=t.renderer.symbol(i.symbol,0,0,i.width,i.height).add(t.controlPointsGroup).css(i.style),this.setVisibility(i.visible),this.addEvents()}setVisibility(t){this.graphic[t?"show":"hide"](),this.options.visible=t}update(t){let i=this.chart,e=this.target,s=this.index,o=Y(!0,this.options,t);this.destroy(),this.constructor(i,e,o,s),this.render(i.controlPointsGroup),this.redraw()}};var R=c(512),U=c.n(R);let{series:{prototype:W}}=U(),{defined:H,fireEvent:V}=u();class j{static fromPoint(t){return new j(t.series.chart,null,{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis})}static pointToPixels(t,i){let e=t.series,s=e.chart,o=t.plotX||0,n=t.plotY||0,a;return s.inverted&&(t.mock?(o=t.plotY,n=t.plotX):(o=s.plotWidth-(t.plotY||0),n=s.plotHeight-(t.plotX||0))),e&&!i&&(o+=(a=e.getPlotBox()).translateX,n+=a.translateY),{x:o,y:n}}static pointToOptions(t){return{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis}}constructor(t,i,e){this.mock=!0,this.point=this,this.series={visible:!0,chart:t,getPlotBox:W.getPlotBox},this.target=i||null,this.options=e,this.applyOptions(this.getOptions())}applyOptions(t){this.command=t.command,this.setAxis(t,"x"),this.setAxis(t,"y"),this.refresh()}getOptions(){return this.hasDynamicOptions()?this.options(this.target):this.options}hasDynamicOptions(){return"function"==typeof this.options}isInsidePlot(){let t=this.plotX,i=this.plotY,e=this.series.xAxis,s=this.series.yAxis,o={x:t,y:i,isInsidePlot:!0,options:{}};return e&&(o.isInsidePlot=H(t)&&t>=0&&t<=e.len),s&&(o.isInsidePlot=o.isInsidePlot&&H(i)&&i>=0&&i<=s.len),V(this.series.chart,"afterIsInsidePlot",o),o.isInsidePlot}refresh(){let t=this.series,i=t.xAxis,e=t.yAxis,s=this.getOptions();i?(this.x=s.x,this.plotX=i.toPixels(s.x,!0)):(this.x=void 0,this.plotX=s.x),e?(this.y=s.y,this.plotY=e.toPixels(s.y,!0)):(this.y=null,this.plotY=s.y),this.isInside=this.isInsidePlot()}refreshOptions(){let t=this.series,i=t.xAxis,e=t.yAxis;this.x=this.options.x=i?this.options.x=i.toValue(this.plotX,!0):this.plotX,this.y=this.options.y=e?e.toValue(this.plotY,!0):this.plotY}rotate(t,i,e){if(!this.hasDynamicOptions()){let s=Math.cos(e),o=Math.sin(e),n=this.plotX-t,a=this.plotY-i;this.plotX=n*s-a*o+t,this.plotY=n*o+a*s+i,this.refreshOptions()}}scale(t,i,e,s){if(!this.hasDynamicOptions()){let o=this.plotX*e,n=this.plotY*s;this.plotX=(1-e)*t+o,this.plotY=(1-s)*i+n,this.refreshOptions()}}setAxis(t,i){let e=i+"Axis",s=t[e],o=this.series.chart;this.series[e]="object"==typeof s?s:H(s)?o[e][s]||o.get(s):null}toAnchor(){let t=[this.plotX,this.plotY,0,0];return this.series.chart.inverted&&(t[0]=this.plotY,t[1]=this.plotX),t}translate(t,i,e,s){this.hasDynamicOptions()||(this.plotX+=e,this.plotY+=s,this.refreshOptions())}}!function(t){function i(){let t=this.controlPoints,i=this.options.controlPoints||[];i.forEach((e,s)=>{let o=u().merge(this.options.controlPointOptions,e);o.index||(o.index=s),i[s]=o,t.push(new F(this.chart,this,o))})}function e(t){let i=t.series.getPlotBox(),e=t.series.chart,s=t.mock?t.toAnchor():e.tooltip&&e.tooltip.getAnchor.call({chart:t.series.chart},t)||[0,0,0,0],o={x:s[0]+(this.options.x||0),y:s[1]+(this.options.y||0),height:s[2]||0,width:s[3]||0};return{relativePosition:o,absolutePosition:u().merge(o,{x:o.x+(t.mock?i.translateX:e.plotLeft),y:o.y+(t.mock?i.translateY:e.plotTop)})}}function s(){this.controlPoints.forEach(t=>t.destroy()),this.chart=null,this.controlPoints=null,this.points=null,this.options=null,this.annotation&&(this.annotation=null)}function o(){let t=this.options;return t.points||t.point&&u().splat(t.point)}function n(){let t,i;let e=this.getPointsOptions(),s=this.points,o=e&&e.length||0;for(t=0;ti.redraw(t))}function h(){this.controlPoints.forEach(t=>t.render())}function l(t,i,e,s,o){if(this.chart.inverted){let t=i;i=e,e=t}this.points.forEach((n,a)=>this.transformPoint(t,i,e,s,o,a),this)}function c(t,i,e,s,o,n){let a=this.points[n];a.mock||(a=this.points[n]=j.fromPoint(a)),a[t](i,e,s,o)}function p(t,i){this.transform("translate",null,null,t,i)}function d(t,i,e){this.transformPoint("translate",null,null,t,i,e)}t.compose=function(t){let g=t.prototype;g.addControlPoints||u().merge(!0,g,{addControlPoints:i,anchor:e,destroyControlTarget:s,getPointsOptions:o,linkPoints:n,point:a,redrawControlPoints:r,renderControlPoints:h,transform:l,transformPoint:c,translate:p,translatePoint:d})}}(n||(n={}));let q=n,{merge:z}=u();class _{constructor(t,i,e,s){this.annotation=t,this.chart=t.chart,this.collection="label"===s?"labels":"shapes",this.controlPoints=[],this.options=i,this.points=[],this.index=e,this.itemType=s,this.init(t,i,e)}attr(...t){this.graphic.attr.apply(this.graphic,arguments)}attrsFromOptions(t){let i,e;let s=this.constructor.attrsMap,o={},n=this.chart.styledMode;for(i in t)e=s[i],void 0===s[i]||n&&-1!==["fill","stroke","stroke-width"].indexOf(e)||(o[e]=t[i]);return o}destroy(){this.graphic&&(this.graphic=this.graphic.destroy()),this.tracker&&(this.tracker=this.tracker.destroy()),this.destroyControlTarget()}init(t,i,e){this.annotation=t,this.chart=t.chart,this.options=i,this.points=[],this.controlPoints=[],this.index=e,this.linkPoints(),this.addControlPoints()}redraw(t){this.redrawControlPoints(t)}render(t){this.options.className&&this.graphic&&this.graphic.addClass(this.options.className),this.renderControlPoints()}rotate(t,i,e){this.transform("rotate",t,i,e)}scale(t,i,e,s){this.transform("scale",t,i,e,s)}setControlPointsVisibility(t){this.controlPoints.forEach(i=>{i.setVisibility(t)})}shouldBeDrawn(){return!!this.points.length}translateShape(t,i,e){let s=this.annotation.chart,o=this.annotation.userOptions,n=s.annotations.indexOf(this.annotation),a=s.options.annotations[n];this.translatePoint(t,i,0),e&&this.translatePoint(t,i,1),a[this.collection][this.index].point=this.options.point,o[this.collection][this.index].point=this.options.point}update(t){let i=this.annotation,e=z(!0,this.options,t),s=this.graphic.parentGroup,o=this.constructor;this.destroy(),z(!0,this,new o(i,e,this.index,this.itemType)),this.render(s),this.redraw()}}q.compose(_);let G=_,{defaultMarkers:K}={defaultMarkers:{arrow:{tagName:"marker",attributes:{id:"arrow",refY:5,refX:9,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 0 L 10 5 L 0 10 Z","stroke-width":0}}]},"reverse-arrow":{tagName:"marker",attributes:{id:"reverse-arrow",refY:5,refX:1,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 5 L 10 0 L 10 10 Z","stroke-width":0}}]}}},{addEvent:Z,defined:$,extend:J,merge:Q,uniqueKey:tt}=u(),ti=to("marker-end"),te=to("marker-start"),ts="rgba(192,192,192,"+(u().svg?1e-4:.002)+")";function to(t){return function(i){this.attr(t,"url(#"+i+")")}}function tn(){this.options.defs=Q(K,this.options.defs||{})}function ta(t,i){let e={attributes:{id:t}},s={stroke:i.color||"none",fill:i.color||"rgba(0, 0, 0, 0.75)"};e.children=i.children&&i.children.map(function(t){return Q(s,t)});let o=Q(!0,{attributes:{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"}},i,e),n=this.definition(o);return n.id=t,n}class tr extends G{static compose(t,i){let e=i.prototype;e.addMarker||(Z(t,"afterGetContainer",tn),e.addMarker=ta)}constructor(t,i,e){super(t,i,e,"shape"),this.type="path"}toD(){let t=this.options.d;if(t)return"function"==typeof t?t.call(this):t;let i=this.points,e=i.length,s=[],o=e,n=i[0],a=o&&this.anchor(n).absolutePosition,r=0,h;if(a)for(s.push(["M",a.x,a.y]);++r{t.yAxis=i.yAxis}),tu(i.xAxis)&&i.points.forEach(t=>{t.xAxis=i.xAxis}),super.init(t,i,e)}render(t){this.graphic=this.annotation.chart.renderer.createElement("ellipse").attr(this.attrsFromOptions(this.options)).add(t),super.render()}translate(t,i){super.translateShape(t,i,!0)}getDistanceFromLine(t,i,e,s){return Math.abs((i.y-t.y)*e-(i.x-t.x)*s+i.x*t.y-i.y*t.x)/Math.sqrt((i.y-t.y)*(i.y-t.y)+(i.x-t.x)*(i.x-t.x))}getAttrs(t,i){let e=t.x,s=t.y,o=i.x,n=i.y,a=(e+o)/2,r=Math.sqrt((e-o)*(e-o)/4+(s-n)*(s-n)/4),h=180*Math.atan((n-s)/(o-e))/Math.PI;return ai+s?r.push(["L",t+l,i+s]):at+e&&r.push(["L",t+e,i+s/2])),r||[]}class tw extends G{static alignedPosition(t,i){return{x:Math.round((i.x||0)+(t.x||0)+(i.width-(t.width||0))*ty(t.align)),y:Math.round((i.y||0)+(t.y||0)+(i.height-(t.height||0))*ty(t.verticalAlign))}}static compose(t){t.prototype.symbols.connector=tk}static justifiedOptions(t,i,e,s){let o;let n=e.align,a=e.verticalAlign,r=i.box?0:i.padding||0,h=i.getBBox(),l={align:n,verticalAlign:a,x:e.x,y:e.y,width:i.width,height:i.height},c=(s.x||0)-t.plotLeft,p=(s.y||0)-t.plotTop;return(o=c+r)<0&&("right"===n?l.align="left":l.x=(l.x||0)-o),(o=c+h.width-r)>t.plotWidth&&("left"===n?l.align="right":l.x=(l.x||0)+t.plotWidth-o),(o=p+r)<0&&("bottom"===a?l.verticalAlign="top":l.y=(l.y||0)-o),(o=p+h.height-r)>t.plotHeight&&("top"===a?l.verticalAlign="bottom":l.y=(l.y||0)+t.plotHeight-o),l}constructor(t,i,e){super(t,i,e,"label")}translatePoint(t,i){super.translatePoint(t,i,0)}translate(t,i){let e=this.annotation.chart,s=this.annotation.userOptions,o=e.annotations.indexOf(this.annotation),n=e.options.annotations[o];if(e.inverted){let e=t;t=i,i=e}this.options.x+=t,this.options.y+=i,n[this.collection][this.index].x=this.options.x,n[this.collection][this.index].y=this.options.y,s[this.collection][this.index].x=this.options.x,s[this.collection][this.index].y=this.options.y}render(t){let i=this.options,e=this.attrsFromOptions(i),s=i.style;this.graphic=this.annotation.chart.renderer.label("",0,-9999,i.shape,null,null,i.useHTML,null,"annotation-label").attr(e).add(t),this.annotation.chart.styledMode||("contrast"===s.color&&(s.color=this.annotation.chart.renderer.getContrast(tw.shapesWithoutBackground.indexOf(i.shape)>-1?"#FFFFFF":i.backgroundColor)),this.graphic.css(i.style).shadow(i.shadow)),this.graphic.labelrank=i.labelrank,super.render()}redraw(t){let i=this.options,e=this.text||i.format||i.text,s=this.graphic,o=this.points[0];if(!s){this.redraw(t);return}s.attr({text:e?tx(String(e),o,this.annotation.chart):i.formatter.call(o,this)});let n=this.anchor(o),a=this.position(n);a?(s.alignAttr=a,a.anchorX=n.absolutePosition.x,a.anchorY=n.absolutePosition.y,s[t?"animate":"attr"](a)):s.attr({x:0,y:-9999}),s.placed=!!a,super.redraw(t)}anchor(t){let i=super.anchor.apply(this,arguments),e=this.options.x||0,s=this.options.y||0;return i.absolutePosition.x-=e,i.absolutePosition.y-=s,i.relativePosition.x-=e,i.relativePosition.y-=s,i}position(t){let i=this.graphic,e=this.annotation.chart,s=e.tooltip,o=this.points[0],n=this.options,a=t.absolutePosition,r=t.relativePosition,h,l,c,p,d=o.series.visible&&j.prototype.isInsidePlot.call(o);if(i&&d){let{width:t=0,height:u=0}=i;n.distance&&s?h=s.getPosition.call({chart:e,distance:tA(n.distance,16),getPlayingField:s.getPlayingField,pointer:s.pointer},t,u,{plotX:r.x,plotY:r.y,negative:o.negative,ttBelow:o.ttBelow,h:r.height||r.width}):n.positioner?h=n.positioner.call(this):(l={x:a.x,y:a.y,width:0,height:0},h=tw.alignedPosition(tv(n,{width:t,height:u}),l),"justify"===this.options.overflow&&(h=tw.alignedPosition(tw.justifiedOptions(e,i,n,h),l))),n.crop&&(c=h.x-e.plotLeft,p=h.y-e.plotTop,d=e.isInsidePlot(c,p)&&e.isInsidePlot(c+t,p+u))}return d?h:null}}tw.attrsMap={backgroundColor:"fill",borderColor:"stroke",borderWidth:"stroke-width",zIndex:"zIndex",borderRadius:"r",padding:"padding"},tw.shapesWithoutBackground=["connector"];class tC extends G{constructor(t,i,e){super(t,i,e,"shape"),this.type="image",this.translate=super.translateShape}render(t){let i=this.attrsFromOptions(this.options),e=this.options;this.graphic=this.annotation.chart.renderer.image(e.src,0,-9e9,e.width,e.height).attr(i).add(t),this.graphic.width=e.width,this.graphic.height=e.height,super.render()}redraw(t){if(this.graphic){let i=this.anchor(this.points[0]),e=tw.prototype.position.call(this,i);e?this.graphic[t?"animate":"attr"]({x:e.x,y:e.y}):this.graphic.attr({x:0,y:-9e9}),this.graphic.placed=!!e}super.redraw(t)}}tC.attrsMap={width:"width",height:"height",zIndex:"zIndex"};var tE=c(660),tP=c.n(tE);let{addEvent:tO,createElement:tB}=u(),tM=class{constructor(t,i){this.iconsURL=i,this.container=this.createPopupContainer(t),this.closeButton=this.addCloseButton()}createPopupContainer(t,i="highcharts-popup highcharts-no-tooltip"){return tB("div",{className:i},void 0,t)}addCloseButton(t="highcharts-popup-close"){let i=this,e=this.iconsURL,s=tB("button",{className:t},void 0,this.container);return s.style["background-image"]="url("+(e.match(/png|svg|jpeg|jpg|gif/ig)?e:e+"close.svg")+")",["click","touchstart"].forEach(t=>{tO(s,t,i.closeButtonEvents.bind(i))}),tO(document,"keydown",function(t){"Escape"===t.code&&i.closeButtonEvents()}),s}closeButtonEvents(){this.closePopup()}showPopup(t="highcharts-annotation-toolbar"){let i=this.container,e=this.closeButton;this.type=void 0,i.innerHTML=tP().emptyHTML,i.className.indexOf(t)>=0&&(i.classList.remove(t),i.removeAttribute("style")),i.appendChild(e),i.style.display="block",i.style.height=""}closePopup(){this.container.style.display="none"}},{doc:tT,isFirefox:tN}=u(),{createElement:tD,isArray:tL,isObject:tI,objectEach:tS,pick:tY,stableSort:tX}=u();function tF(t,i,e,s,o,n){let a,r;if(!i)return;let h=this.addInput,l=this.lang;tS(s,(s,n)=>{a=""!==e?e+"."+n:n,tI(s)&&(!tL(s)||tL(s)&&tI(s[0])?((r=l[n]||n).match(/\d/g)||o.push([!0,r,t]),tF.call(this,t,i,a,s,o,!1)):o.push([this,a,"annotation",t,s]))}),n&&(tX(o,t=>t[1].match(/format/g)?-1:1),tN&&o.reverse(),o.forEach(t=>{!0===t[0]?tD("span",{className:"highcharts-annotation-title"},void 0,t[2]).appendChild(tT.createTextNode(t[1])):(t[4]={value:t[4][0],type:t[4][1]},h.apply(t[0],t.splice(1)))}))}let{doc:tR}=u(),{seriesTypes:tU}=U(),{addEvent:tW,createElement:tH,defined:tV,isArray:tj,isObject:tq,objectEach:tz,stableSort:t_}=u();!function(t){t[t["params.algorithm"]=0]="params.algorithm",t[t["params.average"]=1]="params.average"}(a||(a={}));let tG={"algorithm-pivotpoints":["standard","fibonacci","camarilla"],"average-disparityindex":["sma","ema","dema","tema","wma"]};function tK(t){let i=tH("div",{className:"highcharts-popup-lhs-col"},void 0,t),e=tH("div",{className:"highcharts-popup-rhs-col"},void 0,t);return tH("div",{className:"highcharts-popup-rhs-col-wrapper"},void 0,e),{lhsCol:i,rhsCol:e}}function tZ(t,i,e,s){let o=i.params||i.options.params;s.innerHTML=tP().emptyHTML,tH("h3",{className:"highcharts-indicator-title"},void 0,s).appendChild(tR.createTextNode(t4(i,e).indicatorFullName)),tH("input",{type:"hidden",name:"highcharts-type-"+e,value:e},void 0,s),t5.call(this,e,"series",t,s,i,i.linkedParent&&i.linkedParent.options.id),o.volumeSeriesID&&t5.call(this,e,"volume",t,s,i,i.linkedParent&&o.volumeSeriesID),tJ.call(this,t,"params",o,e,s)}function t$(t,i,e,s){function o(i,e){let s=g.parentNode.children[1];tZ.call(n,t,i,e,g),s&&(s.style.display="block"),l&&i.options&&tH("input",{type:"hidden",name:"highcharts-id-"+e,value:i.options.id},void 0,g).setAttribute("highcharts-data-series-id",i.options.id)}let n=this,a=n.lang,r=i.querySelectorAll(".highcharts-popup-lhs-col")[0],h=i.querySelectorAll(".highcharts-popup-rhs-col")[0],l="edit"===e,c=l?t.series:t.options.plotOptions||{};if(!t&&c)return;let p,d=[];l||tj(c)?tj(c)&&(d=t2.call(this,c)):d=t9.call(this,c,s),t_(d,(t,i)=>{let e=t.indicatorFullName.toLowerCase(),s=i.indicatorFullName.toLowerCase();return es?1:0}),r.children[1]&&r.children[1].remove();let u=tH("ul",{className:"highcharts-indicator-list"},void 0,r),g=h.querySelectorAll(".highcharts-popup-rhs-col-wrapper")[0];if(d.forEach(t=>{let{indicatorFullName:i,indicatorType:e,series:s}=t;p=tH("li",{className:"highcharts-indicator-list"},void 0,u);let n=tH("button",{className:"highcharts-indicator-list-item",textContent:i},void 0,p);["click","touchstart"].forEach(t=>{tW(n,t,function(){o(s,e)})})}),d.length>0){let{series:t,indicatorType:i}=d[0];o(t,i)}else l||(tP().setElementHTML(g.parentNode.children[0],a.noFilterMatch||""),g.parentNode.children[1].style.display="none")}function tJ(t,i,e,s,o){if(!t)return;let n=this.addInput;tz(e,(e,r)=>{let h=i+"."+r;if(tV(e)&&h){if(tq(e)&&(n.call(this,h,s,o,{}),tJ.call(this,t,h,e,s,o)),h in a){let n=t0.call(this,s,h,o);t1.call(this,t,i,n,s,r,e)}else"params.volumeSeriesID"===h||tj(e)||n.call(this,h,s,o,{value:e,type:"number"})}})}function tQ(t,i){let e=this,s=i.querySelectorAll(".highcharts-popup-lhs-col")[0],o=this.lang.clearFilter,n=tH("div",{className:"highcharts-input-wrapper"},void 0,s),a=function(i){t$.call(e,t,e.container,"add",i)},r=this.addInput("searchIndicators","input",n,{value:"",type:"text",htmlFor:"search-indicators",labelClassName:"highcharts-input-search-indicators-label"}),h=tH("a",{textContent:o},void 0,n);r.classList.add("highcharts-input-search-indicators"),h.classList.add("clear-filter-button"),tW(r,"input",function(){a(this.value),this.value.length?h.style.display="inline-block":h.style.display="none"}),["click","touchstart"].forEach(t=>{tW(h,t,function(){r.value="",a(""),h.style.display="none"})})}function t0(t,i,e){let s=i.split("."),o=s[s.length-1],n="highcharts-"+i+"-type-"+t,a=this.lang;tH("label",{htmlFor:n},null,e).appendChild(tR.createTextNode(a[o]||i));let r=tH("select",{name:n,className:"highcharts-popup-field",id:"highcharts-select-"+i},null,e);return r.setAttribute("id","highcharts-select-"+i),r}function t1(t,i,e,s,o,n,a){"series"===i||"volume"===i?t.series.forEach(t=>{let s=t.options,o=s.name||s.params?t.name:s.id||"";"highcharts-navigator-series"!==s.id&&s.id!==(a&&a.options&&a.options.id)&&(tV(n)||"volume"!==i||"column"!==t.type||(n=s.id),tH("option",{value:s.id},void 0,e).appendChild(tR.createTextNode(o)))}):s&&o&&tG[o+"-"+s].forEach(t=>{tH("option",{value:t},void 0,e).appendChild(tR.createTextNode(t))}),tV(n)&&(e.value=n)}function t9(t,i){let e;let s=this.chart&&this.chart.options.lang,o=s&&s.navigation&&s.navigation.popup&&s.navigation.popup.indicatorAliases,n=[];return tz(t,(t,s)=>{let a=t&&t.options;if(t.params||a&&a.params){let{indicatorFullName:a,indicatorType:r}=t4(t,s);if(i){let s=RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=o&&o[r]&&o[r].join(" ")||"";(a.match(s)||h.match(s))&&(e={indicatorFullName:a,indicatorType:r,series:t},n.push(e))}else e={indicatorFullName:a,indicatorType:r,series:t},n.push(e)}}),n}function t2(t){let i=[];return t.forEach(t=>{t.is("sma")&&i.push({indicatorFullName:t.name,indicatorType:t.type,series:t})}),i}function t4(t,i){let e=t.options,s=tU[i]&&tU[i].prototype.nameBase||i.toUpperCase(),o=i;return e&&e.type&&(o=t.options.type,s=t.name),{indicatorFullName:s,indicatorType:o}}function t5(t,i,e,s,o,n){if(!e)return;let a=t0.call(this,t,i,s);t1.call(this,e,i,a,void 0,void 0,void 0,o),tV(n)&&(a.value=n)}let{doc:t6}=u(),{addEvent:t7,createElement:t3}=u();function t8(){return t3("div",{className:"highcharts-tab-item-content highcharts-no-mousewheel"},void 0,this.container)}function it(t,i){let e=this.container,s=this.lang,o="highcharts-tab-item";0===i&&(o+=" highcharts-tab-disabled");let n=t3("button",{className:o},void 0,e);return n.appendChild(t6.createTextNode(s[t+"Button"]||t)),n.setAttribute("highcharts-data-tab-type",t),n}function ii(){let t=this.container,i=t.querySelectorAll(".highcharts-tab-item"),e=t.querySelectorAll(".highcharts-tab-item-content");for(let t=0;t{(0!==t||"edit"!==e.getAttribute("highcharts-data-tab-type"))&&["click","touchstart"].forEach(t=>{t7(e,t,function(){ii.call(i),ie.call(i,this,s)})})})}let{doc:io}=u(),{getOptions:ia}=u(),{addEvent:ir,createElement:ih,extend:il,fireEvent:ic,pick:ip}=u();class id extends tM{constructor(t,i,e){super(t,i),this.chart=e,this.lang=(ia().lang.navigation||{}).popup||{},ir(this.container,"mousedown",()=>{let t=e&&e.navigationBindings&&e.navigationBindings.activeAnnotation;if(t){t.cancelClick=!0;let i=ir(io,"click",()=>{setTimeout(()=>{t.cancelClick=!1},0),i()})}})}addInput(t,i,e,s){let o=t.split("."),n=o[o.length-1],a=this.lang,r="highcharts-"+i+"-"+ip(s.htmlFor,n);n.match(/^\d+$/)||ih("label",{htmlFor:r,className:s.labelClassName},void 0,e).appendChild(io.createTextNode(a[n]||n));let h=ih("input",{name:r,value:s.value,type:s.type,className:"highcharts-popup-field"},void 0,e);return h.setAttribute("highcharts-data-name",t),h}closeButtonEvents(){if(this.chart){let t=this.chart.navigationBindings;ic(t,"closePopup"),t&&t.selectedButtonElement&&ic(t,"deselectButton",{button:t.selectedButtonElement})}else super.closeButtonEvents()}addButton(t,i,e,s,o){let n=ih("button",void 0,void 0,t);return n.appendChild(io.createTextNode(i)),o&&["click","touchstart"].forEach(t=>{ir(n,t,()=>(this.closePopup(),o(function(t,i){let e=Array.prototype.slice.call(t.querySelectorAll("input")),s=Array.prototype.slice.call(t.querySelectorAll("select")),o=t.querySelectorAll("#highcharts-select-series > option:checked")[0],n=t.querySelectorAll("#highcharts-select-volume > option:checked")[0],a={actionType:i,linkedTo:o&&o.getAttribute("value")||"",fields:{}};return e.forEach(t=>{let i=t.getAttribute("highcharts-data-name");t.getAttribute("highcharts-data-series-id")?a.seriesId=t.value:i?a.fields[i]=t.value:a.type=t.value}),s.forEach(t=>{let i=t.id;if("highcharts-select-series"!==i&&"highcharts-select-volume"!==i){let e=i.split("highcharts-select-")[1];a.fields[e]=t.value}}),n&&(a.fields["params.volumeSeriesID"]=n.getAttribute("value")||""),a}(s,e))))}),n}showForm(t,i,e,s){i&&(this.showPopup(),"indicators"===t&&this.indicators.addForm.call(this,i,e,s),"annotation-toolbar"===t&&this.annotations.addToolbar.call(this,i,e,s),"annotation-edit"===t&&this.annotations.addForm.call(this,i,e,s),"flag"===t&&this.annotations.addForm.call(this,i,e,s,!0),this.type=t,this.container.style.height=this.container.offsetHeight+"px")}}il(id.prototype,{annotations:{addForm:function(t,i,e,s){if(!t)return;let o=this.container,n=this.lang,a=tD("h2",{className:"highcharts-popup-main-title"},void 0,o);a.appendChild(tT.createTextNode(n[i.langKey]||i.langKey||"")),a=tD("div",{className:"highcharts-popup-lhs-col highcharts-popup-lhs-full"},void 0,o);let r=tD("div",{className:"highcharts-popup-bottom-row"},void 0,o);tF.call(this,a,t,"",i,[],!0),this.addButton(r,s?n.addButton||"Add":n.saveButton||"Save",s?"add":"save",o,e)},addToolbar:function(t,i,e){let s=this.lang,o=this.container,n=this.showForm,a="highcharts-annotation-toolbar";-1===o.className.indexOf(a)&&(o.className+=" "+a+" highcharts-no-mousewheel"),t&&(o.style.top=t.plotTop+10+"px");let r=tD("p",{className:"highcharts-annotation-label"},void 0,o);r.setAttribute("aria-label","Annotation type"),r.appendChild(tT.createTextNode(tY(s[i.langKey]||i.langKey,i.shapes&&i.shapes[0].type,"")));let h=this.addButton(o,s.editButton||"Edit","edit",o,()=>{n.call(this,"annotation-edit",t,i,e)});h.className+=" highcharts-annotation-edit-button",h.style["background-image"]="url("+this.iconsURL+"edit.svg)",h=this.addButton(o,s.removeButton||"Remove","remove",o,e),h.className+=" highcharts-annotation-remove-button",h.style["background-image"]="url("+this.iconsURL+"destroy.svg)"}},indicators:{addForm:function(t,i,e){let s;let o=this.lang;if(!t)return;this.tabs.init.call(this,t);let n=this.container.querySelectorAll(".highcharts-tab-item-content");tK(n[0]),tQ.call(this,t,n[0]),t$.call(this,t,n[0],"add"),s=n[0].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(s,o.addButton||"add","add",s,e),tK(n[1]),t$.call(this,t,n[1],"edit"),s=n[1].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(s,o.saveButton||"save","edit",s,e),this.addButton(s,o.removeButton||"remove","remove",s,e)},getAmount:function(){let t=0;return this.series.forEach(i=>{(i.params||i.options.params)&&t++}),t}},tabs:{init:function(t){if(!t)return;let i=this.indicators.getAmount.call(t),e=it.call(this,"add");it.call(this,"edit",i),t8.call(this),t8.call(this),is.call(this,i),ie.call(this,e,0)}}});let{composed:iu}=u(),{addEvent:ig,pushUnique:im,wrap:ix}=u();function iv(){this.popup&&this.popup.closePopup()}function iy(t){this.popup||(this.popup=new id(this.chart.container,this.chart.options.navigation.iconsURL||this.chart.options.stockTools&&this.chart.options.stockTools.gui.iconsURL||"https://code.highcharts.com/12.1.0/gfx/stock-icons/",this.chart)),this.popup.showForm(t.formType,this.chart,t.options,t.onSubmit)}function ib(t,i){this.inClass(i.target,"highcharts-popup")||t.apply(this,Array.prototype.slice.call(arguments,1))}let iA={compose:function(t,i){im(iu,"Popup")&&(ig(t,"closePopup",iv),ig(t,"showPopup",iy),ix(i.prototype,"onContainerMouseDown",ib))}},{getDeferredAnimation:ik}=u(),{destroyObjectProperties:iw,erase:iC,fireEvent:iE,merge:iP,pick:iO,splat:iB}=u();function iM(t,i){let e={};return["labels","shapes"].forEach(s=>{let o=t[s],n=i[s];o&&(n?e[s]=iB(n).map((t,i)=>iP(o[i],t)):e[s]=t[s])}),e}class iT extends S{static compose(t,i,e,s){P.compose(iT,t,e),tw.compose(s),tr.compose(t,s),i.compose(iT,t),iA.compose(i,e)}constructor(t,i){super(),this.coll="annotations",this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.index=-1,this.labels=[],this.shapes=[],this.options=iP(this.defaultOptions,i),this.userOptions=i;let e=iM(this.options,i);this.options.labels=e.labels,this.options.shapes=e.shapes,this.init(t,this.options)}addClipPaths(){this.setClipAxes(),this.clipXAxis&&this.clipYAxis&&this.options.crop&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))}addLabels(){let t=this.options.labels||[];t.forEach((i,e)=>{let s=this.initLabel(i,e);iP(!0,t[e],s.options)})}addShapes(){let t=this.options.shapes||[];t.forEach((i,e)=>{let s=this.initShape(i,e);iP(!0,t[e],s.options)})}destroy(){let t=this.chart,i=function(t){t.destroy()};this.labels.forEach(i),this.shapes.forEach(i),this.clipXAxis=null,this.clipYAxis=null,iC(t.labelCollectors,this.labelCollector),super.destroy(),this.destroyControlTarget(),iw(this,t)}destroyItem(t){iC(this[t.itemType+"s"],t),t.destroy()}getClipBox(){if(this.clipXAxis&&this.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}}initProperties(t,i){this.setOptions(i);let e=iM(this.options,i);this.options.labels=e.labels,this.options.shapes=e.shapes,this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.userOptions=i,this.labels=[],this.shapes=[]}init(t,i,e=this.index){let s=this.chart,o=this.options.animation;this.index=e,this.linkPoints(),this.addControlPoints(),this.addShapes(),this.addLabels(),this.setLabelCollector(),this.animationConfig=ik(s,o)}initLabel(t,i){let e=new tw(this,iP(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},t),i);return e.itemType="label",this.labels.push(e),e}initShape(t,i){let e=iP(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},t),s=new iT.shapesMap[e.type](this,e,i);return s.itemType="shape",this.shapes.push(s),s}redraw(t){this.linkPoints(),this.graphic||this.render(),this.clipRect&&this.clipRect.animate(this.getClipBox()),this.redrawItems(this.shapes,t),this.redrawItems(this.labels,t),this.redrawControlPoints(t)}redrawItem(t,i){t.linkPoints(),t.shouldBeDrawn()?(t.graphic||this.renderItem(t),t.redraw(iO(i,!0)&&t.graphic.placed),t.points.length&&function(t){let i=t.graphic,e=t.points.some(t=>!1!==t.series.visible&&!1!==t.visible);i&&(e?"hidden"===i.visibility&&i.show():i.hide())}(t)):this.destroyItem(t)}redrawItems(t,i){let e=t.length;for(;e--;)this.redrawItem(t[e],i)}remove(){return this.chart.removeAnnotation(this)}render(){let t=this.chart.renderer;this.graphic=t.g("annotation").attr({opacity:0,zIndex:this.options.zIndex,visibility:this.options.visible?"inherit":"hidden"}).add(),this.shapesGroup=t.g("annotation-shapes").add(this.graphic),this.options.crop&&this.shapesGroup.clip(this.chart.plotBoxClip),this.labelsGroup=t.g("annotation-labels").attr({translateX:0,translateY:0}).add(this.graphic),this.addClipPaths(),this.clipRect&&this.graphic.clip(this.clipRect),this.renderItems(this.shapes),this.renderItems(this.labels),this.addEvents(),this.renderControlPoints()}renderItem(t){t.render("label"===t.itemType?this.labelsGroup:this.shapesGroup)}renderItems(t){let i=t.length;for(;i--;)this.renderItem(t[i])}setClipAxes(){let t=this.chart.xAxis,i=this.chart.yAxis,e=(this.options.labels||[]).concat(this.options.shapes||[]).reduce((e,s)=>{let o=s&&(s.point||s.points&&s.points[0]);return[t[o&&o.xAxis]||e[0],i[o&&o.yAxis]||e[1]]},[]);this.clipXAxis=e[0],this.clipYAxis=e[1]}setControlPointsVisibility(t){let i=function(i){i.setControlPointsVisibility(t)};this.controlPoints.forEach(i=>{i.setVisibility(t)}),this.shapes.forEach(i),this.labels.forEach(i)}setLabelCollector(){let t=this;t.labelCollector=function(){return t.labels.reduce(function(t,i){return i.options.allowOverlap||t.push(i.graphic),t},[])},t.chart.labelCollectors.push(t.labelCollector)}setOptions(t){this.options=iP(this.defaultOptions,t)}setVisibility(t){let i=this.options,e=this.chart.navigationBindings,s=iO(t,!i.visible);if(this.graphic.attr("visibility",s?"inherit":"hidden"),!s){let t=function(t){t.setControlPointsVisibility(s)};this.shapes.forEach(t),this.labels.forEach(t),e.activeAnnotation===this&&e.popup&&"annotation-toolbar"===e.popup.type&&iE(e,"closePopup")}i.visible=s}update(t,i){let e=this.chart,s=iM(this.userOptions,t),o=e.annotations.indexOf(this),n=iP(!0,this.userOptions,t);n.labels=s.labels,n.shapes=s.shapes,this.destroy(),this.initProperties(e,n),this.init(e,n),e.options.annotations[o]=this.options,this.isUpdating=!0,iO(i,!0)&&e.drawAnnotations(),iE(this,"afterUpdate"),this.isUpdating=!1}}iT.ControlPoint=F,iT.MockPoint=j,iT.shapesMap={rect:tl,circle:tp,ellipse:tg,path:tr,image:tC},iT.types={},iT.prototype.defaultOptions={visible:!0,animation:{},crop:!0,draggable:"xy",labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"#000000",borderRadius:3,borderWidth:1,className:"highcharts-no-tooltip",crop:!1,formatter:function(){return O(this.y)?""+this.y:"Annotation label"},includeInDataExport:!0,overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"0.7em",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0,snap:2},controlPointOptions:{events:{},style:{cursor:"pointer",fill:"#ffffff",stroke:"#000000","stroke-width":2},height:10,symbol:"circle",visible:!1,width:10},events:{},zIndex:6},iT.prototype.nonDOMEvents=["add","afterUpdate","drag","remove"],q.compose(iT),function(t){t.compose=function(t){return t.navigation||(t.navigation=new i(t)),t};class i{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(e=>{e.call(this.chart,t,i)})}}t.Additions=i}(r||(r={}));let iN=r,{defined:iD,isNumber:iL,pick:iI}=u(),iS={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},iY={annotationsFieldsTypes:iS,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),e=i.min,s=i.max,o=iI(t.axis.minPointOffset,0);return iL(e)&&iL(s)&&t.value>=e-o&&t.value<=s+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,i){let e=iS[t],s=typeof i;return iD(e)&&(s=e),({string:"text",number:"number",boolean:"checkbox"})[s]}},{getAssignedAxis:iX}=iY,{isNumber:iF,merge:iR}=u(),iU={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis),o=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(iR({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:e.value,y:s.value,xAxis:e.axis.index,yAxis:s.axis.index},r:5}]},o.annotationsOptions,o.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let e;let s=i.options.shapes,o=s&&s[0]&&s[0].point||{};if(iF(o.xAxis)&&iF(o.yAxis)){let i=this.chart.inverted,s=this.chart.xAxis[o.xAxis].toPixels(o.x),n=this.chart.yAxis[o.yAxis].toPixels(o.y);e=Math.max(Math.sqrt(Math.pow(i?n-t.chartX:s-t.chartX,2)+Math.pow(i?s-t.chartY:n-t.chartY,2)),5)}i.update({shapes:[{r:e}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis),o=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(iR({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:e.axis.index,yAxis:s.axis.index,points:[{x:e.value,y:s.value},{x:e.value,y:s.value}],ry:1}]},o.annotationsOptions,o.bindings.ellipseAnnotation.annotationOptions))},steps:[function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[1]);e.translatePoint(t.chartX-s.x,t.chartY-s.y,1),e.redraw(!1)},function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[0]),o=e.getAbsolutePosition(e.points[1]),n=e.getDistanceFromLine(s,o,t.chartX,t.chartY),a=e.getYAxis(),r=Math.abs(a.toValue(0)-a.toValue(n));e.setYRadius(r),e.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis);if(!e||!s)return;let o=e.value,n=s.value,a=e.axis.index,r=s.axis.index,h=this.chart.options.navigation;return this.chart.addAnnotation(iR({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{xAxis:a,yAxis:r,x:o,y:n},{command:"Z"}]}]},h.annotationsOptions,h.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.options.shapes,s=e&&e[0]&&e[0].points||[],o=this.chart.pointer?.getCoordinates(t),n=o&&iX(o.xAxis),a=o&&iX(o.yAxis);if(n&&a){let t=n.value,e=a.value;s[1].x=t,s[2].x=t,s[2].y=e,s[3].y=e,i.update({shapes:[{points:s}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&iX(i.xAxis),s=i&&iX(i.yAxis),o=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(iR({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:e.axis.index,yAxis:s.axis.index,x:e.value,y:s.value}}]},o.annotationsOptions,o.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:iW}=u(),{format:iH}=tf(),{composed:iV,doc:ij,win:iq}=u(),{getAssignedAxis:iz,getFieldType:i_}=iY,{addEvent:iG,attr:iK,defined:iZ,fireEvent:i$,isArray:iJ,isFunction:iQ,isNumber:i0,isObject:i1,merge:i9,objectEach:i2,pick:i4,pushUnique:i5}=u();function i6(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function i7(){this.navigationBindings&&this.navigationBindings.destroy()}function i3(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new es(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function i8(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let e=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(e=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let s=this.navigationBindings.container[0];i2(t.boundClassNames,(t,o)=>{let n=s.querySelectorAll("."+o);if(n)for(let s=0;s=4||o.call(this,t)}})}class es{static compose(t,i){i5(iV,"NavigationBindings")&&(iG(t,"remove",i6),ee(t),i2(t.types,t=>{ee(t)}),iG(i,"destroy",i7),iG(i,"load",i3),iG(i,"render",i8),iG(es,"closePopup",et),iG(es,"deselectButton",ei),iW(iU))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=ij.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&iz(i.xAxis),i&&iz(i.yAxis)]}initEvents(){let t=this,i=t.chart,e=t.container,s=t.options;t.boundClassNames={},i2(s.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(e,i=>{t.eventsToUnbind.push(iG(i,"click",e=>{let s=t.getButtonEvents(i,e);s&&!s.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(s.button,s.events,e)}))}),i2(s.events||{},(i,e)=>{iQ(i)&&t.eventsToUnbind.push(iG(t,e,i,{passive:!1}))}),t.eventsToUnbind.push(iG(i.container,"click",function(e){!i.cancelClick&&i.isInsidePlot(e.chartX-i.plotLeft,e.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,e)})),t.eventsToUnbind.push(iG(i.container,u().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},u().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;iN.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,e){let s=this.chart,o=s.renderer.boxWrapper,n=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(n=!1),i$(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&s.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),n?(this.selectedButton=i,this.selectedButtonElement=t,i$(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,e),(i.start||i.steps)&&s.renderer.boxWrapper.addClass("highcharts-draw-mode")):(s.stockTools&&t.classList.remove("highcharts-active"),o.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let e=this.activeAnnotation,s=this.selectedButton,o=t.renderer.boxWrapper;e&&(e.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let e=iq.Element.prototype,s=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,o=null;if(e.closest)o=e.closest.call(t,i);else do{if(s.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return o}(i.target,".highcharts-popup")?e.cancelClick&&setTimeout(()=>{e.cancelClick=!1},0):i$(this,"closePopup")),s&&s.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,s.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]:(i$(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),s.end&&s.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=s.start.call(this,i),this.currentUserDetails&&s.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]):(i$(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,s.end&&s.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return i2(t,(t,e)=>{let s=parseFloat(t),o=e.split("."),n=o.length-1;if(!i0(s)||t.match(/px|em/g)||e.match(/format/g)||(t=s),"undefined"!==t){let e=i;o.forEach((i,s)=>{if("__proto__"!==i&&"constructor"!==i){let a=i4(o[s+1],"");n===s?e[i]=t:(e[i]||(e[i]=a.match(/\d/g)?[]:{}),e=e[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,e=es.annotationsEditable,s=e.nestedOptions,o=i4(i.type,i.shapes&&i.shapes[0]&&i.shapes[0].type,i.labels&&i.labels[0]&&i.labels[0].type,"label"),n=es.annotationsNonEditable[i.langKey]||[],a={langKey:i.langKey,type:o};function r(i,e,o,a,h){let l;o&&iZ(i)&&-1===n.indexOf(e)&&((o.indexOf&&o.indexOf(e))>=0||o[e]||!0===o)&&(iJ(i)?(a[e]=[],i.forEach((t,i)=>{i1(t)?(a[e][i]={},i2(t,(t,o)=>{r(t,o,s[e],a[e][i],e)})):r(t,0,s[e],a[e],e)})):i1(i)?(l={},iJ(a)?(a.push(l),l[e]={},l=l[e]):a[e]=l,i2(i,(t,i)=>{r(t,i,0===e?o:s[e],l,e)})):"format"===e?a[e]=[iH(i,t.labels[0].points[0]).toString(),"text"]:iJ(a)?a.push([i,i_(h,i)]):a[e]=[i,i_(e,i)])}return i2(i,(t,n)=>{"typeOptions"===n?(a[n]={},i2(i[n],(t,i)=>{r(t,i,s,a[n],i)})):r(t,n,e[o],a,n)}),a}getClickedClassNames(t,i){let e=i.target,s=[],o;for(;e&&e.tagName&&((o=iK(e,"class"))&&(s=s.concat(o.split(" ").map(t=>[t,e]))),(e=e.parentNode)!==t););return s}getButtonEvents(t,i){let e;let s=this;return this.getClickedClassNames(t,i).forEach(t=>{s.boundClassNames[t[0]]&&!e&&(e={events:s.boundClassNames[t[0]],button:t[1]})}),e}update(t){this.options=i9(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}es.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},es.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};let eo=u();eo.Annotation=eo.Annotation||iT,eo.NavigationBindings=eo.NavigationBindings||es,eo.Annotation.compose(eo.Chart,eo.NavigationBindings,eo.Pointer,eo.SVGRenderer);let en=u();return p.default})()); \ No newline at end of file diff --git a/modules/annotations.src.js b/modules/annotations.src.js index 37ee2fb24b..691480edbd 100644 --- a/modules/annotations.src.js +++ b/modules/annotations.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/annotations * @requires highcharts * @@ -5052,7 +5052,7 @@ function onNavigationBindingsShowPopup(config) { this.popup = new Popup_Popup(this.chart.container, (this.chart.options.navigation.iconsURL || (this.chart.options.stockTools && this.chart.options.stockTools.gui.iconsURL) || - 'https://code.highcharts.com/12.0.2/gfx/stock-icons/'), this.chart); + 'https://code.highcharts.com/12.1.0/gfx/stock-icons/'), this.chart); } this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit); } @@ -6234,7 +6234,7 @@ const navigation = { * from a different server. * * @type {string} - * @default https://code.highcharts.com/12.0.2/gfx/stock-icons/ + * @default https://code.highcharts.com/12.1.0/gfx/stock-icons/ * @since 7.1.3 * @apioption navigation.iconsURL */ diff --git a/modules/arc-diagram.js b/modules/arc-diagram.js index 32f68a0435..3b2b7514f8 100644 --- a/modules/arc-diagram.js +++ b/modules/arc-diagram.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module modules/arc-diagram * @requires highcharts/modules/sankey * @@ -8,4 +8,4 @@ * (c) 2021 Piotr Madej * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/arc-diagram",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Series,t.SVGRenderer,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/arc-diagram"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Series,t.Highcharts.SVGRenderer,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,o,s,i)=>(()=>{"use strict";var n,r,a={28:t=>{t.exports=i},540:t=>{t.exports=s},820:t=>{t.exports=o},512:t=>{t.exports=e},944:e=>{e.exports=t}},h={};function l(t){var e=h[t];if(void 0!==e)return e.exports;var o=h[t]={exports:{}};return a[t](o,o.exports,l),o.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var o in e)l.o(e,o)&&!l.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};l.d(d,{default:()=>tt});var p=l(944),c=/*#__PURE__*/l.n(p),u=l(512),f=/*#__PURE__*/l.n(u);let{series:{prototype:m,prototype:{pointClass:{prototype:g}}}}=f(),{defined:y,extend:x,find:k,merge:b,pick:S}=c();!function(t){function e(){return this.data=[].concat(this.points||[],this.nodes),m.destroy.apply(this,arguments)}function o(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),m.setData.apply(this,arguments)}function s(t){let e=arguments,o=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&o.forEach(t=>{t&&t.series&&(g.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&g.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&g.setState.apply(t.toNode,e)))}),g.setState.apply(this,e)}function i(t,e,o,s){let i=this.series.options.nodes,n=this.series.options.data,r=n?.length||0,a=n?.[this.index];if(g.update.call(this,t,!this.isNode&&e,o,s),this.isNode){let t=(i||[]).reduce((t,e,o)=>this.id===e.id?o:t,-1),s=b(i&&i[t]||{},n?.[this.index]||{});n&&(a?n[this.index]=a:n.length=r),i?t>=0?i[t]=s:i.push(s):this.series.options.nodes=[s],S(e,!0)&&this.series.chart.redraw(o)}}t.compose=function(t,n){let r=t.prototype,a=n.prototype;return r.setNodeState=s,r.setState=s,r.update=i,a.destroy=e,a.setData=o,n},t.createNode=function(t){let e=this.pointClass,o=(t,e)=>k(t,t=>t.id===e),s=o(this.nodes,t),i;if(!s){i=this.options.nodes&&o(this.options.nodes,t);let n=new e(this,x({className:"highcharts-node",isNode:!0,id:t,y:1},i));n.linksTo=[],n.linksFrom=[],n.getSum=function(){let t=0,e=0;return n.linksTo.forEach(e=>{t+=e.weight||0}),n.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},n.offset=function(t,e){let o=0;for(let s=0;s{e.outgoing&&t++}),!n.linksTo.length||t!==n.linksTo.length},n.index=this.nodes.push(n)-1,s=n}return s.formatPrefix="node",s.name=s.name||s.options.id||"",s.mass=S(s.options.mass,s.options.marker&&s.options.marker.radius,this.options.marker&&this.options.marker.radius,4),s},t.destroy=e,t.generatePoints=function(){let t=this.chart,e={};m.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(o=>{y(o.from)&&(e[o.from]||(e[o.from]=this.createNode(o.from)),e[o.from].linksFrom.push(o),o.fromNode=e[o.from],t.styledMode?o.colorIndex=S(o.options.colorIndex,e[o.from].colorIndex):o.color=o.options.color||e[o.from].color),y(o.to)&&(e[o.to]||(e[o.to]=this.createNode(o.to)),e[o.to].linksTo.push(o),o.toNode=e[o.to]),o.name=o.name||o.id},this),this.nodeLookup=e},t.setNodeState=s,t.updateNode=i}(n||(n={}));let L=n,{seriesTypes:{sankey:{prototype:{pointClass:P}}}}=f(),{extend:N}=c();class v extends P{isValid(){return!0}}N(v.prototype,{setState:L.setNodeState});let{defined:T,getAlignFactor:C,relativeLength:M}=c();!function(t){t.compose=function(t,o){return t.sankeyColumn=new e(t,o),t};class e{constructor(t,e){this.points=t,this.series=e}getTranslationFactor(t){let e=this.points,o=e.slice(),s=t.chart,i=t.options.minLinkWidth||0,n,r=0,a,h=(s.plotSizeY||0)-(t.options.borderWidth||0)-(e.length-1)*t.nodePadding;for(;e.length;){for(r=h/e.sankeyColumn.sum(),n=!1,a=e.length;a--;)e[a].getSum()*r(s>0&&(s+=o),s+=Math.max(i.getSum()*t,e.options.minLinkWidth||0)),0);return C(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-s)}left(t){let e=this.series,o=e.chart,s=e.options.equalNodes,i=o.inverted?o.plotHeight:o.plotWidth,n=e.nodePadding,r=this.points.reduce((o,r)=>(o>0&&(o+=n),o+=s?i/r.series.nodes.length-n:Math.max(r.getSum()*t,e.options.minLinkWidth||0)),0);return((o.plotSizeX||0)-Math.round(r))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let o=this.points,s=this.series,i=s.nodePadding,n=0,r;if(s.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let a=0;a{if(t&&r){let i=t.attr("id");i||t.attr("id",i=_());let r={x:0,y:0};X(n.dx)&&(r.dx=n.dx,delete n.dx),X(n.dy)&&(r.dy=n.dy,delete n.dy),s.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let a=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:B(n,{"text-anchor":n.textAnchor,href:`${o}#${i}`}),children:a}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function D(t){let e=t.bBox,o=this.element?.querySelector("textPath");if(o){let t=[],{b:s,h:i}=this.renderer.fontMetrics(this.element),n=i-s,r=RegExp('(|]*>|<\\/tspan>)',"g"),a=o.innerHTML.replace(r,"").split(/]*>/),h=a.length,l=(t,e)=>{let{x:i,y:r}=e,a=(o.getRotationOfChar(t)-90)*R,h=Math.cos(a),l=Math.sin(a);return[[i-n*h,r-n*l],[i+s*h,r+s*l]]};for(let e=0,s=0;s{let s=o.slice(),i=this.options.minLinkWidth||0,n,r=0,a,h,l=0,d=1,p=0,c=(e.plotSizeX||0)-(t.options.marker&&t.options.marker.lineWidth||0)-(o.length-1)*t.nodePadding;for(;o.length;){for(r=c/o.sankeyColumn.sum(),n=!1,a=o.length;a--;){h=o[a].getSum()*r*d;let t=Math.min(e.plotHeight,e.plotWidth);h>t?d=Math.min(t/h,d):h{t.scale=d,o.push(t)}),o.sankeyColumn.maxRadius=l,o.sankeyColumn.scale=d,o.sankeyColumn.additionalSpace=p,r},o.sankeyColumn.offset=function(s,i){let n=s.series.options.equalNodes,r=t.nodePadding,a=Math.min(e.plotWidth,e.plotHeight,(o.sankeyColumn.maxLength||0)/t.nodes.length-r),h=o.sankeyColumn.additionalSpace||0,l;for(let e=0;e{let s=(e.offset(t,o)||0)*i;return Math.min(e.nodeX+s,e.nodeX+(e.shapeArgs&&e.shapeArgs.height||0)-a)},p=h?e.nodeX+((e.shapeArgs.height||0)-a)/2:d(e,"linksFrom"),c=h?o.nodeX+((o.shapeArgs.height||0)-a)/2:d(o,"linksTo"),u=l;p>c&&([p,c]=[c,p]),r.reversed&&([p,c]=[c,p],u=(s.plotSizeY||0)-u),t.shapeType="path",t.linkBase=[p,p+a,c,c+a];let f=(c+a-p)/Math.abs(c+a-p)*K(r.linkRadius,Math.min(Math.abs(c+a-p)/2,e.nodeY-Math.abs(a)));t.shapeArgs={d:[["M",p,u],["A",(c+a-p)/2,f,0,0,1,c+a,u],["L",c,u],["A",(c-p-a)/2,f-a,0,0,0,p+a,u],["Z"]]},t.dlBox={x:p+(c-p)/2,y:u-f,height:a,width:0},t.tooltipPos=s.inverted?[(s.plotSizeY||0)-t.dlBox.y-a/2,(s.plotSizeX||0)-t.dlBox.x]:[t.dlBox.x,t.dlBox.y+a/2],t.y=t.plotY=1,t.x=t.plotX=1,t.color||(t.color=e.color)}translateNode(t,e){let o=this.translationFactor,s=this.chart,i=s.inverted?s.plotWidth:s.plotHeight,n=this.options,r=Math.min(s.plotWidth,s.plotHeight,i/t.series.nodes.length-this.nodePadding),a=t.getSum()*(e.sankeyColumn.scale||0),h=n.equalNodes?r:Math.max(a*o,this.options.minLinkWidth||0),l=n.marker?.lineWidth||0,d=e.sankeyColumn.offset(t,o),p=$(K(d&&d.absoluteLeft,(e.sankeyColumn.left(o)||0)+(d&&d.relativeLeft||0)),l),c=J(n.marker,t.options.marker),u=c.symbol,f=c.radius,m=parseInt(n.offset,10)*((s.inverted?s.plotWidth:s.plotHeight)-($(this.colDistance*(t.column||0)+(c.lineWidth||0)/2,l)+(e.sankeyColumn.scale||0)*(e.sankeyColumn.maxRadius||0)/2))/100;if(t.sum=a,a){t.nodeX=p,t.nodeY=m;let e=t.options.width||n.width||h,o=t.options.height||n.height||h,i=m;n.reversed&&(i=(s.plotSizeY||0)-m,s.inverted&&(i=(s.plotSizeY||0)-m)),this.mapOptionsToLevel&&(t.dlOptions=I.getDLOptions({level:this.mapOptionsToLevel[t.level],optionsPoint:t.options})),t.plotX=1,t.plotY=1,t.tooltipPos=s.inverted?[(s.plotSizeY||0)-i-o/2,(s.plotSizeX||0)-p-e/2]:[p+e/2,i+o/2],t.shapeType="path",t.shapeArgs={d:j[u||"circle"](p,i-(f||o)/2,f||e,f||o),width:f||e,height:f||o},t.dlBox={x:p+e/2,y:i,height:0,width:0}}else t.dlOptions={enabled:!1}}drawDataLabels(){if(this.options.dataLabels){let t=this.options.dataLabels.textPath;q.prototype.drawDataLabels.call(this,this.nodes),this.options.dataLabels.textPath=this.options.dataLabels.linkTextPath,q.prototype.drawDataLabels.call(this,this.data),this.options.dataLabels.textPath=t}}pointAttribs(t,e){if(t&&t.isNode){let{...t}=w().prototype.pointAttribs.apply(this,arguments);return t}return super.pointAttribs.apply(this,arguments)}markerAttribs(t){return t.isNode?super.markerAttribs.apply(this,arguments):{}}}U.defaultOptions=J(I.defaultOptions,{centeredLinks:!1,equalNodes:!1,dataLabels:{linkTextPath:{attributes:{startOffset:"25%"}}},marker:{fillOpacity:1,lineWidth:0,states:{},symbol:"circle"},offset:"100%",reversed:!1}),Z(U.prototype,{orderNodes:!1}),U.prototype.pointClass=v,f().registerSeriesType("arcdiagram",U);let tt=c();return d.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/arc-diagram",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Series,t.SVGRenderer,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/arc-diagram"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Series,t.Highcharts.SVGRenderer,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,o,s,i)=>(()=>{"use strict";var n,r,a={28:t=>{t.exports=i},540:t=>{t.exports=s},820:t=>{t.exports=o},512:t=>{t.exports=e},944:e=>{e.exports=t}},h={};function l(t){var e=h[t];if(void 0!==e)return e.exports;var o=h[t]={exports:{}};return a[t](o,o.exports,l),o.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var o in e)l.o(e,o)&&!l.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};l.d(d,{default:()=>tt});var p=l(944),c=l.n(p),u=l(512),f=l.n(u);let{series:{prototype:m,prototype:{pointClass:{prototype:g}}}}=f(),{defined:y,extend:x,find:k,merge:b,pick:S}=c();!function(t){function e(){return this.data=[].concat(this.points||[],this.nodes),m.destroy.apply(this,arguments)}function o(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),m.setData.apply(this,arguments)}function s(t){let e=arguments,o=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&o.forEach(t=>{t&&t.series&&(g.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&g.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&g.setState.apply(t.toNode,e)))}),g.setState.apply(this,e)}function i(t,e,o,s){let i=this.series.options.nodes,n=this.series.options.data,r=n?.length||0,a=n?.[this.index];if(g.update.call(this,t,!this.isNode&&e,o,s),this.isNode){let t=(i||[]).reduce((t,e,o)=>this.id===e.id?o:t,-1),s=b(i&&i[t]||{},n?.[this.index]||{});n&&(a?n[this.index]=a:n.length=r),i?t>=0?i[t]=s:i.push(s):this.series.options.nodes=[s],S(e,!0)&&this.series.chart.redraw(o)}}t.compose=function(t,n){let r=t.prototype,a=n.prototype;return r.setNodeState=s,r.setState=s,r.update=i,a.destroy=e,a.setData=o,n},t.createNode=function(t){let e=this.pointClass,o=(t,e)=>k(t,t=>t.id===e),s=o(this.nodes,t),i;if(!s){i=this.options.nodes&&o(this.options.nodes,t);let n=new e(this,x({className:"highcharts-node",isNode:!0,id:t,y:1},i));n.linksTo=[],n.linksFrom=[],n.getSum=function(){let t=0,e=0;return n.linksTo.forEach(e=>{t+=e.weight||0}),n.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},n.offset=function(t,e){let o=0;for(let s=0;s{e.outgoing&&t++}),!n.linksTo.length||t!==n.linksTo.length},n.index=this.nodes.push(n)-1,s=n}return s.formatPrefix="node",s.name=s.name||s.options.id||"",s.mass=S(s.options.mass,s.options.marker&&s.options.marker.radius,this.options.marker&&this.options.marker.radius,4),s},t.destroy=e,t.generatePoints=function(){let t=this.chart,e={};m.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(o=>{y(o.from)&&(e[o.from]||(e[o.from]=this.createNode(o.from)),e[o.from].linksFrom.push(o),o.fromNode=e[o.from],t.styledMode?o.colorIndex=S(o.options.colorIndex,e[o.from].colorIndex):o.color=o.options.color||e[o.from].color),y(o.to)&&(e[o.to]||(e[o.to]=this.createNode(o.to)),e[o.to].linksTo.push(o),o.toNode=e[o.to]),o.name=o.name||o.id},this),this.nodeLookup=e},t.setNodeState=s,t.updateNode=i}(n||(n={}));let L=n,{seriesTypes:{sankey:{prototype:{pointClass:P}}}}=f(),{extend:N}=c();class v extends P{isValid(){return!0}}N(v.prototype,{setState:L.setNodeState});let{defined:T,getAlignFactor:C,relativeLength:M}=c();!function(t){t.compose=function(t,o){return t.sankeyColumn=new e(t,o),t};class e{constructor(t,e){this.points=t,this.series=e}getTranslationFactor(t){let e=this.points,o=e.slice(),s=t.chart,i=t.options.minLinkWidth||0,n,r=0,a,h=(s.plotSizeY||0)-(t.options.borderWidth||0)-(e.length-1)*t.nodePadding;for(;e.length;){for(r=h/e.sankeyColumn.sum(),n=!1,a=e.length;a--;)e[a].getSum()*r(s>0&&(s+=o),s+=Math.max(i.getSum()*t,e.options.minLinkWidth||0)),0);return C(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-s)}left(t){let e=this.series,o=e.chart,s=e.options.equalNodes,i=o.inverted?o.plotHeight:o.plotWidth,n=e.nodePadding,r=this.points.reduce((o,r)=>(o>0&&(o+=n),o+=s?i/r.series.nodes.length-n:Math.max(r.getSum()*t,e.options.minLinkWidth||0)),0);return((o.plotSizeX||0)-Math.round(r))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let o=this.points,s=this.series,i=s.nodePadding,n=0,r;if(s.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let a=0;a{if(t&&r){let i=t.attr("id");i||t.attr("id",i=_());let r={x:0,y:0};X(n.dx)&&(r.dx=n.dx,delete n.dx),X(n.dy)&&(r.dy=n.dy,delete n.dy),s.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let a=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:B(n,{"text-anchor":n.textAnchor,href:`${o}#${i}`}),children:a}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function D(t){let e=t.bBox,o=this.element?.querySelector("textPath");if(o){let t=[],{b:s,h:i}=this.renderer.fontMetrics(this.element),n=i-s,r=RegExp('(|]*>|<\\/tspan>)',"g"),a=o.innerHTML.replace(r,"").split(/]*>/),h=a.length,l=(t,e)=>{let{x:i,y:r}=e,a=(o.getRotationOfChar(t)-90)*R,h=Math.cos(a),l=Math.sin(a);return[[i-n*h,r-n*l],[i+s*h,r+s*l]]};for(let e=0,s=0;s{let s=o.slice(),i=this.options.minLinkWidth||0,n,r=0,a,h,l=0,d=1,p=0,c=(e.plotSizeX||0)-(t.options.marker&&t.options.marker.lineWidth||0)-(o.length-1)*t.nodePadding;for(;o.length;){for(r=c/o.sankeyColumn.sum(),n=!1,a=o.length;a--;){h=o[a].getSum()*r*d;let t=Math.min(e.plotHeight,e.plotWidth);h>t?d=Math.min(t/h,d):h{t.scale=d,o.push(t)}),o.sankeyColumn.maxRadius=l,o.sankeyColumn.scale=d,o.sankeyColumn.additionalSpace=p,r},o.sankeyColumn.offset=function(s,i){let n=s.series.options.equalNodes,r=t.nodePadding,a=Math.min(e.plotWidth,e.plotHeight,(o.sankeyColumn.maxLength||0)/t.nodes.length-r),h=o.sankeyColumn.additionalSpace||0,l;for(let e=0;e{let s=(e.offset(t,o)||0)*i;return Math.min(e.nodeX+s,e.nodeX+(e.shapeArgs&&e.shapeArgs.height||0)-a)},p=h?e.nodeX+((e.shapeArgs.height||0)-a)/2:d(e,"linksFrom"),c=h?o.nodeX+((o.shapeArgs.height||0)-a)/2:d(o,"linksTo"),u=l;p>c&&([p,c]=[c,p]),r.reversed&&([p,c]=[c,p],u=(s.plotSizeY||0)-u),t.shapeType="path",t.linkBase=[p,p+a,c,c+a];let f=(c+a-p)/Math.abs(c+a-p)*K(r.linkRadius,Math.min(Math.abs(c+a-p)/2,e.nodeY-Math.abs(a)));t.shapeArgs={d:[["M",p,u],["A",(c+a-p)/2,f,0,0,1,c+a,u],["L",c,u],["A",(c-p-a)/2,f-a,0,0,0,p+a,u],["Z"]]},t.dlBox={x:p+(c-p)/2,y:u-f,height:a,width:0},t.tooltipPos=s.inverted?[(s.plotSizeY||0)-t.dlBox.y-a/2,(s.plotSizeX||0)-t.dlBox.x]:[t.dlBox.x,t.dlBox.y+a/2],t.y=t.plotY=1,t.x=t.plotX=1,t.color||(t.color=e.color)}translateNode(t,e){let o=this.translationFactor,s=this.chart,i=s.inverted?s.plotWidth:s.plotHeight,n=this.options,r=Math.min(s.plotWidth,s.plotHeight,i/t.series.nodes.length-this.nodePadding),a=t.getSum()*(e.sankeyColumn.scale||0),h=n.equalNodes?r:Math.max(a*o,this.options.minLinkWidth||0),l=n.marker?.lineWidth||0,d=e.sankeyColumn.offset(t,o),p=$(K(d&&d.absoluteLeft,(e.sankeyColumn.left(o)||0)+(d&&d.relativeLeft||0)),l),c=J(n.marker,t.options.marker),u=c.symbol,f=c.radius,m=parseInt(n.offset,10)*((s.inverted?s.plotWidth:s.plotHeight)-($(this.colDistance*(t.column||0)+(c.lineWidth||0)/2,l)+(e.sankeyColumn.scale||0)*(e.sankeyColumn.maxRadius||0)/2))/100;if(t.sum=a,a){t.nodeX=p,t.nodeY=m;let e=t.options.width||n.width||h,o=t.options.height||n.height||h,i=m;n.reversed&&(i=(s.plotSizeY||0)-m,s.inverted&&(i=(s.plotSizeY||0)-m)),this.mapOptionsToLevel&&(t.dlOptions=I.getDLOptions({level:this.mapOptionsToLevel[t.level],optionsPoint:t.options})),t.plotX=1,t.plotY=1,t.tooltipPos=s.inverted?[(s.plotSizeY||0)-i-o/2,(s.plotSizeX||0)-p-e/2]:[p+e/2,i+o/2],t.shapeType="path",t.shapeArgs={d:j[u||"circle"](p,i-(f||o)/2,f||e,f||o),width:f||e,height:f||o},t.dlBox={x:p+e/2,y:i,height:0,width:0}}else t.dlOptions={enabled:!1}}drawDataLabels(){if(this.options.dataLabels){let t=this.options.dataLabels.textPath;q.prototype.drawDataLabels.call(this,this.nodes),this.options.dataLabels.textPath=this.options.dataLabels.linkTextPath,q.prototype.drawDataLabels.call(this,this.data),this.options.dataLabels.textPath=t}}pointAttribs(t,e){if(t&&t.isNode){let{...t}=w().prototype.pointAttribs.apply(this,arguments);return t}return super.pointAttribs.apply(this,arguments)}markerAttribs(t){return t.isNode?super.markerAttribs.apply(this,arguments):{}}}U.defaultOptions=J(I.defaultOptions,{centeredLinks:!1,equalNodes:!1,dataLabels:{linkTextPath:{attributes:{startOffset:"25%"}}},marker:{fillOpacity:1,lineWidth:0,states:{},symbol:"circle"},offset:"100%",reversed:!1}),Z(U.prototype,{orderNodes:!1}),U.prototype.pointClass=v,f().registerSeriesType("arcdiagram",U);let tt=c();return d.default})()); \ No newline at end of file diff --git a/modules/arc-diagram.src.js b/modules/arc-diagram.src.js index 4fd078cbed..a6ed6252e0 100644 --- a/modules/arc-diagram.src.js +++ b/modules/arc-diagram.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module modules/arc-diagram * @requires highcharts/modules/sankey * diff --git a/modules/arrow-symbols.js b/modules/arrow-symbols.js index 2f3fa0cc38..d74cda001a 100644 --- a/modules/arrow-symbols.js +++ b/modules/arrow-symbols.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/arrow-symbols * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2017-2024 Lars A. V. Cabrera * * License: www.highcharts.com/license - */function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/arrow-symbols",["highcharts/highcharts"],function(e){return r(e)}):"object"==typeof exports?exports["highcharts/modules/arrow-symbols"]=r(e._Highcharts):e.Highcharts=r(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var r={944:r=>{r.exports=e}},t={};function o(e){var n=t[e];if(void 0!==n)return n.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var n={};o.d(n,{default:()=>c});var a=o(944),i=/*#__PURE__*/o.n(a);function s(e,r,t,o){return[["M",e,r+o/2],["L",e+t,r],["L",e,r+o/2],["L",e+t,r+o]]}function f(e,r,t,o){return s(e,r,t/2,o)}function u(e,r,t,o){return[["M",e+t,r],["L",e,r+o/2],["L",e+t,r+o],["Z"]]}function l(e,r,t,o){return u(e,r,t/2,o)}({compose:function(e){let r=e.prototype.symbols;r.arrow=s,r["arrow-filled"]=u,r["arrow-filled-half"]=l,r["arrow-half"]=f,r["triangle-left"]=u,r["triangle-left-half"]=l}}).compose(i().SVGRenderer);let c=i();return n.default})()); \ No newline at end of file + */function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/arrow-symbols",["highcharts/highcharts"],function(e){return r(e)}):"object"==typeof exports?exports["highcharts/modules/arrow-symbols"]=r(e._Highcharts):e.Highcharts=r(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var r={944:r=>{r.exports=e}},t={};function o(e){var n=t[e];if(void 0!==n)return n.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var n={};o.d(n,{default:()=>c});var a=o(944),i=o.n(a);function s(e,r,t,o){return[["M",e,r+o/2],["L",e+t,r],["L",e,r+o/2],["L",e+t,r+o]]}function f(e,r,t,o){return s(e,r,t/2,o)}function u(e,r,t,o){return[["M",e+t,r],["L",e,r+o/2],["L",e+t,r+o],["Z"]]}function l(e,r,t,o){return u(e,r,t/2,o)}({compose:function(e){let r=e.prototype.symbols;r.arrow=s,r["arrow-filled"]=u,r["arrow-filled-half"]=l,r["arrow-half"]=f,r["triangle-left"]=u,r["triangle-left-half"]=l}}).compose(i().SVGRenderer);let c=i();return n.default})()); \ No newline at end of file diff --git a/modules/arrow-symbols.src.js b/modules/arrow-symbols.src.js index 3d74b6ffdd..e390f00a02 100644 --- a/modules/arrow-symbols.src.js +++ b/modules/arrow-symbols.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/arrow-symbols * @requires highcharts * diff --git a/modules/boost-canvas.js b/modules/boost-canvas.js index d4e54534ca..0d87410ef3 100644 --- a/modules/boost-canvas.js +++ b/modules/boost-canvas.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/boost-canvas * @requires highcharts * @@ -9,4 +9,4 @@ * Author: Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost-canvas",["highcharts/highcharts"],function(t){return e(t,t.Color)}):"object"==typeof exports?exports["highcharts/modules/boost-canvas"]=e(t._Highcharts,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";let i,s;var o,r={620:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return r[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};a.d(l,{default:()=>tD});var h=a(944),d=/*#__PURE__*/a.n(h);let c=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],g={};c.forEach(t=>{g[t]=!0});let{composed:u}=d(),{addEvent:m,pick:p,pushUnique:f}=d();function b(t){let e=t.series,i=t.boost=t.boost||{},s=t.options.boost||{},o=p(s.seriesThreshold,50);if(e.length>=o)return!0;if(1===e.length)return!1;let r=s.allowForce;if(void 0===r){for(let e of(r=!0,t.xAxis))if(p(e.min,-1/0)>p(e.dataMin,-1/0)||p(e.max,1/0){if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(t.getColumn("x",!0),l.data,t.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=r&&(n===e.length&&a===n||a>5),i.forceChartBoost}function x(t){function e(){t.boost&&t.boost.wgl&&b(t)&&t.boost.wgl.render(t)}m(t,"predraw",function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.axes.some(t=>t.isPanning)||t.boost.clear?.(),t.boost.canvas&&t.boost.wgl&&b(t)&&t.boost.wgl.allocateBuffer(t),t.boost.markerGroup&&t.xAxis&&t.xAxis.length>0&&t.yAxis&&t.yAxis.length>0&&t.boost.markerGroup.translate(t.xAxis[0].pos,t.yAxis[0].pos)}),m(t,"load",e,{order:-1}),m(t,"redraw",e);let i=-1,s=-1;m(t.pointer,"afterGetHoverData",e=>{let o=e.hoverPoint?.series;if(t.boost=t.boost||{},t.boost.markerGroup&&o){let e=t.inverted?o.yAxis:o.xAxis,r=t.inverted?o.xAxis:o.yAxis;(e&&e.pos!==i||r&&r.pos!==s)&&(t.series.forEach(t=>{t.halo?.hide()}),t.boost.markerGroup.translate(e.pos,r.pos),i=e.pos,s=r.pos)}})}let A={compose:function(t,e){return e&&f(u,"Boost.Chart")&&t.prototype.callbacks.push(x),t},getBoostClipRect:function(t,e){let i=t.navigator,s={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.plotHeight};if(i&&t.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!t.inverted&&(s.height=i.top+i.height-t.plotTop),e.getClipBox){let{xAxis:i,yAxis:o}=e;if(s=e.getClipBox(),t.inverted){let t=s.width;s.width=s.height,s.height=t,s.x=o.pos,s.y=i.pos}else s.x=i.pos,s.y=o.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(s.y=Math.min(e[0].pos,s.y),s.height=e[0].pos-t.plotTop+e[0].len)}return s},isChartSeriesBoosting:b};var v=a(620),y=/*#__PURE__*/a.n(v);let P={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:T,error:C,pick:S}=d(),E=class{constructor(t){if(this.errors=[],this.uLocations={},this.gl=t,t&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let t=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),e=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=t=>this.gl.getUniformLocation(this.shaderProgram,t);return t&&e?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,t),this.gl.attachShader(this.shaderProgram,e),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&C("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(t,e){let i=this.gl.createShader("vertex"===e?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+e+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(t,e,i,s=1){let o=t.options,r=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let a=t.getPxExtremes();r=S(o.zMin,T(e,!1===o.displayNegative?o.zThreshold:-Number.MAX_VALUE,r)),n=S(o.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==t.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,t.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*s),this.setUniform("bubbleMaxSize",a.maxPxSize*s),this.setUniform("bubbleZMin",r),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",t.options.zThreshold)}}setColor(t){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,t[0]/255,t[1]/255,t[2]/255,t[3])}setDrawAsCircle(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,t?1:0)}setInverted(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,t)}setPMatrix(t){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,t)}setPointSize(t){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,t)}setSkipTranslation(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,!0===t?1:0)}setTexture(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,t)}setUniform(t,e){if(this.gl&&this.shaderProgram){let i=this.uLocations[t]=this.uLocations[t]||this.gl.getUniformLocation(this.shaderProgram,t);this.gl.uniform1f(i,e)}}},M=class{constructor(t,e,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=t,this.shader=e}allocate(t){this.iterator=-1,this.preAllocated=new Float32Array(4*t)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(t,e,i){let s;return(this.data=t||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(s=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||s,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),e),this.gl.enableVertexAttribArray(this.vertAttribute),s=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(t,e,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(t,e,i){let s=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!s&&((!t||t>s||t<0)&&(t=0),(!e||e>s)&&(e=s),!(t>=e)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],t/this.components,(e-t)/this.components),!0))}},{parse:k}=y(),{doc:R,win:U}=d(),{isNumber:w,isObject:L,merge:N,objectEach:_,pick:z}=d(),D={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},G={scatter:!0,bubble:!0},I=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class B{static orthoMatrix(t,e){return[2/t,0,0,0,0,-(2/e),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(t){let e,i,s;return t.boosted?(e=!!t.options.stacking,i=(t.getColumn("x").length?t.getColumn("x"):void 0)||t.options.xData||t.getColumn("x",!0),s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:D[t.type]&&(s*=2),s):0}constructor(t){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=t,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||U.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),N(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=B.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=B.seriesPointCount(t)),e&&e.allocate(i))}clear(){let t=this.gl;t&&t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}pushSeriesData(t,e){let i=this.data,s=this.settings,o=this.vbuffer,r=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=t,c=!!a.stacking,g=a.data,u=t.xAxis.getExtremes(),m=u.min-(t.xAxis.minPointOffset||0),p=u.max+(t.xAxis.minPointOffset||0),f=t.yAxis.getExtremes(),b=f.min-(t.yAxis.minPointOffset||0),x=f.max+(t.yAxis.minPointOffset||0),A=(t.getColumn("x").length?t.getColumn("x"):void 0)||a.xData||t.getColumn("x",!0),v=(t.getColumn("y").length?t.getColumn("y"):void 0)||a.yData||t.getColumn("y",!0),y=(t.getColumn("z").length?t.getColumn("z"):void 0)||a.zData||t.getColumn("z",!0),P=!A||0===A.length,T=a.connectNulls,C=t.points||!1,S=c?t.data:A||g,E={x:Number.MAX_VALUE,y:0},M={x:-Number.MAX_VALUE,y:0},R=void 0===n.index,U=D[t.type],w=a.zoneAxis||"y",N=a.zones||!1,_=a.threshold,z=this.getPixelRatio(),G=t.chart.plotWidth,I=!1,B=!1,O,V,X=0,F=!1,H,Y,W,K,j=-1,Z=!1,q=!1,Q,J=!1,$=!1,tt=!1,te=!1,ti=!0,ts=!0,to,tr=!1,tn=!1,ta=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(tn="value"!==a.gapUnit?a.gapSize*t.closestPointRange:a.gapSize),N&&(to=[],N.forEach((t,e)=>{if(t.color){let i=k(t.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,to[e]=i,tr||void 0!==t.value||(tr=i)}}),tr||(tr=k(t.pointAttribs&&t.pointAttribs().fill||t.color).rgba,tr[0]/=255,tr[1]/=255,tr[2]/=255)),n.inverted&&(G=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let tl=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},th=(t,r,n,a=1,l)=>{tl(l),1!==z&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=z,r*=z,a*=z),s.usePreallocated&&o?(o.push(t,r,n?1:0,a),ta+=4):(i.push(t),i.push(r),i.push(n?z:0),i.push(a))},td=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||ta)},tc=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||ta)||(td(),e.segments.push({from:i.length||ta}))},tg=(t,e,i,s,o)=>{tl(o),th(t+i,e),tl(o),th(t,e),tl(o),th(t,e+s),tl(o),th(t,e+s),tl(o),th(t+i,e+s),tl(o),th(t+i,e)};if(tc(),C&&C.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",C[0].node&&C[0].node.levelDynamic&&C.sort((t,e)=>{if(t.node){if(t.node.levelDynamic>e.node.levelDynamic)return 1;if(t.node.levelDynamic{let i,s;let o=e.plotY;if(void 0!==o&&!isNaN(o)&&null!==e.y&&e.shapeArgs){let{x:o=0,y:r=0,width:a=0,height:l=0}=e.shapeArgs;i=(s=n.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,tt=k(s.fill).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255,t.is("treemap")&&(i=i||1,V=k(s.stroke).rgba,V[0]/=255,V[1]/=255,V[2]/=255,tg(o,r,a,l,V),i/=2),t.is("heatmap")&&n.inverted&&(o=h.len-o,r=d.len-r,a=-a,l=-l),tg(o+i,r+i,a-2*i,l-2*i,tt)}}),td();return}for(;j=3&&(K=W[2],W[2]>e.zMax&&(e.zMax=W[2]),W[2]e.zMax&&(e.zMax=y[j]),y[j]=m&&q<=p&&(J=!0),Z&&Z>=m&&Z<=p&&($=!0),r?(P&&(Y=W.slice(1,3)),Q=t.getColumn("low",!0)?.[j],Y=t.getColumn("high",!0)?.[j]||0):c&&(H=W.x,Q=(Y=W.stackY)-W.y),null!=b&&null!=x&&(ti=Y>=b&&Y<=x),(l||ti)&&(H>p&&M.xm&&(E.x=H,E.y=Y),null!==Y||!T)){if(null===Y||!ti&&!J&&!$){tc();continue}if((l&&(q>=m||H>=m)&&(Z<=p||H<=p)||!l&&H>=m&&H<=p)&&(te=!0),te||J||$){if(tn&&H-Z>tn&&tc(),N){let t;N.some((e,i)=>{let s=N[i-1];return"x"===w?void 0!==e.value&&H<=e.value&&(to[i]&&(!s||H>=s.value)&&(t=to[i]),!0):void 0!==e.value&&Y<=e.value&&(to[i]&&(!s||Y>=s.value)&&(t=to[i]),!0)}),tt=t||tr||tt}if(s.useGPUTranslations||(e.skipTranslation=!0,H=h.toPixels(H,!0),Y=d.toPixels(Y,!0),!(H>G)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&te&&!1!==I&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(H-I))),!s.useGPUTranslations&&!s.usePreallocated&&I&&1>Math.abs(H-I)&&B&&1>Math.abs(Y-B)){s.debug.showSkipSummary&&++X;continue}U&&(O=Q||0,(!1===Q||void 0===Q)&&(O=Y<0?Y:0),(r||c)&&!d.logarithmic||(O=Math.max(null===_?b:_,b)),s.useGPUTranslations||(O=d.toPixels(O,!0)),th(H,O,0,0,tt)),a.step&&!ts&&th(H,B,0,2,tt),th(H,Y,0,"bubble"===t.type?K||1:2,tt),I=H,B=Y,F=!0,ts=!1}}}}s.debug.showSkipSummary&&console.log("skipped points:",X);let tu=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=h.toPixels(t.x,!0),t.y=d.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}th(t.x,t.y,0,2)};!F&&!1!==T&&"line_strip"===t.drawMode&&(E.x-Number.MAX_VALUE&&tu(M)),td()}pushSeries(t){let e=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),s.debug.timeSeriesProcessing&&console.time("building "+t.type+" series");let o={segments:[],markerFrom:e.length,colorData:[],series:t,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!t.options.marker&&!1!==t.options.marker.enabled,showMarkers:!0,drawMode:P[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(o):i[t.index]=o,this.pushSeriesData(t,o),s.debug.timeSeriesProcessing&&console.timeEnd("building "+t.type+" series")}flush(){let t=this.vbuffer;this.data=[],this.markerData=[],this.series=[],t&&t.destroy()}setXAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("xAxisTrans",t.transA*i),e.setUniform("xAxisMin",t.min),e.setUniform("xAxisMinPad",t.minPixelPadding*i),e.setUniform("xAxisPointRange",t.pointRange),e.setUniform("xAxisLen",t.len*i),e.setUniform("xAxisPos",t.pos*i),e.setUniform("xAxisCVSCoord",!t.horiz),e.setUniform("xAxisIsLog",!!t.logarithmic),e.setUniform("xAxisReversed",!!t.reversed)}setYAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("yAxisTrans",t.transA*i),e.setUniform("yAxisMin",t.min),e.setUniform("yAxisMinPad",t.minPixelPadding*i),e.setUniform("yAxisPointRange",t.pointRange),e.setUniform("yAxisLen",t.len*i),e.setUniform("yAxisPos",t.pos*i),e.setUniform("yAxisCVSCoord",!t.horiz),e.setUniform("yAxisIsLog",!!t.logarithmic),e.setUniform("yAxisReversed",!!t.reversed)}setThreshold(t,e){let i=this.shader;i&&(i.setUniform("hasThreshold",t),i.setUniform("translatedThreshold",e))}renderChart(t){let e=this.gl,i=this.settings,s=this.shader,o=this.vbuffer,r=this.getPixelRatio();if(!t)return!1;this.width=t.chartWidth*r,this.height=t.chartHeight*r;let n=this.height,a=this.width;if(!e||!s||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),e.canvas.width=a,e.canvas.height=n,s.bind(),e.viewport(0,0,a,n),s.setPMatrix(B.orthoMatrix(a,n)),i.lineWidth>1&&!d().isMS&&e.lineWidth(i.lineWidth),o&&(o.build(this.data,"aVertexPosition",4),o.bind()),s.setInverted(t.inverted),this.series.forEach((n,a)=>{let l=n.series.options,h=l.marker,d=void 0!==l.lineWidth?l.lineWidth:1,c=l.threshold,g=w(c),u=n.series.yAxis.getThreshold(c),m=z(l.marker?l.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((l.marker?l.marker.radius:10)||10)),p=this.textureHandles[h&&h.symbol||n.series.symbol]||this.textureHandles.circle,f,b,x,A=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(p.isReady&&(e.bindTexture(e.TEXTURE_2D,p.handle),s.setTexture(p.handle)),t.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"),x=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):x=n.series.markerGroup?.getStyle("fill"):(x="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,l.colorByPoint&&(x=n.series.chart.options.colors[a])),n.series.fillOpacity&&l.fillOpacity&&(x=new(y())(x).setOpacity(z(l.fillOpacity,1)).get()),A=k(x).rgba,i.useAlpha||(A[3]=1),"add"===l.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===l.boostBlending||"multiply"===l.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===l.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA),s.reset(),n.colorData.length>0?(s.setUniform("hasColor",1),(b=new M(e,s)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),b.bind()):(s.setUniform("hasColor",0),e.disableVertexAttribArray(e.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(A),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(g,u),"POINTS"===n.drawMode&&s.setPointSize(2*z(l.marker&&l.marker.radius,.5)*r),s.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&s.setBubbleUniforms(n.series,n.zMin,n.zMax,r),s.setDrawAsCircle(G[n.series.type]||!1),o)){if(d>0||"LINE_STRIP"!==n.drawMode)for(f=0;f{this.render(t)},1)}setSize(t,e){let i=this.shader;i&&(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,i.bind(),i.setPMatrix(B.orthoMatrix(t,e)))}init(t,e){let i=this.settings;if(this.isInited=!1,!t)return!1;i.debug.timeSetup&&console.time("gl setup");for(let e=0;e{let i={isReady:!1,texture:R.createElement("canvas"),handle:s.createTexture()},o=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,o.mozImageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,o.strokeStyle="rgba(255, 255, 255, 0)",o.fillStyle="#FFF",e(o);try{s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i.handle),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),i.isReady=!0}catch(t){}};return r("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),r("square",t=>{t.fillRect(0,0,512,512)}),r("diamond",t=>{t.beginPath(),t.moveTo(256,0),t.lineTo(512,256),t.lineTo(256,512),t.lineTo(0,256),t.lineTo(256,0),t.fill()}),r("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),r("triangle-down",t=>{t.beginPath(),t.moveTo(0,0),t.lineTo(256,512),t.lineTo(512,0),t.lineTo(0,0),t.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let t=this.gl,e=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),e&&e.destroy(),t&&(_(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}let{getBoostClipRect:O,isChartSeriesBoosting:V}=A,{getOptions:X}=d(),{composed:F,doc:H,noop:Y,win:W}=d(),{addEvent:K,destroyObjectProperties:j,error:Z,extend:q,fireEvent:Q,isArray:J,isNumber:$,pick:tt,pushUnique:te,wrap:ti,defined:ts}=d();function to(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!V(e.chart)&&t.allocateBufferForSingleSeries(e)}function tr(t){return tt(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function tn(t,e){let i=t.constructor,o=t.seriesGroup||e.group,r=t.chartWidth,n=t.chartHeight,a=t,l="undefined"!=typeof SVGForeignObjectElement,h=!1;V(t)?a=t:(a=e,h=!!(e.options.events?.click||e.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,s||(s=H.createElement("canvas")),!d.target&&(d.canvas=s,t.renderer.forExport||!l?(a.renderTarget=d.target=t.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})}):(d.targetFo=t.renderer.createElement("foreignObject").add(o),a.renderTarget=d.target=H.createElement("canvas"),d.targetCtx=d.target.getContext("2d"),d.targetFo.element.appendChild(d.target),d.clear=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height},d.copy=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height,d.targetCtx.drawImage(d.canvas,0,0)}),d.resize=function(){r=t.chartWidth,n=t.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:r,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(t.plotLeft,t.plotTop)},d.clipRect=t.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:e.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(o).translate(e.xAxis.pos,e.yAxis.pos))),d.canvas.width=r,d.canvas.height=n,d.clipRect){let e=O(t,a),i=e.width===t.clipBox.width&&e.height===t.clipBox.height?o:d.targetFo||d.target;d.clipRect.attr(e),i?.clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new B(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||Z("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(t.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(t)),d.wgl.setSize(r,n),d.wgl}function ta(t){let e=t.points;if(e){let t,i;for(i=0;i{let i=t[e];i&&(t[e]=i.destroy())}),t.zones))j(e,void 0,!0)}function tl(t,e,i,s,o,r){let n=(o=o||0)+(s=s||3e3),a=!0;for(;a&&o(i.boostThreshold||Number.MAX_VALUE)&&$(r.min)&&$(r.max)&&(!e||$(o.min)&&$(o.max))&&(!n||$(n.min)&&$(n.max))}let td=(t,e)=>!t.forceCrop&&(V(t.chart)||(e?e.length:0)>=(t.options.boostThreshold||Number.MAX_VALUE));function tc(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=null),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=null)}function tg(){let t=this.boost;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear())}function tu(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!V(t.chart)&&e.wgl.render(t.chart)}function tm(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let r=(t.getColumn("x").length?t.getColumn("x"):void 0)||i.xData||t.getColumn("x",!0)||!1,n=new o(t,(J(t.options.data)?t.options.data:[])[e.i],r?r[e.i]:void 0);return n.category=tt(s.categories?s.categories[n.x]:n.x,n.x),n.key=n.name??n.category,n.dist=e.dist,n.distX=e.distX,n.plotX=e.plotX,n.plotY=e.plotY,n.index=e.i,n.percentage=e.percentage,n.isInside=t.isPointInside(n),n}function tp(t){var e,i,s,o;let{options:r,xAxis:n,yAxis:a}=this;if(!this.isDirty&&!n.isDirty&&!a.isDirty&&!t)return!1;this.yAxis.setTickInterval();let l=r.boostThreshold||0,h=r.cropThreshold,d=this.getColumn("x"),c=n.getExtremes(),g=c.max??Number.MAX_VALUE,u=c.min??-Number.MAX_VALUE,m=this.getColumn("y"),p=a.getExtremes(),f=p.max??Number.MAX_VALUE,b=p.min??-Number.MAX_VALUE;if(!this.boosted&&n.old&&a.old&&u>=(n.old.min??-Number.MAX_VALUE)&&g<=(n.old.max??Number.MAX_VALUE)&&b>=(a.old.min??-Number.MAX_VALUE)&&f<=(a.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:d,y:m}),!0;let x=this.dataTable.rowCount;if(!l||x=u&&S<=g&&k>=b&&k<=f?(A.push({x:S,y:k}),v.push(S),y.push(k),P&&(E=Math.max(E,S),M=Math.min(M,S)),T&&(R=Math.max(R,k),U=Math.min(U,k))):C=!0;return P&&((e=n.options).max??(e.max=E),(i=n.options).min??(i.min=M)),T&&((s=a.options).max??(s.max=R),(o=a.options).min??(o.min=U)),this.cropped=C,this.cropStart=0,this.dataTable.modified.setColumns({x:v,y:y}),td(this,v)||(this.processedData=A),!0}function tf(){let t=this.options||{},e=this.chart,s=e.boost,o=this.boost,r=this.xAxis,n=this.yAxis,a=t.xData||this.getColumn("x",!0),l=t.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),c=this.processedData||t.data,g=r.getExtremes(),u=g.min-(r.minPointOffset||0),m=g.max+(r.minPointOffset||0),p=n.getExtremes(),f=p.min-(n.minPointOffset||0),b=p.max+(n.minPointOffset||0),x={},A=!!this.sampling,v=t.enableMouseTracking,y=t.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!t.stacking,C=this.cropStart||0,S=this.requireSorting,E=!a,M="x"===t.findNearestPointBy,k=(this.getColumn("x",!0).length?this.getColumn("x",!0):void 0)||this.options.xData||this.getColumn("x",!0),R=tt(t.lineWidth,1),U=!1,w,L=n.getThreshold(y),N,_,z,D;if(r.isPanning||n.isPanning||(U=tn(e,this),e.boosted=!0,!this.visible))return;(this.points||this.graph)&&ta(this),V(e)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,o&&o.target&&(this.renderTarget=o.target=o.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,e.seriesGroup).addClass("highcharts-tracker"));let G=this.points=[],I=(t,s,o,a)=>{let l=!!k&&k[C+o],h=t=>{e.inverted&&(t=r.len-t,s=n.len-s),G.push({destroy:Y,x:l,clientX:t,plotX:t,plotY:s,i:C+o,percentage:a})};t=Math.ceil(t),i=M?t:t+","+s,v&&(x[i]?l===k[k.length-1]&&(G.length--,h(t)):(x[i]=!0,h(t)))};this.buildKDTree=Y,Q(this,"renderCanvas"),this.is("line")&&R>1&&o?.target&&s&&!s.lineWidthFilter&&(s.lineWidthFilter=e.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*R}}],attributes:{id:"linewidth"}}),o.target.attr({filter:"url(#linewidth)"})),U&&(to(U,this),U.pushSeries(this),tu(this));let B=U.settings;e.renderer.forExport||(B.debug.timeKDTree&&console.time("kd tree building"),tl(T?this.data.slice(C):a||c,function(t,i){let s=void 0===e.index,o,a,c,g,p,x=!1,v=!0;return!ts(t)||(!s&&(E?(o=t[0],a=t[1]):(o=t,a=l?.[i]),P?(E&&(a=t.slice(1,3)),x=h[i],a=d[i]):T&&(o=t.x,x=(a=t.stackY)-t.y,p=t.percentage),S||(v=(a||0)>=f&&a<=b),null!==a&&o>=u&&o<=m&&v&&(c=r.toPixels(o,!0),A?((void 0===z||c===w)&&(P||(x=a),(void 0===D||a>_)&&(_=a,D=i),(void 0===z||x{Q(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),B.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function tb(t){let e=!0;if(this.chart.options&&this.chart.options.boost&&(e=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!e||!this.boosted)return t.call(this);this.chart.boosted=!0;let i=tn(this.chart,this);i&&(to(i,this),i.pushSeries(this)),tu(this)}function tx(t){if(this.boosted){if(th(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function tA(t){let e=this.options.data;if(tr(this.chart)&&g[this.type]){let i=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!td(this,e)||i||this.is("treemap")||this.options.stacking||!th(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;i&&!this.yAxis.treeGrid?tp.call(this,arguments[1]):t.apply(this,[].slice.call(arguments,1)),e=this.getColumn("x",!0)}if(this.boosted=td(this,e),this.boosted){let t;!this.options.data?.length||$(t=this.getFirstValidPoint(this.options.data))||J(t)||this.is("treemap")||Z(12,!1,this.chart),function(t){t.boost=t.boost||{getPoint:e=>tm(t,e)};let e=t.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(i=>{e.push({prop:i,val:t[i],own:Object.hasOwnProperty.call(t,i)})}),t.allowDG=!1,t.directTouch=!1,t.stickyTracking=!0,t.finishedAnimating=!0,t.labelBySeries&&(t.labelBySeries=t.labelBySeries.destroy()),t.is("scatter")&&!t.is("treemap")&&t.data.length){for(let e of t.data)e?.destroy?.();t.data.length=0,t.points.length=0,delete t.processedData}}(this)}else!function(t){let e=t.boost,i=t.chart,s=i.boost;if(s?.markerGroup)for(let t of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))t.markerGroup=void 0,t.markerGroup=t.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear()),(i.seriesGroup||t.group)?.clip()}(this)}else t.apply(this,[].slice.call(arguments,1))}function tv(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}let ty={compose:function(t,e,i){if(te(F,"Boost.Series")){let s=X().plotOptions,o=t.prototype;if(K(t,"destroy",tc),K(t,"hide",tg),i&&(o.renderCanvas=tf),ti(o,"getExtremes",tx),ti(o,"processData",tA),ti(o,"searchPoint",tv),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(t=>(function(t,e,i){function s(t){let e=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!e&&tr(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&g[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():t.call(this)}if(ti(t,i,s),"translate"===i)for(let t of["column","arearange","columnrange","heatmap","treemap"])e[t]&&ti(e[t].prototype,i,s)})(o,e,t)),c.forEach(t=>{let i=s[t];i&&(i.boostThreshold=5e3,i.boostData=[],e[t].prototype.fillOpacity=!0)}),i){let{area:t,areaspline:i,bubble:s,column:o,heatmap:r,scatter:n,treemap:a}=e;if(t&&q(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&q(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let t=s.prototype;delete t.buildKDTree,ti(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}o&&q(o.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[r,a].forEach(t=>{t&&ti(t.prototype,"drawPoints",tb)})}}return t},destroyGraphics:ta,eachAsync:tl,getPoint:tm},{getBoostClipRect:tP,isChartSeriesBoosting:tT}=A,{destroyGraphics:tC}=ty,{parse:tS}=y(),{doc:tE,noop:tM}=d(),{addEvent:tk,fireEvent:tR,isNumber:tU,merge:tw,pick:tL,wrap:tN}=d();!function(t){let e;let i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function s(t,e,i,s,o){o&&e!==o.clientX&&(t.moveTo(o.clientX,o.yBottom),t.lineTo(o.clientX,o.plotY),t.lineTo(e,i),t.lineTo(e,s))}function o(t,e,i,s,o){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[o],0,2*Math.PI,!1)}function r(t,e,i,s){t.rect(e-1,i,1,s-i)}function n(){this.boost&&this.boost.copy&&this.boost.copy()}function a(){let t=this.boost||{};t.target&&t.target.attr({href:i}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function l(){tT(this.chart)?this.boost&&this.boost.clear&&this.boost.clear():this.boost&&this.boost.copy?this.boost.copy():this.chart.boost&&this.chart.boost.copy&&this.chart.boost.copy()}function h(t,e,i){t.lineTo(e,i)}function c(){let t;let e=this.chart,s=tT(e)?e:this,o=s===e?e.seriesGroup:e.seriesGroup||this.group,r=e.chartWidth,n=e.chartHeight,a=function(t,e,i,s,o,r,n){t.call(this,i,e,s,o,r,n)},l=s.boost=s.boost||{};return t=l.targetCtx,l.canvas||(l.canvas=tE.createElement("canvas"),l.target=e.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),t=l.targetCtx=l.canvas.getContext("2d"),e.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{tN(t,e,a)}),l.copy=function(){l.target.attr({href:l.canvas.toDataURL("image/png")})},l.clear=function(){t.clearRect(0,0,l.canvas.width,l.canvas.height),s===l.target&&l.target.attr({href:i})},l.clipRect=e.renderer.clipRect(),l.target.clip(l.clipRect)),l.canvas.width!==r&&(l.canvas.width=r),l.canvas.height!==n&&(l.canvas.height=n),l.target.attr({x:0,y:0,width:r,height:n,style:"pointer-events: none",href:i}),l.clipRect&&l.clipRect.attr(tP(e,s)),t}function g(){let t=this,s=t.options,o=t.chart,r=t.xAxis,n=t.yAxis,a=o.options.boost||{},l={timeRendering:a.timeRendering||!1,timeSeriesProcessing:a.timeSeriesProcessing||!1,timeSetup:a.timeSetup||!1},h=t.getColumn("x",!0),c=t.getColumn("y",!0),g=s.data,u=r.getExtremes(),m=u.min,p=u.max,f=n.getExtremes(),b=f.min,x=f.max,A={},v=!!t.sampling,P=s.marker&&s.marker.radius,T=t.cvsStrokeBatch||1e3,C=s.enableMouseTracking,S=s.threshold,E=tU(S),M=n.getThreshold(S),k=t.fill,R=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),U=!!s.stacking,w=t.cropStart||0,L=o.options.loading,N=t.requireSorting,_=s.connectNulls,z=!h,D=U?t.data:h||g,G=t.fillOpacity?y().parse(t.color).setOpacity(tL(s.fillOpacity,.75)).get():t.color,I="x"===s.findNearestPointBy,B=this.boost||{},O=t.cvsDrawPoint,V=s.lineWidth?t.cvsLineTo:void 0,X=P&&P<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;B.target&&B.target.attr({href:i}),(t.points||t.graph)&&tC(t),t.plotGroup("group","series",t.visible?"visible":"hidden",s.zIndex,o.seriesGroup),t.markerGroup=t.group,tk(t,"destroy",function(){t.markerGroup=null});let F=this.points=[],H=this.getContext();if(t.buildKDTree=tM,B.clear&&B.clear(),!t.visible)return;g.length>99999&&(o.options.loading=tw(L,{labelStyle:{backgroundColor:tS("#ffffff").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),d().clearTimeout(e),o.showLoading("Drawing..."),o.options.loading=L),l.timeRendering&&console.time("canvas rendering");let Y=0,W,K,j=M,Z,q,Q,J,$,tt,te=function(){k?(H.fillStyle=G,H.fill()):(H.strokeStyle=t.color,H.lineWidth=s.lineWidth,H.stroke())},ti=function(e,i,s,r){0===Y&&(H.beginPath(),V&&(H.lineJoin="round")),o.scroller&&"highcharts-navigator-series"===t.options.className?(i+=o.scroller.top,s&&(s+=o.scroller.top)):i+=o.plotTop,e+=o.plotLeft,Z?H.moveTo(e,i):O?O(H,e,i,s,K):V?V(H,e,i):X&&X.call(t,H,e,i,P,r),(Y+=1)===T&&(te(),Y=0),K={clientX:e,plotY:i,yBottom:s}},ts=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||!!this.getColumn("x",!0).length&&this.getColumn("x",!0),to=function(t,e,i){tt=I?t:t+","+e,C&&!A[tt]&&(A[tt]=!0,o.inverted&&(t=r.len-t,e=n.len-e),F.push({x:!!ts&&ts[w+i],clientX:t,plotX:t,plotY:e,i:w+i}))};ty.eachAsync(D,(e,i)=>{let s=void 0===o.index,a,l,h,d,g,u,f=!1,A=!1,y=NaN,P=NaN,T=!0;return!s&&(z?(a=e[0],l=e[1],D[i+1]&&(y=D[i+1][0]),D[i-1]&&(P=D[i-1][0])):(a=e,l=c[i],D[i+1]&&(y=D[i+1]),D[i-1]&&(P=D[i-1])),y&&y>=m&&y<=p&&(f=!0),P&&P>=m&&P<=p&&(A=!0),R?(z&&(l=e.slice(1,3)),u=l[0],l=l[1]):U&&(a=e.x,u=(l=e.stackY)-e.y),g=null===l,N||(T=l>=b&&l<=x),!g&&(a>=m&&a<=p&&T||f||A)&&(h=Math.round(r.toPixels(a,!0)),v?((void 0===J||h===W)&&(R||(u=l),(void 0===$||l>Q)&&(Q=l,$=i),(void 0===J||u{let n;let a=r.plotY;if(void 0!==a&&!isNaN(a)&&null!==r.y&&e){let{x:a=0,y:l=0,width:h=0,height:d=0}=r.shapeArgs||{};n=t.styledMode?r.series.colorAttribs(r):r.series.pointAttribs(r),e.fillStyle=n.fill,i?e.fillRect(o.len-l+s.left,s.len-a+o.top,-d,-h):e.fillRect(a+s.left,l+o.top,h,d)}}),this.canvasToSVG()):this.chart.showLoading("Your browser doesn't support HTML5 canvas,
    please use a modern browser")}t.compose=function(t,e,i){let d=e.prototype;if(!d.renderCanvas){let{area:e,bubble:f,column:b,heatmap:x,scatter:A}=i;if(t.prototype.callbacks.push(t=>{tk(t,"predraw",a),tk(t,"render",n)}),d.canvasToSVG=l,d.cvsLineTo=h,d.getContext=c,d.renderCanvas=g,e){let t=e.prototype;t.cvsDrawPoint=s,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(f){let t=f.prototype;t.cvsMarkerCircle=o,t.cvsStrokeBatch=1}if(b){let t=b.prototype;t.cvsDrawPoint=r,t.fill=!0,t.sampling=!0}if(x&&tN(x.prototype,"drawPoints",p),A){let t=A.prototype;t.cvsMarkerCircle=u,t.cvsMarkerSquare=m,t.fill=!0}}}}(o||(o={}));let t_=o,tz=d();tz.initCanvasBoost=function(){t_.compose(tz.Chart,tz.Series,tz.seriesTypes)};let tD=d();return l.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost-canvas",["highcharts/highcharts"],function(t){return e(t,t.Color)}):"object"==typeof exports?exports["highcharts/modules/boost-canvas"]=e(t._Highcharts,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";let i,s;var o,r={620:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return r[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};a.d(l,{default:()=>tz});var h=a(944),d=a.n(h);let c=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],g={};c.forEach(t=>{g[t]=!0});let{composed:u}=d(),{addEvent:m,pick:p,pushUnique:f}=d();function b(t){let e=t.series,i=t.boost=t.boost||{},s=t.options.boost||{},o=p(s.seriesThreshold,50);if(e.length>=o)return!0;if(1===e.length)return!1;let r=s.allowForce;if(void 0===r){for(let e of(r=!0,t.xAxis))if(p(e.min,-1/0)>p(e.dataMin,-1/0)||p(e.max,1/0){if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(t.getColumn("x",!0),l.data,t.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=r&&(n===e.length&&a===n||a>5),i.forceChartBoost}function x(t){function e(){t.boost&&t.boost.wgl&&b(t)&&t.boost.wgl.render(t)}m(t,"predraw",function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.axes.some(t=>t.isPanning)||t.boost.clear?.(),t.boost.canvas&&t.boost.wgl&&b(t)&&t.boost.wgl.allocateBuffer(t),t.boost.markerGroup&&t.xAxis&&t.xAxis.length>0&&t.yAxis&&t.yAxis.length>0&&t.boost.markerGroup.translate(t.xAxis[0].pos,t.yAxis[0].pos)}),m(t,"load",e,{order:-1}),m(t,"redraw",e);let i=-1,s=-1;m(t.pointer,"afterGetHoverData",e=>{let o=e.hoverPoint?.series;if(t.boost=t.boost||{},t.boost.markerGroup&&o){let e=t.inverted?o.yAxis:o.xAxis,r=t.inverted?o.xAxis:o.yAxis;(e&&e.pos!==i||r&&r.pos!==s)&&(t.series.forEach(t=>{t.halo?.hide()}),t.boost.markerGroup.translate(e.pos,r.pos),i=e.pos,s=r.pos)}})}let A={compose:function(t,e){return e&&f(u,"Boost.Chart")&&t.prototype.callbacks.push(x),t},getBoostClipRect:function(t,e){let i=t.navigator,s={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.plotHeight};if(i&&t.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!t.inverted&&(s.height=i.top+i.height-t.plotTop),e.getClipBox){let{xAxis:i,yAxis:o}=e;if(s=e.getClipBox(),t.inverted){let t=s.width;s.width=s.height,s.height=t,s.x=o.pos,s.y=i.pos}else s.x=i.pos,s.y=o.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(s.y=Math.min(e[0].pos,s.y),s.height=e[0].pos-t.plotTop+e[0].len)}return s},isChartSeriesBoosting:b};var v=a(620),y=a.n(v);let P={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:T,error:C,pick:M}=d(),S=class{constructor(t){if(this.errors=[],this.uLocations={},this.gl=t,t&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let t=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),e=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=t=>this.gl.getUniformLocation(this.shaderProgram,t);return t&&e?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,t),this.gl.attachShader(this.shaderProgram,e),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&C("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(t,e){let i=this.gl.createShader("vertex"===e?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+e+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(t,e,i,s=1){let o=t.options,r=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let a=t.getPxExtremes();r=M(o.zMin,T(e,!1===o.displayNegative?o.zThreshold:-Number.MAX_VALUE,r)),n=M(o.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==t.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,t.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*s),this.setUniform("bubbleMaxSize",a.maxPxSize*s),this.setUniform("bubbleZMin",r),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",t.options.zThreshold)}}setColor(t){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,t[0]/255,t[1]/255,t[2]/255,t[3])}setDrawAsCircle(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,t?1:0)}setInverted(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,t)}setPMatrix(t){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,t)}setPointSize(t){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,t)}setSkipTranslation(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,!0===t?1:0)}setTexture(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,t)}setUniform(t,e){if(this.gl&&this.shaderProgram){let i=this.uLocations[t]=this.uLocations[t]||this.gl.getUniformLocation(this.shaderProgram,t);this.gl.uniform1f(i,e)}}},E=class{constructor(t,e,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=t,this.shader=e}allocate(t){this.iterator=-1,this.preAllocated=new Float32Array(4*t)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(t,e,i){let s;return(this.data=t||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(s=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||s,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),e),this.gl.enableVertexAttribArray(this.vertAttribute),s=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(t,e,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(t,e,i){let s=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!s&&((!t||t>s||t<0)&&(t=0),(!e||e>s)&&(e=s),!(t>=e)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],t/this.components,(e-t)/this.components),!0))}},{parse:k}=y(),{doc:R,win:U}=d(),{isNumber:w,isObject:L,merge:N,objectEach:_,pick:D}=d(),z={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},G={scatter:!0,bubble:!0},I=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class B{static orthoMatrix(t,e){return[2/t,0,0,0,0,-(2/e),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(t){let e,i,s;return t.boosted?(e=!!t.options.stacking,i=(t.getColumn("x").length?t.getColumn("x"):void 0)||t.options.xData||t.getColumn("x",!0),s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:z[t.type]&&(s*=2),s):0}constructor(t){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=t,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||U.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),N(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=B.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=B.seriesPointCount(t)),e&&e.allocate(i))}clear(){let t=this.gl;t&&t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}pushSeriesData(t,e){let i=this.data,s=this.settings,o=this.vbuffer,r=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=t,c=!!a.stacking,g=a.data,u=t.xAxis.getExtremes(),m=u.min-(t.xAxis.minPointOffset||0),p=u.max+(t.xAxis.minPointOffset||0),f=t.yAxis.getExtremes(),b=f.min-(t.yAxis.minPointOffset||0),x=f.max+(t.yAxis.minPointOffset||0),A=(t.getColumn("x").length?t.getColumn("x"):void 0)||a.xData||t.getColumn("x",!0),v=(t.getColumn("y").length?t.getColumn("y"):void 0)||a.yData||t.getColumn("y",!0),y=(t.getColumn("z").length?t.getColumn("z"):void 0)||a.zData||t.getColumn("z",!0),P=!A||0===A.length,T=a.connectNulls,C=t.points||!1,M=c?t.data:A||g,S={x:Number.MAX_VALUE,y:0},E={x:-Number.MAX_VALUE,y:0},R=void 0===n.index,U=z[t.type],w=a.zoneAxis||"y",N=a.zones||!1,_=a.threshold,D=this.getPixelRatio(),G=t.chart.plotWidth,I=!1,B=!1,O,V,X=0,F=!1,H,Y,W,K,j=-1,Z=!1,q=!1,Q,J=!1,$=!1,tt=!1,te=!1,ti=!0,ts=!0,to,tr=!1,tn=!1,ta=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(tn="value"!==a.gapUnit?a.gapSize*t.closestPointRange:a.gapSize),N&&(to=[],N.forEach((t,e)=>{if(t.color){let i=k(t.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,to[e]=i,tr||void 0!==t.value||(tr=i)}}),tr||(tr=k(t.pointAttribs&&t.pointAttribs().fill||t.color).rgba,tr[0]/=255,tr[1]/=255,tr[2]/=255)),n.inverted&&(G=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let tl=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},th=(t,r,n,a=1,l)=>{tl(l),1!==D&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=D,r*=D,a*=D),s.usePreallocated&&o?(o.push(t,r,n?1:0,a),ta+=4):(i.push(t),i.push(r),i.push(n?D:0),i.push(a))},td=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||ta)},tc=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||ta)||(td(),e.segments.push({from:i.length||ta}))},tg=(t,e,i,s,o)=>{tl(o),th(t+i,e),tl(o),th(t,e),tl(o),th(t,e+s),tl(o),th(t,e+s),tl(o),th(t+i,e+s),tl(o),th(t+i,e)};if(tc(),C&&C.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",C[0].node&&C[0].node.levelDynamic&&C.sort((t,e)=>{if(t.node){if(t.node.levelDynamic>e.node.levelDynamic)return 1;if(t.node.levelDynamic{let i,s;let o=e.plotY;if(void 0!==o&&!isNaN(o)&&null!==e.y&&e.shapeArgs){let{x:o=0,y:r=0,width:a=0,height:l=0}=e.shapeArgs;i=(s=n.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,tt=k(s.fill).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255,t.is("treemap")&&(i=i||1,V=k(s.stroke).rgba,V[0]/=255,V[1]/=255,V[2]/=255,tg(o,r,a,l,V),i/=2),t.is("heatmap")&&n.inverted&&(o=h.len-o,r=d.len-r,a=-a,l=-l),tg(o+i,r+i,a-2*i,l-2*i,tt)}}),td();return}for(;j=3&&(K=W[2],W[2]>e.zMax&&(e.zMax=W[2]),W[2]e.zMax&&(e.zMax=y[j]),y[j]=m&&q<=p&&(J=!0),Z&&Z>=m&&Z<=p&&($=!0),r?(P&&(Y=W.slice(1,3)),Q=t.getColumn("low",!0)?.[j],Y=t.getColumn("high",!0)?.[j]||0):c&&(H=W.x,Q=(Y=W.stackY)-W.y),null!=b&&null!=x&&(ti=Y>=b&&Y<=x),(l||ti)&&(H>p&&E.xm&&(S.x=H,S.y=Y),null!==Y||!T)){if(null===Y||!ti&&!J&&!$){tc();continue}if((l&&(q>=m||H>=m)&&(Z<=p||H<=p)||!l&&H>=m&&H<=p)&&(te=!0),te||J||$){if(tn&&H-Z>tn&&tc(),N){let t;N.some((e,i)=>{let s=N[i-1];return"x"===w?void 0!==e.value&&H<=e.value&&(to[i]&&(!s||H>=s.value)&&(t=to[i]),!0):void 0!==e.value&&Y<=e.value&&(to[i]&&(!s||Y>=s.value)&&(t=to[i]),!0)}),tt=t||tr||tt}if(s.useGPUTranslations||(e.skipTranslation=!0,H=h.toPixels(H,!0),Y=d.toPixels(Y,!0),!(H>G)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&te&&!1!==I&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(H-I))),!s.useGPUTranslations&&!s.usePreallocated&&I&&1>Math.abs(H-I)&&B&&1>Math.abs(Y-B)){s.debug.showSkipSummary&&++X;continue}U&&(O=Q||0,(!1===Q||void 0===Q)&&(O=Y<0?Y:0),(r||c)&&!d.logarithmic||(O=Math.max(null===_?b:_,b)),s.useGPUTranslations||(O=d.toPixels(O,!0)),th(H,O,0,0,tt)),a.step&&!ts&&th(H,B,0,2,tt),th(H,Y,0,"bubble"===t.type?K||1:2,tt),I=H,B=Y,F=!0,ts=!1}}}}s.debug.showSkipSummary&&console.log("skipped points:",X);let tu=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=h.toPixels(t.x,!0),t.y=d.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}th(t.x,t.y,0,2)};!F&&!1!==T&&"line_strip"===t.drawMode&&(S.x-Number.MAX_VALUE&&tu(E)),td()}pushSeries(t){let e=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),s.debug.timeSeriesProcessing&&console.time("building "+t.type+" series");let o={segments:[],markerFrom:e.length,colorData:[],series:t,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!t.options.marker&&!1!==t.options.marker.enabled,showMarkers:!0,drawMode:P[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(o):i[t.index]=o,this.pushSeriesData(t,o),s.debug.timeSeriesProcessing&&console.timeEnd("building "+t.type+" series")}flush(){let t=this.vbuffer;this.data=[],this.markerData=[],this.series=[],t&&t.destroy()}setXAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("xAxisTrans",t.transA*i),e.setUniform("xAxisMin",t.min),e.setUniform("xAxisMinPad",t.minPixelPadding*i),e.setUniform("xAxisPointRange",t.pointRange),e.setUniform("xAxisLen",t.len*i),e.setUniform("xAxisPos",t.pos*i),e.setUniform("xAxisCVSCoord",!t.horiz),e.setUniform("xAxisIsLog",!!t.logarithmic),e.setUniform("xAxisReversed",!!t.reversed)}setYAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("yAxisTrans",t.transA*i),e.setUniform("yAxisMin",t.min),e.setUniform("yAxisMinPad",t.minPixelPadding*i),e.setUniform("yAxisPointRange",t.pointRange),e.setUniform("yAxisLen",t.len*i),e.setUniform("yAxisPos",t.pos*i),e.setUniform("yAxisCVSCoord",!t.horiz),e.setUniform("yAxisIsLog",!!t.logarithmic),e.setUniform("yAxisReversed",!!t.reversed)}setThreshold(t,e){let i=this.shader;i&&(i.setUniform("hasThreshold",t),i.setUniform("translatedThreshold",e))}renderChart(t){let e=this.gl,i=this.settings,s=this.shader,o=this.vbuffer,r=this.getPixelRatio();if(!t)return!1;this.width=t.chartWidth*r,this.height=t.chartHeight*r;let n=this.height,a=this.width;if(!e||!s||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),e.canvas.width=a,e.canvas.height=n,s.bind(),e.viewport(0,0,a,n),s.setPMatrix(B.orthoMatrix(a,n)),i.lineWidth>1&&!d().isMS&&e.lineWidth(i.lineWidth),o&&(o.build(this.data,"aVertexPosition",4),o.bind()),s.setInverted(t.inverted),this.series.forEach((n,a)=>{let l=n.series.options,h=l.marker,d=void 0!==l.lineWidth?l.lineWidth:1,c=l.threshold,g=w(c),u=n.series.yAxis.getThreshold(c),m=D(l.marker?l.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((l.marker?l.marker.radius:10)||10)),p=this.textureHandles[h&&h.symbol||n.series.symbol]||this.textureHandles.circle,f,b,x,A=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(p.isReady&&(e.bindTexture(e.TEXTURE_2D,p.handle),s.setTexture(p.handle)),t.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"),x=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):x=n.series.markerGroup?.getStyle("fill"):(x="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,l.colorByPoint&&(x=n.series.chart.options.colors[a])),n.series.fillOpacity&&l.fillOpacity&&(x=new(y())(x).setOpacity(D(l.fillOpacity,1)).get()),A=k(x).rgba,i.useAlpha||(A[3]=1),"add"===l.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===l.boostBlending||"multiply"===l.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===l.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA),s.reset(),n.colorData.length>0?(s.setUniform("hasColor",1),(b=new E(e,s)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),b.bind()):(s.setUniform("hasColor",0),e.disableVertexAttribArray(e.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(A),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(g,u),"POINTS"===n.drawMode&&s.setPointSize(2*D(l.marker&&l.marker.radius,.5)*r),s.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&s.setBubbleUniforms(n.series,n.zMin,n.zMax,r),s.setDrawAsCircle(G[n.series.type]||!1),o)){if(d>0||"LINE_STRIP"!==n.drawMode)for(f=0;f{this.render(t)},1)}setSize(t,e){let i=this.shader;i&&(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,i.bind(),i.setPMatrix(B.orthoMatrix(t,e)))}init(t,e){let i=this.settings;if(this.isInited=!1,!t)return!1;i.debug.timeSetup&&console.time("gl setup");for(let e=0;e{let i={isReady:!1,texture:R.createElement("canvas"),handle:s.createTexture()},o=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,o.mozImageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,o.strokeStyle="rgba(255, 255, 255, 0)",o.fillStyle="#FFF",e(o);try{s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i.handle),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),i.isReady=!0}catch(t){}};return r("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),r("square",t=>{t.fillRect(0,0,512,512)}),r("diamond",t=>{t.beginPath(),t.moveTo(256,0),t.lineTo(512,256),t.lineTo(256,512),t.lineTo(0,256),t.lineTo(256,0),t.fill()}),r("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),r("triangle-down",t=>{t.beginPath(),t.moveTo(0,0),t.lineTo(256,512),t.lineTo(512,0),t.lineTo(0,0),t.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let t=this.gl,e=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),e&&e.destroy(),t&&(_(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}let{getBoostClipRect:O,isChartSeriesBoosting:V}=A,{getOptions:X}=d(),{composed:F,doc:H,noop:Y,win:W}=d(),{addEvent:K,destroyObjectProperties:j,error:Z,extend:q,fireEvent:Q,isArray:J,isNumber:$,pick:tt,pushUnique:te,wrap:ti,defined:ts}=d();function to(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!V(e.chart)&&t.allocateBufferForSingleSeries(e)}function tr(t){return tt(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function tn(t,e){let i=t.constructor,o=t.seriesGroup||e.group,r=t.chartWidth,n=t.chartHeight,a=t,l="undefined"!=typeof SVGForeignObjectElement,h=!1;V(t)?a=t:(a=e,h=!!(e.options.events?.click||e.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,s||(s=H.createElement("canvas")),!d.target&&(d.canvas=s,t.renderer.forExport||!l?(a.renderTarget=d.target=t.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})}):(d.targetFo=t.renderer.createElement("foreignObject").add(o),a.renderTarget=d.target=H.createElement("canvas"),d.targetCtx=d.target.getContext("2d"),d.targetFo.element.appendChild(d.target),d.clear=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height},d.copy=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height,d.targetCtx.drawImage(d.canvas,0,0)}),d.resize=function(){r=t.chartWidth,n=t.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:r,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(t.plotLeft,t.plotTop)},d.clipRect=t.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:e.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(o).translate(e.xAxis.pos,e.yAxis.pos))),d.canvas.width=r,d.canvas.height=n,d.clipRect){let e=O(t,a),i=e.width===t.clipBox.width&&e.height===t.clipBox.height?o:d.targetFo||d.target;d.clipRect.attr(e),i?.clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new B(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||Z("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(t.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(t)),d.wgl.setSize(r,n),d.wgl}function ta(t){let e=t.points;if(e){let t,i;for(i=0;i{let i=t[e];i&&(t[e]=i.destroy())}),t.zones))j(e,void 0,!0)}function tl(t,e,i,s,o,r){let n=(o=o||0)+(s=s||3e3),a=!0;for(;a&&o(i.boostThreshold||Number.MAX_VALUE)&&$(r.min)&&$(r.max)&&(!e||$(o.min)&&$(o.max))&&(!n||$(n.min)&&$(n.max))}let td=(t,e)=>!t.forceCrop&&(V(t.chart)||(e?e.length:0)>=(t.options.boostThreshold||Number.MAX_VALUE));function tc(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=null),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=null)}function tg(){let t=this.boost;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear())}function tu(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!V(t.chart)&&e.wgl.render(t.chart)}function tm(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let r=t.is("scatter"),n=(r&&t.getColumn("x",!0).length?t.getColumn("x",!0):void 0)||(t.getColumn("x").length?t.getColumn("x"):void 0)||i.xData||t.getColumn("x",!0)||!1,a=t.getColumn("y",!0)||i.yData||!1,l=new o(t,r&&n&&a?[n[e.i],a[e.i]]:(J(t.options.data)?t.options.data:[])[e.i],n?n[e.i]:void 0);return l.category=tt(s.categories?s.categories[l.x]:l.x,l.x),l.key=l.name??l.category,l.dist=e.dist,l.distX=e.distX,l.plotX=e.plotX,l.plotY=e.plotY,l.index=e.i,l.percentage=e.percentage,l.isInside=t.isPointInside(l),l}function tp(t){let{options:e,xAxis:i,yAxis:s}=this;if(!this.isDirty&&!i.isDirty&&!s.isDirty&&!t)return!1;this.yAxis.setTickInterval();let o=e.boostThreshold||0,r=e.cropThreshold,n=this.getColumn("x"),a=i.getExtremes(),l=a.max??Number.MAX_VALUE,h=a.min??-Number.MAX_VALUE,d=this.getColumn("y"),c=s.getExtremes(),g=c.max??Number.MAX_VALUE,u=c.min??-Number.MAX_VALUE;if(!this.boosted&&i.old&&s.old&&h>=(i.old.min??-Number.MAX_VALUE)&&l<=(i.old.max??Number.MAX_VALUE)&&u>=(s.old.min??-Number.MAX_VALUE)&&g<=(s.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:n,y:d}),!0;let m=this.dataTable.rowCount;if(!o||m=h&&y<=l&&C>=u&&C<=g?(p.push({x:y,y:C}),f.push(y),b.push(C),x&&(P=Math.max(P,y),T=Math.min(T,y)),A&&(M=Math.max(M,C),S=Math.min(S,C))):v=!0;return x&&(i.dataMax=Math.max(P,i.dataMax||0),i.dataMin=Math.min(T,i.dataMin||0)),A&&(s.dataMax=Math.max(M,s.dataMax||0),s.dataMin=Math.min(S,s.dataMin||0)),this.cropped=v,this.cropStart=0,this.dataTable.modified.setColumns({x:f,y:b}),td(this,f)||(this.processedData=p),!0}function tf(){let t=this.options||{},e=this.chart,s=e.boost,o=this.boost,r=this.xAxis,n=this.yAxis,a=t.xData||this.getColumn("x",!0),l=t.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),c=this.processedData||t.data,g=r.getExtremes(),u=g.min-(r.minPointOffset||0),m=g.max+(r.minPointOffset||0),p=n.getExtremes(),f=p.min-(n.minPointOffset||0),b=p.max+(n.minPointOffset||0),x={},A=!!this.sampling,v=t.enableMouseTracking,y=t.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!t.stacking,C=this.cropStart||0,M=this.requireSorting,S=!a,E="x"===t.findNearestPointBy,k=(this.getColumn("x",!0).length?this.getColumn("x",!0):void 0)||this.options.xData||this.getColumn("x",!0),R=tt(t.lineWidth,1),U=!1,w,L=n.getThreshold(y),N,_,D,z;if(r.isPanning||n.isPanning||(U=tn(e,this),e.boosted=!0,!this.visible))return;(this.points||this.graph)&&ta(this),V(e)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,o&&o.target&&(this.renderTarget=o.target=o.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,e.seriesGroup).addClass("highcharts-tracker"));let G=this.points=[],I=(t,s,o,a)=>{let l=!!k&&k[C+o],h=t=>{e.inverted&&(t=r.len-t,s=n.len-s),G.push({destroy:Y,x:l,clientX:t,plotX:t,plotY:s,i:C+o,percentage:a})};t=Math.ceil(t),i=E?t:t+","+s,v&&(x[i]?l===k[k.length-1]&&(G.length--,h(t)):(x[i]=!0,h(t)))};this.buildKDTree=Y,Q(this,"renderCanvas"),this.is("line")&&R>1&&o?.target&&s&&!s.lineWidthFilter&&(s.lineWidthFilter=e.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*R}}],attributes:{id:"linewidth"}}),o.target.attr({filter:"url(#linewidth)"})),U&&(to(U,this),U.pushSeries(this),tu(this));let B=U.settings;e.renderer.forExport||(B.debug.timeKDTree&&console.time("kd tree building"),tl(T?this.data.slice(C):a||c,function(t,i){let s=void 0===e.index,o,a,c,g,p,x=!1,v=!0;return!ts(t)||(!s&&(S?(o=t[0],a=t[1]):(o=t,a=l?.[i]),P?(S&&(a=t.slice(1,3)),x=h[i],a=d[i]):T&&(o=t.x,x=(a=t.stackY)-t.y,p=t.percentage),M||(v=(a||0)>=f&&a<=b),null!==a&&o>=u&&o<=m&&v&&(c=r.toPixels(o,!0),A?((void 0===D||c===w)&&(P||(x=a),(void 0===z||a>_)&&(_=a,z=i),(void 0===D||x{Q(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),B.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function tb(t){let e=!0;if(this.chart.options&&this.chart.options.boost&&(e=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!e||!this.boosted)return t.call(this);this.chart.boosted=!0;let i=tn(this.chart,this);i&&(to(i,this),i.pushSeries(this)),tu(this)}function tx(t){if(this.boosted){if(th(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function tA(t){let e=this.options.data;if(tr(this.chart)&&g[this.type]){let i=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!td(this,e)||i||this.is("treemap")||this.options.stacking||!th(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;i&&!this.yAxis.treeGrid?tp.call(this,arguments[1]):t.apply(this,[].slice.call(arguments,1)),e=this.getColumn("x",!0)}if(this.boosted=td(this,e),this.boosted){let t;!this.options.data?.length||$(t=this.getFirstValidPoint(this.options.data))||J(t)||this.is("treemap")||Z(12,!1,this.chart),function(t){t.boost=t.boost||{getPoint:e=>tm(t,e)};let e=t.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(i=>{e.push({prop:i,val:t[i],own:Object.hasOwnProperty.call(t,i)})}),t.allowDG=!1,t.directTouch=!1,t.stickyTracking=!0,t.finishedAnimating=!0,t.labelBySeries&&(t.labelBySeries=t.labelBySeries.destroy()),t.is("scatter")&&!t.is("treemap")&&t.data.length){for(let e of t.data)e?.destroy?.();t.data.length=0,t.points.length=0,delete t.processedData}}(this)}else!function(t){let e=t.boost,i=t.chart,s=i.boost;if(s?.markerGroup)for(let t of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))t.markerGroup=void 0,t.markerGroup=t.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear()),(i.seriesGroup||t.group)?.clip()}(this)}else t.apply(this,[].slice.call(arguments,1))}function tv(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}let ty={compose:function(t,e,i){if(te(F,"Boost.Series")){let s=X().plotOptions,o=t.prototype;if(K(t,"destroy",tc),K(t,"hide",tg),i&&(o.renderCanvas=tf),ti(o,"getExtremes",tx),ti(o,"processData",tA),ti(o,"searchPoint",tv),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(t=>(function(t,e,i){function s(t){let e=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!e&&tr(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&g[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():t.call(this)}if(ti(t,i,s),"translate"===i)for(let t of["column","arearange","columnrange","heatmap","treemap"])e[t]&&ti(e[t].prototype,i,s)})(o,e,t)),c.forEach(t=>{let i=s[t];i&&(i.boostThreshold=5e3,i.boostData=[],e[t].prototype.fillOpacity=!0)}),i){let{area:t,areaspline:i,bubble:s,column:o,heatmap:r,scatter:n,treemap:a}=e;if(t&&q(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&q(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let t=s.prototype;delete t.buildKDTree,ti(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}o&&q(o.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[r,a].forEach(t=>{t&&ti(t.prototype,"drawPoints",tb)})}}return t},destroyGraphics:ta,eachAsync:tl,getPoint:tm},{getBoostClipRect:tP,isChartSeriesBoosting:tT}=A,{destroyGraphics:tC}=ty,{parse:tM}=y(),{doc:tS,noop:tE}=d(),{addEvent:tk,fireEvent:tR,isNumber:tU,merge:tw,pick:tL,wrap:tN}=d();!function(t){let e;let i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function s(t,e,i,s,o){o&&e!==o.clientX&&(t.moveTo(o.clientX,o.yBottom),t.lineTo(o.clientX,o.plotY),t.lineTo(e,i),t.lineTo(e,s))}function o(t,e,i,s,o){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[o],0,2*Math.PI,!1)}function r(t,e,i,s){t.rect(e-1,i,1,s-i)}function n(){this.boost&&this.boost.copy&&this.boost.copy()}function a(){let t=this.boost||{};t.target&&t.target.attr({href:i}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function l(){tT(this.chart)?this.boost&&this.boost.clear&&this.boost.clear():this.boost&&this.boost.copy?this.boost.copy():this.chart.boost&&this.chart.boost.copy&&this.chart.boost.copy()}function h(t,e,i){t.lineTo(e,i)}function c(){let t;let e=this.chart,s=tT(e)?e:this,o=s===e?e.seriesGroup:e.seriesGroup||this.group,r=e.chartWidth,n=e.chartHeight,a=function(t,e,i,s,o,r,n){t.call(this,i,e,s,o,r,n)},l=s.boost=s.boost||{};return t=l.targetCtx,l.canvas||(l.canvas=tS.createElement("canvas"),l.target=e.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),t=l.targetCtx=l.canvas.getContext("2d"),e.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{tN(t,e,a)}),l.copy=function(){l.target.attr({href:l.canvas.toDataURL("image/png")})},l.clear=function(){t.clearRect(0,0,l.canvas.width,l.canvas.height),s===l.target&&l.target.attr({href:i})},l.clipRect=e.renderer.clipRect(),l.target.clip(l.clipRect)),l.canvas.width!==r&&(l.canvas.width=r),l.canvas.height!==n&&(l.canvas.height=n),l.target.attr({x:0,y:0,width:r,height:n,style:"pointer-events: none",href:i}),l.clipRect&&l.clipRect.attr(tP(e,s)),t}function g(){let t=this,s=t.options,o=t.chart,r=t.xAxis,n=t.yAxis,a=o.options.boost||{},l={timeRendering:a.timeRendering||!1,timeSeriesProcessing:a.timeSeriesProcessing||!1,timeSetup:a.timeSetup||!1},h=t.getColumn("x",!0),c=t.getColumn("y",!0),g=s.data,u=r.getExtremes(),m=u.min,p=u.max,f=n.getExtremes(),b=f.min,x=f.max,A={},v=!!t.sampling,P=s.marker&&s.marker.radius,T=t.cvsStrokeBatch||1e3,C=s.enableMouseTracking,M=s.threshold,S=tU(M),E=n.getThreshold(M),k=t.fill,R=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),U=!!s.stacking,w=t.cropStart||0,L=o.options.loading,N=t.requireSorting,_=s.connectNulls,D=!h,z=U?t.data:h||g,G=t.fillOpacity?y().parse(t.color).setOpacity(tL(s.fillOpacity,.75)).get():t.color,I="x"===s.findNearestPointBy,B=this.boost||{},O=t.cvsDrawPoint,V=s.lineWidth?t.cvsLineTo:void 0,X=P&&P<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;B.target&&B.target.attr({href:i}),(t.points||t.graph)&&tC(t),t.plotGroup("group","series",t.visible?"visible":"hidden",s.zIndex,o.seriesGroup),t.markerGroup=t.group,tk(t,"destroy",function(){t.markerGroup=null});let F=this.points=[],H=this.getContext();if(t.buildKDTree=tE,B.clear&&B.clear(),!t.visible)return;g.length>99999&&(o.options.loading=tw(L,{labelStyle:{backgroundColor:tM("#ffffff").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),d().clearTimeout(e),o.showLoading("Drawing..."),o.options.loading=L),l.timeRendering&&console.time("canvas rendering");let Y=0,W,K,j=E,Z,q,Q,J,$,tt,te=function(){k?(H.fillStyle=G,H.fill()):(H.strokeStyle=t.color,H.lineWidth=s.lineWidth,H.stroke())},ti=function(e,i,s,r){0===Y&&(H.beginPath(),V&&(H.lineJoin="round")),o.scroller&&"highcharts-navigator-series"===t.options.className?(i+=o.scroller.top,s&&(s+=o.scroller.top)):i+=o.plotTop,e+=o.plotLeft,Z?H.moveTo(e,i):O?O(H,e,i,s,K):V?V(H,e,i):X&&X.call(t,H,e,i,P,r),(Y+=1)===T&&(te(),Y=0),K={clientX:e,plotY:i,yBottom:s}},ts=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||!!this.getColumn("x",!0).length&&this.getColumn("x",!0),to=function(t,e,i){tt=I?t:t+","+e,C&&!A[tt]&&(A[tt]=!0,o.inverted&&(t=r.len-t,e=n.len-e),F.push({x:!!ts&&ts[w+i],clientX:t,plotX:t,plotY:e,i:w+i}))};ty.eachAsync(z,(e,i)=>{let s=void 0===o.index,a,l,h,d,g,u,f=!1,A=!1,y=NaN,P=NaN,T=!0;return!s&&(D?(a=e[0],l=e[1],z[i+1]&&(y=z[i+1][0]),z[i-1]&&(P=z[i-1][0])):(a=e,l=c[i],z[i+1]&&(y=z[i+1]),z[i-1]&&(P=z[i-1])),y&&y>=m&&y<=p&&(f=!0),P&&P>=m&&P<=p&&(A=!0),R?(D&&(l=e.slice(1,3)),u=l[0],l=l[1]):U&&(a=e.x,u=(l=e.stackY)-e.y),g=null===l,N||(T=l>=b&&l<=x),!g&&(a>=m&&a<=p&&T||f||A)&&(h=Math.round(r.toPixels(a,!0)),v?((void 0===J||h===W)&&(R||(u=l),(void 0===$||l>Q)&&(Q=l,$=i),(void 0===J||u{let n;let a=r.plotY;if(void 0!==a&&!isNaN(a)&&null!==r.y&&e){let{x:a=0,y:l=0,width:h=0,height:d=0}=r.shapeArgs||{};n=t.styledMode?r.series.colorAttribs(r):r.series.pointAttribs(r),e.fillStyle=n.fill,i?e.fillRect(o.len-l+s.left,s.len-a+o.top,-d,-h):e.fillRect(a+s.left,l+o.top,h,d)}}),this.canvasToSVG()):this.chart.showLoading("Your browser doesn't support HTML5 canvas,
    please use a modern browser")}t.compose=function(t,e,i){let d=e.prototype;if(!d.renderCanvas){let{area:e,bubble:f,column:b,heatmap:x,scatter:A}=i;if(t.prototype.callbacks.push(t=>{tk(t,"predraw",a),tk(t,"render",n)}),d.canvasToSVG=l,d.cvsLineTo=h,d.getContext=c,d.renderCanvas=g,e){let t=e.prototype;t.cvsDrawPoint=s,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(f){let t=f.prototype;t.cvsMarkerCircle=o,t.cvsStrokeBatch=1}if(b){let t=b.prototype;t.cvsDrawPoint=r,t.fill=!0,t.sampling=!0}if(x&&tN(x.prototype,"drawPoints",p),A){let t=A.prototype;t.cvsMarkerCircle=u,t.cvsMarkerSquare=m,t.fill=!0}}}}(o||(o={}));let t_=o,tD=d();tD.initCanvasBoost=function(){t_.compose(tD.Chart,tD.Series,tD.seriesTypes)};let tz=d();return l.default})()); \ No newline at end of file diff --git a/modules/boost-canvas.src.js b/modules/boost-canvas.src.js index 9567a93a26..3eca3806a3 100644 --- a/modules/boost-canvas.src.js +++ b/modules/boost-canvas.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/boost-canvas * @requires highcharts * @@ -2894,10 +2894,17 @@ function getPoint(series, boostPoint) { if (boostPoint instanceof PointClass) { return boostPoint; } - const xData = ((series.getColumn('x').length ? series.getColumn('x') : void 0) || + const isScatter = series.is('scatter'), xData = ((isScatter && series.getColumn('x', true).length ? + series.getColumn('x', true) : + void 0) || + (series.getColumn('x').length ? series.getColumn('x') : void 0) || seriesOptions.xData || series.getColumn('x', true) || - false), point = new PointClass(series, (isArray(series.options.data) ? series.options.data : [])[boostPoint.i], xData ? xData[boostPoint.i] : void 0); + false), yData = (series.getColumn('y', true) || + seriesOptions.yData || + false), point = new PointClass(series, (isScatter && xData && yData) ? + [xData[boostPoint.i], yData[boostPoint.i]] : + (isArray(series.options.data) ? series.options.data : [])[boostPoint.i], xData ? xData[boostPoint.i] : void 0); point.category = BoostSeries_pick(xAxis.categories ? xAxis.categories[point.x] : point.x, // @todo simplify @@ -2916,10 +2923,6 @@ function getPoint(series, boostPoint) { * @private */ function scatterProcessData(force) { - var _a, - _b, - _c, - _d; const series = this, { options, xAxis, yAxis } = series; // Process only on changes if (!series.isDirty && @@ -2986,12 +2989,12 @@ function scatterProcessData(force) { } } if (xRangeNeeded) { - (_a = xAxis.options).max ?? (_a.max = xDataMax); - (_b = xAxis.options).min ?? (_b.min = xDataMin); + xAxis.dataMax = Math.max(xDataMax, xAxis.dataMax || 0); + xAxis.dataMin = Math.min(xDataMin, xAxis.dataMin || 0); } if (yRangeNeeded) { - (_c = yAxis.options).max ?? (_c.max = yDataMax); - (_d = yAxis.options).min ?? (_d.min = yDataMin); + yAxis.dataMax = Math.max(yDataMax, yAxis.dataMax || 0); + yAxis.dataMin = Math.min(yDataMin, yAxis.dataMin || 0); } // Set properties as base processData series.cropped = cropped; diff --git a/modules/boost.js b/modules/boost.js index 4d0f1b6fbb..8695815cd1 100644 --- a/modules/boost.js +++ b/modules/boost.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/boost * @requires highcharts * @@ -10,4 +10,4 @@ * * License: www.highcharts.com/license * - * */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost",["highcharts/highcharts"],function(e){return t(e,e.Color)}):"object"==typeof exports?exports["highcharts/modules/boost"]=t(e._Highcharts,e._Highcharts.Color):e.Highcharts=t(e.Highcharts,e.Highcharts.Color)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";let i,r;var s={620:e=>{e.exports=t},944:t=>{t.exports=e}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={exports:{}};return s[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};n.d(a,{default:()=>eU});var l=n(944),h=/*#__PURE__*/n.n(l);let d=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],f={};d.forEach(e=>{f[e]=!0});let{composed:u}=h(),{addEvent:g,pick:m,pushUnique:c}=h();function p(e){let t=e.series,i=e.boost=e.boost||{},r=e.options.boost||{},s=m(r.seriesThreshold,50);if(t.length>=s)return!0;if(1===t.length)return!1;let o=r.allowForce;if(void 0===o){for(let t of(o=!0,e.xAxis))if(m(t.min,-1/0)>m(t.dataMin,-1/0)||m(t.max,1/0){if(null!=e&&void 0!==e.length&&e.length>0)return t=e.length,!0}),t}(e.getColumn("x",!0),l.data,e.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=o&&(n===t.length&&a===n||a>5),i.forceChartBoost}function b(e){function t(){e.boost&&e.boost.wgl&&p(e)&&e.boost.wgl.render(e)}g(e,"predraw",function(){e.boost=e.boost||{},e.boost.forceChartBoost=void 0,e.boosted=!1,e.axes.some(e=>e.isPanning)||e.boost.clear?.(),e.boost.canvas&&e.boost.wgl&&p(e)&&e.boost.wgl.allocateBuffer(e),e.boost.markerGroup&&e.xAxis&&e.xAxis.length>0&&e.yAxis&&e.yAxis.length>0&&e.boost.markerGroup.translate(e.xAxis[0].pos,e.yAxis[0].pos)}),g(e,"load",t,{order:-1}),g(e,"redraw",t);let i=-1,r=-1;g(e.pointer,"afterGetHoverData",t=>{let s=t.hoverPoint?.series;if(e.boost=e.boost||{},e.boost.markerGroup&&s){let t=e.inverted?s.yAxis:s.xAxis,o=e.inverted?s.xAxis:s.yAxis;(t&&t.pos!==i||o&&o.pos!==r)&&(e.series.forEach(e=>{e.halo?.hide()}),e.boost.markerGroup.translate(t.pos,o.pos),i=t.pos,r=o.pos)}})}let x={compose:function(e,t){return t&&c(u,"Boost.Chart")&&e.prototype.callbacks.push(b),e},getBoostClipRect:function(e,t){let i=e.navigator,r={x:e.plotLeft,y:e.plotTop,width:e.plotWidth,height:e.plotHeight};if(i&&e.inverted?(r.width+=i.top+i.height,i.opposite||(r.x=i.left)):i&&!e.inverted&&(r.height=i.top+i.height-e.plotTop),t.getClipBox){let{xAxis:i,yAxis:s}=t;if(r=t.getClipBox(),e.inverted){let e=r.width;r.width=r.height,r.height=e,r.x=s.pos,r.y=i.pos}else r.x=i.pos,r.y=s.pos}if(t===e){let t=e.inverted?e.xAxis:e.yAxis;t.length<=1&&(r.y=Math.min(t[0].pos,r.y),r.height=t[0].pos-e.plotTop+t[0].len)}return r},isChartSeriesBoosting:p};var A=n(620),y=/*#__PURE__*/n.n(A);let v={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:P,error:T,pick:C}=h(),k=class{constructor(e){if(this.errors=[],this.uLocations={},this.gl=e,e&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let e=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),t=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=e=>this.gl.getUniformLocation(this.shaderProgram,e);return e&&t?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,e),this.gl.attachShader(this.shaderProgram,t),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&T("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(e,t){let i=this.gl.createShader("vertex"===t?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,e),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+t+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(e,t,i,r=1){let s=e.options,o=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&e.is("bubble")){let a=e.getPxExtremes();o=C(s.zMin,P(t,!1===s.displayNegative?s.zThreshold:-Number.MAX_VALUE,o)),n=C(s.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==e.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,e.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*r),this.setUniform("bubbleMaxSize",a.maxPxSize*r),this.setUniform("bubbleZMin",o),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",e.options.zThreshold)}}setColor(e){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,e[0]/255,e[1]/255,e[2]/255,e[3])}setDrawAsCircle(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,e?1:0)}setInverted(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,e)}setPMatrix(e){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,e)}setPointSize(e){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,e)}setSkipTranslation(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,!0===e?1:0)}setTexture(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,e)}setUniform(e,t){if(this.gl&&this.shaderProgram){let i=this.uLocations[e]=this.uLocations[e]||this.gl.getUniformLocation(this.shaderProgram,e);this.gl.uniform1f(i,t)}}},E=class{constructor(e,t,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=e,this.shader=t}allocate(e){this.iterator=-1,this.preAllocated=new Float32Array(4*e)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(e,t,i){let r;return(this.data=e||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(r=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||r,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),t),this.gl.enableVertexAttribArray(this.vertAttribute),r=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(e,t,i,r){this.preAllocated&&(this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=r)}render(e,t,i){let r=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!r&&((!e||e>r||e<0)&&(e=0),(!t||t>r)&&(t=r),!(e>=t)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],e/this.components,(t-e)/this.components),!0))}},{parse:S}=y(),{doc:M,win:w}=h(),{isNumber:U,isObject:R,merge:L,objectEach:_,pick:z}=h(),N={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},D={scatter:!0,bubble:!0},G=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class I{static orthoMatrix(e,t){return[2/e,0,0,0,0,-(2/t),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(e){let t,i,r;return e.boosted?(t=!!e.options.stacking,i=(e.getColumn("x").length?e.getColumn("x"):void 0)||e.options.xData||e.getColumn("x",!0),r=(t?e.data:i||e.options.data).length,"treemap"===e.type?r*=12:"heatmap"===e.type?r*=6:N[e.type]&&(r*=2),r):0}constructor(e){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=e,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||w.devicePixelRatio||1}setOptions(e){"pixelRatio"in e||(e.pixelRatio=1),L(!0,this.settings,e)}allocateBuffer(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.series.forEach(e=>{e.boosted&&(i+=I.seriesPointCount(e))}),t&&t.allocate(i))}allocateBufferForSingleSeries(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.boosted&&(i=I.seriesPointCount(e)),t&&t.allocate(i))}clear(){let e=this.gl;e&&e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}pushSeriesData(e,t){let i=this.data,r=this.settings,s=this.vbuffer,o=e.pointArrayMap&&"low,high"===e.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=e,f=!!a.stacking,u=a.data,g=e.xAxis.getExtremes(),m=g.min-(e.xAxis.minPointOffset||0),c=g.max+(e.xAxis.minPointOffset||0),p=e.yAxis.getExtremes(),b=p.min-(e.yAxis.minPointOffset||0),x=p.max+(e.yAxis.minPointOffset||0),A=(e.getColumn("x").length?e.getColumn("x"):void 0)||a.xData||e.getColumn("x",!0),y=(e.getColumn("y").length?e.getColumn("y"):void 0)||a.yData||e.getColumn("y",!0),v=(e.getColumn("z").length?e.getColumn("z"):void 0)||a.zData||e.getColumn("z",!0),P=!A||0===A.length,T=a.connectNulls,C=e.points||!1,k=f?e.data:A||u,E={x:Number.MAX_VALUE,y:0},M={x:-Number.MAX_VALUE,y:0},w=void 0===n.index,U=N[e.type],L=a.zoneAxis||"y",_=a.zones||!1,z=a.threshold,D=this.getPixelRatio(),G=e.chart.plotWidth,I=!1,B=!1,O,V,X=0,F=!1,H,W,q,Y,j=-1,Z=!1,K=!1,Q,J=!1,$=!1,ee=!1,et=!1,ei=!0,er=!0,es,eo=!1,en=!1,ea=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(en="value"!==a.gapUnit?a.gapSize*e.closestPointRange:a.gapSize),_&&(es=[],_.forEach((e,t)=>{if(e.color){let i=S(e.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,es[t]=i,eo||void 0!==e.value||(eo=i)}}),eo||(eo=S(e.pointAttribs&&e.pointAttribs().fill||e.color).rgba,eo[0]/=255,eo[1]/=255,eo[2]/=255)),n.inverted&&(G=e.chart.plotHeight),e.closestPointRangePx=Number.MAX_VALUE;let el=e=>{e&&(t.colorData.push(e[0]),t.colorData.push(e[1]),t.colorData.push(e[2]),t.colorData.push(e[3]))},eh=(e,o,n,a=1,l)=>{el(l),1!==D&&(!r.useGPUTranslations||t.skipTranslation)&&(e*=D,o*=D,a*=D),r.usePreallocated&&s?(s.push(e,o,n?1:0,a),ea+=4):(i.push(e),i.push(o),i.push(n?D:0),i.push(a))},ed=()=>{t.segments.length&&(t.segments[t.segments.length-1].to=i.length||ea)},ef=()=>{t.segments.length&&t.segments[t.segments.length-1].from===(i.length||ea)||(ed(),t.segments.push({from:i.length||ea}))},eu=(e,t,i,r,s)=>{el(s),eh(e+i,t),el(s),eh(e,t),el(s),eh(e,t+r),el(s),eh(e,t+r),el(s),eh(e+i,t+r),el(s),eh(e+i,t)};if(ef(),C&&C.length>0){t.skipTranslation=!0,t.drawMode="TRIANGLES",C[0].node&&C[0].node.levelDynamic&&C.sort((e,t)=>{if(e.node){if(e.node.levelDynamic>t.node.levelDynamic)return 1;if(e.node.levelDynamic{let i,r;let s=t.plotY;if(void 0!==s&&!isNaN(s)&&null!==t.y&&t.shapeArgs){let{x:s=0,y:o=0,width:a=0,height:l=0}=t.shapeArgs;i=(r=n.styledMode?t.series.colorAttribs(t):r=t.series.pointAttribs(t))["stroke-width"]||0,ee=S(r.fill).rgba,ee[0]/=255,ee[1]/=255,ee[2]/=255,e.is("treemap")&&(i=i||1,V=S(r.stroke).rgba,V[0]/=255,V[1]/=255,V[2]/=255,eu(s,o,a,l,V),i/=2),e.is("heatmap")&&n.inverted&&(s=h.len-s,o=d.len-o,a=-a,l=-l),eu(s+i,o+i,a-2*i,l-2*i,ee)}}),ed();return}for(;j=3&&(Y=q[2],q[2]>t.zMax&&(t.zMax=q[2]),q[2]t.zMax&&(t.zMax=v[j]),v[j]=m&&K<=c&&(J=!0),Z&&Z>=m&&Z<=c&&($=!0),o?(P&&(W=q.slice(1,3)),Q=e.getColumn("low",!0)?.[j],W=e.getColumn("high",!0)?.[j]||0):f&&(H=q.x,Q=(W=q.stackY)-q.y),null!=b&&null!=x&&(ei=W>=b&&W<=x),(l||ei)&&(H>c&&M.xm&&(E.x=H,E.y=W),null!==W||!T)){if(null===W||!ei&&!J&&!$){ef();continue}if((l&&(K>=m||H>=m)&&(Z<=c||H<=c)||!l&&H>=m&&H<=c)&&(et=!0),et||J||$){if(en&&H-Z>en&&ef(),_){let e;_.some((t,i)=>{let r=_[i-1];return"x"===L?void 0!==t.value&&H<=t.value&&(es[i]&&(!r||H>=r.value)&&(e=es[i]),!0):void 0!==t.value&&W<=t.value&&(es[i]&&(!r||W>=r.value)&&(e=es[i]),!0)}),ee=e||eo||ee}if(r.useGPUTranslations||(t.skipTranslation=!0,H=h.toPixels(H,!0),W=d.toPixels(W,!0),!(H>G)||"POINTS"!==t.drawMode)){if(t.hasMarkers&&et&&!1!==I&&(e.closestPointRangePx=Math.min(e.closestPointRangePx,Math.abs(H-I))),!r.useGPUTranslations&&!r.usePreallocated&&I&&1>Math.abs(H-I)&&B&&1>Math.abs(W-B)){r.debug.showSkipSummary&&++X;continue}U&&(O=Q||0,(!1===Q||void 0===Q)&&(O=W<0?W:0),(o||f)&&!d.logarithmic||(O=Math.max(null===z?b:z,b)),r.useGPUTranslations||(O=d.toPixels(O,!0)),eh(H,O,0,0,ee)),a.step&&!er&&eh(H,B,0,2,ee),eh(H,W,0,"bubble"===e.type?Y||1:2,ee),I=H,B=W,F=!0,er=!1}}}}r.debug.showSkipSummary&&console.log("skipped points:",X);let eg=(e,i)=>{if(r.useGPUTranslations||(t.skipTranslation=!0,e.x=h.toPixels(e.x,!0),e.y=d.toPixels(e.y,!0)),i){this.data=[e.x,e.y,0,2].concat(this.data);return}eh(e.x,e.y,0,2)};!F&&!1!==T&&"line_strip"===e.drawMode&&(E.x-Number.MAX_VALUE&&eg(M)),ed()}pushSeries(e){let t=this.markerData,i=this.series,r=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=t.length),r.debug.timeSeriesProcessing&&console.time("building "+e.type+" series");let s={segments:[],markerFrom:t.length,colorData:[],series:e,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!e.options.marker&&!1!==e.options.marker.enabled,showMarkers:!0,drawMode:v[e.type]||"LINE_STRIP"};e.index>=i.length?i.push(s):i[e.index]=s,this.pushSeriesData(e,s),r.debug.timeSeriesProcessing&&console.timeEnd("building "+e.type+" series")}flush(){let e=this.vbuffer;this.data=[],this.markerData=[],this.series=[],e&&e.destroy()}setXAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("xAxisTrans",e.transA*i),t.setUniform("xAxisMin",e.min),t.setUniform("xAxisMinPad",e.minPixelPadding*i),t.setUniform("xAxisPointRange",e.pointRange),t.setUniform("xAxisLen",e.len*i),t.setUniform("xAxisPos",e.pos*i),t.setUniform("xAxisCVSCoord",!e.horiz),t.setUniform("xAxisIsLog",!!e.logarithmic),t.setUniform("xAxisReversed",!!e.reversed)}setYAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("yAxisTrans",e.transA*i),t.setUniform("yAxisMin",e.min),t.setUniform("yAxisMinPad",e.minPixelPadding*i),t.setUniform("yAxisPointRange",e.pointRange),t.setUniform("yAxisLen",e.len*i),t.setUniform("yAxisPos",e.pos*i),t.setUniform("yAxisCVSCoord",!e.horiz),t.setUniform("yAxisIsLog",!!e.logarithmic),t.setUniform("yAxisReversed",!!e.reversed)}setThreshold(e,t){let i=this.shader;i&&(i.setUniform("hasThreshold",e),i.setUniform("translatedThreshold",t))}renderChart(e){let t=this.gl,i=this.settings,r=this.shader,s=this.vbuffer,o=this.getPixelRatio();if(!e)return!1;this.width=e.chartWidth*o,this.height=e.chartHeight*o;let n=this.height,a=this.width;if(!t||!r||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),t.canvas.width=a,t.canvas.height=n,r.bind(),t.viewport(0,0,a,n),r.setPMatrix(I.orthoMatrix(a,n)),i.lineWidth>1&&!h().isMS&&t.lineWidth(i.lineWidth),s&&(s.build(this.data,"aVertexPosition",4),s.bind()),r.setInverted(e.inverted),this.series.forEach((n,a)=>{let l=n.series.options,h=l.marker,d=void 0!==l.lineWidth?l.lineWidth:1,f=l.threshold,u=U(f),g=n.series.yAxis.getThreshold(f),m=z(l.marker?l.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((l.marker?l.marker.radius:10)||10)),c=this.textureHandles[h&&h.symbol||n.series.symbol]||this.textureHandles.circle,p,b,x,A=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(c.isReady&&(t.bindTexture(t.TEXTURE_2D,c.handle),r.setTexture(c.handle)),e.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,e.seriesGroup).addClass("highcharts-tracker"),x=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):x=n.series.markerGroup?.getStyle("fill"):(x="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,l.colorByPoint&&(x=n.series.chart.options.colors[a])),n.series.fillOpacity&&l.fillOpacity&&(x=new(y())(x).setOpacity(z(l.fillOpacity,1)).get()),A=S(x).rgba,i.useAlpha||(A[3]=1),"add"===l.boostBlending?(t.blendFunc(t.SRC_ALPHA,t.ONE),t.blendEquation(t.FUNC_ADD)):"mult"===l.boostBlending||"multiply"===l.boostBlending?t.blendFunc(t.DST_COLOR,t.ZERO):"darken"===l.boostBlending?(t.blendFunc(t.ONE,t.ONE),t.blendEquation(t.FUNC_MIN)):t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA),r.reset(),n.colorData.length>0?(r.setUniform("hasColor",1),(b=new E(t,r)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),b.bind()):(r.setUniform("hasColor",0),t.disableVertexAttribArray(t.getAttribLocation(r.getProgram(),"aColor"))),r.setColor(A),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(u,g),"POINTS"===n.drawMode&&r.setPointSize(2*z(l.marker&&l.marker.radius,.5)*o),r.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&r.setBubbleUniforms(n.series,n.zMin,n.zMax,o),r.setDrawAsCircle(D[n.series.type]||!1),s)){if(d>0||"LINE_STRIP"!==n.drawMode)for(p=0;p{this.render(e)},1)}setSize(e,t){let i=this.shader;i&&(this.width!==e||this.height!==t)&&(this.width=e,this.height=t,i.bind(),i.setPMatrix(I.orthoMatrix(e,t)))}init(e,t){let i=this.settings;if(this.isInited=!1,!e)return!1;i.debug.timeSetup&&console.time("gl setup");for(let t=0;t{let i={isReady:!1,texture:M.createElement("canvas"),handle:r.createTexture()},s=i.texture.getContext("2d");this.textureHandles[e]=i,i.texture.width=512,i.texture.height=512,s.mozImageSmoothingEnabled=!1,s.webkitImageSmoothingEnabled=!1,s.msImageSmoothingEnabled=!1,s.imageSmoothingEnabled=!1,s.strokeStyle="rgba(255, 255, 255, 0)",s.fillStyle="#FFF",t(s);try{r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,i.handle),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,i.texture),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.bindTexture(r.TEXTURE_2D,null),i.isReady=!0}catch(e){}};return o("circle",e=>{e.beginPath(),e.arc(256,256,256,0,2*Math.PI),e.stroke(),e.fill()}),o("square",e=>{e.fillRect(0,0,512,512)}),o("diamond",e=>{e.beginPath(),e.moveTo(256,0),e.lineTo(512,256),e.lineTo(256,512),e.lineTo(0,256),e.lineTo(256,0),e.fill()}),o("triangle",e=>{e.beginPath(),e.moveTo(0,512),e.lineTo(256,0),e.lineTo(512,512),e.lineTo(0,512),e.fill()}),o("triangle-down",e=>{e.beginPath(),e.moveTo(0,0),e.lineTo(256,512),e.lineTo(512,0),e.lineTo(0,0),e.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let e=this.gl,t=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),t&&t.destroy(),e&&(_(this.textureHandles,t=>{t.handle&&e.deleteTexture(t.handle)}),e.canvas.width=1,e.canvas.height=1)}}let{getBoostClipRect:B,isChartSeriesBoosting:O}=x,{getOptions:V}=h(),{composed:X,doc:F,noop:H,win:W}=h(),{addEvent:q,destroyObjectProperties:Y,error:j,extend:Z,fireEvent:K,isArray:Q,isNumber:J,pick:$,pushUnique:ee,wrap:et,defined:ei}=h();function er(e,t){let i=t.boost;e&&i&&i.target&&i.canvas&&!O(t.chart)&&e.allocateBufferForSingleSeries(t)}function es(e){return $(e&&e.options&&e.options.boost&&e.options.boost.enabled,!0)}function eo(e,t){let i=e.constructor,s=e.seriesGroup||t.group,o=e.chartWidth,n=e.chartHeight,a=e,l="undefined"!=typeof SVGForeignObjectElement,h=!1;O(e)?a=e:(a=t,h=!!(t.options.events?.click||t.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,r||(r=F.createElement("canvas")),!d.target&&(d.canvas=r,e.renderer.forExport||!l?(a.renderTarget=d.target=e.renderer.image("",0,0,o,n).addClass("highcharts-boost-canvas").add(s),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})}):(d.targetFo=e.renderer.createElement("foreignObject").add(s),a.renderTarget=d.target=F.createElement("canvas"),d.targetCtx=d.target.getContext("2d"),d.targetFo.element.appendChild(d.target),d.clear=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height},d.copy=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height,d.targetCtx.drawImage(d.canvas,0,0)}),d.resize=function(){o=e.chartWidth,n=e.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:o,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(e.plotLeft,e.plotTop)},d.clipRect=e.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:t.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(s).translate(t.xAxis.pos,t.yAxis.pos))),d.canvas.width=o,d.canvas.height=n,d.clipRect){let t=B(e,a),i=t.width===e.clipBox.width&&t.height===e.clipBox.height?s:d.targetFo||d.target;d.clipRect.attr(t),i?.clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new I(e=>{e.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),e.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||j("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(e.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(e)),d.wgl.setSize(o,n),d.wgl}function en(e){let t=e.points;if(t){let e,i;for(i=0;i{let i=e[t];i&&(e[t]=i.destroy())}),e.zones))Y(t,void 0,!0)}function ea(e,t,i,r,s,o){let n=(s=s||0)+(r=r||3e3),a=!0;for(;a&&s(i.boostThreshold||Number.MAX_VALUE)&&J(o.min)&&J(o.max)&&(!t||J(s.min)&&J(s.max))&&(!n||J(n.min)&&J(n.max))}let eh=(e,t)=>!e.forceCrop&&(O(e.chart)||(t?t.length:0)>=(e.options.boostThreshold||Number.MAX_VALUE));function ed(){let e=this,t=e.chart;t.boost&&t.boost.markerGroup===e.markerGroup&&(e.markerGroup=null),t.hoverPoints&&(t.hoverPoints=t.hoverPoints.filter(function(t){return t.series===e})),t.hoverPoint&&t.hoverPoint.series===e&&(t.hoverPoint=null)}function ef(){let e=this.boost;e&&e.canvas&&e.target&&(e.wgl&&e.wgl.clear(),e.clear&&e.clear())}function eu(e){let t=e.boost;t&&t.canvas&&t.target&&t.wgl&&!O(e.chart)&&t.wgl.render(e.chart)}function eg(e,t){let i=e.options,r=e.xAxis,s=e.pointClass;if(t instanceof s)return t;let o=(e.getColumn("x").length?e.getColumn("x"):void 0)||i.xData||e.getColumn("x",!0)||!1,n=new s(e,(Q(e.options.data)?e.options.data:[])[t.i],o?o[t.i]:void 0);return n.category=$(r.categories?r.categories[n.x]:n.x,n.x),n.key=n.name??n.category,n.dist=t.dist,n.distX=t.distX,n.plotX=t.plotX,n.plotY=t.plotY,n.index=t.i,n.percentage=t.percentage,n.isInside=e.isPointInside(n),n}function em(e){var t,i,r,s;let{options:o,xAxis:n,yAxis:a}=this;if(!this.isDirty&&!n.isDirty&&!a.isDirty&&!e)return!1;this.yAxis.setTickInterval();let l=o.boostThreshold||0,h=o.cropThreshold,d=this.getColumn("x"),f=n.getExtremes(),u=f.max??Number.MAX_VALUE,g=f.min??-Number.MAX_VALUE,m=this.getColumn("y"),c=a.getExtremes(),p=c.max??Number.MAX_VALUE,b=c.min??-Number.MAX_VALUE;if(!this.boosted&&n.old&&a.old&&g>=(n.old.min??-Number.MAX_VALUE)&&u<=(n.old.max??Number.MAX_VALUE)&&b>=(a.old.min??-Number.MAX_VALUE)&&p<=(a.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:d,y:m}),!0;let x=this.dataTable.rowCount;if(!l||x=g&&k<=u&&M>=b&&M<=p?(A.push({x:k,y:M}),y.push(k),v.push(M),P&&(E=Math.max(E,k),S=Math.min(S,k)),T&&(w=Math.max(w,M),U=Math.min(U,M))):C=!0;return P&&((t=n.options).max??(t.max=E),(i=n.options).min??(i.min=S)),T&&((r=a.options).max??(r.max=w),(s=a.options).min??(s.min=U)),this.cropped=C,this.cropStart=0,this.dataTable.modified.setColumns({x:y,y:v}),eh(this,y)||(this.processedData=A),!0}function ec(){let e=this.options||{},t=this.chart,r=t.boost,s=this.boost,o=this.xAxis,n=this.yAxis,a=e.xData||this.getColumn("x",!0),l=e.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),f=this.processedData||e.data,u=o.getExtremes(),g=u.min-(o.minPointOffset||0),m=u.max+(o.minPointOffset||0),c=n.getExtremes(),p=c.min-(n.minPointOffset||0),b=c.max+(n.minPointOffset||0),x={},A=!!this.sampling,y=e.enableMouseTracking,v=e.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!e.stacking,C=this.cropStart||0,k=this.requireSorting,E=!a,S="x"===e.findNearestPointBy,M=(this.getColumn("x",!0).length?this.getColumn("x",!0):void 0)||this.options.xData||this.getColumn("x",!0),w=$(e.lineWidth,1),U=!1,R,L=n.getThreshold(v),_,z,N,D;if(o.isPanning||n.isPanning||(U=eo(t,this),t.boosted=!0,!this.visible))return;(this.points||this.graph)&&en(this),O(t)?(this.markerGroup&&this.markerGroup!==r?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=r?.markerGroup,s&&s.target&&(this.renderTarget=s.target=s.target.destroy())):(this.markerGroup===r?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"));let G=this.points=[],I=(e,r,s,a)=>{let l=!!M&&M[C+s],h=e=>{t.inverted&&(e=o.len-e,r=n.len-r),G.push({destroy:H,x:l,clientX:e,plotX:e,plotY:r,i:C+s,percentage:a})};e=Math.ceil(e),i=S?e:e+","+r,y&&(x[i]?l===M[M.length-1]&&(G.length--,h(e)):(x[i]=!0,h(e)))};this.buildKDTree=H,K(this,"renderCanvas"),this.is("line")&&w>1&&s?.target&&r&&!r.lineWidthFilter&&(r.lineWidthFilter=t.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*w}}],attributes:{id:"linewidth"}}),s.target.attr({filter:"url(#linewidth)"})),U&&(er(U,this),U.pushSeries(this),eu(this));let B=U.settings;t.renderer.forExport||(B.debug.timeKDTree&&console.time("kd tree building"),ea(T?this.data.slice(C):a||f,function(e,i){let r=void 0===t.index,s,a,f,u,c,x=!1,y=!0;return!ei(e)||(!r&&(E?(s=e[0],a=e[1]):(s=e,a=l?.[i]),P?(E&&(a=e.slice(1,3)),x=h[i],a=d[i]):T&&(s=e.x,x=(a=e.stackY)-e.y,c=e.percentage),k||(y=(a||0)>=p&&a<=b),null!==a&&s>=g&&s<=m&&y&&(f=o.toPixels(s,!0),A?((void 0===N||f===R)&&(P||(x=a),(void 0===D||a>z)&&(z=a,D=i),(void 0===N||x<_)&&(_=x,N=i)),S&&f===R||(void 0!==N&&(u=n.toPixels(z,!0),L=n.toPixels(_,!0),I(f,u,D,c),L!==u&&I(f,L,N,c)),N=D=void 0,R=f)):I(f,u=Math.ceil(n.toPixels(a,!0)),i,c))),!r)},()=>{K(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),B.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function ep(e){let t=!0;if(this.chart.options&&this.chart.options.boost&&(t=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!t||!this.boosted)return e.call(this);this.chart.boosted=!0;let i=eo(this.chart,this);i&&(er(i,this),i.pushSeries(this)),eu(this)}function eb(e){if(this.boosted){if(el(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return e.apply(this,[].slice.call(arguments,1))}function ex(e){let t=this.options.data;if(es(this.chart)&&f[this.type]){let i=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!eh(this,t)||i||this.is("treemap")||this.options.stacking||!el(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;i&&!this.yAxis.treeGrid?em.call(this,arguments[1]):e.apply(this,[].slice.call(arguments,1)),t=this.getColumn("x",!0)}if(this.boosted=eh(this,t),this.boosted){let e;!this.options.data?.length||J(e=this.getFirstValidPoint(this.options.data))||Q(e)||this.is("treemap")||j(12,!1,this.chart),function(e){e.boost=e.boost||{getPoint:t=>eg(e,t)};let t=e.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(i=>{t.push({prop:i,val:e[i],own:Object.hasOwnProperty.call(e,i)})}),e.allowDG=!1,e.directTouch=!1,e.stickyTracking=!0,e.finishedAnimating=!0,e.labelBySeries&&(e.labelBySeries=e.labelBySeries.destroy()),e.is("scatter")&&!e.is("treemap")&&e.data.length){for(let t of e.data)t?.destroy?.();e.data.length=0,e.points.length=0,delete e.processedData}}(this)}else!function(e){let t=e.boost,i=e.chart,r=i.boost;if(r?.markerGroup)for(let e of(r.markerGroup.destroy(),r.markerGroup=void 0,i.series))e.markerGroup=void 0,e.markerGroup=e.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");t&&((t.altered||[]).forEach(t=>{t.own?e[t.prop]=t.val:delete e[t.prop]}),t.clear&&t.clear()),(i.seriesGroup||e.group)?.clip()}(this)}else e.apply(this,[].slice.call(arguments,1))}function eA(e){let t=e.apply(this,[].slice.call(arguments,1));return this.boost&&t?this.boost.getPoint(t):t}let ey={compose:function(e,t,i){if(ee(X,"Boost.Series")){let r=V().plotOptions,s=e.prototype;if(q(e,"destroy",ed),q(e,"hide",ef),i&&(s.renderCanvas=ec),et(s,"getExtremes",eb),et(s,"processData",ex),et(s,"searchPoint",eA),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(e=>(function(e,t,i){function r(e){let t=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!t&&es(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&f[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():e.call(this)}if(et(e,i,r),"translate"===i)for(let e of["column","arearange","columnrange","heatmap","treemap"])t[e]&&et(t[e].prototype,i,r)})(s,t,e)),d.forEach(e=>{let i=r[e];i&&(i.boostThreshold=5e3,i.boostData=[],t[e].prototype.fillOpacity=!0)}),i){let{area:e,areaspline:i,bubble:r,column:s,heatmap:o,scatter:n,treemap:a}=t;if(e&&Z(e.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&Z(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),r){let e=r.prototype;delete e.buildKDTree,et(e,"markerAttribs",function(e){return!this.boosted&&e.apply(this,[].slice.call(arguments,1))})}s&&Z(s.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[o,a].forEach(e=>{e&&et(e.prototype,"drawPoints",ep)})}}return e},destroyGraphics:en,eachAsync:ea,getPoint:eg},ev={defaultHTMLColorMap:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{doc:eP,win:eT}=h(),{addEvent:eC,error:ek}=h(),eE=["webgl","experimental-webgl","moz-webgl","webkit-3d"];function eS(){let e;if(void 0!==eT.WebGLRenderingContext){e=eP.createElement("canvas");for(let t=0;te.renderTarget).filter(Boolean)){let{horiz:i,pos:r}=this,s=i?"scaleX":"scaleY",o=i?"translateX":"translateY",n=t?.[s]??1,a=1,l=0,h=1,d="none";this.isPanning&&(a=(e.scale??1)*n,l=(t?.[o]||0)-a*(e.move||0)+n*r-a*r,h=.7,d="blur(3px)"),t?.attr({[s]:a,[o]:l}).css({transition:"250ms filter, 250ms opacity",filter:d,opacity:h})}})},hasWebGLSupport:eS},ew=h();ew.hasWebGLSupport=eM.hasWebGLSupport,eM.compose(ew.Chart,ew.Axis,ew.Series,ew.seriesTypes,ew.Color);let eU=h();return a.default})()); \ No newline at end of file + * */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost",["highcharts/highcharts"],function(e){return t(e,e.Color)}):"object"==typeof exports?exports["highcharts/modules/boost"]=t(e._Highcharts,e._Highcharts.Color):e.Highcharts=t(e.Highcharts,e.Highcharts.Color)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";let i,r;var s={620:e=>{e.exports=t},944:t=>{t.exports=e}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={exports:{}};return s[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};n.d(a,{default:()=>eU});var l=n(944),h=n.n(l);let d=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],f={};d.forEach(e=>{f[e]=!0});let{composed:u}=h(),{addEvent:g,pick:m,pushUnique:c}=h();function p(e){let t=e.series,i=e.boost=e.boost||{},r=e.options.boost||{},s=m(r.seriesThreshold,50);if(t.length>=s)return!0;if(1===t.length)return!1;let o=r.allowForce;if(void 0===o){for(let t of(o=!0,e.xAxis))if(m(t.min,-1/0)>m(t.dataMin,-1/0)||m(t.max,1/0){if(null!=e&&void 0!==e.length&&e.length>0)return t=e.length,!0}),t}(e.getColumn("x",!0),l.data,e.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=o&&(n===t.length&&a===n||a>5),i.forceChartBoost}function b(e){function t(){e.boost&&e.boost.wgl&&p(e)&&e.boost.wgl.render(e)}g(e,"predraw",function(){e.boost=e.boost||{},e.boost.forceChartBoost=void 0,e.boosted=!1,e.axes.some(e=>e.isPanning)||e.boost.clear?.(),e.boost.canvas&&e.boost.wgl&&p(e)&&e.boost.wgl.allocateBuffer(e),e.boost.markerGroup&&e.xAxis&&e.xAxis.length>0&&e.yAxis&&e.yAxis.length>0&&e.boost.markerGroup.translate(e.xAxis[0].pos,e.yAxis[0].pos)}),g(e,"load",t,{order:-1}),g(e,"redraw",t);let i=-1,r=-1;g(e.pointer,"afterGetHoverData",t=>{let s=t.hoverPoint?.series;if(e.boost=e.boost||{},e.boost.markerGroup&&s){let t=e.inverted?s.yAxis:s.xAxis,o=e.inverted?s.xAxis:s.yAxis;(t&&t.pos!==i||o&&o.pos!==r)&&(e.series.forEach(e=>{e.halo?.hide()}),e.boost.markerGroup.translate(t.pos,o.pos),i=t.pos,r=o.pos)}})}let x={compose:function(e,t){return t&&c(u,"Boost.Chart")&&e.prototype.callbacks.push(b),e},getBoostClipRect:function(e,t){let i=e.navigator,r={x:e.plotLeft,y:e.plotTop,width:e.plotWidth,height:e.plotHeight};if(i&&e.inverted?(r.width+=i.top+i.height,i.opposite||(r.x=i.left)):i&&!e.inverted&&(r.height=i.top+i.height-e.plotTop),t.getClipBox){let{xAxis:i,yAxis:s}=t;if(r=t.getClipBox(),e.inverted){let e=r.width;r.width=r.height,r.height=e,r.x=s.pos,r.y=i.pos}else r.x=i.pos,r.y=s.pos}if(t===e){let t=e.inverted?e.xAxis:e.yAxis;t.length<=1&&(r.y=Math.min(t[0].pos,r.y),r.height=t[0].pos-e.plotTop+t[0].len)}return r},isChartSeriesBoosting:p};var A=n(620),y=n.n(A);let v={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:P,error:T,pick:C}=h(),k=class{constructor(e){if(this.errors=[],this.uLocations={},this.gl=e,e&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let e=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),t=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=e=>this.gl.getUniformLocation(this.shaderProgram,e);return e&&t?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,e),this.gl.attachShader(this.shaderProgram,t),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&T("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(e,t){let i=this.gl.createShader("vertex"===t?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,e),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+t+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(e,t,i,r=1){let s=e.options,o=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&e.is("bubble")){let a=e.getPxExtremes();o=C(s.zMin,P(t,!1===s.displayNegative?s.zThreshold:-Number.MAX_VALUE,o)),n=C(s.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==e.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,e.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*r),this.setUniform("bubbleMaxSize",a.maxPxSize*r),this.setUniform("bubbleZMin",o),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",e.options.zThreshold)}}setColor(e){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,e[0]/255,e[1]/255,e[2]/255,e[3])}setDrawAsCircle(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,e?1:0)}setInverted(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,e)}setPMatrix(e){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,e)}setPointSize(e){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,e)}setSkipTranslation(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,!0===e?1:0)}setTexture(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,e)}setUniform(e,t){if(this.gl&&this.shaderProgram){let i=this.uLocations[e]=this.uLocations[e]||this.gl.getUniformLocation(this.shaderProgram,e);this.gl.uniform1f(i,t)}}},M=class{constructor(e,t,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=e,this.shader=t}allocate(e){this.iterator=-1,this.preAllocated=new Float32Array(4*e)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(e,t,i){let r;return(this.data=e||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(r=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||r,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),t),this.gl.enableVertexAttribArray(this.vertAttribute),r=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(e,t,i,r){this.preAllocated&&(this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=r)}render(e,t,i){let r=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!r&&((!e||e>r||e<0)&&(e=0),(!t||t>r)&&(t=r),!(e>=t)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],e/this.components,(t-e)/this.components),!0))}},{parse:E}=y(),{doc:S,win:w}=h(),{isNumber:U,isObject:R,merge:L,objectEach:_,pick:z}=h(),D={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},N={scatter:!0,bubble:!0},G=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class I{static orthoMatrix(e,t){return[2/e,0,0,0,0,-(2/t),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(e){let t,i,r;return e.boosted?(t=!!e.options.stacking,i=(e.getColumn("x").length?e.getColumn("x"):void 0)||e.options.xData||e.getColumn("x",!0),r=(t?e.data:i||e.options.data).length,"treemap"===e.type?r*=12:"heatmap"===e.type?r*=6:D[e.type]&&(r*=2),r):0}constructor(e){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=e,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||w.devicePixelRatio||1}setOptions(e){"pixelRatio"in e||(e.pixelRatio=1),L(!0,this.settings,e)}allocateBuffer(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.series.forEach(e=>{e.boosted&&(i+=I.seriesPointCount(e))}),t&&t.allocate(i))}allocateBufferForSingleSeries(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.boosted&&(i=I.seriesPointCount(e)),t&&t.allocate(i))}clear(){let e=this.gl;e&&e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}pushSeriesData(e,t){let i=this.data,r=this.settings,s=this.vbuffer,o=e.pointArrayMap&&"low,high"===e.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=e,f=!!a.stacking,u=a.data,g=e.xAxis.getExtremes(),m=g.min-(e.xAxis.minPointOffset||0),c=g.max+(e.xAxis.minPointOffset||0),p=e.yAxis.getExtremes(),b=p.min-(e.yAxis.minPointOffset||0),x=p.max+(e.yAxis.minPointOffset||0),A=(e.getColumn("x").length?e.getColumn("x"):void 0)||a.xData||e.getColumn("x",!0),y=(e.getColumn("y").length?e.getColumn("y"):void 0)||a.yData||e.getColumn("y",!0),v=(e.getColumn("z").length?e.getColumn("z"):void 0)||a.zData||e.getColumn("z",!0),P=!A||0===A.length,T=a.connectNulls,C=e.points||!1,k=f?e.data:A||u,M={x:Number.MAX_VALUE,y:0},S={x:-Number.MAX_VALUE,y:0},w=void 0===n.index,U=D[e.type],L=a.zoneAxis||"y",_=a.zones||!1,z=a.threshold,N=this.getPixelRatio(),G=e.chart.plotWidth,I=!1,B=!1,O,V,X=0,F=!1,H,W,q,Y,j=-1,Z=!1,K=!1,Q,J=!1,$=!1,ee=!1,et=!1,ei=!0,er=!0,es,eo=!1,en=!1,ea=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(en="value"!==a.gapUnit?a.gapSize*e.closestPointRange:a.gapSize),_&&(es=[],_.forEach((e,t)=>{if(e.color){let i=E(e.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,es[t]=i,eo||void 0!==e.value||(eo=i)}}),eo||(eo=E(e.pointAttribs&&e.pointAttribs().fill||e.color).rgba,eo[0]/=255,eo[1]/=255,eo[2]/=255)),n.inverted&&(G=e.chart.plotHeight),e.closestPointRangePx=Number.MAX_VALUE;let el=e=>{e&&(t.colorData.push(e[0]),t.colorData.push(e[1]),t.colorData.push(e[2]),t.colorData.push(e[3]))},eh=(e,o,n,a=1,l)=>{el(l),1!==N&&(!r.useGPUTranslations||t.skipTranslation)&&(e*=N,o*=N,a*=N),r.usePreallocated&&s?(s.push(e,o,n?1:0,a),ea+=4):(i.push(e),i.push(o),i.push(n?N:0),i.push(a))},ed=()=>{t.segments.length&&(t.segments[t.segments.length-1].to=i.length||ea)},ef=()=>{t.segments.length&&t.segments[t.segments.length-1].from===(i.length||ea)||(ed(),t.segments.push({from:i.length||ea}))},eu=(e,t,i,r,s)=>{el(s),eh(e+i,t),el(s),eh(e,t),el(s),eh(e,t+r),el(s),eh(e,t+r),el(s),eh(e+i,t+r),el(s),eh(e+i,t)};if(ef(),C&&C.length>0){t.skipTranslation=!0,t.drawMode="TRIANGLES",C[0].node&&C[0].node.levelDynamic&&C.sort((e,t)=>{if(e.node){if(e.node.levelDynamic>t.node.levelDynamic)return 1;if(e.node.levelDynamic{let i,r;let s=t.plotY;if(void 0!==s&&!isNaN(s)&&null!==t.y&&t.shapeArgs){let{x:s=0,y:o=0,width:a=0,height:l=0}=t.shapeArgs;i=(r=n.styledMode?t.series.colorAttribs(t):r=t.series.pointAttribs(t))["stroke-width"]||0,ee=E(r.fill).rgba,ee[0]/=255,ee[1]/=255,ee[2]/=255,e.is("treemap")&&(i=i||1,V=E(r.stroke).rgba,V[0]/=255,V[1]/=255,V[2]/=255,eu(s,o,a,l,V),i/=2),e.is("heatmap")&&n.inverted&&(s=h.len-s,o=d.len-o,a=-a,l=-l),eu(s+i,o+i,a-2*i,l-2*i,ee)}}),ed();return}for(;j=3&&(Y=q[2],q[2]>t.zMax&&(t.zMax=q[2]),q[2]t.zMax&&(t.zMax=v[j]),v[j]=m&&K<=c&&(J=!0),Z&&Z>=m&&Z<=c&&($=!0),o?(P&&(W=q.slice(1,3)),Q=e.getColumn("low",!0)?.[j],W=e.getColumn("high",!0)?.[j]||0):f&&(H=q.x,Q=(W=q.stackY)-q.y),null!=b&&null!=x&&(ei=W>=b&&W<=x),(l||ei)&&(H>c&&S.xm&&(M.x=H,M.y=W),null!==W||!T)){if(null===W||!ei&&!J&&!$){ef();continue}if((l&&(K>=m||H>=m)&&(Z<=c||H<=c)||!l&&H>=m&&H<=c)&&(et=!0),et||J||$){if(en&&H-Z>en&&ef(),_){let e;_.some((t,i)=>{let r=_[i-1];return"x"===L?void 0!==t.value&&H<=t.value&&(es[i]&&(!r||H>=r.value)&&(e=es[i]),!0):void 0!==t.value&&W<=t.value&&(es[i]&&(!r||W>=r.value)&&(e=es[i]),!0)}),ee=e||eo||ee}if(r.useGPUTranslations||(t.skipTranslation=!0,H=h.toPixels(H,!0),W=d.toPixels(W,!0),!(H>G)||"POINTS"!==t.drawMode)){if(t.hasMarkers&&et&&!1!==I&&(e.closestPointRangePx=Math.min(e.closestPointRangePx,Math.abs(H-I))),!r.useGPUTranslations&&!r.usePreallocated&&I&&1>Math.abs(H-I)&&B&&1>Math.abs(W-B)){r.debug.showSkipSummary&&++X;continue}U&&(O=Q||0,(!1===Q||void 0===Q)&&(O=W<0?W:0),(o||f)&&!d.logarithmic||(O=Math.max(null===z?b:z,b)),r.useGPUTranslations||(O=d.toPixels(O,!0)),eh(H,O,0,0,ee)),a.step&&!er&&eh(H,B,0,2,ee),eh(H,W,0,"bubble"===e.type?Y||1:2,ee),I=H,B=W,F=!0,er=!1}}}}r.debug.showSkipSummary&&console.log("skipped points:",X);let eg=(e,i)=>{if(r.useGPUTranslations||(t.skipTranslation=!0,e.x=h.toPixels(e.x,!0),e.y=d.toPixels(e.y,!0)),i){this.data=[e.x,e.y,0,2].concat(this.data);return}eh(e.x,e.y,0,2)};!F&&!1!==T&&"line_strip"===e.drawMode&&(M.x-Number.MAX_VALUE&&eg(S)),ed()}pushSeries(e){let t=this.markerData,i=this.series,r=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=t.length),r.debug.timeSeriesProcessing&&console.time("building "+e.type+" series");let s={segments:[],markerFrom:t.length,colorData:[],series:e,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!e.options.marker&&!1!==e.options.marker.enabled,showMarkers:!0,drawMode:v[e.type]||"LINE_STRIP"};e.index>=i.length?i.push(s):i[e.index]=s,this.pushSeriesData(e,s),r.debug.timeSeriesProcessing&&console.timeEnd("building "+e.type+" series")}flush(){let e=this.vbuffer;this.data=[],this.markerData=[],this.series=[],e&&e.destroy()}setXAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("xAxisTrans",e.transA*i),t.setUniform("xAxisMin",e.min),t.setUniform("xAxisMinPad",e.minPixelPadding*i),t.setUniform("xAxisPointRange",e.pointRange),t.setUniform("xAxisLen",e.len*i),t.setUniform("xAxisPos",e.pos*i),t.setUniform("xAxisCVSCoord",!e.horiz),t.setUniform("xAxisIsLog",!!e.logarithmic),t.setUniform("xAxisReversed",!!e.reversed)}setYAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("yAxisTrans",e.transA*i),t.setUniform("yAxisMin",e.min),t.setUniform("yAxisMinPad",e.minPixelPadding*i),t.setUniform("yAxisPointRange",e.pointRange),t.setUniform("yAxisLen",e.len*i),t.setUniform("yAxisPos",e.pos*i),t.setUniform("yAxisCVSCoord",!e.horiz),t.setUniform("yAxisIsLog",!!e.logarithmic),t.setUniform("yAxisReversed",!!e.reversed)}setThreshold(e,t){let i=this.shader;i&&(i.setUniform("hasThreshold",e),i.setUniform("translatedThreshold",t))}renderChart(e){let t=this.gl,i=this.settings,r=this.shader,s=this.vbuffer,o=this.getPixelRatio();if(!e)return!1;this.width=e.chartWidth*o,this.height=e.chartHeight*o;let n=this.height,a=this.width;if(!t||!r||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),t.canvas.width=a,t.canvas.height=n,r.bind(),t.viewport(0,0,a,n),r.setPMatrix(I.orthoMatrix(a,n)),i.lineWidth>1&&!h().isMS&&t.lineWidth(i.lineWidth),s&&(s.build(this.data,"aVertexPosition",4),s.bind()),r.setInverted(e.inverted),this.series.forEach((n,a)=>{let l=n.series.options,h=l.marker,d=void 0!==l.lineWidth?l.lineWidth:1,f=l.threshold,u=U(f),g=n.series.yAxis.getThreshold(f),m=z(l.marker?l.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((l.marker?l.marker.radius:10)||10)),c=this.textureHandles[h&&h.symbol||n.series.symbol]||this.textureHandles.circle,p,b,x,A=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(c.isReady&&(t.bindTexture(t.TEXTURE_2D,c.handle),r.setTexture(c.handle)),e.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,e.seriesGroup).addClass("highcharts-tracker"),x=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):x=n.series.markerGroup?.getStyle("fill"):(x="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,l.colorByPoint&&(x=n.series.chart.options.colors[a])),n.series.fillOpacity&&l.fillOpacity&&(x=new(y())(x).setOpacity(z(l.fillOpacity,1)).get()),A=E(x).rgba,i.useAlpha||(A[3]=1),"add"===l.boostBlending?(t.blendFunc(t.SRC_ALPHA,t.ONE),t.blendEquation(t.FUNC_ADD)):"mult"===l.boostBlending||"multiply"===l.boostBlending?t.blendFunc(t.DST_COLOR,t.ZERO):"darken"===l.boostBlending?(t.blendFunc(t.ONE,t.ONE),t.blendEquation(t.FUNC_MIN)):t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA),r.reset(),n.colorData.length>0?(r.setUniform("hasColor",1),(b=new M(t,r)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),b.bind()):(r.setUniform("hasColor",0),t.disableVertexAttribArray(t.getAttribLocation(r.getProgram(),"aColor"))),r.setColor(A),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(u,g),"POINTS"===n.drawMode&&r.setPointSize(2*z(l.marker&&l.marker.radius,.5)*o),r.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&r.setBubbleUniforms(n.series,n.zMin,n.zMax,o),r.setDrawAsCircle(N[n.series.type]||!1),s)){if(d>0||"LINE_STRIP"!==n.drawMode)for(p=0;p{this.render(e)},1)}setSize(e,t){let i=this.shader;i&&(this.width!==e||this.height!==t)&&(this.width=e,this.height=t,i.bind(),i.setPMatrix(I.orthoMatrix(e,t)))}init(e,t){let i=this.settings;if(this.isInited=!1,!e)return!1;i.debug.timeSetup&&console.time("gl setup");for(let t=0;t{let i={isReady:!1,texture:S.createElement("canvas"),handle:r.createTexture()},s=i.texture.getContext("2d");this.textureHandles[e]=i,i.texture.width=512,i.texture.height=512,s.mozImageSmoothingEnabled=!1,s.webkitImageSmoothingEnabled=!1,s.msImageSmoothingEnabled=!1,s.imageSmoothingEnabled=!1,s.strokeStyle="rgba(255, 255, 255, 0)",s.fillStyle="#FFF",t(s);try{r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,i.handle),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,i.texture),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.bindTexture(r.TEXTURE_2D,null),i.isReady=!0}catch(e){}};return o("circle",e=>{e.beginPath(),e.arc(256,256,256,0,2*Math.PI),e.stroke(),e.fill()}),o("square",e=>{e.fillRect(0,0,512,512)}),o("diamond",e=>{e.beginPath(),e.moveTo(256,0),e.lineTo(512,256),e.lineTo(256,512),e.lineTo(0,256),e.lineTo(256,0),e.fill()}),o("triangle",e=>{e.beginPath(),e.moveTo(0,512),e.lineTo(256,0),e.lineTo(512,512),e.lineTo(0,512),e.fill()}),o("triangle-down",e=>{e.beginPath(),e.moveTo(0,0),e.lineTo(256,512),e.lineTo(512,0),e.lineTo(0,0),e.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let e=this.gl,t=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),t&&t.destroy(),e&&(_(this.textureHandles,t=>{t.handle&&e.deleteTexture(t.handle)}),e.canvas.width=1,e.canvas.height=1)}}let{getBoostClipRect:B,isChartSeriesBoosting:O}=x,{getOptions:V}=h(),{composed:X,doc:F,noop:H,win:W}=h(),{addEvent:q,destroyObjectProperties:Y,error:j,extend:Z,fireEvent:K,isArray:Q,isNumber:J,pick:$,pushUnique:ee,wrap:et,defined:ei}=h();function er(e,t){let i=t.boost;e&&i&&i.target&&i.canvas&&!O(t.chart)&&e.allocateBufferForSingleSeries(t)}function es(e){return $(e&&e.options&&e.options.boost&&e.options.boost.enabled,!0)}function eo(e,t){let i=e.constructor,s=e.seriesGroup||t.group,o=e.chartWidth,n=e.chartHeight,a=e,l="undefined"!=typeof SVGForeignObjectElement,h=!1;O(e)?a=e:(a=t,h=!!(t.options.events?.click||t.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,r||(r=F.createElement("canvas")),!d.target&&(d.canvas=r,e.renderer.forExport||!l?(a.renderTarget=d.target=e.renderer.image("",0,0,o,n).addClass("highcharts-boost-canvas").add(s),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})}):(d.targetFo=e.renderer.createElement("foreignObject").add(s),a.renderTarget=d.target=F.createElement("canvas"),d.targetCtx=d.target.getContext("2d"),d.targetFo.element.appendChild(d.target),d.clear=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height},d.copy=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height,d.targetCtx.drawImage(d.canvas,0,0)}),d.resize=function(){o=e.chartWidth,n=e.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:o,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(e.plotLeft,e.plotTop)},d.clipRect=e.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:t.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(s).translate(t.xAxis.pos,t.yAxis.pos))),d.canvas.width=o,d.canvas.height=n,d.clipRect){let t=B(e,a),i=t.width===e.clipBox.width&&t.height===e.clipBox.height?s:d.targetFo||d.target;d.clipRect.attr(t),i?.clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new I(e=>{e.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),e.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||j("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(e.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(e)),d.wgl.setSize(o,n),d.wgl}function en(e){let t=e.points;if(t){let e,i;for(i=0;i{let i=e[t];i&&(e[t]=i.destroy())}),e.zones))Y(t,void 0,!0)}function ea(e,t,i,r,s,o){let n=(s=s||0)+(r=r||3e3),a=!0;for(;a&&s(i.boostThreshold||Number.MAX_VALUE)&&J(o.min)&&J(o.max)&&(!t||J(s.min)&&J(s.max))&&(!n||J(n.min)&&J(n.max))}let eh=(e,t)=>!e.forceCrop&&(O(e.chart)||(t?t.length:0)>=(e.options.boostThreshold||Number.MAX_VALUE));function ed(){let e=this,t=e.chart;t.boost&&t.boost.markerGroup===e.markerGroup&&(e.markerGroup=null),t.hoverPoints&&(t.hoverPoints=t.hoverPoints.filter(function(t){return t.series===e})),t.hoverPoint&&t.hoverPoint.series===e&&(t.hoverPoint=null)}function ef(){let e=this.boost;e&&e.canvas&&e.target&&(e.wgl&&e.wgl.clear(),e.clear&&e.clear())}function eu(e){let t=e.boost;t&&t.canvas&&t.target&&t.wgl&&!O(e.chart)&&t.wgl.render(e.chart)}function eg(e,t){let i=e.options,r=e.xAxis,s=e.pointClass;if(t instanceof s)return t;let o=e.is("scatter"),n=(o&&e.getColumn("x",!0).length?e.getColumn("x",!0):void 0)||(e.getColumn("x").length?e.getColumn("x"):void 0)||i.xData||e.getColumn("x",!0)||!1,a=e.getColumn("y",!0)||i.yData||!1,l=new s(e,o&&n&&a?[n[t.i],a[t.i]]:(Q(e.options.data)?e.options.data:[])[t.i],n?n[t.i]:void 0);return l.category=$(r.categories?r.categories[l.x]:l.x,l.x),l.key=l.name??l.category,l.dist=t.dist,l.distX=t.distX,l.plotX=t.plotX,l.plotY=t.plotY,l.index=t.i,l.percentage=t.percentage,l.isInside=e.isPointInside(l),l}function em(e){let{options:t,xAxis:i,yAxis:r}=this;if(!this.isDirty&&!i.isDirty&&!r.isDirty&&!e)return!1;this.yAxis.setTickInterval();let s=t.boostThreshold||0,o=t.cropThreshold,n=this.getColumn("x"),a=i.getExtremes(),l=a.max??Number.MAX_VALUE,h=a.min??-Number.MAX_VALUE,d=this.getColumn("y"),f=r.getExtremes(),u=f.max??Number.MAX_VALUE,g=f.min??-Number.MAX_VALUE;if(!this.boosted&&i.old&&r.old&&h>=(i.old.min??-Number.MAX_VALUE)&&l<=(i.old.max??Number.MAX_VALUE)&&g>=(r.old.min??-Number.MAX_VALUE)&&u<=(r.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:n,y:d}),!0;let m=this.dataTable.rowCount;if(!s||m=h&&v<=l&&C>=g&&C<=u?(c.push({x:v,y:C}),p.push(v),b.push(C),x&&(P=Math.max(P,v),T=Math.min(T,v)),A&&(k=Math.max(k,C),M=Math.min(M,C))):y=!0;return x&&(i.dataMax=Math.max(P,i.dataMax||0),i.dataMin=Math.min(T,i.dataMin||0)),A&&(r.dataMax=Math.max(k,r.dataMax||0),r.dataMin=Math.min(M,r.dataMin||0)),this.cropped=y,this.cropStart=0,this.dataTable.modified.setColumns({x:p,y:b}),eh(this,p)||(this.processedData=c),!0}function ec(){let e=this.options||{},t=this.chart,r=t.boost,s=this.boost,o=this.xAxis,n=this.yAxis,a=e.xData||this.getColumn("x",!0),l=e.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),f=this.processedData||e.data,u=o.getExtremes(),g=u.min-(o.minPointOffset||0),m=u.max+(o.minPointOffset||0),c=n.getExtremes(),p=c.min-(n.minPointOffset||0),b=c.max+(n.minPointOffset||0),x={},A=!!this.sampling,y=e.enableMouseTracking,v=e.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!e.stacking,C=this.cropStart||0,k=this.requireSorting,M=!a,E="x"===e.findNearestPointBy,S=(this.getColumn("x",!0).length?this.getColumn("x",!0):void 0)||this.options.xData||this.getColumn("x",!0),w=$(e.lineWidth,1),U=!1,R,L=n.getThreshold(v),_,z,D,N;if(o.isPanning||n.isPanning||(U=eo(t,this),t.boosted=!0,!this.visible))return;(this.points||this.graph)&&en(this),O(t)?(this.markerGroup&&this.markerGroup!==r?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=r?.markerGroup,s&&s.target&&(this.renderTarget=s.target=s.target.destroy())):(this.markerGroup===r?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"));let G=this.points=[],I=(e,r,s,a)=>{let l=!!S&&S[C+s],h=e=>{t.inverted&&(e=o.len-e,r=n.len-r),G.push({destroy:H,x:l,clientX:e,plotX:e,plotY:r,i:C+s,percentage:a})};e=Math.ceil(e),i=E?e:e+","+r,y&&(x[i]?l===S[S.length-1]&&(G.length--,h(e)):(x[i]=!0,h(e)))};this.buildKDTree=H,K(this,"renderCanvas"),this.is("line")&&w>1&&s?.target&&r&&!r.lineWidthFilter&&(r.lineWidthFilter=t.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*w}}],attributes:{id:"linewidth"}}),s.target.attr({filter:"url(#linewidth)"})),U&&(er(U,this),U.pushSeries(this),eu(this));let B=U.settings;t.renderer.forExport||(B.debug.timeKDTree&&console.time("kd tree building"),ea(T?this.data.slice(C):a||f,function(e,i){let r=void 0===t.index,s,a,f,u,c,x=!1,y=!0;return!ei(e)||(!r&&(M?(s=e[0],a=e[1]):(s=e,a=l?.[i]),P?(M&&(a=e.slice(1,3)),x=h[i],a=d[i]):T&&(s=e.x,x=(a=e.stackY)-e.y,c=e.percentage),k||(y=(a||0)>=p&&a<=b),null!==a&&s>=g&&s<=m&&y&&(f=o.toPixels(s,!0),A?((void 0===D||f===R)&&(P||(x=a),(void 0===N||a>z)&&(z=a,N=i),(void 0===D||x<_)&&(_=x,D=i)),E&&f===R||(void 0!==D&&(u=n.toPixels(z,!0),L=n.toPixels(_,!0),I(f,u,N,c),L!==u&&I(f,L,D,c)),D=N=void 0,R=f)):I(f,u=Math.ceil(n.toPixels(a,!0)),i,c))),!r)},()=>{K(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),B.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function ep(e){let t=!0;if(this.chart.options&&this.chart.options.boost&&(t=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!t||!this.boosted)return e.call(this);this.chart.boosted=!0;let i=eo(this.chart,this);i&&(er(i,this),i.pushSeries(this)),eu(this)}function eb(e){if(this.boosted){if(el(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return e.apply(this,[].slice.call(arguments,1))}function ex(e){let t=this.options.data;if(es(this.chart)&&f[this.type]){let i=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!eh(this,t)||i||this.is("treemap")||this.options.stacking||!el(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;i&&!this.yAxis.treeGrid?em.call(this,arguments[1]):e.apply(this,[].slice.call(arguments,1)),t=this.getColumn("x",!0)}if(this.boosted=eh(this,t),this.boosted){let e;!this.options.data?.length||J(e=this.getFirstValidPoint(this.options.data))||Q(e)||this.is("treemap")||j(12,!1,this.chart),function(e){e.boost=e.boost||{getPoint:t=>eg(e,t)};let t=e.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(i=>{t.push({prop:i,val:e[i],own:Object.hasOwnProperty.call(e,i)})}),e.allowDG=!1,e.directTouch=!1,e.stickyTracking=!0,e.finishedAnimating=!0,e.labelBySeries&&(e.labelBySeries=e.labelBySeries.destroy()),e.is("scatter")&&!e.is("treemap")&&e.data.length){for(let t of e.data)t?.destroy?.();e.data.length=0,e.points.length=0,delete e.processedData}}(this)}else!function(e){let t=e.boost,i=e.chart,r=i.boost;if(r?.markerGroup)for(let e of(r.markerGroup.destroy(),r.markerGroup=void 0,i.series))e.markerGroup=void 0,e.markerGroup=e.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");t&&((t.altered||[]).forEach(t=>{t.own?e[t.prop]=t.val:delete e[t.prop]}),t.clear&&t.clear()),(i.seriesGroup||e.group)?.clip()}(this)}else e.apply(this,[].slice.call(arguments,1))}function eA(e){let t=e.apply(this,[].slice.call(arguments,1));return this.boost&&t?this.boost.getPoint(t):t}let ey={compose:function(e,t,i){if(ee(X,"Boost.Series")){let r=V().plotOptions,s=e.prototype;if(q(e,"destroy",ed),q(e,"hide",ef),i&&(s.renderCanvas=ec),et(s,"getExtremes",eb),et(s,"processData",ex),et(s,"searchPoint",eA),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(e=>(function(e,t,i){function r(e){let t=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!t&&es(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&f[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():e.call(this)}if(et(e,i,r),"translate"===i)for(let e of["column","arearange","columnrange","heatmap","treemap"])t[e]&&et(t[e].prototype,i,r)})(s,t,e)),d.forEach(e=>{let i=r[e];i&&(i.boostThreshold=5e3,i.boostData=[],t[e].prototype.fillOpacity=!0)}),i){let{area:e,areaspline:i,bubble:r,column:s,heatmap:o,scatter:n,treemap:a}=t;if(e&&Z(e.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&Z(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),r){let e=r.prototype;delete e.buildKDTree,et(e,"markerAttribs",function(e){return!this.boosted&&e.apply(this,[].slice.call(arguments,1))})}s&&Z(s.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[o,a].forEach(e=>{e&&et(e.prototype,"drawPoints",ep)})}}return e},destroyGraphics:en,eachAsync:ea,getPoint:eg},ev={defaultHTMLColorMap:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{doc:eP,win:eT}=h(),{addEvent:eC,error:ek}=h(),eM=["webgl","experimental-webgl","moz-webgl","webkit-3d"];function eE(){let e;if(void 0!==eT.WebGLRenderingContext){e=eP.createElement("canvas");for(let t=0;te.renderTarget).filter(Boolean)){let{horiz:i,pos:r}=this,s=i?"scaleX":"scaleY",o=i?"translateX":"translateY",n=t?.[s]??1,a=1,l=0,h=1,d="none";this.isPanning&&(a=(e.scale??1)*n,l=(t?.[o]||0)-a*(e.move||0)+n*r-a*r,h=.7,d="blur(3px)"),t?.attr({[s]:a,[o]:l}).css({transition:"250ms filter, 250ms opacity",filter:d,opacity:h})}})},hasWebGLSupport:eE},ew=h();ew.hasWebGLSupport=eS.hasWebGLSupport,eS.compose(ew.Chart,ew.Axis,ew.Series,ew.seriesTypes,ew.Color);let eU=h();return a.default})()); \ No newline at end of file diff --git a/modules/boost.src.js b/modules/boost.src.js index 703c226d67..13b4624125 100644 --- a/modules/boost.src.js +++ b/modules/boost.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/boost * @requires highcharts * @@ -2895,10 +2895,17 @@ function getPoint(series, boostPoint) { if (boostPoint instanceof PointClass) { return boostPoint; } - const xData = ((series.getColumn('x').length ? series.getColumn('x') : void 0) || + const isScatter = series.is('scatter'), xData = ((isScatter && series.getColumn('x', true).length ? + series.getColumn('x', true) : + void 0) || + (series.getColumn('x').length ? series.getColumn('x') : void 0) || seriesOptions.xData || series.getColumn('x', true) || - false), point = new PointClass(series, (isArray(series.options.data) ? series.options.data : [])[boostPoint.i], xData ? xData[boostPoint.i] : void 0); + false), yData = (series.getColumn('y', true) || + seriesOptions.yData || + false), point = new PointClass(series, (isScatter && xData && yData) ? + [xData[boostPoint.i], yData[boostPoint.i]] : + (isArray(series.options.data) ? series.options.data : [])[boostPoint.i], xData ? xData[boostPoint.i] : void 0); point.category = BoostSeries_pick(xAxis.categories ? xAxis.categories[point.x] : point.x, // @todo simplify @@ -2917,10 +2924,6 @@ function getPoint(series, boostPoint) { * @private */ function scatterProcessData(force) { - var _a, - _b, - _c, - _d; const series = this, { options, xAxis, yAxis } = series; // Process only on changes if (!series.isDirty && @@ -2987,12 +2990,12 @@ function scatterProcessData(force) { } } if (xRangeNeeded) { - (_a = xAxis.options).max ?? (_a.max = xDataMax); - (_b = xAxis.options).min ?? (_b.min = xDataMin); + xAxis.dataMax = Math.max(xDataMax, xAxis.dataMax || 0); + xAxis.dataMin = Math.min(xDataMin, xAxis.dataMin || 0); } if (yRangeNeeded) { - (_c = yAxis.options).max ?? (_c.max = yDataMax); - (_d = yAxis.options).min ?? (_d.min = yDataMin); + yAxis.dataMax = Math.max(yDataMax, yAxis.dataMax || 0); + yAxis.dataMin = Math.min(yDataMin, yAxis.dataMin || 0); } // Set properties as base processData series.cropped = cropped; diff --git a/modules/broken-axis.js b/modules/broken-axis.js index 72ac8c14cd..600d4a2818 100644 --- a/modules/broken-axis.js +++ b/modules/broken-axis.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/broken-axis * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.StackItem):"function"==typeof define&&define.amd?define("highcharts/modules/broken-axis",["highcharts/highcharts"],function(t){return e(t,t.StackItem)}):"object"==typeof exports?exports["highcharts/modules/broken-axis"]=e(t._Highcharts,t._Highcharts.StackItem):t.Highcharts=e(t.Highcharts,t.Highcharts.StackItem)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i,s={184:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function n(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return s[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 i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};n.d(o,{default:()=>v});var a=n(944),f=/*#__PURE__*/n.n(a),l=n(184),h=/*#__PURE__*/n.n(l);let{addEvent:c,find:u,fireEvent:k,isArray:p,isNumber:x,pick:m}=f();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&re.from&&re.from&&r>e.to&&r0){let t,o;for("value"!==this.options.gapUnit&&(r*=this.basePointRange),e&&e>r&&e>=this.basePointRange&&(r=e);n--;)if(o&&!1!==o.visible||(o=i[n+1]),t=i[n],!1!==o.visible&&!1!==t.visible){if(o.x-t.x>r){let e=(t.x+o.x)/2;i.splice(n+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(h())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}o=t}}return this.getGraphPath(i)}t.compose=function(t,l){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),c(t,"init",r),c(t,"afterInit",e),c(t,"afterSetTickPositions",s),c(t,"afterSetOptions",i);let h=l.prototype;h.drawBreaks=a,h.gappedPath=f,c(l,"afterGeneratePoints",n),c(l,"afterRender",o)}return t};class l{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,r=t.to-t.from,n=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?n<=r:n=s);n++)r.to=t)break;else if(l.isInBreak(r,t)){s-=t-r.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return u(e,function(e){return e.from{t.from=r.parse(t.from)||0,t.to=r.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),n||s.val2lin!==l.val2Lin||(delete s.val2lin,delete s.lin2val),n&&(s.userOptions.ordinal=!1,s.lin2val=l.lin2Val,s.val2lin=l.val2Lin,s.setExtremes=function(t,e,r,n,o){if(i.hasBreaks){let s;let r=this.options.breaks||[];for(;s=i.findBreakAt(t,r);)t=s.to;for(;s=i.findBreakAt(e,r);)e=s.from;eh;)u-=f;for(;u(()=>{"use strict";var i,s={184:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function n(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return s[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 i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};n.d(o,{default:()=>v});var a=n(944),f=n.n(a),l=n(184),h=n.n(l);let{addEvent:c,find:u,fireEvent:k,isArray:p,isNumber:x,pick:m}=f();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&re.from&&re.from&&r>e.to&&r0){let t,o;for("value"!==this.options.gapUnit&&(r*=this.basePointRange),e&&e>r&&e>=this.basePointRange&&(r=e);n--;)if(o&&!1!==o.visible||(o=i[n+1]),t=i[n],!1!==o.visible&&!1!==t.visible){if(o.x-t.x>r){let e=(t.x+o.x)/2;i.splice(n+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(h())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}o=t}}return this.getGraphPath(i)}t.compose=function(t,l){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),c(t,"init",r),c(t,"afterInit",e),c(t,"afterSetTickPositions",s),c(t,"afterSetOptions",i);let h=l.prototype;h.drawBreaks=a,h.gappedPath=f,c(l,"afterGeneratePoints",n),c(l,"afterRender",o)}return t};class l{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,r=t.to-t.from,n=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?n<=r:n=s);n++)r.to=t)break;else if(l.isInBreak(r,t)){s-=t-r.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return u(e,function(e){return e.from{t.from=r.parse(t.from)||0,t.to=r.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),n||s.val2lin!==l.val2Lin||(delete s.val2lin,delete s.lin2val),n&&(s.userOptions.ordinal=!1,s.lin2val=l.lin2Val,s.val2lin=l.val2Lin,s.setExtremes=function(t,e,r,n,o){if(i.hasBreaks){let s;let r=this.options.breaks||[];for(;s=i.findBreakAt(t,r);)t=s.to;for(;s=i.findBreakAt(e,r);)e=s.from;eh;)u-=f;for(;u(()=>{"use strict";var s={448:t=>{t.exports=e},512:t=>{t.exports=r},944:e=>{e.exports=t}},i={};function o(t){var e=i[t];if(void 0!==e)return e.exports;var r=i[t]={exports:{}};return s[t](r,r.exports,o),r.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var r in e)o.o(e,r)&&!o.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};o.d(a,{default:()=>w});var h=o(944),l=/*#__PURE__*/o.n(h),n=o(448),p=/*#__PURE__*/o.n(n);class d extends p().prototype.pointClass{destroy(){this.targetGraphic&&(this.targetGraphic=this.targetGraphic.destroy()),super.destroy.apply(this,arguments)}}var c=o(512),g=/*#__PURE__*/o.n(c);let{extend:u,isNumber:y,merge:x,pick:f,relativeLength:b}=l();class m extends p(){drawPoints(){let t=this.chart,e=this.options,r=e.animationLimit||250;for(let s of(super.drawPoints.apply(this,arguments),this.points)){let i=s.options,o=s.target,a=s.y,h,l=s.targetGraphic,n,p,d,c;if(y(o)&&null!==o){p=(d=x(e.targetOptions,i.targetOptions)).height;let g=s.shapeArgs;s.dlBox&&g&&!y(g.width)&&(g=s.dlBox),n=b(d.width,g.width),c=this.yAxis.translate(o,!1,!0,!1,!0)-d.height/2-.5,h=this.crispCol.apply({chart:t,borderWidth:d.borderWidth,options:{crisp:e.crisp}},[g.x+g.width/2-n/2,c,n,p]),l?(l[t.pointCount● {series.name}: {point.y}. Target: {point.target}
    '}}),u(m.prototype,{parallelArrays:["x","y","target"],pointArrayMap:["y","target"]}),m.prototype.pointClass=d,g().registerSeriesType("bullet",m);let w=l();return a.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Series.types.column,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/bullet",["highcharts/highcharts"],function(t){return e(t,t.Series,["types"],["column"],t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/bullet"]=e(t._Highcharts,t._Highcharts.Series.types.column,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Series.types.column,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,r)=>(()=>{"use strict";var s={448:t=>{t.exports=e},512:t=>{t.exports=r},944:e=>{e.exports=t}},i={};function o(t){var e=i[t];if(void 0!==e)return e.exports;var r=i[t]={exports:{}};return s[t](r,r.exports,o),r.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var r in e)o.o(e,r)&&!o.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};o.d(a,{default:()=>w});var h=o(944),l=o.n(h),n=o(448),p=o.n(n);class d extends p().prototype.pointClass{destroy(){this.targetGraphic&&(this.targetGraphic=this.targetGraphic.destroy()),super.destroy.apply(this,arguments)}}var c=o(512),g=o.n(c);let{extend:u,isNumber:y,merge:x,pick:f,relativeLength:b}=l();class m extends p(){drawPoints(){let t=this.chart,e=this.options,r=e.animationLimit||250;for(let s of(super.drawPoints.apply(this,arguments),this.points)){let i=s.options,o=s.target,a=s.y,h,l=s.targetGraphic,n,p,d,c;if(y(o)&&null!==o){p=(d=x(e.targetOptions,i.targetOptions)).height;let g=s.shapeArgs;s.dlBox&&g&&!y(g.width)&&(g=s.dlBox),n=b(d.width,g.width),c=this.yAxis.translate(o,!1,!0,!1,!0)-d.height/2-.5,h=this.crispCol.apply({chart:t,borderWidth:d.borderWidth,options:{crisp:e.crisp}},[g.x+g.width/2-n/2,c,n,p]),l?(l[t.pointCount● {series.name}: {point.y}. Target: {point.target}
    '}}),u(m.prototype,{parallelArrays:["x","y","target"],pointArrayMap:["y","target"]}),m.prototype.pointClass=d,g().registerSeriesType("bullet",m);let w=l();return a.default})()); \ No newline at end of file diff --git a/modules/bullet.src.js b/modules/bullet.src.js index 25160bee87..ff98929fbb 100644 --- a/modules/bullet.src.js +++ b/modules/bullet.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/bullet * @requires highcharts * diff --git a/modules/coloraxis.js b/modules/coloraxis.js index f1e6eb54d5..7b05e12e5b 100644 --- a/modules/coloraxis.js +++ b/modules/coloraxis.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/color-axis * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2012-2024 Pawel Potaczek * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/coloraxis",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Color,t.LegendSymbol,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/coloraxis"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.LegendSymbol,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,s,i,o)=>(()=>{"use strict";var r,l,a={532:t=>{t.exports=e},620:t=>{t.exports=s},500:t=>{t.exports=i},512:t=>{t.exports=o},944:e=>{e.exports=t}},h={};function n(t){var e=h[t];if(void 0!==e)return e.exports;var s=h[t]={exports:{}};return a[t](s,s.exports,n),s.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 s in e)n.o(e,s)&&!n.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};n.d(d,{default:()=>N});var c=n(944),p=/*#__PURE__*/n.n(c),g=n(532),f=/*#__PURE__*/n.n(g),u=n(620),m=/*#__PURE__*/n.n(u);let{parse:x}=m(),{addEvent:y,extend:b,merge:C,pick:v,splat:A}=p();!function(t){let e;function s(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=A(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function i(t){let e=this.chart.colorAxis||[],s=e=>{let s=t.allItems.indexOf(e);-1!==s&&(this.destroyItem(t.allItems[s]),t.allItems.splice(s,1))},i=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?i=i.concat(t.getDataClassLegendSymbols()):o.visible&&i.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){s(t)}):s(t))}))}),r=i.length;r--;)t.allItems.unshift(i[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function l(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function a(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function h(t){let e=this,s=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][s]()}),this.series.buildKDTree()}function n(){let t=this,e=this.getPointsCollection(),s=this.options.nullColor,i=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),l=e.options.color||(e.isNull||null===e.value?s:i&&void 0!==r?i.toColor(r,e):e.color||t.color);l&&e.color!==l&&(e.color=l,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",x(this.start).tweenTo(x(this.end),this.pos),void 0,!0)}function c(){this.elem.attr("stroke",x(this.start).tweenTo(x(this.end),this.pos),void 0,!0)}t.compose=function(t,p,g,f,u){let m=p.prototype,x=g.prototype,A=u.prototype;m.collectionsWithUpdate.includes("colorAxis")||(e=t,m.collectionsWithUpdate.push("colorAxis"),m.collectionsWithInit.colorAxis=[m.addColorAxis],y(p,"afterCreateAxes",s),function(t){let s=t.prototype.createAxis;t.prototype.createAxis=function(t,i){if("colorAxis"!==t)return s.apply(this,arguments);let o=new e(this,C(i.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),v(i.redraw,!0)&&this.redraw(i.animation),o}}(p),x.fillSetter=d,x.strokeSetter=c,y(f,"afterGetAllItems",i),y(f,"afterColorizeItem",o),y(f,"afterUpdate",r),b(A,{optionalAxis:"colorAxis",translateColors:n}),b(A.pointClass.prototype,{setVisible:h}),y(u,"afterTranslate",l,{order:1}),y(u,"bindAxes",a))},t.pointSetVisible=h}(r||(r={}));let I=r,{parse:L}=m(),{merge:w}=p();!function(t){t.initDataClasses=function(t){let e=this.chart,s=this.legendItem=this.legendItem||{},i=this.options,o=t.dataClasses||[],r,l,a=e.options.chart.colorCount,h=0,n;this.dataClasses=l=[],s.labels=[];for(let t=0,s=o.length;t=i)&&(void 0===o||t<=o)){r=l.color,e&&(e.dataClass=a,e.colorIndex=l.colorIndex);break}}else{for(s=this.normalizedValue(t),a=n.length;a--&&!(s>n[a][0]););i=n[a]||n[a+1],s=1-((o=n[a+1]||i)[0]-s)/(o[0]-i[0]||1),r=i.color.tweenTo(o.color,s)}return r}}(l||(l={}));let S=l;var M=n(500),P=/*#__PURE__*/n.n(M),D=n(512),H=/*#__PURE__*/n.n(D);let{defaultOptions:k}=p(),{series:z}=H(),{defined:E,extend:O,fireEvent:V,isArray:T,isNumber:_,merge:W,pick:j,relativeLength:K}=p();k.colorAxis=W(k.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class R extends f(){static compose(t,e,s,i){I.compose(R,t,e,s,i)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let s=t.options.legend||{},i=e.layout?"vertical"!==e.layout:"vertical"!==s.layout;this.side=e.side||i?2:1,this.reversed=e.reversed||!i,this.opposite=!i,super.init(t,e,"colorAxis"),this.userOptions=e,T(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=i,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=W(k.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:s,height:i}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=s=+e.attr("width"),this.height=i=+e.attr("height"),this.right=t.chartWidth-this.left-s,this.bottom=t.chartHeight-this.top-i,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?s:i)||R.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let s=this.chart.legend;s.allItems.forEach(function(t){t instanceof R&&t.drawLegendSymbol(s,t)}),s.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,s=e?1:0,i=e?0:1,o=t?[s,0,i,0]:[0,i,0,s];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let s=e.legendItem||{},i=t.padding,o=t.options,r=this.options.labels,l=j(o.itemDistance,10),a=this.horiz,{width:h,height:n}=this.getSize(),d=j(o.labelPadding,a?16:30);this.setLegendColor(),s.symbol||(s.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(s.group)),s.symbol.attr({x:0,y:(t.baseline||0)-11,width:h,height:n}),s.labelWidth=h+i+(a?l:j(r.x,r.distance)+(this.maxLabelLength||0)),s.labelHeight=n+i+(a?d:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,s,i,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let l of(s=(o=t[r]).colorKey=j(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),i=o[s+"Min"]&&o[s+"Max"],[s,"value","y"]))if((e=o.getColumn(l)).length)break;if(i)o.minColorValue=o[s+"Min"],o.maxColorValue=o[s+"Max"];else{let t=z.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}E(o.minColorValue)&&E(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),i||z.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let s;let i=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,l=this.pos,a=this.len;e&&((s=this.toPixels(e.getNestedProperty(e.series.colorKey)))l+a&&(s=l+a+2),e.plotX=s,e.plotY=this.len-s,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&i.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(i.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,s=t.translatedValue,i=this.top;return _(s)?this.horiz?[["M",s-4,i-6],["L",s+4,i-6],["L",s,i],["Z"]]:[["M",e,s],["L",e-6,s+6],["L",e-6,s-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let s=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&s.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),s.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let s of e.labels)t.legend.destroyItem(s);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,s=e.chart,i=e.legendItem&&e.legendItem.labels||[],o=s.options.legend,r=j(o.valueDecimals,-1),l=j(o.valueSuffix,""),a=t=>e.series.reduce((e,s)=>(e.push(...s.points.filter(e=>e.dataClass===t)),e),[]);return i.length||e.dataClasses.forEach((o,h)=>{let n=o.from,d=o.to,{numberFormatter:c}=s,p=!0;t="",void 0===n?t="< ":void 0===d&&(t="> "),void 0!==n&&(t+=c(n,r)+l),void 0!==n&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=c(d,r)+l),i.push(O({chart:s,name:t,options:{},drawLegendSymbol:P().rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of a(h))e.setState(t)},setVisible:function(){this.visible=p=e.visible=!p;let t=[];for(let e of a(h))e.setVisible(p),e.hiddenInDataClass=!p,-1===t.indexOf(e.series)&&t.push(e.series);s.legend.colorizeItem(this,p),t.forEach(t=>{V(t,"afterDataClassLegendClick")})}},o))}),i}getSize(){let{chart:t,horiz:e}=this,{height:s,width:i}=this.options,{legend:o}=t.options;return{width:j(E(i)?K(i,t.chartWidth):void 0,o?.symbolWidth,e?R.defaultLegendLength:12),height:j(E(s)?K(s,t.chartHeight):void 0,o?.symbolHeight,e?12:R.defaultLegendLength)}}}R.defaultLegendLength=200,R.keepProps=["legendItem"],O(R.prototype,S),Array.prototype.push.apply(f().keepProps,R.keepProps);let X=p();X.ColorAxis=X.ColorAxis||R,X.ColorAxis.compose(X.Chart,X.Fx,X.Legend,X.Series);let N=p();return d.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/coloraxis",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Color,t.LegendSymbol,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/coloraxis"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.LegendSymbol,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,s,i,o)=>(()=>{"use strict";var r,l,a={532:t=>{t.exports=e},620:t=>{t.exports=s},500:t=>{t.exports=i},512:t=>{t.exports=o},944:e=>{e.exports=t}},h={};function n(t){var e=h[t];if(void 0!==e)return e.exports;var s=h[t]={exports:{}};return a[t](s,s.exports,n),s.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 s in e)n.o(e,s)&&!n.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};n.d(d,{default:()=>N});var c=n(944),p=n.n(c),g=n(532),f=n.n(g),u=n(620),m=n.n(u);let{parse:x}=m(),{addEvent:y,extend:b,merge:C,pick:v,splat:A}=p();!function(t){let e;function s(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=A(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function i(t){let e=this.chart.colorAxis||[],s=e=>{let s=t.allItems.indexOf(e);-1!==s&&(this.destroyItem(t.allItems[s]),t.allItems.splice(s,1))},i=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?i=i.concat(t.getDataClassLegendSymbols()):o.visible&&i.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){s(t)}):s(t))}))}),r=i.length;r--;)t.allItems.unshift(i[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function l(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function a(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function h(t){let e=this,s=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][s]()}),this.series.buildKDTree()}function n(){let t=this,e=this.getPointsCollection(),s=this.options.nullColor,i=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),l=e.options.color||(e.isNull||null===e.value?s:i&&void 0!==r?i.toColor(r,e):e.color||t.color);l&&e.color!==l&&(e.color=l,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",x(this.start).tweenTo(x(this.end),this.pos),void 0,!0)}function c(){this.elem.attr("stroke",x(this.start).tweenTo(x(this.end),this.pos),void 0,!0)}t.compose=function(t,p,g,f,u){let m=p.prototype,x=g.prototype,A=u.prototype;m.collectionsWithUpdate.includes("colorAxis")||(e=t,m.collectionsWithUpdate.push("colorAxis"),m.collectionsWithInit.colorAxis=[m.addColorAxis],y(p,"afterCreateAxes",s),function(t){let s=t.prototype.createAxis;t.prototype.createAxis=function(t,i){if("colorAxis"!==t)return s.apply(this,arguments);let o=new e(this,C(i.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),v(i.redraw,!0)&&this.redraw(i.animation),o}}(p),x.fillSetter=d,x.strokeSetter=c,y(f,"afterGetAllItems",i),y(f,"afterColorizeItem",o),y(f,"afterUpdate",r),b(A,{optionalAxis:"colorAxis",translateColors:n}),b(A.pointClass.prototype,{setVisible:h}),y(u,"afterTranslate",l,{order:1}),y(u,"bindAxes",a))},t.pointSetVisible=h}(r||(r={}));let I=r,{parse:L}=m(),{merge:w}=p();!function(t){t.initDataClasses=function(t){let e=this.chart,s=this.legendItem=this.legendItem||{},i=this.options,o=t.dataClasses||[],r,l,a=e.options.chart.colorCount,h=0,n;this.dataClasses=l=[],s.labels=[];for(let t=0,s=o.length;t=i)&&(void 0===o||t<=o)){r=l.color,e&&(e.dataClass=a,e.colorIndex=l.colorIndex);break}}else{for(s=this.normalizedValue(t),a=n.length;a--&&!(s>n[a][0]););i=n[a]||n[a+1],s=1-((o=n[a+1]||i)[0]-s)/(o[0]-i[0]||1),r=i.color.tweenTo(o.color,s)}return r}}(l||(l={}));let S=l;var M=n(500),P=n.n(M),D=n(512),H=n.n(D);let{defaultOptions:k}=p(),{series:z}=H(),{defined:E,extend:O,fireEvent:V,isArray:T,isNumber:_,merge:W,pick:j,relativeLength:K}=p();k.colorAxis=W(k.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class R extends f(){static compose(t,e,s,i){I.compose(R,t,e,s,i)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let s=t.options.legend||{},i=e.layout?"vertical"!==e.layout:"vertical"!==s.layout;this.side=e.side||i?2:1,this.reversed=e.reversed||!i,this.opposite=!i,super.init(t,e,"colorAxis"),this.userOptions=e,T(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=i,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=W(k.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:s,height:i}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=s=+e.attr("width"),this.height=i=+e.attr("height"),this.right=t.chartWidth-this.left-s,this.bottom=t.chartHeight-this.top-i,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?s:i)||R.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let s=this.chart.legend;s.allItems.forEach(function(t){t instanceof R&&t.drawLegendSymbol(s,t)}),s.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,s=e?1:0,i=e?0:1,o=t?[s,0,i,0]:[0,i,0,s];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let s=e.legendItem||{},i=t.padding,o=t.options,r=this.options.labels,l=j(o.itemDistance,10),a=this.horiz,{width:h,height:n}=this.getSize(),d=j(o.labelPadding,a?16:30);this.setLegendColor(),s.symbol||(s.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(s.group)),s.symbol.attr({x:0,y:(t.baseline||0)-11,width:h,height:n}),s.labelWidth=h+i+(a?l:j(r.x,r.distance)+(this.maxLabelLength||0)),s.labelHeight=n+i+(a?d:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,s,i,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let l of(s=(o=t[r]).colorKey=j(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),i=o[s+"Min"]&&o[s+"Max"],[s,"value","y"]))if((e=o.getColumn(l)).length)break;if(i)o.minColorValue=o[s+"Min"],o.maxColorValue=o[s+"Max"];else{let t=z.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}E(o.minColorValue)&&E(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),i||z.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let s;let i=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,l=this.pos,a=this.len;e&&((s=this.toPixels(e.getNestedProperty(e.series.colorKey)))l+a&&(s=l+a+2),e.plotX=s,e.plotY=this.len-s,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&i.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(i.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,s=t.translatedValue,i=this.top;return _(s)?this.horiz?[["M",s-4,i-6],["L",s+4,i-6],["L",s,i],["Z"]]:[["M",e,s],["L",e-6,s+6],["L",e-6,s-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let s=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&s.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),s.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let s of e.labels)t.legend.destroyItem(s);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,s=e.chart,i=e.legendItem&&e.legendItem.labels||[],o=s.options.legend,r=j(o.valueDecimals,-1),l=j(o.valueSuffix,""),a=t=>e.series.reduce((e,s)=>(e.push(...s.points.filter(e=>e.dataClass===t)),e),[]);return i.length||e.dataClasses.forEach((o,h)=>{let n=o.from,d=o.to,{numberFormatter:c}=s,p=!0;t="",void 0===n?t="< ":void 0===d&&(t="> "),void 0!==n&&(t+=c(n,r)+l),void 0!==n&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=c(d,r)+l),i.push(O({chart:s,name:t,options:{},drawLegendSymbol:P().rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of a(h))e.setState(t)},setVisible:function(){this.visible=p=e.visible=!p;let t=[];for(let e of a(h))e.setVisible(p),e.hiddenInDataClass=!p,-1===t.indexOf(e.series)&&t.push(e.series);s.legend.colorizeItem(this,p),t.forEach(t=>{V(t,"afterDataClassLegendClick")})}},o))}),i}getSize(){let{chart:t,horiz:e}=this,{height:s,width:i}=this.options,{legend:o}=t.options;return{width:j(E(i)?K(i,t.chartWidth):void 0,o?.symbolWidth,e?R.defaultLegendLength:12),height:j(E(s)?K(s,t.chartHeight):void 0,o?.symbolHeight,e?12:R.defaultLegendLength)}}}R.defaultLegendLength=200,R.keepProps=["legendItem"],O(R.prototype,S),Array.prototype.push.apply(f().keepProps,R.keepProps);let X=p();X.ColorAxis=X.ColorAxis||R,X.ColorAxis.compose(X.Chart,X.Fx,X.Legend,X.Series);let N=p();return d.default})()); \ No newline at end of file diff --git a/modules/coloraxis.src.js b/modules/coloraxis.src.js index e64116d08b..ba5af724f2 100644 --- a/modules/coloraxis.src.js +++ b/modules/coloraxis.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/color-axis * @requires highcharts * diff --git a/modules/current-date-indicator.js b/modules/current-date-indicator.js index 19b08059fa..f3a80fb1a8 100644 --- a/modules/current-date-indicator.js +++ b/modules/current-date-indicator.js @@ -1,5 +1,5 @@ !/** - * Highcharts Gantt JS v12.0.2 (2024-12-04) + * Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/current-date-indicator * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Lars A. V. Cabrera * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/current-date-indicator",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/current-date-indicator"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e={944:e=>{e.exports=t}},r={};function o(t){var a=r[t];if(void 0!==a)return a.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var r in e)o.o(e,r)&&!o.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};o.d(a,{default:()=>x});var i=o(944),n=/*#__PURE__*/o.n(i);let{composed:s}=n(),{addEvent:l,merge:c,pushUnique:h,wrap:d}=n(),f={color:"#ccd3ff",width:2,label:{format:"%[abdYHM]",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t,!0)},rotation:0,style:{fontSize:"0.7em"}}};function u(){let t=this.options,e=t.currentDateIndicator;if(e){let r="object"==typeof e?c(f,e):c(f);r.value=Date.now(),r.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(r)}}function p(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function m(t,e){let r=this.options;return r&&r.className&&-1!==r.className.indexOf("highcharts-current-date-indicator")&&r.label&&"function"==typeof r.label.formatter?(r.value=Date.now(),r.label.formatter.call(this,r.value,r.label.format)):t.call(this,e)}let b=n();({compose:function(t,e){h(s,"CurrentDateIndication")&&(l(t,"afterSetOptions",u),l(e,"render",p),d(e.prototype,"getLabelText",m))}}).compose(b.Axis,b.PlotLineOrBand);let x=n();return a.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/current-date-indicator",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/current-date-indicator"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e={944:e=>{e.exports=t}},r={};function o(t){var a=r[t];if(void 0!==a)return a.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var r in e)o.o(e,r)&&!o.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};o.d(a,{default:()=>x});var i=o(944),n=o.n(i);let{composed:s}=n(),{addEvent:l,merge:c,pushUnique:h,wrap:d}=n(),f={color:"#ccd3ff",width:2,label:{format:"%[abdYHM]",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t,!0)},rotation:0,style:{fontSize:"0.7em"}}};function u(){let t=this.options,e=t.currentDateIndicator;if(e){let r="object"==typeof e?c(f,e):c(f);r.value=Date.now(),r.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(r)}}function p(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function m(t,e){let r=this.options;return r&&r.className&&-1!==r.className.indexOf("highcharts-current-date-indicator")&&r.label&&"function"==typeof r.label.formatter?(r.value=Date.now(),r.label.formatter.call(this,r.value,r.label.format)):t.call(this,e)}let b=n();({compose:function(t,e){h(s,"CurrentDateIndication")&&(l(t,"afterSetOptions",u),l(e,"render",p),d(e.prototype,"getLabelText",m))}}).compose(b.Axis,b.PlotLineOrBand);let x=n();return a.default})()); \ No newline at end of file diff --git a/modules/current-date-indicator.src.js b/modules/current-date-indicator.src.js index 71b42784c1..b3b0a2e698 100644 --- a/modules/current-date-indicator.src.js +++ b/modules/current-date-indicator.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/current-date-indicator * @requires highcharts * diff --git a/modules/cylinder.js b/modules/cylinder.js index f8461762a5..03eeb66321 100644 --- a/modules/cylinder.js +++ b/modules/cylinder.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/cylinder * @requires highcharts * @requires highcharts/highcharts-3d @@ -9,4 +9,4 @@ * (c) 2010-2024 Kacper Madej * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/cylinder",["highcharts/highcharts"],function(t){return e(t,t.Color,t.RendererRegistry,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/cylinder"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.RendererRegistry,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,r,s)=>(()=>{"use strict";var n={620:t=>{t.exports=e},608:t=>{t.exports=r},512:t=>{t.exports=s},944:e=>{e.exports=t}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return n[t](r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};i.d(h,{default:()=>W});var p=i(944),l=/*#__PURE__*/i.n(p);let{deg2rad:a}=l(),{pick:c}=l();function y(t,e,r,s){let n=e.options.chart.options3d,o=c(s,!!r&&e.inverted),i={x:e.plotWidth/2,y:e.plotHeight/2,z:n.depth/2,vd:c(n.depth,1)*c(n.viewDistance,0)},h=e.scale3d||1,p=a*n.beta*(o?-1:1),l=a*n.alpha*(o?-1:1),y={cosA:Math.cos(l),cosB:Math.cos(-p),sinA:Math.sin(l),sinB:Math.sin(-p)};return r||(i.x+=e.plotLeft,i.y+=e.plotTop),t.map(function(t){var e,r,s;let n=(e=(o?t.y:t.x)-i.x,r=(o?t.x:t.y)-i.y,s=(t.z||0)-i.z,{x:y.cosB*e-y.sinB*s,y:-y.sinA*y.sinB*e+y.cosA*r-y.cosB*y.sinA*s,z:y.cosA*y.sinB*e+y.sinA*r+y.cosA*y.cosB*s}),p=u(n,i,i.vd);return p.x=p.x*h+i.x,p.y=p.y*h+i.y,p.z=n.z*h+i.z,{x:o?p.y:p.x,y:o?p.x:p.y,z:p.z}})}function u(t,e,r){let s=r>0&&r"C"===t[0])}function w(t){return this.element3d("cylinder",t)}function B(t){let e=M[this.chartIndex],r=this.cuboidPath(t),s=!r.isTop,n=!r.isFront,o=this.getCylinderEnd(e,t),i=this.getCylinderEnd(e,t,!0);return{front:this.getCylinderFront(o,i),back:this.getCylinderBack(o,i),top:o,bottom:i,zIndexes:{top:s?3:0,bottom:s?0:3,front:n?2:1,back:n?1:2,group:r.zIndexes.group}}}function A(t){let e=[["M",t[0].x,t[0].y]],r=t.length-2;for(let s=1;sMath.abs(z[3].y-z[9].y)&&2.5>Math.abs(z[0].y-z[6].y)?this.toLinePath([z[0],z[3],z[6],z[9]],!0):this.getCurvedPath(z)}function L(t,e){let r=t.slice(0,3);if(_(e)){let t=e[0];"M"===t[0]&&(r.push(e[2]),r.push(e[1]),r.push(["L",t[1],t[2]]))}else{let t=e[0],s=e[1],n=e[2];"M"===t[0]&&"C"===s[0]&&"C"===n[0]&&(r.push(["L",n[5],n[6]]),r.push(["C",n[3],n[4],n[1],n[2],s[5],s[6]]),r.push(["C",s[3],s[4],s[1],s[2],t[1],t[2]]))}return r.push(["Z"]),r}var S=i(512),k=/*#__PURE__*/i.n(S);let{column:{prototype:{pointClass:D}}}=k().seriesTypes,{extend:E}=l();class O extends D{}E(O.prototype,{shapeType:"cylinder"});let{column:j}=k().seriesTypes,{extend:F,merge:N}=l();class Z extends j{}Z.compose=function(t){let e=t.prototype;e.cylinder||(e.Element3D.types.cylinder=m,R(e,{cylinder:w,cylinderPath:B,getCurvedPath:A,getCylinderBack:P,getCylinderEnd:I,getCylinderFront:L}))},Z.defaultOptions=N(j.defaultOptions,{}),F(Z.prototype,{pointClass:O}),k().registerSeriesType("cylinder",Z),Z.compose(z().getRendererType());let W=l();return h.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/cylinder",["highcharts/highcharts"],function(t){return e(t,t.Color,t.RendererRegistry,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/cylinder"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.RendererRegistry,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,r,s)=>(()=>{"use strict";var n={620:t=>{t.exports=e},608:t=>{t.exports=r},512:t=>{t.exports=s},944:e=>{e.exports=t}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return n[t](r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};i.d(h,{default:()=>W});var p=i(944),l=i.n(p);let{deg2rad:a}=l(),{pick:c}=l();function y(t,e,r,s){let n=e.options.chart.options3d,o=c(s,!!r&&e.inverted),i={x:e.plotWidth/2,y:e.plotHeight/2,z:n.depth/2,vd:c(n.depth,1)*c(n.viewDistance,0)},h=e.scale3d||1,p=a*n.beta*(o?-1:1),l=a*n.alpha*(o?-1:1),y={cosA:Math.cos(l),cosB:Math.cos(-p),sinA:Math.sin(l),sinB:Math.sin(-p)};return r||(i.x+=e.plotLeft,i.y+=e.plotTop),t.map(function(t){var e,r,s;let n=(e=(o?t.y:t.x)-i.x,r=(o?t.x:t.y)-i.y,s=(t.z||0)-i.z,{x:y.cosB*e-y.sinB*s,y:-y.sinA*y.sinB*e+y.cosA*r-y.cosB*y.sinA*s,z:y.cosA*y.sinB*e+y.sinA*r+y.cosA*y.cosB*s}),p=u(n,i,i.vd);return p.x=p.x*h+i.x,p.y=p.y*h+i.y,p.z=n.z*h+i.z,{x:o?p.y:p.x,y:o?p.x:p.y,z:p.z}})}function u(t,e,r){let s=r>0&&r"C"===t[0])}function w(t){return this.element3d("cylinder",t)}function B(t){let e=M[this.chartIndex],r=this.cuboidPath(t),s=!r.isTop,n=!r.isFront,o=this.getCylinderEnd(e,t),i=this.getCylinderEnd(e,t,!0);return{front:this.getCylinderFront(o,i),back:this.getCylinderBack(o,i),top:o,bottom:i,zIndexes:{top:s?3:0,bottom:s?0:3,front:n?2:1,back:n?1:2,group:r.zIndexes.group}}}function A(t){let e=[["M",t[0].x,t[0].y]],r=t.length-2;for(let s=1;sMath.abs(z[3].y-z[9].y)&&2.5>Math.abs(z[0].y-z[6].y)?this.toLinePath([z[0],z[3],z[6],z[9]],!0):this.getCurvedPath(z)}function L(t,e){let r=t.slice(0,3);if(_(e)){let t=e[0];"M"===t[0]&&(r.push(e[2]),r.push(e[1]),r.push(["L",t[1],t[2]]))}else{let t=e[0],s=e[1],n=e[2];"M"===t[0]&&"C"===s[0]&&"C"===n[0]&&(r.push(["L",n[5],n[6]]),r.push(["C",n[3],n[4],n[1],n[2],s[5],s[6]]),r.push(["C",s[3],s[4],s[1],s[2],t[1],t[2]]))}return r.push(["Z"]),r}var S=i(512),k=i.n(S);let{column:{prototype:{pointClass:D}}}=k().seriesTypes,{extend:E}=l();class O extends D{}E(O.prototype,{shapeType:"cylinder"});let{column:j}=k().seriesTypes,{extend:F,merge:N}=l();class Z extends j{}Z.compose=function(t){let e=t.prototype;e.cylinder||(e.Element3D.types.cylinder=m,R(e,{cylinder:w,cylinderPath:B,getCurvedPath:A,getCylinderBack:P,getCylinderEnd:I,getCylinderFront:L}))},Z.defaultOptions=N(j.defaultOptions,{}),F(Z.prototype,{pointClass:O}),k().registerSeriesType("cylinder",Z),Z.compose(z().getRendererType());let W=l();return h.default})()); \ No newline at end of file diff --git a/modules/cylinder.src.js b/modules/cylinder.src.js index dbc442660d..2543c268fe 100644 --- a/modules/cylinder.src.js +++ b/modules/cylinder.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/cylinder * @requires highcharts * @requires highcharts/highcharts-3d diff --git a/modules/data-tools.js b/modules/data-tools.js index 72a632808d..f1c8fb9852 100644 --- a/modules/data-tools.js +++ b/modules/data-tools.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/data-tools * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Highsoft AS * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/data-tools",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/data-tools"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},s={};function r(e){var n=s[e];if(void 0!==n)return n.exports;var i=s[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};r.d(n,{default:()=>tu});var i=r(944),o=/*#__PURE__*/r.n(i);let{addEvent:l,fireEvent:a,merge:u}=o();class h{benchmark(e,t){let s=[],r=this,n=()=>{r.modifyTable(e),r.emit({type:"afterBenchmarkIteration"})},{iterations:i}=u({iterations:1},t);r.on("afterBenchmarkIteration",()=>{if(s.length===i){r.emit({type:"afterBenchmark",results:s});return}n()});let o={startTime:0,endTime:0};return r.on("modify",()=>{o.startTime=window.performance.now()}),r.on("afterModify",()=>{o.endTime=window.performance.now(),s.push(o.endTime-o.startTime)}),n(),s}emit(e){a(this,e.type,e)}modify(e,t){let s=this;return new Promise((r,n)=>{e.modified===e&&(e.modified=e.clone(!1,t));try{r(s.modifyTable(e,t))}catch(r){s.emit({type:"error",detail:t,table:e}),n(r)}})}modifyCell(e,t,s,r,n){return this.modifyTable(e)}modifyColumns(e,t,s,r){return this.modifyTable(e)}modifyRows(e,t,s,r){return this.modifyTable(e)}on(e,t){return l(this,e,t)}}!function(e){e.types={},e.registerType=function(t,s){return!!t&&!e.types[t]&&!!(e.types[t]=s)}}(h||(h={}));let m=h,{fireEvent:f,isArray:c,objectEach:d,uniqueKey:p}=o(),g=class{constructor(e={}){this.autoId=!e.id,this.columns={},this.id=e.id||p(),this.modified=this,this.rowCount=0,this.versionTag=p();let t=0;d(e.columns||{},(e,s)=>{this.columns[s]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,d(this.columns,t=>{c(t)&&(t.length=e)})}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRow(e,t){return(t||Object.keys(this.columns)).map(t=>this.columns[t]?.[e])}setColumn(e,t=[],s=0,r){this.setColumns({[e]:t},s,r)}setColumns(e,t,s){let r=this.rowCount;d(e,(e,t)=>{this.columns[t]=e.slice(),r=e.length}),this.applyRowCount(r),s?.silent||(f(this,"afterSetColumns"),this.versionTag=p())}setRow(e,t=this.rowCount,s,r){let{columns:n}=this,i=s?this.rowCount+1:t+1;d(e,(e,o)=>{let l=n[o]||r?.addColumns!==!1&&Array(i);l&&(s?l.splice(t,0,e):l[t]=e,n[o]=l)}),i>this.rowCount&&this.applyRowCount(i),r?.silent||(f(this,"afterSetRows"),this.versionTag=p())}},{addEvent:y,defined:b,fireEvent:w,extend:C,uniqueKey:R}=o();class N extends g{static isNull(e){if(e===N.NULL)return!0;if(e instanceof Array){if(!e.length)return!1;for(let t=0,s=e.length;t0&&e=this.rowCount&&(this.rowCount=t+1),o[t]=s,i&&i.modifyCell(this,e,t,s),this.emit({type:"afterSetCell",cellValue:s,columnName:e,detail:r,rowIndex:t}))}setColumns(e,t,s){let r=this.columns,n=this.modifier,i=Object.keys(e),o=this.rowCount;if(this.emit({type:"setColumns",columns:e,columnNames:i,detail:s,rowIndex:t}),void 0===t)super.setColumns(e,t,C(s,{silent:!0}));else{for(let s=0,n=i.length,l,a;s(s.emit({type:"afterSetModifier",detail:t,modifier:e,modified:s.modified}),s)).catch(t=>{throw s.emit({type:"setModifierError",error:t,modifier:e,modified:s.modified}),t})}setOriginalRowIndexes(e,t=!1){if(this.originalRowIndexes=e,t)return;let s=this.localRowIndexes=[];for(let t=0,r=e.length,n;tthis.rowCount){this.rowCount=a;for(let e=0,t=i.length;ex(t[e].index,0)-x(t[s].index,0))}getSortedColumns(e){return this.table.getColumns(this.getColumnOrder(e))}load(){return v(this,"afterLoad",{table:this.table}),Promise.resolve(this)}on(e,t){return T(this,e,t)}save(){return v(this,"saveError",{table:this.table}),Promise.reject(Error("Not implemented"))}setColumnOrder(e){for(let t=0,s=e.length;tthis)}startPolling(e=1e3){let t=this;window.clearTimeout(t._polling),t._polling=window.setTimeout(()=>t.load().catch(e=>t.emit({type:"loadError",error:e,table:t.table})).then(()=>{t._polling&&t.startPolling(e)}),e)}stopPolling(){window.clearTimeout(this._polling),delete this._polling}whatIs(e){return this.metadata.columns[e]}}!function(e){e.types={},e.registerType=function(t,s){return!!t&&!e.types[t]&&!!(e.types[t]=s)}}(A||(A={}));let F=A,{addEvent:E,fireEvent:M,isNumber:I,merge:D}=o();class P{constructor(e){this.dateFormats={"YYYY/mm/dd":{regex:/^(\d{4})([\-\.\/])(\d{1,2})\2(\d{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],e[3]-1,+e[4]):NaN}},"dd/mm/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[3]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[1]-1,+e[3]):NaN}},"dd/mm/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){let t=new Date;if(!e)return NaN;let s=+e[4];return s>t.getFullYear()-2e3?s+=1900:s+=2e3,Date.UTC(s,e[3]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){return e?Date.UTC(+e[4]+2e3,e[1]-1,+e[3]):NaN}}};let t=D(P.defaultOptions,e),s=t.decimalPoint;("."===s||","===s)&&(s="."===s?"\\.":",",this.decimalRegExp=RegExp("^(-?[0-9]+)"+s+"([0-9]+)$")),this.options=t}asBoolean(e){return"boolean"==typeof e?e:"string"==typeof e?""!==e&&"0"!==e&&"false"!==e:!!this.asNumber(e)}asDate(e){let t;if("string"==typeof e)t=this.parseDate(e);else if("number"==typeof e)t=e;else{if(e instanceof Date)return e;t=this.parseDate(this.asString(e))}return new Date(t)}asGuessedType(e){return({number:this.asNumber,Date:this.asDate,string:this.asString})[this.guessType(e)].call(this,e)}asNumber(e){if("number"==typeof e)return e;if("boolean"==typeof e)return e?1:0;if("string"==typeof e){let t=this.decimalRegExp;if(e.indexOf(" ")>-1&&(e=e.replace(/\s+/g,"")),t){if(!t.test(e))return NaN;e=e.replace(t,"$1.$2")}return parseFloat(e)}return e instanceof Date?e.getDate():e?e.getRowCount():NaN}asString(e){return""+e}deduceDateFormat(e,t,s){let r=[],n=[],i="YYYY/mm/dd",o,l=[],a=0,u=!1,h,m;for((!t||t>e.length)&&(t=e.length);a31?h<100?l[m]="YY":l[m]="YYYY":h>12&&h<=31?(l[m]="dd",u=!0):l[m].length||(l[m]="mm"));if(u){for(m=0;m12&&"YY"!==l[m]&&"YYYY"!==l[m]&&(l[m]="YY"):n[m]>12&&"mm"===l[m]&&(l[m]="dd");3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),i=l.join("/")}return s&&(this.options.dateFormat=i),i}emit(e){M(this,e.type,e)}export(e,t){throw this.emit({type:"exportError",columns:[],headers:[]}),Error("Not implemented")}getTable(){throw Error("Not implemented")}guessType(e){let t="string";if("string"==typeof e){let s=this.trim(`${e}`),r=this.decimalRegExp,n=this.trim(s,!0);r&&(n=r.test(n)?n.replace(r,"$1.$2"):"");let i=parseFloat(n);+n===i?e=i:t=I(this.parseDate(e))?"Date":"string"}return"number"==typeof e&&(t=e>31536e6?"Date":"number"),t}on(e,t){return E(this,e,t)}parse(e){throw this.emit({type:"parseError",columns:[],headers:[]}),Error("Not implemented")}parseDate(e,t){let s=this.options,r=t||s.dateFormat,n=NaN,i,o,l;if(s.parseDate)n=s.parseDate(e);else{if(r)(o=this.dateFormats[r])||(o=this.dateFormats["YYYY/mm/dd"]),(l=e.match(o.regex))&&(n=o.parser(l));else for(i in this.dateFormats)if(o=this.dateFormats[i],l=e.match(o.regex)){r=i,n=o.parser(l);break}!l&&("object"==typeof(l=Date.parse(e))&&null!==l&&l.getTime?n=l.getTime()-6e4*l.getTimezoneOffset():I(l)&&(n=l-6e4*new Date(l).getTimezoneOffset(),-1===e.indexOf("2001")&&2001===new Date(n).getFullYear()&&(n=NaN)))}return n}trim(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/^[\d\s]+$/.test(e)&&(e=e.replace(/\s/g,""))),e}}P.defaultOptions={dateFormat:"",alternativeFormat:"",startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE,firstRowAsNames:!0,switchRowsAndColumns:!1},(P||(P={})).getTableFromColumns=function(e=[],t=[]){let s=new N;for(let r=0,n=Math.max(t.length,e.length);r=0)return this;try{this.emittingRegister.push(h);for(let e=0,t=o.length;e=0&&this.emittingRegister.splice(e,1)}}return this}remitCursor(e,t){let s=this.stateMap[e]&&this.stateMap[e][t.state];if(s){let e=L.getIndex(t,s);e>=0&&s.splice(e,1)}return this}removeListener(e,t,s){let r=this.listenerMap[e]&&this.listenerMap[e][t];if(r){let e=r.indexOf(s);e>=0&&r.splice(e,1)}return this}}L.version="1.0.0",function(e){function t(e,t){if("range"===e.type)return e;let s={type:"range",firstRow:e.row??(t&&t.firstRow)??0,lastRow:e.row??(t&&t.lastRow)??Number.MAX_VALUE,state:e.state};return void 0!==e.column&&(s.columns=[e.column]),s}e.getIndex=function(e,t){if("position"===e.type){for(let s,r=0,n=t.length;r=s.firstRow&&e.lastRow<=s.lastRow&&(!r||!n||r.every(e=>n.indexOf(e)>=0))},e.toPositions=function(e){if("position"===e.type)return[e];let t=e.columns||[],s=[],r=e.state;for(let n=e.firstRow,i=e.lastRow;n{delete this.waiting[e];for(let e=0,r=s.length;e{delete this.waiting[e];for(let e=0,r=s.length;e{s.push([e,t])})}getConnectorIds(){let e=this.options.connectors,t=[];for(let s=0,r=e.length;se.table)}isNewConnector(e){return!this.connectors[e]}loadConnector(e){return new Promise((t,s)=>{this.emit({type:"load",options:e});let r=F.types[e.type];if(!r)throw Error(`Connector type not found. (${e.type})`);new r(e.options).load().then(s=>{this.connectors[e.id]=s,this.emit({type:"afterLoad",options:e}),t(s)}).catch(s)})}on(e,t){return o().addEvent(this,e,t)}setConnectorOptions(e){let t=this.options.connectors,s=this.connectors;this.emit({type:"setConnectorOptions",options:e});for(let s=0,r=t.length;s]|<=|=>)/,B=/^(\$?[A-Z]+)(\$?\d+)\:(\$?[A-Z]+)(\$?\d+)/,G=/^R(\d*|\[\d+\])C(\d*|\[\d+\])\:R(\d*|\[\d+\])C(\d*|\[\d+\])/,Z=/^(\$?[A-Z]+)(\$?\d+)(?![\:C])/,X=/^R(\d*|\[\d+\])C(\d*|\[\d+\])(?!\:)/;function J(e){let t=0;for(let s=0,r=e.length,n,i=1;s0){let e=Error("Incomplete parantheses.");throw e.name="FormulaParseError",e}return""}function K(e){let t=-1;for(let s=0,r=e.length,n,i=!1;s=65&&n<=90&&(t+=(n-64)*Math.pow(26,i)),--i;return t}let W={parseFormula:z},ee=["+","-","*","/","^","=","<","<=",">",">="],et={isFormula:function(e){return e instanceof Array},isFunction:function(e){return"object"==typeof e&&!(e instanceof Array)&&"function"===e.type},isOperator:function(e){return"string"==typeof e&&ee.indexOf(e)>=0},isRange:function(e){return"object"==typeof e&&!(e instanceof Array)&&"range"===e.type},isReference:function(e){return"object"==typeof e&&!(e instanceof Array)&&"reference"===e.type},isValue:function(e){return"boolean"==typeof e||"number"==typeof e||"string"==typeof e}},{isFormula:es,isFunction:er,isOperator:en,isRange:ei,isReference:eo,isValue:el}=et,ea=/ */,eu=Number.MAX_VALUE/1.000000000001,eh=Number.MAX_VALUE/1.000000000002,em=Number.MAX_VALUE,ef={"^":3,"*":2,"/":2,"+":1,"-":1,"=":0,"<":0,"<=":0,">":0,">=":0},ec={},ed=/^[A-Z][A-Z\.]*$/;function ep(e){switch(typeof e){case"boolean":return e?em:eu;case"string":return eh;case"number":return e;default:return NaN}}function eg(e){return"string"==typeof e?e.toLowerCase().replace(ea,"\0"):e}function ey(e){switch(typeof e){case"boolean":return e?1:0;case"string":return parseFloat(e.replace(",","."));case"number":return e;default:return NaN}}function eb(e,t,s){let r;switch(e){case"=":return eg(t)===eg(s);case"<":if(typeof t==typeof s)return eg(t)":if(typeof t==typeof s)return eg(t)>eg(s);return ep(t)>ep(s);case">=":if(typeof t==typeof s)return eg(t)>=eg(s);return ep(t)>=ep(s)}switch(t=ey(t),s=ey(s),e){case"+":r=t+s;break;case"-":r=t-s;break;case"*":r=t*s;break;case"/":r=t/s;break;case"^":r=Math.pow(t,s);break;default:return NaN}return r%1?Math.round(1e9*r)/1e9:r}function ew(e,t){return el(e)?e:ei(e)?t&&eC(e,t)||[]:er(e)?eT(e,t):eN(es(e)?e:[e],t)}function eC(e,t){let s=t.getColumnNames().slice(e.beginColumn,e.endColumn+1),r=[];for(let n=0,i=s.length,o;nn&&(n=i);break;case"object":(i=e(i))>n&&(n=i)}return isFinite(n)?n:0}),ev.registerProcessorFunction("MEDIAN",function(e,t){let s=[],r=ev.getArgumentsValues(e,t);for(let e=0,t=r.length,n;e(l=parseFloat(o))&&(n=l,i=a);return i>1?n:NaN}ev.registerProcessorFunction("MOD",function(e,t){let s=eP(e[0],t),r=eP(e[1],t);return("object"==typeof s&&(s=s[0]),"object"==typeof r&&(r=r[0]),"number"!=typeof s||"number"!=typeof r||0===r)?NaN:s%r}),ev.registerProcessorFunction("MODE",eL),ev.registerProcessorFunction("MODE.MULT",function(e,t){let s=ej(e,t),r=Object.keys(s);if(!r.length)return NaN;let n=[parseFloat(r[0])],i=s[r[0]];for(let e=1,t=r.length,o,l;e1?n:NaN}),ev.registerProcessorFunction("MODE.SNGL",eL);let{getArgumentValue:eS}=ev;ev.registerProcessorFunction("NOT",function(e,t){let s=eS(e[0],t);switch("object"==typeof s&&(s=s[0]),typeof s){case"boolean":case"number":return!s}return NaN});let{getArgumentValue:eY}=ev;ev.registerProcessorFunction("OR",function e(t,s){for(let r=0,n=t.length,i;r`"${e}"`).join(o));for(let t=0;t2&&void 0===m[e][s];)m[e].pop(),s--;u.push(m[e].join(o))}}}return u.join(r)}parse(e,t){let s=this.dataTypes,r=eU(this.options,e),{beforeParse:n,lineDelimiter:i,firstRowAsNames:o,itemDelimiter:l}=r,a,u=0,{csv:h,startRow:m,endRow:f}=r,c;if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),h&&n&&(h=n(h)),h){if(a=h.replace(/\r\n|\r/g,"\n").split(i||"\n"),(!m||m<0)&&(m=0),(!f||f>=a.length)&&(f=a.length-1),l||(this.guessedItemDelimiter=this.guessDelimiter(a)),o){let e=a[0].split(l||this.guessedItemDelimiter||",");for(let t=0;t{h=e[t]},p=e=>{n.length{if(i>f||f>o){++f,m="";return}if("string"==typeof m?!isNaN(parseFloat(m))&&isFinite(m)?(m=parseFloat(m),p("number")):isNaN(Date.parse(m))?p("string"):(m=m.replace(/\//g,"-"),p("date")):p("number"),r.length13)break;let h=e[r];for(let e=0;en[","]?r=";":(n[","],n[";"],r=","),t>s?this.guessedDecimalPoint=".":this.guessedDecimalPoint=",",r}getTable(){return j.getTableFromColumns(this.columns,this.headers)}}eH.defaultOptions={...j.defaultOptions,lineDelimiter:"\n"};let{merge:e_}=o();class eB extends F{constructor(e){let t=e_(eB.defaultOptions,e);super(t),this.converter=new eH(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}load(e){let t=this,s=t.converter,r=t.table,{csv:n,csvURL:i,dataModifier:o}=t.options;return t.emit({type:"load",csv:n,detail:e,table:r}),Promise.resolve(i?fetch(i).then(e=>e.text()):n||"").then(e=>(e&&(r.deleteColumns(),s.parse({csv:e}),r.setColumns(s.getTable().getColumns())),t.setModifierOptions(o).then(()=>e))).then(s=>(t.emit({type:"afterLoad",csv:s,detail:e,table:r}),t)).catch(s=>{throw t.emit({type:"loadError",detail:e,error:s,table:r}),s})}}eB.defaultOptions={csv:"",csvURL:"",enablePolling:!1,dataRefreshRate:1,firstRowAsNames:!0},F.registerType("CSV",eB);let{error:eG,isArray:eZ,merge:eX,objectEach:eJ}=o();class eK extends j{constructor(e){let t=eX(eK.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.options=t,this.table=new N}parse(e,t){let{beforeParse:s,orientation:r,firstRowAsNames:n,columnNames:i}=e=eX(this.options,e),o=e.data;if(o){if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),s&&(o=s(o)),o=o.slice(),"columns"===r)for(let e=0,t=o.length;e{e[r]=s.reduce((e,t)=>e[t],t)}),t=e}this.table.setRows([t],e)}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}}getTable(){return this.table}}eK.defaultOptions={...j.defaultOptions,data:[],orientation:"rows"};let{merge:eq}=o();class ez extends F{constructor(e){let t=eq(ez.defaultOptions,e);super(t),this.converter=new eK(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}load(e){let t=this,s=t.converter,r=t.table,{data:n,dataUrl:i,dataModifier:o}=t.options;return t.emit({type:"load",data:n,detail:e,table:r}),Promise.resolve(i?fetch(i).then(e=>e.json()):n||[]).then(e=>(e&&(r.deleteColumns(),s.parse({data:e}),r.setColumns(s.getTable().getColumns())),t.setModifierOptions(o).then(()=>e))).then(s=>(t.emit({type:"afterLoad",data:s,detail:e,table:r}),t)).catch(s=>{throw t.emit({type:"loadError",detail:e,error:s,table:r}),s})}}ez.defaultOptions={data:[],enablePolling:!1,dataRefreshRate:0,firstRowAsNames:!0,orientation:"rows"},F.registerType("JSON",ez);let{merge:eQ,uniqueKey:eW}=o();class e0 extends j{constructor(e){let t=eQ(e0.defaultOptions,e);super(t),this.columns=[],this.header=[],this.options=t}parse(e,t){let s;let r=eQ(this.options,e),n=(r.json?.values||[]).map(e=>e.slice());if(0===n.length)return!1;this.header=[],this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.header});let{beforeParse:i,json:o}=r;i&&o&&(n=i(o.values)),this.columns=n;for(let e=0,t=n.length;ee.json()).then(e=>{if("object"==typeof e&&e&&"object"==typeof e.error&&e.error&&"number"==typeof e.error.code&&"string"==typeof e.error.message&&"string"==typeof e.error.status)throw Error(e.error.message);return s.parse({firstRowAsNames:l,json:e}),r.deleteColumns(),r.setColumns(s.getTable().getColumns()),t.setModifierOptions(n)}).then(()=>(t.emit({type:"afterLoad",detail:e,table:r,url:h}),o&&setTimeout(()=>t.load(),1e3*Math.max(i||0,1)),t)).catch(s=>{throw t.emit({type:"loadError",detail:e,error:s,table:r}),s})}}e3.defaultOptions={googleAPIKey:"",googleSpreadsheetKey:"",enablePolling:!1,dataRefreshRate:2,firstRowAsNames:!0},function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ";function s(e={}){let{endColumn:r,endRow:n,googleSpreadsheetRange:i,startColumn:o,startRow:l}=e;return i||(t[o||0]||"A")+(Math.max(l||0,0)+1)+":"+(t[e2(r,25)]||"Z")+(n?Math.max(n,0):"Z")}e.buildFetchURL=function(e,t,r={}){let n=new URL(`https://sheets.googleapis.com/v4/spreadsheets/${t}/values/`),i=r.onlyColumnNames?"A1:Z1":s(r);n.pathname+=i;let o=n.searchParams;return o.set("alt","json"),r.onlyColumnNames||(o.set("dateTimeRenderOption","FORMATTED_STRING"),o.set("majorDimension","COLUMNS"),o.set("valueRenderOption","UNFORMATTED_VALUE")),o.set("prettyPrint","false"),o.set("key",e),n.href},e.buildQueryRange=s}(e3||(e3={})),F.registerType("GoogleSheets",e3);let{merge:e4}=o();class e6 extends j{constructor(e){let t=e4(e6.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.options=t,t.tableElement&&(this.tableElement=t.tableElement,this.tableElementID=t.tableElement.id)}export(e,t=this.options){let s=!1!==t.firstRowAsNames,r=t.useMultiLevelHeaders,n=e.getSortedColumns(t.usePresentationOrder),i=Object.keys(n),o=[],l=i.length,a=[],u="";if(s){let e=[];if(r){for(let t of i){let s=(n[t].shift()||"").toString();e.push(s)}u=this.getTableHeaderHTML(i,e,t)}else u=this.getTableHeaderHTML(void 0,i,t)}for(let e=0;e"+a[r].join("")+"")}}let h="";return t.tableCaption&&(h=''+t.tableCaption+""),""+h+u+""+o.join("")+"
    "}getCellHTMLFromValue(e,t,s,r,n){let i=r,o="text"+(t?" "+t:"");return"number"==typeof i?(i=i.toString(),","===n&&(i=i.replace(".",n)),o="number"):r||(i="",o="empty"),"<"+e+(s?" "+s:"")+' class="'+o+'">'+i+""}getTableHeaderHTML(e=[],t=[],s=this.options){let{useMultiLevelHeaders:r,useRowspanHeaders:n}=s,i="",o=0,l=t&&t.length,a,u=0,h;if(r&&e&&t&&!function(e,t){let s=e.length;if(t.length!==s)return!1;for(;--s;)if(e[s]!==t[s])return!1;return!0}(e,t)){for(i+="";o1?' valign="top" rowspan="'+h+'"':""),a));i+=""}if(t){for(i+="",o=0,l=t.length;o"}return i+""}parse(e,t){let s=[],r=[],n=e4(this.options,e),{endRow:i,startColumn:o,endColumn:l,firstRowAsNames:a}=n,u=n.tableElement||this.tableElement;if(!(u instanceof HTMLElement)){this.emit({type:"parseError",columns:s,detail:t,headers:r,error:"Not a valid HTML Table"});return}this.tableElement=u,this.tableElementID=u.id,this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers});let h=u.getElementsByTagName("tr"),m=h.length,f=0,c,{startRow:d}=n;if(a&&m){let e=h[0].children,t=e.length;for(let s=o;sl);s++)("TD"===(c=e[s]).tagName||"TH"===c.tagName)&&r.push(c.innerHTML);d++}for(;f=d&&f<=i){let e=h[f].children,t=e.length,r=0;for(;r=o&&r<=l){s[t]||(s[t]=[]);let e=this.asGuessedType(c.innerHTML);e instanceof Date&&(e=e.getTime()),s[t][f-d]=e;let r=1;for(;f-d>=r&&void 0===n[f-d-r];)n[f-d-r]=null,r++}r++}}f++}this.columns=s,this.headers=r,this.emit({type:"afterParse",columns:s,detail:t,headers:r})}getTable(){return j.getTableFromColumns(this.columns,this.headers)}}e6.defaultOptions={...j.defaultOptions,useRowspanHeaders:!0,useMultiLevelHeaders:!0};let{win:e9}=o(),{merge:e5}=o();class e7 extends F{constructor(e){let t=e5(e7.defaultOptions,e);super(t),this.converter=new e6(t),this.options=t}load(e){let t;let s=this,r=s.converter,n=s.table,{dataModifier:i,table:o}=s.options;if(s.emit({type:"load",detail:e,table:n,tableElement:s.tableElement}),"string"==typeof o?(s.tableID=o,t=e9.document.getElementById(o)):(t=o,s.tableID=t.id),s.tableElement=t||void 0,!s.tableElement){let t="HTML table not provided, or element with ID not found";return s.emit({type:"loadError",detail:e,error:t,table:n}),Promise.reject(Error(t))}return r.parse(e5({tableElement:s.tableElement},s.options),e),n.deleteColumns(),n.setColumns(r.getTable().getColumns()),s.setModifierOptions(i).then(()=>(s.emit({type:"afterLoad",detail:e,table:n,tableElement:s.tableElement}),s))}}e7.defaultOptions={table:""},F.registerType("HTMLTable",e7);let{merge:e8}=o();class te extends m{constructor(e,...t){super(),this.chain=t,this.options=e8(te.defaultOptions,e);let s=this.options.chain||[];for(let e=0,r=s.length,n,i;e`${e}`),r={};for(let s=0,n=e.getRowCount(),i;s=0&&n.setColumn(i,this.processColumn(e,i));let i=this.options.columnFormulas||[];for(let t=0,r=i.length,o,l;t0?s:0);for(let t=0,s=n.length,i=[],o;t=0?s:0,r=r>=0?r:t.getRowCount()+r;let n=[],i=t.modified;for(let t=0,o=r-s;t0&&!r&&(t.deleteRows(),t.setRows(l),t.setOriginalRowIndexes(s,!0),o=t.getColumns(),l=[],s=[]),m=o[h.column]||[];for(let n=0,o=m.length,a,u,f;n=h.minValue&&a<=h.maxValue&&(r?(u=e.getRow(n),f=e.getOriginalRowIndex(n)):(u=t.getRow(n),f=t.getOriginalRowIndex(n)),u&&(l.push(u),s.push(f)))}}t.deleteRows(),t.setRows(l),t.setOriginalRowIndexes(s)}return this.emit({type:"afterModify",detail:t,table:e}),e}}ti.defaultOptions={type:"Range",ranges:[]},m.registerType("Range",ti);let{merge:to}=o();class tl extends m{static ascending(e,t){return(e||0)<(t||0)?-1:(e||0)>(t||0)?1:0}static descending(e,t){return(t||0)<(e||0)?-1:(t||0)>(e||0)?1:0}constructor(e){super(),this.options=to(tl.defaultOptions,e)}getRowReferences(e){let t=e.getRows(),s=[];for(let e=0,r=t.length;e-1&&(i&&t[o[0]].length?(e.modified.setColumns(t,s),e.modified.setColumn(i,this.modifyTable(new N({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,r)),e}modifyRows(e,t,s,r){let{orderByColumn:n,orderInColumn:i}=this.options;return i&&t.length?(e.modified.setRows(t,s),e.modified.setColumn(i,this.modifyTable(new N({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,r),e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let s=e.getColumnNames(),r=e.getRowCount(),n=this.getRowReferences(e),{direction:i,orderByColumn:o,orderInColumn:l}=this.options,a="asc"===i?tl.ascending:tl.descending,u=s.indexOf(o),h=e.modified;if(-1!==u&&n.sort((e,t)=>a(e.row[u],t.row[u])),l){let e=[];for(let t=0;t(()=>{"use strict";var t={944:t=>{t.exports=e}},s={};function r(e){var n=s[e];if(void 0!==n)return n.exports;var i=s[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};r.d(n,{default:()=>tu});var i=r(944),o=r.n(i);let{addEvent:l,fireEvent:a,merge:u}=o();class h{benchmark(e,t){let s=[],r=this,n=()=>{r.modifyTable(e),r.emit({type:"afterBenchmarkIteration"})},{iterations:i}=u({iterations:1},t);r.on("afterBenchmarkIteration",()=>{if(s.length===i){r.emit({type:"afterBenchmark",results:s});return}n()});let o={startTime:0,endTime:0};return r.on("modify",()=>{o.startTime=window.performance.now()}),r.on("afterModify",()=>{o.endTime=window.performance.now(),s.push(o.endTime-o.startTime)}),n(),s}emit(e){a(this,e.type,e)}modify(e,t){let s=this;return new Promise((r,n)=>{e.modified===e&&(e.modified=e.clone(!1,t));try{r(s.modifyTable(e,t))}catch(r){s.emit({type:"error",detail:t,table:e}),n(r)}})}modifyCell(e,t,s,r,n){return this.modifyTable(e)}modifyColumns(e,t,s,r){return this.modifyTable(e)}modifyRows(e,t,s,r){return this.modifyTable(e)}on(e,t){return l(this,e,t)}}!function(e){e.types={},e.registerType=function(t,s){return!!t&&!e.types[t]&&!!(e.types[t]=s)}}(h||(h={}));let m=h,{fireEvent:f,isArray:c,objectEach:d,uniqueKey:p}=o(),g=class{constructor(e={}){this.autoId=!e.id,this.columns={},this.id=e.id||p(),this.modified=this,this.rowCount=0,this.versionTag=p();let t=0;d(e.columns||{},(e,s)=>{this.columns[s]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,d(this.columns,t=>{c(t)&&(t.length=e)})}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRow(e,t){return(t||Object.keys(this.columns)).map(t=>this.columns[t]?.[e])}setColumn(e,t=[],s=0,r){this.setColumns({[e]:t},s,r)}setColumns(e,t,s){let r=this.rowCount;d(e,(e,t)=>{this.columns[t]=e.slice(),r=e.length}),this.applyRowCount(r),s?.silent||(f(this,"afterSetColumns"),this.versionTag=p())}setRow(e,t=this.rowCount,s,r){let{columns:n}=this,i=s?this.rowCount+1:t+1;d(e,(e,o)=>{let l=n[o]||r?.addColumns!==!1&&Array(i);l&&(s?l.splice(t,0,e):l[t]=e,n[o]=l)}),i>this.rowCount&&this.applyRowCount(i),r?.silent||(f(this,"afterSetRows"),this.versionTag=p())}},{addEvent:y,defined:b,fireEvent:w,extend:C,uniqueKey:R}=o();class N extends g{static isNull(e){if(e===N.NULL)return!0;if(e instanceof Array){if(!e.length)return!1;for(let t=0,s=e.length;t0&&e=this.rowCount&&(this.rowCount=t+1),o[t]=s,i&&i.modifyCell(this,e,t,s),this.emit({type:"afterSetCell",cellValue:s,columnName:e,detail:r,rowIndex:t}))}setColumns(e,t,s){let r=this.columns,n=this.modifier,i=Object.keys(e),o=this.rowCount;if(this.emit({type:"setColumns",columns:e,columnNames:i,detail:s,rowIndex:t}),void 0===t)super.setColumns(e,t,C(s,{silent:!0}));else{for(let s=0,n=i.length,l,a;s(s.emit({type:"afterSetModifier",detail:t,modifier:e,modified:s.modified}),s)).catch(t=>{throw s.emit({type:"setModifierError",error:t,modifier:e,modified:s.modified}),t})}setOriginalRowIndexes(e,t=!1){if(this.originalRowIndexes=e,t)return;let s=this.localRowIndexes=[];for(let t=0,r=e.length,n;tthis.rowCount){this.rowCount=a;for(let e=0,t=i.length;ex(t[e].index,0)-x(t[s].index,0))}getSortedColumns(e){return this.table.getColumns(this.getColumnOrder(e))}load(){return v(this,"afterLoad",{table:this.table}),Promise.resolve(this)}on(e,t){return T(this,e,t)}save(){return v(this,"saveError",{table:this.table}),Promise.reject(Error("Not implemented"))}setColumnOrder(e){for(let t=0,s=e.length;tthis)}startPolling(e=1e3){let t=this;window.clearTimeout(t._polling),t._polling=window.setTimeout(()=>t.load().catch(e=>t.emit({type:"loadError",error:e,table:t.table})).then(()=>{t._polling&&t.startPolling(e)}),e)}stopPolling(){window.clearTimeout(this._polling),delete this._polling}whatIs(e){return this.metadata.columns[e]}}!function(e){e.types={},e.registerType=function(t,s){return!!t&&!e.types[t]&&!!(e.types[t]=s)}}(A||(A={}));let F=A,{addEvent:M,fireEvent:E,isNumber:I,merge:D}=o();class P{constructor(e){this.dateFormats={"YYYY/mm/dd":{regex:/^(\d{4})([\-\.\/])(\d{1,2})\2(\d{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],e[3]-1,+e[4]):NaN}},"dd/mm/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[3]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[1]-1,+e[3]):NaN}},"dd/mm/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){let t=new Date;if(!e)return NaN;let s=+e[4];return s>t.getFullYear()-2e3?s+=1900:s+=2e3,Date.UTC(s,e[3]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){return e?Date.UTC(+e[4]+2e3,e[1]-1,+e[3]):NaN}}};let t=D(P.defaultOptions,e),s=t.decimalPoint;("."===s||","===s)&&(s="."===s?"\\.":",",this.decimalRegExp=RegExp("^(-?[0-9]+)"+s+"([0-9]+)$")),this.options=t}asBoolean(e){return"boolean"==typeof e?e:"string"==typeof e?""!==e&&"0"!==e&&"false"!==e:!!this.asNumber(e)}asDate(e){let t;if("string"==typeof e)t=this.parseDate(e);else if("number"==typeof e)t=e;else{if(e instanceof Date)return e;t=this.parseDate(this.asString(e))}return new Date(t)}asGuessedType(e){return({number:this.asNumber,Date:this.asDate,string:this.asString})[this.guessType(e)].call(this,e)}asNumber(e){if("number"==typeof e)return e;if("boolean"==typeof e)return e?1:0;if("string"==typeof e){let t=this.decimalRegExp;if(e.indexOf(" ")>-1&&(e=e.replace(/\s+/g,"")),t){if(!t.test(e))return NaN;e=e.replace(t,"$1.$2")}return parseFloat(e)}return e instanceof Date?e.getDate():e?e.getRowCount():NaN}asString(e){return""+e}deduceDateFormat(e,t,s){let r=[],n=[],i="YYYY/mm/dd",o,l=[],a=0,u=!1,h,m;for((!t||t>e.length)&&(t=e.length);a31?h<100?l[m]="YY":l[m]="YYYY":h>12&&h<=31?(l[m]="dd",u=!0):l[m].length||(l[m]="mm"));if(u){for(m=0;m12&&"YY"!==l[m]&&"YYYY"!==l[m]&&(l[m]="YY"):n[m]>12&&"mm"===l[m]&&(l[m]="dd");3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),i=l.join("/")}return s&&(this.options.dateFormat=i),i}emit(e){E(this,e.type,e)}export(e,t){throw this.emit({type:"exportError",columns:[],headers:[]}),Error("Not implemented")}getTable(){throw Error("Not implemented")}guessType(e){let t="string";if("string"==typeof e){let s=this.trim(`${e}`),r=this.decimalRegExp,n=this.trim(s,!0);r&&(n=r.test(n)?n.replace(r,"$1.$2"):"");let i=parseFloat(n);+n===i?e=i:t=I(this.parseDate(e))?"Date":"string"}return"number"==typeof e&&(t=e>31536e6?"Date":"number"),t}on(e,t){return M(this,e,t)}parse(e){throw this.emit({type:"parseError",columns:[],headers:[]}),Error("Not implemented")}parseDate(e,t){let s=this.options,r=t||s.dateFormat,n=NaN,i,o,l;if(s.parseDate)n=s.parseDate(e);else{if(r)(o=this.dateFormats[r])||(o=this.dateFormats["YYYY/mm/dd"]),(l=e.match(o.regex))&&(n=o.parser(l));else for(i in this.dateFormats)if(o=this.dateFormats[i],l=e.match(o.regex)){r=i,n=o.parser(l);break}!l&&("object"==typeof(l=Date.parse(e))&&null!==l&&l.getTime?n=l.getTime()-6e4*l.getTimezoneOffset():I(l)&&(n=l-6e4*new Date(l).getTimezoneOffset(),-1===e.indexOf("2001")&&2001===new Date(n).getFullYear()&&(n=NaN)))}return n}trim(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/^[\d\s]+$/.test(e)&&(e=e.replace(/\s/g,""))),e}}P.defaultOptions={dateFormat:"",alternativeFormat:"",startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE,firstRowAsNames:!0,switchRowsAndColumns:!1},function(e){e.types={},e.registerType=function(t,s){return!!t&&!e.types[t]&&!!(e.types[t]=s)},e.getTableFromColumns=function(e=[],t=[]){let s=new N;for(let r=0,n=Math.max(t.length,e.length);r=0)return this;try{this.emittingRegister.push(h);for(let e=0,t=o.length;e=0&&this.emittingRegister.splice(e,1)}}return this}remitCursor(e,t){let s=this.stateMap[e]&&this.stateMap[e][t.state];if(s){let e=S.getIndex(t,s);e>=0&&s.splice(e,1)}return this}removeListener(e,t,s){let r=this.listenerMap[e]&&this.listenerMap[e][t];if(r){let e=r.indexOf(s);e>=0&&r.splice(e,1)}return this}}S.version="1.0.0",function(e){function t(e,t){if("range"===e.type)return e;let s={type:"range",firstRow:e.row??(t&&t.firstRow)??0,lastRow:e.row??(t&&t.lastRow)??Number.MAX_VALUE,state:e.state};return void 0!==e.column&&(s.columns=[e.column]),s}e.getIndex=function(e,t){if("position"===e.type){for(let s,r=0,n=t.length;r=s.firstRow&&e.lastRow<=s.lastRow&&(!r||!n||r.every(e=>n.indexOf(e)>=0))},e.toPositions=function(e){if("position"===e.type)return[e];let t=e.columns||[],s=[],r=e.state;for(let n=e.firstRow,i=e.lastRow;n{delete this.waiting[e];for(let e=0,r=s.length;e{delete this.waiting[e];for(let e=0,r=s.length;e{s.push([e,t])})}getConnectorIds(){let e=this.options.connectors,t=[];for(let s=0,r=e.length;se.table)}isNewConnector(e){return!this.connectors[e]}loadConnector(e){return new Promise((t,s)=>{this.emit({type:"load",options:e});let r=F.types[e.type];if(!r)throw Error(`Connector type not found. (${e.type})`);new r(e.options).load().then(s=>{this.connectors[e.id]=s,this.emit({type:"afterLoad",options:e}),t(s)}).catch(s)})}on(e,t){return o().addEvent(this,e,t)}setConnectorOptions(e){let t=this.options.connectors,s=this.connectors;this.emit({type:"setConnectorOptions",options:e});for(let s=0,r=t.length;s]|<=|=>)/,B=/^(\$?[A-Z]+)(\$?\d+)\:(\$?[A-Z]+)(\$?\d+)/,G=/^R(\d*|\[\d+\])C(\d*|\[\d+\])\:R(\d*|\[\d+\])C(\d*|\[\d+\])/,Z=/^(\$?[A-Z]+)(\$?\d+)(?![\:C])/,J=/^R(\d*|\[\d+\])C(\d*|\[\d+\])(?!\:)/;function X(e){let t=0;for(let s=0,r=e.length,n,i=1;s0){let e=Error("Incomplete parantheses.");throw e.name="FormulaParseError",e}return""}function K(e){let t=-1;for(let s=0,r=e.length,n,i=!1;s=65&&n<=90&&(t+=(n-64)*Math.pow(26,i)),--i;return t}let W={parseFormula:z},ee=["+","-","*","/","^","=","<","<=",">",">="],et={isFormula:function(e){return e instanceof Array},isFunction:function(e){return"object"==typeof e&&!(e instanceof Array)&&"function"===e.type},isOperator:function(e){return"string"==typeof e&&ee.indexOf(e)>=0},isRange:function(e){return"object"==typeof e&&!(e instanceof Array)&&"range"===e.type},isReference:function(e){return"object"==typeof e&&!(e instanceof Array)&&"reference"===e.type},isValue:function(e){return"boolean"==typeof e||"number"==typeof e||"string"==typeof e}},{isFormula:es,isFunction:er,isOperator:en,isRange:ei,isReference:eo,isValue:el}=et,ea=/ */,eu=Number.MAX_VALUE/1.000000000001,eh=Number.MAX_VALUE/1.000000000002,em=Number.MAX_VALUE,ef={"^":3,"*":2,"/":2,"+":1,"-":1,"=":0,"<":0,"<=":0,">":0,">=":0},ec={},ed=/^[A-Z][A-Z\.]*$/;function ep(e){switch(typeof e){case"boolean":return e?em:eu;case"string":return eh;case"number":return e;default:return NaN}}function eg(e){return"string"==typeof e?e.toLowerCase().replace(ea,"\0"):e}function ey(e){switch(typeof e){case"boolean":return e?1:0;case"string":return parseFloat(e.replace(",","."));case"number":return e;default:return NaN}}function eb(e,t,s){let r;switch(e){case"=":return eg(t)===eg(s);case"<":if(typeof t==typeof s)return eg(t)":if(typeof t==typeof s)return eg(t)>eg(s);return ep(t)>ep(s);case">=":if(typeof t==typeof s)return eg(t)>=eg(s);return ep(t)>=ep(s)}switch(t=ey(t),s=ey(s),e){case"+":r=t+s;break;case"-":r=t-s;break;case"*":r=t*s;break;case"/":r=t/s;break;case"^":r=Math.pow(t,s);break;default:return NaN}return r%1?Math.round(1e9*r)/1e9:r}function ew(e,t){return el(e)?e:ei(e)?t&&eC(e,t)||[]:er(e)?eT(e,t):eN(es(e)?e:[e],t)}function eC(e,t){let s=t.getColumnNames().slice(e.beginColumn,e.endColumn+1),r=[];for(let n=0,i=s.length,o;nn&&(n=i);break;case"object":(i=e(i))>n&&(n=i)}return isFinite(n)?n:0}),ev.registerProcessorFunction("MEDIAN",function(e,t){let s=[],r=ev.getArgumentsValues(e,t);for(let e=0,t=r.length,n;e(l=parseFloat(o))&&(n=l,i=a);return i>1?n:NaN}ev.registerProcessorFunction("MOD",function(e,t){let s=eP(e[0],t),r=eP(e[1],t);return("object"==typeof s&&(s=s[0]),"object"==typeof r&&(r=r[0]),"number"!=typeof s||"number"!=typeof r||0===r)?NaN:s%r}),ev.registerProcessorFunction("MODE",eS),ev.registerProcessorFunction("MODE.MULT",function(e,t){let s=ej(e,t),r=Object.keys(s);if(!r.length)return NaN;let n=[parseFloat(r[0])],i=s[r[0]];for(let e=1,t=r.length,o,l;e1?n:NaN}),ev.registerProcessorFunction("MODE.SNGL",eS);let{getArgumentValue:eL}=ev;ev.registerProcessorFunction("NOT",function(e,t){let s=eL(e[0],t);switch("object"==typeof s&&(s=s[0]),typeof s){case"boolean":case"number":return!s}return NaN});let{getArgumentValue:eY}=ev;ev.registerProcessorFunction("OR",function e(t,s){for(let r=0,n=t.length,i;r`"${e}"`).join(o));for(let t=0;t2&&void 0===m[e][s];)m[e].pop(),s--;u.push(m[e].join(o))}}}return u.join(r)}parse(e,t){let s=this.dataTypes,r=eU(this.options,e),{beforeParse:n,lineDelimiter:i,firstRowAsNames:o,itemDelimiter:l}=r,a,u=0,{csv:h,startRow:m,endRow:f}=r,c;if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),h&&n&&(h=n(h)),h){if(a=h.replace(/\r\n|\r/g,"\n").split(i||"\n"),(!m||m<0)&&(m=0),(!f||f>=a.length)&&(f=a.length-1),l||(this.guessedItemDelimiter=this.guessDelimiter(a)),o){let e=a[0].split(l||this.guessedItemDelimiter||",");for(let t=0;t{h=e[t]},p=e=>{n.length{if(i>f||f>o){++f,m="";return}if("string"==typeof m?!isNaN(parseFloat(m))&&isFinite(m)?(m=parseFloat(m),p("number")):isNaN(Date.parse(m))?p("string"):(m=m.replace(/\//g,"-"),p("date")):p("number"),r.length13)break;let h=e[r];for(let e=0;en[","]?r=";":(n[","],n[";"],r=","),t>s?this.guessedDecimalPoint=".":this.guessedDecimalPoint=",",r}getTable(){return j.getTableFromColumns(this.columns,this.headers)}}eH.defaultOptions={...j.defaultOptions,lineDelimiter:"\n"},j.registerType("CSV",eH);let{merge:e_}=o();class eB extends F{constructor(e){let t=e_(eB.defaultOptions,e);super(t),this.converter=new eH(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}load(e){let t=this,s=t.converter,r=t.table,{csv:n,csvURL:i,dataModifier:o}=t.options;return t.emit({type:"load",csv:n,detail:e,table:r}),Promise.resolve(i?fetch(i).then(e=>e.text()):n||"").then(e=>(e&&(r.deleteColumns(),s.parse({csv:e}),r.setColumns(s.getTable().getColumns())),t.setModifierOptions(o).then(()=>e))).then(s=>(t.emit({type:"afterLoad",csv:s,detail:e,table:r}),t)).catch(s=>{throw t.emit({type:"loadError",detail:e,error:s,table:r}),s})}}eB.defaultOptions={csv:"",csvURL:"",enablePolling:!1,dataRefreshRate:1,firstRowAsNames:!0},F.registerType("CSV",eB);let{error:eG,isArray:eZ,merge:eJ,objectEach:eX}=o();class eK extends j{constructor(e){let t=eJ(eK.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.options=t,this.table=new N}parse(e,t){let{beforeParse:s,orientation:r,firstRowAsNames:n,columnNames:i}=e=eJ(this.options,e),o=e.data;if(o){if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),s&&(o=s(o)),o=o.slice(),"columns"===r)for(let e=0,t=o.length;e{e[r]=s.reduce((e,t)=>e[t],t)}),t=e}this.table.setRows([t],e)}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}}getTable(){return this.table}}eK.defaultOptions={...j.defaultOptions,data:[],orientation:"rows"},j.registerType("JSON",eK);let{merge:eq}=o();class ez extends F{constructor(e){let t=eq(ez.defaultOptions,e);super(t),this.converter=new eK(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}load(e){let t=this,s=t.converter,r=t.table,{data:n,dataUrl:i,dataModifier:o}=t.options;return t.emit({type:"load",data:n,detail:e,table:r}),Promise.resolve(i?fetch(i).then(e=>e.json()):n||[]).then(e=>(e&&(r.deleteColumns(),s.parse({data:e}),r.setColumns(s.getTable().getColumns())),t.setModifierOptions(o).then(()=>e))).then(s=>(t.emit({type:"afterLoad",data:s,detail:e,table:r}),t)).catch(s=>{throw t.emit({type:"loadError",detail:e,error:s,table:r}),s})}}ez.defaultOptions={data:[],enablePolling:!1,dataRefreshRate:0,firstRowAsNames:!0,orientation:"rows"},F.registerType("JSON",ez);let{merge:eQ,uniqueKey:eW}=o();class e0 extends j{constructor(e){let t=eQ(e0.defaultOptions,e);super(t),this.columns=[],this.header=[],this.options=t}parse(e,t){let s;let r=eQ(this.options,e),n=(r.json?.values||[]).map(e=>e.slice());if(0===n.length)return!1;this.header=[],this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.header});let{beforeParse:i,json:o}=r;i&&o&&(n=i(o.values)),this.columns=n;for(let e=0,t=n.length;ee.json()).then(e=>{if("object"==typeof e&&e&&"object"==typeof e.error&&e.error&&"number"==typeof e.error.code&&"string"==typeof e.error.message&&"string"==typeof e.error.status)throw Error(e.error.message);return s.parse({firstRowAsNames:l,json:e}),r.deleteColumns(),r.setColumns(s.getTable().getColumns()),t.setModifierOptions(n)}).then(()=>(t.emit({type:"afterLoad",detail:e,table:r,url:h}),o&&setTimeout(()=>t.load(),1e3*Math.max(i||0,1)),t)).catch(s=>{throw t.emit({type:"loadError",detail:e,error:s,table:r}),s})}}e3.defaultOptions={googleAPIKey:"",googleSpreadsheetKey:"",enablePolling:!1,dataRefreshRate:2,firstRowAsNames:!0},function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ";function s(e={}){let{endColumn:r,endRow:n,googleSpreadsheetRange:i,startColumn:o,startRow:l}=e;return i||(t[o||0]||"A")+(Math.max(l||0,0)+1)+":"+(t[e2(r,25)]||"Z")+(n?Math.max(n,0):"Z")}e.buildFetchURL=function(e,t,r={}){let n=new URL(`https://sheets.googleapis.com/v4/spreadsheets/${t}/values/`),i=r.onlyColumnNames?"A1:Z1":s(r);n.pathname+=i;let o=n.searchParams;return o.set("alt","json"),r.onlyColumnNames||(o.set("dateTimeRenderOption","FORMATTED_STRING"),o.set("majorDimension","COLUMNS"),o.set("valueRenderOption","UNFORMATTED_VALUE")),o.set("prettyPrint","false"),o.set("key",e),n.href},e.buildQueryRange=s}(e3||(e3={})),F.registerType("GoogleSheets",e3);let{merge:e4}=o();class e6 extends j{constructor(e){let t=e4(e6.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.options=t,t.tableElement&&(this.tableElement=t.tableElement,this.tableElementID=t.tableElement.id)}export(e,t=this.options){let s=!1!==t.firstRowAsNames,r=t.useMultiLevelHeaders,n=e.getSortedColumns(t.usePresentationOrder),i=Object.keys(n),o=[],l=i.length,a=[],u="";if(s){let e=[];if(r){for(let t of i){let s=(n[t].shift()||"").toString();e.push(s)}u=this.getTableHeaderHTML(i,e,t)}else u=this.getTableHeaderHTML(void 0,i,t)}for(let e=0;e"+a[r].join("")+"")}}let h="";return t.tableCaption&&(h=''+t.tableCaption+""),""+h+u+""+o.join("")+"
    "}getCellHTMLFromValue(e,t,s,r,n){let i=r,o="text"+(t?" "+t:"");return"number"==typeof i?(i=i.toString(),","===n&&(i=i.replace(".",n)),o="number"):r||(i="",o="empty"),"<"+e+(s?" "+s:"")+' class="'+o+'">'+i+""}getTableHeaderHTML(e=[],t=[],s=this.options){let{useMultiLevelHeaders:r,useRowspanHeaders:n}=s,i="",o=0,l=t&&t.length,a,u=0,h;if(r&&e&&t&&!function(e,t){let s=e.length;if(t.length!==s)return!1;for(;--s;)if(e[s]!==t[s])return!1;return!0}(e,t)){for(i+="";o1?' valign="top" rowspan="'+h+'"':""),a));i+=""}if(t){for(i+="",o=0,l=t.length;o"}return i+""}parse(e,t){let s=[],r=[],n=e4(this.options,e),{endRow:i,startColumn:o,endColumn:l,firstRowAsNames:a}=n,u=n.tableElement||this.tableElement;if(!(u instanceof HTMLElement)){this.emit({type:"parseError",columns:s,detail:t,headers:r,error:"Not a valid HTML Table"});return}this.tableElement=u,this.tableElementID=u.id,this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers});let h=u.getElementsByTagName("tr"),m=h.length,f=0,c,{startRow:d}=n;if(a&&m){let e=h[0].children,t=e.length;for(let s=o;sl);s++)("TD"===(c=e[s]).tagName||"TH"===c.tagName)&&r.push(c.innerHTML);d++}for(;f=d&&f<=i){let e=h[f].children,t=e.length,r=0;for(;r=o&&r<=l){s[t]||(s[t]=[]);let e=this.asGuessedType(c.innerHTML);e instanceof Date&&(e=e.getTime()),s[t][f-d]=e;let r=1;for(;f-d>=r&&void 0===n[f-d-r];)n[f-d-r]=null,r++}r++}}f++}this.columns=s,this.headers=r,this.emit({type:"afterParse",columns:s,detail:t,headers:r})}getTable(){return j.getTableFromColumns(this.columns,this.headers)}}e6.defaultOptions={...j.defaultOptions,useRowspanHeaders:!0,useMultiLevelHeaders:!0},j.registerType("HTMLTable",e6);let{win:e9}=o(),{merge:e5}=o();class e7 extends F{constructor(e){let t=e5(e7.defaultOptions,e);super(t),this.converter=new e6(t),this.options=t}load(e){let t;let s=this,r=s.converter,n=s.table,{dataModifier:i,table:o}=s.options;if(s.emit({type:"load",detail:e,table:n,tableElement:s.tableElement}),"string"==typeof o?(s.tableID=o,t=e9.document.getElementById(o)):(t=o,s.tableID=t.id),s.tableElement=t||void 0,!s.tableElement){let t="HTML table not provided, or element with ID not found";return s.emit({type:"loadError",detail:e,error:t,table:n}),Promise.reject(Error(t))}return r.parse(e5({tableElement:s.tableElement},s.options),e),n.deleteColumns(),n.setColumns(r.getTable().getColumns()),s.setModifierOptions(i).then(()=>(s.emit({type:"afterLoad",detail:e,table:n,tableElement:s.tableElement}),s))}}e7.defaultOptions={table:""},F.registerType("HTMLTable",e7);let{merge:e8}=o();class te extends m{constructor(e,...t){super(),this.chain=t,this.options=e8(te.defaultOptions,e);let s=this.options.chain||[];for(let e=0,r=s.length,n,i;e`${e}`),r={};for(let s=0,n=e.getRowCount(),i;s=0&&n.setColumn(i,this.processColumn(e,i));let i=this.options.columnFormulas||[];for(let t=0,r=i.length,o,l;t0?s:0);for(let t=0,s=n.length,i=[],o;t=0?s:0,r=r>=0?r:t.getRowCount()+r;let n=[],i=t.modified;for(let t=0,o=r-s;t0&&!r&&(t.deleteRows(),t.setRows(l),t.setOriginalRowIndexes(s,!0),o=t.getColumns(),l=[],s=[]),m=o[h.column]||[];for(let n=0,o=m.length,a,u,f;n=h.minValue&&a<=h.maxValue&&(r?(u=e.getRow(n),f=e.getOriginalRowIndex(n)):(u=t.getRow(n),f=t.getOriginalRowIndex(n)),u&&(l.push(u),s.push(f)))}}t.deleteRows(),t.setRows(l),t.setOriginalRowIndexes(s)}return this.emit({type:"afterModify",detail:t,table:e}),e}}ti.defaultOptions={type:"Range",ranges:[]},m.registerType("Range",ti);let{merge:to}=o();class tl extends m{static ascending(e,t){return(e||0)<(t||0)?-1:(e||0)>(t||0)?1:0}static descending(e,t){return(t||0)<(e||0)?-1:(t||0)>(e||0)?1:0}constructor(e){super(),this.options=to(tl.defaultOptions,e)}getRowReferences(e){let t=e.getRows(),s=[];for(let e=0,r=t.length;e-1&&(i&&t[o[0]].length?(e.modified.setColumns(t,s),e.modified.setColumn(i,this.modifyTable(new N({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,r)),e}modifyRows(e,t,s,r){let{orderByColumn:n,orderInColumn:i}=this.options;return i&&t.length?(e.modified.setRows(t,s),e.modified.setColumn(i,this.modifyTable(new N({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,r),e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let s=e.getColumnNames(),r=e.getRowCount(),n=this.getRowReferences(e),{direction:i,orderByColumn:o,orderInColumn:l}=this.options,a="asc"===i?tl.ascending:tl.descending,u=s.indexOf(o),h=e.modified;if(-1!==u&&n.sort((e,t)=>a(e.row[u],t.row[u])),l){let e=[];for(let t=0;t(()=>{"use strict";var a={532:e=>{e.exports=t},960:e=>{e.exports=s},260:e=>{e.exports=i},512:e=>{e.exports=r},944:t=>{t.exports=e}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return a[e](s,s.exports,o),s.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var l={};o.d(l,{default:()=>$});var h=o(944),u=/*#__PURE__*/o.n(h);let{win:d}=u(),{discardElement:p,objectEach:c}=u(),m={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},s=new XMLHttpRequest;function i(t,s){e.error&&e.error(t,s)}if(!e.url)return!1;s.open((e.type||"get").toUpperCase(),e.url,!0),e.headers&&e.headers["Content-Type"]||s.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),c(e.headers,function(e,t){s.setRequestHeader(t,e)}),e.responseType&&(s.responseType=e.responseType),s.onreadystatechange=function(){let t;if(4===s.readyState){if(200===s.status){if("blob"!==e.responseType&&(t=s.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(s,e)}return e.success&&e.success(t,s)}i(s,s.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),s.send(e.data)},getJSON:function(e,t){m.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(e,t,s){let i=new d.FormData;c(t,function(e,t){i.append(t,e)}),i.append("b64","true");let{filename:r,type:a}=t;return d.fetch(e,{method:"POST",body:i,...s}).then(e=>{e.ok&&e.text().then(e=>{let t=document.createElement("a");t.href=`data:${a};base64,${e}`,t.download=r,t.click(),p(t)})})}};var f=o(532),g=/*#__PURE__*/o.n(f),x=o(960),y=/*#__PURE__*/o.n(x),v=o(260),C=/*#__PURE__*/o.n(v),T=o(512),N=/*#__PURE__*/o.n(T);let{getOptions:R}=u(),{doc:A}=u(),{ajax:Y}=m,{seriesTypes:D}=N(),{addEvent:w,defined:U,extend:b,fireEvent:F,isNumber:O,merge:H,objectEach:S,pick:E,splat:j}=u();function L(e){return!!(e&&(e.rowsURL||e.csvURL||e.columnsURL))}class M{static data(e,t={},s){return new M(e,t,s)}static rowsToColumns(e){let t,s,i,r,a;if(e)for(t=0,a=[],s=e.length;tt.getFullYear()-2e3?s+=1900:s+=2e3,Date.UTC(s,+e[2]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,parser:function(e){return e?Date.UTC(+e[3]+2e3,+e[1]-1,+e[2]):NaN}}},this.chart=s,this.chartOptions=t,this.options=e,this.rawColumns=[],this.init(e,t,s)}init(e,t,s){let i=e.decimalPoint,r;t&&(this.chartOptions=t),s&&(this.chart=s),"."!==i&&","!==i&&(i=void 0),this.options=e,this.columns=e.columns||this.rowsToColumns(e.rows)||[],this.firstRowAsNames=E(e.firstRowAsNames,this.firstRowAsNames,!0),this.decimalRegex=i&&RegExp("^(-?[0-9]+)"+i+"([0-9]+)$"),void 0!==this.liveDataTimeout&&clearTimeout(this.liveDataTimeout),this.rawColumns=[],this.columns.length&&(this.dataFound(),r=!L(e)),r||(r=this.fetchLiveData()),r||(r=!!this.parseCSV().length),r||(r=!!this.parseTable().length),r||(r=this.parseGoogleSpreadsheet()),!r&&e.afterComplete&&e.afterComplete(this)}getColumnDistribution(){let e=this.chartOptions,t=this.options,s=[],i=function(e="line"){return(D[e].prototype.pointArrayMap||[0]).length},r=function(e="line"){return D[e].prototype.pointArrayMap},a=e?.chart?.type,n=[],o=[],l=t?.seriesMapping||e?.series?.map(function(){return{x:0}})||[],h=0;(e?.series||[]).forEach(e=>{n.push(i(e.type||a))}),l.forEach(e=>{s.push(e.x||0)}),0===s.length&&s.push(0),l.forEach(t=>{let s=new I,l=n[h]||i(a),u=(e?.series??[])[h]??{},d=r(u.type||a),p=d??["y"];(U(t.x)||u.isCartesian||!d)&&s.addColumnReader(t.x,"x"),S(t,function(e,t){"x"!==t&&s.addColumnReader(e,t)});for(let e=0;e=p.length)&&(u=p.length-1),i.itemDelimiter)d=i.itemDelimiter;else{let e,s,r;e=0,s=0,r=!1,p.some(function(t,i){let r=!1,a,n,l,h="";if(i>13)return!0;for(let i=0;io[","]?r=";":(o[","],o[";"],r=","),i.decimalPoint||(e>s?i.decimalPoint=".":i.decimalPoint=",",t.decimalRegex=RegExp("^(-?[0-9]+)"+i.decimalPoint+"([0-9]+)$")),d=r}let e=0;for(c=h;c<=u;c++)"#"===p[c][0]?e++:function(e,t,o,l){let h=0,u="",p="",c="",m="",f=0,g=0;function x(t){u=e[t],p=e[t-1],c=e[t+1]}function y(e){n.lengthf||f>a){++f,m="";return}i.columnTypes||(!isNaN(parseFloat(m))&&isFinite(m)?(m=parseFloat(m),y("number")):isNaN(Date.parse(m))?y("string"):(m=m.replace(/\//g,"-"),y("date"))),s.lengthe.length)&&(s=e.length);u31?o[p]<100?l[p]="YY":l[p]="YYYY":o[p]>12&&o[p]<=31?(l[p]="dd",d=!0):l[p].length||(l[p]="mm")));if(d){for(p=0;p12&&"YY"!==l[p]&&"YYYY"!==l[p]&&(l[p]="YY"):n[p]>12&&"mm"===l[p]&&(l[p]="dd");return(3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),h=l.join("/"),(i.dateFormats||t.dateFormats)[h])?h:(F(t,"deduceDateFailed"),r)}return r}(s[0])),this.dataFound()}return s}parseTable(){let e=this.options,t=this.columns||[],s=e.startRow||0,i=e.endRow||Number.MAX_VALUE,r=e.startColumn||0,a=e.endColumn||Number.MAX_VALUE;if(e.table){let n=e.table;"string"==typeof n&&(n=A.getElementById(n)),[].forEach.call(n.getElementsByTagName("tr"),(e,n)=>{n>=s&&n<=i&&[].forEach.call(e.children,(e,i)=>{let o=t[i-r],l=1;if(("TD"===e.tagName||"TH"===e.tagName)&&i>=r&&i<=a)for(t[i-r]||(t[i-r]=[]),t[i-r][n-s]=e.innerHTML;n-s>=l&&void 0===o[n-s-l];)o[n-s-l]=null,l++})}),this.dataFound()}return t}fetchLiveData(){let e=this,t=this.chart,s=this.options,i=s.enablePolling,r=H(s),a=0,n=1e3*(s.dataRefreshRate||2);return!!L(s)&&(n<1e3&&(n=1e3),delete s.csvURL,delete s.rowsURL,delete s.columnsURL,!function o(l){function h(r,h,u){if(!r||!/^(http|\/|\.\/|\.\.\/)/.test(r))return r&&s.error&&s.error("Invalid URL"),!1;function d(){i&&t.liveDataURL===r&&(e.liveDataTimeout=setTimeout(o,n))}return l&&(clearTimeout(e.liveDataTimeout),t.liveDataURL=r),Y({url:r,dataType:u||"json",success:function(e){t?.series&&h(e),d()},error:function(e,t){return++a<3&&d(),s.error?.(t,e)}}),!0}h(r.csvURL,function(e){t.update({data:{csv:e}})},"text")||h(r.rowsURL,function(e){t.update({data:{rows:e}})})||h(r.columnsURL,function(e){t.update({data:{columns:e}})})}(!0),L(s))}parseGoogleSpreadsheet(){let e=this,t=this.options,s=t.googleSpreadsheetKey,i=this.chart,r=Math.max(1e3*(t.dataRefreshRate||2),4e3),a=()=>{if(t.googleSpreadsheetRange)return t.googleSpreadsheetRange;let e="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=(e.charAt(t.startColumn||0)||"A")+((t.startRow||0)+1),i=e.charAt(E(t.endColumn,-1))||"ZZ";return U(t.endRow)&&(i+=t.endRow+1),`${s}:${i}`};return s&&(delete t.googleSpreadsheetKey,function i(n){Y({url:["https://sheets.googleapis.com/v4/spreadsheets",s,"values",a(),"?alt=json&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING&key="+t.googleAPIKey].join("/"),dataType:"json",success:function(s){n(s),t.enablePolling&&(e.liveDataTimeout=setTimeout(function(){i(n)},r))},error:function(e,s){return t.error?.(s,e)}})}(function(t){let s=t.values;if(!s||0===s.length)return!1;let r=s.reduce((e,t)=>Math.max(e,t.length),0);s.forEach(e=>{for(let t=0;t31536e6&&"float"!==l?e.isDatetime=!0:e.isNumeric=!0,void 0!==e[d+1]&&(y=c>e[d+1])):(m?.length&&(g=this.parseDate(p)),a&&O(g)&&"float"!==l?(n[d]=p,e[d]=g,e.isDatetime=!0,void 0!==e[d+1]&&((x=g>e[d+1])!==y&&void 0!==y&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,d=e.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):e.unsorted=!0),y=x)):(e[d]=""===m?null:m,0!==d&&(e.isDatetime||e.isNumeric)&&(e.mixed=!0)));if(a&&e.mixed&&(i[t]=s[t]),a&&y&&this.options.sort){for(t=0;t0;){for((d=new I).addColumnReader(0,"x"),-1!==(m=p.indexOf(0))&&p.splice(m,1),n=0;n0&&s[0].readers.length>0&&void 0!==(c=e?.[s[0].readers[0].columnIndex??-1])&&(c.isDatetime?i="datetime":c.isNumeric||(i="category")),"category"===i)for(h=0;h{void 0===t.columnIndex&&(t.columnIndex=e.shift())}),this.readers.forEach(e=>{void 0===e.columnIndex&&(t=!1)}),t}read(e,t){let s=this.pointIsArray,i=s?[]:{};if(this.readers.forEach(r=>{let a=e[r.columnIndex][t];s?i.push(a):r.configName.indexOf(".")>0?C().prototype.setNestedProperty(i,a,r.configName):i[r.configName]=a}),void 0===this.name&&this.readers.length>=2){let t=[];this.readers.forEach(function(e){("x"===e.configName||"name"===e.configName||"y"===e.configName)&&void 0!==e.columnIndex&&t.push(e.columnIndex)}),t.length>=2&&(t.shift(),t.sort(function(e,t){return e-t})),this.name=e[E(t.shift(),0)].name}return i}addColumnReader(e,t){this.readers.push({columnIndex:e,configName:t}),"x"===t||"y"===t||void 0===t||(this.pointIsArray=!1)}getReferencedColumnIndexes(){let e,t;let s=[];for(e=0;e(()=>{"use strict";var a={532:e=>{e.exports=t},960:e=>{e.exports=s},260:e=>{e.exports=i},512:e=>{e.exports=r},944:t=>{t.exports=e}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return a[e](s,s.exports,o),s.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var l={};o.d(l,{default:()=>$});var h=o(944),u=o.n(h);let{win:d}=u(),{discardElement:p,objectEach:c}=u(),m={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},s=new XMLHttpRequest;function i(t,s){e.error&&e.error(t,s)}if(!e.url)return!1;s.open((e.type||"get").toUpperCase(),e.url,!0),e.headers&&e.headers["Content-Type"]||s.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),c(e.headers,function(e,t){s.setRequestHeader(t,e)}),e.responseType&&(s.responseType=e.responseType),s.onreadystatechange=function(){let t;if(4===s.readyState){if(200===s.status){if("blob"!==e.responseType&&(t=s.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(s,e)}return e.success&&e.success(t,s)}i(s,s.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),s.send(e.data)},getJSON:function(e,t){m.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(e,t,s){let i=new d.FormData;c(t,function(e,t){i.append(t,e)}),i.append("b64","true");let{filename:r,type:a}=t;return d.fetch(e,{method:"POST",body:i,...s}).then(e=>{e.ok&&e.text().then(e=>{let t=document.createElement("a");t.href=`data:${a};base64,${e}`,t.download=r,t.click(),p(t)})})}};var f=o(532),g=o.n(f),x=o(960),y=o.n(x),v=o(260),C=o.n(v),T=o(512),N=o.n(T);let{getOptions:R}=u(),{doc:A}=u(),{ajax:Y}=m,{seriesTypes:D}=N(),{addEvent:w,defined:U,extend:b,fireEvent:F,isNumber:O,merge:H,objectEach:S,pick:E,splat:j}=u();function L(e){return!!(e&&(e.rowsURL||e.csvURL||e.columnsURL))}class M{static data(e,t={},s){return new M(e,t,s)}static rowsToColumns(e){let t,s,i,r,a;if(e)for(t=0,a=[],s=e.length;tt.getFullYear()-2e3?s+=1900:s+=2e3,Date.UTC(s,+e[2]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,parser:function(e){return e?Date.UTC(+e[3]+2e3,+e[1]-1,+e[2]):NaN}}},this.chart=s,this.chartOptions=t,this.options=e,this.rawColumns=[],this.init(e,t,s)}init(e,t,s){let i=e.decimalPoint,r;t&&(this.chartOptions=t),s&&(this.chart=s),"."!==i&&","!==i&&(i=void 0),this.options=e,this.columns=e.columns||this.rowsToColumns(e.rows)||[],this.firstRowAsNames=E(e.firstRowAsNames,this.firstRowAsNames,!0),this.decimalRegex=i&&RegExp("^(-?[0-9]+)"+i+"([0-9]+)$"),void 0!==this.liveDataTimeout&&clearTimeout(this.liveDataTimeout),this.rawColumns=[],this.columns.length&&(this.dataFound(),r=!L(e)),r||(r=this.fetchLiveData()),r||(r=!!this.parseCSV().length),r||(r=!!this.parseTable().length),r||(r=this.parseGoogleSpreadsheet()),!r&&e.afterComplete&&e.afterComplete(this)}getColumnDistribution(){let e=this.chartOptions,t=this.options,s=[],i=function(e="line"){return(D[e].prototype.pointArrayMap||[0]).length},r=function(e="line"){return D[e].prototype.pointArrayMap},a=e?.chart?.type,n=[],o=[],l=t?.seriesMapping||e?.series?.map(function(){return{x:0}})||[],h=0;(e?.series||[]).forEach(e=>{n.push(i(e.type||a))}),l.forEach(e=>{s.push(e.x||0)}),0===s.length&&s.push(0),l.forEach(t=>{let s=new I,l=n[h]||i(a),u=(e?.series??[])[h]??{},d=r(u.type||a),p=d??["y"];(U(t.x)||u.isCartesian||!d)&&s.addColumnReader(t.x,"x"),S(t,function(e,t){"x"!==t&&s.addColumnReader(e,t)});for(let e=0;e=p.length)&&(u=p.length-1),i.itemDelimiter)d=i.itemDelimiter;else{let e,s,r;e=0,s=0,r=!1,p.some(function(t,i){let r=!1,a,n,l,h="";if(i>13)return!0;for(let i=0;io[","]?r=";":(o[","],o[";"],r=","),i.decimalPoint||(e>s?i.decimalPoint=".":i.decimalPoint=",",t.decimalRegex=RegExp("^(-?[0-9]+)"+i.decimalPoint+"([0-9]+)$")),d=r}let e=0;for(c=h;c<=u;c++)"#"===p[c][0]?e++:function(e,t,o,l){let h=0,u="",p="",c="",m="",f=0,g=0;function x(t){u=e[t],p=e[t-1],c=e[t+1]}function y(e){n.lengthf||f>a){++f,m="";return}i.columnTypes||(!isNaN(parseFloat(m))&&isFinite(m)?(m=parseFloat(m),y("number")):isNaN(Date.parse(m))?y("string"):(m=m.replace(/\//g,"-"),y("date"))),s.lengthe.length)&&(s=e.length);u31?o[p]<100?l[p]="YY":l[p]="YYYY":o[p]>12&&o[p]<=31?(l[p]="dd",d=!0):l[p].length||(l[p]="mm")));if(d){for(p=0;p12&&"YY"!==l[p]&&"YYYY"!==l[p]&&(l[p]="YY"):n[p]>12&&"mm"===l[p]&&(l[p]="dd");return(3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),h=l.join("/"),(i.dateFormats||t.dateFormats)[h])?h:(F(t,"deduceDateFailed"),r)}return r}(s[0])),this.dataFound()}return s}parseTable(){let e=this.options,t=this.columns||[],s=e.startRow||0,i=e.endRow||Number.MAX_VALUE,r=e.startColumn||0,a=e.endColumn||Number.MAX_VALUE;if(e.table){let n=e.table;"string"==typeof n&&(n=A.getElementById(n)),[].forEach.call(n.getElementsByTagName("tr"),(e,n)=>{n>=s&&n<=i&&[].forEach.call(e.children,(e,i)=>{let o=t[i-r],l=1;if(("TD"===e.tagName||"TH"===e.tagName)&&i>=r&&i<=a)for(t[i-r]||(t[i-r]=[]),t[i-r][n-s]=e.innerHTML;n-s>=l&&void 0===o[n-s-l];)o[n-s-l]=null,l++})}),this.dataFound()}return t}fetchLiveData(){let e=this,t=this.chart,s=this.options,i=s.enablePolling,r=H(s),a=0,n=1e3*(s.dataRefreshRate||2);return!!L(s)&&(n<1e3&&(n=1e3),delete s.csvURL,delete s.rowsURL,delete s.columnsURL,!function o(l){function h(r,h,u){if(!r||!/^(http|\/|\.\/|\.\.\/)/.test(r))return r&&s.error&&s.error("Invalid URL"),!1;function d(){i&&t.liveDataURL===r&&(e.liveDataTimeout=setTimeout(o,n))}return l&&(clearTimeout(e.liveDataTimeout),t.liveDataURL=r),Y({url:r,dataType:u||"json",success:function(e){t?.series&&h(e),d()},error:function(e,t){return++a<3&&d(),s.error?.(t,e)}}),!0}h(r.csvURL,function(e){t.update({data:{csv:e}})},"text")||h(r.rowsURL,function(e){t.update({data:{rows:e}})})||h(r.columnsURL,function(e){t.update({data:{columns:e}})})}(!0),L(s))}parseGoogleSpreadsheet(){let e=this,t=this.options,s=t.googleSpreadsheetKey,i=this.chart,r=Math.max(1e3*(t.dataRefreshRate||2),4e3),a=()=>{if(t.googleSpreadsheetRange)return t.googleSpreadsheetRange;let e="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=(e.charAt(t.startColumn||0)||"A")+((t.startRow||0)+1),i=e.charAt(E(t.endColumn,-1))||"ZZ";return U(t.endRow)&&(i+=t.endRow+1),`${s}:${i}`};return s&&(delete t.googleSpreadsheetKey,function i(n){Y({url:["https://sheets.googleapis.com/v4/spreadsheets",s,"values",a(),"?alt=json&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING&key="+t.googleAPIKey].join("/"),dataType:"json",success:function(s){n(s),t.enablePolling&&(e.liveDataTimeout=setTimeout(function(){i(n)},r))},error:function(e,s){return t.error?.(s,e)}})}(function(t){let s=t.values;if(!s||0===s.length)return!1;let r=s.reduce((e,t)=>Math.max(e,t.length),0);s.forEach(e=>{for(let t=0;t31536e6&&"float"!==l?e.isDatetime=!0:e.isNumeric=!0,void 0!==e[d+1]&&(y=c>e[d+1])):(m?.length&&(g=this.parseDate(p)),a&&O(g)&&"float"!==l?(n[d]=p,e[d]=g,e.isDatetime=!0,void 0!==e[d+1]&&((x=g>e[d+1])!==y&&void 0!==y&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,d=e.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):e.unsorted=!0),y=x)):(e[d]=""===m?null:m,0!==d&&(e.isDatetime||e.isNumeric)&&(e.mixed=!0)));if(a&&e.mixed&&(i[t]=s[t]),a&&y&&this.options.sort){for(t=0;t0;){for((d=new I).addColumnReader(0,"x"),-1!==(m=p.indexOf(0))&&p.splice(m,1),n=0;n0&&s[0].readers.length>0&&void 0!==(c=e?.[s[0].readers[0].columnIndex??-1])&&(c.isDatetime?i="datetime":c.isNumeric||(i="category")),"category"===i)for(h=0;h{void 0===t.columnIndex&&(t.columnIndex=e.shift())}),this.readers.forEach(e=>{void 0===e.columnIndex&&(t=!1)}),t}read(e,t){let s=this.pointIsArray,i=s?[]:{};if(this.readers.forEach(r=>{let a=e[r.columnIndex][t];s?i.push(a):r.configName.indexOf(".")>0?C().prototype.setNestedProperty(i,a,r.configName):i[r.configName]=a}),void 0===this.name&&this.readers.length>=2){let t=[];this.readers.forEach(function(e){("x"===e.configName||"name"===e.configName||"y"===e.configName)&&void 0!==e.columnIndex&&t.push(e.columnIndex)}),t.length>=2&&(t.shift(),t.sort(function(e,t){return e-t})),this.name=e[E(t.shift(),0)].name}return i}addColumnReader(e,t){this.readers.push({columnIndex:e,configName:t}),"x"===t||"y"===t||void 0===t||(this.pointIsArray=!1)}getReferencedColumnIndexes(){let e,t;let s=[];for(e=0;e(()=>{"use strict";let o;var a,n={512:t=>{t.exports=e},984:t=>{t.exports=i},944:e=>{e.exports=t}},r={};function s(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return n[t](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};s.d(l,{default:()=>tm});var u=s(944),h=/*#__PURE__*/s.n(u);let p={},{arrayMax:d,arrayMin:c,correctFloat:g,extend:m,isNumber:f}=h();function x(t){let e=t.length,i=y(t);return f(i)&&e&&(i=g(i/e)),i}function y(t){let e=t.length,i;if(!e&&t.hasNulls)i=null;else if(e)for(i=0;e--;)i+=t[e];return i}let G={average:x,averages:function(){let t=[];return[].forEach.call(arguments,function(e){t.push(x(e))}),void 0===t[0]?void 0:t},close:function(t){return t.length?t[t.length-1]:t.hasNulls?null:void 0},high:function(t){return t.length?d(t):t.hasNulls?null:void 0},hlc:function(t,e,i){if(t=p.high(t),e=p.low(e),i=p.close(i),f(t)||f(e)||f(i))return[t,e,i]},low:function(t){return t.length?c(t):t.hasNulls?null:void 0},ohlc:function(t,e,i,o){if(t=p.open(t),e=p.high(e),i=p.low(i),o=p.close(o),f(t)||f(e)||f(i)||f(o))return[t,e,i,o]},open:function(t){return t.length?t[0]:t.hasNulls?null:void 0},range:function(t,e){return(t=p.low(t),e=p.high(e),f(t)||f(e))?[t,e]:null===t&&null===e?null:void 0},sum:y};m(p,G);let M={common:{groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%[AebHMSL]","%[AebHMSL]","-%[HMSL]"],second:["%[AebHMS]","%[AebHMS]","-%[HMS]"],minute:["%[AebHM]","%[AebHM]","-%[HM]"],hour:["%[AebHM]","%[AebHM]","-%[HM]"],day:["%[AebY]","%[Aeb]","-%[AebY]"],week:["week from %[AebY]","%[Aeb]","-%[AebY]"],month:["%[BY]","%[B]","-%[BY]"],year:["%Y","%Y","-%Y"]}},seriesSpecific:{line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},candlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5},hlc:{groupPixelWidth:5},heikinashi:{groupPixelWidth:10}},units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1]],["week",[1]],["month",[1,3,6]],["year",null]]},{addEvent:v,extend:b,merge:T,pick:D}=h();function S(t){let e=this,i=e.series;i.forEach(function(t){t.groupPixelWidth=void 0}),i.forEach(function(i){i.groupPixelWidth=e.getGroupPixelWidth&&e.getGroupPixelWidth(),i.groupPixelWidth&&(i.hasProcessed=!0),i.applyGrouping(!!t.hasExtremesChanged)})}function C(){let t=this.series,e=t.length,i=0,o=!1,a,n;for(;e--;)(n=t[e].options.dataGrouping)&&(i=Math.max(i,D(n.groupPixelWidth,M.common.groupPixelWidth)),a=(t[e].dataTable.modified||t[e].dataTable).rowCount,(t[e].groupPixelWidth||a>this.chart.plotSizeX/i||a&&n.forced)&&(o=!0));return o?i:0}function w(){this.series.forEach(function(t){t.hasProcessed=!1})}function A(t,e){let i;if(e=D(e,!0),t||(t={forced:!1,units:null}),this instanceof o)for(i=this.series.length;i--;)this.series[i].update({dataGrouping:t},!1);else this.chart.options.series.forEach(function(e){e.dataGrouping="boolean"==typeof t?t:T(t,e.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),e&&this.chart.redraw()}let P={compose:function(t){o=t;let e=t.prototype;e.applyGrouping||(v(t,"afterSetScale",w),v(t,"postProcessData",S),b(e,{applyGrouping:S,getGroupPixelWidth:C,setDataGrouping:A}))}},{fireEvent:k,isArray:H,objectEach:R,uniqueKey:F}=h(),W=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||F(),this.modified=this,this.rowCount=0,this.versionTag=F();let e=0;R(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,R(this.columns,e=>{H(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,o){this.setColumns({[t]:e},i,o)}setColumns(t,e,i){let o=this.rowCount;R(t,(t,e)=>{this.columns[e]=t.slice(),o=t.length}),this.applyRowCount(o),i?.silent||(k(this,"afterSetColumns"),this.versionTag=F())}setRow(t,e=this.rowCount,i,o){let{columns:a}=this,n=i?this.rowCount+1:e+1;R(t,(t,r)=>{let s=a[r]||o?.addColumns!==!1&&Array(n);s&&(i?s.splice(e,0,t):s[e]=t,a[r]=s)}),n>this.rowCount&&this.applyRowCount(n),o?.silent||(k(this,"afterSetRows"),this.versionTag=F())}},{addEvent:O,getMagnitude:E,normalizeTickInterval:N,timeUnits:I}=h();!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if("datetime"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new o(this))}t.compose=function(t){return t.keepProps.includes("dateTime")||(t.keepProps.push("dateTime"),t.prototype.getTimeTicks=e,O(t,"afterSetType",i)),t};class o{constructor(t){this.axis=t}normalizeTimeTickInterval(t,e){let i=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],o=i[i.length-1],a=I[o[0]],n=o[1],r;for(r=0;r=e[0]){let i;p++;let o=t.groupMap[0].start,r=t.groupMap[0].length;B(o)&&B(r)&&(i=o+(r-1)),e[0]=({start:e[0],middle:e[0]+.5*a,end:e[0]+a,firstPoint:n[0],lastPoint:i&&n[i]})[l]}if(r>0&&u&&a&&e[r]>=i-a){h--;let i=t.groupMap[t.groupMap.length-1].start;e[r]=({start:e[r],middle:e[r]+.5*a,end:e[r]+a,firstPoint:i&&n[i],lastPoint:n[n.length-1]})[u]}if(s&&"start"!==s){let t=a*({middle:.5,end:1})[s];for(;h>=p;)e[h]+=t,h--}}(this,T||[],r),s&&T&&(z((e=T)[0])&&B(f.min)&&B(f.dataMin)&&e[0]f.max&&((!z(f.options.max)&&B(f.dataMax)&&f.max>=f.dataMax||f.max===f.dataMax)&&(f.max=Math.max(e[e.length-1],f.max)),f.dataMax=Math.max(e[e.length-1],f.dataMax))),n.groupAll&&(this.allGroupedTable=b,T=(b=(h=this.cropData(b,f.min||0,f.max||0)).modified).getColumn("x"),this.cropStart=h.start),this.dataTable.modified=b}else this.groupMap=void 0,this.currentDataGrouping=void 0;this.hasGroupedData=o,this.preventGraphAnimation=(l&&l.totalRange)!==(u&&u.totalRange)}function Z(){this.groupedData&&(this.groupedData.forEach(function(t,e){t&&(this.groupedData[e]=t.destroy?t.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedTable)}function $(){U.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function tt(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function te(t,e,i){let o=t.getColumn("x",!0)||[],a=t.getColumn("y",!0),n=this,r=n.data,s=n.options&&n.options.data,l=[],u=new W,h=[],d=t.rowCount,c=!!a,g=[],m=n.pointArrayMap,f=m&&m.length,x=["x"].concat(m||["y"]),y=(m||["y"]).map(()=>[]),G=this.options.dataGrouping&&this.options.dataGrouping.groupAll,M,v,b,T=0,D=0,S="function"==typeof i?i:i&&p[i]?p[i]:p[n.getDGApproximation&&n.getDGApproximation()||"average"];if(f){let t=m.length;for(;t--;)g.push([])}else g.push([]);let C=f||1;for(let t=0;t<=d;t++)if(!(o[t]=e[T+1]||t===d;){if(M=e[T],n.dataGroupInfo={start:G?D:n.cropStart+D,length:g[0].length,groupStart:M},b=S.apply(n,g),n.pointClass&&!z(n.dataGroupInfo.options)&&(n.dataGroupInfo.options=J(n.pointClass.prototype.optionsToObject.call({series:n},n.options.data[n.cropStart+D])),x.forEach(function(t){delete n.dataGroupInfo.options[t]})),void 0!==b){l.push(M);let t=Q(b);for(let e=0;e{w[t]=y[e]}),u.setColumns(w),{groupMap:h,modified:u}}function ti(t){let e=t.options,i=this.type,o=this.chart.options.plotOptions,a=this.useCommonDataGrouping&&M.common,n=M.seriesSpecific,r=h().defaultOptions.plotOptions[i].dataGrouping;if(o&&(n[i]||a)){let t=this.chart.rangeSelector;r||(r=J(M.common,n[i])),e.dataGrouping=J(a,r,o.series&&o.series.dataGrouping,o[i].dataGrouping,this.userOptions.dataGrouping,!e.isInternal&&t&&B(t.selected)&&t.buttonOptions[t.selected].dataGrouping)}}let to={compose:function(t){let e=t.prototype;e.applyGrouping||(_(t.prototype.pointClass,"update",function(){if(this.dataGroup)return X(24,!1,this.series.chart),!1}),_(t,"afterSetOptions",ti),_(t,"destroy",Z),q(e,{applyGrouping:V,destroyGroupedData:Z,generatePoints:$,getDGApproximation:tt,groupData:te}))},groupData:te};var ta=s(984);let{format:tn}=/*#__PURE__*/s.n(ta)(),{composed:tr}=h(),{addEvent:ts,extend:tl,isNumber:tu,pick:th,pushUnique:tp}=h();function td(t){let e=this.chart,i=e.time,o=t.point,a=o.series,n=a.options,r=a.tooltipOptions,s=n.dataGrouping,l=a.xAxis,u=r.xDateFormat||"",h,p,d,c,g,m=r[t.isFooter?"footerFormat":"headerFormat"];if(l&&"datetime"===l.options.type&&s&&tu(o.key)){p=a.currentDataGrouping,d=s.dateTimeLabelFormats||M.common.dateTimeLabelFormats,p?(c=d[p.unitName],1===p.count?u=c[0]:(u=c[1],h=c[2])):!u&&d&&l.dateTime&&(u=l.dateTime.getXDateFormat(o.x,r.dateTimeLabelFormats));let n=th(a.groupMap?.[o.index].groupStart,o.key),f=n+(p?.totalRange||0)-1;g=i.dateFormat(u,n),h&&(g+=i.dateFormat(h,f)),a.chart.styledMode&&(m=this.styledModeFormat(m)),t.text=tn(m,{point:tl(o,{key:g}),series:a},e),t.preventDefault()}}let tc={compose:function(t,e,i){P.compose(t),to.compose(e),i&&tp(tr,"DataGrouping")&&ts(i,"headerFormatter",td)},groupData:to.groupData},tg=h();tg.dataGrouping=tg.dataGrouping||{},tg.dataGrouping.approximationDefaults=tg.dataGrouping.approximationDefaults||G,tg.dataGrouping.approximations=tg.dataGrouping.approximations||p,tc.compose(tg.Axis,tg.Series,tg.Tooltip);let tm=h();return l.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating):"function"==typeof define&&define.amd?define("highcharts/modules/datagrouping",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Templating)}):"object"==typeof exports?exports["highcharts/modules/datagrouping"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Templating):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Templating)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";let o;var a,n={512:t=>{t.exports=e},984:t=>{t.exports=i},944:e=>{e.exports=t}},r={};function s(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return n[t](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};s.d(l,{default:()=>tm});var u=s(944),h=s.n(u);let p={},{arrayMax:d,arrayMin:c,correctFloat:g,extend:m,isNumber:f}=h();function x(t){let e=t.length,i=y(t);return f(i)&&e&&(i=g(i/e)),i}function y(t){let e=t.length,i;if(!e&&t.hasNulls)i=null;else if(e)for(i=0;e--;)i+=t[e];return i}let G={average:x,averages:function(){let t=[];return[].forEach.call(arguments,function(e){t.push(x(e))}),void 0===t[0]?void 0:t},close:function(t){return t.length?t[t.length-1]:t.hasNulls?null:void 0},high:function(t){return t.length?d(t):t.hasNulls?null:void 0},hlc:function(t,e,i){if(t=p.high(t),e=p.low(e),i=p.close(i),f(t)||f(e)||f(i))return[t,e,i]},low:function(t){return t.length?c(t):t.hasNulls?null:void 0},ohlc:function(t,e,i,o){if(t=p.open(t),e=p.high(e),i=p.low(i),o=p.close(o),f(t)||f(e)||f(i)||f(o))return[t,e,i,o]},open:function(t){return t.length?t[0]:t.hasNulls?null:void 0},range:function(t,e){return(t=p.low(t),e=p.high(e),f(t)||f(e))?[t,e]:null===t&&null===e?null:void 0},sum:y};m(p,G);let M={common:{groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%[AebHMSL]","%[AebHMSL]","-%[HMSL]"],second:["%[AebHMS]","%[AebHMS]","-%[HMS]"],minute:["%[AebHM]","%[AebHM]","-%[HM]"],hour:["%[AebHM]","%[AebHM]","-%[HM]"],day:["%[AebY]","%[Aeb]","-%[AebY]"],week:["week from %[AebY]","%[Aeb]","-%[AebY]"],month:["%[BY]","%[B]","-%[BY]"],year:["%Y","%Y","-%Y"]}},seriesSpecific:{line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},candlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5},hlc:{groupPixelWidth:5},heikinashi:{groupPixelWidth:10}},units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1]],["week",[1]],["month",[1,3,6]],["year",null]]},{addEvent:v,extend:b,merge:T,pick:D}=h();function S(t){let e=this,i=e.series;i.forEach(function(t){t.groupPixelWidth=void 0}),i.forEach(function(i){i.groupPixelWidth=e.getGroupPixelWidth&&e.getGroupPixelWidth(),i.groupPixelWidth&&(i.hasProcessed=!0),i.applyGrouping(!!t.hasExtremesChanged)})}function C(){let t=this.series,e=t.length,i=0,o=!1,a,n;for(;e--;)(n=t[e].options.dataGrouping)&&(i=Math.max(i,D(n.groupPixelWidth,M.common.groupPixelWidth)),a=(t[e].dataTable.modified||t[e].dataTable).rowCount,(t[e].groupPixelWidth||a>this.chart.plotSizeX/i||a&&n.forced)&&(o=!0));return o?i:0}function w(){this.series.forEach(function(t){t.hasProcessed=!1})}function A(t,e){let i;if(e=D(e,!0),t||(t={forced:!1,units:null}),this instanceof o)for(i=this.series.length;i--;)this.series[i].update({dataGrouping:t},!1);else this.chart.options.series.forEach(function(e){e.dataGrouping="boolean"==typeof t?t:T(t,e.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),e&&this.chart.redraw()}let P={compose:function(t){o=t;let e=t.prototype;e.applyGrouping||(v(t,"afterSetScale",w),v(t,"postProcessData",S),b(e,{applyGrouping:S,getGroupPixelWidth:C,setDataGrouping:A}))}},{fireEvent:k,isArray:H,objectEach:R,uniqueKey:F}=h(),W=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||F(),this.modified=this,this.rowCount=0,this.versionTag=F();let e=0;R(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,R(this.columns,e=>{H(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,o){this.setColumns({[t]:e},i,o)}setColumns(t,e,i){let o=this.rowCount;R(t,(t,e)=>{this.columns[e]=t.slice(),o=t.length}),this.applyRowCount(o),i?.silent||(k(this,"afterSetColumns"),this.versionTag=F())}setRow(t,e=this.rowCount,i,o){let{columns:a}=this,n=i?this.rowCount+1:e+1;R(t,(t,r)=>{let s=a[r]||o?.addColumns!==!1&&Array(n);s&&(i?s.splice(e,0,t):s[e]=t,a[r]=s)}),n>this.rowCount&&this.applyRowCount(n),o?.silent||(k(this,"afterSetRows"),this.versionTag=F())}},{addEvent:O,getMagnitude:E,normalizeTickInterval:N,timeUnits:I}=h();!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if("datetime"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new o(this))}t.compose=function(t){return t.keepProps.includes("dateTime")||(t.keepProps.push("dateTime"),t.prototype.getTimeTicks=e,O(t,"afterSetType",i)),t};class o{constructor(t){this.axis=t}normalizeTimeTickInterval(t,e){let i=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],o=i[i.length-1],a=I[o[0]],n=o[1],r;for(r=0;r=e[0]){let i;p++;let o=t.groupMap[0].start,r=t.groupMap[0].length;B(o)&&B(r)&&(i=o+(r-1)),e[0]=({start:e[0],middle:e[0]+.5*a,end:e[0]+a,firstPoint:n[0],lastPoint:i&&n[i]})[l]}if(r>0&&u&&a&&e[r]>=i-a){h--;let i=t.groupMap[t.groupMap.length-1].start;e[r]=({start:e[r],middle:e[r]+.5*a,end:e[r]+a,firstPoint:i&&n[i],lastPoint:n[n.length-1]})[u]}if(s&&"start"!==s){let t=a*({middle:.5,end:1})[s];for(;h>=p;)e[h]+=t,h--}}(this,T||[],r),s&&T&&(z((e=T)[0])&&B(f.min)&&B(f.dataMin)&&e[0]f.max&&((!z(f.options.max)&&B(f.dataMax)&&f.max>=f.dataMax||f.max===f.dataMax)&&(f.max=Math.max(e[e.length-1],f.max)),f.dataMax=Math.max(e[e.length-1],f.dataMax))),n.groupAll&&(this.allGroupedTable=b,T=(b=(h=this.cropData(b,f.min||0,f.max||0)).modified).getColumn("x"),this.cropStart=h.start),this.dataTable.modified=b}else this.groupMap=void 0,this.currentDataGrouping=void 0;this.hasGroupedData=o,this.preventGraphAnimation=(l&&l.totalRange)!==(u&&u.totalRange)}function Z(){this.groupedData&&(this.groupedData.forEach(function(t,e){t&&(this.groupedData[e]=t.destroy?t.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedTable)}function $(){U.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function tt(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function te(t,e,i){let o=t.getColumn("x",!0)||[],a=t.getColumn("y",!0),n=this,r=n.data,s=n.options&&n.options.data,l=[],u=new W,h=[],d=t.rowCount,c=!!a,g=[],m=n.pointArrayMap,f=m&&m.length,x=["x"].concat(m||["y"]),y=(m||["y"]).map(()=>[]),G=this.options.dataGrouping&&this.options.dataGrouping.groupAll,M,v,b,T=0,D=0,S="function"==typeof i?i:i&&p[i]?p[i]:p[n.getDGApproximation&&n.getDGApproximation()||"average"];if(f){let t=m.length;for(;t--;)g.push([])}else g.push([]);let C=f||1;for(let t=0;t<=d;t++)if(!(o[t]=e[T+1]||t===d;){if(M=e[T],n.dataGroupInfo={start:G?D:n.cropStart+D,length:g[0].length,groupStart:M},b=S.apply(n,g),n.pointClass&&!z(n.dataGroupInfo.options)&&(n.dataGroupInfo.options=J(n.pointClass.prototype.optionsToObject.call({series:n},n.options.data[n.cropStart+D])),x.forEach(function(t){delete n.dataGroupInfo.options[t]})),void 0!==b){l.push(M);let t=Q(b);for(let e=0;e{w[t]=y[e]}),u.setColumns(w),{groupMap:h,modified:u}}function ti(t){let e=t.options,i=this.type,o=this.chart.options.plotOptions,a=this.useCommonDataGrouping&&M.common,n=M.seriesSpecific,r=h().defaultOptions.plotOptions[i].dataGrouping;if(o&&(n[i]||a)){let t=this.chart.rangeSelector;r||(r=J(M.common,n[i])),e.dataGrouping=J(a,r,o.series&&o.series.dataGrouping,o[i].dataGrouping,this.userOptions.dataGrouping,!e.isInternal&&t&&B(t.selected)&&t.buttonOptions[t.selected].dataGrouping)}}let to={compose:function(t){let e=t.prototype;e.applyGrouping||(_(t.prototype.pointClass,"update",function(){if(this.dataGroup)return X(24,!1,this.series.chart),!1}),_(t,"afterSetOptions",ti),_(t,"destroy",Z),q(e,{applyGrouping:V,destroyGroupedData:Z,generatePoints:$,getDGApproximation:tt,groupData:te}))},groupData:te};var ta=s(984);let{format:tn}=s.n(ta)(),{composed:tr}=h(),{addEvent:ts,extend:tl,isNumber:tu,pick:th,pushUnique:tp}=h();function td(t){let e=this.chart,i=e.time,o=t.point,a=o.series,n=a.options,r=a.tooltipOptions,s=n.dataGrouping,l=a.xAxis,u=r.xDateFormat||"",h,p,d,c,g,m=r[t.isFooter?"footerFormat":"headerFormat"];if(l&&"datetime"===l.options.type&&s&&tu(o.key)){p=a.currentDataGrouping,d=s.dateTimeLabelFormats||M.common.dateTimeLabelFormats,p?(c=d[p.unitName],1===p.count?u=c[0]:(u=c[1],h=c[2])):!u&&d&&l.dateTime&&(u=l.dateTime.getXDateFormat(o.x,r.dateTimeLabelFormats));let n=th(a.groupMap?.[o.index].groupStart,o.key),f=n+(p?.totalRange||0)-1;g=i.dateFormat(u,n),h&&(g+=i.dateFormat(h,f)),a.chart.styledMode&&(m=this.styledModeFormat(m)),t.text=tn(m,{point:tl(o,{key:g}),series:a},e),t.preventDefault()}}let tc={compose:function(t,e,i){P.compose(t),to.compose(e),i&&tp(tr,"DataGrouping")&&ts(i,"headerFormatter",td)},groupData:to.groupData},tg=h();tg.dataGrouping=tg.dataGrouping||{},tg.dataGrouping.approximationDefaults=tg.dataGrouping.approximationDefaults||G,tg.dataGrouping.approximations=tg.dataGrouping.approximations||p,tc.compose(tg.Axis,tg.Series,tg.Tooltip);let tm=h();return l.default})()); \ No newline at end of file diff --git a/modules/datagrouping.src.js b/modules/datagrouping.src.js index 83b9df787b..f883139e24 100644 --- a/modules/datagrouping.src.js +++ b/modules/datagrouping.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/datagrouping * @requires highcharts * diff --git a/modules/debugger.js b/modules/debugger.js index 5bde2a8b95..c4b3ade210 100644 --- a/modules/debugger.js +++ b/modules/debugger.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/debugger * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2012-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/debugger",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/debugger"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},o={};function r(e){var i=o[e];if(void 0!==i)return i.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};r.d(i,{default:()=>x});var a=r(944),s=/*#__PURE__*/r.n(a);let n={10:{title:"Can't plot zero or subzero values on a logarithmic axis",text:'

    Can\'t plot zero or subzero values on a logarithmic axis

    This error occurs in the following situations:

    • If a zero or subzero data value is added to a logarithmic axis
    • If the minimum of a logarithmic axis is set to 0 or less
    • If the threshold is set to 0 or less

    Note: As of Highcharts 5.0.8 it\'s possible to bypass this error message by setting Axis.prototype.allowNegativeLog to true, and add custom conversion functions. View live demo. It is also possible to use a similar workaround for colorAxis. View live demo.

    ',enduser:'

    Can\'t plot zero or subzero values on a logarithmic axis

    This error occurs in the following situations:

    • If a zero or subzero data value is added to a logarithmic axis
    • If the minimum of a logarithmic axis is set to 0 or less
    • If the threshold is set to 0 or less

    As of Highcharts 5.0.8 it\'s possible to bypass this error message by setting Axis.prototype.allowNegativeLog to true and add custom conversion functions. ">View Live Demo. It is also possible to use a similar workaround for colorAxis. View live demo.

    '},11:{title:"Can't link axes of different type",text:"

    Can't link axes of different type

    This error occurs when using the linkedTo option to link two axes of different types, for example a logarithmic axis to a linear axis. Highcharts can't link these because the calculation of ticks, extremes, padding etc. is different.

    "},12:{title:"Highcharts expects point configuration to be numbers or arrays in turbo mode",text:'

    Highcharts expects point configuration to be numbers or arrays in turbo mode

    This error occurs if the series.data option contains object configurations and the number of points exceeds the turboThreshold. It can be fixed by either setting turboThreshold to a higher value, or changing the point configurations to numbers or arrays.

    In boost mode, turbo mode is always on, which means only array of numbers or two dimensional arrays are allowed.

    See plotOptions.series.turboThreshold

    '},13:{title:"Rendering div not found",text:'

    Rendering div not found

    This error occurs if the chart.renderTo option is misconfigured so that Highcharts is unable to find the HTML element to render the chart in.

    If using a DOM ID when creating the chart, make sure a node with the same ID exists somewhere in the DOM.

    '},14:{title:"String value sent to series.data, expected Number",text:"

    String value sent to series.data, expected Number

    This happens if using a string as a data point, for example in a setup like this:

    series: [{\n    data: ["3", "5", "1", "6"]\n}]

    Highcharts expects numerical data values.

    The most common reason for this error this is that data is parsed from CSV or from a XML source, and the implementer forgot to run parseFloat on the parsed value.

    Note: For performance reasons internal type casting is not performed, and only the first value is checked (since 2.3).

    "},15:{title:"Highcharts expects data to be sorted",text:"

    Highcharts expects data to be sorted

    This happens when creating a line series or a stock chart where the data is not sorted in ascending X order.

    For performance reasons, Highcharts does not sort the data, instead it requires that the implementer pre-sorts the data.

    "},16:{title:"Highcharts already defined in the page",text:"

    Highcharts already defined in the page

    This error happens if the Highcharts namespace already exists when loading Highcharts or Highstock.

    This is caused by including Highcharts or Highstock more than once.

    Keep in mind that the Highcharts.Chart constructor and all features of Highcharts are included in Highstock, so if using the Chart and StockChart constructors in combination, only the highstock.js file is required.

    "},17:{title:"The requested series type does not exist",text:"

    The requested series type does not exist

    This error happens when setting chart.type or series.type to a series type that isn't defined in Highcharts. A typical reason may be that the module or extension where the series type is defined isn't included.

    For example in order to create an arearange series, the highcharts-more.js file must be loaded.

    "},18:{title:"The requested axis does not exist",text:"

    The requested axis does not exist

    This error happens when setting a series' xAxis or yAxis property to point to an axis that does not exist.

    "},19:{title:"Too many ticks",text:"

    Too many ticks

    This error happens when applying too many ticks to an axis, specifically when adding more ticks than the axis pixel length.

    With default value this won't happen, but there are edge cases, for example when setting axis categories and xAxis.labels.step in combination with a long data range, when the axis is instructed to create a great number of ticks.

    "},20:{title:"Can't add object point configuration to a long data series",text:"

    Can't add object point configuration to a long data series

    In Highstock, when trying to add a point using the object literal configuration syntax, it will only work when the number of data points is below the series' turboThreshold. Instead of the object syntax, use the Array syntax.

    "},21:{title:"Can't find Proj4js library",text:'

    Can\'t find Proj4js library

    Using latitude/longitude functionality with pre-projected GeoJSON in Highcharts Maps requires the Proj4js library to be loaded.

    It is recommended to utilize TopoJSON for Highcharts v10 and above, as built-in projection support is included and no third-party library is required. For more information, see the Highcharts now prefers topojson maps.

    '},22:{title:"Map does not support latitude/longitude",text:'

    Map does not support latitude/longitude

    The loaded map does not support latitude/longitude functionality. This is only supported with maps from the official Highmaps map collection from version 1.1.0 onwards. If you are using a custom map, consider using the Proj4js library to convert between projections.

    '},23:{title:"Unsupported color format used for color interpolation",text:"

    Unsupported color format used for color interpolation

    Highcharts supports three color formats primarily: hex (#FFFFFF), rgb (rgba(255,255,255)) and rgba (rgba(255,255,255,1)). If any other format, like 3-digit colors (#FFF), named colors (white) or gradient structures are used in for example a heatmap, Highcharts will fail to interpolate and will instead use the end-color with no interpolation applied.

    We've chosen to preserve this limitation in order to keep the weight of the implementation at a minimum.

    "},24:{title:"Cannot run Point.update on a grouped point",text:"

    Cannot run Point.update on a grouped point

    Running Point.update in Highstock when a point is grouped by data grouping is not supported.

    This is not supported because when data grouping is enabled, there won't be any references to the raw points, which is required by the Point.update function.

    "},25:{title:"Can't find Moment.js library",text:'

    Can\'t find Moment.js library

    Using the global.timezone option requires the Moment.js library to be loaded.

    '},26:{title:"WebGL not supported, and no fallback module included",text:"

    WebGL not supported, and no fallback module included

    This happens when the browser doesn't support WebGL,and the canvas fallback module (boost-canvas.js) hasn't been included OR if the fallback module was includedafter the boost module.

    If a fallback is required, make sure to include boost-canvas.js, and that it's included before boost.js.

    Please note that the fallback module is not intended as a fully-featured one. Rather, it's a minimal implementation of the WebGL counterpart.

    "},28:{title:"Fallback to export server disabled",text:'

    Fallback to export server disabled

    This happens when the offline export module encounters a chart that it can\'t export successfully, and the fallback to the online export server is disabled. The offline exporting module will fail for certain browsers, and certain features (e.g. exporting.allowHTML ), depending on the type of image exporting to. For a compatibility overview, see Client Side Export.

    For very complex charts, it\'s possible that exporting fail in browsers that don\'t support Blob objects, due to data URL length limits. It\'s always recommended to define the exporting.error callback when disabling the fallback, so that details can be provided to the end-user if offline export isn\'t working for them.

    '},29:{title:"Browser does not support WebAudio",text:"

    Browser does not support WebAudio

    This happens when you attempt to use the sonification module on a chart in a browser or environment that does not support the WebAudio API. This API is supported on all modern browsers, including Microsoft Edge, Google Chrome and Mozilla Firefox.

    "},30:{title:"Invalid instrument",text:"

    Invalid instrument

    This happens when you try to use a sonification instrument that is not valid. If you are using a predefined instrument, make sure your spelling is correct.

    "},31:{title:"Non-unique point or node id",text:"

    Non-unique point or node id

    This error occurs when using the same id for two or more points or nodes.

    "},32:{title:"Deprecated function or property",text:'

    Deprecated function or property

    This error occurs when using a deprecated function or property. Consult the API documentation for alternatives, if no replacement is mentioned by the error itself.

    '},33:{title:"Invalid attribute or tagName",text:'

    Invalid attribute or tagName

    This error occurs if HTML in the chart configuration contains unknown tag names or attributes. Unknown tag names or attributes are those not present in the _allow lists_.

    To fix the error, consider

    • Is your tag name or attribute spelled correctly? For example, lineargradient

    would be blocked as it is a misspelling for linearGradient.

    • Is it allowed in Highcharts? For example, onclick attributes are blocked as

    they pose a real security threat.

    This error occurs because attributes and tag names are sanitized of potentially harmful content from the chart configuration before being added to the DOM. Consult the security documentation for more information.

    '},34:{title:"Unknown time zone",text:'

    Unknown time zone

    This error occurs if the browser doesn\'t recognize the timezone option. Possible workarounds are to use a time zone definition that all browsers recognize, or create your own getTimezoneOffset callback.

    '}},{setOptions:h}=s(),{composed:d}=s(),{addEvent:c,find:l,isNumber:p,pushUnique:u}=s(),g={chart:{displayErrors:!0}};function f(){let e=this.errorElements;if(e&&e.length)for(let t of e)t.destroy();delete this.errorElements}function m(e){let t,o,r;let i=e.chart||l(this.charts.slice().reverse(),e=>!!e);if(!i)return;let a=e.code,s=i.options.chart,h=i.renderer;if(i.errorElements)for(let e of i.errorElements)e&&e.destroy();s&&s.displayErrors&&h&&(i.errorElements=[],t=p(a)?"Highcharts error #"+a+": "+n[a].text:a,o=i.chartWidth,r=i.chartHeight,t=t.replace(/

    (.*)<\/h1>/g,'
    $1
    ').replace(/

    /g,"").replace(/<\/p>/g,"
    "),i.errorElements[0]=h.rect(2,2,o-4,r-4).attr({"stroke-width":4,stroke:"#ff0000",zIndex:3}).add(),i.errorElements[1]=h.label(t,0,0,"rect",void 0,void 0,void 0,void 0,"debugger").css({color:"#ffffff",fontSize:"0.8em",width:o-16+"px",padding:0}).attr({fill:"rgba(255, 0, 0, 0.9)",width:o,padding:8,zIndex:10}).add(),i.errorElements[1].attr({y:r-i.errorElements[1].getBBox().height}))}let b=s();b.errorMessages=b.errorMessages||n,({compose:function(e){u(d,"Debugger")&&(c(e,"beforeRedraw",f),c(s(),"displayError",m),h(g))}}).compose(b.Chart);let x=s();return i.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/debugger",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/debugger"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},o={};function r(e){var i=o[e];if(void 0!==i)return i.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};r.d(i,{default:()=>x});var a=r(944),s=r.n(a);let n={10:{title:"Can't plot zero or subzero values on a logarithmic axis",text:'

    Can\'t plot zero or subzero values on a logarithmic axis

    This error occurs in the following situations:

    • If a zero or subzero data value is added to a logarithmic axis
    • If the minimum of a logarithmic axis is set to 0 or less
    • If the threshold is set to 0 or less

    Note: As of Highcharts 5.0.8 it\'s possible to bypass this error message by setting Axis.prototype.allowNegativeLog to true, and add custom conversion functions. View live demo. It is also possible to use a similar workaround for colorAxis. View live demo.

    ',enduser:'

    Can\'t plot zero or subzero values on a logarithmic axis

    This error occurs in the following situations:

    • If a zero or subzero data value is added to a logarithmic axis
    • If the minimum of a logarithmic axis is set to 0 or less
    • If the threshold is set to 0 or less

    As of Highcharts 5.0.8 it\'s possible to bypass this error message by setting Axis.prototype.allowNegativeLog to true and add custom conversion functions. ">View Live Demo. It is also possible to use a similar workaround for colorAxis. View live demo.

    '},11:{title:"Can't link axes of different type",text:"

    Can't link axes of different type

    This error occurs when using the linkedTo option to link two axes of different types, for example a logarithmic axis to a linear axis. Highcharts can't link these because the calculation of ticks, extremes, padding etc. is different.

    "},12:{title:"Highcharts expects point configuration to be numbers or arrays in turbo mode",text:'

    Highcharts expects point configuration to be numbers or arrays in turbo mode

    This error occurs if the series.data option contains object configurations and the number of points exceeds the turboThreshold. It can be fixed by either setting turboThreshold to a higher value, or changing the point configurations to numbers or arrays.

    In boost mode, turbo mode is always on, which means only array of numbers or two dimensional arrays are allowed.

    See plotOptions.series.turboThreshold

    '},13:{title:"Rendering div not found",text:'

    Rendering div not found

    This error occurs if the chart.renderTo option is misconfigured so that Highcharts is unable to find the HTML element to render the chart in.

    If using a DOM ID when creating the chart, make sure a node with the same ID exists somewhere in the DOM.

    '},14:{title:"String value sent to series.data, expected Number",text:"

    String value sent to series.data, expected Number

    This happens if using a string as a data point, for example in a setup like this:

    series: [{\n    data: ["3", "5", "1", "6"]\n}]

    Highcharts expects numerical data values.

    The most common reason for this error this is that data is parsed from CSV or from a XML source, and the implementer forgot to run parseFloat on the parsed value.

    Note: For performance reasons internal type casting is not performed, and only the first value is checked (since 2.3).

    "},15:{title:"Highcharts expects data to be sorted",text:"

    Highcharts expects data to be sorted

    This happens when creating a line series or a stock chart where the data is not sorted in ascending X order.

    For performance reasons, Highcharts does not sort the data, instead it requires that the implementer pre-sorts the data.

    "},16:{title:"Highcharts already defined in the page",text:"

    Highcharts already defined in the page

    This error happens if the Highcharts namespace already exists when loading Highcharts or Highstock.

    This is caused by including Highcharts or Highstock more than once.

    Keep in mind that the Highcharts.Chart constructor and all features of Highcharts are included in Highstock, so if using the Chart and StockChart constructors in combination, only the highstock.js file is required.

    "},17:{title:"The requested series type does not exist",text:"

    The requested series type does not exist

    This error happens when setting chart.type or series.type to a series type that isn't defined in Highcharts. A typical reason may be that the module or extension where the series type is defined isn't included.

    For example in order to create an arearange series, the highcharts-more.js file must be loaded.

    "},18:{title:"The requested axis does not exist",text:"

    The requested axis does not exist

    This error happens when setting a series' xAxis or yAxis property to point to an axis that does not exist.

    "},19:{title:"Too many ticks",text:"

    Too many ticks

    This error happens when applying too many ticks to an axis, specifically when adding more ticks than the axis pixel length.

    With default value this won't happen, but there are edge cases, for example when setting axis categories and xAxis.labels.step in combination with a long data range, when the axis is instructed to create a great number of ticks.

    "},20:{title:"Can't add object point configuration to a long data series",text:"

    Can't add object point configuration to a long data series

    In Highstock, when trying to add a point using the object literal configuration syntax, it will only work when the number of data points is below the series' turboThreshold. Instead of the object syntax, use the Array syntax.

    "},21:{title:"Can't find Proj4js library",text:'

    Can\'t find Proj4js library

    Using latitude/longitude functionality with pre-projected GeoJSON in Highcharts Maps requires the Proj4js library to be loaded.

    It is recommended to utilize TopoJSON for Highcharts v10 and above, as built-in projection support is included and no third-party library is required. For more information, see the Highcharts now prefers topojson maps.

    '},22:{title:"Map does not support latitude/longitude",text:'

    Map does not support latitude/longitude

    The loaded map does not support latitude/longitude functionality. This is only supported with maps from the official Highmaps map collection from version 1.1.0 onwards. If you are using a custom map, consider using the Proj4js library to convert between projections.

    '},23:{title:"Unsupported color format used for color interpolation",text:"

    Unsupported color format used for color interpolation

    Highcharts supports three color formats primarily: hex (#FFFFFF), rgb (rgba(255,255,255)) and rgba (rgba(255,255,255,1)). If any other format, like 3-digit colors (#FFF), named colors (white) or gradient structures are used in for example a heatmap, Highcharts will fail to interpolate and will instead use the end-color with no interpolation applied.

    We've chosen to preserve this limitation in order to keep the weight of the implementation at a minimum.

    "},24:{title:"Cannot run Point.update on a grouped point",text:"

    Cannot run Point.update on a grouped point

    Running Point.update in Highstock when a point is grouped by data grouping is not supported.

    This is not supported because when data grouping is enabled, there won't be any references to the raw points, which is required by the Point.update function.

    "},25:{title:"Can't find Moment.js library",text:'

    Can\'t find Moment.js library

    Using the global.timezone option requires the Moment.js library to be loaded.

    '},26:{title:"WebGL not supported, and no fallback module included",text:"

    WebGL not supported, and no fallback module included

    This happens when the browser doesn't support WebGL,and the canvas fallback module (boost-canvas.js) hasn't been included OR if the fallback module was includedafter the boost module.

    If a fallback is required, make sure to include boost-canvas.js, and that it's included before boost.js.

    Please note that the fallback module is not intended as a fully-featured one. Rather, it's a minimal implementation of the WebGL counterpart.

    "},28:{title:"Fallback to export server disabled",text:'

    Fallback to export server disabled

    This happens when the offline export module encounters a chart that it can\'t export successfully, and the fallback to the online export server is disabled. The offline exporting module will fail for certain browsers, and certain features (e.g. exporting.allowHTML ), depending on the type of image exporting to. For a compatibility overview, see Client Side Export.

    For very complex charts, it\'s possible that exporting fail in browsers that don\'t support Blob objects, due to data URL length limits. It\'s always recommended to define the exporting.error callback when disabling the fallback, so that details can be provided to the end-user if offline export isn\'t working for them.

    '},29:{title:"Browser does not support WebAudio",text:"

    Browser does not support WebAudio

    This happens when you attempt to use the sonification module on a chart in a browser or environment that does not support the WebAudio API. This API is supported on all modern browsers, including Microsoft Edge, Google Chrome and Mozilla Firefox.

    "},30:{title:"Invalid instrument",text:"

    Invalid instrument

    This happens when you try to use a sonification instrument that is not valid. If you are using a predefined instrument, make sure your spelling is correct.

    "},31:{title:"Non-unique point or node id",text:"

    Non-unique point or node id

    This error occurs when using the same id for two or more points or nodes.

    "},32:{title:"Deprecated function or property",text:'

    Deprecated function or property

    This error occurs when using a deprecated function or property. Consult the API documentation for alternatives, if no replacement is mentioned by the error itself.

    '},33:{title:"Invalid attribute or tagName",text:'

    Invalid attribute or tagName

    This error occurs if HTML in the chart configuration contains unknown tag names or attributes. Unknown tag names or attributes are those not present in the _allow lists_.

    To fix the error, consider

    • Is your tag name or attribute spelled correctly? For example, lineargradient

    would be blocked as it is a misspelling for linearGradient.

    • Is it allowed in Highcharts? For example, onclick attributes are blocked as

    they pose a real security threat.

    This error occurs because attributes and tag names are sanitized of potentially harmful content from the chart configuration before being added to the DOM. Consult the security documentation for more information.

    '},34:{title:"Unknown time zone",text:'

    Unknown time zone

    This error occurs if the browser doesn\'t recognize the timezone option. Possible workarounds are to use a time zone definition that all browsers recognize, or create your own getTimezoneOffset callback.

    '}},{setOptions:h}=s(),{composed:d}=s(),{addEvent:c,find:l,isNumber:p,pushUnique:u}=s(),g={chart:{displayErrors:!0}};function f(){let e=this.errorElements;if(e&&e.length)for(let t of e)t.destroy();delete this.errorElements}function m(e){let t,o,r;let i=e.chart||l(this.charts.slice().reverse(),e=>!!e);if(!i)return;let a=e.code,s=i.options.chart,h=i.renderer;if(i.errorElements)for(let e of i.errorElements)e&&e.destroy();s&&s.displayErrors&&h&&(i.errorElements=[],t=p(a)?"Highcharts error #"+a+": "+n[a].text:a,o=i.chartWidth,r=i.chartHeight,t=t.replace(/

    (.*)<\/h1>/g,'
    $1
    ').replace(/

    /g,"").replace(/<\/p>/g,"
    "),i.errorElements[0]=h.rect(2,2,o-4,r-4).attr({"stroke-width":4,stroke:"#ff0000",zIndex:3}).add(),i.errorElements[1]=h.label(t,0,0,"rect",void 0,void 0,void 0,void 0,"debugger").css({color:"#ffffff",fontSize:"0.8em",width:o-16+"px",padding:0}).attr({fill:"rgba(255, 0, 0, 0.9)",width:o,padding:8,zIndex:10}).add(),i.errorElements[1].attr({y:r-i.errorElements[1].getBBox().height}))}let b=s();b.errorMessages=b.errorMessages||n,({compose:function(e){u(d,"Debugger")&&(c(e,"beforeRedraw",f),c(s(),"displayError",m),h(g))}}).compose(b.Chart);let x=s();return i.default})()); \ No newline at end of file diff --git a/modules/debugger.src.js b/modules/debugger.src.js index 5fec4df293..e3e058e39f 100644 --- a/modules/debugger.src.js +++ b/modules/debugger.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/debugger * @requires highcharts * diff --git a/modules/dependency-wheel.js b/modules/dependency-wheel.js index 67763d56bb..5740138be0 100644 --- a/modules/dependency-wheel.js +++ b/modules/dependency-wheel.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/dependency-wheel * @requires highcharts * @requires highcharts/modules/sankey @@ -9,4 +9,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/dependency-wheel",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/dependency-wheel"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,a)=>(()=>{"use strict";var r,s={28:t=>{t.exports=a},512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function n(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={exports:{}};return s[t](a,a.exports,n),a.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 a in e)n.o(e,a)&&!n.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};n.d(o,{default:()=>j});var h=n(944),l=/*#__PURE__*/n.n(h),d=n(512),c=/*#__PURE__*/n.n(d);let{sankey:{prototype:{pointClass:p}}}=c().seriesTypes,{pInt:u,wrap:g}=l(),f=class extends p{getDataLabelPath(t){let e=this,a=e.series.chart.renderer,r=e.shapeArgs,s=e.angle<0||e.angle>Math.PI,i=r.start||0,n=r.end||0;return e.dataLabelPath?(e.dataLabelPath=e.dataLabelPath.destroy(),delete e.dataLabelPath):g(t,"destroy",function(t){return e.dataLabelPath&&(e.dataLabelPath=e.dataLabelPath.destroy()),t.call(this)}),e.dataLabelPath=a.arc({open:!0,longArc:Math.abs(Math.abs(i)-Math.abs(n))(r>0&&(r+=a),r+=Math.max(s.getSum()*t,e.options.minLinkWidth||0)),0);return x(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-r)}left(t){let e=this.series,a=e.chart,r=e.options.equalNodes,s=a.inverted?a.plotHeight:a.plotWidth,i=e.nodePadding,n=this.points.reduce((a,n)=>(a>0&&(a+=i),a+=r?s/n.series.nodes.length-i:Math.max(n.getSum()*t,e.options.minLinkWidth||0)),0);return((a.plotSizeX||0)-Math.round(n))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let a=this.points,r=this.series,s=r.nodePadding,i=0,n;if(r.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let o=0;o{if(t&&n){let s=t.attr("id");s||t.attr("id",s=v());let n={x:0,y:0};T(i.dx)&&(n.dx=i.dx,delete i.dx),T(i.dy)&&(n.dy=i.dy,delete i.dy),r.attr(n),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let o=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:C(i,{"text-anchor":i.textAnchor,href:`${a}#${s}`}),children:o}}});r.textPath={path:t,undo:e}}else r.attr({dx:0,dy:0}),delete r.textPath;return this.added&&(r.textCache="",this.renderer.buildText(r)),this}function A(t){let e=t.bBox,a=this.element?.querySelector("textPath");if(a){let t=[],{b:r,h:s}=this.renderer.fontMetrics(this.element),i=s-r,n=RegExp('(|]*>|<\\/tspan>)',"g"),o=a.innerHTML.replace(n,"").split(/]*>/),h=o.length,l=(t,e)=>{let{x:s,y:n}=e,o=(a.getRotationOfChar(t)-90)*L,h=Math.cos(o),l=Math.sin(o);return[[s-i*h,n-i*l],[s+r*h,n+r*l]]};for(let e=0,r=0;r{a.graphic&&a.graphic.animate({opacity:1},{duration:t})},t*e++))}for(let t of this.points){let e=t.graphic;!t.isNode&&e&&e.attr({opacity:0}).animate({opacity:1},this.options.animation)}}}createNode(t){let e=super.createNode(t);return e.getSum=()=>e.linksFrom.concat(e.linksTo).reduce((t,e)=>t+e.weight,0),e.offset=t=>{let a=t=>t.fromNode===e?t.toNode:t.fromNode,r=0,s=e.linksFrom.concat(e.linksTo),i;s.sort((t,e)=>a(t).index-a(e).index);for(let t=0;te.index){s=s.slice(0,t).reverse().concat(s.slice(t).reverse()),i=!0;break}i||s.reverse();for(let e=0;e{let c=e*n,p=Math.cos(r+c)*(d+1),u=Math.sin(r+c)*(d+1);return s=t.curveFactor||0,(i=Math.abs(a.linkBase[3-l]*e-c))>Math.PI&&(i=2*Math.PI-i),(i*=d)(()=>{"use strict";var r,s={28:t=>{t.exports=a},512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function n(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={exports:{}};return s[t](a,a.exports,n),a.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 a in e)n.o(e,a)&&!n.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};n.d(o,{default:()=>j});var h=n(944),l=n.n(h),d=n(512),c=n.n(d);let{sankey:{prototype:{pointClass:p}}}=c().seriesTypes,{pInt:u,wrap:g}=l(),f=class extends p{getDataLabelPath(t){let e=this,a=e.series.chart.renderer,r=e.shapeArgs,s=e.angle<0||e.angle>Math.PI,i=r.start||0,n=r.end||0;return e.dataLabelPath?(e.dataLabelPath=e.dataLabelPath.destroy(),delete e.dataLabelPath):g(t,"destroy",function(t){return e.dataLabelPath&&(e.dataLabelPath=e.dataLabelPath.destroy()),t.call(this)}),e.dataLabelPath=a.arc({open:!0,longArc:Math.abs(Math.abs(i)-Math.abs(n))(r>0&&(r+=a),r+=Math.max(s.getSum()*t,e.options.minLinkWidth||0)),0);return x(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-r)}left(t){let e=this.series,a=e.chart,r=e.options.equalNodes,s=a.inverted?a.plotHeight:a.plotWidth,i=e.nodePadding,n=this.points.reduce((a,n)=>(a>0&&(a+=i),a+=r?s/n.series.nodes.length-i:Math.max(n.getSum()*t,e.options.minLinkWidth||0)),0);return((a.plotSizeX||0)-Math.round(n))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let a=this.points,r=this.series,s=r.nodePadding,i=0,n;if(r.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let o=0;o{if(t&&n){let s=t.attr("id");s||t.attr("id",s=v());let n={x:0,y:0};T(i.dx)&&(n.dx=i.dx,delete i.dx),T(i.dy)&&(n.dy=i.dy,delete i.dy),r.attr(n),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let o=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:C(i,{"text-anchor":i.textAnchor,href:`${a}#${s}`}),children:o}}});r.textPath={path:t,undo:e}}else r.attr({dx:0,dy:0}),delete r.textPath;return this.added&&(r.textCache="",this.renderer.buildText(r)),this}function A(t){let e=t.bBox,a=this.element?.querySelector("textPath");if(a){let t=[],{b:r,h:s}=this.renderer.fontMetrics(this.element),i=s-r,n=RegExp('(|]*>|<\\/tspan>)',"g"),o=a.innerHTML.replace(n,"").split(/]*>/),h=o.length,l=(t,e)=>{let{x:s,y:n}=e,o=(a.getRotationOfChar(t)-90)*L,h=Math.cos(o),l=Math.sin(o);return[[s-i*h,n-i*l],[s+r*h,n+r*l]]};for(let e=0,r=0;r{a.graphic&&a.graphic.animate({opacity:1},{duration:t})},t*e++))}for(let t of this.points){let e=t.graphic;!t.isNode&&e&&e.attr({opacity:0}).animate({opacity:1},this.options.animation)}}}createNode(t){let e=super.createNode(t);return e.getSum=()=>e.linksFrom.concat(e.linksTo).reduce((t,e)=>t+e.weight,0),e.offset=t=>{let a=t=>t.fromNode===e?t.toNode:t.fromNode,r=0,s=e.linksFrom.concat(e.linksTo),i;s.sort((t,e)=>a(t).index-a(e).index);for(let t=0;te.index){s=s.slice(0,t).reverse().concat(s.slice(t).reverse()),i=!0;break}i||s.reverse();for(let e=0;e{let c=e*n,p=Math.cos(r+c)*(d+1),u=Math.sin(r+c)*(d+1);return s=t.curveFactor||0,(i=Math.abs(a.linkBase[3-l]*e-c))>Math.PI&&(i=2*Math.PI-i),(i*=d)(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>y});var a=i(944),h=/*#__PURE__*/i.n(a),d=i(512),n=/*#__PURE__*/i.n(d);let{column:p}=n().seriesTypes,{extend:l,isNumber:c,merge:g,pick:f}=h();class u extends p{drawPoints(){let e=this.options,t=this.chart.renderer,r=e.marker,s=this.points.reduce((e,t)=>e+Math.abs(t.y||0),0),i=this.points.reduce((e,t)=>e+(t.shapeArgs?.height||0),0),o=e.itemPadding||0,a=this.points[0]?.shapeArgs?.width||0,h=e.slotsPerBar,d=a;if(!c(h))for(h=1;h=h&&(A=0,b=g,x=e.negative?x+n:x-n)}}let H=-1;for(let e of v)++H,e&&(e.isActive?e.isActive=!1:(e.destroy(),v.splice(H,1)))}}}u.defaultOptions=g(p.defaultOptions,{itemPadding:.1,marker:{symbol:"circle",states:{hover:{},select:{}}},slotsPerBar:void 0}),l(u.prototype,{markerAttribs:void 0}),n().registerSeriesType("dotplot",u);let y=h();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/dotplot",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/dotplot"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>y});var a=i(944),h=i.n(a),d=i(512),n=i.n(d);let{column:p}=n().seriesTypes,{extend:l,isNumber:c,merge:g,pick:f}=h();class u extends p{drawPoints(){let e=this.options,t=this.chart.renderer,r=e.marker,s=this.points.reduce((e,t)=>e+Math.abs(t.y||0),0),i=this.points.reduce((e,t)=>e+(t.shapeArgs?.height||0),0),o=e.itemPadding||0,a=this.points[0]?.shapeArgs?.width||0,h=e.slotsPerBar,d=a;if(!c(h))for(h=1;h=h&&(A=0,b=g,x=e.negative?x+n:x-n)}}let H=-1;for(let e of v)++H,e&&(e.isActive?e.isActive=!1:(e.destroy(),v.splice(H,1)))}}}u.defaultOptions=g(p.defaultOptions,{itemPadding:.1,marker:{symbol:"circle",states:{hover:{},select:{}}},slotsPerBar:void 0}),l(u.prototype,{markerAttribs:void 0}),n().registerSeriesType("dotplot",u);let y=h();return o.default})()); \ No newline at end of file diff --git a/modules/dotplot.src.js b/modules/dotplot.src.js index 0e8a1efada..a5e297335e 100644 --- a/modules/dotplot.src.js +++ b/modules/dotplot.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/dotplot * @requires highcharts * diff --git a/modules/drag-panes.js b/modules/drag-panes.js index 10be31ce67..6f7cad6d49 100644 --- a/modules/drag-panes.js +++ b/modules/drag-panes.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/drag-panes * @requires highcharts * @requires highcharts/modules/stock @@ -10,4 +10,4 @@ * Author: Kacper Madej * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/drag-panes",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/drag-panes"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},s={};function i(e){var o=s[e];if(void 0!==o)return o.exports;var r=s[e]={exports:{}};return t[e](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>b});var r=i(944),n=/*#__PURE__*/i.n(r);let{addEvent:h,clamp:a,isNumber:l,relativeLength:d}=n();class c{constructor(e){this.init(e)}init(e,t){this.axis=e,this.options=e.options.resize||{},this.render(),t||this.addMouseEvents()}render(){let e=this.axis,t=e.chart,s=this.options,i=s.x||0,o=s.y,r=a(e.top+e.height+o,t.plotTop,t.plotTop+t.plotHeight),n={};t.styledMode||(n={cursor:s.cursor,stroke:s.lineColor,"stroke-width":s.lineWidth,dashstyle:s.lineDashStyle}),this.lastPos=r-o,this.controlLine||(this.controlLine=t.renderer.path().addClass("highcharts-axis-resizer")),this.controlLine.add(e.axisGroup);let h=t.styledMode?this.controlLine.strokeWidth():s.lineWidth;n.d=t.renderer.crispLine([["M",e.left+i,r],["L",e.left+e.width+i,r]],h),this.controlLine.attr(n)}addMouseEvents(){let e,t,s;let i=this,o=i.controlLine.element,r=i.axis.chart.container,n=[];i.mouseMoveHandler=e=e=>i.onMouseMove(e),i.mouseUpHandler=t=e=>i.onMouseUp(e),i.mouseDownHandler=s=()=>i.onMouseDown(),n.push(h(r,"mousemove",e),h(r.ownerDocument,"mouseup",t),h(o,"mousedown",s),h(r,"touchmove",e),h(r.ownerDocument,"touchend",t),h(o,"touchstart",s)),i.eventsToUnbind=n}onMouseMove(e){if(!e.touches||0!==e.touches[0].pageX){let t=this.axis.chart.pointer;this.grabbed&&t&&(this.hasDragged=!0,this.updateAxes(t.normalize(e).chartY-(this.options.y||0)))}}onMouseUp(e){let t=this.axis.chart.pointer;this.hasDragged&&t&&this.updateAxes(t.normalize(e).chartY-(this.options.y||0)),this.grabbed=this.hasDragged=this.axis.chart.activeResizer=void 0}onMouseDown(){this.axis.chart.pointer?.reset(!1,0),this.grabbed=this.axis.chart.activeResizer=!0}updateAxes(e){let t=this.axis.chart,s=this.options.controlledAxis,i=0===s.next.length?[t.yAxis.indexOf(this.axis)+1]:s.next,o=[this.axis].concat(s.prev),r=[],n=t.plotTop,h=t.plotHeight,c=n+h,p=e=>100*e/h+"%",u=(e,t,s)=>Math.round(a(e,t,s));e=a(e,n,c);let f=!1,x=e-this.lastPos;if(x*x<1)return;let g=!0;for(let s of[o,i])for(let i of s){let s,o;let a=l(i)?t.yAxis[i]:g?i:t.get(i),y=a&&a.options,v={};if(!y||y.isInternal){g=!1;continue}o=a.top;let m=Math.round(d(y.minLength||NaN,h)),z=Math.round(d(y.maxLength||NaN,h));if(g)(s=u(e-o,m,z))===z&&(f=!0),e=o+s,r.push({axis:a,options:{height:p(s)}});else{if(x=e-this.lastPos,s=u(a.len-x,m,z),(o=a.top+x)+s>c){let t=c-s-o;e+=t,o+=t}oc&&(s=h),s===m&&(f=!0),r.push({axis:a,options:{top:p(o-n),height:p(s)}})}g=!1,v.height=s}if(!f){for(let e of r)e.axis.update(e.options,!1);t.redraw(!1)}}destroy(){let e=this.axis;for(let t of(delete e.resizer,this.eventsToUnbind&&this.eventsToUnbind.forEach(e=>e()),this.controlLine.destroy(),Object.keys(this)))this[t]=null}}c.resizerOptions={minLength:"10%",maxLength:"100%",resize:{controlledAxis:{next:[],prev:[]},enabled:!1,cursor:"ns-resize",lineColor:"#cccccc",lineDashStyle:"Solid",lineWidth:4,x:0,y:0}};let{defaultOptions:p}=n(),{addEvent:u,merge:f,wrap:x}=n();function g(){let e=this.resizer,t=this.options.resize;if(t){let s=!1!==t.enabled;e?s?e.init(this,!0):e.destroy():s&&(this.resizer=new c(this))}}function y(e){!e.keepEvents&&this.resizer&&this.resizer.destroy()}function v(e){this.chart.activeResizer||e.apply(this,[].slice.call(arguments,1))}function m(e){this.chart.activeResizer||e.apply(this,[].slice.call(arguments,1))}let z=n();z.AxisResizer=c,({compose:function(e,t){e.keepProps.includes("resizer")||(f(!0,p.yAxis,c.resizerOptions),e.keepProps.push("resizer"),u(e,"afterRender",g),u(e,"destroy",y),x(t.prototype,"runPointActions",m),x(t.prototype,"drag",v))}}).compose(z.Axis,z.Pointer);let b=n();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/drag-panes",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/drag-panes"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},s={};function i(e){var o=s[e];if(void 0!==o)return o.exports;var r=s[e]={exports:{}};return t[e](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>b});var r=i(944),n=i.n(r);let{addEvent:h,clamp:a,isNumber:l,relativeLength:d}=n();class c{constructor(e){this.init(e)}init(e,t){this.axis=e,this.options=e.options.resize||{},this.render(),t||this.addMouseEvents()}render(){let e=this.axis,t=e.chart,s=this.options,i=s.x||0,o=s.y,r=a(e.top+e.height+o,t.plotTop,t.plotTop+t.plotHeight),n={};t.styledMode||(n={cursor:s.cursor,stroke:s.lineColor,"stroke-width":s.lineWidth,dashstyle:s.lineDashStyle}),this.lastPos=r-o,this.controlLine||(this.controlLine=t.renderer.path().addClass("highcharts-axis-resizer")),this.controlLine.add(e.axisGroup);let h=t.styledMode?this.controlLine.strokeWidth():s.lineWidth;n.d=t.renderer.crispLine([["M",e.left+i,r],["L",e.left+e.width+i,r]],h),this.controlLine.attr(n)}addMouseEvents(){let e,t,s;let i=this,o=i.controlLine.element,r=i.axis.chart.container,n=[];i.mouseMoveHandler=e=e=>i.onMouseMove(e),i.mouseUpHandler=t=e=>i.onMouseUp(e),i.mouseDownHandler=s=()=>i.onMouseDown(),n.push(h(r,"mousemove",e),h(r.ownerDocument,"mouseup",t),h(o,"mousedown",s),h(r,"touchmove",e),h(r.ownerDocument,"touchend",t),h(o,"touchstart",s)),i.eventsToUnbind=n}onMouseMove(e){if(!e.touches||0!==e.touches[0].pageX){let t=this.axis.chart.pointer;this.grabbed&&t&&(this.hasDragged=!0,this.updateAxes(t.normalize(e).chartY-(this.options.y||0)))}}onMouseUp(e){let t=this.axis.chart.pointer;this.hasDragged&&t&&this.updateAxes(t.normalize(e).chartY-(this.options.y||0)),this.grabbed=this.hasDragged=this.axis.chart.activeResizer=void 0}onMouseDown(){this.axis.chart.pointer?.reset(!1,0),this.grabbed=this.axis.chart.activeResizer=!0}updateAxes(e){let t=this.axis.chart,s=this.options.controlledAxis,i=0===s.next.length?[t.yAxis.indexOf(this.axis)+1]:s.next,o=[this.axis].concat(s.prev),r=[],n=t.plotTop,h=t.plotHeight,c=n+h,p=e=>100*e/h+"%",u=(e,t,s)=>Math.round(a(e,t,s));e=a(e,n,c);let f=!1,x=e-this.lastPos;if(x*x<1)return;let g=!0;for(let s of[o,i])for(let o of s){let a,y;let v=l(o)?t.yAxis[o]:g?o:t.get(o),m=v&&v.options,z={};if(!m||m.isInternal){g=!1;continue}y=v.top;let b=Math.round(d(m.minLength||NaN,h)),M=Math.round(d(m.maxLength||NaN,h));if(g||s!==i)(a=u(e-y,b,M))===M&&(f=!0),e=y+a,r.push({axis:v,options:{height:p(a)}});else{if(x=e-this.lastPos,a=u(v.len-x,b,M),(y=v.top+x)+a>c){let t=c-a-y;e+=t,y+=t}yc&&(a=h),a===b&&(f=!0),r.push({axis:v,options:{top:p(y-n),height:p(a)}})}g=!1,z.height=a}if(!f){for(let e of r)e.axis.update(e.options,!1);t.redraw(!1)}}destroy(){let e=this.axis;for(let t of(delete e.resizer,this.eventsToUnbind&&this.eventsToUnbind.forEach(e=>e()),this.controlLine.destroy(),Object.keys(this)))this[t]=null}}c.resizerOptions={minLength:"10%",maxLength:"100%",resize:{controlledAxis:{next:[],prev:[]},enabled:!1,cursor:"ns-resize",lineColor:"#cccccc",lineDashStyle:"Solid",lineWidth:4,x:0,y:0}};let{defaultOptions:p}=n(),{addEvent:u,merge:f,wrap:x}=n();function g(){let e=this.resizer,t=this.options.resize;if(t){let s=!1!==t.enabled;e?s?e.init(this,!0):e.destroy():s&&(this.resizer=new c(this))}}function y(e){!e.keepEvents&&this.resizer&&this.resizer.destroy()}function v(e){this.chart.activeResizer||e.apply(this,[].slice.call(arguments,1))}function m(e){this.chart.activeResizer||e.apply(this,[].slice.call(arguments,1))}let z=n();z.AxisResizer=c,({compose:function(e,t){e.keepProps.includes("resizer")||(f(!0,p.yAxis,c.resizerOptions),e.keepProps.push("resizer"),u(e,"afterRender",g),u(e,"destroy",y),x(t.prototype,"runPointActions",m),x(t.prototype,"drag",v))}}).compose(z.Axis,z.Pointer);let b=n();return o.default})()); \ No newline at end of file diff --git a/modules/drag-panes.src.js b/modules/drag-panes.src.js index 0d05c75012..8b7c37aeee 100644 --- a/modules/drag-panes.src.js +++ b/modules/drag-panes.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/drag-panes * @requires highcharts * @requires highcharts/modules/stock @@ -491,7 +491,7 @@ class AxisResizer { } top = axis.top; const minLength = Math.round(relativeLength(axisOptions.minLength || NaN, plotHeight)), maxLength = Math.round(relativeLength(axisOptions.maxLength || NaN, plotHeight)); - if (!isFirst) { + if (!isFirst && axesGroup === nextAxes) { // Try to change height first. yDelta could had changed yDelta = chartY - resizer.lastPos; // Normalize height to option limits diff --git a/modules/draggable-points.js b/modules/draggable-points.js index 65f04467a6..c0e62b0099 100644 --- a/modules/draggable-points.js +++ b/modules/draggable-points.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/draggable-points * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/draggable-points",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/draggable-points"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},r={};function o(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};o.d(a,{default:()=>ed});var i=o(944),n=/*#__PURE__*/o.n(i);let{addEvent:s}=n(),d={addEvents:function(e,t,r,o){let a=t.map(t=>s(e,t,r,o));return function(){for(let e of a)e()}},countProps:function(e){return Object.keys(e).length},getFirstProp:function(e){for(let t in e)if(Object.hasOwnProperty.call(e,t))return e[t]},getNormalizedEvent:function(e,t){return(void 0===e.chartX||void 0===e.chartY)&&t.pointer?.normalize(e)||e}},l={dragSensitivity:2,dragHandle:{className:"highcharts-drag-handle",color:"#fff",lineColor:"rgba(0, 0, 0, 0.6)",lineWidth:1,zIndex:901},guideBox:{default:{className:"highcharts-drag-box-default",lineWidth:1,lineColor:"#888",color:"rgba(0, 0, 0, 0.1)",cursor:"move",zIndex:900}}},{animObject:p}=n(),{addEvents:g,countProps:h,getFirstProp:u,getNormalizedEvent:c}=d,{doc:x}=n(),{addEvent:m,isArray:f,merge:y,pick:D}=n();function v(){let e=this.dragHandles||{};if(e){for(let t of Object.keys(e))e[t].destroy&&e[t].destroy();delete this.dragHandles}}function P(e,t){let r=this.dragGuideBox,o=y(l.guideBox,t),a=y(o.default,o[e]);return r.attr({class:a.className,stroke:a.lineColor,strokeWidth:a.lineWidth,fill:a.color,cursor:a.cursor,zIndex:a.zIndex}).css({pointerEvents:"none"})}function b(e){let t=this.options.chart||{},r=t.panKey&&t.panKey+"Key";return e[this.zooming.key&&this.zooming.key+"Key"]||e[r]}function w(e){return({left:"right",right:"left",top:"bottom",bottom:"top"})[e]}function z(e,t){let r;let o=function(e){let t=e.series,r=t.options.data||[],o=t.options.dragDrop.groupBy,a=[];if(t.boosted&&f(r))for(let e=0,o=r.length;et.options[o]===e.options[o]):[e]}(t),a=t.series,i=a.chart;D(a.options.dragDrop&&a.options.dragDrop.liveRedraw,!0)||(i.dragGuideBox=r=a.getGuideBox(o),i.setGuideBoxState("default",a.options.dragDrop.guideBox).add(a.group)),i.dragDropData={origin:function(e,t,r){let o={chartX:e.chartX,chartY:e.chartY,guideBox:r&&{x:r.attr("x"),y:r.attr("y"),width:r.attr("width"),height:r.attr("height")},points:{}};for(let r of t){let t=r.series.dragDropProps||{},a={};for(let o of Object.keys(t)){let i=t[o],n=r.series[i.axis+"Axis"];a[o]=r[o],r.series.chart.mapView&&r.plotX&&r.plotY?a[o+"Offset"]="x"===o?r.plotX:r.plotY:a[o+"Offset"]=n.toPixels(r[o])-(n.horiz?e.chartX:e.chartY)}a.point=r,o.points[r.id]=a}return o}(e,o,r),point:t,groupedPoints:o,isDragging:!0}}function H(e,t){let r=t.dragDropData;if(r&&r.isDragging&&r.draggedPastSensitivity&&r.point.series){let o=r.point,a=r.newPoints,i=h(a),n=1===i?u(a):null;t.dragHandles&&t.hideDragHandles(),e.preventDefault(),t.cancelClick=!0,o.firePointEvent("drop",{origin:r.origin,chartX:e.chartX,chartY:e.chartY,newPoints:a,numNewPoints:i,newPoint:n&&n.newValues,newPointId:n&&n.point.id},function(){S(t)})}delete t.dragDropData,t.dragGuideBox&&(t.dragGuideBox.destroy(),delete t.dragGuideBox)}function A(){this.hasAddedDragDropEvents||function(e){let t=e.container;(function(e){let t=e.series?e.series.length:0;if(e.hasCartesianSeries&&!e.polar||e.mapView){for(;t--;)if(e.series[t].options.dragDrop&&function(e){let t;let r=["draggableX","draggableY"],o=e.dragDropProps||{};for(let e of Object.keys(o))(t=o[e]).optionName&&r.push(t.optionName);let a=r.length;for(;a--;)if(e.options.dragDrop[r[a]])return!0}(e.series[t]))return!0}return!1})(e)&&(g(t,["mousedown","touchstart"],t=>{(function(e,t){let r=t.hoverPoint,o=y(r&&r.series.options.dragDrop,r&&r.options.dragDrop),a=o.draggableX||!1,i=o.draggableY||!1;if(t.cancelClick=!1,!(!(a||i)||t.zoomOrPanKeyPressed(e))&&!t.hasDraggedAnnotation){if(t.dragDropData&&t.dragDropData.isDragging){H(e,t);return}r&&function(e){let t,r,o;let a=e.series,i=a.chart,n=a.options.dragDrop||{},s=e.options&&e.options.dragDrop,d=a.dragDropProps;for(let e in d)"x"===(t=d[e]).axis&&t.move?r=!0:"y"===t.axis&&t.move&&(o=!0);return(n.draggableX&&r||n.draggableY&&o)&&!(s&&!1===s.draggableX&&!1===s.draggableY)&&(!!(a.yAxis&&a.xAxis)||i.mapView)}(r)&&(t.mouseIsDown=!1,z(e,r),r.firePointEvent("dragStart",e))}})(c(t,e),e)}),g(t,["mousemove","touchmove"],t=>{(function(e,t){if(t.zoomOrPanKeyPressed(e))return;let r=t.dragDropData,o,a,i,n=0,s;r&&r.isDragging&&r.point.series&&(a=(o=r.point).series.options.dragDrop,e.preventDefault(),r.draggedPastSensitivity||(r.draggedPastSensitivity=function(e,t,r){let o=t.dragDropData.origin,a=o.chartX,i=o.chartY,n=e.chartX,s=e.chartY;return Math.sqrt((n-a)*(n-a)+(s-i)*(s-i))>r}(e,t,D(o.options.dragDrop&&o.options.dragDrop.dragSensitivity,a&&a.dragSensitivity,l.dragSensitivity))),r.draggedPastSensitivity&&(r.newPoints=function(e,t){let r=e.point,o=r.series,a=o.chart,i=y(o.options.dragDrop,r.options.dragDrop),n={},s=e.updateProp,d={},l=r.series.dragDropProps;for(let e in l){let t=l[e];(!s||s===e&&t.resize&&(!t.optionName||!1!==i[t.optionName]))&&(s||t.move&&("x"===t.axis&&i.draggableX||"y"===t.axis&&i.draggableY))&&(a.mapView?n["x"===e?"lon":"lat"]=t:n[e]=t)}for(let o of s?[r]:e.groupedPoints)d[o.id]={point:o,newValues:o.getDropValues(e.origin,t,n)};return d}(r,e),s=1===(n=h(i=r.newPoints))?u(i):null,o.firePointEvent("drag",{origin:r.origin,newPoints:r.newPoints,newPoint:s&&s.newValues,newPointId:s&&s.point.id,numNewPoints:n,chartX:e.chartX,chartY:e.chartY},function(){!function(e,t){let r=t.series,o=r.chart,a=o.dragDropData,i=y(r.options.dragDrop,t.options.dragDrop),n=i.draggableX,s=i.draggableY,d=a.origin,l=a.updateProp,p=e.chartX-d.chartX,g=e.chartY-d.chartY,h=p;o.inverted&&(p=-g,g=-h),D(i.liveRedraw,!0)?(S(o,!1),t.showDragHandles()):l?function(e,t,r){let o=e.series,a=o.chart,i=a.dragDropData,n=o.dragDropProps[i.updateProp],s=i.newPoints[e.id].newValues,d="function"==typeof n.resizeSide?n.resizeSide(s,e):n.resizeSide;n.beforeResize&&n.beforeResize(a.dragGuideBox,s,e),function(e,t,r){let o;switch(t){case"left":o={x:e.attr("x")+r.x,width:Math.max(1,e.attr("width")-r.x)};break;case"right":o={width:Math.max(1,e.attr("width")+r.x)};break;case"top":o={y:e.attr("y")+r.y,height:Math.max(1,e.attr("height")-r.y)};break;case"bottom":o={height:Math.max(1,e.attr("height")+r.y)}}e.attr(o)}(a.dragGuideBox,"x"===n.axis&&o.xAxis.reversed||"y"===n.axis&&o.yAxis.reversed?w(d):d,{x:"x"===n.axis?t-(i.origin.prevdX||0):0,y:"y"===n.axis?r-(i.origin.prevdY||0):0})}(t,p,g):o.dragGuideBox.translate(n?p:0,s?g:0),d.prevdX=p,d.prevdY=g}(e,o)})))})(c(t,e),e)},{passive:!1}),m(t,"mouseleave",t=>{H(c(t,e),e)}),e.unbindDragDropMouseUp=g(x,["mouseup","touchend"],t=>{H(c(t,e),e)},{passive:!1}),e.hasAddedDragDropEvents=!0,m(e,"destroy",()=>{e.unbindDragDropMouseUp&&e.unbindDragDropMouseUp()}))}(this)}function S(e,t){let r;let o=e.dragDropData.newPoints,a=p(t);for(let t of(e.isDragDropAnimating=!0,Object.keys(o)))(r=o[t]).point.update(r.newValues,!1);e.redraw(a),setTimeout(()=>{delete e.isDragDropAnimating,e.hoverPoint&&!e.dragHandles&&e.hoverPoint.showDragHandles()},a.duration)}let N={compose:function(e){let t=e.prototype;t.hideDragHandles||(t.hideDragHandles=v,t.setGuideBoxState=P,t.zoomOrPanKeyPressed=b,m(e,"render",A))},flipResizeSide:w,initDragDrop:z},{flipResizeSide:B}=N,{isNumber:F,merge:V,pick:M}=n(),X={x:{axis:"x",move:!0},y:{axis:"y",move:!0}},Y={x:{axis:"x",move:!0},y:{axis:"y",move:!1,resize:!0,beforeResize:(e,t,r)=>{let o,a;let i=M(r.yBottom,r.series.translatedThreshold),n=e.attr("y"),s=F(r.stackY)?r.stackY-(r.y||0):r.series.options.threshold||0,d=s+t.y;(r.series.yAxis.reversed?d=s)?(o=e.attr("height"),a=i?i-n-o:0,e.attr({height:Math.max(0,Math.round(o+a))})):e.attr({y:Math.round(n+(i?i-n:0))})},resizeSide:(e,t)=>{let r=t.series.chart.dragHandles,o=e.y>=(t.series.options.threshold||0)?"top":"bottom",a=B(o);return r&&r[a]&&(r[a].destroy(),delete r[a]),o},handlePositioner:e=>{let t=e.shapeArgs||e.graphic&&e.graphic.getBBox()||{},r=e.series.yAxis.reversed,o=e.series.options.threshold||0,a=e.y||0;return{x:t.x||0,y:!r&&a>=o||r&&a{let t=e.shapeArgs||{},r=t.r||0,o=t.width||0,a=o/2;return[["M",r,0],["L",a-5,0],["A",1,1,0,0,0,a+5,0],["A",1,1,0,0,0,a-5,0],["M",a+5,0],["L",o-r,0]]}}},O={x:Y.x,low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.lowPlot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.q1},q1:{optionName:"draggableQ1",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.q1Plot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.median&&e>=t.low},median:{axis:"y",move:!0},q3:{optionName:"draggableQ3",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.q3Plot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high&&e>=t.median},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.highPlot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e>=t.q3}},k={x:Y.x,low:{...O.low,propValidate:(e,t)=>e<=t.high},high:{...O.high,propValidate:(e,t)=>e>=t.low}},j={x:Y.x,y:Y.y,target:{optionName:"draggableTarget",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>{let t=e.targetGraphic.getBBox();return{x:e.barX,y:t.y+t.height/2}},handleFormatter:Y.y.handleFormatter}},L={x:Y.x,low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotLow}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.open&&e<=t.close},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotHigh}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e>=t.open&&e>=t.close},open:{optionName:"draggableOpen",axis:"y",move:!0,resize:!0,resizeSide:e=>e.open>=e.close?"top":"bottom",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotOpen}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high&&e>=t.low},close:{optionName:"draggableClose",axis:"y",move:!0,resize:!0,resizeSide:e=>e.open>=e.close?"bottom":"top",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotClose}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high&&e>=t.low}},C={x:Y.x,y:V(Y.y,{handleFormatter:e=>e.isSum||e.isIntermediateSum?null:Y?.y?.handleFormatter?.(e)||null})},E={x:{axis:"x",move:!0},low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>{let t=e.shapeArgs||e.graphic.getBBox();return{x:t.x||0,y:(t.y||0)+(t.height||0)}},handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>{let t=e.shapeArgs||e.graphic.getBBox();return{x:t.x||0,y:t.y||0}},handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e>=t.low}},G={x:E.x,low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>{let t=e.graphics&&e.graphics[0]&&e.graphics[0].getBBox();return t?{x:t.x+t.width/2,y:t.y+t.height/2}:{x:-999,y:-999}},handleFormatter:T,propValidate:E.low.propValidate},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>{let t=e.graphics&&e.graphics[1]&&e.graphics[1].getBBox();return t?{x:t.x+t.width/2,y:t.y+t.height/2}:{x:-999,y:-999}},handleFormatter:T,propValidate:E.high.propValidate}},I={y:{axis:"y",move:!0},x:{optionName:"draggableX1",axis:"x",move:!0,resize:!0,resizeSide:"left",handlePositioner:e=>q(e,"x"),handleFormatter:K,propValidate:(e,t)=>e<=t.x2},x2:{optionName:"draggableX2",axis:"x",move:!0,resize:!0,resizeSide:"right",handlePositioner:e=>q(e,"x2"),handleFormatter:K,propValidate:(e,t)=>e>=t.x}};function T(e){let t=e.graphic?e.graphic.getBBox().width/2+1:4;return[["M",0-t,0],["a",t,t,0,1,0,2*t,0],["a",t,t,0,1,0,-2*t,0]]}function K(e){let t=e.shapeArgs||e.graphic.getBBox(),r=t.r||0,o=t.height-r,a=t.height/2;return[["M",0,r],["L",0,a-5],["A",1,1,0,0,0,0,a+5],["A",1,1,0,0,0,0,a-5],["M",0,a+5],["L",0,o]]}function q(e,t){let r=e.series,o=r.xAxis,a=r.yAxis,i=r.chart.inverted,n=r.columnMetrics?r.columnMetrics.offset:-e.shapeArgs.height/2,s=o.toPixels(e[t],!0),d=a.toPixels(e.y,!0);return i&&(s=o.len-s,d=a.len-d),{x:Math.round(s),y:Math.round(d+=n)}}let $={arearange:G,boxplot:O,bullet:j,column:Y,columnrange:E,errorbar:k,flags:X,gantt:{y:I.y,start:V(I.x,{optionName:"draggableStart",validateIndividualDrag:e=>!e.milestone}),end:V(I.x2,{optionName:"draggableEnd",validateIndividualDrag:e=>!e.milestone})},line:X,ohlc:L,waterfall:C,xrange:I},{addEvents:R,getNormalizedEvent:U}=d,{initDragDrop:W}=N,{addEvent:_,clamp:Q,isNumber:J,merge:Z}=n();function ee(e){let t=e.series&&e.series.chart,r=t&&t.dragDropData;t&&t.dragHandles&&!(r&&(r.isDragging&&r.draggedPastSensitivity||r.isHoveringHandle===e.id))&&t.hideDragHandles()}function et(){let e=this;setTimeout(()=>{e.series&&ee(e)},10)}function er(){let e=this;setTimeout(()=>(function(e){let t=e.series,r=t&&t.chart,o=r&&r.dragDropData,a=r&&r.is3d&&r.is3d();!r||o&&o.isDragging&&o.draggedPastSensitivity||r.isDragDropAnimating||!t.options.dragDrop||a||(r.dragHandles&&r.hideDragHandles(),e.showDragHandles())})(e),12)}function eo(){let e=this.series.chart,t=e.dragHandles;t&&t.point===this.id&&e.hideDragHandles()}function ea(e,t,r){let o=this.series,a=o.chart,i=a.mapView,n=Z(o.options.dragDrop,this.options.dragDrop),s={},d=e.points[this.id],l=1===Object.keys(r).length,p=(e,t)=>{let r=t.toUpperCase(),a=o.chart.time,i=o[`${t}Axis`].categories?1:0,s=n[`dragPrecision${r}`]??i,d=a.parse(n[`dragMin${r}`])??-1/0,l=a.parse(n[`dragMax${r}`])??1/0,p=e;return s&&(p=Math.round(p/s)*s),Q(p,d,l)},g=(e,t,r)=>{if(i){let o=t.toUpperCase(),s=n[`dragPrecision${o}`]??0,d=i.pixelsToLonLat({x:0,y:0}),l=i.pixelsToLonLat({x:a.plotBox.width,y:a.plotBox.height}),p=n[`dragMin${o}`]??d?.[r]??-1/0,g=n[`dragMax${o}`]??l?.[r]??1/0,h=e[r];if("Orthographic"===i.projection.options.name)return h;if("lat"===r){(isNaN(p)||p>i.projection.maxLatitude)&&(p=i.projection.maxLatitude),(isNaN(g)||g<-1*i.projection.maxLatitude)&&(g=-1*i.projection.maxLatitude);let e=g;g=p,p=e}if(!i.projection.hasCoordinates){let t=i.pixelsToLonLat({x:e.chartX-a.plotLeft,y:a.plotHeight-e.chartY+a.plotTop});t&&(h=t[r])}return s&&(h=Math.round(h/s)*s),Q(h,p,g)}};for(let e of Object.keys(r)){let a=r[e],n=d.point[e],h=o[a.axis+"Axis"],u=i?g(t,a.axis,e):p(h.toValue((h.horiz?t.chartX:t.chartY)+d[e+"Offset"]),a.axis);J(u)&&!(l&&a.propValidate&&!a.propValidate(u,this))&&void 0!==n&&(s[e]=u)}return s}function ei(){let e=this,t=e.series,r=t.chart,{inverted:o,renderer:a}=r,i=Z(t.options.dragDrop,e.options.dragDrop),n=t.dragDropProps||{},s=r.dragHandles;for(let d of Object.keys(n)){let p,g,h;let u=n[d],c=Z(l.dragHandle,u.handleOptions,i.dragHandle),x={class:c.className,"stroke-width":c.lineWidth,fill:c.color,stroke:c.lineColor},m=c.pathFormatter||u.handleFormatter,f=u.handlePositioner,y=!u.validateIndividualDrag||u.validateIndividualDrag(e);if(u.resize&&y&&u.resizeSide&&m&&(i["draggable"+u.axis.toUpperCase()]||i[u.optionName])&&!1!==i[u.optionName]){s?s.point=e.id:s=r.dragHandles={group:a.g("drag-drop-handles").add(t.markerGroup||t.group),point:e.id},p=f(e),x.d=h=m(e);let i=e.series.xAxis.categories?-.5:0;if(!h||p.x{!function(e,t,r){let o=t.series.chart;o.zoomOrPanKeyPressed(e)||(o.mouseIsDown=!1,W(e,t),o.dragDropData.updateProp=e.updateProp=r,t.firePointEvent("dragStart",e),e.stopPropagation(),e.preventDefault())}(U(t,r),e,d)},{passive:!1}),_(s.group.element,"mouseover",()=>{r.dragDropData=r.dragDropData||{},r.dragDropData.isHoveringHandle=e.id}),R(s.group.element,["touchend","mouseout"],()=>{!function(e){let t=e.series.chart;t.dragDropData&&e.id===t.dragDropData.isHoveringHandle&&delete t.dragDropData.isHoveringHandle,t.hoverPoint||ee(e)}(e)})}}}function en(e){let t=this.chart,r=1/0,o=-1/0,a=1/0,i=-1/0,n;for(let t of e){let e=t.graphic&&t.graphic.getBBox()||t.shapeArgs;if(e){let s;let d=t.x2;J(d)&&(s=t.series.xAxis.translate(d,!1,!1,!1,!0));let l=!(e.width||e.height||e.x||e.y);n=!0,r=Math.min(t.plotX||0,s||0,l?1/0:e.x||0,r),o=Math.max(t.plotX||0,s||0,(e.x||0)+(e.width||0),o),a=Math.min(t.plotY||0,l?1/0:e.y||0,a),i=Math.max((e.y||0)+(e.height||0),i)}}return n?t.renderer.rect(r,a,o-r,i-a):t.renderer.g()}let es=n();({compose:function(e,t){N.compose(e);let r=t.prototype;if(!r.dragDropProps){let e=t.prototype.pointClass,o=t.types,a=e.prototype;for(let t of(a.getDropValues=ea,a.showDragHandles=ei,_(e,"mouseOut",et),_(e,"mouseOver",er),_(e,"remove",eo),r.dragDropProps=$.line,r.getGuideBox=en,["arearange","boxplot","bullet","column","columnrange","errorbar","flags","gantt","ohlc","waterfall","xrange"]))o[t]&&(o[t].prototype.dragDropProps=$[t]);for(let e of["bellcurve","gauge","histogram","map","mapline","pareto","pie","sankey","sma","sunburst","treemap","vector","windbarb","wordcloud"])o[e]&&(o[e].prototype.dragDropProps=null)}}}).compose(es.Chart,es.Series);let ed=n();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/draggable-points",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/draggable-points"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t={944:t=>{t.exports=e}},r={};function o(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};o.d(a,{default:()=>ed});var i=o(944),n=o.n(i);let{addEvent:s}=n(),d={addEvents:function(e,t,r,o){let a=t.map(t=>s(e,t,r,o));return function(){for(let e of a)e()}},countProps:function(e){return Object.keys(e).length},getFirstProp:function(e){for(let t in e)if(Object.hasOwnProperty.call(e,t))return e[t]},getNormalizedEvent:function(e,t){return(void 0===e.chartX||void 0===e.chartY)&&t.pointer?.normalize(e)||e}},l={dragSensitivity:2,dragHandle:{className:"highcharts-drag-handle",color:"#fff",lineColor:"rgba(0, 0, 0, 0.6)",lineWidth:1,zIndex:901},guideBox:{default:{className:"highcharts-drag-box-default",lineWidth:1,lineColor:"#888",color:"rgba(0, 0, 0, 0.1)",cursor:"move",zIndex:900}}},{animObject:p}=n(),{addEvents:g,countProps:h,getFirstProp:u,getNormalizedEvent:c}=d,{doc:x}=n(),{addEvent:m,isArray:f,merge:y,pick:D}=n();function v(){let e=this.dragHandles||{};if(e){for(let t of Object.keys(e))e[t].destroy&&e[t].destroy();delete this.dragHandles}}function P(e,t){let r=this.dragGuideBox,o=y(l.guideBox,t),a=y(o.default,o[e]);return r.attr({class:a.className,stroke:a.lineColor,strokeWidth:a.lineWidth,fill:a.color,cursor:a.cursor,zIndex:a.zIndex}).css({pointerEvents:"none"})}function b(e){let t=this.options.chart||{},r=t.panKey&&t.panKey+"Key";return e[this.zooming.key&&this.zooming.key+"Key"]||e[r]}function w(e){return({left:"right",right:"left",top:"bottom",bottom:"top"})[e]}function z(e,t){let r;let o=function(e){let t=e.series,r=t.options.data||[],o=t.options.dragDrop.groupBy,a=[];if(t.boosted&&f(r))for(let e=0,o=r.length;et.options[o]===e.options[o]):[e]}(t),a=t.series,i=a.chart;D(a.options.dragDrop&&a.options.dragDrop.liveRedraw,!0)||(i.dragGuideBox=r=a.getGuideBox(o),i.setGuideBoxState("default",a.options.dragDrop.guideBox).add(a.group)),i.dragDropData={origin:function(e,t,r){let o={chartX:e.chartX,chartY:e.chartY,guideBox:r&&{x:r.attr("x"),y:r.attr("y"),width:r.attr("width"),height:r.attr("height")},points:{}};for(let r of t){let t=r.series.dragDropProps||{},a={};for(let o of Object.keys(t)){let i=t[o],n=r.series[i.axis+"Axis"];a[o]=r[o],r.series.chart.mapView&&r.plotX&&r.plotY?a[o+"Offset"]="x"===o?r.plotX:r.plotY:a[o+"Offset"]=n.toPixels(r[o])-(n.horiz?e.chartX:e.chartY)}a.point=r,o.points[r.id]=a}return o}(e,o,r),point:t,groupedPoints:o,isDragging:!0}}function H(e,t){let r=t.dragDropData;if(r&&r.isDragging&&r.draggedPastSensitivity&&r.point.series){let o=r.point,a=r.newPoints,i=h(a),n=1===i?u(a):null;t.dragHandles&&t.hideDragHandles(),e.preventDefault(),t.cancelClick=!0,o.firePointEvent("drop",{origin:r.origin,chartX:e.chartX,chartY:e.chartY,newPoints:a,numNewPoints:i,newPoint:n&&n.newValues,newPointId:n&&n.point.id},function(){S(t)})}delete t.dragDropData,t.dragGuideBox&&(t.dragGuideBox.destroy(),delete t.dragGuideBox)}function A(){this.hasAddedDragDropEvents||function(e){let t=e.container;(function(e){let t=e.series?e.series.length:0;if(e.hasCartesianSeries&&!e.polar||e.mapView){for(;t--;)if(e.series[t].options.dragDrop&&function(e){let t;let r=["draggableX","draggableY"],o=e.dragDropProps||{};for(let e of Object.keys(o))(t=o[e]).optionName&&r.push(t.optionName);let a=r.length;for(;a--;)if(e.options.dragDrop[r[a]])return!0}(e.series[t]))return!0}return!1})(e)&&(g(t,["mousedown","touchstart"],t=>{(function(e,t){let r=t.hoverPoint,o=y(r&&r.series.options.dragDrop,r&&r.options.dragDrop),a=o.draggableX||!1,i=o.draggableY||!1;if(t.cancelClick=!1,!(!(a||i)||t.zoomOrPanKeyPressed(e))&&!t.hasDraggedAnnotation){if(t.dragDropData&&t.dragDropData.isDragging){H(e,t);return}r&&function(e){let t,r,o;let a=e.series,i=a.chart,n=a.options.dragDrop||{},s=e.options&&e.options.dragDrop,d=a.dragDropProps;for(let e in d)"x"===(t=d[e]).axis&&t.move?r=!0:"y"===t.axis&&t.move&&(o=!0);return(n.draggableX&&r||n.draggableY&&o)&&!(s&&!1===s.draggableX&&!1===s.draggableY)&&(!!(a.yAxis&&a.xAxis)||i.mapView)}(r)&&(t.mouseIsDown=!1,z(e,r),r.firePointEvent("dragStart",e))}})(c(t,e),e)}),g(t,["mousemove","touchmove"],t=>{(function(e,t){if(t.zoomOrPanKeyPressed(e))return;let r=t.dragDropData,o,a,i,n=0,s;r&&r.isDragging&&r.point.series&&(a=(o=r.point).series.options.dragDrop,e.preventDefault(),r.draggedPastSensitivity||(r.draggedPastSensitivity=function(e,t,r){let o=t.dragDropData.origin,a=o.chartX,i=o.chartY,n=e.chartX,s=e.chartY;return Math.sqrt((n-a)*(n-a)+(s-i)*(s-i))>r}(e,t,D(o.options.dragDrop&&o.options.dragDrop.dragSensitivity,a&&a.dragSensitivity,l.dragSensitivity))),r.draggedPastSensitivity&&(r.newPoints=function(e,t){let r=e.point,o=r.series,a=o.chart,i=y(o.options.dragDrop,r.options.dragDrop),n={},s=e.updateProp,d={},l=r.series.dragDropProps;for(let e in l){let t=l[e];(!s||s===e&&t.resize&&(!t.optionName||!1!==i[t.optionName]))&&(s||t.move&&("x"===t.axis&&i.draggableX||"y"===t.axis&&i.draggableY))&&(a.mapView?n["x"===e?"lon":"lat"]=t:n[e]=t)}for(let o of s?[r]:e.groupedPoints)d[o.id]={point:o,newValues:o.getDropValues(e.origin,t,n)};return d}(r,e),s=1===(n=h(i=r.newPoints))?u(i):null,o.firePointEvent("drag",{origin:r.origin,newPoints:r.newPoints,newPoint:s&&s.newValues,newPointId:s&&s.point.id,numNewPoints:n,chartX:e.chartX,chartY:e.chartY},function(){!function(e,t){let r=t.series,o=r.chart,a=o.dragDropData,i=y(r.options.dragDrop,t.options.dragDrop),n=i.draggableX,s=i.draggableY,d=a.origin,l=a.updateProp,p=e.chartX-d.chartX,g=e.chartY-d.chartY,h=p;o.inverted&&(p=-g,g=-h),D(i.liveRedraw,!0)?(S(o,!1),t.showDragHandles()):l?function(e,t,r){let o=e.series,a=o.chart,i=a.dragDropData,n=o.dragDropProps[i.updateProp],s=i.newPoints[e.id].newValues,d="function"==typeof n.resizeSide?n.resizeSide(s,e):n.resizeSide;n.beforeResize&&n.beforeResize(a.dragGuideBox,s,e),function(e,t,r){let o;switch(t){case"left":o={x:e.attr("x")+r.x,width:Math.max(1,e.attr("width")-r.x)};break;case"right":o={width:Math.max(1,e.attr("width")+r.x)};break;case"top":o={y:e.attr("y")+r.y,height:Math.max(1,e.attr("height")-r.y)};break;case"bottom":o={height:Math.max(1,e.attr("height")+r.y)}}e.attr(o)}(a.dragGuideBox,"x"===n.axis&&o.xAxis.reversed||"y"===n.axis&&o.yAxis.reversed?w(d):d,{x:"x"===n.axis?t-(i.origin.prevdX||0):0,y:"y"===n.axis?r-(i.origin.prevdY||0):0})}(t,p,g):o.dragGuideBox.translate(n?p:0,s?g:0),d.prevdX=p,d.prevdY=g}(e,o)})))})(c(t,e),e)},{passive:!1}),m(t,"mouseleave",t=>{H(c(t,e),e)}),e.unbindDragDropMouseUp=g(x,["mouseup","touchend"],t=>{H(c(t,e),e)},{passive:!1}),e.hasAddedDragDropEvents=!0,m(e,"destroy",()=>{e.unbindDragDropMouseUp&&e.unbindDragDropMouseUp()}))}(this)}function S(e,t){let r;let o=e.dragDropData.newPoints,a=p(t);for(let t of(e.isDragDropAnimating=!0,Object.keys(o)))(r=o[t]).point.update(r.newValues,!1);e.redraw(a),setTimeout(()=>{delete e.isDragDropAnimating,e.hoverPoint&&!e.dragHandles&&e.hoverPoint.showDragHandles()},a.duration)}let N={compose:function(e){let t=e.prototype;t.hideDragHandles||(t.hideDragHandles=v,t.setGuideBoxState=P,t.zoomOrPanKeyPressed=b,m(e,"render",A))},flipResizeSide:w,initDragDrop:z},{flipResizeSide:B}=N,{isNumber:F,merge:V,pick:M}=n(),X={x:{axis:"x",move:!0},y:{axis:"y",move:!0}},Y={x:{axis:"x",move:!0},y:{axis:"y",move:!1,resize:!0,beforeResize:(e,t,r)=>{let o,a;let i=M(r.yBottom,r.series.translatedThreshold),n=e.attr("y"),s=F(r.stackY)?r.stackY-(r.y||0):r.series.options.threshold||0,d=s+t.y;(r.series.yAxis.reversed?d=s)?(o=e.attr("height"),a=i?i-n-o:0,e.attr({height:Math.max(0,Math.round(o+a))})):e.attr({y:Math.round(n+(i?i-n:0))})},resizeSide:(e,t)=>{let r=t.series.chart.dragHandles,o=e.y>=(t.series.options.threshold||0)?"top":"bottom",a=B(o);return r&&r[a]&&(r[a].destroy(),delete r[a]),o},handlePositioner:e=>{let t=e.shapeArgs||e.graphic&&e.graphic.getBBox()||{},r=e.series.yAxis.reversed,o=e.series.options.threshold||0,a=e.y||0;return{x:t.x||0,y:!r&&a>=o||r&&a{let t=e.shapeArgs||{},r=t.r||0,o=t.width||0,a=o/2;return[["M",r,0],["L",a-5,0],["A",1,1,0,0,0,a+5,0],["A",1,1,0,0,0,a-5,0],["M",a+5,0],["L",o-r,0]]}}},O={x:Y.x,low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.lowPlot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.q1},q1:{optionName:"draggableQ1",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.q1Plot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.median&&e>=t.low},median:{axis:"y",move:!0},q3:{optionName:"draggableQ3",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.q3Plot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high&&e>=t.median},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>({x:e.shapeArgs.x||0,y:e.highPlot}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e>=t.q3}},k={x:Y.x,low:{...O.low,propValidate:(e,t)=>e<=t.high},high:{...O.high,propValidate:(e,t)=>e>=t.low}},j={x:Y.x,y:Y.y,target:{optionName:"draggableTarget",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>{let t=e.targetGraphic.getBBox();return{x:e.barX,y:t.y+t.height/2}},handleFormatter:Y.y.handleFormatter}},L={x:Y.x,low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotLow}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.open&&e<=t.close},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotHigh}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e>=t.open&&e>=t.close},open:{optionName:"draggableOpen",axis:"y",move:!0,resize:!0,resizeSide:e=>e.open>=e.close?"top":"bottom",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotOpen}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high&&e>=t.low},close:{optionName:"draggableClose",axis:"y",move:!0,resize:!0,resizeSide:e=>e.open>=e.close?"bottom":"top",handlePositioner:e=>({x:e.shapeArgs.x,y:e.plotClose}),handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high&&e>=t.low}},C={x:Y.x,y:V(Y.y,{handleFormatter:e=>e.isSum||e.isIntermediateSum?null:Y?.y?.handleFormatter?.(e)||null})},E={x:{axis:"x",move:!0},low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>{let t=e.shapeArgs||e.graphic.getBBox();return{x:t.x||0,y:(t.y||0)+(t.height||0)}},handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e<=t.high},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>{let t=e.shapeArgs||e.graphic.getBBox();return{x:t.x||0,y:t.y||0}},handleFormatter:Y.y.handleFormatter,propValidate:(e,t)=>e>=t.low}},G={x:E.x,low:{optionName:"draggableLow",axis:"y",move:!0,resize:!0,resizeSide:"bottom",handlePositioner:e=>{let t=e.graphics&&e.graphics[0]&&e.graphics[0].getBBox();return t?{x:t.x+t.width/2,y:t.y+t.height/2}:{x:-999,y:-999}},handleFormatter:T,propValidate:E.low.propValidate},high:{optionName:"draggableHigh",axis:"y",move:!0,resize:!0,resizeSide:"top",handlePositioner:e=>{let t=e.graphics&&e.graphics[1]&&e.graphics[1].getBBox();return t?{x:t.x+t.width/2,y:t.y+t.height/2}:{x:-999,y:-999}},handleFormatter:T,propValidate:E.high.propValidate}},I={y:{axis:"y",move:!0},x:{optionName:"draggableX1",axis:"x",move:!0,resize:!0,resizeSide:"left",handlePositioner:e=>q(e,"x"),handleFormatter:K,propValidate:(e,t)=>e<=t.x2},x2:{optionName:"draggableX2",axis:"x",move:!0,resize:!0,resizeSide:"right",handlePositioner:e=>q(e,"x2"),handleFormatter:K,propValidate:(e,t)=>e>=t.x}};function T(e){let t=e.graphic?e.graphic.getBBox().width/2+1:4;return[["M",0-t,0],["a",t,t,0,1,0,2*t,0],["a",t,t,0,1,0,-2*t,0]]}function K(e){let t=e.shapeArgs||e.graphic.getBBox(),r=t.r||0,o=t.height-r,a=t.height/2;return[["M",0,r],["L",0,a-5],["A",1,1,0,0,0,0,a+5],["A",1,1,0,0,0,0,a-5],["M",0,a+5],["L",0,o]]}function q(e,t){let r=e.series,o=r.xAxis,a=r.yAxis,i=r.chart.inverted,n=r.columnMetrics?r.columnMetrics.offset:-e.shapeArgs.height/2,s=o.toPixels(e[t],!0),d=a.toPixels(e.y,!0);return i&&(s=o.len-s,d=a.len-d),{x:Math.round(s),y:Math.round(d+=n)}}let $={arearange:G,boxplot:O,bullet:j,column:Y,columnrange:E,errorbar:k,flags:X,gantt:{y:I.y,start:V(I.x,{optionName:"draggableStart",validateIndividualDrag:e=>!e.milestone}),end:V(I.x2,{optionName:"draggableEnd",validateIndividualDrag:e=>!e.milestone})},line:X,ohlc:L,waterfall:C,xrange:I},{addEvents:R,getNormalizedEvent:U}=d,{initDragDrop:W}=N,{addEvent:_,clamp:Q,isNumber:J,merge:Z}=n();function ee(e){let t=e.series&&e.series.chart,r=t&&t.dragDropData;t&&t.dragHandles&&!(r&&(r.isDragging&&r.draggedPastSensitivity||r.isHoveringHandle===e.id))&&t.hideDragHandles()}function et(){let e=this;setTimeout(()=>{e.series&&ee(e)},10)}function er(){let e=this;setTimeout(()=>(function(e){let t=e.series,r=t&&t.chart,o=r&&r.dragDropData,a=r&&r.is3d&&r.is3d();!r||o&&o.isDragging&&o.draggedPastSensitivity||r.isDragDropAnimating||!t.options.dragDrop||a||(r.dragHandles&&r.hideDragHandles(),e.showDragHandles())})(e),12)}function eo(){let e=this.series.chart,t=e.dragHandles;t&&t.point===this.id&&e.hideDragHandles()}function ea(e,t,r){let o=this.series,a=o.chart,i=a.mapView,n=Z(o.options.dragDrop,this.options.dragDrop),s={},d=e.points[this.id],l=1===Object.keys(r).length,p=(e,t)=>{let r=t.toUpperCase(),a=o.chart.time,i=o[`${t}Axis`].categories?1:0,s=n[`dragPrecision${r}`]??i,d=a.parse(n[`dragMin${r}`])??-1/0,l=a.parse(n[`dragMax${r}`])??1/0,p=e;return s&&(p=Math.round(p/s)*s),Q(p,d,l)},g=(e,t,r)=>{if(i){let o=t.toUpperCase(),s=n[`dragPrecision${o}`]??0,d=i.pixelsToLonLat({x:0,y:0}),l=i.pixelsToLonLat({x:a.plotBox.width,y:a.plotBox.height}),p=n[`dragMin${o}`]??d?.[r]??-1/0,g=n[`dragMax${o}`]??l?.[r]??1/0,h=e[r];if("Orthographic"===i.projection.options.name)return h;if("lat"===r){(isNaN(p)||p>i.projection.maxLatitude)&&(p=i.projection.maxLatitude),(isNaN(g)||g<-1*i.projection.maxLatitude)&&(g=-1*i.projection.maxLatitude);let e=g;g=p,p=e}if(!i.projection.hasCoordinates){let t=i.pixelsToLonLat({x:e.chartX-a.plotLeft,y:a.plotHeight-e.chartY+a.plotTop});t&&(h=t[r])}return s&&(h=Math.round(h/s)*s),Q(h,p,g)}};for(let e of Object.keys(r)){let a=r[e],n=d.point[e],h=o[a.axis+"Axis"],u=i?g(t,a.axis,e):p(h.toValue((h.horiz?t.chartX:t.chartY)+d[e+"Offset"]),a.axis);J(u)&&!(l&&a.propValidate&&!a.propValidate(u,this))&&void 0!==n&&(s[e]=u)}return s}function ei(){let e=this,t=e.series,r=t.chart,{inverted:o,renderer:a}=r,i=Z(t.options.dragDrop,e.options.dragDrop),n=t.dragDropProps||{},s=r.dragHandles;for(let d of Object.keys(n)){let p,g,h;let u=n[d],c=Z(l.dragHandle,u.handleOptions,i.dragHandle),x={class:c.className,"stroke-width":c.lineWidth,fill:c.color,stroke:c.lineColor},m=c.pathFormatter||u.handleFormatter,f=u.handlePositioner,y=!u.validateIndividualDrag||u.validateIndividualDrag(e);if(u.resize&&y&&u.resizeSide&&m&&(i["draggable"+u.axis.toUpperCase()]||i[u.optionName])&&!1!==i[u.optionName]){s?s.point=e.id:s=r.dragHandles={group:a.g("drag-drop-handles").add(t.markerGroup||t.group),point:e.id},p=f(e),x.d=h=m(e);let i=e.series.xAxis.categories?-.5:0;if(!h||p.x{!function(e,t,r){let o=t.series.chart;o.zoomOrPanKeyPressed(e)||(o.mouseIsDown=!1,W(e,t),o.dragDropData.updateProp=e.updateProp=r,t.firePointEvent("dragStart",e),e.stopPropagation(),e.preventDefault())}(U(t,r),e,d)},{passive:!1}),_(s.group.element,"mouseover",()=>{r.dragDropData=r.dragDropData||{},r.dragDropData.isHoveringHandle=e.id}),R(s.group.element,["touchend","mouseout"],()=>{!function(e){let t=e.series.chart;t.dragDropData&&e.id===t.dragDropData.isHoveringHandle&&delete t.dragDropData.isHoveringHandle,t.hoverPoint||ee(e)}(e)})}}}function en(e){let t=this.chart,r=1/0,o=-1/0,a=1/0,i=-1/0,n;for(let t of e){let e=t.graphic&&t.graphic.getBBox()||t.shapeArgs;if(e){let s;let d=t.x2;J(d)&&(s=t.series.xAxis.translate(d,!1,!1,!1,!0));let l=!(e.width||e.height||e.x||e.y);n=!0,r=Math.min(t.plotX||0,s||0,l?1/0:e.x||0,r),o=Math.max(t.plotX||0,s||0,(e.x||0)+(e.width||0),o),a=Math.min(t.plotY||0,l?1/0:e.y||0,a),i=Math.max((e.y||0)+(e.height||0),i)}}return n?t.renderer.rect(r,a,o-r,i-a):t.renderer.g()}let es=n();({compose:function(e,t){N.compose(e);let r=t.prototype;if(!r.dragDropProps){let e=t.prototype.pointClass,o=t.types,a=e.prototype;for(let t of(a.getDropValues=ea,a.showDragHandles=ei,_(e,"mouseOut",et),_(e,"mouseOver",er),_(e,"remove",eo),r.dragDropProps=$.line,r.getGuideBox=en,["arearange","boxplot","bullet","column","columnrange","errorbar","flags","gantt","ohlc","waterfall","xrange"]))o[t]&&(o[t].prototype.dragDropProps=$[t]);for(let e of["bellcurve","gauge","histogram","map","mapline","pareto","pie","sankey","sma","sunburst","treemap","vector","windbarb","wordcloud"])o[e]&&(o[e].prototype.dragDropProps=null)}}}).compose(es.Chart,es.Series);let ed=n();return a.default})()); \ No newline at end of file diff --git a/modules/draggable-points.src.js b/modules/draggable-points.src.js index c116ecd7ab..56332a904d 100644 --- a/modules/draggable-points.src.js +++ b/modules/draggable-points.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/draggable-points * @requires highcharts * diff --git a/modules/drilldown.js b/modules/drilldown.js index 54f5375bd2..ff41042d3c 100644 --- a/modules/drilldown.js +++ b/modules/drilldown.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/drilldown * @requires highcharts * @@ -8,4 +8,4 @@ * Author: Torstein Honsi * License: www.highcharts.com/license * - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/drilldown",["highcharts/highcharts"],function(t){return e(t,t.Templating,t.Color)}):"object"==typeof exports?exports["highcharts/modules/drilldown"]=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var o,l={620:t=>{t.exports=i},984:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function s(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return l[t](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};s.d(n,{default:()=>tx});var a=s(944),d=/*#__PURE__*/s.n(a);let p={lang:{mainBreadcrumb:"Main"},options:{buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"#334eff"}},buttonSpacing:5,floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"#666666",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7}};var h=s(984);let{format:u}=/*#__PURE__*/s.n(h)(),{composed:c}=d(),{addEvent:m,defined:w,extend:g,fireEvent:f,isString:b,merge:v,objectEach:y,pick:x,pushUnique:D}=d();function S(){if(this.breadcrumbs){let t=this.resetZoomButton&&this.resetZoomButton.getBBox(),e=this.breadcrumbs.options;t&&"right"===e.position.align&&"plotBox"===e.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-t.width-e.buttonSpacing)}}function B(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function L(){let t=this.breadcrumbs;if(t&&!t.options.floating&&t.level){let e=t.options,i=e.buttonTheme,o=(i.height||0)+2*(i.padding||0)+e.buttonSpacing,l=e.position.verticalAlign;"bottom"===l?(this.marginBottom=(this.marginBottom||0)+o,t.yOffset=o):"middle"!==l?(this.plotTop+=o,t.yOffset=-o):t.yOffset=void 0}}function O(){this.breadcrumbs&&this.breadcrumbs.redraw()}function A(t){!0===t.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}class T{static compose(t,e){D(c,"Breadcrumbs")&&(m(t,"destroy",B),m(t,"afterShowResetZoom",S),m(t,"getMargins",L),m(t,"redraw",O),m(t,"selection",A),g(e.lang,p.lang))}constructor(t,e){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];let i=v(t.options.drilldown&&t.options.drilldown.drillUpButton,T.defaultOptions,t.options.navigation&&t.options.navigation.breadcrumbs,e);this.chart=t,this.options=i||{}}updateProperties(t){this.setList(t),this.setLevel(),this.isDirty=!0}setList(t){this.list=t}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(t){let e=this.chart,i=this.options,o=e.options.lang,l=x(i.format,i.showFullPath?"{level.name}":"← {level.name}"),r=o&&x(o.drillUpText,o.mainBreadcrumb),s=i.formatter&&i.formatter(t)||u(l,{level:t.levelOptions},e)||"";return(b(s)&&!s.length||"← "===s)&&w(r)&&(s=i.showFullPath?r:"← "+r),s}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let t=this.chart,e=this.options;!this.group&&e&&(this.group=t.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:e.zIndex}).add()),e.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let t=this.chart,e=this.list,i=this.options.buttonSpacing;this.destroyListElements();let o=this.group?this.group.getBBox().width:i,l=e[e.length-2];!t.drillUpButton&&this.level>0?t.drillUpButton=this.renderButton(l,o,i):t.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(t){if(this.group){let e=this.options,i=e.buttonTheme,o=e.position,l="chart"===e.relativeTo||"spacingBox"===e.relativeTo?void 0:"plotBox",r=this.group.getBBox(),s=2*(i.padding||0)+e.buttonSpacing;o.width=r.width+s,o.height=r.height+s;let n=v(o);t&&(n.x+=t),this.options.rtl&&(n.x+=o.width),n.y=x(n.y,this.yOffset,0),this.group.align(n,!0,l)}}renderButton(t,e,i){let o=this,l=this.chart,r=o.options,s=v(r.buttonTheme),n=l.renderer.button(o.getButtonText(t),e,i,function(e){let i;let l=r.events&&r.events.click;l&&(i=l.call(o,e,t)),!1!==i&&(r.showFullPath?e.newLevel=t.level:e.newLevel=o.level-1,f(o,"up",e))},s).addClass("highcharts-breadcrumbs-button").add(o.group);return l.styledMode||n.attr(r.style),n}renderSeparator(t,e){let i=this.chart,o=this.options.separator,l=i.renderer.label(o.text,t,e,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return i.styledMode||l.css(o.style),l}update(t){v(!0,this.options,t),this.destroy(),this.isDirty=!0}updateSingleButton(){let t=this.chart,e=this.list[this.level-1];t.drillUpButton&&t.drillUpButton.attr({text:this.getButtonText(e)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(t){let e=this.elementList;y(e,(i,o)=>{(t||!e[o].updated)&&((i=e[o]).button&&i.button.destroy(),i.separator&&i.separator.destroy(),delete i.button,delete i.separator,delete e[o])}),t&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){y(this.elementList,t=>{t.updated=!1})}updateListElements(){let t=this.elementList,e=this.options.buttonSpacing,i=this.list,o=this.options.rtl,l=o?-1:1,r=function(t,e){return l*t.getBBox().width+l*e},s=function(t,e,i){t.translate(e-t.getBBox().width,i)},n=this.group?r(this.group,e):e,a,d;for(let p=0,h=i.length;p{e.options._ddSeriesId===i.lowerSeriesOptions._ddSeriesId&&(t=i.shapeArgs,!s&&t&&(t.fill=i.color))}),t.x+=Z(r.oldPos,r.pos)-r.pos,e.points.forEach(i=>{let o=i.shapeArgs;s||(o.fill=i.color),i.graphic&&i.graphic.attr(t).animate(V(i.shapeArgs,{fill:i.color||e.color}),l)}),i.drilldown&&i.drilldown.fadeInGroup(this.dataLabelsGroup),delete this.animate}}function j(t){let e=this,i=M((e.chart.options.drilldown||{}).animation);(e.trackerGroups||[]).forEach(t=>{e[t]&&e[t].on("mouseover")});let o=e.group,l=o!==e.chart.columnGroup;l&&delete e.group,this.points.forEach(r=>{let s=r.graphic,n=t.shapeArgs;if(s&&n){let a=()=>{s.destroy(),o&&l&&(o=o.destroy())};delete r.graphic,e.chart.styledMode||(n.fill=t.color),i.duration?s.animate(n,_(i,{complete:a})):(s.attr(n),a())}})}function F(t){let e=this,i=e.drilldownLevel;t||(e.points.forEach(t=>{let e=t.dataLabel;t.graphic&&t.graphic.hide(),e&&(e.hidden="hidden"===e.attr("visibility"),e.hidden||(e.hide(),e.connector?.hide()))}),G(()=>{if(e.points){let t=[];e.data.forEach(e=>{t.push(e)}),e.nodes&&(t=t.concat(e.nodes)),t.forEach((t,e)=>{let o=e===(i&&i.pointIndex)?"show":"fadeIn",l=t.dataLabel;t.graphic&&t.visible&&t.graphic[o]("show"===o||void 0),l&&!l.hidden&&(l.fadeIn(),l.connector?.fadeIn())})}},Math.max(e.chart.options.drilldown.animation.duration-50,0)),delete this.animate)}function H(t){let e=this,i=e.chart,o=e.group;i&&o&&e.options&&i.options.drilldown&&i.options.drilldown.animation&&(t&&i.mapView?(o.attr({opacity:.01}),i.mapView.allowTransformAnimation=!1,e.options.inactiveOtherPoints=!0,e.options.enableMouseTracking=!1):(o.animate({opacity:1},i.options.drilldown.animation,()=>{e.options&&(e.options.inactiveOtherPoints=!1,e.options.enableMouseTracking=Z(e.userOptions&&e.userOptions.enableMouseTracking,!0))}),i.drilldown&&i.drilldown.fadeInGroup(this.dataLabelsGroup)))}function z(){let t=this.chart;t&&t.mapView&&(t.mapView.allowTransformAnimation=!1),this.options&&(this.options.inactiveOtherPoints=!0)}function R(t){let e=this.chart,i=this.group;e&&i&&(t?(i.attr({opacity:.01}),this.options&&(this.options.inactiveOtherPoints=!0)):(i.animate({opacity:1},(e.options.drilldown||{}).animation),e.drilldown&&e.drilldown.fadeInGroup(this.dataLabelsGroup)))}function W(){return this.drilldown&&!this.unbindDrilldownClick&&(this.unbindDrilldownClick=I(this,"click",J)),this}function q(){let t=this.series,e=t.chart.styledMode;this.drilldown&&t.halo&&"hover"===this.state?N(t.halo,"pointer",!0,e):t.halo&&N(t.halo,"auto",!1,e)}function J(t){let e=this.series;e.xAxis&&!1===(e.chart.options.drilldown||{}).allowPointDrilldown?e.xAxis.drilldownCategory(this.x,t):this.runDrilldown(void 0,void 0,t)}function K(t){let e=t.options||{};e.drilldown&&!this.unbindDrilldownClick?this.unbindDrilldownClick=I(this,"click",J):!e.drilldown&&void 0!==e.drilldown&&this.unbindDrilldownClick&&(this.unbindDrilldownClick=this.unbindDrilldownClick())}function Q(){let t=this.chart,e=t.options.drilldown.activeDataLabelStyle,i=t.renderer,o=t.styledMode;for(let t of this.points){let l=t.options.dataLabels,r=Z(t.dlOptions,l&&l.style,{});t.drilldown&&t.dataLabel&&("contrast"!==e.color||o||(r.color=i.getContrast(t.color||this.color)),l&&l.color&&(r.color=l.color),t.dataLabel.addClass("highcharts-drilldown-data-label"),o||t.dataLabel.css(e).css(r))}}function X(){let t=this.chart.styledMode;for(let e of this.points)e.drilldown&&e.graphic&&N(e.graphic,"pointer",!0,t)}function Y(t){let e=this.chart,i=this.points,o=e.drilldownLevels[e.drilldownLevels.length-1],l=e.options.drilldown.animation;if(this.is("item")&&(l.duration=0),this.center){let r=o.shapeArgs,s=r.start,n=(r.end-s)/this.points.length,a=e.styledMode;if(!t){let t,d;for(let e=0,p=i.length;e{let i=e.point.series&&e.point.series.chart,o=e.seriesOptions;i&&o&&(t?i.addSingleSeriesAsDrilldown(e.point,o):i.addSeriesAsDrilldown(e.point,o))})}let te={compose:function(t,e){let i=t.prototype.pointClass,o=i.prototype;if(!o.doDrilldown){let{column:l,map:r,pie:s}=e;if(I(i,"afterInit",W),I(i,"afterSetState",q),I(i,"update",K),o.doDrilldown=$,o.runDrilldown=tt,I(t,"afterDrawDataLabels",Q),I(t,"afterDrawTracker",X),l){let t=l.prototype;t.animateDrilldown=U,t.animateDrillupFrom=j,t.animateDrillupTo=F}if(r){let t=r.prototype;t.animateDrilldown=H,t.animateDrillupFrom=z,t.animateDrillupTo=R}if(s){let t=s.prototype;t.animateDrilldown=Y,t.animateDrillupFrom=j,t.animateDrillupTo=F}}}},{animObject:ti}=d(),{noop:to}=d(),{addEvent:tl,defined:tr,diffObjects:ts,extend:tn,fireEvent:ta,merge:td,objectEach:tp,pick:th,removeEvent:tu,syncTimeout:tc}=d(),tm=1;function tw(t,e){this.getDDPoints(t).forEach(function(i){i&&i.series&&i.series.visible&&i.runDrilldown&&i.runDrilldown(!0,t,e)}),this.chart.applyDrilldown()}function tg(t){return this.ddPoints&&this.ddPoints[t]||[]}function tf(t){let e=[],i=t.drilldownLevels;return i&&i.length&&(e[0]||e.push({level:0,levelOptions:i[0].seriesOptions}),i.forEach(function(t){let i=e[e.length-1];t.levelNumber+1>i.level&&e.push({level:t.levelNumber+1,levelOptions:td({name:t.lowerSeries.name},t.pointOptions)})})),e}class tb{constructor(t){this.chart=t}addSeriesAsDrilldown(t,e){let i=this.chart||this;if(ta(this,"addSeriesAsDrilldown",{seriesOptions:e}),i.mapView){if(t.series.isDrilling=!0,i.series.forEach(t=>{t.options.inactiveOtherPoints=!0,t.dataLabelsGroup?.destroy(),delete t.dataLabelsGroup}),i.options.drilldown&&!i.mapView.projection.hasGeoProjection&&P&&!tr(ts(i.options.drilldown,P).mapZooming)&&(i.options.drilldown.mapZooming=!1),i.options.drilldown&&i.options.drilldown.animation&&i.options.drilldown.mapZooming){i.mapView.allowTransformAnimation=!0;let o=ti(i.options.drilldown.animation);if("boolean"!=typeof o){let l=o.complete,r=function(o){o&&o.applyDrilldown&&i.mapView&&(i.addSingleSeriesAsDrilldown(t,e),i.applyDrilldown(),i.mapView.allowTransformAnimation=!1)};o.complete=function(){l&&l.apply(this,arguments),r.apply(this,arguments)}}t.zoomTo(o)}else i.addSingleSeriesAsDrilldown(t,e),i.applyDrilldown()}else i.addSingleSeriesAsDrilldown(t,e),i.applyDrilldown()}addSingleSeriesAsDrilldown(t,e){let i=this.chart||this,o=t.series,l=o.xAxis,r=o.yAxis,s=i.styledMode?{colorIndex:th(t.colorIndex,o.colorIndex)}:{color:t.color||o.color},n=o.options._levelNumber||0;i.drilldownLevels||(i.drilldownLevels=[]),e=tn(tn({_ddSeriesId:tm++},s),e);let a=[],d=[],p;(p=i.drilldownLevels[i.drilldownLevels.length-1])&&p.levelNumber!==n&&(p=void 0),o.chart.series.forEach(t=>{t.xAxis===l&&(t.options._ddSeriesId=t.options._ddSeriesId||tm++,t.options.colorIndex=t.colorIndex,t.options._levelNumber=t.options._levelNumber||n,p?(a=p.levelSeries,d=p.levelSeriesOptions):(a.push(t),t.purgedOptions=td({_ddSeriesId:t.options._ddSeriesId,_levelNumber:t.options._levelNumber,selected:t.options.selected},t.userOptions),d.push(t.purgedOptions)))});let h=tn({levelNumber:n,seriesOptions:o.options,seriesPurgedOptions:o.purgedOptions,levelSeriesOptions:d,levelSeries:a,shapeArgs:t.shapeArgs,bBox:t.graphic?t.graphic.getBBox():{},color:t.isNull?E().parse(s.color).setOpacity(0).get():s.color,lowerSeriesOptions:e,pointOptions:t.options,pointIndex:t.index,oldExtremes:{xMin:l&&l.userMin,xMax:l&&l.userMax,yMin:r&&r.userMin,yMax:r&&r.userMax},resetZoomButton:p&&p.levelNumber===n?void 0:i.resetZoomButton},s);i.drilldownLevels.push(h),l&&l.names&&(l.names.length=0);let u=h.lowerSeries=i.addSeries(e,!1);u.options._levelNumber=n+1,l&&(l.oldPos=l.pos,l.userMin=l.userMax=null,r.userMin=r.userMax=null),u.isDrilling=!0,o.type===u.type&&(u.animate=u.animateDrilldown||to,u.options.animation=!0)}applyDrilldown(){let t;let e=this.chart||this,i=e.drilldownLevels;i&&i.length>0&&(t=i[i.length-1].levelNumber,e.hasCartesianSeries=i.some(t=>t.lowerSeries.isCartesian),(e.drilldownLevels||[]).forEach(i=>{e.mapView&&e.options.drilldown&&e.options.drilldown.mapZooming&&(e.redraw(),i.lowerSeries.isDrilling=!1,e.mapView.fitToBounds(i.lowerSeries.bounds),i.lowerSeries.isDrilling=!0),i.levelNumber===t&&i.levelSeries.forEach(o=>{if(e.mapView){if(o.options&&o.options._levelNumber===t&&o.group){let t={};e.options.drilldown&&(t=e.options.drilldown.animation),o.group.animate({opacity:0},t,()=>{o.remove(!1),i.levelSeries.filter(t=>Object.keys(t).length).length||(e.resetZoomButton&&(e.resetZoomButton.hide(),delete e.resetZoomButton),e.pointer?.reset(),ta(e,"afterDrilldown"),e.mapView&&(e.series.forEach(t=>{t.isDirtyData=!0,t.isDrilling=!1}),e.mapView.fitToBounds(void 0,void 0),e.mapView.allowTransformAnimation=!0),ta(e,"afterApplyDrilldown"))})}}else o.options&&o.options._levelNumber===t&&o.remove(!1)})})),e.mapView||(e.resetZoomButton&&(e.resetZoomButton.hide(),delete e.resetZoomButton),e.pointer?.reset(),ta(e,"afterDrilldown"),e.hasCartesianSeries||e.axes.forEach(t=>{t.destroy(!0),t.init(e,td(t.userOptions,t.options))}),e.redraw(),ta(e,"afterApplyDrilldown"))}drillUp(t){let e=this.chart||this;if(!e.drilldownLevels||0===e.drilldownLevels.length)return;ta(e,"beforeDrillUp");let i=e.drilldownLevels,o=i[i.length-1].levelNumber,l=e.series,r=e.drilldownLevels.length,s=(t,i)=>{let o;if(l.forEach(e=>{e.options._ddSeriesId===t._ddSeriesId&&(o=e)}),(o=o||e.addSeries(t,!1)).type===i.type&&o.animateDrillupTo&&(o.animate=o.animateDrillupTo),t===p.seriesPurgedOptions)return o},n=t=>{t.remove(!1),e.series.forEach(t=>{t.colorAxis&&(t.isDirtyData=!0),t.options.inactiveOtherPoints=!1}),e.redraw()},a=i.length,d,p,h;for(e.symbolCounter=e.colorCounter=0;a--;){let u,c;if((p=i[a]).levelNumber===o){if(i.pop(),!(u=p.lowerSeries).chart){for(d=l.length;d--;)if(l[d].options.id===p.lowerSeriesOptions.id&&l[d].options._levelNumber===o+1){u=l[d];break}}u.dataTable.setColumn("x",[]),u.xAxis&&u.xAxis.names&&(0===r||a===r-1)&&(u.xAxis.names.length=0),p.levelSeriesOptions.forEach(t=>{let e=s(t,u);e&&(c=e)}),ta(e,"drillup",{seriesOptions:p.seriesPurgedOptions||p.seriesOptions}),c&&(c.type===u.type&&(c.drilldownLevel=p,c.options.animation=e.options.drilldown.animation,u.animateDrillupFrom&&u.chart&&u.animateDrillupFrom(p)),c.options._levelNumber=o);let m=u;if(e.mapView||m.remove(!1),c&&c.xAxis&&(h=p.oldExtremes,c.xAxis.setExtremes(h.xMin,h.xMax,!1),c.yAxis.setExtremes(h.yMin,h.yMax,!1)),p.resetZoomButton&&(e.resetZoomButton=p.resetZoomButton),e.mapView){let i=p.levelNumber===o&&t,l=e.options.drilldown&&e.options.drilldown.animation&&e.options.drilldown.mapZooming;i?u.remove(!1):(u.dataLabelsGroup&&(u.dataLabelsGroup.destroy(),delete u.dataLabelsGroup),e.mapView&&c&&(l&&(u.isDrilling=!0,c.isDrilling=!0,e.redraw(!1),e.mapView.fitToBounds(u.bounds,void 0,!0,!1)),e.mapView.allowTransformAnimation=!0,ta(e,"afterDrillUp",{seriesOptions:c?c.userOptions:void 0}),l?(e.mapView.setView(void 0,th(e.mapView.minZoom,1),!0,{complete:function(){Object.prototype.hasOwnProperty.call(this,"complete")&&n(u)}}),c._hasTracking=!1):(e.mapView.allowTransformAnimation=!1,u.group?u.group.animate({opacity:0},e.options.drilldown.animation,()=>{n(u),e.mapView&&(e.mapView.allowTransformAnimation=!0)}):(n(u),e.mapView.allowTransformAnimation=!0)),c.isDrilling=!1))}else ta(e,"afterDrillUp")}}e.mapView||e.redraw(),e.ddDupes&&(e.ddDupes.length=0),ta(e,"drillupall")}fadeInGroup(t){let e=ti(this.chart.options.drilldown.animation);t&&(t.hide(),tc(()=>{t&&t.added&&t.fadeIn()},Math.max(e.duration-50,0)))}update(t,e){let i=this.chart;td(!0,i.options.drilldown,t),th(e,!0)&&i.redraw()}}!function(t){function e(t){let e=this.chart,i=this.getLevel()-t.newLevel,o=i>1;for(let t=0;t{t.ddPoints={},t.series.forEach(e=>{let i=e.getColumn("x"),o=e.points;for(let l=0,r=i.length,s;l=0)||!(rt.drillable())})}function a(t){let e=this.breadcrumbs,i=t.options.drilldown&&t.options.drilldown.breadcrumbs;e&&i&&e.update(i)}function d(t){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:th(this.newOpacity,1)},t||{duration:250})}function p(){let t=this.pos,e=this.label,i=this.axis,o="xAxis"===i.coll&&i.getDDPoints,l=o&&i.getDDPoints(t),r=i.chart.styledMode;o&&(e&&l&&l.length?(e.drillable=!0,e.basicStyles||r||(e.basicStyles=td(e.styles)),e.addClass("highcharts-drilldown-axis-label"),e.removeOnDrillableClick&&tu(e.element,"click"),e.removeOnDrillableClick=tl(e.element,"click",function(e){e.preventDefault(),i.drilldownCategory(t,e)}),!r&&i.chart.options.drilldown&&e.css(i.chart.options.drilldown.activeAxisLabelStyle||{})):e&&e.drillable&&e.removeOnDrillableClick&&(r||(e.styles={},e.element.removeAttribute("style"),e.css(e.basicStyles)),e.removeOnDrillableClick(),e.removeClass("highcharts-drilldown-axis-label")))}t.compose=function(t,h,u,c,m,w,g){te.compose(c,m);let f=h.prototype;if(!f.drillUp){let c=w.prototype.Element,m=tb.prototype,b=t.prototype,v=c.prototype,y=g.prototype;b.drilldownCategory=tw,b.getDDPoints=tg,T.compose(h,u),tl(T,"up",e),f.addSeriesAsDrilldown=m.addSeriesAsDrilldown,f.addSingleSeriesAsDrilldown=m.addSingleSeriesAsDrilldown,f.applyDrilldown=m.applyDrilldown,f.drillUp=m.drillUp,tl(h,"afterDrilldown",i),tl(h,"afterDrillUp",o),tl(h,"afterInit",l),tl(h,"drillup",r),tl(h,"drillupall",s),tl(h,"render",n),tl(h,"update",a),u.drilldown=P,v.fadeIn=d,y.drillable=p}}}(o||(o={}));let tv=o,ty=d();ty.Breadcrumbs=ty.Breadcrumbs||T,tv.compose(ty.Axis,ty.Chart,ty.defaultOptions,ty.Series,ty.seriesTypes,ty.SVGRenderer,ty.Tick);let tx=d();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/drilldown",["highcharts/highcharts"],function(t){return e(t,t.Templating,t.Color)}):"object"==typeof exports?exports["highcharts/modules/drilldown"]=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var o,l={620:t=>{t.exports=i},984:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function s(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return l[t](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};s.d(n,{default:()=>tx});var a=s(944),d=s.n(a);let p={lang:{mainBreadcrumb:"Main"},options:{buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"#334eff"}},buttonSpacing:5,floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"#666666",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7}};var h=s(984);let{format:u}=s.n(h)(),{composed:c}=d(),{addEvent:m,defined:w,extend:g,fireEvent:f,isString:b,merge:v,objectEach:y,pick:x,pushUnique:D}=d();function S(){if(this.breadcrumbs){let t=this.resetZoomButton&&this.resetZoomButton.getBBox(),e=this.breadcrumbs.options;t&&"right"===e.position.align&&"plotBox"===e.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-t.width-e.buttonSpacing)}}function B(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function L(){let t=this.breadcrumbs;if(t&&!t.options.floating&&t.level){let e=t.options,i=e.buttonTheme,o=(i.height||0)+2*(i.padding||0)+e.buttonSpacing,l=e.position.verticalAlign;"bottom"===l?(this.marginBottom=(this.marginBottom||0)+o,t.yOffset=o):"middle"!==l?(this.plotTop+=o,t.yOffset=-o):t.yOffset=void 0}}function O(){this.breadcrumbs&&this.breadcrumbs.redraw()}function A(t){!0===t.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}class T{static compose(t,e){D(c,"Breadcrumbs")&&(m(t,"destroy",B),m(t,"afterShowResetZoom",S),m(t,"getMargins",L),m(t,"redraw",O),m(t,"selection",A),g(e.lang,p.lang))}constructor(t,e){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];let i=v(t.options.drilldown&&t.options.drilldown.drillUpButton,T.defaultOptions,t.options.navigation&&t.options.navigation.breadcrumbs,e);this.chart=t,this.options=i||{}}updateProperties(t){this.setList(t),this.setLevel(),this.isDirty=!0}setList(t){this.list=t}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(t){let e=this.chart,i=this.options,o=e.options.lang,l=x(i.format,i.showFullPath?"{level.name}":"← {level.name}"),r=o&&x(o.drillUpText,o.mainBreadcrumb),s=i.formatter&&i.formatter(t)||u(l,{level:t.levelOptions},e)||"";return(b(s)&&!s.length||"← "===s)&&w(r)&&(s=i.showFullPath?r:"← "+r),s}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let t=this.chart,e=this.options;!this.group&&e&&(this.group=t.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:e.zIndex}).add()),e.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let t=this.chart,e=this.list,i=this.options.buttonSpacing;this.destroyListElements();let o=this.group?this.group.getBBox().width:i,l=e[e.length-2];!t.drillUpButton&&this.level>0?t.drillUpButton=this.renderButton(l,o,i):t.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(t){if(this.group){let e=this.options,i=e.buttonTheme,o=e.position,l="chart"===e.relativeTo||"spacingBox"===e.relativeTo?void 0:"plotBox",r=this.group.getBBox(),s=2*(i.padding||0)+e.buttonSpacing;o.width=r.width+s,o.height=r.height+s;let n=v(o);t&&(n.x+=t),this.options.rtl&&(n.x+=o.width),n.y=x(n.y,this.yOffset,0),this.group.align(n,!0,l)}}renderButton(t,e,i){let o=this,l=this.chart,r=o.options,s=v(r.buttonTheme),n=l.renderer.button(o.getButtonText(t),e,i,function(e){let i;let l=r.events&&r.events.click;l&&(i=l.call(o,e,t)),!1!==i&&(r.showFullPath?e.newLevel=t.level:e.newLevel=o.level-1,f(o,"up",e))},s).addClass("highcharts-breadcrumbs-button").add(o.group);return l.styledMode||n.attr(r.style),n}renderSeparator(t,e){let i=this.chart,o=this.options.separator,l=i.renderer.label(o.text,t,e,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return i.styledMode||l.css(o.style),l}update(t){v(!0,this.options,t),this.destroy(),this.isDirty=!0}updateSingleButton(){let t=this.chart,e=this.list[this.level-1];t.drillUpButton&&t.drillUpButton.attr({text:this.getButtonText(e)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(t){let e=this.elementList;y(e,(i,o)=>{(t||!e[o].updated)&&((i=e[o]).button&&i.button.destroy(),i.separator&&i.separator.destroy(),delete i.button,delete i.separator,delete e[o])}),t&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){y(this.elementList,t=>{t.updated=!1})}updateListElements(){let t=this.elementList,e=this.options.buttonSpacing,i=this.list,o=this.options.rtl,l=o?-1:1,r=function(t,e){return l*t.getBBox().width+l*e},s=function(t,e,i){t.translate(e-t.getBBox().width,i)},n=this.group?r(this.group,e):e,a,d;for(let p=0,h=i.length;p{e.options._ddSeriesId===i.lowerSeriesOptions._ddSeriesId&&(t=i.shapeArgs,!s&&t&&(t.fill=i.color))}),t.x+=Z(r.oldPos,r.pos)-r.pos,e.points.forEach(i=>{let o=i.shapeArgs;s||(o.fill=i.color),i.graphic&&i.graphic.attr(t).animate(V(i.shapeArgs,{fill:i.color||e.color}),l)}),i.drilldown&&i.drilldown.fadeInGroup(this.dataLabelsGroup),delete this.animate}}function j(t){let e=this,i=M((e.chart.options.drilldown||{}).animation);(e.trackerGroups||[]).forEach(t=>{e[t]&&e[t].on("mouseover")});let o=e.group,l=o!==e.chart.columnGroup;l&&delete e.group,this.points.forEach(r=>{let s=r.graphic,n=t.shapeArgs;if(s&&n){let a=()=>{s.destroy(),o&&l&&(o=o.destroy())};delete r.graphic,e.chart.styledMode||(n.fill=t.color),i.duration?s.animate(n,_(i,{complete:a})):(s.attr(n),a())}})}function F(t){let e=this,i=e.drilldownLevel;t||(e.points.forEach(t=>{let e=t.dataLabel;t.graphic&&t.graphic.hide(),e&&(e.hidden="hidden"===e.attr("visibility"),e.hidden||(e.hide(),e.connector?.hide()))}),G(()=>{if(e.points){let t=[];e.data.forEach(e=>{t.push(e)}),e.nodes&&(t=t.concat(e.nodes)),t.forEach((t,e)=>{let o=e===(i&&i.pointIndex)?"show":"fadeIn",l=t.dataLabel;t.graphic&&t.visible&&t.graphic[o]("show"===o||void 0),l&&!l.hidden&&(l.fadeIn(),l.connector?.fadeIn())})}},Math.max(e.chart.options.drilldown.animation.duration-50,0)),delete this.animate)}function H(t){let e=this,i=e.chart,o=e.group;i&&o&&e.options&&i.options.drilldown&&i.options.drilldown.animation&&(t&&i.mapView?(o.attr({opacity:.01}),i.mapView.allowTransformAnimation=!1,e.options.inactiveOtherPoints=!0,e.options.enableMouseTracking=!1):(o.animate({opacity:1},i.options.drilldown.animation,()=>{e.options&&(e.options.inactiveOtherPoints=!1,e.options.enableMouseTracking=Z(e.userOptions&&e.userOptions.enableMouseTracking,!0))}),i.drilldown&&i.drilldown.fadeInGroup(this.dataLabelsGroup)))}function z(){let t=this.chart;t&&t.mapView&&(t.mapView.allowTransformAnimation=!1),this.options&&(this.options.inactiveOtherPoints=!0)}function R(t){let e=this.chart,i=this.group;e&&i&&(t?(i.attr({opacity:.01}),this.options&&(this.options.inactiveOtherPoints=!0)):(i.animate({opacity:1},(e.options.drilldown||{}).animation),e.drilldown&&e.drilldown.fadeInGroup(this.dataLabelsGroup)))}function W(){return this.drilldown&&!this.unbindDrilldownClick&&(this.unbindDrilldownClick=I(this,"click",J)),this}function q(){let t=this.series,e=t.chart.styledMode;this.drilldown&&t.halo&&"hover"===this.state?N(t.halo,"pointer",!0,e):t.halo&&N(t.halo,"auto",!1,e)}function J(t){let e=this.series;e.xAxis&&!1===(e.chart.options.drilldown||{}).allowPointDrilldown?e.xAxis.drilldownCategory(this.x,t):this.runDrilldown(void 0,void 0,t)}function K(t){let e=t.options||{};e.drilldown&&!this.unbindDrilldownClick?this.unbindDrilldownClick=I(this,"click",J):!e.drilldown&&void 0!==e.drilldown&&this.unbindDrilldownClick&&(this.unbindDrilldownClick=this.unbindDrilldownClick())}function Q(){let t=this.chart,e=t.options.drilldown.activeDataLabelStyle,i=t.renderer,o=t.styledMode;for(let t of this.points){let l=t.options.dataLabels,r=Z(t.dlOptions,l&&l.style,{});t.drilldown&&t.dataLabel&&("contrast"!==e.color||o||(r.color=i.getContrast(t.color||this.color)),l&&l.color&&(r.color=l.color),t.dataLabel.addClass("highcharts-drilldown-data-label"),o||t.dataLabel.css(e).css(r))}}function X(){let t=this.chart.styledMode;for(let e of this.points)e.drilldown&&e.graphic&&N(e.graphic,"pointer",!0,t)}function Y(t){let e=this.chart,i=this.points,o=e.drilldownLevels[e.drilldownLevels.length-1],l=e.options.drilldown.animation;if(this.is("item")&&(l.duration=0),this.center){let r=o.shapeArgs,s=r.start,n=(r.end-s)/this.points.length,a=e.styledMode;if(!t){let t,d;for(let e=0,p=i.length;e{let i=e.point.series&&e.point.series.chart,o=e.seriesOptions;i&&o&&(t?i.addSingleSeriesAsDrilldown(e.point,o):i.addSeriesAsDrilldown(e.point,o))})}let te={compose:function(t,e){let i=t.prototype.pointClass,o=i.prototype;if(!o.doDrilldown){let{column:l,map:r,pie:s}=e;if(I(i,"afterInit",W),I(i,"afterSetState",q),I(i,"update",K),o.doDrilldown=$,o.runDrilldown=tt,I(t,"afterDrawDataLabels",Q),I(t,"afterDrawTracker",X),l){let t=l.prototype;t.animateDrilldown=U,t.animateDrillupFrom=j,t.animateDrillupTo=F}if(r){let t=r.prototype;t.animateDrilldown=H,t.animateDrillupFrom=z,t.animateDrillupTo=R}if(s){let t=s.prototype;t.animateDrilldown=Y,t.animateDrillupFrom=j,t.animateDrillupTo=F}}}},{animObject:ti}=d(),{noop:to}=d(),{addEvent:tl,defined:tr,diffObjects:ts,extend:tn,fireEvent:ta,merge:td,objectEach:tp,pick:th,removeEvent:tu,syncTimeout:tc}=d(),tm=1;function tw(t,e){this.getDDPoints(t).forEach(function(i){i&&i.series&&i.series.visible&&i.runDrilldown&&i.runDrilldown(!0,t,e)}),this.chart.applyDrilldown()}function tg(t){return this.ddPoints&&this.ddPoints[t]||[]}function tf(t){let e=[],i=t.drilldownLevels;return i&&i.length&&(e[0]||e.push({level:0,levelOptions:i[0].seriesOptions}),i.forEach(function(t){let i=e[e.length-1];t.levelNumber+1>i.level&&e.push({level:t.levelNumber+1,levelOptions:td({name:t.lowerSeries.name},t.pointOptions)})})),e}class tb{constructor(t){this.chart=t}addSeriesAsDrilldown(t,e){let i=this.chart||this;if(ta(this,"addSeriesAsDrilldown",{seriesOptions:e}),i.mapView){if(t.series.isDrilling=!0,i.series.forEach(t=>{t.options.inactiveOtherPoints=!0,t.dataLabelsGroup?.destroy(),delete t.dataLabelsGroup}),i.options.drilldown&&!i.mapView.projection.hasGeoProjection&&P&&!tr(ts(i.options.drilldown,P).mapZooming)&&(i.options.drilldown.mapZooming=!1),i.options.drilldown&&i.options.drilldown.animation&&i.options.drilldown.mapZooming){i.mapView.allowTransformAnimation=!0;let o=ti(i.options.drilldown.animation);if("boolean"!=typeof o){let l=o.complete,r=function(o){o&&o.applyDrilldown&&i.mapView&&(i.addSingleSeriesAsDrilldown(t,e),i.applyDrilldown(),i.mapView.allowTransformAnimation=!1)};o.complete=function(){l&&l.apply(this,arguments),r.apply(this,arguments)}}t.zoomTo(o)}else i.addSingleSeriesAsDrilldown(t,e),i.applyDrilldown()}else i.addSingleSeriesAsDrilldown(t,e),i.applyDrilldown()}addSingleSeriesAsDrilldown(t,e){let i=this.chart||this,o=t.series,l=o.xAxis,r=o.yAxis,s=i.styledMode?{colorIndex:th(t.colorIndex,o.colorIndex)}:{color:t.color||o.color},n=o.options._levelNumber||0;i.drilldownLevels||(i.drilldownLevels=[]),e=tn(tn({_ddSeriesId:tm++},s),e);let a=[],d=[],p;(p=i.drilldownLevels[i.drilldownLevels.length-1])&&p.levelNumber!==n&&(p=void 0),o.chart.series.forEach(t=>{t.xAxis===l&&(t.options._ddSeriesId=t.options._ddSeriesId||tm++,t.options.colorIndex=t.colorIndex,t.options._levelNumber=t.options._levelNumber||n,p?(a=p.levelSeries,d=p.levelSeriesOptions):(a.push(t),t.purgedOptions=td({_ddSeriesId:t.options._ddSeriesId,_levelNumber:t.options._levelNumber,selected:t.options.selected},t.userOptions),d.push(t.purgedOptions)))});let h=tn({levelNumber:n,seriesOptions:o.options,seriesPurgedOptions:o.purgedOptions,levelSeriesOptions:d,levelSeries:a,shapeArgs:t.shapeArgs,bBox:t.graphic?t.graphic.getBBox():{},color:t.isNull?E().parse(s.color).setOpacity(0).get():s.color,lowerSeriesOptions:e,pointOptions:t.options,pointIndex:t.index,oldExtremes:{xMin:l&&l.userMin,xMax:l&&l.userMax,yMin:r&&r.userMin,yMax:r&&r.userMax},resetZoomButton:p&&p.levelNumber===n?void 0:i.resetZoomButton},s);i.drilldownLevels.push(h),l&&l.names&&(l.names.length=0);let u=h.lowerSeries=i.addSeries(e,!1);u.options._levelNumber=n+1,l&&(l.oldPos=l.pos,l.userMin=l.userMax=null,r.userMin=r.userMax=null),u.isDrilling=!0,o.type===u.type&&(u.animate=u.animateDrilldown||to,u.options.animation=!0)}applyDrilldown(){let t;let e=this.chart||this,i=e.drilldownLevels;i&&i.length>0&&(t=i[i.length-1].levelNumber,e.hasCartesianSeries=i.some(t=>t.lowerSeries.isCartesian),(e.drilldownLevels||[]).forEach(i=>{e.mapView&&e.options.drilldown&&e.options.drilldown.mapZooming&&(e.redraw(),i.lowerSeries.isDrilling=!1,e.mapView.fitToBounds(i.lowerSeries.bounds),i.lowerSeries.isDrilling=!0),i.levelNumber===t&&i.levelSeries.forEach(o=>{if(e.mapView){if(o.options&&o.options._levelNumber===t&&o.group){let t={};e.options.drilldown&&(t=e.options.drilldown.animation),o.group.animate({opacity:0},t,()=>{o.remove(!1),i.levelSeries.filter(t=>Object.keys(t).length).length||(e.resetZoomButton&&(e.resetZoomButton.hide(),delete e.resetZoomButton),e.pointer?.reset(),ta(e,"afterDrilldown"),e.mapView&&(e.series.forEach(t=>{t.isDirtyData=!0,t.isDrilling=!1}),e.mapView.fitToBounds(void 0,void 0),e.mapView.allowTransformAnimation=!0),ta(e,"afterApplyDrilldown"))})}}else o.options&&o.options._levelNumber===t&&o.remove(!1)})})),e.mapView||(e.resetZoomButton&&(e.resetZoomButton.hide(),delete e.resetZoomButton),e.pointer?.reset(),ta(e,"afterDrilldown"),e.hasCartesianSeries||e.axes.forEach(t=>{t.destroy(!0),t.init(e,td(t.userOptions,t.options))}),e.redraw(),ta(e,"afterApplyDrilldown"))}drillUp(t){let e=this.chart||this;if(!e.drilldownLevels||0===e.drilldownLevels.length)return;ta(e,"beforeDrillUp");let i=e.drilldownLevels,o=i[i.length-1].levelNumber,l=e.series,r=e.drilldownLevels.length,s=(t,i)=>{let o;if(l.forEach(e=>{e.options._ddSeriesId===t._ddSeriesId&&(o=e)}),(o=o||e.addSeries(t,!1)).type===i.type&&o.animateDrillupTo&&(o.animate=o.animateDrillupTo),t===p.seriesPurgedOptions)return o},n=t=>{t.remove(!1),e.series.forEach(t=>{t.colorAxis&&(t.isDirtyData=!0),t.options.inactiveOtherPoints=!1}),e.redraw()},a=i.length,d,p,h;for(e.symbolCounter=e.colorCounter=0;a--;){let u,c;if((p=i[a]).levelNumber===o){if(i.pop(),!(u=p.lowerSeries).chart){for(d=l.length;d--;)if(l[d].options.id===p.lowerSeriesOptions.id&&l[d].options._levelNumber===o+1){u=l[d];break}}u.dataTable.setColumn("x",[]),u.xAxis&&u.xAxis.names&&(0===r||a===r-1)&&(u.xAxis.names.length=0),p.levelSeriesOptions.forEach(t=>{let e=s(t,u);e&&(c=e)}),ta(e,"drillup",{seriesOptions:p.seriesPurgedOptions||p.seriesOptions}),c&&(c.type===u.type&&(c.drilldownLevel=p,c.options.animation=e.options.drilldown.animation,u.animateDrillupFrom&&u.chart&&u.animateDrillupFrom(p)),c.options._levelNumber=o);let m=u;if(e.mapView||m.remove(!1),c&&c.xAxis&&(h=p.oldExtremes,c.xAxis.setExtremes(h.xMin,h.xMax,!1),c.yAxis.setExtremes(h.yMin,h.yMax,!1)),p.resetZoomButton&&(e.resetZoomButton=p.resetZoomButton),e.mapView){let i=p.levelNumber===o&&t,l=e.options.drilldown&&e.options.drilldown.animation&&e.options.drilldown.mapZooming;i?u.remove(!1):(u.dataLabelsGroup&&(u.dataLabelsGroup.destroy(),delete u.dataLabelsGroup),e.mapView&&c&&(l&&(u.isDrilling=!0,c.isDrilling=!0,e.redraw(!1),e.mapView.fitToBounds(u.bounds,void 0,!0,!1)),e.mapView.allowTransformAnimation=!0,ta(e,"afterDrillUp",{seriesOptions:c?c.userOptions:void 0}),l?(e.mapView.setView(void 0,th(e.mapView.minZoom,1),!0,{complete:function(){Object.prototype.hasOwnProperty.call(this,"complete")&&n(u)}}),c._hasTracking=!1):(e.mapView.allowTransformAnimation=!1,u.group?u.group.animate({opacity:0},e.options.drilldown.animation,()=>{n(u),e.mapView&&(e.mapView.allowTransformAnimation=!0)}):(n(u),e.mapView.allowTransformAnimation=!0)),c.isDrilling=!1))}else ta(e,"afterDrillUp")}}e.mapView||e.redraw(),e.ddDupes&&(e.ddDupes.length=0),ta(e,"drillupall")}fadeInGroup(t){let e=ti(this.chart.options.drilldown.animation);t&&(t.hide(),tc(()=>{t&&t.added&&t.fadeIn()},Math.max(e.duration-50,0)))}update(t,e){let i=this.chart;td(!0,i.options.drilldown,t),th(e,!0)&&i.redraw()}}!function(t){function e(t){let e=this.chart,i=this.getLevel()-t.newLevel,o=i>1;for(let t=0;t{t.ddPoints={},t.series.forEach(e=>{let i=e.getColumn("x"),o=e.points;for(let l=0,r=i.length,s;l=0)||!(rt.drillable())})}function a(t){let e=this.breadcrumbs,i=t.options.drilldown&&t.options.drilldown.breadcrumbs;e&&i&&e.update(i)}function d(t){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:th(this.newOpacity,1)},t||{duration:250})}function p(){let t=this.pos,e=this.label,i=this.axis,o="xAxis"===i.coll&&i.getDDPoints,l=o&&i.getDDPoints(t),r=i.chart.styledMode;o&&(e&&l&&l.length?(e.drillable=!0,e.basicStyles||r||(e.basicStyles=td(e.styles)),e.addClass("highcharts-drilldown-axis-label"),e.removeOnDrillableClick&&tu(e.element,"click"),e.removeOnDrillableClick=tl(e.element,"click",function(e){e.preventDefault(),i.drilldownCategory(t,e)}),!r&&i.chart.options.drilldown&&e.css(i.chart.options.drilldown.activeAxisLabelStyle||{})):e&&e.drillable&&e.removeOnDrillableClick&&(r||(e.styles={},e.element.removeAttribute("style"),e.css(e.basicStyles)),e.removeOnDrillableClick(),e.removeClass("highcharts-drilldown-axis-label")))}t.compose=function(t,h,u,c,m,w,g){te.compose(c,m);let f=h.prototype;if(!f.drillUp){let c=w.prototype.Element,m=tb.prototype,b=t.prototype,v=c.prototype,y=g.prototype;b.drilldownCategory=tw,b.getDDPoints=tg,T.compose(h,u),tl(T,"up",e),f.addSeriesAsDrilldown=m.addSeriesAsDrilldown,f.addSingleSeriesAsDrilldown=m.addSingleSeriesAsDrilldown,f.applyDrilldown=m.applyDrilldown,f.drillUp=m.drillUp,tl(h,"afterDrilldown",i),tl(h,"afterDrillUp",o),tl(h,"afterInit",l),tl(h,"drillup",r),tl(h,"drillupall",s),tl(h,"render",n),tl(h,"update",a),u.drilldown=P,v.fadeIn=d,y.drillable=p}}}(o||(o={}));let tv=o,ty=d();ty.Breadcrumbs=ty.Breadcrumbs||T,tv.compose(ty.Axis,ty.Chart,ty.defaultOptions,ty.Series,ty.seriesTypes,ty.SVGRenderer,ty.Tick);let tx=d();return n.default})()); \ No newline at end of file diff --git a/modules/drilldown.src.js b/modules/drilldown.src.js index e5d9db8556..b038a0b93c 100644 --- a/modules/drilldown.src.js +++ b/modules/drilldown.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/drilldown * @requires highcharts * diff --git a/modules/dumbbell.js b/modules/dumbbell.js index bc8c3ec042..1c0b279964 100644 --- a/modules/dumbbell.js +++ b/modules/dumbbell.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/dumbbell * @requires highcharts * * (c) 2009-2024 Sebastian Bochan, Rafal Sebestjanski * * License: www.highcharts.com/license - */function(t,o){"object"==typeof exports&&"object"==typeof module?module.exports=o(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/dumbbell",["highcharts/highcharts"],function(t){return o(t,t.SeriesRegistry,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/dumbbell"]=o(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer):t.Highcharts=o(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,o,e)=>(()=>{"use strict";var r={540:t=>{t.exports=e},512:t=>{t.exports=o},944:o=>{o.exports=t}},i={};function s(t){var o=i[t];if(void 0!==o)return o.exports;var e=i[t]={exports:{}};return r[t](e,e.exports,s),e.exports}s.n=t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return s.d(o,{a:o}),o},s.d=(t,o)=>{for(var e in o)s.o(o,e)&&!s.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:o[e]})},s.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o);var h={};s.d(h,{default:()=>P});var l=s(944),a=/*#__PURE__*/s.n(l),n=s(512),p=/*#__PURE__*/s.n(n);let{area:{prototype:{pointClass:c,pointClass:{prototype:d}}}}=p().seriesTypes,{defined:g,isNumber:y}=a(),u=class extends c{setState(){let t=this.state,o=this.series,e=o.chart.polar;g(this.plotHigh)||(this.plotHigh=o.yAxis.toPixels(this.high,!0)),g(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&&y(this.plotHighX)&&(this.plotX=this.plotHighX),d.setState.apply(this,arguments),this.state=t,this.plotY=this.plotLow,this.graphic=this.graphics&&this.graphics[0],e&&y(this.plotLowX)&&(this.plotX=this.plotLowX),o.upperStateMarkerGraphic=o.stateMarkerGraphic,o.stateMarkerGraphic=o.lowerStateMarkerGraphic,o.lowerStateMarkerGraphic=void 0;let r=o.modifyMarkerSettings();d.setState.apply(this,arguments),o.restoreMarkerSettings(r)}haloPath(){let t=this.series.chart.polar,o=[];return this.plotY=this.plotLow,t&&y(this.plotLowX)&&(this.plotX=this.plotLowX),this.isInside&&(o=d.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,t&&y(this.plotHighX)&&(this.plotX=this.plotHighX),this.isTopInside&&(o=o.concat(d.haloPath.apply(this,arguments))),o}isValid(){return y(this.low)&&y(this.high)}},{extend:f,pick:w}=a();class C extends u{setState(){let t=this.series,o=t.chart,e=t.options.lowColor,r=t.options.marker,i=t.options.lowMarker,s=this.options,h=s.lowColor,l=this.zone&&this.zone.color,a=w(h,i?.fillColor,e,s.color,l,this.color,t.color),n="attr",p,c;if(this.pointSetState.apply(this,arguments),!this.state){n="animate";let[t,e]=this.graphics||[];t&&!o.styledMode&&(t.attr({fill:a}),e&&(c={y:this.y,zone:this.zone},this.y=this.high,this.zone=this.zone?this.getZone():void 0,p=w(this.marker?this.marker.fillColor:void 0,r?r.fillColor:void 0,s.color,this.zone?this.zone.color:void 0,this.color),e.attr({fill:p}),f(this,c)))}this.connector?.[n](t.getConnectorAttribs(this))}destroy(){return this.graphic||(this.graphic=this.connector,this.connector=void 0),super.destroy()}}f(C.prototype,{pointSetState:u.prototype.setState});var m=s(540),S=/*#__PURE__*/s.n(m);let{noop:x}=a(),{arearange:k,column:v,columnrange:M}=p().seriesTypes,{extend:b,merge:X,pick:z}=a();class H extends k{getConnectorAttribs(t){let o=this.chart,e=t.options,r=this.options,i=this.xAxis,s=this.yAxis,h=z(r.states&&r.states.hover&&r.states.hover.connectorWidthPlus,1),l=z(e.dashStyle,r.dashStyle),a=s.toPixels(r.threshold||0,!0),n=o.inverted?s.len-a:a,p=z(e.connectorWidth,r.connectorWidth),c=z(e.connectorColor,r.connectorColor,e.color,t.zone?t.zone.color:void 0,t.color),d=z(t.plotLow,t.plotY),g=z(t.plotHigh,n),y;if("number"!=typeof d)return{};t.state&&(p+=h),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>i.len)&&(p=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=z(e.connectorColor,r.connectorColor,e.color,t.zone?t.zone.color:void 0,t.color),b(t,y));let u={d:S().prototype.crispLine([["M",t.plotX,d],["L",t.plotX,g]],p)};return!o.styledMode&&(u.stroke=c,u["stroke-width"]=p,l&&(u.dashstyle=l)),u}drawConnector(t){let o=z(this.options.animationLimit,250),e=t.connector&&this.chart.pointCount(()=>{"use strict";var r={540:t=>{t.exports=e},512:t=>{t.exports=o},944:o=>{o.exports=t}},i={};function s(t){var o=i[t];if(void 0!==o)return o.exports;var e=i[t]={exports:{}};return r[t](e,e.exports,s),e.exports}s.n=t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return s.d(o,{a:o}),o},s.d=(t,o)=>{for(var e in o)s.o(o,e)&&!s.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:o[e]})},s.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o);var h={};s.d(h,{default:()=>P});var l=s(944),a=s.n(l),n=s(512),p=s.n(n);let{area:{prototype:{pointClass:c,pointClass:{prototype:d}}}}=p().seriesTypes,{defined:g,isNumber:y}=a(),u=class extends c{setState(){let t=this.state,o=this.series,e=o.chart.polar;g(this.plotHigh)||(this.plotHigh=o.yAxis.toPixels(this.high,!0)),g(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&&y(this.plotHighX)&&(this.plotX=this.plotHighX),d.setState.apply(this,arguments),this.state=t,this.plotY=this.plotLow,this.graphic=this.graphics&&this.graphics[0],e&&y(this.plotLowX)&&(this.plotX=this.plotLowX),o.upperStateMarkerGraphic=o.stateMarkerGraphic,o.stateMarkerGraphic=o.lowerStateMarkerGraphic,o.lowerStateMarkerGraphic=void 0;let r=o.modifyMarkerSettings();d.setState.apply(this,arguments),o.restoreMarkerSettings(r)}haloPath(){let t=this.series.chart.polar,o=[];return this.plotY=this.plotLow,t&&y(this.plotLowX)&&(this.plotX=this.plotLowX),this.isInside&&(o=d.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,t&&y(this.plotHighX)&&(this.plotX=this.plotHighX),this.isTopInside&&(o=o.concat(d.haloPath.apply(this,arguments))),o}isValid(){return y(this.low)&&y(this.high)}},{extend:f,pick:w}=a();class C extends u{setState(){let t=this.series,o=t.chart,e=t.options.lowColor,r=t.options.marker,i=t.options.lowMarker,s=this.options,h=s.lowColor,l=this.zone&&this.zone.color,a=w(h,i?.fillColor,e,s.color,l,this.color,t.color),n="attr",p,c;if(this.pointSetState.apply(this,arguments),!this.state){n="animate";let[t,e]=this.graphics||[];t&&!o.styledMode&&(t.attr({fill:a}),e&&(c={y:this.y,zone:this.zone},this.y=this.high,this.zone=this.zone?this.getZone():void 0,p=w(this.marker?this.marker.fillColor:void 0,r?r.fillColor:void 0,s.color,this.zone?this.zone.color:void 0,this.color),e.attr({fill:p}),f(this,c)))}this.connector?.[n](t.getConnectorAttribs(this))}destroy(){return this.graphic||(this.graphic=this.connector,this.connector=void 0),super.destroy()}}f(C.prototype,{pointSetState:u.prototype.setState});var m=s(540),S=s.n(m);let{noop:x}=a(),{arearange:k,column:v,columnrange:M}=p().seriesTypes,{extend:b,merge:X,pick:z}=a();class H extends k{getConnectorAttribs(t){let o=this.chart,e=t.options,r=this.options,i=this.xAxis,s=this.yAxis,h=z(r.states&&r.states.hover&&r.states.hover.connectorWidthPlus,1),l=z(e.dashStyle,r.dashStyle),a=s.toPixels(r.threshold||0,!0),n=o.inverted?s.len-a:a,p=z(e.connectorWidth,r.connectorWidth),c=z(e.connectorColor,r.connectorColor,e.color,t.zone?t.zone.color:void 0,t.color),d=z(t.plotLow,t.plotY),g=z(t.plotHigh,n),y;if("number"!=typeof d)return{};t.state&&(p+=h),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>i.len)&&(p=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=z(e.connectorColor,r.connectorColor,e.color,t.zone?t.zone.color:void 0,t.color),b(t,y));let u={d:S().prototype.crispLine([["M",t.plotX,d],["L",t.plotX,g]],p)};return!o.styledMode&&(u.stroke=c,u["stroke-width"]=p,l&&(u.dashstyle=l)),u}drawConnector(t){let o=z(this.options.animationLimit,250),e=t.connector&&this.chart.pointCount(()=>{"use strict";var o={660:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function n(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return o[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 o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};n.d(i,{default:()=>$});var r=n(944),s=/*#__PURE__*/n.n(r);let{isSafari:l,win:h,win:{document:c}}=s(),d=h.URL||h.webkitURL||h;function p(t){let e=t.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(e&&e.length>3&&h.atob&&h.ArrayBuffer&&h.Uint8Array&&h.Blob&&d.createObjectURL){let t=h.atob(e[3]),o=new h.ArrayBuffer(t.length),a=new h.Uint8Array(o);for(let e=0;e1e3)throw Error("Input too long");let n=/Edge\/\d+/.test(o.userAgent);if((l&&"string"==typeof t&&0===t.indexOf("data:application/pdf")||n||t.length>2e6)&&!(t=p(t)||""))throw Error("Failed to convert to blob");if(void 0!==a.download)a.href=t,a.download=e,c.body.appendChild(a),a.click(),c.body.removeChild(a);else try{if(!h.open(t,"chart"))throw Error("Failed to open window")}catch{h.location.href=t}}};var g=n(660),m=/*#__PURE__*/n.n(g);let f={exporting:{csv:{annotations:{itemDelimiter:"; ",join:!1},columnHeaderFormatter:null,dateFormat:"%Y-%m-%d %H:%M:%S",decimalPoint:null,itemDelimiter:null,lineDelimiter:"\n"},showTable:!1,useMultiLevelHeaders:!0,useRowspanHeaders:!0,showExportInProgress:!0},lang:{downloadCSV:"Download CSV",downloadXLS:"Download XLS",exportData:{annotationHeader:"Annotations",categoryHeader:"Category",categoryDatetimeHeader:"DateTime"},viewData:"View data table",hideData:"Hide data table",exportInProgress:"Exporting..."}},{getOptions:x,setOptions:b}=s(),{downloadURL:y}=u,{doc:w,win:T}=s(),{addEvent:v,defined:D,extend:S,find:L,fireEvent:E,isNumber:A,pick:C}=s();function k(t){let e=!!this.options.exporting?.showExportInProgress,o=T.requestAnimationFrame||setTimeout;o(()=>{e&&this.showLoading(this.options.lang.exportInProgress),o(()=>{try{t.call(this)}finally{e&&this.hideLoading()}})})}function H(){k.call(this,()=>{let t=this.getCSV(!0);y(M(t,"text/csv")||"data:text/csv,\uFEFF"+encodeURIComponent(t),this.getFilename()+".csv")})}function O(){k.call(this,()=>{let t='\x3c!--[if gte mso 9]>Ark1td{border:none;font-family: Calibri, sans-serif;} .number{mso-number-format:"0.00";} .text{ mso-number-format:"@";}'+this.getTable(!0)+"";y(M(t,"application/vnd.ms-excel")||"data:application/vnd.ms-excel;base64,"+T.btoa(unescape(encodeURIComponent(t))),this.getFilename()+".xls")})}function R(t){let e="",o=this.getDataRows(),a=this.options.exporting.csv,n=C(a.decimalPoint,","!==a.itemDelimiter&&t?1.1.toLocaleString()[1]:"."),i=C(a.itemDelimiter,","===n?";":","),r=a.lineDelimiter;return o.forEach((t,a)=>{let s="",l=t.length;for(;l--;)"string"==typeof(s=t[l])&&(s=`"${s}"`),"number"==typeof s&&"."!==n&&(s=s.toString().replace(".",n)),t[l]=s;t.length=o.length?o[0].length:0,e+=t.join(i),a1?o:e.name,topLevelColumnTitle:e.name}:e.name+(a>1?" ("+o+")":""):e.options.title&&e.options.title.text||(e.dateTime?u:p):p},m=function(t,e,o){let a={},n={};return e.forEach(function(e){let i=(t.keyToAxis&&t.keyToAxis[e]||e)+"Axis",r=A(o)?t.chart[i][o]:t[i];a[e]=r&&r.categories||[],n[e]=r&&r.dateTime}),{categoryMap:a,dateTimeValueAxisMap:n}},f=function(t,e){let o=t.pointArrayMap||["y"];return t.data.some(t=>void 0!==t.y&&t.name)&&e&&!e.categories&&"name"!==t.exportKey?["x",...o]:o},x=[],b,y,w,T=0,v,S;for(v in this.series.forEach(function(e){let o=e.options.keys,l=e.xAxis,d=o||f(e,l),p=d.length,u=!e.requireSorting&&{},b=r.indexOf(l),y=m(e,d),v,D;if(!1!==e.options.includeInDataExport&&!e.options.isInternal&&!1!==e.visible){for(L(x,function(t){return t[0]===b})||x.push([b,T]),D=0;D{if(!t.tagName||"#text"===t.tagName)return t.textContent||"";let o=t.attributes,a=`<${t.tagName}`;return o&&Object.keys(o).forEach(t=>{let e=o[t];a+=` ${t}="${e}"`}),a+=">",a+=t.textContent||"",(t.children||[]).forEach(t=>{a+=e(t)}),a+=``};return e(this.getTableAST(t))}function B(t){let e=0,o=[],a=this.options,n=t?1.1.toLocaleString()[1]:".",i=C(a.exporting.useMultiLevelHeaders,!0),r=this.getDataRows(i),s=i?r.shift():null,l=r.shift(),h=function(t,e){let o=t.length;if(e.length!==o)return!1;for(;o--;)if(t[o]!==e[o])return!1;return!0},c=function(t,e,o,a){let i=C(a,""),r="highcharts-text"+(e?" "+e:"");return"number"==typeof i?(i=i.toString(),","===n&&(i=i.replace(".",n)),r="highcharts-number"):a||(r="highcharts-empty"),{tagName:t,attributes:o=S({class:r},o),textContent:i}};!1!==a.exporting.tableCaption&&o.push({tagName:"caption",attributes:{class:"highcharts-table-caption"},textContent:C(a.exporting.tableCaption,a.title.text?a.title.text:"Chart")});for(let t=0,o=r.length;te&&(e=r[t].length);o.push(function(t,e,o){let n=[],r=0,s=o||e&&e.length,l,d=0,p;if(i&&t&&e&&!h(t,e)){let o=[];for(;r1&&t.attributes&&(t.attributes.valign="top",t.attributes.rowspan=p),o.push(t)}n.push({tagName:"tr",children:o})}if(e){let t=[];for(r=0,s=e.length;rt.children[e].textContent,a=(t,e)=>(a,n)=>{let i,r;return i=o(e?a:n,t),r=o(e?n:a,t),""===i||""===r||isNaN(i)||isNaN(r)?i.toString().localeCompare(r):i-r};if(e&&t.options.exporting&&t.options.exporting.allowTableSorting){let o=e.querySelector("thead tr");o&&o.childNodes.forEach(o=>{let n=o.closest("table");o.addEventListener("click",function(){let i=[...e.querySelectorAll("tr:not(thead tr)")],r=[...o.parentNode.children];i.sort(a(r.indexOf(o),t.ascendingOrderInTable=!t.ascendingOrderInTable)).forEach(t=>{n.appendChild(t)}),r.forEach(t=>{["highcharts-sort-ascending","highcharts-sort-descending"].forEach(e=>{t.classList.contains(e)&&t.classList.remove(e)})}),o.classList.add(t.ascendingOrderInTable?"highcharts-sort-ascending":"highcharts-sort-descending")})})}}function P(){this.options&&this.options.exporting&&this.options.exporting.showTable&&!this.options.chart.forExport&&this.viewData()}function K(){this.dataTableDiv?.remove()}let W=s();W.dataURLtoBlob=W.dataURLtoBlob||u.dataURLtoBlob,W.downloadURL=W.downloadURL||u.downloadURL,({compose:function(t,e){let o=t.prototype;if(!o.getCSV){let a=x().exporting;v(t,"afterViewData",j),v(t,"render",P),v(t,"destroy",K),o.downloadCSV=H,o.downloadXLS=O,o.getCSV=R,o.getDataRows=N,o.getTable=V,o.getTableAST=B,o.hideData=F,o.toggleDataTable=I,o.viewData=U,a&&(S(a.menuItemDefinitions,{downloadCSV:{textKey:"downloadCSV",onclick:function(){this.downloadCSV()}},downloadXLS:{textKey:"downloadXLS",onclick:function(){this.downloadXLS()}},viewData:{textKey:"viewData",onclick:function(){k.call(this,this.toggleDataTable)}}}),a.buttons&&a.buttons.contextButton.menuItems&&a.buttons.contextButton.menuItems.push("separator","downloadCSV","downloadXLS","viewData")),b(f);let{arearange:n,gantt:i,map:r,mapbubble:s,treemap:l,xrange:h}=e.types;n&&(n.prototype.keyToAxis={low:"y",high:"y"}),i&&(i.prototype.exportKey="name",i.prototype.keyToAxis={start:"x",end:"x"}),r&&(r.prototype.exportKey="name"),s&&(s.prototype.exportKey="name"),l&&(l.prototype.exportKey="name"),h&&(h.prototype.keyToAxis={x2:"x"})}}}).compose(W.Chart,W.Series);let $=s();return i.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/export-data",["highcharts/highcharts"],function(t){return e(t,t.AST)}):"object"==typeof exports?exports["highcharts/modules/export-data"]=e(t._Highcharts,t._Highcharts.AST):t.Highcharts=e(t.Highcharts,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var o={660:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function n(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return o[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 o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};n.d(i,{default:()=>$});var r=n(944),s=n.n(r);let{isSafari:l,win:h,win:{document:c}}=s(),d=h.URL||h.webkitURL||h;function p(t){let e=t.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(e&&e.length>3&&h.atob&&h.ArrayBuffer&&h.Uint8Array&&h.Blob&&d.createObjectURL){let t=h.atob(e[3]),o=new h.ArrayBuffer(t.length),a=new h.Uint8Array(o);for(let e=0;e1e3)throw Error("Input too long");let n=/Edge\/\d+/.test(o.userAgent);if((l&&"string"==typeof t&&0===t.indexOf("data:application/pdf")||n||t.length>2e6)&&!(t=p(t)||""))throw Error("Failed to convert to blob");if(void 0!==a.download)a.href=t,a.download=e,c.body.appendChild(a),a.click(),c.body.removeChild(a);else try{if(!h.open(t,"chart"))throw Error("Failed to open window")}catch{h.location.href=t}}};var g=n(660),m=n.n(g);let f={exporting:{csv:{annotations:{itemDelimiter:"; ",join:!1},columnHeaderFormatter:null,dateFormat:"%Y-%m-%d %H:%M:%S",decimalPoint:null,itemDelimiter:null,lineDelimiter:"\n"},showTable:!1,useMultiLevelHeaders:!0,useRowspanHeaders:!0,showExportInProgress:!0},lang:{downloadCSV:"Download CSV",downloadXLS:"Download XLS",exportData:{annotationHeader:"Annotations",categoryHeader:"Category",categoryDatetimeHeader:"DateTime"},viewData:"View data table",hideData:"Hide data table",exportInProgress:"Exporting..."}},{getOptions:x,setOptions:b}=s(),{downloadURL:y}=u,{doc:w,win:T}=s(),{addEvent:v,defined:D,extend:S,find:L,fireEvent:E,isNumber:A,pick:C}=s();function k(t){let e=!!this.options.exporting?.showExportInProgress,o=T.requestAnimationFrame||setTimeout;o(()=>{e&&this.showLoading(this.options.lang.exportInProgress),o(()=>{try{t.call(this)}finally{e&&this.hideLoading()}})})}function H(){k.call(this,()=>{let t=this.getCSV(!0);y(M(t,"text/csv")||"data:text/csv,\uFEFF"+encodeURIComponent(t),this.getFilename()+".csv")})}function O(){k.call(this,()=>{let t='\x3c!--[if gte mso 9]>Ark1td{border:none;font-family: Calibri, sans-serif;} .number{mso-number-format:"0.00";} .text{ mso-number-format:"@";}'+this.getTable(!0)+"";y(M(t,"application/vnd.ms-excel")||"data:application/vnd.ms-excel;base64,"+T.btoa(unescape(encodeURIComponent(t))),this.getFilename()+".xls")})}function R(t){let e="",o=this.getDataRows(),a=this.options.exporting.csv,n=C(a.decimalPoint,","!==a.itemDelimiter&&t?1.1.toLocaleString()[1]:"."),i=C(a.itemDelimiter,","===n?";":","),r=a.lineDelimiter;return o.forEach((t,a)=>{let s="",l=t.length;for(;l--;)"string"==typeof(s=t[l])&&(s=`"${s}"`),"number"==typeof s&&"."!==n&&(s=s.toString().replace(".",n)),t[l]=s;t.length=o.length?o[0].length:0,e+=t.join(i),a1?o:e.name,topLevelColumnTitle:e.name}:e.name+(a>1?" ("+o+")":""):e.options.title&&e.options.title.text||(e.dateTime?u:p):p},m=function(t,e,o){let a={},n={};return e.forEach(function(e){let i=(t.keyToAxis&&t.keyToAxis[e]||e)+"Axis",r=A(o)?t.chart[i][o]:t[i];a[e]=r&&r.categories||[],n[e]=r&&r.dateTime}),{categoryMap:a,dateTimeValueAxisMap:n}},f=function(t,e){let o=t.pointArrayMap||["y"];return t.data.some(t=>void 0!==t.y&&t.name)&&e&&!e.categories&&"name"!==t.exportKey?["x",...o]:o},x=[],b,y,w,T=0,v,S;for(v in this.series.forEach(function(e){let o=e.options.keys,l=e.xAxis,d=o||f(e,l),p=d.length,u=!e.requireSorting&&{},b=r.indexOf(l),y=m(e,d),v,D;if(!1!==e.options.includeInDataExport&&!e.options.isInternal&&!1!==e.visible){for(L(x,function(t){return t[0]===b})||x.push([b,T]),D=0;D{if(!t.tagName||"#text"===t.tagName)return t.textContent||"";let o=t.attributes,a=`<${t.tagName}`;return o&&Object.keys(o).forEach(t=>{let e=o[t];a+=` ${t}="${e}"`}),a+=">",a+=t.textContent||"",(t.children||[]).forEach(t=>{a+=e(t)}),a+=``};return e(this.getTableAST(t))}function B(t){let e=0,o=[],a=this.options,n=t?1.1.toLocaleString()[1]:".",i=C(a.exporting.useMultiLevelHeaders,!0),r=this.getDataRows(i),s=i?r.shift():null,l=r.shift(),h=function(t,e){let o=t.length;if(e.length!==o)return!1;for(;o--;)if(t[o]!==e[o])return!1;return!0},c=function(t,e,o,a){let i=C(a,""),r="highcharts-text"+(e?" "+e:"");return"number"==typeof i?(i=i.toString(),","===n&&(i=i.replace(".",n)),r="highcharts-number"):a||(r="highcharts-empty"),{tagName:t,attributes:o=S({class:r},o),textContent:i}};!1!==a.exporting.tableCaption&&o.push({tagName:"caption",attributes:{class:"highcharts-table-caption"},textContent:C(a.exporting.tableCaption,a.title.text?a.title.text:"Chart")});for(let t=0,o=r.length;te&&(e=r[t].length);o.push(function(t,e,o){let n=[],r=0,s=o||e&&e.length,l,d=0,p;if(i&&t&&e&&!h(t,e)){let o=[];for(;r1&&t.attributes&&(t.attributes.valign="top",t.attributes.rowspan=p),o.push(t)}n.push({tagName:"tr",children:o})}if(e){let t=[];for(r=0,s=e.length;rt.children[e].textContent,a=(t,e)=>(a,n)=>{let i,r;return i=o(e?a:n,t),r=o(e?n:a,t),""===i||""===r||isNaN(i)||isNaN(r)?i.toString().localeCompare(r):i-r};if(e&&t.options.exporting&&t.options.exporting.allowTableSorting){let o=e.querySelector("thead tr");o&&o.childNodes.forEach(o=>{let n=o.closest("table");o.addEventListener("click",function(){let i=[...e.querySelectorAll("tr:not(thead tr)")],r=[...o.parentNode.children];i.sort(a(r.indexOf(o),t.ascendingOrderInTable=!t.ascendingOrderInTable)).forEach(t=>{n.appendChild(t)}),r.forEach(t=>{["highcharts-sort-ascending","highcharts-sort-descending"].forEach(e=>{t.classList.contains(e)&&t.classList.remove(e)})}),o.classList.add(t.ascendingOrderInTable?"highcharts-sort-ascending":"highcharts-sort-descending")})})}}function P(){this.options&&this.options.exporting&&this.options.exporting.showTable&&!this.options.chart.forExport&&this.viewData()}function K(){this.dataTableDiv?.remove()}let W=s();W.dataURLtoBlob=W.dataURLtoBlob||u.dataURLtoBlob,W.downloadURL=W.downloadURL||u.downloadURL,({compose:function(t,e){let o=t.prototype;if(!o.getCSV){let a=x().exporting;v(t,"afterViewData",j),v(t,"render",P),v(t,"destroy",K),o.downloadCSV=H,o.downloadXLS=O,o.getCSV=R,o.getDataRows=N,o.getTable=V,o.getTableAST=B,o.hideData=F,o.toggleDataTable=I,o.viewData=U,a&&(S(a.menuItemDefinitions,{downloadCSV:{textKey:"downloadCSV",onclick:function(){this.downloadCSV()}},downloadXLS:{textKey:"downloadXLS",onclick:function(){this.downloadXLS()}},viewData:{textKey:"viewData",onclick:function(){k.call(this,this.toggleDataTable)}}}),a.buttons&&a.buttons.contextButton.menuItems&&a.buttons.contextButton.menuItems.push("separator","downloadCSV","downloadXLS","viewData")),b(f);let{arearange:n,gantt:i,map:r,mapbubble:s,treemap:l,xrange:h}=e.types;n&&(n.prototype.keyToAxis={low:"y",high:"y"}),i&&(i.prototype.exportKey="name",i.prototype.keyToAxis={start:"x",end:"x"}),r&&(r.prototype.exportKey="name"),s&&(s.prototype.exportKey="name"),l&&(l.prototype.exportKey="name"),h&&(h.prototype.keyToAxis={x2:"x"})}}}).compose(W.Chart,W.Series);let $=s();return i.default})()); \ No newline at end of file diff --git a/modules/export-data.src.js b/modules/export-data.src.js index 087ac5007a..bf23dd59b3 100644 --- a/modules/export-data.src.js +++ b/modules/export-data.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/export-data * @requires highcharts * @requires highcharts/modules/exporting diff --git a/modules/exporting.js b/modules/exporting.js index dedddb048a..0f00085edc 100644 --- a/modules/exporting.js +++ b/modules/exporting.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/exporting * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart):"function"==typeof define&&define.amd?define("highcharts/modules/exporting",["highcharts/highcharts"],function(e){return t(e,e.AST,e.Chart)}):"object"==typeof exports?exports["highcharts/modules/exporting"]=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart):e.Highcharts=t(e.Highcharts,e.Highcharts.AST,e.Highcharts.Chart)}("undefined"==typeof window?this:window,(e,t,n)=>(()=>{"use strict";var i,o,r,s={660:e=>{e.exports=t},960:e=>{e.exports=n},944:t=>{t.exports=e}},l={};function a(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return s[e](n,n.exports,a),n.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var c={};a.d(c,{default:()=>J});var p=a(944),h=/*#__PURE__*/a.n(p),u=a(660),d=/*#__PURE__*/a.n(u);a(960),function(e){e.compose=function(e){return e.navigation||(e.navigation=new t(e)),e};class t{constructor(e){this.updates=[],this.chart=e}addUpdate(e){this.chart.navigation.updates.push(e)}update(e,t){this.updates.forEach(n=>{n.call(this.chart,e,t)})}}e.Additions=t}(i||(i={}));let g=i,{isTouchDevice:f}=h(),m={exporting:{allowTableSorting:!0,type:"image/png",url:"https://export-svg.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadSVG"],y:-5}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:5,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{fill:"#ffffff",padding:5,stroke:"none","stroke-linecap":"round"}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:f?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}};!function(e){let t=[];function n(e,t,n,i){return[["M",e,t+2.5],["L",e+n,t+2.5],["M",e,t+i/2+.5],["L",e+n,t+i/2+.5],["M",e,t+i-1.5],["L",e+n,t+i-1.5]]}function i(e,t,n,i){let o=i/3-2;return[].concat(this.circle(n-o,t,o,o),this.circle(n-o,t+o+4,o,o),this.circle(n-o,t+2*(o+4),o,o))}e.compose=function(e){if(-1===t.indexOf(e)){t.push(e);let o=e.prototype.symbols;o.menu=n,o.menuball=i.bind(o)}}}(o||(o={}));let x=o,{composed:y}=h(),{addEvent:b,fireEvent:v,pushUnique:w}=h();function S(){this.fullscreen=new E(this)}class E{static compose(e){w(y,"Fullscreen")&&b(e,"beforeRender",S)}constructor(e){this.chart=e,this.isOpen=!1;let t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;v(t,"fullscreenClose",null,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;v(t,"fullscreenOpen",null,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=b(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),i=b(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),i()};let o=t.renderTo[e.browserProps.requestFullscreen]();o&&o.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exportDivElements,n=e.options.exporting,i=n&&n.buttons&&n.buttons.contextButton.menuItems,o=e.options.lang;if(n&&n.menuItemDefinitions&&o&&o.exitFullscreen&&o.viewFullscreen&&i&&t){let e=t[i.indexOf("viewFullscreen")];e&&d().setElementHTML(e,this.isOpen?o.exitFullscreen:n.menuItemDefinitions.viewFullscreen.text||o.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}let{win:C}=h(),{discardElement:T,objectEach:O}=h(),F={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},n=new XMLHttpRequest;function i(t,n){e.error&&e.error(t,n)}if(!e.url)return!1;n.open((e.type||"get").toUpperCase(),e.url,!0),e.headers&&e.headers["Content-Type"]||n.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),O(e.headers,function(e,t){n.setRequestHeader(t,e)}),e.responseType&&(n.responseType=e.responseType),n.onreadystatechange=function(){let t;if(4===n.readyState){if(200===n.status){if("blob"!==e.responseType&&(t=n.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(n,e)}return e.success&&e.success(t,n)}i(n,n.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),n.send(e.data)},getJSON:function(e,t){F.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(e,t,n){let i=new C.FormData;O(t,function(e,t){i.append(t,e)}),i.append("b64","true");let{filename:o,type:r}=t;return C.fetch(e,{method:"POST",body:i,...n}).then(e=>{e.ok&&e.text().then(e=>{let t=document.createElement("a");t.href=`data:${r};base64,${e}`,t.download=o,t.click(),T(t)})})}},{defaultOptions:P}=h(),{doc:M,SVG_NS:k,win:H}=h(),{addEvent:N,css:D,createElement:G,discardElement:I,extend:W,find:R,fireEvent:j,isObject:q,merge:V,objectEach:$,pick:z,removeEvent:L,uniqueKey:A}=h();!function(e){let t;let n=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\d+$/],i=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];e.inlineAllowlist=[];let o=["clipPath","defs","desc"];function r(e){let t,n;let i=this,o=i.renderer,r=V(i.options.navigation.buttonOptions,e),s=r.onclick,l=r.menuItems,a=r.symbolSize||12;if(i.btnCount||(i.btnCount=0),i.exportDivElements||(i.exportDivElements=[],i.exportSVGElements=[]),!1===r.enabled||!r.theme)return;let c=i.styledMode?{}:r.theme;s?n=function(e){e&&e.stopPropagation(),s.call(i,e)}:l&&(n=function(e){e&&e.stopPropagation(),i.contextMenu(p.menuClassName,l,p.translateX||0,p.translateY||0,p.width||0,p.height||0,p),p.setState(2)}),r.text&&r.symbol?c.paddingLeft=z(c.paddingLeft,30):r.text||W(c,{width:r.width,height:r.height,padding:0});let p=o.button(r.text,0,0,n,c,void 0,void 0,void 0,void 0,r.useHTML).addClass(e.className).attr({title:z(i.options.lang[r._titleKey||r.titleKey],"")});p.menuClassName=e.menuClassName||"highcharts-menu-"+i.btnCount++,r.symbol&&(t=o.symbol(r.symbol,Math.round((r.symbolX||0)-a/2),Math.round((r.symbolY||0)-a/2),a,a,{width:a,height:a}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(p),i.styledMode||t.attr({stroke:r.symbolStroke,fill:r.symbolFill,"stroke-width":r.symbolStrokeWidth||1})),p.add(i.exportingGroup).align(W(r,{width:p.width,x:z(r.x,i.buttonOffset)}),!0,"spacingBox"),i.buttonOffset+=((p.width||0)+r.buttonSpacing)*("right"===r.align?-1:1),i.exportSVGElements.push(p,t)}function s(){if(!this.printReverseInfo)return;let{childNodes:e,origDisplay:n,resetParams:i}=this.printReverseInfo;this.moveContainers(this.renderTo),[].forEach.call(e,function(e,t){1===e.nodeType&&(e.style.display=n[t]||"")}),this.isPrinting=!1,i&&this.setSize.apply(this,i),delete this.printReverseInfo,t=void 0,j(this,"afterPrint")}function l(){let e=M.body,t=this.options.exporting.printMaxWidth,n={childNodes:e.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,this.pointer?.reset(void 0,0),j(this,"beforePrint"),t&&this.chartWidth>t&&(n.resetParams=[this.options.chart.width,void 0,!1],this.setSize(t,void 0,!1)),[].forEach.call(n.childNodes,function(e,t){1===e.nodeType&&(n.origDisplay[t]=e.style.display,e.style.display="none")}),this.moveContainers(e),this.printReverseInfo=n}function a(e){e.renderExporting(),N(e,"redraw",e.renderExporting),N(e,"destroy",e.destroyExport)}function c(e,t,n,i,o,r,s){let l=this,a=l.options.navigation,c=l.chartWidth,p=l.chartHeight,u="cache-"+e,g=Math.max(o,r),f,m=l[u];m||(l.exportContextMenu=l[u]=m=G("div",{className:e},{position:"absolute",zIndex:1e3,padding:g+"px",pointerEvents:"auto",...l.renderer.style},l.scrollablePlotArea?.fixedDiv||l.container),f=G("ul",{className:"highcharts-menu"},l.styledMode?{}:{listStyle:"none",margin:0,padding:0},m),l.styledMode||D(f,W({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},a.menuStyle)),m.hideMenu=function(){D(m,{display:"none"}),s&&s.setState(0),l.openMenu=!1,D(l.renderTo,{overflow:"hidden"}),D(l.container,{overflow:"hidden"}),h().clearTimeout(m.hideTimer),j(l,"exportMenuHidden")},l.exportEvents.push(N(m,"mouseleave",function(){m.hideTimer=H.setTimeout(m.hideMenu,500)}),N(m,"mouseenter",function(){h().clearTimeout(m.hideTimer)}),N(M,"mouseup",function(t){l.pointer?.inClass(t.target,e)||m.hideMenu()}),N(m,"click",function(){l.openMenu&&m.hideMenu()})),t.forEach(function(e){if("string"==typeof e&&(e=l.options.exporting.menuItemDefinitions[e]),q(e,!0)){let t;e.separator?t=G("hr",void 0,void 0,f):("viewData"===e.textKey&&l.isDataTableVisible&&(e.textKey="hideData"),t=G("li",{className:"highcharts-menu-item",onclick:function(t){t&&t.stopPropagation(),m.hideMenu(),"string"!=typeof e&&e.onclick&&e.onclick.apply(l,arguments)}},void 0,f),d().setElementHTML(t,e.text||l.options.lang[e.textKey]),l.styledMode||(t.onmouseover=function(){D(this,a.menuItemHoverStyle)},t.onmouseout=function(){D(this,a.menuItemStyle)},D(t,W({cursor:"pointer"},a.menuItemStyle||{})))),l.exportDivElements.push(t)}}),l.exportDivElements.push(f,m),l.exportMenuWidth=m.offsetWidth,l.exportMenuHeight=m.offsetHeight);let x={display:"block"};n+(l.exportMenuWidth||0)>c?x.right=c-n-o-g+"px":x.left=n-g+"px",i+r+(l.exportMenuHeight||0)>p&&s.alignOptions?.verticalAlign!=="top"?x.bottom=p-i-g+"px":x.top=i+r-g+"px",D(m,x),D(l.renderTo,{overflow:""}),D(l.container,{overflow:""}),l.openMenu=!0,j(l,"exportMenuShown")}function p(e){let t;let n=e?e.target:this,i=n.exportSVGElements,o=n.exportDivElements,r=n.exportEvents;i&&(i.forEach((e,o)=>{e&&(e.onclick=e.ontouchstart=null,n[t="cache-"+e.menuClassName]&&delete n[t],i[o]=e.destroy())}),i.length=0),n.exportingGroup&&(n.exportingGroup.destroy(),delete n.exportingGroup),o&&(o.forEach(function(e,t){e&&(h().clearTimeout(e.hideTimer),L(e,"mouseleave"),o[t]=e.onmouseout=e.onmouseover=e.ontouchstart=e.onclick=null,I(e))}),o.length=0),r&&(r.forEach(function(e){e()}),r.length=0)}function u(e,t){let n=this.getSVGForExport(e,t);e=V(this.options.exporting,e),F.post(e.url,{filename:e.filename?e.filename.replace(/\//g,"-"):this.getFilename(),type:e.type,width:e.width,scale:e.scale,svg:n},e.fetchOptions)}function f(e){return e&&this.inlineStyles(),this.container.innerHTML}function y(){let e=this.userOptions.title&&this.userOptions.title.text,t=this.options.exporting.filename;return t?t.replace(/\//g,"-"):("string"==typeof e&&(t=e.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!t||t.length<5)&&(t="chart"),t)}function b(e){let t,n,i=V(this.options,e);i.plotOptions=V(this.userOptions.plotOptions,e&&e.plotOptions),i.time=V(this.userOptions.time,e&&e.time);let o=G("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},M.body),r=this.renderTo.style.width,s=this.renderTo.style.height,l=i.exporting.sourceWidth||i.chart.width||/px$/.test(r)&&parseInt(r,10)||(i.isGantt?800:600),a=i.exporting.sourceHeight||i.chart.height||/px$/.test(s)&&parseInt(s,10)||400;W(i.chart,{animation:!1,renderTo:o,forExport:!0,renderer:"SVGRenderer",width:l,height:a}),i.exporting.enabled=!1,delete i.data,i.series=[],this.series.forEach(function(e){(n=V(e.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:e.visible})).isInternal||i.series.push(n)});let c={};this.axes.forEach(function(e){e.userOptions.internalKey||(e.userOptions.internalKey=A()),e.options.isInternal||(c[e.coll]||(c[e.coll]=!0,i[e.coll]=[]),i[e.coll].push(V(e.userOptions,{visible:e.visible,type:e.type,uniqueNames:e.uniqueNames})))}),i.colorAxis=this.userOptions.colorAxis;let p=new this.constructor(i,this.callback);return e&&["xAxis","yAxis","series"].forEach(function(t){let n={};e[t]&&(n[t]=e[t],p.update(n))}),this.axes.forEach(function(e){let t=R(p.axes,function(t){return t.options.internalKey===e.userOptions.internalKey}),n=e.getExtremes(),i=n.userMin,o=n.userMax;t&&(void 0!==i&&i!==t.min||void 0!==o&&o!==t.max)&&t.setExtremes(i,o,!0,!1)}),t=p.getChartHTML(this.styledMode||i.exporting?.applyStyleSheets),j(this,"getSVG",{chartCopy:p}),t=this.sanitizeSVG(t,i),i=null,p.destroy(),I(o),t}function v(e,t){let n=this.options.exporting;return this.getSVG(V({chart:{borderRadius:0}},n.chartOptions,t,{exporting:{sourceWidth:e&&e.sourceWidth||n.sourceWidth,sourceHeight:e&&e.sourceHeight||n.sourceHeight}}))}function w(){let t;let r=e.inlineAllowlist,s={},l=M.createElement("iframe");D(l,{width:"1px",height:"1px",visibility:"hidden"}),M.body.appendChild(l);let a=l.contentWindow&&l.contentWindow.document;a&&a.body.appendChild(a.createElementNS(k,"svg")),function e(l){let c,p,u,d,g,f;let m={};if(a&&1===l.nodeType&&-1===o.indexOf(l.nodeName)){if(c=H.getComputedStyle(l,null),p="svg"===l.nodeName?{}:H.getComputedStyle(l.parentNode,null),!s[l.nodeName]){t=a.getElementsByTagName("svg")[0],u=a.createElementNS(l.namespaceURI,l.nodeName),t.appendChild(u);let e=H.getComputedStyle(u,null),n={};for(let t in e)t.length<1e3&&"string"==typeof e[t]&&!/^\d+$/.test(t)&&(n[t]=e[t]);s[l.nodeName]=n,"text"===l.nodeName&&delete s.text.fill,t.removeChild(u)}for(let e in c)(h().isFirefox||h().isMS||h().isSafari||Object.hasOwnProperty.call(c,e))&&function(e,t){if(d=g=!1,r.length){for(f=r.length;f--&&!g;)g=r[f].test(t);d=!g}for("transform"===t&&"none"===e&&(d=!0),f=n.length;f--&&!d;){if(t.length>1e3)throw Error("Input too long");d=n[f].test(t)||"function"==typeof e}!d&&(p[t]!==e||"svg"===l.nodeName)&&s[l.nodeName][t]!==e&&(i&&-1===i.indexOf(t)?m[t]=e:e&&l.setAttribute(t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),e))}(c[e],e);if(D(l,m),"svg"===l.nodeName&&l.setAttribute("stroke-width","1px"),"text"===l.nodeName)return;[].forEach.call(l.children||l.childNodes,e)}}(this.container.querySelector("svg")),t.parentNode.removeChild(t),l.parentNode.removeChild(l)}function S(e){let{scrollablePlotArea:t}=this;(t?[t.fixedDiv,t.scrollingContainer]:[this.container]).forEach(function(t){e.appendChild(t)})}function C(){let e=this,t=(t,n,i)=>{e.isDirtyExporting=!0,V(!0,e.options[t],n),z(i,!0)&&e.redraw()};e.exporting={update:function(e,n){t("exporting",e,n)}},g.compose(e).navigation.addUpdate((e,n)=>{t("navigation",e,n)})}function T({alignTo:e,key:t,textPxLength:n}){let i=this.options.exporting,{align:o,buttonSpacing:r=0,verticalAlign:s,width:l=0}=V(this.options.navigation?.buttonOptions,i?.buttons?.contextButton),a=e.width-n,c=l+r;(i?.enabled??!0)&&"title"===t&&"right"===o&&"top"===s&&a<2*c&&(a{H.focus(),H.print(),h().isSafari||setTimeout(()=>{e.afterPrint()},1e3)},1))}function K(){let e=this,t=e.options.exporting,n=t.buttons,i=e.isDirtyExporting||!e.exportSVGElements;e.buttonOffset=0,e.isDirtyExporting&&e.destroyExport(),i&&!1!==t.enabled&&(e.exportEvents=[],e.exportingGroup=e.exportingGroup||e.renderer.g("exporting-group").attr({zIndex:3}).add(),$(n,function(t){e.addButton(t)}),e.isDirtyExporting=!1)}function B(e,t){let n=e.indexOf("")+6,i=e.substr(n);return e=e.substr(0,n),t&&t.exporting&&t.exporting.allowHTML&&i&&(i=''+i.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",e=e.replace("",i+"")),e=e.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery\d+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/(()=>{"use strict";var i,o,r,s={660:e=>{e.exports=t},960:e=>{e.exports=n},944:t=>{t.exports=e}},l={};function a(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return s[e](n,n.exports,a),n.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var c={};a.d(c,{default:()=>J});var p=a(944),h=a.n(p),u=a(660),d=a.n(u);a(960),function(e){e.compose=function(e){return e.navigation||(e.navigation=new t(e)),e};class t{constructor(e){this.updates=[],this.chart=e}addUpdate(e){this.chart.navigation.updates.push(e)}update(e,t){this.updates.forEach(n=>{n.call(this.chart,e,t)})}}e.Additions=t}(i||(i={}));let g=i,{isTouchDevice:f}=h(),m={exporting:{allowTableSorting:!0,type:"image/png",url:"https://export-svg.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadSVG"],y:-5}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:5,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{fill:"#ffffff",padding:5,stroke:"none","stroke-linecap":"round"}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:f?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}};!function(e){let t=[];function n(e,t,n,i){return[["M",e,t+2.5],["L",e+n,t+2.5],["M",e,t+i/2+.5],["L",e+n,t+i/2+.5],["M",e,t+i-1.5],["L",e+n,t+i-1.5]]}function i(e,t,n,i){let o=i/3-2;return[].concat(this.circle(n-o,t,o,o),this.circle(n-o,t+o+4,o,o),this.circle(n-o,t+2*(o+4),o,o))}e.compose=function(e){if(-1===t.indexOf(e)){t.push(e);let o=e.prototype.symbols;o.menu=n,o.menuball=i.bind(o)}}}(o||(o={}));let x=o,{composed:y}=h(),{addEvent:b,fireEvent:v,pushUnique:w}=h();function S(){this.fullscreen=new E(this)}class E{static compose(e){w(y,"Fullscreen")&&b(e,"beforeRender",S)}constructor(e){this.chart=e,this.isOpen=!1;let t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;v(t,"fullscreenClose",null,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;v(t,"fullscreenOpen",null,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=b(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),i=b(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),i()};let o=t.renderTo[e.browserProps.requestFullscreen]();o&&o.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exportDivElements,n=e.options.exporting,i=n&&n.buttons&&n.buttons.contextButton.menuItems,o=e.options.lang;if(n&&n.menuItemDefinitions&&o&&o.exitFullscreen&&o.viewFullscreen&&i&&t){let e=t[i.indexOf("viewFullscreen")];e&&d().setElementHTML(e,this.isOpen?o.exitFullscreen:n.menuItemDefinitions.viewFullscreen.text||o.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}let{win:C}=h(),{discardElement:T,objectEach:O}=h(),F={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},n=new XMLHttpRequest;function i(t,n){e.error&&e.error(t,n)}if(!e.url)return!1;n.open((e.type||"get").toUpperCase(),e.url,!0),e.headers&&e.headers["Content-Type"]||n.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),O(e.headers,function(e,t){n.setRequestHeader(t,e)}),e.responseType&&(n.responseType=e.responseType),n.onreadystatechange=function(){let t;if(4===n.readyState){if(200===n.status){if("blob"!==e.responseType&&(t=n.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(n,e)}return e.success&&e.success(t,n)}i(n,n.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),n.send(e.data)},getJSON:function(e,t){F.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(e,t,n){let i=new C.FormData;O(t,function(e,t){i.append(t,e)}),i.append("b64","true");let{filename:o,type:r}=t;return C.fetch(e,{method:"POST",body:i,...n}).then(e=>{e.ok&&e.text().then(e=>{let t=document.createElement("a");t.href=`data:${r};base64,${e}`,t.download=o,t.click(),T(t)})})}},{defaultOptions:P}=h(),{doc:M,SVG_NS:k,win:H}=h(),{addEvent:N,css:D,createElement:G,discardElement:I,extend:W,find:R,fireEvent:j,isObject:q,merge:V,objectEach:$,pick:z,removeEvent:L,uniqueKey:A}=h();!function(e){let t;let n=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\d+$/],i=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];e.inlineAllowlist=[];let o=["clipPath","defs","desc"];function r(e){let t,n;let i=this,o=i.renderer,r=V(i.options.navigation.buttonOptions,e),s=r.onclick,l=r.menuItems,a=r.symbolSize||12;if(i.btnCount||(i.btnCount=0),i.exportDivElements||(i.exportDivElements=[],i.exportSVGElements=[]),!1===r.enabled||!r.theme)return;let c=i.styledMode?{}:r.theme;s?n=function(e){e&&e.stopPropagation(),s.call(i,e)}:l&&(n=function(e){e&&e.stopPropagation(),i.contextMenu(p.menuClassName,l,p.translateX||0,p.translateY||0,p.width||0,p.height||0,p),p.setState(2)}),r.text&&r.symbol?c.paddingLeft=z(c.paddingLeft,30):r.text||W(c,{width:r.width,height:r.height,padding:0});let p=o.button(r.text,0,0,n,c,void 0,void 0,void 0,void 0,r.useHTML).addClass(e.className).attr({title:z(i.options.lang[r._titleKey||r.titleKey],"")});p.menuClassName=e.menuClassName||"highcharts-menu-"+i.btnCount++,r.symbol&&(t=o.symbol(r.symbol,Math.round((r.symbolX||0)-a/2),Math.round((r.symbolY||0)-a/2),a,a,{width:a,height:a}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(p),i.styledMode||t.attr({stroke:r.symbolStroke,fill:r.symbolFill,"stroke-width":r.symbolStrokeWidth||1})),p.add(i.exportingGroup).align(W(r,{width:p.width,x:z(r.x,i.buttonOffset)}),!0,"spacingBox"),i.buttonOffset+=((p.width||0)+r.buttonSpacing)*("right"===r.align?-1:1),i.exportSVGElements.push(p,t)}function s(){if(!this.printReverseInfo)return;let{childNodes:e,origDisplay:n,resetParams:i}=this.printReverseInfo;this.moveContainers(this.renderTo),[].forEach.call(e,function(e,t){1===e.nodeType&&(e.style.display=n[t]||"")}),this.isPrinting=!1,i&&this.setSize.apply(this,i),delete this.printReverseInfo,t=void 0,j(this,"afterPrint")}function l(){let e=M.body,t=this.options.exporting.printMaxWidth,n={childNodes:e.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,this.pointer?.reset(void 0,0),j(this,"beforePrint"),t&&this.chartWidth>t&&(n.resetParams=[this.options.chart.width,void 0,!1],this.setSize(t,void 0,!1)),[].forEach.call(n.childNodes,function(e,t){1===e.nodeType&&(n.origDisplay[t]=e.style.display,e.style.display="none")}),this.moveContainers(e),this.printReverseInfo=n}function a(e){e.renderExporting(),N(e,"redraw",e.renderExporting),N(e,"destroy",e.destroyExport)}function c(e,t,n,i,o,r,s){let l=this,a=l.options.navigation,c=l.chartWidth,p=l.chartHeight,u="cache-"+e,g=Math.max(o,r),f,m=l[u];m||(l.exportContextMenu=l[u]=m=G("div",{className:e},{position:"absolute",zIndex:1e3,padding:g+"px",pointerEvents:"auto",...l.renderer.style},l.scrollablePlotArea?.fixedDiv||l.container),f=G("ul",{className:"highcharts-menu"},l.styledMode?{}:{listStyle:"none",margin:0,padding:0},m),l.styledMode||D(f,W({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},a.menuStyle)),m.hideMenu=function(){D(m,{display:"none"}),s&&s.setState(0),l.openMenu=!1,D(l.renderTo,{overflow:"hidden"}),D(l.container,{overflow:"hidden"}),h().clearTimeout(m.hideTimer),j(l,"exportMenuHidden")},l.exportEvents.push(N(m,"mouseleave",function(){m.hideTimer=H.setTimeout(m.hideMenu,500)}),N(m,"mouseenter",function(){h().clearTimeout(m.hideTimer)}),N(M,"mouseup",function(t){l.pointer?.inClass(t.target,e)||m.hideMenu()}),N(m,"click",function(){l.openMenu&&m.hideMenu()})),t.forEach(function(e){if("string"==typeof e&&(e=l.options.exporting.menuItemDefinitions[e]),q(e,!0)){let t;e.separator?t=G("hr",void 0,void 0,f):("viewData"===e.textKey&&l.isDataTableVisible&&(e.textKey="hideData"),t=G("li",{className:"highcharts-menu-item",onclick:function(t){t&&t.stopPropagation(),m.hideMenu(),"string"!=typeof e&&e.onclick&&e.onclick.apply(l,arguments)}},void 0,f),d().setElementHTML(t,e.text||l.options.lang[e.textKey]),l.styledMode||(t.onmouseover=function(){D(this,a.menuItemHoverStyle)},t.onmouseout=function(){D(this,a.menuItemStyle)},D(t,W({cursor:"pointer"},a.menuItemStyle||{})))),l.exportDivElements.push(t)}}),l.exportDivElements.push(f,m),l.exportMenuWidth=m.offsetWidth,l.exportMenuHeight=m.offsetHeight);let x={display:"block"};n+(l.exportMenuWidth||0)>c?x.right=c-n-o-g+"px":x.left=n-g+"px",i+r+(l.exportMenuHeight||0)>p&&s.alignOptions?.verticalAlign!=="top"?x.bottom=p-i-g+"px":x.top=i+r-g+"px",D(m,x),D(l.renderTo,{overflow:""}),D(l.container,{overflow:""}),l.openMenu=!0,j(l,"exportMenuShown")}function p(e){let t;let n=e?e.target:this,i=n.exportSVGElements,o=n.exportDivElements,r=n.exportEvents;i&&(i.forEach((e,o)=>{e&&(e.onclick=e.ontouchstart=null,n[t="cache-"+e.menuClassName]&&delete n[t],i[o]=e.destroy())}),i.length=0),n.exportingGroup&&(n.exportingGroup.destroy(),delete n.exportingGroup),o&&(o.forEach(function(e,t){e&&(h().clearTimeout(e.hideTimer),L(e,"mouseleave"),o[t]=e.onmouseout=e.onmouseover=e.ontouchstart=e.onclick=null,I(e))}),o.length=0),r&&(r.forEach(function(e){e()}),r.length=0)}function u(e,t){let n=this.getSVGForExport(e,t);e=V(this.options.exporting,e),F.post(e.url,{filename:e.filename?e.filename.replace(/\//g,"-"):this.getFilename(),type:e.type,width:e.width,scale:e.scale,svg:n},e.fetchOptions)}function f(e){return e&&this.inlineStyles(),this.container.innerHTML}function y(){let e=this.userOptions.title&&this.userOptions.title.text,t=this.options.exporting.filename;return t?t.replace(/\//g,"-"):("string"==typeof e&&(t=e.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!t||t.length<5)&&(t="chart"),t)}function b(e){let t,n,i=V(this.options,e);i.plotOptions=V(this.userOptions.plotOptions,e&&e.plotOptions),i.time=V(this.userOptions.time,e&&e.time);let o=G("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},M.body),r=this.renderTo.style.width,s=this.renderTo.style.height,l=i.exporting.sourceWidth||i.chart.width||/px$/.test(r)&&parseInt(r,10)||(i.isGantt?800:600),a=i.exporting.sourceHeight||i.chart.height||/px$/.test(s)&&parseInt(s,10)||400;W(i.chart,{animation:!1,renderTo:o,forExport:!0,renderer:"SVGRenderer",width:l,height:a}),i.exporting.enabled=!1,delete i.data,i.series=[],this.series.forEach(function(e){(n=V(e.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:e.visible})).isInternal||i.series.push(n)});let c={};this.axes.forEach(function(e){e.userOptions.internalKey||(e.userOptions.internalKey=A()),e.options.isInternal||(c[e.coll]||(c[e.coll]=!0,i[e.coll]=[]),i[e.coll].push(V(e.userOptions,{visible:e.visible,type:e.type,uniqueNames:e.uniqueNames})))}),i.colorAxis=this.userOptions.colorAxis;let p=new this.constructor(i,this.callback);return e&&["xAxis","yAxis","series"].forEach(function(t){let n={};e[t]&&(n[t]=e[t],p.update(n))}),this.axes.forEach(function(e){let t=R(p.axes,function(t){return t.options.internalKey===e.userOptions.internalKey}),n=e.getExtremes(),i=n.userMin,o=n.userMax;t&&(void 0!==i&&i!==t.min||void 0!==o&&o!==t.max)&&t.setExtremes(i,o,!0,!1)}),t=p.getChartHTML(this.styledMode||i.exporting?.applyStyleSheets),j(this,"getSVG",{chartCopy:p}),t=this.sanitizeSVG(t,i),i=null,p.destroy(),I(o),t}function v(e,t){let n=this.options.exporting;return this.getSVG(V({chart:{borderRadius:0}},n.chartOptions,t,{exporting:{sourceWidth:e&&e.sourceWidth||n.sourceWidth,sourceHeight:e&&e.sourceHeight||n.sourceHeight}}))}function w(){let t;let r=e.inlineAllowlist,s={},l=M.createElement("iframe");D(l,{width:"1px",height:"1px",visibility:"hidden"}),M.body.appendChild(l);let a=l.contentWindow&&l.contentWindow.document;a&&a.body.appendChild(a.createElementNS(k,"svg")),function e(l){let c,p,u,d,g,f;let m={};if(a&&1===l.nodeType&&-1===o.indexOf(l.nodeName)){if(c=H.getComputedStyle(l,null),p="svg"===l.nodeName?{}:H.getComputedStyle(l.parentNode,null),!s[l.nodeName]){t=a.getElementsByTagName("svg")[0],u=a.createElementNS(l.namespaceURI,l.nodeName),t.appendChild(u);let e=H.getComputedStyle(u,null),n={};for(let t in e)t.length<1e3&&"string"==typeof e[t]&&!/^\d+$/.test(t)&&(n[t]=e[t]);s[l.nodeName]=n,"text"===l.nodeName&&delete s.text.fill,t.removeChild(u)}for(let e in c)(h().isFirefox||h().isMS||h().isSafari||Object.hasOwnProperty.call(c,e))&&function(e,t){if(d=g=!1,r.length){for(f=r.length;f--&&!g;)g=r[f].test(t);d=!g}for("transform"===t&&"none"===e&&(d=!0),f=n.length;f--&&!d;){if(t.length>1e3)throw Error("Input too long");d=n[f].test(t)||"function"==typeof e}!d&&(p[t]!==e||"svg"===l.nodeName)&&s[l.nodeName][t]!==e&&(i&&-1===i.indexOf(t)?m[t]=e:e&&l.setAttribute(t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),e))}(c[e],e);if(D(l,m),"svg"===l.nodeName&&l.setAttribute("stroke-width","1px"),"text"===l.nodeName)return;[].forEach.call(l.children||l.childNodes,e)}}(this.container.querySelector("svg")),t.parentNode.removeChild(t),l.parentNode.removeChild(l)}function S(e){let{scrollablePlotArea:t}=this;(t?[t.fixedDiv,t.scrollingContainer]:[this.container]).forEach(function(t){e.appendChild(t)})}function C(){let e=this,t=(t,n,i)=>{e.isDirtyExporting=!0,V(!0,e.options[t],n),z(i,!0)&&e.redraw()};e.exporting={update:function(e,n){t("exporting",e,n)}},g.compose(e).navigation.addUpdate((e,n)=>{t("navigation",e,n)})}function T({alignTo:e,key:t,textPxLength:n}){let i=this.options.exporting,{align:o,buttonSpacing:r=0,verticalAlign:s,width:l=0}=V(this.options.navigation?.buttonOptions,i?.buttons?.contextButton),a=e.width-n,c=l+r;(i?.enabled??!0)&&"title"===t&&"right"===o&&"top"===s&&a<2*c&&(a{H.focus(),H.print(),h().isSafari||setTimeout(()=>{e.afterPrint()},1e3)},1))}function K(){let e=this,t=e.options.exporting,n=t.buttons,i=e.isDirtyExporting||!e.exportSVGElements;e.buttonOffset=0,e.isDirtyExporting&&e.destroyExport(),i&&!1!==t.enabled&&(e.exportEvents=[],e.exportingGroup=e.exportingGroup||e.renderer.g("exporting-group").attr({zIndex:3}).add(),$(n,function(t){e.addButton(t)}),e.isDirtyExporting=!1)}function B(e,t){let n=e.indexOf("")+6,i=e.substr(n);return e=e.substr(0,n),t&&t.exporting&&t.exporting.allowHTML&&i&&(i=''+i.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",e=e.replace("",i+"")),e=e.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery\d+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/(()=>{"use strict";var o={512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function s(t){var e=i[t];if(void 0!==e)return e.exports;var r=i[t]={exports:{}};return o[t](r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var o in e)s.o(e,o)&&!s.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};s.d(r,{default:()=>M});var n=s(944),a=/*#__PURE__*/s.n(n),h=s(512),p=/*#__PURE__*/s.n(h);let{seriesTypes:{mapline:{prototype:{pointClass:l}}}}=p(),{pick:d,isString:f,isNumber:g}=a(),c=class extends l{isValid(){let t=!!(this.options.to&&this.options.from);return[this.options.to,this.options.from].forEach(function(e){t=!!(t&&e&&(f(e)||g(d(e[0],e.lat))&&g(d(e[1],e.lon))))}),t}},{series:{prototype:{pointClass:m}},seriesTypes:{column:y,map:u,mapline:x}}=p(),{addEvent:w,arrayMax:P,arrayMin:b,defined:L,extend:W,isArray:v,merge:k,pick:A,relativeLength:O}=a();class C extends x{static getLength(t,e){return Math.sqrt(t*t+e*e)}static normalize(t,e){let o=this.getLength(t,e);return[t/o,e/o]}static markerEndPath(t,e,o,i){let s=O(i.width||0,this.getLength(e[0]-t[0],e[1]-t[1])),r=i.markerType||"arrow",[n,a]=this.normalize(e[0]-t[0],e[1]-t[1]),h=[];if("arrow"===r){let[i,r]=t;i-=n*s,r-=a*s,h.push(["L",i,r]),h.push(["L",o[0],o[1]]),[i,r]=e,i+=n*s,r+=a*s,h.push(["L",i,r])}if("mushroom"===r){let[i,r]=t,[p,l]=e,[d,f]=o,g=(p-i)/2+i,c=(l-r)/2+r;i-=n*s,r-=a*s,h.push(["L",i,r]),p+=n*s,l+=a*s,h.push(["Q",(d-g)*2+g,(f-c)*2+c,p,l])}return h}animate(t){let e=this.points;t||e.forEach(t=>{if(t.shapeArgs&&v(t.shapeArgs.d)&&t.shapeArgs.d.length){let e=t.shapeArgs.d,o=e[0][1],i=e[0][2];if(o&&i){let s=[];for(let t=0;t{let s,r;let n=this.chart,a=n.mapView,h=i.options,p=()=>{i.series.isDirty=!0},l=t=>{let e=n.get(t);if(e instanceof m&&e.plotX&&e.plotY)return w(e,"update",p),{x:e.plotX,y:e.plotY}},d=t=>v(t)?{lon:t[0],lat:t[1]}:t;"string"==typeof h.from?s=l(h.from):"object"==typeof h.from&&a&&(s=a.lonLatToPixels(d(h.from))),"string"==typeof h.to?r=l(h.to):"object"==typeof h.to&&a&&(r=a.lonLatToPixels(d(h.to))),i.fromPos=s,i.toPos=r,s&&r&&(e+=(s.x+r.x)/2,o+=(s.y+r.y)/2),A(i.options.weight,this.options.weight)&&t.push(A(i.options.weight,this.options.weight))}),this.smallestWeight=b(t),this.greatestWeight=P(t),this.centerOfPoints={x:e/this.points.length,y:o/this.points.length},this.points.forEach(t=>{if(!this.getLinkWidth(t)){t.shapeArgs={d:[]};return}t.fromPos&&(t.plotX=t.fromPos.x,t.plotY=t.fromPos.y),t.shapeType="path",t.shapeArgs=this.getPointShapeArgs(t),t.color=A(t.options.color,t.series.color)})}getPointShapeArgs(t){let{fromPos:e,toPos:o}=t;if(!e||!o)return{};let i=this.getLinkWidth(t)/2,s=t.options,r=k(this.options.markerEnd,s.markerEnd),n=A(s.growTowards,this.options.growTowards),a=e.x||0,h=e.y||0,p=o.x||0,l=o.y||0,d=A(s.curveFactor,this.options.curveFactor),f=r&&r.enabled&&r.height||0;if(L(d)||(d=this.autoCurve(a,h,p,l,this.centerOfPoints.x,this.centerOfPoints.y)),f){f=O(f,4*i);let t=p-a,e=l-h,o=a+(t*=.5),s=h+(e*=.5),r=t,n=o+(t=e)*d,g=s+(e=-r)*d,[c,m]=C.normalize(n-p,g-l);c*=f,m*=f,p+=c,l+=m}let g=p-a,c=l-h,m=a+(g*=.5),y=h+(c*=.5),u=g;g=c,c=-u;let[x,w]=C.normalize(g,c),P=1+.25*Math.sqrt(d*d);x*=i*P,w*=i*P;let b=m+g*d,W=y+c*d,[v,M]=C.normalize(b-a,W-h);u=v,v=M,M=-u,v*=i,M*=i;let[T,E]=C.normalize(b-p,W-l);u=T,T=-E,E=u,T*=i,E*=i,n&&(v/=i,M/=i,x/=4,w/=4);let j={d:[["M",a-v,h-M],["Q",b-x,W-w,p-T,l-E],["L",p+T,l+E],["Q",b+x,W+w,a+v,h+M],["Z"]]};if(r&&r.enabled&&j.d){let t=C.markerEndPath([p-T,l-E],[p+T,l+E],[o.x,o.y],r);j.d.splice(2,0,...t)}let z=t.options.from,H=t.options.to,S=z.lat,R=z.lon,_=H.lat,D=H.lon;return S&&R&&(t.options.from=`${+S}, ${+R}`),_&&D&&(t.options.to=`${+_}, ${+D}`),j}}C.defaultOptions=k(x.defaultOptions,{animation:!0,dataLabels:{enabled:!1},fillOpacity:.5,markerEnd:{enabled:!0,height:"40%",width:"40%",markerType:"arrow"},width:1,maxWidth:25,minWidth:5,lineWidth:void 0,tooltip:{headerFormat:'{series.name}
    ',pointFormat:"{point.options.from} → {point.options.to}: {point.options.weight}"}}),W(C.prototype,{pointClass:c,pointArrayMap:["from","to","weight"],drawPoints:y.prototype.drawPoints,dataColumnKeys:y.prototype.dataColumnKeys,useMapGeometry:!0}),p().registerSeriesType("flowmap",C);let M=a();return r.default})()); \ No newline at end of file + */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/flowmap",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/flowmap"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var o={512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function s(t){var e=i[t];if(void 0!==e)return e.exports;var r=i[t]={exports:{}};return o[t](r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var o in e)s.o(e,o)&&!s.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};s.d(r,{default:()=>M});var n=s(944),a=s.n(n),h=s(512),p=s.n(h);let{seriesTypes:{mapline:{prototype:{pointClass:l}}}}=p(),{pick:d,isString:f,isNumber:g}=a(),c=class extends l{isValid(){let t=!!(this.options.to&&this.options.from);return[this.options.to,this.options.from].forEach(function(e){t=!!(t&&e&&(f(e)||g(d(e[0],e.lat))&&g(d(e[1],e.lon))))}),t}},{series:{prototype:{pointClass:m}},seriesTypes:{column:y,map:u,mapline:x}}=p(),{addEvent:w,arrayMax:P,arrayMin:b,defined:L,extend:W,isArray:v,merge:k,pick:A,relativeLength:O}=a();class C extends x{static getLength(t,e){return Math.sqrt(t*t+e*e)}static normalize(t,e){let o=this.getLength(t,e);return[t/o,e/o]}static markerEndPath(t,e,o,i){let s=O(i.width||0,this.getLength(e[0]-t[0],e[1]-t[1])),r=i.markerType||"arrow",[n,a]=this.normalize(e[0]-t[0],e[1]-t[1]),h=[];if("arrow"===r){let[i,r]=t;i-=n*s,r-=a*s,h.push(["L",i,r]),h.push(["L",o[0],o[1]]),[i,r]=e,i+=n*s,r+=a*s,h.push(["L",i,r])}if("mushroom"===r){let[i,r]=t,[p,l]=e,[d,f]=o,g=(p-i)/2+i,c=(l-r)/2+r;i-=n*s,r-=a*s,h.push(["L",i,r]),p+=n*s,l+=a*s,h.push(["Q",(d-g)*2+g,(f-c)*2+c,p,l])}return h}animate(t){let e=this.points;t||e.forEach(t=>{if(t.shapeArgs&&v(t.shapeArgs.d)&&t.shapeArgs.d.length){let e=t.shapeArgs.d,o=e[0][1],i=e[0][2];if(o&&i){let s=[];for(let t=0;t{let s,r;let n=this.chart,a=n.mapView,h=i.options,p=()=>{i.series.isDirty=!0},l=t=>{let e=n.get(t);if(e instanceof m&&e.plotX&&e.plotY)return w(e,"update",p),{x:e.plotX,y:e.plotY}},d=t=>v(t)?{lon:t[0],lat:t[1]}:t;"string"==typeof h.from?s=l(h.from):"object"==typeof h.from&&a&&(s=a.lonLatToPixels(d(h.from))),"string"==typeof h.to?r=l(h.to):"object"==typeof h.to&&a&&(r=a.lonLatToPixels(d(h.to))),i.fromPos=s,i.toPos=r,s&&r&&(e+=(s.x+r.x)/2,o+=(s.y+r.y)/2),A(i.options.weight,this.options.weight)&&t.push(A(i.options.weight,this.options.weight))}),this.smallestWeight=b(t),this.greatestWeight=P(t),this.centerOfPoints={x:e/this.points.length,y:o/this.points.length},this.points.forEach(t=>{if(!this.getLinkWidth(t)){t.shapeArgs={d:[]};return}t.fromPos&&(t.plotX=t.fromPos.x,t.plotY=t.fromPos.y),t.shapeType="path",t.shapeArgs=this.getPointShapeArgs(t),t.color=A(t.options.color,t.series.color)})}getPointShapeArgs(t){let{fromPos:e,toPos:o}=t;if(!e||!o)return{};let i=this.getLinkWidth(t)/2,s=t.options,r=k(this.options.markerEnd,s.markerEnd),n=A(s.growTowards,this.options.growTowards),a=e.x||0,h=e.y||0,p=o.x||0,l=o.y||0,d=A(s.curveFactor,this.options.curveFactor),f=r&&r.enabled&&r.height||0;if(L(d)||(d=this.autoCurve(a,h,p,l,this.centerOfPoints.x,this.centerOfPoints.y)),f){f=O(f,4*i);let t=p-a,e=l-h,o=a+(t*=.5),s=h+(e*=.5),r=t,n=o+(t=e)*d,g=s+(e=-r)*d,[c,m]=C.normalize(n-p,g-l);c*=f,m*=f,p+=c,l+=m}let g=p-a,c=l-h,m=a+(g*=.5),y=h+(c*=.5),u=g;g=c,c=-u;let[x,w]=C.normalize(g,c),P=1+.25*Math.sqrt(d*d);x*=i*P,w*=i*P;let b=m+g*d,W=y+c*d,[v,M]=C.normalize(b-a,W-h);u=v,v=M,M=-u,v*=i,M*=i;let[T,E]=C.normalize(b-p,W-l);u=T,T=-E,E=u,T*=i,E*=i,n&&(v/=i,M/=i,x/=4,w/=4);let j={d:[["M",a-v,h-M],["Q",b-x,W-w,p-T,l-E],["L",p+T,l+E],["Q",b+x,W+w,a+v,h+M],["Z"]]};if(r&&r.enabled&&j.d){let t=C.markerEndPath([p-T,l-E],[p+T,l+E],[o.x,o.y],r);j.d.splice(2,0,...t)}let z=t.options.from,H=t.options.to,S=z.lat,R=z.lon,_=H.lat,D=H.lon;return S&&R&&(t.options.from=`${+S}, ${+R}`),_&&D&&(t.options.to=`${+_}, ${+D}`),j}}C.defaultOptions=k(x.defaultOptions,{animation:!0,dataLabels:{enabled:!1},fillOpacity:.5,markerEnd:{enabled:!0,height:"40%",width:"40%",markerType:"arrow"},width:1,maxWidth:25,minWidth:5,lineWidth:void 0,tooltip:{headerFormat:'{series.name}
    ',pointFormat:"{point.options.from} → {point.options.to}: {point.options.weight}"}}),W(C.prototype,{pointClass:c,pointArrayMap:["from","to","weight"],drawPoints:y.prototype.drawPoints,dataColumnKeys:y.prototype.dataColumnKeys,useMapGeometry:!0}),p().registerSeriesType("flowmap",C);let M=a();return r.default})()); \ No newline at end of file diff --git a/modules/flowmap.src.js b/modules/flowmap.src.js index 5cc66ace35..e7d6b6b225 100644 --- a/modules/flowmap.src.js +++ b/modules/flowmap.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/flowmap * @requires highcharts * diff --git a/modules/full-screen.js b/modules/full-screen.js index f77acfc7a8..c9bc89a3e8 100644 --- a/modules/full-screen.js +++ b/modules/full-screen.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/full-screen * @requires highcharts * @@ -9,4 +9,4 @@ * Author: Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/full-screen",["highcharts/highcharts"],function(e){return t(e,e.AST)}):"object"==typeof exports?exports["highcharts/modules/full-screen"]=t(e._Highcharts,e._Highcharts.AST):e.Highcharts=t(e.Highcharts,e.Highcharts.AST)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var n={660:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={exports:{}};return n[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>w});var l=s(944),o=/*#__PURE__*/s.n(l),u=s(660),c=/*#__PURE__*/s.n(u);let{composed:h}=o(),{addEvent:p,fireEvent:a,pushUnique:f}=o();function g(){this.fullscreen=new d(this)}class d{static compose(e){f(h,"Fullscreen")&&p(e,"beforeRender",g)}constructor(e){this.chart=e,this.isOpen=!1;let t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;a(t,"fullscreenClose",null,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;a(t,"fullscreenOpen",null,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=p(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),r=p(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),r()};let s=t.renderTo[e.browserProps.requestFullscreen]();s&&s.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exportDivElements,n=e.options.exporting,r=n&&n.buttons&&n.buttons.contextButton.menuItems,s=e.options.lang;if(n&&n.menuItemDefinitions&&s&&s.exitFullscreen&&s.viewFullscreen&&r&&t){let e=t[r.indexOf("viewFullscreen")];e&&c().setElementHTML(e,this.isOpen?s.exitFullscreen:n.menuItemDefinitions.viewFullscreen.text||s.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}let F=o();F.Fullscreen=F.Fullscreen||d,F.Fullscreen.compose(F.Chart);let w=o();return i.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/full-screen",["highcharts/highcharts"],function(e){return t(e,e.AST)}):"object"==typeof exports?exports["highcharts/modules/full-screen"]=t(e._Highcharts,e._Highcharts.AST):e.Highcharts=t(e.Highcharts,e.Highcharts.AST)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var n={660:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={exports:{}};return n[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>w});var l=s(944),o=s.n(l),u=s(660),c=s.n(u);let{composed:h}=o(),{addEvent:p,fireEvent:a,pushUnique:f}=o();function g(){this.fullscreen=new d(this)}class d{static compose(e){f(h,"Fullscreen")&&p(e,"beforeRender",g)}constructor(e){this.chart=e,this.isOpen=!1;let t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;a(t,"fullscreenClose",null,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;a(t,"fullscreenOpen",null,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=p(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),r=p(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),r()};let s=t.renderTo[e.browserProps.requestFullscreen]();s&&s.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exportDivElements,n=e.options.exporting,r=n&&n.buttons&&n.buttons.contextButton.menuItems,s=e.options.lang;if(n&&n.menuItemDefinitions&&s&&s.exitFullscreen&&s.viewFullscreen&&r&&t){let e=t[r.indexOf("viewFullscreen")];e&&c().setElementHTML(e,this.isOpen?s.exitFullscreen:n.menuItemDefinitions.viewFullscreen.text||s.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}let F=o();F.Fullscreen=F.Fullscreen||d,F.Fullscreen.compose(F.Chart);let w=o();return i.default})()); \ No newline at end of file diff --git a/modules/full-screen.src.js b/modules/full-screen.src.js index e4d191505c..b3083e5ca7 100644 --- a/modules/full-screen.src.js +++ b/modules/full-screen.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/full-screen * @requires highcharts * diff --git a/modules/funnel.js b/modules/funnel.js index 95b8bb2f5f..7423952cad 100644 --- a/modules/funnel.js +++ b/modules/funnel.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/funnel * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: 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)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function d(t){var e=a[t];if(void 0!==e)return e.exports;var s=a[t]={exports:{}};return i[t](s,s.exports,d),s.exports}d.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return d.d(e,{a:e}),e},d.d=(t,e)=>{for(var i in e)d.o(e,i)&&!d.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},d.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};d.d(s,{default:()=>X});var o=d(944),n=/*#__PURE__*/d.n(o);let{defaultOptions:r}=n(),{noop:l}=n(),{addEvent:h,extend:p,isObject:c,merge:u,relativeLength:g}=n(),x={radius:0,scope:"stack",where:void 0},y={optionsToObject:function(t,e){return c(t)||(t={radius:t||0}),u(x,e,t)}};var f=d(512),b=/*#__PURE__*/d.n(f);let{composed:L,noop:m}=n(),{column:v,pie:M}=b().seriesTypes,{addEvent:W,correctFloat:A,extend:C,fireEvent:H,isArray:w,merge:P,pick:k,pushUnique:O,relativeLength:S,splat:j}=n(),D=b().series.prototype.alignDataLabel;function I(t,e){return/%$/.test(t)?e*parseInt(t,10)/100:parseInt(t,10)}class T extends M{alignDataLabel(t,e,i,a,d){let s=t.series,o=s.options.reversed,n=t.dlBox||t.shapeArgs,{align:r,padding:l=0,verticalAlign:h}=i,p=((s.options||{}).dataLabels||{}).inside,c=s.center[1],u=t.plotY||0,g=e.height??e.getBBox().height,x=s.getWidthAt((o?2*c-u:u)-n.height/2+g),y="middle"===h?(n.topWidth-n.bottomWidth)/4:(x-n.bottomWidth)/2,f=n.y,b=n.x;"middle"===h?f=n.y-n.height/2+g/2:"top"===h&&(f=n.y-n.height+g+l),("top"===h&&!o||"bottom"===h&&o||"middle"===h)&&("right"===r?b=n.x-l+y:"left"===r&&(b=n.x+l-y)),a={x:b,y:o?f-n.height:f,width:n.bottomWidth,height:n.height},i.verticalAlign="bottom",p&&(i.distance=void 0),p&&t.visible&&D.call(s,t,e,i,a,d),p&&(!t.visible&&t.dataLabel&&(t.dataLabel.placed=!1),t.contrastColor&&e.css({color:t.contrastColor}))}drawDataLabels(){(j(this.options.dataLabels||{})[0].inside?v:M).prototype.drawDataLabels.call(this)}getDataLabelPosition(t,e){let i=t.plotY||0,a=t.half?1:-1,d=this.getX(i,!!t.half,t);return{distance:e,natural:{x:0,y:i},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:d+(e-5)*a,y:i},touchingSliceAt:{x:d+e*a,y:i}}}}translate(){let t=this,e=t.chart,i=t.options,a=i.reversed,d=i.ignoreHiddenPoint,s=y.optionsToObject(i.borderRadius),o=e.plotWidth,n=e.plotHeight,r=i.center,l=I(r[0],o),h=I(r[1],n),p=I(i.width,o),c=I(i.height,n),u=I(i.neckWidth,o),g=I(i.neckHeight,n),x=h-c/2+c-g,f=t.points,b=S(s.radius,p),L=s.scope,v="left"===i.dataLabels.position?1:0,M=t=>{let e=Math.tan(t/2),i=Math.cos(j),d=Math.sin(j),s=b,o=s/e,n=Math.tan((Math.PI-t)/3.2104);return o>D&&(s=(o=D)*e),{dx:[o*i,(o-(n*=s))*i,o-n,o],dy:[o*d,(o-n)*d,o-n,o].map(t=>a?-t:t)}},W=0,C=0,w,P,O,j,D,T,R,Y,_,B,X,N;for(let e of(t.getWidthAt=function(t){let e=h-c/2;return t>x||c===g?u:u+(p-u)*(1-(t-e)/(c-g))},t.getX=function(e,i,d){return l+(i?-1:1)*(t.getWidthAt(a?2*h-e:e)/2+(d.dataLabel?.dataLabelPosition?.distance??S(this.options.dataLabels?.distance||0,p)))},t.center=[l,h,c],t.centerX=l,f))e.y&&e.isValid()&&(!d||!1!==e.visible)&&(W+=e.y);for(let e of f){if(N=null,O=W?e.y/W:0,B=(R=h-c/2+C*c)+O*c,Y=(T=l-(w=t.getWidthAt(R))/2)+w,X=(_=l-(w=t.getWidthAt(B))/2)+w,A(R)>=x?(T=_=l-u/2,Y=X=l+u/2):B>x&&(N=B,X=(_=l-(w=t.getWidthAt(x))/2)+w,B=x),a&&(R=2*h-R,B=2*h-B,null!==N&&(N=2*h-N)),b&&("point"===L||0===e.index||e.index===f.length-1||null!==N)){let t=Math.abs(B-R),i=Y-X,a=X-_,d=Math.sqrt(i*i+t*t);j=Math.atan(0!==i?t/i:1/0),D=d/2,null!==N&&(D=Math.min(D,Math.abs(N-B)/2)),a>=1&&(D=Math.min(D,a/2));let s=M(j);if(P="stack"===L&&0!==e.index?[["M",T,R],["L",Y,R]]:[["M",T+s.dx[0],R+s.dy[0]],["C",T+s.dx[1],R+s.dy[1],T+s.dx[2],R,T+s.dx[3],R],["L",Y-s.dx[3],R],["C",Y-s.dx[2],R,Y-s.dx[1],R+s.dy[1],Y-s.dx[0],R+s.dy[0]]],null!==N){let t=M(Math.PI/2);s=M(Math.PI/2+j),P.push(["L",X+s.dx[0],B-s.dy[0]],["C",X+s.dx[1],B-s.dy[1],X,B+s.dy[2],X,B+s.dy[3]]),"stack"===L&&e.index!==f.length-1?P.push(["L",X,N],["L",_,N]):P.push(["L",X,N-t.dy[3]],["C",X,N-t.dy[2],X-t.dx[2],N,X-t.dx[3],N],["L",_+t.dx[3],N],["C",_+t.dx[2],N,_,N-t.dy[2],_,N-t.dy[3]]),P.push(["L",_,B+s.dy[3]],["C",_,B+s.dy[2],_-s.dx[1],B-s.dy[1],_-s.dx[0],B-s.dy[0]])}else a>=1?(s=M(Math.PI-j),"stack"===L&&0===e.index?P.push(["L",X,B],["L",_,B]):P.push(["L",X+s.dx[0],B-s.dy[0]],["C",X+s.dx[1],B-s.dy[1],X-s.dx[2],B,X-s.dx[3],B],["L",_+s.dx[3],B],["C",_+s.dx[2],B,_-s.dx[1],B-s.dy[1],_-s.dx[0],B-s.dy[0]])):(s=M(Math.PI-2*j),P.push(["L",_+s.dx[0],B-s.dy[0]],["C",_+s.dx[1],B-s.dy[1],_-s.dx[1],B-s.dy[1],_-s.dx[0],B-s.dy[0]]))}else P=[["M",T,R],["L",Y,R],["L",X,B]],null!==N&&P.push(["L",X,N],["L",_,N]),P.push(["L",_,B]);P.push(["Z"]),e.shapeType="path",e.shapeArgs={d:P},e.percentage=100*O,e.plotX=l,e.plotY=(R+(N||B))/2,e.tooltipPos=[l,e.plotY],e.dlBox={x:_,y:R,topWidth:Y-T,bottomWidth:X-_,height:Math.abs(k(N,B)-R),width:NaN},e.slice=m,e.half=v,e.isValid()&&(!d||!1!==e.visible)&&(C+=O)}H(t,"afterTranslate")}sortByAngle(t){t.sort((t,e)=>t.plotY-e.plotY)}}T.defaultOptions=P(M.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:"#cccccc",borderColor:"#000000"}}}),C(T.prototype,{animate:m}),function(t){function e(){for(let t of this.series){let e=t.options&&t.options.dataLabels;w(e)&&(e=e[0]),t.is("pie")&&t.placeDataLabels&&e&&!e.inside&&t.placeDataLabels()}}t.compose=function(t){O(L,"FunnelSeries")&&W(t,"afterHideAllOverlappingLabels",e)}}(T||(T={})),b().registerSeriesType("funnel",T);let R=T,{merge:Y}=n();class _ extends R{}_.defaultOptions=Y(R.defaultOptions,{neckHeight:"0%",neckWidth:"0%",reversed:!0}),b().registerSeriesType("pyramid",_);let B=n();R.compose(B.Chart);let X=n();return s.default})()); \ No newline at end of file + */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)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function d(t){var e=a[t];if(void 0!==e)return e.exports;var s=a[t]={exports:{}};return i[t](s,s.exports,d),s.exports}d.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return d.d(e,{a:e}),e},d.d=(t,e)=>{for(var i in e)d.o(e,i)&&!d.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},d.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};d.d(s,{default:()=>X});var o=d(944),n=d.n(o);let{defaultOptions:r}=n(),{noop:l}=n(),{addEvent:h,extend:p,isObject:c,merge:u,relativeLength:g}=n(),x={radius:0,scope:"stack",where:void 0},y={optionsToObject:function(t,e){return c(t)||(t={radius:t||0}),u(x,e,t)}};var f=d(512),b=d.n(f);let{composed:L,noop:m}=n(),{column:v,pie:M}=b().seriesTypes,{addEvent:W,correctFloat:A,extend:C,fireEvent:H,isArray:w,merge:P,pick:k,pushUnique:O,relativeLength:S,splat:j}=n(),D=b().series.prototype.alignDataLabel;function I(t,e){return/%$/.test(t)?e*parseInt(t,10)/100:parseInt(t,10)}class T extends M{alignDataLabel(t,e,i,a,d){let s=t.series,o=s.options.reversed,n=t.dlBox||t.shapeArgs,{align:r,padding:l=0,verticalAlign:h}=i,p=((s.options||{}).dataLabels||{}).inside,c=s.center[1],u=t.plotY||0,g=e.height??e.getBBox().height,x=s.getWidthAt((o?2*c-u:u)-n.height/2+g),y="middle"===h?(n.topWidth-n.bottomWidth)/4:(x-n.bottomWidth)/2,f=n.y,b=n.x;"middle"===h?f=n.y-n.height/2+g/2:"top"===h&&(f=n.y-n.height+g+l),("top"===h&&!o||"bottom"===h&&o||"middle"===h)&&("right"===r?b=n.x-l+y:"left"===r&&(b=n.x+l-y)),a={x:b,y:o?f-n.height:f,width:n.bottomWidth,height:n.height},i.verticalAlign="bottom",p&&(i.distance=void 0),p&&t.visible&&D.call(s,t,e,i,a,d),p&&(!t.visible&&t.dataLabel&&(t.dataLabel.placed=!1),t.contrastColor&&e.css({color:t.contrastColor}))}drawDataLabels(){(j(this.options.dataLabels||{})[0].inside?v:M).prototype.drawDataLabels.call(this)}getDataLabelPosition(t,e){let i=t.plotY||0,a=t.half?1:-1,d=this.getX(i,!!t.half,t);return{distance:e,natural:{x:0,y:i},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:d+(e-5)*a,y:i},touchingSliceAt:{x:d+e*a,y:i}}}}translate(){let t=this,e=t.chart,i=t.options,a=i.reversed,d=i.ignoreHiddenPoint,s=y.optionsToObject(i.borderRadius),o=e.plotWidth,n=e.plotHeight,r=i.center,l=I(r[0],o),h=I(r[1],n),p=I(i.width,o),c=I(i.height,n),u=I(i.neckWidth,o),g=I(i.neckHeight,n),x=h-c/2+c-g,f=t.points,b=S(s.radius,p),L=s.scope,v="left"===i.dataLabels.position?1:0,M=t=>{let e=Math.tan(t/2),i=Math.cos(j),d=Math.sin(j),s=b,o=s/e,n=Math.tan((Math.PI-t)/3.2104);return o>D&&(s=(o=D)*e),{dx:[o*i,(o-(n*=s))*i,o-n,o],dy:[o*d,(o-n)*d,o-n,o].map(t=>a?-t:t)}},W=0,C=0,w,P,O,j,D,T,R,Y,_,B,X,N;for(let e of(t.getWidthAt=function(t){let e=h-c/2;return t>x||c===g?u:u+(p-u)*(1-(t-e)/(c-g))},t.getX=function(e,i,d){return l+(i?-1:1)*(t.getWidthAt(a?2*h-e:e)/2+(d.dataLabel?.dataLabelPosition?.distance??S(this.options.dataLabels?.distance||0,p)))},t.center=[l,h,c],t.centerX=l,f))e.y&&e.isValid()&&(!d||!1!==e.visible)&&(W+=e.y);for(let e of f){if(N=null,O=W?e.y/W:0,B=(R=h-c/2+C*c)+O*c,Y=(T=l-(w=t.getWidthAt(R))/2)+w,X=(_=l-(w=t.getWidthAt(B))/2)+w,A(R)>=x?(T=_=l-u/2,Y=X=l+u/2):B>x&&(N=B,X=(_=l-(w=t.getWidthAt(x))/2)+w,B=x),a&&(R=2*h-R,B=2*h-B,null!==N&&(N=2*h-N)),b&&("point"===L||0===e.index||e.index===f.length-1||null!==N)){let t=Math.abs(B-R),i=Y-X,a=X-_,d=Math.sqrt(i*i+t*t);j=Math.atan(0!==i?t/i:1/0),D=d/2,null!==N&&(D=Math.min(D,Math.abs(N-B)/2)),a>=1&&(D=Math.min(D,a/2));let s=M(j);if(P="stack"===L&&0!==e.index?[["M",T,R],["L",Y,R]]:[["M",T+s.dx[0],R+s.dy[0]],["C",T+s.dx[1],R+s.dy[1],T+s.dx[2],R,T+s.dx[3],R],["L",Y-s.dx[3],R],["C",Y-s.dx[2],R,Y-s.dx[1],R+s.dy[1],Y-s.dx[0],R+s.dy[0]]],null!==N){let t=M(Math.PI/2);s=M(Math.PI/2+j),P.push(["L",X+s.dx[0],B-s.dy[0]],["C",X+s.dx[1],B-s.dy[1],X,B+s.dy[2],X,B+s.dy[3]]),"stack"===L&&e.index!==f.length-1?P.push(["L",X,N],["L",_,N]):P.push(["L",X,N-t.dy[3]],["C",X,N-t.dy[2],X-t.dx[2],N,X-t.dx[3],N],["L",_+t.dx[3],N],["C",_+t.dx[2],N,_,N-t.dy[2],_,N-t.dy[3]]),P.push(["L",_,B+s.dy[3]],["C",_,B+s.dy[2],_-s.dx[1],B-s.dy[1],_-s.dx[0],B-s.dy[0]])}else a>=1?(s=M(Math.PI-j),"stack"===L&&0===e.index?P.push(["L",X,B],["L",_,B]):P.push(["L",X+s.dx[0],B-s.dy[0]],["C",X+s.dx[1],B-s.dy[1],X-s.dx[2],B,X-s.dx[3],B],["L",_+s.dx[3],B],["C",_+s.dx[2],B,_-s.dx[1],B-s.dy[1],_-s.dx[0],B-s.dy[0]])):(s=M(Math.PI-2*j),P.push(["L",_+s.dx[0],B-s.dy[0]],["C",_+s.dx[1],B-s.dy[1],_-s.dx[1],B-s.dy[1],_-s.dx[0],B-s.dy[0]]))}else P=[["M",T,R],["L",Y,R],["L",X,B]],null!==N&&P.push(["L",X,N],["L",_,N]),P.push(["L",_,B]);P.push(["Z"]),e.shapeType="path",e.shapeArgs={d:P},e.percentage=100*O,e.plotX=l,e.plotY=(R+(N||B))/2,e.tooltipPos=[l,e.plotY],e.dlBox={x:_,y:R,topWidth:Y-T,bottomWidth:X-_,height:Math.abs(k(N,B)-R),width:NaN},e.slice=m,e.half=v,e.isValid()&&(!d||!1!==e.visible)&&(C+=O)}H(t,"afterTranslate")}sortByAngle(t){t.sort((t,e)=>t.plotY-e.plotY)}}T.defaultOptions=P(M.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:"#cccccc",borderColor:"#000000"}}}),C(T.prototype,{animate:m}),function(t){function e(){for(let t of this.series){let e=t.options&&t.options.dataLabels;w(e)&&(e=e[0]),t.is("pie")&&t.placeDataLabels&&e&&!e.inside&&t.placeDataLabels()}}t.compose=function(t){O(L,"FunnelSeries")&&W(t,"afterHideAllOverlappingLabels",e)}}(T||(T={})),b().registerSeriesType("funnel",T);let R=T,{merge:Y}=n();class _ extends R{}_.defaultOptions=Y(R.defaultOptions,{neckHeight:"0%",neckWidth:"0%",reversed:!0}),b().registerSeriesType("pyramid",_);let B=n();R.compose(B.Chart);let X=n();return s.default})()); \ No newline at end of file diff --git a/modules/funnel.src.js b/modules/funnel.src.js index 7569332359..ce6ee57698 100644 --- a/modules/funnel.src.js +++ b/modules/funnel.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/funnel * @requires highcharts * diff --git a/modules/funnel3d.js b/modules/funnel3d.js index c643495315..59781c3905 100644 --- a/modules/funnel3d.js +++ b/modules/funnel3d.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/funnel3d * @requires highcharts * @requires highcharts/highcharts-3d @@ -10,4 +10,4 @@ * (c) 2010-2024 Kacper Madej * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/funnel3d",["highcharts/highcharts"],function(t){return e(t,t.Color,t.RendererRegistry,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/funnel3d"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.RendererRegistry,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,i,r)=>(()=>{"use strict";var o={620:t=>{t.exports=e},608:t=>{t.exports=i},512:t=>{t.exports=r},944:e=>{e.exports=t}},n={};function s(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return o[t](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};s.d(h,{default:()=>Y});var d=s(944),a=/*#__PURE__*/s.n(d),l=s(620),p=/*#__PURE__*/s.n(l),g=s(608),c=/*#__PURE__*/s.n(g);let{parse:f}=p(),{charts:y}=a(),{Element3D:u}=c().getRendererType().prototype,{merge:x}=a(),w=class extends u{constructor(){super(...arguments),this.mainParts=["top","bottom"],this.parts=["top","bottom","frontUpper","backUpper","frontLower","backLower","rightUpper","rightLower"],this.sideGroups=["upperGroup","lowerGroup"],this.sideParts={upperGroup:["frontUpper","backUpper","rightUpper"],lowerGroup:["frontLower","backLower","rightLower"]},this.pathType="funnel3d"}opacitySetter(t){let e=parseFloat(t),i=this.parts,r=y[this.renderer.chartIndex],o="group-opacity-"+e+"-"+r.index;if(this.parts=this.mainParts,this.singleSetterForParts("opacity",e),this.parts=i,!r.renderer.filterId){for(let t of(r.renderer.definition({tagName:"filter",attributes:{id:o},children:[{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",attributes:{type:"table",tableValues:"0 "+e}}]}]}),this.sideGroups))this[t].attr({filter:"url(#"+o+")"});if(this.renderer.styledMode)for(let t of(r.renderer.definition({tagName:"style",textContent:".highcharts-"+o+" {filter:url(#"+o+")}"}),this.sideGroups))this[t].addClass("highcharts-"+o)}return this}fillSetter(t){let e=f(t),i=e.rgba[3],r={top:f(t).brighten(.1).get(),bottom:f(t).brighten(-.2).get()};if(i<1?(e.rgba[3]=1,e=e.get("rgb"),this.attr({opacity:i})):e=t,e.linearGradient||e.radialGradient||!this.gradientForSides||(e={linearGradient:{x1:0,x2:1,y1:1,y2:1},stops:[[0,f(t).brighten(-.2).get()],[.5,t],[1,f(t).brighten(-.2).get()]]}),e.linearGradient)for(let t of this.sideGroups){let i=this[t].gradientBox,o=e.linearGradient,n=x(e,{linearGradient:{x1:i.x+o.x1*i.width,y1:i.y+o.y1*i.height,x2:i.x+o.x2*i.width,y2:i.y+o.y2*i.height}});for(let e of this.sideParts[t])r[e]=n}else if(x(!0,r,{frontUpper:e,backUpper:e,rightUpper:e,frontLower:e,backLower:e,rightLower:e}),e.radialGradient)for(let t of this.sideGroups){let e=this[t].gradientBox,i=e.x+e.width/2,r=e.y+e.height/2,o=Math.min(e.width,e.height);for(let e of this.sideParts[t])this[e].setRadialReference([i,r,o])}if(this.singleSetterForParts("fill",null,r),this.color=this.fill=t,e.linearGradient)for(let t of[this.frontLower,this.frontUpper]){let e=t.element,i=e&&this.renderer.gradients[e.gradient];i&&"userSpaceOnUse"!==i.attr("gradientUnits")&&i.attr({gradientUnits:"userSpaceOnUse"})}return this}adjustForGradient(){let t;for(let e of this.sideGroups){let i={x:Number.MAX_VALUE,y:Number.MAX_VALUE},r={x:-Number.MAX_VALUE,y:-Number.MAX_VALUE};for(let o of this.sideParts[e])t=this[o].getBBox(!0),i={x:Math.min(i.x,t.x),y:Math.min(i.y,t.y)},r={x:Math.max(r.x,t.x+t.width),y:Math.max(r.y,t.y+t.height)};this[e].gradientBox={x:i.x,width:r.x-i.x,y:i.y,height:r.y-i.y}}}zIndexSetter(){return this.finishedOnAdd&&this.adjustForGradient(),this.renderer.Element.prototype.zIndexSetter.apply(this,arguments)}onAdd(){this.adjustForGradient(),this.finishedOnAdd=!0}},{charts:m}=a(),{error:b,extend:A,merge:z}=a();function C(t){let e=this.element3d("funnel3d",t),i=this.styledMode,r={"stroke-width":1,stroke:"none"};for(let t of(e.upperGroup=this.g("funnel3d-upper-group").attr({zIndex:e.frontUpper.zIndex}).add(e),[e.frontUpper,e.backUpper,e.rightUpper]))i||t.attr(r),t.add(e.upperGroup);for(let t of(e.lowerGroup=this.g("funnel3d-lower-group").attr({zIndex:e.frontLower.zIndex}).add(e),[e.frontLower,e.backLower,e.rightLower]))i||t.attr(r),t.add(e.lowerGroup);return e.gradientForSides=t.gradientForSides,e}function L(t){this.getCylinderEnd||b("A required Highcharts module is missing: cylinder.js",!0,m[this.chartIndex]);let e=m[this.chartIndex],i=t.alphaCorrection=90-Math.abs(e.options.chart.options3d.alpha%180-90),r=this.cuboidPath.call(this,z(t,{depth:t.width,width:(t.width+t.bottom.width)/2})),o=r.isTop,n=!r.isFront,s=!!t.middle,h=this.getCylinderEnd(e,z(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:i})),d=t.bottom.width,a=z(t,{width:d,x:t.x-d/2,z:t.z-d/2,alphaCorrection:i}),l=this.getCylinderEnd(e,a,!0),p=d,g=a,c=l,f=l,y;s&&(p=t.middle.width,g=z(t,{y:t.y+t.middle.fraction*t.height,width:p,x:t.x-p/2,z:t.z-p/2}),c=this.getCylinderEnd(e,g,!1),f=this.getCylinderEnd(e,g,!1));let u={top:h,bottom:l,frontUpper:this.getCylinderFront(h,c),zIndexes:{group:r.zIndexes.group,top:0!==o?0:3,bottom:1!==o?0:3,frontUpper:n?2:1,backUpper:n?1:2,rightUpper:n?2:1}};return u.backUpper=this.getCylinderBack(h,c),y=Math.min(p,t.width)/Math.max(p,t.width)!=1,u.rightUpper=this.getCylinderFront(this.getCylinderEnd(e,z(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:y?-i:0}),!1),this.getCylinderEnd(e,z(g,{alphaCorrection:y?-i:0}),!s)),s&&(y=Math.min(p,d)/Math.max(p,d)!=1,z(!0,u,{frontLower:this.getCylinderFront(f,l),backLower:this.getCylinderBack(f,l),rightLower:this.getCylinderFront(this.getCylinderEnd(e,z(a,{alphaCorrection:y?-i:0}),!0),this.getCylinderEnd(e,z(g,{alphaCorrection:y?-i:0}),!1)),zIndexes:{frontLower:n?2:1,backLower:n?1:2,rightLower:n?1:2}})),u}var v=s(512),U=/*#__PURE__*/s.n(v);let{seriesTypes:{column:G}}=U(),{extend:M}=a();class k extends G.prototype.pointClass{}M(k.prototype,{shapeType:"funnel3d"});let{deg2rad:S}=a(),{pick:F}=a();function H(t,e,i,r){let o=e.options.chart.options3d,n=F(r,!!i&&e.inverted),s={x:e.plotWidth/2,y:e.plotHeight/2,z:o.depth/2,vd:F(o.depth,1)*F(o.viewDistance,0)},h=e.scale3d||1,d=S*o.beta*(n?-1:1),a=S*o.alpha*(n?-1:1),l={cosA:Math.cos(a),cosB:Math.cos(-d),sinA:Math.sin(a),sinB:Math.sin(-d)};return i||(s.x+=e.plotLeft,s.y+=e.plotTop),t.map(function(t){var e,i,r;let o=(e=(n?t.y:t.x)-s.x,i=(n?t.x:t.y)-s.y,r=(t.z||0)-s.z,{x:l.cosB*e-l.sinB*r,y:-l.sinA*l.sinB*e+l.cosA*i-l.cosB*l.sinA*r,z:l.cosA*l.sinB*e+l.sinA*i+l.cosA*l.cosB*r}),d=B(o,s,s.vd);return d.x=d.x*h+s.x,d.y=d.y*h+s.y,d.z=o.z*h+s.z,{x:n?d.y:d.x,y:n?d.x:d.y,z:d.z}})}function B(t,e,i){let r=i>0&&iN(this.translatedThreshold,this.yAxis.len),s=N(i.inside,!!this.options.stacking),h={x:r.x,y:r.y,height:0};i.align=N(i.align,!o||s?"center":n?"right":"left"),i.verticalAlign=N(i.verticalAlign,o||s?"middle":n?"top":"bottom"),"top"!==i.verticalAlign&&(h.y+=r.bottom/("bottom"===i.verticalAlign?1:2)),h.width=this.getWidthAt(h.y),this.options.reversed&&(h.width=r.fullWidth-h.width),s?h.x-=h.width/2:"left"===i.align?(i.align="right",h.x-=1.5*h.width):"right"===i.align?(i.align="left",h.x+=h.width/2):h.x-=h.width/2,t.dlBox=h,_.prototype.alignDataLabel.apply(this,arguments)}bindAxes(){P.prototype.bindAxes.apply(this,arguments),T(this.xAxis.options,{gridLineWidth:0,lineWidth:0,title:void 0,tickPositions:[]}),W(!0,this.yAxis.options,{gridLineWidth:0,title:void 0,labels:{enabled:!1}})}translate(){P.prototype.translate.apply(this,arguments);let t=this.chart,e=this.options,i=e.reversed,r=e.ignoreHiddenPoint,o=t.plotWidth,n=t.plotHeight,s=e.center,h=O(s[0],o),d=O(s[1],n),a=O(e.width,o),l=O(e.height,n),p=O(e.neckWidth,o),g=O(e.neckHeight,n),c=d-l/2+l-g,f=this.points,y=0,u=0,x,w,m,b,A,z,C,L,v;for(let t of(this.getWidthAt=w=function(t){return t>c||l===g?p:p+(a-p)*(1-(t-(d-l/2))/(l-g))},this.center=[h,d,l],this.centerX=h,f))r&&!1===t.visible||(y+=t.y);for(let o of f)C=null,m=y?o.y/y:0,z=(A=d-l/2+u*l)+m*l,x=w(A),L=z-A,v={gradientForSides:N(o.options.gradientForSides,e.gradientForSides),x:h,y:A,height:L,width:x,z:1,top:{width:x}},x=w(z),v.bottom={fraction:m,width:x},A>=c?v.isCylinder=!0:z>c&&(C=z,x=w(c),z=c,v.bottom.width=x,v.middle={fraction:L?(c-A)/L:0,width:x}),i&&(v.y=A=d+l/2-(u+m)*l,v.middle&&(v.middle.fraction=1-(L?v.middle.fraction:0)),x=v.width,v.width=v.bottom.width,v.bottom.width=x),o.shapeArgs=T(o.shapeArgs,v),o.percentage=100*m,o.plotX=h,i?o.plotY=d+l/2-(u+m/2)*l:o.plotY=(A+(C||z))/2,b=E([{x:h,y:o.plotY,z:i?-(a-w(o.plotY))/2:-w(o.plotY)/2}],t,!0)[0],o.tooltipPos=[b.x,b.y],o.dlBoxRaw={x:h,width:w(o.plotY),y:A,bottom:v.height||0,fullWidth:a},r&&!1===o.visible||(u+=m)}}j.compose=function(t){let e=t.prototype;e.funnel3d||(e.Element3D.types.funnel3d=w,A(e,{funnel3d:C,funnel3dPath:L}))},j.defaultOptions=W(_.defaultOptions,{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,gradientForSides:!0,animation:!1,edgeWidth:0,colorByPoint:!0,showInLegend:!1,dataLabels:{align:"right",crop:!1,inside:!1,overflow:"allow"}}),T(j.prototype,{pointClass:k,translate3dShapes:R}),U().registerSeriesType("funnel3d",j),j.compose(c().getRendererType());let Y=a();return h.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/funnel3d",["highcharts/highcharts"],function(t){return e(t,t.Color,t.RendererRegistry,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/funnel3d"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.RendererRegistry,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.RendererRegistry,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,i,r)=>(()=>{"use strict";var o={620:t=>{t.exports=e},608:t=>{t.exports=i},512:t=>{t.exports=r},944:e=>{e.exports=t}},n={};function s(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return o[t](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};s.d(h,{default:()=>Y});var d=s(944),a=s.n(d),l=s(620),p=s.n(l),g=s(608),c=s.n(g);let{parse:f}=p(),{charts:y}=a(),{Element3D:u}=c().getRendererType().prototype,{merge:x}=a(),w=class extends u{constructor(){super(...arguments),this.mainParts=["top","bottom"],this.parts=["top","bottom","frontUpper","backUpper","frontLower","backLower","rightUpper","rightLower"],this.sideGroups=["upperGroup","lowerGroup"],this.sideParts={upperGroup:["frontUpper","backUpper","rightUpper"],lowerGroup:["frontLower","backLower","rightLower"]},this.pathType="funnel3d"}opacitySetter(t){let e=parseFloat(t),i=this.parts,r=y[this.renderer.chartIndex],o="group-opacity-"+e+"-"+r.index;if(this.parts=this.mainParts,this.singleSetterForParts("opacity",e),this.parts=i,!r.renderer.filterId){for(let t of(r.renderer.definition({tagName:"filter",attributes:{id:o},children:[{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",attributes:{type:"table",tableValues:"0 "+e}}]}]}),this.sideGroups))this[t].attr({filter:"url(#"+o+")"});if(this.renderer.styledMode)for(let t of(r.renderer.definition({tagName:"style",textContent:".highcharts-"+o+" {filter:url(#"+o+")}"}),this.sideGroups))this[t].addClass("highcharts-"+o)}return this}fillSetter(t){let e=f(t),i=e.rgba[3],r={top:f(t).brighten(.1).get(),bottom:f(t).brighten(-.2).get()};if(i<1?(e.rgba[3]=1,e=e.get("rgb"),this.attr({opacity:i})):e=t,e.linearGradient||e.radialGradient||!this.gradientForSides||(e={linearGradient:{x1:0,x2:1,y1:1,y2:1},stops:[[0,f(t).brighten(-.2).get()],[.5,t],[1,f(t).brighten(-.2).get()]]}),e.linearGradient)for(let t of this.sideGroups){let i=this[t].gradientBox,o=e.linearGradient,n=x(e,{linearGradient:{x1:i.x+o.x1*i.width,y1:i.y+o.y1*i.height,x2:i.x+o.x2*i.width,y2:i.y+o.y2*i.height}});for(let e of this.sideParts[t])r[e]=n}else if(x(!0,r,{frontUpper:e,backUpper:e,rightUpper:e,frontLower:e,backLower:e,rightLower:e}),e.radialGradient)for(let t of this.sideGroups){let e=this[t].gradientBox,i=e.x+e.width/2,r=e.y+e.height/2,o=Math.min(e.width,e.height);for(let e of this.sideParts[t])this[e].setRadialReference([i,r,o])}if(this.singleSetterForParts("fill",null,r),this.color=this.fill=t,e.linearGradient)for(let t of[this.frontLower,this.frontUpper]){let e=t.element,i=e&&this.renderer.gradients[e.gradient];i&&"userSpaceOnUse"!==i.attr("gradientUnits")&&i.attr({gradientUnits:"userSpaceOnUse"})}return this}adjustForGradient(){let t;for(let e of this.sideGroups){let i={x:Number.MAX_VALUE,y:Number.MAX_VALUE},r={x:-Number.MAX_VALUE,y:-Number.MAX_VALUE};for(let o of this.sideParts[e])t=this[o].getBBox(!0),i={x:Math.min(i.x,t.x),y:Math.min(i.y,t.y)},r={x:Math.max(r.x,t.x+t.width),y:Math.max(r.y,t.y+t.height)};this[e].gradientBox={x:i.x,width:r.x-i.x,y:i.y,height:r.y-i.y}}}zIndexSetter(){return this.finishedOnAdd&&this.adjustForGradient(),this.renderer.Element.prototype.zIndexSetter.apply(this,arguments)}onAdd(){this.adjustForGradient(),this.finishedOnAdd=!0}},{charts:m}=a(),{error:b,extend:A,merge:z}=a();function C(t){let e=this.element3d("funnel3d",t),i=this.styledMode,r={"stroke-width":1,stroke:"none"};for(let t of(e.upperGroup=this.g("funnel3d-upper-group").attr({zIndex:e.frontUpper.zIndex}).add(e),[e.frontUpper,e.backUpper,e.rightUpper]))i||t.attr(r),t.add(e.upperGroup);for(let t of(e.lowerGroup=this.g("funnel3d-lower-group").attr({zIndex:e.frontLower.zIndex}).add(e),[e.frontLower,e.backLower,e.rightLower]))i||t.attr(r),t.add(e.lowerGroup);return e.gradientForSides=t.gradientForSides,e}function L(t){this.getCylinderEnd||b("A required Highcharts module is missing: cylinder.js",!0,m[this.chartIndex]);let e=m[this.chartIndex],i=t.alphaCorrection=90-Math.abs(e.options.chart.options3d.alpha%180-90),r=this.cuboidPath.call(this,z(t,{depth:t.width,width:(t.width+t.bottom.width)/2})),o=r.isTop,n=!r.isFront,s=!!t.middle,h=this.getCylinderEnd(e,z(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:i})),d=t.bottom.width,a=z(t,{width:d,x:t.x-d/2,z:t.z-d/2,alphaCorrection:i}),l=this.getCylinderEnd(e,a,!0),p=d,g=a,c=l,f=l,y;s&&(p=t.middle.width,g=z(t,{y:t.y+t.middle.fraction*t.height,width:p,x:t.x-p/2,z:t.z-p/2}),c=this.getCylinderEnd(e,g,!1),f=this.getCylinderEnd(e,g,!1));let u={top:h,bottom:l,frontUpper:this.getCylinderFront(h,c),zIndexes:{group:r.zIndexes.group,top:0!==o?0:3,bottom:1!==o?0:3,frontUpper:n?2:1,backUpper:n?1:2,rightUpper:n?2:1}};return u.backUpper=this.getCylinderBack(h,c),y=Math.min(p,t.width)/Math.max(p,t.width)!=1,u.rightUpper=this.getCylinderFront(this.getCylinderEnd(e,z(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:y?-i:0}),!1),this.getCylinderEnd(e,z(g,{alphaCorrection:y?-i:0}),!s)),s&&(y=Math.min(p,d)/Math.max(p,d)!=1,z(!0,u,{frontLower:this.getCylinderFront(f,l),backLower:this.getCylinderBack(f,l),rightLower:this.getCylinderFront(this.getCylinderEnd(e,z(a,{alphaCorrection:y?-i:0}),!0),this.getCylinderEnd(e,z(g,{alphaCorrection:y?-i:0}),!1)),zIndexes:{frontLower:n?2:1,backLower:n?1:2,rightLower:n?1:2}})),u}var v=s(512),U=s.n(v);let{seriesTypes:{column:G}}=U(),{extend:M}=a();class k extends G.prototype.pointClass{}M(k.prototype,{shapeType:"funnel3d"});let{deg2rad:S}=a(),{pick:F}=a();function H(t,e,i,r){let o=e.options.chart.options3d,n=F(r,!!i&&e.inverted),s={x:e.plotWidth/2,y:e.plotHeight/2,z:o.depth/2,vd:F(o.depth,1)*F(o.viewDistance,0)},h=e.scale3d||1,d=S*o.beta*(n?-1:1),a=S*o.alpha*(n?-1:1),l={cosA:Math.cos(a),cosB:Math.cos(-d),sinA:Math.sin(a),sinB:Math.sin(-d)};return i||(s.x+=e.plotLeft,s.y+=e.plotTop),t.map(function(t){var e,i,r;let o=(e=(n?t.y:t.x)-s.x,i=(n?t.x:t.y)-s.y,r=(t.z||0)-s.z,{x:l.cosB*e-l.sinB*r,y:-l.sinA*l.sinB*e+l.cosA*i-l.cosB*l.sinA*r,z:l.cosA*l.sinB*e+l.sinA*i+l.cosA*l.cosB*r}),d=B(o,s,s.vd);return d.x=d.x*h+s.x,d.y=d.y*h+s.y,d.z=o.z*h+s.z,{x:n?d.y:d.x,y:n?d.x:d.y,z:d.z}})}function B(t,e,i){let r=i>0&&iN(this.translatedThreshold,this.yAxis.len),s=N(i.inside,!!this.options.stacking),h={x:r.x,y:r.y,height:0};i.align=N(i.align,!o||s?"center":n?"right":"left"),i.verticalAlign=N(i.verticalAlign,o||s?"middle":n?"top":"bottom"),"top"!==i.verticalAlign&&(h.y+=r.bottom/("bottom"===i.verticalAlign?1:2)),h.width=this.getWidthAt(h.y),this.options.reversed&&(h.width=r.fullWidth-h.width),s?h.x-=h.width/2:"left"===i.align?(i.align="right",h.x-=1.5*h.width):"right"===i.align?(i.align="left",h.x+=h.width/2):h.x-=h.width/2,t.dlBox=h,_.prototype.alignDataLabel.apply(this,arguments)}bindAxes(){P.prototype.bindAxes.apply(this,arguments),T(this.xAxis.options,{gridLineWidth:0,lineWidth:0,title:void 0,tickPositions:[]}),W(!0,this.yAxis.options,{gridLineWidth:0,title:void 0,labels:{enabled:!1}})}translate(){P.prototype.translate.apply(this,arguments);let t=this.chart,e=this.options,i=e.reversed,r=e.ignoreHiddenPoint,o=t.plotWidth,n=t.plotHeight,s=e.center,h=O(s[0],o),d=O(s[1],n),a=O(e.width,o),l=O(e.height,n),p=O(e.neckWidth,o),g=O(e.neckHeight,n),c=d-l/2+l-g,f=this.points,y=0,u=0,x,w,m,b,A,z,C,L,v;for(let t of(this.getWidthAt=w=function(t){return t>c||l===g?p:p+(a-p)*(1-(t-(d-l/2))/(l-g))},this.center=[h,d,l],this.centerX=h,f))r&&!1===t.visible||(y+=t.y);for(let o of f)C=null,m=y?o.y/y:0,z=(A=d-l/2+u*l)+m*l,x=w(A),L=z-A,v={gradientForSides:N(o.options.gradientForSides,e.gradientForSides),x:h,y:A,height:L,width:x,z:1,top:{width:x}},x=w(z),v.bottom={fraction:m,width:x},A>=c?v.isCylinder=!0:z>c&&(C=z,x=w(c),z=c,v.bottom.width=x,v.middle={fraction:L?(c-A)/L:0,width:x}),i&&(v.y=A=d+l/2-(u+m)*l,v.middle&&(v.middle.fraction=1-(L?v.middle.fraction:0)),x=v.width,v.width=v.bottom.width,v.bottom.width=x),o.shapeArgs=T(o.shapeArgs,v),o.percentage=100*m,o.plotX=h,i?o.plotY=d+l/2-(u+m/2)*l:o.plotY=(A+(C||z))/2,b=E([{x:h,y:o.plotY,z:i?-(a-w(o.plotY))/2:-w(o.plotY)/2}],t,!0)[0],o.tooltipPos=[b.x,b.y],o.dlBoxRaw={x:h,width:w(o.plotY),y:A,bottom:v.height||0,fullWidth:a},r&&!1===o.visible||(u+=m)}}j.compose=function(t){let e=t.prototype;e.funnel3d||(e.Element3D.types.funnel3d=w,A(e,{funnel3d:C,funnel3dPath:L}))},j.defaultOptions=W(_.defaultOptions,{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,gradientForSides:!0,animation:!1,edgeWidth:0,colorByPoint:!0,showInLegend:!1,dataLabels:{align:"right",crop:!1,inside:!1,overflow:"allow"}}),T(j.prototype,{pointClass:k,translate3dShapes:R}),U().registerSeriesType("funnel3d",j),j.compose(c().getRendererType());let Y=a();return h.default})()); \ No newline at end of file diff --git a/modules/funnel3d.src.js b/modules/funnel3d.src.js index 631756509c..07eed30982 100644 --- a/modules/funnel3d.src.js +++ b/modules/funnel3d.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/funnel3d * @requires highcharts * @requires highcharts/highcharts-3d diff --git a/modules/gantt.js b/modules/gantt.js index d6dacf63e4..9334b57c26 100644 --- a/modules/gantt.js +++ b/modules/gantt.js @@ -1,5 +1,5 @@ !/** - * Highcharts Gantt JS v12.0.2 (2024-12-04) + * Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/pathfinder * @requires highcharts * @@ -8,8 +8,8 @@ * (c) 2016-2024 Øystein Moseng * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Point,t._Highcharts.StackItem):"function"==typeof define&&define.amd?define("highcharts/modules/gantt",["highcharts/highcharts"],function(t){return e(t,t.Chart,t.Axis,t.Color,t.SeriesRegistry,t.RendererRegistry,t.SVGRenderer,t.SVGElement,t.Point,t.StackItem)}):"object"==typeof exports?exports["highcharts/modules/gantt"]=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Point,t._Highcharts.StackItem):t.Highcharts=e(t.Highcharts,t.Highcharts.Chart,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.SVGRenderer,t.Highcharts.SVGElement,t.Highcharts.Point,t.Highcharts.StackItem)}("undefined"==typeof window?this:window,(t,e,i,s,o,r,n,a,l,h)=>(()=>{"use strict";let d,c,p;var u,g,x,f,m,b={532:t=>{t.exports=i},960:t=>{t.exports=e},620:t=>{t.exports=s},260:t=>{t.exports=l},608:t=>{t.exports=r},28:t=>{t.exports=a},540:t=>{t.exports=n},512:t=>{t.exports=o},184:t=>{t.exports=h},944:e=>{e.exports=t}},y={};function v(t){var e=y[t];if(void 0!==e)return e.exports;var i=y[t]={exports:{}};return b[t](i,i.exports,v),i.exports}v.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return v.d(e,{a:e}),e},v.d=(t,e)=>{for(var i in e)v.o(e,i)&&!v.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},v.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var M={};v.d(M,{default:()=>oX});var k=v(944),A=/*#__PURE__*/v.n(k);function w(t,e,i,s){return[["M",t,e+s/2],["L",t+i,e],["L",t,e+s/2],["L",t+i,e+s]]}function P(t,e,i,s){return w(t,e,i/2,s)}function O(t,e,i,s){return[["M",t+i,e],["L",t,e+s/2],["L",t+i,e+s],["Z"]]}function E(t,e,i,s){return O(t,e,i/2,s)}let S={compose:function(t){let e=t.prototype.symbols;e.arrow=w,e["arrow-filled"]=O,e["arrow-filled-half"]=E,e["arrow-half"]=P,e["triangle-left"]=O,e["triangle-left-half"]=E}},{defined:B,error:T,merge:C,objectEach:I}=A(),R=A().deg2rad,D=Math.max,L=Math.min,G=class{constructor(t,e,i){this.init(t,e,i)}init(t,e,i){this.fromPoint=t,this.toPoint=e,this.options=i,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let i=this.chart,s=i.styledMode,o=this.pathfinder,r={},n=this.graphics&&this.graphics.path;o.group||(o.group=i.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(i.seriesGroup)),o.group.translate(i.plotLeft,i.plotTop),n&&n.renderer||(n=i.renderer.path().add(o.group),s||n.attr({opacity:0})),n.attr(e),r.d=t,s||(r.opacity=1),n.animate(r),this.graphics=this.graphics||{},this.graphics.path=n}addMarker(t,e,i){let s,o,r,n,a,l,h,d;let c=this.fromPoint.series.chart,p=c.pathfinder,u=c.renderer,g="start"===t?this.fromPoint:this.toPoint,x=g.getPathfinderAnchorPoint(e);e.enabled&&((d="start"===t?i[1]:i[i.length-2])&&"M"===d[0]||"L"===d[0])&&(h={x:d[1],y:d[2]},o=g.getRadiansToVector(h,x),s=g.getMarkerVector(o,e.radius,x),r=-o/R,e.width&&e.height?(a=e.width,l=e.height):a=l=2*e.radius,this.graphics=this.graphics||{},n={x:s.x-a/2,y:s.y-l/2,width:a,height:l,rotation:r,rotationOriginX:s.x,rotationOriginY:s.y},this.graphics[t]?this.graphics[t].animate(n):(this.graphics[t]=u.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(n).add(p.group),u.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},g.series.options.animation)))}getPath(t){let e=this.pathfinder,i=this.chart,s=e.algorithms[t.type],o=e.chartObstacles;return"function"!=typeof s?(T('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(s.requiresObstacles&&!o&&(o=e.chartObstacles=e.getChartObstacles(t),i.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(o)),s(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),C({chartObstacles:o,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:i.plotWidth,yMin:0,yMax:i.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,i=e.chart,s=i.pathfinder,o={},r=C(i.options.connectors,e.options.connectors,t.options.connectors,this.options);!i.styledMode&&(o.stroke=r.lineColor||t.color,o["stroke-width"]=r.lineWidth,r.dashStyle&&(o.dashstyle=r.dashStyle)),o.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,B((r=C(o,r)).marker.radius)||(r.marker.radius=L(D(Math.ceil((r.algorithmMargin||8)/2)-1,1),5));let n=this.getPath(r),a=n.path;n.obstacles&&(s.lineObstacles=s.lineObstacles||[],s.lineObstacles=s.lineObstacles.concat(n.obstacles)),this.renderPath(a,o),this.addMarker("start",C(r.marker,r.startMarker),a),this.addMarker("end",C(r.marker,r.endMarker),a)}destroy(){this.graphics&&(I(this.graphics,function(t){t.destroy()}),delete this.graphics)}},{composed:z}=A(),{addEvent:N,merge:W,pushUnique:H,wrap:F}=A(),U={color:"#ccd3ff",width:2,label:{format:"%[abdYHM]",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t,!0)},rotation:0,style:{fontSize:"0.7em"}}};function X(){let t=this.options,e=t.currentDateIndicator;if(e){let i="object"==typeof e?W(U,e):W(U);i.value=Date.now(),i.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(i)}}function Y(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function V(t,e){let i=this.options;return i&&i.className&&-1!==i.className.indexOf("highcharts-current-date-indicator")&&i.label&&"function"==typeof i.label.formatter?(i.value=Date.now(),i.label.formatter.call(this,i.value,i.label.format)):t.call(this,e)}var _=v(960),j=/*#__PURE__*/v.n(_);let{defaultOptions:q}=A(),{isArray:Z,merge:$,splat:K}=A();class J extends j(){init(t,e){let i;let s=t.xAxis,o=t.yAxis;t.xAxis=t.yAxis=void 0;let r=$(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},t,{isGantt:!0});t.xAxis=s,t.yAxis=o,r.xAxis=(Z(t.xAxis)?t.xAxis:[t.xAxis||{},{}]).map((t,e)=>(1===e&&(i=0),$({grid:{borderColor:"#cccccc",enabled:!0},opposite:q.xAxis?.opposite??t.opposite??!0,linkedTo:i},t,{type:"datetime"}))),r.yAxis=K(t.yAxis||{}).map(t=>$({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:t.categories?t.type:"treegrid"},t)),super.init(r,e)}}!function(t){t.ganttChart=function(e,i,s){return new t(e,i,s)}}(J||(J={}));let Q=J;var tt=v(532),te=/*#__PURE__*/v.n(tt);let{isTouchDevice:ti}=A(),{addEvent:ts,merge:to,pick:tr}=A(),tn=[];function ta(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function tl(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:n}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+n):(o.left=tr(e.left,this.plotLeft+n),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+tr(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function th(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this),tr(t.redraw,!0)&&this.redraw(t.animation))}function td(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this))}function tc(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!ti&&"x"===this.zooming.type||ti&&"x"===this.zooming.pinchType))return!1}function tp(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function tu(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(to(!0,this.options.navigator,e),to(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let tg={compose:function(t,e){if(A().pushUnique(tn,t)){let i=t.prototype;d=e,i.callbacks.push(tp),ts(t,"afterAddSeries",ta),ts(t,"afterSetChartSize",tl),ts(t,"afterUpdate",th),ts(t,"beforeRender",td),ts(t,"beforeShowResetZoom",tc),ts(t,"update",tu)}}},{isTouchDevice:tx}=A(),{addEvent:tf,correctFloat:tm,defined:tb,isNumber:ty,pick:tv}=A();function tM(){this.navigatorAxis||(this.navigatorAxis=new tA(this))}function tk(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,n=i.zooming.pinchType,a=s.rangeSelector,l=i.zooming.type;if(this.isXAxis&&(o?.enabled||a?.enabled)){if("y"===l&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===l||tx&&"xy"===n)&&this.options.range){let e=r.previousZoom;tb(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class tA{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),tf(t,"init",tM),tf(t,"setExtremes",tk))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,n=tv(i,o.translate(t,!0,!o.horiz)),a=tv(s,o.translate(e,!0,!o.horiz));return tb(i)||(n=tm(n+r)),tb(s)||(a=tm(a-r)),ty(n)&&ty(a)||(n=a=void 0),{min:n,max:a}}}var tw=v(620),tP=/*#__PURE__*/v.n(tw),tO=v(512),tE=/*#__PURE__*/v.n(tO);let{parse:tS}=tP(),{seriesTypes:tB}=tE(),tT={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:tS("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===tB.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:tC,isNumber:tI,pick:tR}=A(),tD={rect:function(t,e,i,s,o){return o&&o.r?function(t,e,i,s,o){let r=o?.r||0;return[["M",t+r,e],["L",t+i-r,e],["A",r,r,0,0,1,t+i,e+r],["L",t+i,e+s-r],["A",r,r,0,0,1,t+i-r,e+s],["L",t+r,e+s],["A",r,r,0,0,1,t,e+s-r],["L",t,e+r],["A",r,r,0,0,1,t+r,e],["Z"]]}(t,e,i,s,o):[["M",t,e],["L",t+i,e],["L",t+i,e+s],["L",t,e+s],["Z"]]}},{relativeLength:tL}=A(),tG={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,n=tL(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...tD.rect(-r-1,.5,2*r+1,s,{r:n})]}};var tz=v(608),tN=/*#__PURE__*/v.n(tz);let{defined:tW}=A(),{setOptions:tH}=A(),{composed:tF}=A(),{getRendererType:tU}=tN(),{setFixedRange:tX}={setFixedRange:function(t){let e=this.xAxis[0];tW(e.dataMax)&&tW(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{addEvent:tY,extend:tV,pushUnique:t_}=A();function tj(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let tq={compose:function(t,e,i){tA.compose(e),t_(tF,"Navigator")&&(t.prototype.setFixedRange=tX,tV(tU().prototype.symbols,tG),tY(i,"afterUpdate",tj),tH({navigator:tT}))}},{composed:tZ}=A(),{addEvent:t$,defined:tK,pick:tJ,pushUnique:tQ}=A();!function(t){let e;function i(t){let e=tJ(t.options&&t.options.min,t.min),i=tJ(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:tK(t.dataMin)?Math.min(e,t.min,t.dataMin,tJ(t.threshold,1/0)):e,scrollMax:tK(t.dataMax)?Math.max(i,t.max,t.dataMax,tJ(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),t$(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:n,scrollMin:a,scrollMax:l}=i(t),h=l-a;if(tK(r)&&tK(n)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=a+h*this.to,o=a+h*this.from):(s=a+h*(1-this.from),o=a+h*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),n=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,h=this.options.margin||0;if(n&&l){if(this.horiz)this.opposite||(l[1]+=a),n.position(this.left,this.top+this.height+2+l[1]-(this.opposite?h:0),this.width,this.height),this.opposite||(l[1]+=h),t=1;else{let e;this.opposite&&(l[0]+=a),e=n.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:h):this.opposite?0:h,n.position(e,this.top,this.width,this.height),this.opposite&&(l[0]+=h),t=0}if(l[t]+=n.size+(n.options.margin||0),isNaN(o)||isNaN(r)||!tK(this.min)||!tK(this.max)||this.dataMin===this.dataMax)n.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),n.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?n.setRange(e,s):n.setRange(1-s,1-e)}}t.compose=function(t,i){tQ(tZ,"Axis.Scrollbar")&&(e=i,t$(t,"afterGetOffset",s),t$(t,"afterInit",o),t$(t,"afterRender",r))}}(u||(u={}));let t0=u,t1={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:t2}=A(),{addEvent:t3,correctFloat:t5,crisp:t6,defined:t4,destroyObjectProperties:t8,fireEvent:t9,merge:t7,pick:et,removeEvent:ee}=A();class ei{static compose(t){t0.compose(t,ei)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,t8(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let n=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||n.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),n.attr(n.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},n.strokeWidth()));let a=e.path(ei.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=t7(t1,t2.scrollbar,e),this.options.margin=et(this.options.margin,10),this.chart=i,this.size=et(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&t9(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&t9(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:n}=this.options,a=this.rendered?"animate":"attr",l=s,h=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=l,this.yOffset=h,n?(this.width=this.yOffset=i=h=this.size,this.xOffset=l=0,this.yOffset=h=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=l=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[a]({translateX:t,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:n?0:i-l,translateY:n?s-h:0})}removeEvents(){this._events.forEach(function(t){ee.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-t6(0,r),y:-t6(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(ei.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-t6(0,this.scrollbarStrokeWidth),-t6(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,n=o.minWidth,a=this.barWidth,l=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!t4(a))return;let h=a*Math.min(e,1);i=Math.ceil(a*(t=Math.max(t,0))),this.calculatedWidth=s=t5(h-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return et(this.options.liveRedraw,A().svg&&!A().isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!t4(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),t9(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,t7(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=t5(1-t5(e-t)),e=1),t<0&&(e=t5(e-t),t=0),this.from=t,this.to=e}}ei.defaultOptions=t1,t2.scrollbar=t7(!0,ei.defaultOptions,t2.scrollbar);var es=v(540),eo=/*#__PURE__*/v.n(es);let{defaultOptions:er}=A(),{isTouchDevice:en}=A(),{prototype:{symbols:ea}}=eo(),{addEvent:el,clamp:eh,correctFloat:ed,defined:ec,destroyObjectProperties:ep,erase:eu,extend:eg,find:ex,fireEvent:ef,isArray:em,isNumber:eb,merge:ey,pick:ev,removeEvent:eM,splat:ek}=A();function eA(t,...e){let i=[].filter.call(e,eb);if(i.length)return Math[t].apply(0,i)}class ew{static compose(t,e,i){tg.compose(t,ew),tq.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),n=r/2,a=r%2/2,l=this.scrollButtonSize,h=this.size,d=this.top,c=this.height,p=d-n,u=d+c,g=this.left,x,f;i?(x=d+e+a,e=d+t+a,f=[["M",g+c,d-l-a],["L",g+c,x],["L",g,x],["M",g,e],["L",g+c,e],["L",g+c,d+h+l]],o&&f.push(["M",g+c,x-n],["L",g+c,e+n])):(g-=l,t+=g+l-a,e+=g+l-a,f=[["M",g,p],["L",t,p],["L",t,u],["M",e,u],["L",e,p],["L",g+h+2*l,p]],o&&f.push(["M",t-n,p],["L",e+n,p])),this.outline[s]({d:f})}drawMasks(t,e,i,s){let o,r,n,a;let l=this.left,h=this.top,d=this.height;i?(n=[l,l,l],a=[h,h+t,h+e],r=[d,d,d],o=[t,e-t,this.size-e]):(n=[l,l+t,l+e],a=[h,h,h],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:n[e],y:a[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,n={cursor:o?"ns-resize":"ew-resize"},a=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let l=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(a));s.styledMode||(l.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&l.css(n))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:l}=i;[0,1].forEach(e=>{let h=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===h){if(!t.handles[e].isImg&&t.handles[e].symbolName!==h){let i=ea[h].call(ea,-l/2-1,0,l,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=h}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(h,-l/2-1,0,l,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(a),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-l/2),rotationOriginY:(o+l)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-l/2-1,y:0}).css(n)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(ey(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),ec(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{eM(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(el(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,n=r.pointRange||0,a=r.navigatorAxis.fake?o.xAxis[0]:r,l=this.navigatorEnabled,h=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,x,f,m=this.scrollbarHeight,b,y;if(this.hasDragged&&!ec(i))return;if(this.isDirty&&this.renderElements(),t=ed(t-n/2),e=ed(e+n/2),!eb(t)||!eb(e)){if(!h)return;i=0,s=ev(r.width,a.width)}this.left=ev(r.left,o.plotLeft+u+(d?o.plotWidth:0));let v=this.size=b=ev(r.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?m:b+2*u,i=ev(i,r.toPixels(t,!0)),s=ev(s,r.toPixels(e,!0)),eb(i)&&Math.abs(i)!==1/0||(i=0,s=g);let M=r.toValue(i,!0),k=r.toValue(s,!0),A=Math.abs(ed(k-M));Ap&&(this.grabbedLeft?i=r.toPixels(k-p-n,!0):this.grabbedRight&&(s=r.toPixels(M+p+n,!0))),this.zoomedMax=eh(Math.max(i,s),0,v),this.zoomedMin=eh(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let w=Math.round(this.zoomedMin);l&&(this.navigatorGroup.attr({visibility:"inherit"}),y=h&&!this.hasDragged?"animate":"attr",this.drawMasks(w,v,d,y),this.drawOutline(w,v,d,y),this.navigatorOptions.handles.enabled&&(this.drawHandle(w,0,d,y),this.drawHandle(v,1,d,y))),this.scrollbar&&(d?(f=this.top-u,x=this.left-m+(l||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),m=b+2*u):(f=this.top+(l?this.height:-m),x=this.left-u),this.scrollbar.position(x,f,g,m),this.scrollbar.setRange(this.zoomedMin/(b||1),this.zoomedMax/(b||1))),this.rendered=!0,this.isDirty=!1,ef(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(el(e.renderTo,"mousemove",o),el(i.ownerDocument,"mouseup",r),el(e.renderTo,"touchmove",o),el(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(el(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(el(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,n=this.range,a=this.left,l=t.chartX,h,d,c,p;i.inverted&&(l=t.chartY,a=this.top),1===e?(this.grabbedCenter=l,this.fixedWidth=n,this.dragOffset=l-o):(p=l-a-n/2,0===e?p=Math.max(0,p):2===e&&p+n>=r&&(p=r-n,this.reversedExtremes?(p-=n,d=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=n,ec((c=s.navigatorAxis.toFixedRange(p,p+n,d,h)).min)&&ef(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,n=i.inverted,a=e.left,l;(!t.touches||0!==t.touches[0].pageX)&&(l=(t=i.pointer?.normalize(t)||t).chartX,n&&(a=e.top,l=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,l-a,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,l-a)):e.grabbedCenter&&(e.hasDragged=!0,ls+r-o&&(l=s+r-o),e.render(0,0,l-r,l-r+o)),e.hasDragged&&e.scrollbar&&ev(e.scrollbar.options.liveRedraw,!en&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,n;let a=this.chart,l=this.xAxis,h=this.scrollbar,d=t.DOMEvent||t,c=a.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!h||!h.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),ec((n=l.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&ef(this,"setRange",{min:Math.min(n.min,n.max),max:Math.max(n.min,n.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&eb(this.zoomedMin)&&eb(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){eM(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&eM(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,n=s&&i.height||0,a=r&&o.height||0,l=o.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=n,this.scrollbarHeight=a,this.scrollButtonSize=l,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let h=this,d=h.baseSeries,c=t.xAxis.length,p=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,h.navigatorEnabled){let e=this.getXAxisOffsets();h.xAxis=new(te())(t,ey({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:n}:{offsets:e,height:n}),"xAxis"),h.yAxis=new(te())(t,ey(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:ev(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:n}:{height:n}),"yAxis"),d||i.series.data?h.updateNavigatorSeries(!1):0===t.series.length&&(h.unbindRedraw=el(t,"beforeRedraw",function(){t.series.length>0&&!h.series&&(h.setBaseSeries(),h.unbindRedraw())})),h.reversedExtremes=t.inverted&&!h.xAxis.reversed||!t.inverted&&h.xAxis.reversed,h.renderElements(),h.addMouseEvents()}else h.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*l,n=eA("min",s.options.min,o.dataMin),a=eA("max",s.options.max,o.dataMax)-n;return i?e*a/r+n:r*(e-n)/a},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},h.xAxis.navigatorAxis.axis=h.xAxis,h.xAxis.navigatorAxis.toFixedRange=tA.prototype.toFixedRange.bind(h.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=ey(t.options.scrollbar,{vertical:t.inverted});!eb(e.margin)&&h.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=h.scrollbar=new ei(t.renderer,e,t),el(h.scrollbar,"changed",function(t){let e=h.size,i=e*this.to,s=e*this.from;h.hasDragged=h.scrollbar.hasDragged,h.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){h.onMouseUp(t)})})}h.addBaseSeriesEvents(),h.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=ev(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,n=i.options;return t&&null===i.dataMin||(e={dataMin:ev(s.parse(r?.min),eA("min",s.parse(n.min),i.dataMin,o.dataMin,o.min)),dataMax:ev(s.parse(r?.max),eA("max",s.parse(n.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?ex(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},n=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(eM(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),a,l,h=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=eg({color:t.color,visible:t.visible},em(h)?er.navigator.series:h);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(a=t.options||{}).navigatorOptions||{},p.dataLabels=ek(p.dataLabels),(l=ey(a,r,p,d)).pointRange=ev(p.pointRange,d.pointRange,er.plotOptions[l.type||"line"].pointRange);let u=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!u,l.data=u||a.data?.slice(0),c&&c.options?c.update(l,e):(t.navigatorSeries=s.initSeries(l),s.setSortedData(),t.navigatorSeries.baseSeries=t,n.push(t.navigatorSeries))}),(h.data&&!(o&&o.length)||em(h))&&(i.hasNavigatorData=!1,(h=ek(h)).forEach((t,e)=>{r.name="Navigator "+(n.length+1),(l=ey(er.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,l.data&&(i.hasNavigatorData=!0,n.push(s.initSeries(l)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(el(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(el(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(el(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(el(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(el(i,"remove",function(){e&&eu(e,i),this.navigatorSeries&&t.series&&(eu(t.series,this.navigatorSeries),ec(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,n=s.dataMin,a=s.dataMax,l=r-o,h=i.stickToMin,d=i.stickToMax,c=ev(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(h&&(t=(e=n)+l),d&&(t=a+c,h||(e=Math.max(n,t-l,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),u&&(h||d)&&eb(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=ev(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,n=s.options.range;return!!(eb(o)&&eb(r))&&(n&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{ep(t)}),this.navigatorEnabled=!1}}let eP={lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"→"},rangeSelector:{allButtonsEnabled:!1,buttons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%[ebY]",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}},{defaultOptions:eO}=A(),{composed:eE}=A(),{addEvent:eS,defined:eB,extend:eT,isNumber:eC,merge:eI,pick:eR,pushUnique:eD}=A(),eL=[];function eG(){let t,e;let i=this.range,s=i.type,o=this.max,r=this.chart.time,n=function(t,e){let i=r.toParts(t),o=i.slice();"year"===s?o[0]+=e:o[1]+=e;let n=r.makeTime.apply(r,o),a=r.toParts(n);return"month"===s&&i[1]===a[1]&&1===Math.abs(e)&&(o[0]=i[0],o[1]=i[1],o[2]=0),(n=r.makeTime.apply(r,o))-t};eC(i)?(t=o-i,e=i):i&&(t=o+n(o,-(i.count||1)),this.chart&&this.chart.setFixedRange(o-t));let a=eR(this.dataMin,Number.MIN_VALUE);return eC(t)||(t=a),t<=a&&(t=a,void 0===e&&(e=n(t,i.count)),this.newMax=Math.min(t+e,eR(this.dataMax,Number.MAX_VALUE))),eC(o)?!eC(i)&&i&&i._offsetMin&&(t+=i._offsetMin):t=void 0,t}function ez(){this.rangeSelector?.redrawElements()}function eN(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new c(this))}function eW(){let t=this.rangeSelector;if(t){eC(t.deferredYTDClick)&&(t.clickButton(t.deferredYTDClick),delete t.deferredYTDClick);let e=t.options.verticalAlign;t.options.floating||("bottom"===e?this.extraBottomMargin=!0:"top"!==e||(this.extraTopMargin=!0))}}function eH(){let t;let e=this.rangeSelector;if(!e)return;let i=this.xAxis[0].getExtremes(),s=this.legend,o=e&&e.options.verticalAlign;eC(i.min)&&e.render(i.min,i.max),s.display&&"top"===o&&o===s.options.verticalAlign&&(t=eI(this.spacingBox),"vertical"===s.options.layout?t.y=this.plotTop:t.y+=e.getHeight(),s.group.placed=!1,s.align(t))}function eF(){for(let t=0,e=eL.length;tt()),eL.splice(t,1);return}}}function eU(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function eX(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,s=this.extraTopMargin,o=this.rangeSelector;if(e&&e.enabled&&!eB(o)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=o=new c(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,o){let t=e&&e.verticalAlign||o.options&&o.options.verticalAlign;o.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==s)&&(this.isDirtyBox=!0)}}let eY={compose:function(t,e,i){if(c=i,eD(eE,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=eG,eS(e,"afterGetContainer",eN),eS(e,"beforeRender",eW),eS(e,"destroy",eF),eS(e,"getMargins",eU),eS(e,"redraw",eH),eS(e,"update",eX),eS(e,"beforeRedraw",ez),i.callbacks.push(eH),eT(eO,{rangeSelector:eP.rangeSelector}),eT(eO.lang,eP.lang)}}};var eV=v(28),e_=/*#__PURE__*/v.n(eV);let{fireEvent:ej,isArray:eq,objectEach:eZ,uniqueKey:e$}=A(),eK=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||e$(),this.modified=this,this.rowCount=0,this.versionTag=e$();let e=0;eZ(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,eZ(this.columns,e=>{eq(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;eZ(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ej(this,"afterSetColumns"),this.versionTag=e$())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;eZ(t,(t,n)=>{let a=o[n]||s?.addColumns!==!1&&Array(r);a&&(i?a.splice(e,0,t):a[e]=t,o[n]=a)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(ej(this,"afterSetRows"),this.versionTag=e$())}},{addEvent:eJ,correctFloat:eQ,css:e0,defined:e1,error:e2,isNumber:e3,pick:e5,timeUnits:e6,isString:e4}=A();!function(t){function e(t,i,s,o,r=[],n=0,a){let l={},h=this.options.tickPixelInterval,d=this.chart.time,c=[],p,u,g,x,f,m=0,b=[],y=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!r||r.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let v=r.length;for(p=0;ps,r[p]5*n||f){if(r[p]>y){for(u=d.getTimeTicks(t,r[m],r[p],o);u.length&&u[0]<=y;)u.shift();u.length&&(y=u[u.length-1]),c.push(b.length),b=b.concat(u)}m=p+1}if(f)break}if(u){if(x=u.info,a&&x.unitRange<=e6.hour){for(m=1,p=b.length-1;mt-e),(a=i[Math.floor(i.length/2)])<.6*h&&(a=null),c=b[t-1]>s?t-1:t,n=void 0;c--;)d=Math.abs(n-(r=e[c])),n&&d<.8*h&&(null===a||d<.8*a)?(l[b[c]]&&!l[b[c+1]]?(o=c+1,n=r):o=c,b.splice(o,1)):n=r}return b}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let r=eQ((t-i)*s+this.minPixelPadding),n=eQ(e.getIndexOfPoint(r,o)),a=eQ(n%1);if(n>=0&&n<=o.length-1){let t=o[Math.floor(n)],e=o[Math.ceil(n)];return o[Math.floor(n)]+a*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function r(){this.ordinal||(this.ordinal=new t.Additions(this))}function n(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&e1(e.overscroll)&&0!==e.overscroll&&e3(this.max)&&e3(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&e1(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function a(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function l(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function h(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,r=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let n=this.mouseDownX,a=e.getExtremes(),l=a.dataMin,h=a.dataMax,d=a.min,c=a.max,p=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((n-s)/(e.translationSlope*(e.ordinal.slope||u))),x=e.ordinal.getExtendedPositions(),f={ordinal:{positions:x,extendedOrdinalPositions:x}},m=e.index2val,b=e.val2lin;if(d<=l&&g<0||c+i>=h&&g>0)return;f.ordinal.positions?Math.abs(g)>1&&(p&&p.forEach(function(t){t.setState()}),h>(o=f.ordinal.positions)[o.length-1]&&o.push(h),this.setFixedRange(c-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,m.apply(f,[b.apply(f,[d,!0])+g]),m.apply(f,[b.apply(f,[c,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],c)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,e0(this.container,{cursor:"move"})):r=!0}else r=!0;r||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function c(t,e){let i;let s=this.ordinal,r=s.positions,n=s.slope,a;if(!r)return t;let l=r.length;if(r[0]<=t&&r[l-1]>=t)i=o(r,t);else{if(!((a=s.getExtendedPositions&&s.getExtendedPositions())&&a.length))return t;let l=a.length;n||(n=(a[l-1]-a[0])/l);let h=o(a,r[0]);if(t>=a[0]&&t<=a[l-1])i=o(a,t)-h;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(m=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(b=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||r)&&(a=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),x=Math.min(x,e5(t.closestPointRange,x)),a)){for(e=0;e2){for(h=g[1]-g[0],u=a-1;u--&&!f;)g[u+1]-g[u]!==h&&(f=!0);!t.options.keepOrdinalPadding&&(g[0]-s>h||o-g[g.length-1]>h)&&(f=!0)}else t.options.overscroll&&(2===a?x=g[1]-g[0]:1===a?(x=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+x]):x=e.overscrollPointsRange);f||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=x,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),c=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=p=(o-s)/(c-d),e.offset=s-d*p):(e.overscrollPointsRange=e5(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=n&&f,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,r;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),n=t?i.ordinal.convertOverscroll(i.options.overscroll):0,a=i.getExtremes(),l,h,d=e.index;return d||(d=e.index={}),!d[r]&&((l={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:a.dataMin,max:a.dataMax+n}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=l,i.series.forEach(i=>{h={xAxis:l,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:A().noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);h.dataTable=new eK({columns:{x:s}}),h.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},l.series.push(h),i.processData.apply(h)}),l.applyGrouping({hasExtremesChanged:!0}),h?.closestPointRange!==h?.basePointRange&&h.currentDataGrouping&&(l.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:l}),!i.ordinal.originalOrdinalRange&&l.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=l.ordinal.originalOrdinalRange),l.ordinal.positions&&(d[r]=l.ordinal.positions)),d[r]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,r=[],n,a,l=this.groupIntervalFactor;if(!l){for(a=0;a-1!==t.indexOf("%"+e)):t.dateStyle||t.day||t.month||t.year,i=id(t)?["H","k","I","l","M","S"].some(e=>-1!==t.indexOf("%"+e)):t.timeStyle||t.hour||t.minute||t.second;return e&&i?"datetime-local":e?"date":i?"time":"text"}class im{static compose(t,e){eY.compose(t,e,im)}constructor(t){this.isDirty=!1,this.buttonOptions=im.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],r=i.scroller&&i.scroller.getUnionExtremes()||o||{},n=s.type,a=s.dataGrouping,l=r.dataMin,h=r.dataMax,d,c=ih(o?.max)?Math.round(Math.min(o.max,h??o.max)):void 0,p,u=s._range,g,x,f,m=!0;if(null!==l&&null!==h){if(this.setSelected(t),a&&(this.forcedDataGrouping=!0,te().prototype.setDataGrouping.call(o||{chart:this.chart},a,!1),this.frozenStates=s.preserveDataGrouping),"month"===n||"year"===n)o?(x={range:s,max:c,chart:i,dataMin:l,dataMax:h},d=o.minFromRange.call(x),ih(x.newMax)&&(c=x.newMax),m=!1):u=s;else if(u)ih(c)&&(c=Math.min((d=Math.max(c-u,l))+u,h),m=!1);else if("ytd"===n){if(o)!o.hasData()||ih(h)&&ih(l)||(l=Number.MAX_VALUE,h=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(l=Math.min(e[0],l),h=Math.max(e[e.length-1],h))}),e=!1),ih(h)&&ih(l)&&(d=g=(f=this.getYTDExtremes(h,l)).min,c=f.max);else{this.deferredYTDClick=t;return}}else"all"===n&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=l,c=h);if(m&&s._offsetMin&&ii(d)&&(d+=s._offsetMin),s._offsetMax&&ii(c)&&(c+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)ih(d)&&ih(c)&&(o.setExtremes(d,c,iu(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{p=ig(i.options.xAxis||{})[0];let t=e7(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});e7(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=p.range,e.options.min=p.min,t()})}il(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,r=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&il(t,"blur"),i&&i.blur&&il(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(e7(t.container,"mousedown",r)),this.eventsToUnbind.push(e7(t,"resize",r)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(e7(t,"load",function(){t.xAxis&&t.xAxis[0]&&e7(t.xAxis[0],"setExtremes",function(i){ih(this.max)&&ih(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],r=Math.round(o.max-o.min),n=!o.hasVisibleSeries,a=24*36e5,l=e.scroller&&e.scroller.getUnionExtremes()||o,h=l.dataMin,d=l.dataMax,c=t.getYTDExtremes(d,h),p=c.min,u=c.max,g=t.selected,x=t.options.allButtonsEnabled,f=Array(t.buttonOptions.length).fill(0),m=ih(g),b=t.buttons,y=!1,v=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,l=e.type,c=e.count||1,b=e._offsetMax-e._offsetMin,M=i===g,k=s>d-h,A=ss&&(P=!0)}else("month"===l||"year"===l)&&r+36e5>=({month:28,year:365})[l]*a*c-b&&r-36e5<=({month:31,year:366})[l]*a*c+b?P=!0:"ytd"===l?(P=u-p+b===r,w=!M):"all"===l&&(P=o.max-o.min>=d-h);let O=!x&&!(y&&"all"===l)&&(k||A||n),E=y&&"all"===l||!w&&P||M&&t.frozenStates;O?f[i]=3:E&&(!m||i===g)&&(v=i)}),null!==v?(f[v]=2,t.setSelected(v)):(t.setSelected(),s&&(s.setState(0),s.attr({text:(e9.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?c=void 0:cl&&(c=l)),void 0!==c&&r.setExtremes(h?c:r.min,h?r.max:c,void 0,void 0,{trigger:"rangeSelectorInput"}))}let c=l[h?"rangeSelectorFrom":"rangeSelectorTo"]||"",p=n.label(c,0).addClass("highcharts-range-label").attr({padding:c?2:0,height:c?a.inputBoxHeight:0}).add(s),u=n.label("",0).addClass("highcharts-range-input").attr({padding:2,width:a.inputBoxWidth,height:a.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:a.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=it("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",ix(a.inputDateFormat||"%e %b %Y")),e.styledMode||(p.css(ic(r,a.labelStyle)),u.css(ic({color:"#333333"},r,a.inputStyle)),ie(g,ia({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:r.fontSize,fontFamily:r.fontFamily,top:"-9999em"},a.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===A().doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let x=!1;return g.onchange=()=>{x||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{x=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{x=!1},{dateBox:u,input:g,label:p}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,r=o.inputEnabled,n=iu(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=it("div",void 0,{position:"relative",height:0,zIndex:n}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),r&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(ii(o.dataMin)&&ii(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=e9.lang,o=e.renderer,r=ic(i.buttonTheme),n=r&&r.states;delete r.width,delete r.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let a=this.dropdown=it("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),l=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},ic(r,{"stroke-width":iu(r["stroke-width"],0),width:"auto",paddingLeft:iu(i.buttonTheme.paddingLeft,l?.padding,8),paddingRight:iu(i.buttonTheme.paddingRight,l?.padding,8)}),n&&n.hover,n&&n.select,n&&n.disabled).hide().add(this.group),e7(a,"touchstart",()=>{a.style.fontSize="16px"});let h=A().isMS?"mouseover":"mouseenter",d=A().isMS?"mouseout":"mouseleave";e7(a,h,()=>{il(this.dropdownLabel.element,h)}),e7(a,d,()=>{il(this.dropdownLabel.element,d)}),e7(a,"change",()=>{il(this.buttons[a.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),it("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,a),this.createButtons()}createButtons(){let{options:t}=this,e=ic(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:r,chart:n,options:a}=this,l=n.renderer,h=ic(a.buttonTheme);o?.add(it("option",{textContent:t.title||t.text}),e+2),r[e]=l.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},h,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&r[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:r,zoomText:n}=this,a=i.options,l=a.exporting&&!1!==a.exporting.enabled&&a.navigation&&a.navigation.buttonOptions,{buttonPosition:h,inputPosition:d,verticalAlign:c}=r,p=(t,e)=>l&&this.titleCollision(i)&&"top"===c&&"right"===e.align&&e.y-t.getBBox().height-12<(l.y||0)+(l.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&h&&d){let a=h.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;n&&(t+=n.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=r.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=p(t,h);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let l=0;r.inputEnabled&&o&&(l=p(o,d),"left"===d.align?a=u:"right"===d.align&&(a=-Math.max(i.axisOffset[1],-l)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+a-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(l),s.align({verticalAlign:c},!0,i.spacingBox);let g=s.alignAttr.translateY,x=s.getBBox().height+20,f=0;if("bottom"===c){let t=i.legend&&i.legend.options;f=g-(x=x+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+iu(t.margin,10):0)-20)-(r.floating?0:r.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===c?(r.floating&&(f=0),i.titleOffset&&i.titleOffset[0]&&(f=i.titleOffset[0]),f+=i.margin[0]-i.spacing[0]||0):"middle"===c&&(d.y===h.y?f=g:(d.y||h.y)&&(d.y<0||h.y<0?f-=Math.min(d.y,h.y):f=g-x)),s.translate(r.x,r.y+Math.floor(f));let{minInput:m,maxInput:b,dropdown:y}=this;r.inputEnabled&&m&&b&&(m.style.marginTop=s.translateY+"px",b.style.marginTop=s.translateY+"px"),y&&(y.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=ic(s.buttonTheme),r=o&&o.states,n=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(io(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,n,r),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},l=e=>{if(s?.alignOptions&&i){let r=s.alignAttr.translateX+s.alignOptions.x-t+s.getBBox().x+2,a=s.alignOptions.width||0,l=i.alignAttr.translateX+i.getBBox().x;return l+e>r&&r+a>l&&o.y{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};if(i){if("always"===r){this.collapseButtons(),l(a())&&h();return}"never"===r&&this.expandButtons()}s&&i?n.align===o.align||l(this.initialButtonGroupWidth+20)?"responsive"===r?(this.collapseButtons(),l(a())&&h()):h():"responsive"===r&&this.expandButtons():i&&"responsive"===r&&(this.initialButtonGroupWidth>e.plotWidth?this.collapseButtons():this.expandButtons())}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,chart:e,dropdownLabel:i,dropdown:s}=this;if(t&&s){let{translateX:o=0,translateY:r=0}=t,n=e.plotLeft+o;i.attr({x:n,y:r}).show(),ie(s,{left:n+"px",top:r+"px",visibility:"inherit"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),ie(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,r=s.y,n=i.y,a=0;if(t.height)return t.height;this.alignElements(),a=e?e.getBBox(!0).height+13+o:0;let l=Math.min(n,r);return(n<0&&r<0||n>0&&r>0)&&(a+=Math.abs(l)),a}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(ic(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),ii(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),is(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),ip(t,function(e,i){e&&"chart"!==i&&(e instanceof e_()?e.destroy():e instanceof window.HTMLElement&&ir(e),delete t[i]),e!==im.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}ia(im.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});let ib={applyRadius:function(t,e){let i=[];for(let s=0;s>1].xMin)>0)o=n+1;else{if(!(a<0))return n;r=n-1}return o>0?o-1:0}function iw(t,e){let i=iA(t,e.x+1)+1;for(;i--;){var s;if(t[i].xMax>=e.x&&(s=t[i],e.x<=s.xMax&&e.x>=s.xMin&&e.y<=s.yMax&&e.y>=s.yMin))return i}return -1}function iP(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let i=0;iik(e.y-t.y))?"x":"y",h,d,c,p;function u(t,e,i,s,o){let r={x:t.x,y:t.y};return r[e]=i[s||e]+(o||0),r}function g(t,e,i){let s=ik(e[i]-t[i+"Min"])>ik(e[i]-t[i+"Max"]);return u(e,i,t,i+(s?"Max":"Min"),s?1:-1)}n>-1?(a={start:d=g(o[n],e,l),end:e},p=d):p=e,r>-1&&(d=g(h=o[r],t,l),s.push({start:t,end:d}),d[l]>=t[l]==d[l]>=p[l]&&(c=t[l="y"===l?"x":"y"]ik(e.y-t.y)),o=s?"x":"y",r=[],n=i.obstacleMetrics,a=iv(t.x,e.x)-n.maxWidth-10,l=iM(t.x,e.x)+n.maxWidth+10,h=iv(t.y,e.y)-n.maxHeight-10,d=iM(t.y,e.y)+n.maxHeight+10,c,p,u,g=!1,x=i.chartObstacles,f=iA(x,l),m=iA(x,a);function b(t,e,i){let s,o,r,n;let a=t.x0&&x[l].xMin<=o.x||a<0&&x[l].xMax>=s.x);){if(x[l].xMin<=o.x&&x[l].xMax>=s.x&&x[l].yMin<=r.y&&x[l].yMax>=n.y){if(i)return{y:t.y,x:t.x=r[a+"Max"],c=t[a+"Min"]<=r[a+"Min"],p=t[a+"Max"]>=n[a+"Max"],u=t[a+"Min"]<=n[a+"Min"],g=ik(t[a+"Min"]-e[a]),x=ik(t[a+"Max"]-e[a]),f=10>ik(g-x)?e[a]-1&&(u=function(t,e,s){let o=iv(t.xMax-e.x,e.x-t.xMin)-1;)p=e[o]-t[o]<0,(u={x:e.x,y:e.y})[o]=x[f][p?o+"Max":o+"Min"]+(p?1:-1),r.push({end:e,start:u}),e=u;return{path:iP(c=(c=function t(e,s,o){let r,n,c,p,u,f,m;if(e.x===s.x&&e.y===s.y)return[];let v=o?"x":"y",M=i.obstacleOptions.margin,k={soft:{xMin:a,xMax:l,yMin:h,yMax:d},hard:i.hardBounds};return(u=iw(x,e))>-1?(p=y(u=x[u],e,s,o,k),iO(u,i.hardBounds),m=o?{y:e.y,x:u[p?"xMax":"xMin"]+(p?1:-1)}:{x:e.x,y:u[p?"yMax":"yMin"]+(p?1:-1)},(f=iw(x,m))>-1&&(iO(f=x[f],i.hardBounds),m[v]=p?iM(u[v+"Max"]-M+1,(f[v+"Min"]+u[v+"Max"])/2):iv(u[v+"Min"]+M-1,(f[v+"Max"]+u[v+"Min"])/2),e.x===m.x&&e.y===m.y?(g&&(m[v]=p?iM(u[v+"Max"],f[v+"Max"])+1:iv(u[v+"Min"],f[v+"Min"])-1),g=!g):g=!1),n=[{start:e,end:m}]):(r=b(e,{x:o?s.x:e.x,y:o?e.y:s.y},o),n=[{start:e,end:{x:r.x,y:r.y}}],r[o?"x":"y"]!==s[o?"x":"y"]&&(p=y(r.obstacle,r,s,!o,k),iO(r.obstacle,i.hardBounds),c={x:o?r.x:r.obstacle[p?"xMax":"xMin"]+(p?1:-1),y:o?r.obstacle[p?"yMax":"yMin"]+(p?1:-1):r.y},o=!o,n=n.concat(t({x:r.x,y:r.y},c,o)))),n=n.concat(t(n[n.length-1].end,s,!o))}(t,e,s)).concat(r.reverse())),obstacles:c}}iE.requiresObstacles=!0,iS.requiresObstacles=!0;let iB={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:iT}=A(),{defined:iC,error:iI,merge:iR}=A();function iD(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let i=t.graphic&&t.graphic.getBBox();return i?{xMin:t.plotX-i.width/2,xMax:t.plotX+i.width/2,yMin:t.plotY-i.height/2,yMax:t.plotY+i.height/2}:null}!function(t){function e(t){let e,i;let s=iD(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":i="yMin";break;case"bottom":i="yMax"}return{x:e?s[e]:(s.xMin+s.xMax)/2,y:i?s[i]:(s.yMin+s.yMax)/2}}function i(t,e){let i;return!iC(e)&&(i=iD(this))&&(e={x:(i.xMin+i.xMax)/2,y:(i.yMin+i.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function s(t,e,i){let s=2*Math.PI,o=iD(this),r=o.xMax-o.xMin,n=o.yMax-o.yMin,a=Math.atan2(n,r),l=r/2,h=n/2,d=o.xMin+l,c=o.yMin+h,p={x:d,y:c},u=t,g=1,x=!1,f=1,m=1;for(;u<-Math.PI;)u+=s;for(;u>Math.PI;)u-=s;return g=Math.tan(u),u>-a&&u<=a?(m=-1,x=!0):u>a&&u<=Math.PI-a?m=-1:u>Math.PI-a||u<=-(Math.PI-a)?(f=-1,x=!0):f=-1,x?(p.x+=f*l,p.y+=m*l*g):(p.x+=n/(2*g)*f,p.y+=m*h),i.x!==d&&(p.x=i.x),i.y!==c&&(p.y=i.y),{x:p.x+e*Math.cos(u),y:p.y-e*Math.sin(u)}}t.compose=function(t,o,r){let n=r.prototype;n.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&iR(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&(iR(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),iI('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new o(this),this.pathfinder.update(!0))}),n.getMarkerVector=s,n.getPathfinderAnchorPoint=e,n.getRadiansToVector=i,iT(iB))}}(x||(x={}));let iL=x;var iG=v(260),iz=/*#__PURE__*/v.n(iG);let{addEvent:iN,defined:iW,pick:iH,splat:iF}=A(),iU=Math.max,iX=Math.min;class iY{static compose(t,e){iL.compose(t,iY,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],iN(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,i=this,s=i.connections;i.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let s;let o=t.options;o&&o.dependency&&(o.connect=o.dependency);let r=t.options?.connect?iF(t.options.connect):[];t.visible&&!1!==t.isInside&&r.forEach(o=>{let r="string"==typeof o?o:o.to;r&&(s=e.get(r)),s instanceof iz()&&s.series.visible&&s.visible&&!1!==s.isInside&&i.connections.push(new G(t,s,"string"==typeof o?{}:o))})})});for(let t=0,e,o,r=s.length,n=i.connections.length;ti.yMin-o&&e.yMin-oi.xMin-o&&e.xMin-oi.xMax?e.xMin-i.xMax:i.xMin-e.xMax:1/0,l=n?e.yMin>i.yMax?e.yMin-i.yMax:i.yMin-e.yMax:1/0;return n&&r?o?t(e,i,Math.floor(o/2)):1/0:iX(a,l)}(t[o],t[r]))<80&&s.push(e);return s.push(80),iU(Math.floor(s.sort(function(t,e){return t-e})[Math.floor(s.length/10)]/2-1),1)}(s),s.forEach(function(t){t.xMin-=o,t.xMax+=o,t.yMin-=o,t.yMax+=o})),s}getObstacleMetrics(t){let e=0,i=0,s,o,r=t.length;for(;r--;)s=t[r].xMax-t[r].xMin,o=t[r].yMax-t[r].yMin,e=1&&(e.plotHeight=o,e.redrawTrigger="adjustHeight",e.setSize(void 0,e.chartHeight+r,i)),t.series.forEach(function(t){let i=t.sharedClipKey&&e.sharedClips[t.sharedClipKey];i&&i.attr(e.inverted?{width:e.plotHeight}:{height:e.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}let iJ={compose:function(t,e){let i=e.prototype;i.adjustHeight||(i_(t,"afterSetOptions",i$),i.adjustHeight=iK,i_(e,"render",i.adjustHeight))}},iQ=A();iJ.compose(iQ.Axis,iQ.Chart);let{correctFloat:i0,isNumber:i1,isObject:i2}=A(),{column:{prototype:{pointClass:i3}}}=tE().seriesTypes,{extend:i5}=A();class i6 extends i3{static getColorByCategory(t,e){let i=t.options.colors||t.chart.options.colors,s=i?i.length:t.chart.options.chart.colorCount,o=e.y%s,r=i&&i[o];return{colorIndex:o,color:r}}resolveColor(){let t=this.series;if(t.options.colorByPoint&&!this.options.color){let e=i6.getColorByCategory(t,this);t.chart.styledMode||(this.color=e.color),this.options.colorIndex||(this.colorIndex=e.colorIndex)}else this.color=this.options.color||t.color}constructor(t,e){super(t,e),this.y||(this.y=0)}applyOptions(t,e){return super.applyOptions(t,e),this.x2=this.series.chart.time.parse(this.x2),this.isNull=!this.isValid?.(),this}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}i5(i6.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]});let{composed:i4,noop:i8}=A(),{parse:i9}=tP(),{column:i7}=tE().seriesTypes,{addEvent:st,clamp:se,crisp:si,defined:ss,extend:so,find:sr,isNumber:sn,isObject:sa,merge:sl,pick:sh,pushUnique:sd,relativeLength:sc}=A();function sp(){let t,e;if(this.isXAxis){for(let i of(t=sh(this.dataMax,-Number.MAX_VALUE),this.series)){let s=i.dataTable.getColumn("x2",!0)||i.dataTable.getColumn("end",!0);if(s)for(let i of s)sn(i)&&i>t&&(t=i,e=!0)}e&&(this.dataMax=t)}}class su extends i7{static compose(t){sd(i4,"Series.XRange")&&st(t,"afterGetSeriesExtremes",sp)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let t=()=>{for(let t of this.chart.series){let e=t.xAxis;t.xAxis=t.yAxis,t.yAxis=e}};t();let e=super.getColumnMetrics();return t(),e}cropData(t,e,i){let s=t.getColumn("x")||[],o=t.getColumn("x2");t.setColumn("x",o,void 0,{silent:!0});let r=super.cropData(t,e,i);return t.setColumn("x",s.slice(r.start,r.end),void 0,{silent:!0}),r}findPointIndex(t){let e;let{cropStart:i,points:s}=this,{id:o}=t;if(o){let t=sr(s,t=>t.id===o);e=t?t.index:void 0}if(void 0===e){let i=sr(s,e=>e.x===t.x&&e.x2===t.x2&&!e.touched);e=i?i.index:void 0}return this.cropped&&sn(e)&&sn(i)&&e>=i&&(e-=i),e}alignDataLabel(t){let e=t.plotX;t.plotX=sh(t.dlBox&&t.dlBox.centerX,t.plotX),t.dataLabel&&t.shapeArgs?.width&&t.dataLabel.css({width:`${t.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),t.plotX=e}translatePoint(t){let e=this.xAxis,i=this.yAxis,s=this.columnMetrics,o=this.options,r=o.minPointLength||0,n=(t.shapeArgs&&t.shapeArgs.width||0)/2,a=this.pointXOffset=s.offset,l=sh(t.x2,t.x+(t.len||0)),h=o.borderRadius,d=this.chart.plotTop,c=this.chart.plotLeft,p=t.plotX,u=e.translate(l,0,0,0,1),g=Math.abs(u-p),x=this.chart.inverted,f=sh(o.borderWidth,1),m,b,y=s.offset,v=Math.round(s.width),M,k,A,w;r&&((m=r-g)<0&&(m=0),p-=m/2,u+=m/2),p=Math.max(p,-10),u=se(u,-10,e.len+10),ss(t.options.pointWidth)&&(y-=(Math.ceil(t.options.pointWidth)-v)/2,v=Math.ceil(t.options.pointWidth)),o.pointPlacement&&sn(t.plotY)&&i.categories&&(t.plotY=i.translate(t.y,0,1,0,1,o.pointPlacement));let P=si(Math.min(p,u),f),O=si(Math.max(p,u),f)-P,E=Math.min(sc("object"==typeof h?h.radius:h||0,v),Math.min(O,v)/2),S={x:P,y:si((t.plotY||0)+y,f),width:O,height:v,r:E};t.shapeArgs=S,x?t.tooltipPos[1]+=a+n:t.tooltipPos[0]-=n+a-S.width/2,k=(M=S.x)+S.width,M<0||k>e.len?(M=se(M,0,e.len),A=(k=se(k,0,e.len))-M,t.dlBox=sl(S,{x:M,width:k-M,centerX:A?A/2:null})):t.dlBox=null;let B=t.tooltipPos,T=x?1:0,C=x?0:1,I=this.columnMetrics?this.columnMetrics.offset:-s.width/2;x?B[T]+=S.width/2:B[T]=se(B[T]+(e.reversed?-1:0)*S.width,e.left-c,e.left+e.len-c-1),B[C]=se(B[C]+(x?-1:1)*I,i.top-d,i.top+i.len-d-1),(b=t.partialFill)&&(sa(b)&&(b=b.amount),sn(b)||(b=0),t.partShapeArgs=sl(S),w=Math.max(Math.round(g*b+t.plotX-p),0),t.clipRectArgs={x:e.reversed?S.x+g-w:S.x,y:S.y,width:w,height:S.height}),t.key=t.category||t.name,t.yCategory=i.categories?.[t.y??-1]}translate(){for(let t of(super.translate.apply(this,arguments),this.points))this.translatePoint(t)}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeType,r=t.shapeArgs,n=t.partShapeArgs,a=t.clipRectArgs,l=t.state,h=i.states[l||"normal"]||{},d=void 0===l?"attr":e,c=this.pointAttribs(t,l),p=sh(this.chart.options.chart.animation,h.animation),u=t.graphic,g=t.partialFill;if(t.isNull||!1===t.visible)u&&(t.graphic=u.destroy());else if(u?u.rect[e](r):(t.graphic=u=s.g("point").addClass(t.getClassName()).add(t.group||this.group),u.rect=s[o](sl(r)).addClass(t.getClassName()).addClass("highcharts-partfill-original").add(u)),n&&(u.partRect?(u.partRect[e](sl(n)),u.partialClipRect[e](sl(a))):(u.partialClipRect=s.clipRect(a.x,a.y,a.width,a.height),u.partRect=s[o](n).addClass("highcharts-partfill-overlay").add(u).clip(u.partialClipRect))),!this.chart.styledMode&&(u.rect[e](c,p).shadow(i.shadow),n)){sa(g)||(g={}),sa(i.partialFill)&&(g=sl(i.partialFill,g));let e=g.fill||i9(c.fill).brighten(-.3).get()||i9(t.color||this.color).brighten(-.3).get();c.fill=e,u.partRect[d](c,p).shadow(i.shadow)}}drawPoints(){let t=this.getAnimationVerb();for(let e of this.points)this.drawPoint(e,t)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(t){let e=t.shapeArgs,i=t.plotX,s=t.plotY;return e?void 0!==i&&void 0!==s&&s>=0&&s<=this.yAxis.len&&(e.x||0)+(e.width||0)>=0&&i<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}su.defaultOptions=sl(i7.defaultOptions,{colorByPoint:!0,dataLabels:{formatter:function(){let t=this.partialFill;if(i2(t)&&(t=t.amount),i1(t)&&t>0)return i0(100*t)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{ucfirst point.x} - {point.x2}
    ',pointFormat:' {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}),so(su.prototype,{pointClass:i6,pointArrayMap:["x2","y"],getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:tE().series.prototype.animate,autoIncrement:i8,buildKDTree:i8}),tE().registerSeriesType("xrange",su);/** - * @license Highcharts JS v12.0.2 (2024-12-04) + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Point,t._Highcharts.StackItem):"function"==typeof define&&define.amd?define("highcharts/modules/gantt",["highcharts/highcharts"],function(t){return e(t,t.Chart,t.Axis,t.Color,t.SeriesRegistry,t.RendererRegistry,t.SVGRenderer,t.SVGElement,t.Point,t.StackItem)}):"object"==typeof exports?exports["highcharts/modules/gantt"]=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Point,t._Highcharts.StackItem):t.Highcharts=e(t.Highcharts,t.Highcharts.Chart,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.SVGRenderer,t.Highcharts.SVGElement,t.Highcharts.Point,t.Highcharts.StackItem)}("undefined"==typeof window?this:window,(t,e,i,s,o,r,n,a,l,h)=>(()=>{"use strict";let d,c,p;var u,g,x,f,m,b={532:t=>{t.exports=i},960:t=>{t.exports=e},620:t=>{t.exports=s},260:t=>{t.exports=l},608:t=>{t.exports=r},28:t=>{t.exports=a},540:t=>{t.exports=n},512:t=>{t.exports=o},184:t=>{t.exports=h},944:e=>{e.exports=t}},y={};function v(t){var e=y[t];if(void 0!==e)return e.exports;var i=y[t]={exports:{}};return b[t](i,i.exports,v),i.exports}v.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return v.d(e,{a:e}),e},v.d=(t,e)=>{for(var i in e)v.o(e,i)&&!v.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},v.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var M={};v.d(M,{default:()=>oX});var k=v(944),A=v.n(k);function w(t,e,i,s){return[["M",t,e+s/2],["L",t+i,e],["L",t,e+s/2],["L",t+i,e+s]]}function P(t,e,i,s){return w(t,e,i/2,s)}function E(t,e,i,s){return[["M",t+i,e],["L",t,e+s/2],["L",t+i,e+s],["Z"]]}function O(t,e,i,s){return E(t,e,i/2,s)}let S={compose:function(t){let e=t.prototype.symbols;e.arrow=w,e["arrow-filled"]=E,e["arrow-filled-half"]=O,e["arrow-half"]=P,e["triangle-left"]=E,e["triangle-left-half"]=O}},{defined:B,error:T,merge:C,objectEach:I}=A(),R=A().deg2rad,D=Math.max,G=Math.min,L=class{constructor(t,e,i){this.init(t,e,i)}init(t,e,i){this.fromPoint=t,this.toPoint=e,this.options=i,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let i=this.chart,s=i.styledMode,o=this.pathfinder,r={},n=this.graphics&&this.graphics.path;o.group||(o.group=i.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(i.seriesGroup)),o.group.translate(i.plotLeft,i.plotTop),n&&n.renderer||(n=i.renderer.path().add(o.group),s||n.attr({opacity:0})),n.attr(e),r.d=t,s||(r.opacity=1),n.animate(r),this.graphics=this.graphics||{},this.graphics.path=n}addMarker(t,e,i){let s,o,r,n,a,l,h,d;let c=this.fromPoint.series.chart,p=c.pathfinder,u=c.renderer,g="start"===t?this.fromPoint:this.toPoint,x=g.getPathfinderAnchorPoint(e);e.enabled&&((d="start"===t?i[1]:i[i.length-2])&&"M"===d[0]||"L"===d[0])&&(h={x:d[1],y:d[2]},o=g.getRadiansToVector(h,x),s=g.getMarkerVector(o,e.radius,x),r=-o/R,e.width&&e.height?(a=e.width,l=e.height):a=l=2*e.radius,this.graphics=this.graphics||{},n={x:s.x-a/2,y:s.y-l/2,width:a,height:l,rotation:r,rotationOriginX:s.x,rotationOriginY:s.y},this.graphics[t]?this.graphics[t].animate(n):(this.graphics[t]=u.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(n).add(p.group),u.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},g.series.options.animation)))}getPath(t){let e=this.pathfinder,i=this.chart,s=e.algorithms[t.type],o=e.chartObstacles;return"function"!=typeof s?(T('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(s.requiresObstacles&&!o&&(o=e.chartObstacles=e.getChartObstacles(t),i.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(o)),s(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),C({chartObstacles:o,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:i.plotWidth,yMin:0,yMax:i.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,i=e.chart,s=i.pathfinder,o={},r=C(i.options.connectors,e.options.connectors,t.options.connectors,this.options);!i.styledMode&&(o.stroke=r.lineColor||t.color,o["stroke-width"]=r.lineWidth,r.dashStyle&&(o.dashstyle=r.dashStyle)),o.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,B((r=C(o,r)).marker.radius)||(r.marker.radius=G(D(Math.ceil((r.algorithmMargin||8)/2)-1,1),5));let n=this.getPath(r),a=n.path;n.obstacles&&(s.lineObstacles=s.lineObstacles||[],s.lineObstacles=s.lineObstacles.concat(n.obstacles)),this.renderPath(a,o),this.addMarker("start",C(r.marker,r.startMarker),a),this.addMarker("end",C(r.marker,r.endMarker),a)}destroy(){this.graphics&&(I(this.graphics,function(t){t.destroy()}),delete this.graphics)}},{composed:z}=A(),{addEvent:N,merge:W,pushUnique:H,wrap:F}=A(),U={color:"#ccd3ff",width:2,label:{format:"%[abdYHM]",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t,!0)},rotation:0,style:{fontSize:"0.7em"}}};function X(){let t=this.options,e=t.currentDateIndicator;if(e){let i="object"==typeof e?W(U,e):W(U);i.value=Date.now(),i.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(i)}}function Y(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function V(t,e){let i=this.options;return i&&i.className&&-1!==i.className.indexOf("highcharts-current-date-indicator")&&i.label&&"function"==typeof i.label.formatter?(i.value=Date.now(),i.label.formatter.call(this,i.value,i.label.format)):t.call(this,e)}var _=v(960),j=v.n(_);let{defaultOptions:q}=A(),{isArray:Z,merge:$,splat:K}=A();class J extends j(){init(t,e){let i;let s=t.xAxis,o=t.yAxis;t.xAxis=t.yAxis=void 0;let r=$(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},t,{isGantt:!0});t.xAxis=s,t.yAxis=o,r.xAxis=(Z(t.xAxis)?t.xAxis:[t.xAxis||{},{}]).map((t,e)=>(1===e&&(i=0),$({grid:{borderColor:"#cccccc",enabled:!0},opposite:q.xAxis?.opposite??t.opposite??!0,linkedTo:i},t,{type:"datetime"}))),r.yAxis=K(t.yAxis||{}).map(t=>$({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:t.categories?t.type:"treegrid"},t)),super.init(r,e)}}!function(t){t.ganttChart=function(e,i,s){return new t(e,i,s)}}(J||(J={}));let Q=J;var tt=v(532),te=v.n(tt);let{isTouchDevice:ti}=A(),{addEvent:ts,merge:to,pick:tr}=A(),tn=[];function ta(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function tl(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:n}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+n):(o.left=tr(e.left,this.plotLeft+n),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+tr(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function th(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this),tr(t.redraw,!0)&&this.redraw(t.animation))}function td(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new d(this))}function tc(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!ti&&"x"===this.zooming.type||ti&&"x"===this.zooming.pinchType))return!1}function tp(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function tu(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(to(!0,this.options.navigator,e),to(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let tg={compose:function(t,e){if(A().pushUnique(tn,t)){let i=t.prototype;d=e,i.callbacks.push(tp),ts(t,"afterAddSeries",ta),ts(t,"afterSetChartSize",tl),ts(t,"afterUpdate",th),ts(t,"beforeRender",td),ts(t,"beforeShowResetZoom",tc),ts(t,"update",tu)}}},{isTouchDevice:tx}=A(),{addEvent:tf,correctFloat:tm,defined:tb,isNumber:ty,pick:tv}=A();function tM(){this.navigatorAxis||(this.navigatorAxis=new tA(this))}function tk(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,n=i.zooming.pinchType,a=s.rangeSelector,l=i.zooming.type;if(this.isXAxis&&(o?.enabled||a?.enabled)){if("y"===l&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===l||tx&&"xy"===n)&&this.options.range){let e=r.previousZoom;tb(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class tA{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),tf(t,"init",tM),tf(t,"setExtremes",tk))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,n=tv(i,o.translate(t,!0,!o.horiz)),a=tv(s,o.translate(e,!0,!o.horiz));return tb(i)||(n=tm(n+r)),tb(s)||(a=tm(a-r)),ty(n)&&ty(a)||(n=a=void 0),{min:n,max:a}}}var tw=v(620),tP=v.n(tw),tE=v(512),tO=v.n(tE);let{parse:tS}=tP(),{seriesTypes:tB}=tO(),tT={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:tS("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===tB.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:tC,isNumber:tI,pick:tR}=A(),tD={rect:function(t,e,i,s,o){return o&&o.r?function(t,e,i,s,o){let r=o?.r||0;return[["M",t+r,e],["L",t+i-r,e],["A",r,r,0,0,1,t+i,e+r],["L",t+i,e+s-r],["A",r,r,0,0,1,t+i-r,e+s],["L",t+r,e+s],["A",r,r,0,0,1,t,e+s-r],["L",t,e+r],["A",r,r,0,0,1,t+r,e],["Z"]]}(t,e,i,s,o):[["M",t,e],["L",t+i,e],["L",t+i,e+s],["L",t,e+s],["Z"]]}},{relativeLength:tG}=A(),tL={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,n=tG(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...tD.rect(-r-1,.5,2*r+1,s,{r:n})]}};var tz=v(608),tN=v.n(tz);let{defined:tW}=A(),{setOptions:tH}=A(),{composed:tF}=A(),{getRendererType:tU}=tN(),{setFixedRange:tX}={setFixedRange:function(t){let e=this.xAxis[0];tW(e.dataMax)&&tW(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{addEvent:tY,extend:tV,pushUnique:t_}=A();function tj(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let tq={compose:function(t,e,i){tA.compose(e),t_(tF,"Navigator")&&(t.prototype.setFixedRange=tX,tV(tU().prototype.symbols,tL),tY(i,"afterUpdate",tj),tH({navigator:tT}))}},{composed:tZ}=A(),{addEvent:t$,defined:tK,pick:tJ,pushUnique:tQ}=A();!function(t){let e;function i(t){let e=tJ(t.options&&t.options.min,t.min),i=tJ(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:tK(t.dataMin)?Math.min(e,t.min,t.dataMin,tJ(t.threshold,1/0)):e,scrollMax:tK(t.dataMax)?Math.max(i,t.max,t.dataMax,tJ(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),t$(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:n,scrollMin:a,scrollMax:l}=i(t),h=l-a;if(tK(r)&&tK(n)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=a+h*this.to,o=a+h*this.from):(s=a+h*(1-this.from),o=a+h*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),n=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,h=this.options.margin||0;if(n&&l){if(this.horiz)this.opposite||(l[1]+=a),n.position(this.left,this.top+this.height+2+l[1]-(this.opposite?h:0),this.width,this.height),this.opposite||(l[1]+=h),t=1;else{let e;this.opposite&&(l[0]+=a),e=n.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:h):this.opposite?0:h,n.position(e,this.top,this.width,this.height),this.opposite&&(l[0]+=h),t=0}if(l[t]+=n.size+(n.options.margin||0),isNaN(o)||isNaN(r)||!tK(this.min)||!tK(this.max)||this.dataMin===this.dataMax)n.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),n.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?n.setRange(e,s):n.setRange(1-s,1-e)}}t.compose=function(t,i){tQ(tZ,"Axis.Scrollbar")&&(e=i,t$(t,"afterGetOffset",s),t$(t,"afterInit",o),t$(t,"afterRender",r))}}(u||(u={}));let t0=u,t1={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:t2}=A(),{addEvent:t3,correctFloat:t5,crisp:t6,defined:t4,destroyObjectProperties:t8,fireEvent:t9,merge:t7,pick:et,removeEvent:ee}=A();class ei{static compose(t){t0.compose(t,ei)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,t8(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let n=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||n.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),n.attr(n.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},n.strokeWidth()));let a=e.path(ei.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=t7(t1,t2.scrollbar,e),this.options.margin=et(this.options.margin,10),this.chart=i,this.size=et(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&t9(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&t9(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:n}=this.options,a=this.rendered?"animate":"attr",l=s,h=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=l,this.yOffset=h,n?(this.width=this.yOffset=i=h=this.size,this.xOffset=l=0,this.yOffset=h=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=l=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[a]({translateX:t,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:n?0:i-l,translateY:n?s-h:0})}removeEvents(){this._events.forEach(function(t){ee.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-t6(0,r),y:-t6(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(ei.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-t6(0,this.scrollbarStrokeWidth),-t6(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,n=o.minWidth,a=this.barWidth,l=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!t4(a))return;let h=a*Math.min(e,1);i=Math.ceil(a*(t=Math.max(t,0))),this.calculatedWidth=s=t5(h-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return et(this.options.liveRedraw,A().svg&&!A().isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!t4(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),t9(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,t7(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=t5(1-t5(e-t)),e=1),t<0&&(e=t5(e-t),t=0),this.from=t,this.to=e}}ei.defaultOptions=t1,t2.scrollbar=t7(!0,ei.defaultOptions,t2.scrollbar);var es=v(540),eo=v.n(es);let{defaultOptions:er}=A(),{isTouchDevice:en}=A(),{prototype:{symbols:ea}}=eo(),{addEvent:el,clamp:eh,correctFloat:ed,defined:ec,destroyObjectProperties:ep,erase:eu,extend:eg,find:ex,fireEvent:ef,isArray:em,isNumber:eb,merge:ey,pick:ev,removeEvent:eM,splat:ek}=A();function eA(t,...e){let i=[].filter.call(e,eb);if(i.length)return Math[t].apply(0,i)}class ew{static compose(t,e,i){tg.compose(t,ew),tq.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),n=r/2,a=r%2/2,l=this.scrollButtonSize,h=this.size,d=this.top,c=this.height,p=d-n,u=d+c,g=this.left,x,f;i?(x=d+e+a,e=d+t+a,f=[["M",g+c,d-l-a],["L",g+c,x],["L",g,x],["M",g,e],["L",g+c,e],["L",g+c,d+h+l]],o&&f.push(["M",g+c,x-n],["L",g+c,e+n])):(g-=l,t+=g+l-a,e+=g+l-a,f=[["M",g,p],["L",t,p],["L",t,u],["M",e,u],["L",e,p],["L",g+h+2*l,p]],o&&f.push(["M",t-n,p],["L",e+n,p])),this.outline[s]({d:f})}drawMasks(t,e,i,s){let o,r,n,a;let l=this.left,h=this.top,d=this.height;i?(n=[l,l,l],a=[h,h+t,h+e],r=[d,d,d],o=[t,e-t,this.size-e]):(n=[l,l+t,l+e],a=[h,h,h],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:n[e],y:a[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,n={cursor:o?"ns-resize":"ew-resize"},a=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let l=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(a));s.styledMode||(l.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&l.css(n))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:l}=i;[0,1].forEach(e=>{let h=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===h){if(!t.handles[e].isImg&&t.handles[e].symbolName!==h){let i=ea[h].call(ea,-l/2-1,0,l,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=h}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(h,-l/2-1,0,l,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(a),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-l/2),rotationOriginY:(o+l)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-l/2-1,y:0}).css(n)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(ey(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),ec(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{eM(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(el(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,n=r.pointRange||0,a=r.navigatorAxis.fake?o.xAxis[0]:r,l=this.navigatorEnabled,h=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,x,f,m=this.scrollbarHeight,b,y;if(this.hasDragged&&!ec(i))return;if(this.isDirty&&this.renderElements(),t=ed(t-n/2),e=ed(e+n/2),!eb(t)||!eb(e)){if(!h)return;i=0,s=ev(r.width,a.width)}this.left=ev(r.left,o.plotLeft+u+(d?o.plotWidth:0));let v=this.size=b=ev(r.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?m:b+2*u,i=ev(i,r.toPixels(t,!0)),s=ev(s,r.toPixels(e,!0)),eb(i)&&Math.abs(i)!==1/0||(i=0,s=g);let M=r.toValue(i,!0),k=r.toValue(s,!0),A=Math.abs(ed(k-M));Ap&&(this.grabbedLeft?i=r.toPixels(k-p-n,!0):this.grabbedRight&&(s=r.toPixels(M+p+n,!0))),this.zoomedMax=eh(Math.max(i,s),0,v),this.zoomedMin=eh(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let w=Math.round(this.zoomedMin);l&&(this.navigatorGroup.attr({visibility:"inherit"}),y=h&&!this.hasDragged?"animate":"attr",this.drawMasks(w,v,d,y),this.drawOutline(w,v,d,y),this.navigatorOptions.handles.enabled&&(this.drawHandle(w,0,d,y),this.drawHandle(v,1,d,y))),this.scrollbar&&(d?(f=this.top-u,x=this.left-m+(l||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),m=b+2*u):(f=this.top+(l?this.height:-m),x=this.left-u),this.scrollbar.position(x,f,g,m),this.scrollbar.setRange(this.zoomedMin/(b||1),this.zoomedMax/(b||1))),this.rendered=!0,this.isDirty=!1,ef(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(el(e.renderTo,"mousemove",o),el(i.ownerDocument,"mouseup",r),el(e.renderTo,"touchmove",o),el(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(el(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(el(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,n=this.range,a=this.left,l=t.chartX,h,d,c,p;i.inverted&&(l=t.chartY,a=this.top),1===e?(this.grabbedCenter=l,this.fixedWidth=n,this.dragOffset=l-o):(p=l-a-n/2,0===e?p=Math.max(0,p):2===e&&p+n>=r&&(p=r-n,this.reversedExtremes?(p-=n,d=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=n,ec((c=s.navigatorAxis.toFixedRange(p,p+n,d,h)).min)&&ef(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,n=i.inverted,a=e.left,l;(!t.touches||0!==t.touches[0].pageX)&&(l=(t=i.pointer?.normalize(t)||t).chartX,n&&(a=e.top,l=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,l-a,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,l-a)):e.grabbedCenter&&(e.hasDragged=!0,ls+r-o&&(l=s+r-o),e.render(0,0,l-r,l-r+o)),e.hasDragged&&e.scrollbar&&ev(e.scrollbar.options.liveRedraw,!en&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,n;let a=this.chart,l=this.xAxis,h=this.scrollbar,d=t.DOMEvent||t,c=a.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!h||!h.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),ec((n=l.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&ef(this,"setRange",{min:Math.min(n.min,n.max),max:Math.max(n.min,n.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&eb(this.zoomedMin)&&eb(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){eM(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&eM(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,n=s&&i.height||0,a=r&&o.height||0,l=o.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=n,this.scrollbarHeight=a,this.scrollButtonSize=l,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let h=this,d=h.baseSeries,c=t.xAxis.length,p=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,h.navigatorEnabled){let e=this.getXAxisOffsets();h.xAxis=new(te())(t,ey({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:n}:{offsets:e,height:n}),"xAxis"),h.yAxis=new(te())(t,ey(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:ev(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:n}:{height:n}),"yAxis"),d||i.series.data?h.updateNavigatorSeries(!1):0===t.series.length&&(h.unbindRedraw=el(t,"beforeRedraw",function(){t.series.length>0&&!h.series&&(h.setBaseSeries(),h.unbindRedraw())})),h.reversedExtremes=t.inverted&&!h.xAxis.reversed||!t.inverted&&h.xAxis.reversed,h.renderElements(),h.addMouseEvents()}else h.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*l,n=eA("min",s.options.min,o.dataMin),a=eA("max",s.options.max,o.dataMax)-n;return i?e*a/r+n:r*(e-n)/a},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},h.xAxis.navigatorAxis.axis=h.xAxis,h.xAxis.navigatorAxis.toFixedRange=tA.prototype.toFixedRange.bind(h.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=ey(t.options.scrollbar,{vertical:t.inverted});!eb(e.margin)&&h.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=h.scrollbar=new ei(t.renderer,e,t),el(h.scrollbar,"changed",function(t){let e=h.size,i=e*this.to,s=e*this.from;h.hasDragged=h.scrollbar.hasDragged,h.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){h.onMouseUp(t)})})}h.addBaseSeriesEvents(),h.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=ev(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,n=i.options;return t&&null===i.dataMin||(e={dataMin:ev(s.parse(r?.min),eA("min",s.parse(n.min),i.dataMin,o.dataMin,o.min)),dataMax:ev(s.parse(r?.max),eA("max",s.parse(n.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?ex(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},n=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(eM(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),a,l,h=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=eg({color:t.color,visible:t.visible},em(h)?er.navigator.series:h);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(a=t.options||{}).navigatorOptions||{},p.dataLabels=ek(p.dataLabels),(l=ey(a,r,p,d)).pointRange=ev(p.pointRange,d.pointRange,er.plotOptions[l.type||"line"].pointRange);let u=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!u,l.data=u||a.data?.slice(0),c&&c.options?c.update(l,e):(t.navigatorSeries=s.initSeries(l),s.setSortedData(),t.navigatorSeries.baseSeries=t,n.push(t.navigatorSeries))}),(h.data&&!(o&&o.length)||em(h))&&(i.hasNavigatorData=!1,(h=ek(h)).forEach((t,e)=>{r.name="Navigator "+(n.length+1),(l=ey(er.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,l.data&&(i.hasNavigatorData=!0,n.push(s.initSeries(l)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(el(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(el(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(el(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(el(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(el(i,"remove",function(){e&&eu(e,i),this.navigatorSeries&&t.series&&(eu(t.series,this.navigatorSeries),ec(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,n=s.dataMin,a=s.dataMax,l=r-o,h=i.stickToMin,d=i.stickToMax,c=ev(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(h&&(t=(e=n)+l),d&&(t=a+c,h||(e=Math.max(n,t-l,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),u&&(h||d)&&eb(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=ev(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,n=s.options.range;return!!(eb(o)&&eb(r))&&(n&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{ep(t)}),this.navigatorEnabled=!1}}let eP={lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"→"},rangeSelector:{allButtonsEnabled:!1,buttons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%[ebY]",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}},{defaultOptions:eE}=A(),{composed:eO}=A(),{addEvent:eS,defined:eB,extend:eT,isNumber:eC,merge:eI,pick:eR,pushUnique:eD}=A(),eG=[];function eL(){let t,e;let i=this.range,s=i.type,o=this.max,r=this.chart.time,n=function(t,e){let i=r.toParts(t),o=i.slice();"year"===s?o[0]+=e:o[1]+=e;let n=r.makeTime.apply(r,o),a=r.toParts(n);return"month"===s&&i[1]===a[1]&&1===Math.abs(e)&&(o[0]=i[0],o[1]=i[1],o[2]=0),(n=r.makeTime.apply(r,o))-t};eC(i)?(t=o-i,e=i):i&&(t=o+n(o,-(i.count||1)),this.chart&&this.chart.setFixedRange(o-t));let a=eR(this.dataMin,Number.MIN_VALUE);return eC(t)||(t=a),t<=a&&(t=a,void 0===e&&(e=n(t,i.count)),this.newMax=Math.min(t+e,eR(this.dataMax,Number.MAX_VALUE))),eC(o)?!eC(i)&&i&&i._offsetMin&&(t+=i._offsetMin):t=void 0,t}function ez(){this.rangeSelector?.redrawElements()}function eN(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new c(this))}function eW(){let t=this.rangeSelector;if(t){eC(t.deferredYTDClick)&&(t.clickButton(t.deferredYTDClick),delete t.deferredYTDClick);let e=t.options.verticalAlign;t.options.floating||("bottom"===e?this.extraBottomMargin=!0:"top"!==e||(this.extraTopMargin=!0))}}function eH(){let t;let e=this.rangeSelector;if(!e)return;let i=this.xAxis[0].getExtremes(),s=this.legend,o=e&&e.options.verticalAlign;eC(i.min)&&e.render(i.min,i.max),s.display&&"top"===o&&o===s.options.verticalAlign&&(t=eI(this.spacingBox),"vertical"===s.options.layout?t.y=this.plotTop:t.y+=e.getHeight(),s.group.placed=!1,s.align(t))}function eF(){for(let t=0,e=eG.length;tt()),eG.splice(t,1);return}}}function eU(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function eX(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,s=this.extraTopMargin,o=this.rangeSelector;if(e&&e.enabled&&!eB(o)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=o=new c(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,o){let t=e&&e.verticalAlign||o.options&&o.options.verticalAlign;o.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==s)&&(this.isDirtyBox=!0)}}let eY={compose:function(t,e,i){if(c=i,eD(eO,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=eL,eS(e,"afterGetContainer",eN),eS(e,"beforeRender",eW),eS(e,"destroy",eF),eS(e,"getMargins",eU),eS(e,"redraw",eH),eS(e,"update",eX),eS(e,"beforeRedraw",ez),i.callbacks.push(eH),eT(eE,{rangeSelector:eP.rangeSelector}),eT(eE.lang,eP.lang)}}};var eV=v(28),e_=v.n(eV);let{fireEvent:ej,isArray:eq,objectEach:eZ,uniqueKey:e$}=A(),eK=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||e$(),this.modified=this,this.rowCount=0,this.versionTag=e$();let e=0;eZ(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,eZ(this.columns,e=>{eq(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;eZ(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ej(this,"afterSetColumns"),this.versionTag=e$())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;eZ(t,(t,n)=>{let a=o[n]||s?.addColumns!==!1&&Array(r);a&&(i?a.splice(e,0,t):a[e]=t,o[n]=a)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(ej(this,"afterSetRows"),this.versionTag=e$())}},{addEvent:eJ,correctFloat:eQ,css:e0,defined:e1,error:e2,isNumber:e3,pick:e5,timeUnits:e6,isString:e4}=A();!function(t){function e(t,i,s,o,r=[],n=0,a){let l={},h=this.options.tickPixelInterval,d=this.chart.time,c=[],p,u,g,x,f,m=0,b=[],y=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!r||r.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let v=r.length;for(p=0;ps,r[p]5*n||f){if(r[p]>y){for(u=d.getTimeTicks(t,r[m],r[p],o);u.length&&u[0]<=y;)u.shift();u.length&&(y=u[u.length-1]),c.push(b.length),b=b.concat(u)}m=p+1}if(f)break}if(u){if(x=u.info,a&&x.unitRange<=e6.hour){for(m=1,p=b.length-1;mt-e),(a=i[Math.floor(i.length/2)])<.6*h&&(a=null),c=b[t-1]>s?t-1:t,n=void 0;c--;)d=Math.abs(n-(r=e[c])),n&&d<.8*h&&(null===a||d<.8*a)?(l[b[c]]&&!l[b[c+1]]?(o=c+1,n=r):o=c,b.splice(o,1)):n=r}return b}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let r=eQ((t-i)*s+this.minPixelPadding),n=eQ(e.getIndexOfPoint(r,o)),a=eQ(n%1);if(n>=0&&n<=o.length-1){let t=o[Math.floor(n)],e=o[Math.ceil(n)];return o[Math.floor(n)]+a*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function r(){this.ordinal||(this.ordinal=new t.Additions(this))}function n(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&e1(e.overscroll)&&0!==e.overscroll&&e3(this.max)&&e3(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&e1(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function a(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function l(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function h(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,r=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let n=this.mouseDownX,a=e.getExtremes(),l=a.dataMin,h=a.dataMax,d=a.min,c=a.max,p=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((n-s)/(e.translationSlope*(e.ordinal.slope||u))),x=e.ordinal.getExtendedPositions(),f={ordinal:{positions:x,extendedOrdinalPositions:x}},m=e.index2val,b=e.val2lin;if(d<=l&&g<0||c+i>=h&&g>0)return;f.ordinal.positions?Math.abs(g)>1&&(p&&p.forEach(function(t){t.setState()}),h>(o=f.ordinal.positions)[o.length-1]&&o.push(h),this.setFixedRange(c-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,m.apply(f,[b.apply(f,[d,!0])+g]),m.apply(f,[b.apply(f,[c,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],c)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,e0(this.container,{cursor:"move"})):r=!0}else r=!0;r||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function c(t,e){let i;let s=this.ordinal,r=s.positions,n=s.slope,a;if(!r)return t;let l=r.length;if(r[0]<=t&&r[l-1]>=t)i=o(r,t);else{if(!((a=s.getExtendedPositions&&s.getExtendedPositions())&&a.length))return t;let l=a.length;n||(n=(a[l-1]-a[0])/l);let h=o(a,r[0]);if(t>=a[0]&&t<=a[l-1])i=o(a,t)-h;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(m=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(b=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||r)&&(a=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),x=Math.min(x,e5(t.closestPointRange,x)),a)){for(e=0;e2){for(h=g[1]-g[0],u=a-1;u--&&!f;)g[u+1]-g[u]!==h&&(f=!0);!t.options.keepOrdinalPadding&&(g[0]-s>h||o-g[g.length-1]>h)&&(f=!0)}else t.options.overscroll&&(2===a?x=g[1]-g[0]:1===a?(x=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+x]):x=e.overscrollPointsRange);f||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=x,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),c=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=p=(o-s)/(c-d),e.offset=s-d*p):(e.overscrollPointsRange=e5(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=n&&f,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,r;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),n=t?i.ordinal.convertOverscroll(i.options.overscroll):0,a=i.getExtremes(),l,h,d=e.index;return d||(d=e.index={}),!d[r]&&((l={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:a.dataMin,max:a.dataMax+n}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=l,i.series.forEach(i=>{h={xAxis:l,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:A().noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);h.dataTable=new eK({columns:{x:s}}),h.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},l.series.push(h),i.processData.apply(h)}),l.applyGrouping({hasExtremesChanged:!0}),h?.closestPointRange!==h?.basePointRange&&h.currentDataGrouping&&(l.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:l}),!i.ordinal.originalOrdinalRange&&l.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=l.ordinal.originalOrdinalRange),l.ordinal.positions&&(d[r]=l.ordinal.positions)),d[r]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,r=[],n,a,l=this.groupIntervalFactor;if(!l){for(a=0;aRegExp(`%[[a-zA-Z]*${e}`).test(t);if(id(t)?-1!==t.indexOf("%L"):t.fractionalSecondDigits)return"text";let i=id(t)?["a","A","d","e","w","b","B","m","o","y","Y"].some(e):t.dateStyle||t.day||t.month||t.year,s=id(t)?["H","k","I","l","M","S"].some(e):t.timeStyle||t.hour||t.minute||t.second;return i&&s?"datetime-local":i?"date":s?"time":"text"}class im{static compose(t,e){eY.compose(t,e,im)}constructor(t){this.isDirty=!1,this.buttonOptions=im.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.maxButtonWidth=()=>{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],r=i.scroller&&i.scroller.getUnionExtremes()||o||{},n=s.type,a=s.dataGrouping,l=r.dataMin,h=r.dataMax,d,c=ih(o?.max)?Math.round(Math.min(o.max,h??o.max)):void 0,p,u=s._range,g,x,f,m=!0;if(null!==l&&null!==h){if(this.setSelected(t),a&&(this.forcedDataGrouping=!0,te().prototype.setDataGrouping.call(o||{chart:this.chart},a,!1),this.frozenStates=s.preserveDataGrouping),"month"===n||"year"===n)o?(x={range:s,max:c,chart:i,dataMin:l,dataMax:h},d=o.minFromRange.call(x),ih(x.newMax)&&(c=x.newMax),m=!1):u=s;else if(u)ih(c)&&(c=Math.min((d=Math.max(c-u,l))+u,h),m=!1);else if("ytd"===n){if(o)!o.hasData()||ih(h)&&ih(l)||(l=Number.MAX_VALUE,h=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(l=Math.min(e[0],l),h=Math.max(e[e.length-1],h))}),e=!1),ih(h)&&ih(l)&&(d=g=(f=this.getYTDExtremes(h,l)).min,c=f.max);else{this.deferredYTDClick=t;return}}else"all"===n&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=l,c=h);if(m&&s._offsetMin&&ii(d)&&(d+=s._offsetMin),s._offsetMax&&ii(c)&&(c+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)ih(d)&&ih(c)&&(o.setExtremes(d,c,iu(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{p=ig(i.options.xAxis||{})[0];let t=e7(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});e7(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=p.range,e.options.min=p.min,t()})}il(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,r=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&il(t,"blur"),i&&i.blur&&il(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(e7(t.container,"mousedown",r)),this.eventsToUnbind.push(e7(t,"resize",r)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(e7(t,"load",function(){t.xAxis&&t.xAxis[0]&&e7(t.xAxis[0],"setExtremes",function(i){ih(this.max)&&ih(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],r=Math.round(o.max-o.min),n=!o.hasVisibleSeries,a=24*36e5,l=e.scroller&&e.scroller.getUnionExtremes()||o,h=l.dataMin,d=l.dataMax,c=t.getYTDExtremes(d,h),p=c.min,u=c.max,g=t.selected,x=t.options.allButtonsEnabled,f=Array(t.buttonOptions.length).fill(0),m=ih(g),b=t.buttons,y=!1,v=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,l=e.type,c=e.count||1,b=e._offsetMax-e._offsetMin,M=i===g,k=s>d-h,A=ss&&(P=!0)}else("month"===l||"year"===l)&&r+36e5>=({month:28,year:365})[l]*a*c-b&&r-36e5<=({month:31,year:366})[l]*a*c+b?P=!0:"ytd"===l?(P=u-p+b===r,w=!M):"all"===l&&(P=o.max-o.min>=d-h);let E=!x&&!(y&&"all"===l)&&(k||A||n),O=y&&"all"===l||!w&&P||M&&t.frozenStates;E?f[i]=3:O&&(!m||i===g)&&(v=i)}),null!==v?(f[v]=2,t.setSelected(v),this.dropdown&&(this.dropdown.selectedIndex=v+1)):(t.setSelected(),this.dropdown&&(this.dropdown.selectedIndex=-1),s&&(s.setState(0),s.attr({text:(e9.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?c=void 0:cl&&(c=l)),void 0!==c&&r.setExtremes(h?c:r.min,h?r.max:c,void 0,void 0,{trigger:"rangeSelectorInput"}))}let c=l[h?"rangeSelectorFrom":"rangeSelectorTo"]||"",p=n.label(c,0).addClass("highcharts-range-label").attr({padding:c?2:0,height:c?a.inputBoxHeight:0}).add(s),u=n.label("",0).addClass("highcharts-range-input").attr({padding:2,width:a.inputBoxWidth,height:a.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:a.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=it("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",ix(a.inputDateFormat||"%e %b %Y")),e.styledMode||(p.css(ic(r,a.labelStyle)),u.css(ic({color:"#333333"},r,a.inputStyle)),ie(g,ia({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:r.fontSize,fontFamily:r.fontFamily,top:"-9999em"},a.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===A().doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let x=!1;return g.onchange=()=>{x||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{x=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{x=!1},{dateBox:u,input:g,label:p}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,r=o.inputEnabled,n=iu(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=it("div",void 0,{position:"relative",height:0,zIndex:n}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),r&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(ii(o.dataMin)&&ii(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=e9.lang,o=e.renderer,r=ic(i.buttonTheme),n=r&&r.states;delete r.width,delete r.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let a=this.dropdown=it("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),l=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},ic(r,{"stroke-width":iu(r["stroke-width"],0),width:"auto",paddingLeft:iu(i.buttonTheme.paddingLeft,l?.padding,8),paddingRight:iu(i.buttonTheme.paddingRight,l?.padding,8)}),n&&n.hover,n&&n.select,n&&n.disabled).hide().add(this.group),e7(a,"touchstart",()=>{a.style.fontSize="16px"});let h=A().isMS?"mouseover":"mouseenter",d=A().isMS?"mouseout":"mouseleave";e7(a,h,()=>{il(this.dropdownLabel.element,h)}),e7(a,d,()=>{il(this.dropdownLabel.element,d)}),e7(a,"change",()=>{il(this.buttons[a.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),it("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,a),this.createButtons()}createButtons(){let{options:t}=this,e=ic(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:r,chart:n,options:a}=this,l=n.renderer,h=ic(a.buttonTheme);o?.add(it("option",{textContent:t.title||t.text}),e+2),r[e]=l.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},h,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&r[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:r,zoomText:n}=this,a=i.options,l=a.exporting&&!1!==a.exporting.enabled&&a.navigation&&a.navigation.buttonOptions,{buttonPosition:h,inputPosition:d,verticalAlign:c}=r,p=(t,e,s)=>l&&this.titleCollision(i)&&"top"===c&&s&&e.y-t.getBBox().height-12<(l.y||0)+(l.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&h&&d){let a=h.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;n&&(t+=n.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=r.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=p(t,h,"right"===h.align||"right"===d.align);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let l=0;r.inputEnabled&&o&&(l=p(o,d,"right"===h.align||"right"===d.align),"left"===d.align?a=u:"right"===d.align&&(a=-Math.max(i.axisOffset[1],-l)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+a-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(l),s.align({verticalAlign:c},!0,i.spacingBox);let g=s.alignAttr.translateY,x=s.getBBox().height+20,f=0;if("bottom"===c){let t=i.legend&&i.legend.options;f=g-(x=x+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+iu(t.margin,10):0)-20)-(r.floating?0:r.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===c?(r.floating&&(f=0),i.titleOffset&&i.titleOffset[0]&&(f=i.titleOffset[0]),f+=i.margin[0]-i.spacing[0]||0):"middle"===c&&(d.y===h.y?f=g:(d.y||h.y)&&(d.y<0||h.y<0?f-=Math.min(d.y,h.y):f=g-x)),s.translate(r.x,r.y+Math.floor(f));let{minInput:m,maxInput:b,dropdown:y}=this;r.inputEnabled&&m&&b&&(m.style.marginTop=s.translateY+"px",b.style.marginTop=s.translateY+"px"),y&&(y.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=ic(s.buttonTheme),r=o&&o.states,n=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(io(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,n,r),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};s&&i&&(n.align===o.align?(a(),this.initialButtonGroupWidth>e.plotWidth+t-20?this.collapseButtons():this.expandButtons()):this.initialButtonGroupWidth-t+s.getBBox().width>e.plotWidth?"responsive"===r?this.collapseButtons():a():this.expandButtons()),i&&("always"===r&&this.collapseButtons(),"never"===r&&this.expandButtons()),this.alignButtonGroup(t)}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,dropdownLabel:e,dropdown:i}=this;t&&i&&(e.show(),ie(i,{visibility:"inherit"}),this.hasVisibleDropdown=!0)}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),ie(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,r=s.y,n=i.y,a=0;if(t.height)return t.height;this.alignElements(),a=e?e.getBBox(!0).height+13+o:0;let l=Math.min(n,r);return(n<0&&r<0||n>0&&r>0)&&(a+=Math.abs(l)),a}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(ic(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),ii(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),is(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),ip(t,function(e,i){e&&"chart"!==i&&(e instanceof e_()?e.destroy():e instanceof window.HTMLElement&&ir(e),delete t[i]),e!==im.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}ia(im.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});let ib={applyRadius:function(t,e){let i=[];for(let s=0;s>1].xMin)>0)o=n+1;else{if(!(a<0))return n;r=n-1}return o>0?o-1:0}function iw(t,e){let i=iA(t,e.x+1)+1;for(;i--;){var s;if(t[i].xMax>=e.x&&(s=t[i],e.x<=s.xMax&&e.x>=s.xMin&&e.y<=s.yMax&&e.y>=s.yMin))return i}return -1}function iP(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let i=0;iik(e.y-t.y))?"x":"y",h,d,c,p;function u(t,e,i,s,o){let r={x:t.x,y:t.y};return r[e]=i[s||e]+(o||0),r}function g(t,e,i){let s=ik(e[i]-t[i+"Min"])>ik(e[i]-t[i+"Max"]);return u(e,i,t,i+(s?"Max":"Min"),s?1:-1)}n>-1?(a={start:d=g(o[n],e,l),end:e},p=d):p=e,r>-1&&(d=g(h=o[r],t,l),s.push({start:t,end:d}),d[l]>=t[l]==d[l]>=p[l]&&(c=t[l="y"===l?"x":"y"]ik(e.y-t.y)),o=s?"x":"y",r=[],n=i.obstacleMetrics,a=iv(t.x,e.x)-n.maxWidth-10,l=iM(t.x,e.x)+n.maxWidth+10,h=iv(t.y,e.y)-n.maxHeight-10,d=iM(t.y,e.y)+n.maxHeight+10,c,p,u,g=!1,x=i.chartObstacles,f=iA(x,l),m=iA(x,a);function b(t,e,i){let s,o,r,n;let a=t.x0&&x[l].xMin<=o.x||a<0&&x[l].xMax>=s.x);){if(x[l].xMin<=o.x&&x[l].xMax>=s.x&&x[l].yMin<=r.y&&x[l].yMax>=n.y){if(i)return{y:t.y,x:t.x=r[a+"Max"],c=t[a+"Min"]<=r[a+"Min"],p=t[a+"Max"]>=n[a+"Max"],u=t[a+"Min"]<=n[a+"Min"],g=ik(t[a+"Min"]-e[a]),x=ik(t[a+"Max"]-e[a]),f=10>ik(g-x)?e[a]-1&&(u=function(t,e,s){let o=iv(t.xMax-e.x,e.x-t.xMin)-1;)p=e[o]-t[o]<0,(u={x:e.x,y:e.y})[o]=x[f][p?o+"Max":o+"Min"]+(p?1:-1),r.push({end:e,start:u}),e=u;return{path:iP(c=(c=function t(e,s,o){let r,n,c,p,u,f,m;if(e.x===s.x&&e.y===s.y)return[];let v=o?"x":"y",M=i.obstacleOptions.margin,k={soft:{xMin:a,xMax:l,yMin:h,yMax:d},hard:i.hardBounds};return(u=iw(x,e))>-1?(p=y(u=x[u],e,s,o,k),iE(u,i.hardBounds),m=o?{y:e.y,x:u[p?"xMax":"xMin"]+(p?1:-1)}:{x:e.x,y:u[p?"yMax":"yMin"]+(p?1:-1)},(f=iw(x,m))>-1&&(iE(f=x[f],i.hardBounds),m[v]=p?iM(u[v+"Max"]-M+1,(f[v+"Min"]+u[v+"Max"])/2):iv(u[v+"Min"]+M-1,(f[v+"Max"]+u[v+"Min"])/2),e.x===m.x&&e.y===m.y?(g&&(m[v]=p?iM(u[v+"Max"],f[v+"Max"])+1:iv(u[v+"Min"],f[v+"Min"])-1),g=!g):g=!1),n=[{start:e,end:m}]):(r=b(e,{x:o?s.x:e.x,y:o?e.y:s.y},o),n=[{start:e,end:{x:r.x,y:r.y}}],r[o?"x":"y"]!==s[o?"x":"y"]&&(p=y(r.obstacle,r,s,!o,k),iE(r.obstacle,i.hardBounds),c={x:o?r.x:r.obstacle[p?"xMax":"xMin"]+(p?1:-1),y:o?r.obstacle[p?"yMax":"yMin"]+(p?1:-1):r.y},o=!o,n=n.concat(t({x:r.x,y:r.y},c,o)))),n=n.concat(t(n[n.length-1].end,s,!o))}(t,e,s)).concat(r.reverse())),obstacles:c}}iO.requiresObstacles=!0,iS.requiresObstacles=!0;let iB={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:iT}=A(),{defined:iC,error:iI,merge:iR}=A();function iD(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let i=t.graphic&&t.graphic.getBBox();return i?{xMin:t.plotX-i.width/2,xMax:t.plotX+i.width/2,yMin:t.plotY-i.height/2,yMax:t.plotY+i.height/2}:null}!function(t){function e(t){let e,i;let s=iD(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":i="yMin";break;case"bottom":i="yMax"}return{x:e?s[e]:(s.xMin+s.xMax)/2,y:i?s[i]:(s.yMin+s.yMax)/2}}function i(t,e){let i;return!iC(e)&&(i=iD(this))&&(e={x:(i.xMin+i.xMax)/2,y:(i.yMin+i.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function s(t,e,i){let s=2*Math.PI,o=iD(this),r=o.xMax-o.xMin,n=o.yMax-o.yMin,a=Math.atan2(n,r),l=r/2,h=n/2,d=o.xMin+l,c=o.yMin+h,p={x:d,y:c},u=t,g=1,x=!1,f=1,m=1;for(;u<-Math.PI;)u+=s;for(;u>Math.PI;)u-=s;return g=Math.tan(u),u>-a&&u<=a?(m=-1,x=!0):u>a&&u<=Math.PI-a?m=-1:u>Math.PI-a||u<=-(Math.PI-a)?(f=-1,x=!0):f=-1,x?(p.x+=f*l,p.y+=m*l*g):(p.x+=n/(2*g)*f,p.y+=m*h),i.x!==d&&(p.x=i.x),i.y!==c&&(p.y=i.y),{x:p.x+e*Math.cos(u),y:p.y-e*Math.sin(u)}}t.compose=function(t,o,r){let n=r.prototype;n.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&iR(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&(iR(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),iI('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new o(this),this.pathfinder.update(!0))}),n.getMarkerVector=s,n.getPathfinderAnchorPoint=e,n.getRadiansToVector=i,iT(iB))}}(x||(x={}));let iG=x;var iL=v(260),iz=v.n(iL);let{addEvent:iN,defined:iW,pick:iH,splat:iF}=A(),iU=Math.max,iX=Math.min;class iY{static compose(t,e){iG.compose(t,iY,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],iN(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,i=this,s=i.connections;i.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let s;let o=t.options;o&&o.dependency&&(o.connect=o.dependency);let r=t.options?.connect?iF(t.options.connect):[];t.visible&&!1!==t.isInside&&r.forEach(o=>{let r="string"==typeof o?o:o.to;r&&(s=e.get(r)),s instanceof iz()&&s.series.visible&&s.visible&&!1!==s.isInside&&i.connections.push(new L(t,s,"string"==typeof o?{}:o))})})});for(let t=0,e,o,r=s.length,n=i.connections.length;ti.yMin-o&&e.yMin-oi.xMin-o&&e.xMin-oi.xMax?e.xMin-i.xMax:i.xMin-e.xMax:1/0,l=n?e.yMin>i.yMax?e.yMin-i.yMax:i.yMin-e.yMax:1/0;return n&&r?o?t(e,i,Math.floor(o/2)):1/0:iX(a,l)}(t[o],t[r]))<80&&s.push(e);return s.push(80),iU(Math.floor(s.sort(function(t,e){return t-e})[Math.floor(s.length/10)]/2-1),1)}(s),s.forEach(function(t){t.xMin-=o,t.xMax+=o,t.yMin-=o,t.yMax+=o})),s}getObstacleMetrics(t){let e=0,i=0,s,o,r=t.length;for(;r--;)s=t[r].xMax-t[r].xMin,o=t[r].yMax-t[r].yMin,e=1&&(e.plotHeight=o,e.redrawTrigger="adjustHeight",e.setSize(void 0,e.chartHeight+r,i)),t.series.forEach(function(t){let i=t.sharedClipKey&&e.sharedClips[t.sharedClipKey];i&&i.attr(e.inverted?{width:e.plotHeight}:{height:e.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}let iJ={compose:function(t,e){let i=e.prototype;i.adjustHeight||(i_(t,"afterSetOptions",i$),i.adjustHeight=iK,i_(e,"render",i.adjustHeight))}},iQ=A();iJ.compose(iQ.Axis,iQ.Chart);let{correctFloat:i0,isNumber:i1,isObject:i2}=A(),{column:{prototype:{pointClass:i3}}}=tO().seriesTypes,{extend:i5}=A();class i6 extends i3{static getColorByCategory(t,e){let i=t.options.colors||t.chart.options.colors,s=i?i.length:t.chart.options.chart.colorCount,o=e.y%s,r=i&&i[o];return{colorIndex:o,color:r}}resolveColor(){let t=this.series;if(t.options.colorByPoint&&!this.options.color){let e=i6.getColorByCategory(t,this);t.chart.styledMode||(this.color=e.color),this.options.colorIndex||(this.colorIndex=e.colorIndex)}else this.color=this.options.color||t.color}constructor(t,e){super(t,e),this.y||(this.y=0)}applyOptions(t,e){return super.applyOptions(t,e),this.x2=this.series.chart.time.parse(this.x2),this.isNull=!this.isValid?.(),this}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}i5(i6.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]});let{composed:i4,noop:i8}=A(),{parse:i9}=tP(),{column:i7}=tO().seriesTypes,{addEvent:st,clamp:se,crisp:si,defined:ss,extend:so,find:sr,isNumber:sn,isObject:sa,merge:sl,pick:sh,pushUnique:sd,relativeLength:sc}=A();function sp(){let t,e;if(this.isXAxis){for(let i of(t=sh(this.dataMax,-Number.MAX_VALUE),this.series)){let s=i.dataTable.getColumn("x2",!0)||i.dataTable.getColumn("end",!0);if(s)for(let i of s)sn(i)&&i>t&&(t=i,e=!0)}e&&(this.dataMax=t)}}class su extends i7{static compose(t){sd(i4,"Series.XRange")&&st(t,"afterGetSeriesExtremes",sp)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let t=()=>{for(let t of this.chart.series){let e=t.xAxis;t.xAxis=t.yAxis,t.yAxis=e}};t();let e=super.getColumnMetrics();return t(),e}cropData(t,e,i){let s=t.getColumn("x")||[],o=t.getColumn("x2");t.setColumn("x",o,void 0,{silent:!0});let r=super.cropData(t,e,i);return t.setColumn("x",s.slice(r.start,r.end),void 0,{silent:!0}),r}findPointIndex(t){let e;let{cropStart:i,points:s}=this,{id:o}=t;if(o){let t=sr(s,t=>t.id===o);e=t?t.index:void 0}if(void 0===e){let i=sr(s,e=>e.x===t.x&&e.x2===t.x2&&!e.touched);e=i?i.index:void 0}return this.cropped&&sn(e)&&sn(i)&&e>=i&&(e-=i),e}alignDataLabel(t){let e=t.plotX;t.plotX=sh(t.dlBox&&t.dlBox.centerX,t.plotX),t.dataLabel&&t.shapeArgs?.width&&t.dataLabel.css({width:`${t.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),t.plotX=e}translatePoint(t){let e=this.xAxis,i=this.yAxis,s=this.columnMetrics,o=this.options,r=o.minPointLength||0,n=(t.shapeArgs&&t.shapeArgs.width||0)/2,a=this.pointXOffset=s.offset,l=sh(t.x2,t.x+(t.len||0)),h=o.borderRadius,d=this.chart.plotTop,c=this.chart.plotLeft,p=t.plotX,u=e.translate(l,0,0,0,1),g=Math.abs(u-p),x=this.chart.inverted,f=sh(o.borderWidth,1),m,b,y=s.offset,v=Math.round(s.width),M,k,A,w;r&&((m=r-g)<0&&(m=0),p-=m/2,u+=m/2),p=Math.max(p,-10),u=se(u,-10,e.len+10),ss(t.options.pointWidth)&&(y-=(Math.ceil(t.options.pointWidth)-v)/2,v=Math.ceil(t.options.pointWidth)),o.pointPlacement&&sn(t.plotY)&&i.categories&&(t.plotY=i.translate(t.y,0,1,0,1,o.pointPlacement));let P=si(Math.min(p,u),f),E=si(Math.max(p,u),f)-P,O=Math.min(sc("object"==typeof h?h.radius:h||0,v),Math.min(E,v)/2),S={x:P,y:si((t.plotY||0)+y,f),width:E,height:v,r:O};t.shapeArgs=S,x?t.tooltipPos[1]+=a+n:t.tooltipPos[0]-=n+a-S.width/2,k=(M=S.x)+S.width,M<0||k>e.len?(M=se(M,0,e.len),A=(k=se(k,0,e.len))-M,t.dlBox=sl(S,{x:M,width:k-M,centerX:A?A/2:null})):t.dlBox=null;let B=t.tooltipPos,T=x?1:0,C=x?0:1,I=this.columnMetrics?this.columnMetrics.offset:-s.width/2;x?B[T]+=S.width/2:B[T]=se(B[T]+(e.reversed?-1:0)*S.width,e.left-c,e.left+e.len-c-1),B[C]=se(B[C]+(x?-1:1)*I,i.top-d,i.top+i.len-d-1),(b=t.partialFill)&&(sa(b)&&(b=b.amount),sn(b)||(b=0),t.partShapeArgs=sl(S),w=Math.max(Math.round(g*b+t.plotX-p),0),t.clipRectArgs={x:e.reversed?S.x+g-w:S.x,y:S.y,width:w,height:S.height}),t.key=t.category||t.name,t.yCategory=i.categories?.[t.y??-1]}translate(){for(let t of(super.translate.apply(this,arguments),this.points))this.translatePoint(t)}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeType,r=t.shapeArgs,n=t.partShapeArgs,a=t.clipRectArgs,l=t.state,h=i.states[l||"normal"]||{},d=void 0===l?"attr":e,c=this.pointAttribs(t,l),p=sh(this.chart.options.chart.animation,h.animation),u=t.graphic,g=t.partialFill;if(t.isNull||!1===t.visible)u&&(t.graphic=u.destroy());else if(u?u.rect[e](r):(t.graphic=u=s.g("point").addClass(t.getClassName()).add(t.group||this.group),u.rect=s[o](sl(r)).addClass(t.getClassName()).addClass("highcharts-partfill-original").add(u)),n&&(u.partRect?(u.partRect[e](sl(n)),u.partialClipRect[e](sl(a))):(u.partialClipRect=s.clipRect(a.x,a.y,a.width,a.height),u.partRect=s[o](n).addClass("highcharts-partfill-overlay").add(u).clip(u.partialClipRect))),!this.chart.styledMode&&(u.rect[e](c,p).shadow(i.shadow),n)){sa(g)||(g={}),sa(i.partialFill)&&(g=sl(i.partialFill,g));let e=g.fill||i9(c.fill).brighten(-.3).get()||i9(t.color||this.color).brighten(-.3).get();c.fill=e,u.partRect[d](c,p).shadow(i.shadow)}}drawPoints(){let t=this.getAnimationVerb();for(let e of this.points)this.drawPoint(e,t)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(t){let e=t.shapeArgs,i=t.plotX,s=t.plotY;return e?void 0!==i&&void 0!==s&&s>=0&&s<=this.yAxis.len&&(e.x||0)+(e.width||0)>=0&&i<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}su.defaultOptions=sl(i7.defaultOptions,{colorByPoint:!0,dataLabels:{formatter:function(){let t=this.partialFill;if(i2(t)&&(t=t.amount),i1(t)&&t>0)return i0(100*t)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{ucfirst point.x} - {point.x2}
    ',pointFormat:' {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}),so(su.prototype,{pointClass:i6,pointArrayMap:["x2","y"],getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:tO().series.prototype.animate,autoIncrement:i8,buildKDTree:i8}),tO().registerSeriesType("xrange",su);/** + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/xrange * @requires highcharts * @@ -18,8 +18,8 @@ * (c) 2010-2024 Torstein Honsi, Lars A. V. Cabrera * * License: www.highcharts.com/license - */let sg=A();su.compose(sg.Axis);let{xrange:{prototype:{pointClass:sx}}}=tE().seriesTypes;class sf extends sx{static setGanttPointAliases(t,e){t.x=t.start=e.time.parse(t.start??t.x),t.x2=t.end=e.time.parse(t.end??t.x2),t.partialFill=t.completed=t.completed??t.partialFill}applyOptions(t,e){let i=super.applyOptions(t,e);return sf.setGanttPointAliases(i,i.series.chart),this.isNull=!this.isValid?.(),i}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}let{isNumber:sm}=A();var sb=v(184),sy=/*#__PURE__*/v.n(sb);let{addEvent:sv,find:sM,fireEvent:sk,isArray:sA,isNumber:sw,pick:sP}=A();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,n;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(n&&!1!==n.visible||(n=i[r+1]),t=i[r],!1!==n.visible&&!1!==t.visible){if(n.x-t.x>o){let e=(t.x+n.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(sy())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}n=t}}return this.getGraphPath(i)}t.compose=function(t,h){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),sv(t,"init",o),sv(t,"afterInit",e),sv(t,"afterSetTickPositions",s),sv(t,"afterSetOptions",i);let d=h.prototype;d.drawBreaks=a,d.gappedPath=l,sv(h,"afterGeneratePoints",r),sv(h,"afterRender",n)}return t};class h{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(h.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return sM(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==h.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=h.lin2Val,s.val2lin=h.val2Lin,s.setExtremes=function(t,e,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=l;for(;p{t.getOffset()})}i&&t.apply(this)}function sF(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:e,height:i,horiz:s,left:o,offset:r,opposite:n,options:a,top:l,width:h}=this,d=this.tickSize(),c=e&&e.getBBox().width,p=a.title.x,u=a.title.y,g=sL(a.title.margin,s?5:10),x=e?this.chart.renderer.fontMetrics(e).f:0,f=(s?l+i:o)+(s?1:-1)*(n?-1:1)*(d?d[0]/2:0)+(this.side===m.bottom?x:0);t.titlePosition.x=s?o-(c||0)/2-g+p:f+(n?h:0)+r+p,t.titlePosition.y=s?f-(n?i:0)+(n?x:-x)/2+r+u:l-g+u}}function sU(){let{chart:t,options:{grid:e={}},userOptions:i}=this;if(e.enabled&&function(t){let e=t.options;e.labels.align=sL(e.labels.align,"center"),t.categories||(e.showLastLabel=!1),t.labelRotation=0,e.labels.rotation=0,e.minTickInterval=1}(this),e.columns){let s=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++ot.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,e;let i=this.tickmarkOffset,r=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(e=this.hiddenMarks.pop())&&e.element;)e.show();(t=this.ticks[n].label)&&(s-n>i?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[r].label)&&(r-o>i?this.hiddenLabels.push(t.hide()):t.show());let a=this.ticks[r].mark;a&&r-o0&&this.ticks[r].isLast&&this.hiddenMarks.push(a.hide())}}}function sY(){let t=this.tickPositions&&this.tickPositions.info,e=this.options,i=e.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&e.dateTimeLabelFormats&&e.labels&&!sB(s.align)&&(!1===e.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(e.labels.align="left",sB(s.x)||(e.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function sV(t){let e;let i=this.options,s=t.userOptions,o=i&&sN(i.grid)?i.grid:{};!0===o.enabled&&(e=sD(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(sB(s.linkedTo)&&!sB(s.tickPixelInterval)&&(e.tickPixelInterval=350),!(!sB(s.tickPixelInterval)&&sB(s.linkedTo))||sB(s.tickPositioner)||sB(s.tickInterval)||sB(s.units)||(e.tickPositioner=function(t,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=e.units||[],r,n=1,a="year";for(let t=0;tt.setScale())}function sq(t){let{horiz:e,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=e?s.cellHeight||o+i.height:o+i.width;sI(t.tickSize)?t.tickSize[0]=r:t.tickSize=[r,0]}}function sZ(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function s$(t){let{grid:e}=this;(e.columns||[]).forEach(e=>e.destroy(t.keepEvents)),e.columns=void 0}function sK(t){let e=t.userOptions||{},i=e.grid||{};i.enabled&&sB(i.borderColor)&&(e.tickColor=e.lineColor=i.borderColor),this.grid||(this.grid=new s2(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function sJ(t){let e=this.label,i=this.axis,s=i.reversed,o=i.chart,r=i.options.grid||{},n=i.options.labels,a=n.align,l=m[i.side],h=t.tickmarkOffset,d=i.tickPositions,c=this.pos-h,p=sR(d[t.index+1])?d[t.index+1]-h:(i.max||0)+h,u=i.tickSize("tick"),g=u?u[0]:0,x=u?u[1]/2:0;if(!0===r.enabled){let r,h,d,u;if("top"===l?h=(r=i.top+i.offset)-g:"bottom"===l?r=(h=o.chartHeight-i.bottom+i.offset)+g:(r=i.top+i.len-(i.translate(s?p:c)||0),h=i.top+i.len-(i.translate(s?c:p)||0)),"right"===l?u=(d=o.chartWidth-i.right+i.offset)+g:"left"===l?d=(u=i.left+i.offset)-g:(d=Math.round(i.left+(i.translate(s?p:c)||0))-x,u=Math.min(Math.round(i.left+(i.translate(s?c:p)||0))-x,i.left+i.len)),this.slotWidth=u-d,t.pos.x="left"===a?d:"right"===a?u:d+(u-d)/2,t.pos.y=h+(r-h)/2,e){let i=o.renderer.fontMetrics(e),s=e.getBBox().height;if(n.useHTML)t.pos.y+=i.b+-(s/2);else{let e=Math.round(s/i.h);t.pos.y+=(i.b-(i.h-i.f))/2+-((e-1)*i.h/2)}}t.pos.x+=i.horiz&&n.x||0}}function sQ(t){let{axis:e,value:i}=t;if(e.options.grid&&e.options.grid.enabled){let s;let o=e.tickPositions,r=(e.linkedParent||e).series[0],n=i===o[0],a=i===o[o.length-1],l=r&&sC(r.options.data,function(t){return t[e.isXAxis?"x":"y"]===i});l&&r.is("gantt")&&(s=sD(l),A().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,e.chart)),t.isFirst=n,t.isLast=a,t.point=s}}function s0(){let t=this.options,e=t.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],a=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,h=this.linkedParent&&this.linkedParent.max,d=l||this.min,c=h||this.max,p=this.tickInterval,u=sR(d)&&d>=o+p&&dd,x=sR(c)&&n>c&&n-pa;!0===e.enabled&&!i&&(this.isXAxis||this.isLinked)&&((g||u)&&!t.startOnTick&&(s[0]=d),(x||f)&&!t.endOnTick&&(s[s.length-1]=c))}function s1(t){var e;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:t.apply(this,(e=arguments,Array.prototype.slice.call(e,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(m||(m={}));class s2{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,e=t.chart,i=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],o=i?t.linkedParent:t,r=-1,n=0;return 3===t.side&&!e.inverted&&s.length?!t.linkedParent:((e[t.coll]||[]).forEach((e,i)=>{e.side!==t.side||e.options.isInternal||(n=i,e!==o||(r=i))}),n===r&&(!sR(i)||s.length===i))}renderBorder(t){let e=this.axis,i=e.chart.renderer,s=e.options,o=i.path(t).addClass("highcharts-axis-line").add(e.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}sE.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},sE.W=function(t){let e=this.toParts(t),i=(e[7]+6)%7,s=e.slice(0);s[2]=e[2]-i+3;let o=this.toParts(this.makeTime(s[0],0,1));return 4!==o[7]&&(e[1]=0,e[2]=1+(11-o[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(o[0],o[1],o[2]))/6048e5)).toString()};let s3={compose:function(t,e,i){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=sW,sz(t.prototype,"unsquish",s1),sz(t.prototype,"getOffset",sH),sS(t,"init",sK),sS(t,"afterGetTitlePosition",sF),sS(t,"afterInit",sU),sS(t,"afterRender",sX),sS(t,"afterSetAxisTranslation",sY),sS(t,"afterSetOptions",sV),sS(t,"afterSetOptions",s_),sS(t,"afterSetScale",sj),sS(t,"afterTickSize",sq),sS(t,"trimTicks",s0),sS(t,"destroy",s$),sS(e,"afterSetChartSize",sZ),sS(i,"afterGetLabelPosition",sJ),sS(i,"labelFormat",sQ)),t}},{extend:s5,isNumber:s6,pick:s4}=A();function s8(t,e,i,s,o,r){let n=r&&r.after,a=r&&r.before,l={data:s,depth:i-1,id:t,level:i,parent:e||""},h=0,d=0,c,p;"function"==typeof a&&a(l,r);let u=(o[t]||[]).map(e=>{let s=s8(e.id,t,i+1,e,o,r),n=e.start||NaN,a=!0===e.milestone?n:e.end||NaN;return c=!s6(c)||np?a:p,h=h+1+s.descendants,d=Math.max(s.height+1,d),s});return s&&(s.start=s4(s.start,c),s.end=s4(s.end,p)),s5(l,{children:u,descendants:h,height:d}),"function"==typeof n&&n(l,r),l}let s9={getNode:s8,getTree:function(t,e){return s8("",null,1,null,function(t){let e=[],i=t.reduce((t,i)=>{let{parent:s="",id:o}=i;return void 0===t[s]&&(t[s]=[]),t[s].push(i),o&&e.push(o),t},{});return Object.keys(i).forEach(t=>{if(""!==t&&-1===e.indexOf(t)){let e=i[t].map(function(t){let{...e}=t;return e});i[""].push(...e),delete i[t]}}),i}(t),e)}},{addEvent:s7,removeEvent:ot,isObject:oe,isNumber:oi,pick:os,wrap:oo}=A();function or(){this.treeGrid||(this.treeGrid=new ol(this))}function on(t,e,i,s,o,r,n,a,l){let h,d,c;let p=os(this.options&&this.options.labels,r),u=this.pos,g=this.axis,x="treegrid"===g.type,f=t.apply(this,[e,i,s,o,p,n,a,l]);if(x){let{width:t=0,padding:e=g.linkedParent?0:5}=p&&oe(p.symbol,!0)?p.symbol:{},i=p&&oi(p.indentation)?p.indentation:0;c=(d=(h=g.treeGrid.mapOfPosToGridNode)&&h[u])&&d.depth||1,f.x+=t+2*e+(c-1)*i}return f}function oa(t){let e,i,s;let{pos:o,axis:r,label:n,treeGrid:a,options:l}=this,h=a?.labelIcon,d=n?.element,{treeGrid:c,options:p,chart:u,tickPositions:g}=r,x=c.mapOfPosToGridNode,f=os(l?.labels,p?.labels),m=f&&oe(f.symbol,!0)?f.symbol:{},b=x&&x[o],{descendants:y,depth:v}=b||{},M=b&&y&&y>0,k="treegrid"===r.type&&d,A=g.indexOf(o)>-1,w="highcharts-treegrid-node-",P=w+"level-",O=u.styledMode;k&&b&&n.removeClass(RegExp(P+".*")).addClass(P+v),t.apply(this,Array.prototype.slice.call(arguments,1)),k&&M?(e=c.isCollapsed(b),function(t,e){let i=t.treeGrid,s=!i.labelIcon,o=e.renderer,r=e.xy,n=e.options,a=n.width||0,l=n.height||0,h=n.padding??t.axis.linkedParent?0:5,d={x:r.x-a/2-h,y:r.y-l/2},c=e.collapsed?90:180,p=e.show&&oi(d.y),u=i.labelIcon;u||(i.labelIcon=u=o.path(o.symbols[n.type](n.x||0,n.y||0,a,l)).addClass("highcharts-label-icon").add(e.group)),u[p?"show":"hide"](),o.styledMode||u.attr({cursor:"pointer",fill:os(e.color,"#666666"),"stroke-width":1,stroke:n.lineColor,strokeWidth:n.lineWidth||0}),u[s?"attr":"animate"]({translateX:d.x,translateY:d.y,rotation:c})}(this,{color:!O&&n.styles.color||"",collapsed:e,group:n.parentGroup,options:m,renderer:n.renderer,show:A,xy:n.xy}),i=w+(e?"collapsed":"expanded"),s=w+(e?"expanded":"collapsed"),n.addClass(i).removeClass(s),O||n.css({cursor:"pointer"}),[n,h].forEach(t=>{t&&!t.attachedTreeGridEvents&&(s7(t.element,"mouseover",function(){n.addClass("highcharts-treegrid-node-active"),n.renderer.styledMode||n.css({textDecoration:"underline"})}),s7(t.element,"mouseout",function(){!function(t,e){let i=oe(e.style)?e.style:{};t.removeClass("highcharts-treegrid-node-active"),t.renderer.styledMode||t.css({textDecoration:i.textDecoration||"none"})}(n,f)}),s7(t.element,"click",function(){a.toggleCollapse()}),t.attachedTreeGridEvents=!0)})):h&&(ot(d),n?.css({cursor:"default"}),h.destroy())}class ol{static compose(t){let e=t.prototype;e.toggleCollapse||(s7(t,"init",or),oo(e,"getLabelPosition",on),oo(e,"renderLabel",oa),e.collapse=function(t){this.treeGrid.collapse(t)},e.expand=function(t){this.treeGrid.expand(t)},e.toggleCollapse=function(t){this.treeGrid.toggleCollapse(t)})}constructor(t){this.tick=t}collapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.collapse(r);s.setBreaks(n,os(t,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(t){let{pos:e,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,r=s.mapOfPosToGridNode;if(o&&r){let i=r[e],n=s.expand(i);o.setBreaks(n,os(t,!0))}}toggleCollapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.toggleCollapse(r);s.setBreaks(n,os(t,!0))}}}let{extend:oh,isArray:od,isNumber:oc,isObject:op,merge:ou,pick:og,relativeLength:ox}=A(),{getLevelOptions:of}={getColor:function(t,e){let i,s,o,r,n,a;let l=e.index,h=e.mapOptionsToLevel,d=e.parentColor,c=e.parentColorIndex,p=e.series,u=e.colors,g=e.siblings,x=p.points,f=p.chart.options.chart;return t&&(i=x[t.i],s=h[t.level]||{},i&&s.colorByPoint&&(r=i.index%(u?u.length:f.colorCount),o=u&&u[r]),p.chart.styledMode||(n=og(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&l&&g?tP().parse(t).brighten(e.to*(l/g)).get():t})(d),p.color)),a=og(i&&i.options.colorIndex,s&&s.colorIndex,r,c,e.colorIndex)),{color:n,colorIndex:a}},getLevelOptions:function(t){let e,i,s,o,r,n;let a={};if(op(t))for(o=oc(t.from)?t.from:1,n=t.levels,i={},e=op(t.defaults)?t.defaults:{},od(n)&&(i=n.reduce((t,i)=>{let s,r,n;return op(i)&&oc(i.level)&&(r=og((n=ou({},i)).levelIsConstant,e.levelIsConstant),delete n.levelIsConstant,delete n.level,op(t[s=i.level+(r?0:o-1)])?ou(!0,t[s],n):t[s]=n),t},{})),r=oc(t.to)?t.to:1,s=0;s<=r;s++)a[s]=ou({},e,op(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(n+t)/(e||1)-t}return ox(r,n)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],n=!1!==i.levelIsConstant,a=i.points[e.i],l=a&&a.options||{},h=[],d=0;e.levelDynamic=e.level-(n?0:r.level),e.name=og(a&&a.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=oh({},i);oh(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),h.push(s),s.visible&&(d+=s.val)});let c=og(l.value,d);return e.visible=c>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=c,e},updateRootId:function(t){let e,i;return op(t)&&(i=op(t.options)?t.options:{},e=og(t.rootNode,i.rootId,""),op(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:om,isArray:ob,splat:oy,find:ov,fireEvent:oM,isObject:ok,isString:oA,merge:ow,pick:oP,removeEvent:oO,wrap:oE}=A();function oS(t,e){let i=t.collapseEnd||0,s=t.collapseStart||0;return i>=e&&(s-=.5),{from:s,to:i,showPoints:!1}}function oB(t,e,i){let s=[],o=[],r={},n=e||!1,a={},l=-1,h=s9.getTree(t,{after:function(t){let e=a[t.pos],i=0,s=0;e.children.forEach(function(t){s+=(t.descendants||0)+1,i=Math.max((t.height||0)+1,i)}),e.descendants=s,e.height=i,e.collapsed&&o.push(e)},before:function(t){let e,i;let o=ok(t.data,!0)?t.data:{},h=oA(o.name)?o.name:"",d=r[t.parent],c=ok(d,!0)?a[d.pos]:null;n&&ok(c,!0)&&(e=ov(c.children,function(t){return t.name===h}))?(i=e.pos,e.nodes.push(t)):i=l++,!a[i]&&(a[i]=e={depth:c?c.depth+1:0,name:h,id:o.id,nodes:[t],children:[],pos:i},-1!==i&&s.push(h),ok(c,!0)&&c.children.push(e)),oA(t.id)&&(r[t.id]=t),e&&!0===o.collapsed&&(e.collapsed=!0),t.pos=i}});return{categories:s,mapOfIdToNode:r,mapOfPosToGridNode:a=function(t,e){let i=function(t,s,o){let r=t.nodes,n=s+(-1===s?0:e-1),a=(n-s)/2,l=s+a;return r.forEach(function(t){let e=t.data;ok(e,!0)&&(e.y=s+(e.seriesIndex||0),delete e.seriesIndex),t.pos=l}),o[l]=t,t.pos=l,t.tickmarkOffset=a+.5,t.collapseStart=n+.5,t.children.forEach(function(t){i(t,n+1,o),n=(t.collapseEnd||0)-.5}),t.collapseEnd=n+.5,o};return i(t["-1"],-1,{})}(a,i),collapsedNodes:o,tree:h}}function oT(t){let e=t.target;e.axes.filter(t=>"treegrid"===t.type).forEach(function(i){let s=i.options||{},o=s.labels,r=i.uniqueNames,n=e.time.parse(s.max),a=!i.treeGrid.mapOfPosToGridNode||i.series.some(function(t){return!t.hasRendered||t.isDirtyData||t.isDirty}),l=0,h,d;if(a){let s=[];if(h=i.series.reduce(function(t,i){let o=i.options.data||[],n=o[0],a=Array.isArray(n)&&!n.find(t=>"object"==typeof t);return s.push(a),i.visible&&(o.forEach(function(s){(a||i.options.keys&&i.options.keys.length)&&(s=i.pointClass.prototype.optionsToObject.call({series:i},s),i.pointClass.setGanttPointAliases(s,e)),ok(s,!0)&&(s.seriesIndex=l,t.push(s))}),!0===r&&l++),t},[]),n&&h.length=0&&e.indexOf(t.x2||0)>=0&&(i=t)}),ok(i,!0)?ow(i):i});t.visible&&t.setData(i,!1)}),i.treeGrid.mapOptionsToLevel=of({defaults:o,from:1,levels:o&&o.levels,to:i.treeGrid.tree&&i.treeGrid.tree.height}),"beforeRender"===t.type&&(i.treeGrid.collapsedNodes=d.collapsedNodes)}})}function oC(t,e){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.type,o=this.ticks,r=o[e],n,a,l;s&&this.treeGrid.mapOfPosToGridNode?((n=i[(l=this.treeGrid.mapOfPosToGridNode[e]).depth])&&(a={labels:n}),!r&&p?o[e]=r=new p(this,e,void 0,void 0,{category:l.name,tickmarkOffset:l.tickmarkOffset,options:a}):(r.parameters.category=l.name,r.options=a,r.addLabel())):t.apply(this,Array.prototype.slice.call(arguments,1))}function oI(t,e,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new oL(o)),r&&(om(e,"beforeRender",oT),om(e,"beforeRedraw",oT),om(e,"addSeries",function(t){if(t.options.data){let e=oB(t.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(e.collapsedNodes)}}),om(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(t){let e=o.treeGrid.collapse(t);o.brokenAxis&&(o.brokenAxis.setBreaks(e,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(e=>t.collapseStart!==e.collapseStart||t.collapseEnd!==e.collapseEnd)))})}),om(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=ow({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),t.apply(o,[e,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function oR(t){let e=this.options,i=this.chart.time,s="number"==typeof e.linkedTo?this.chart[this.coll]?.[e.linkedTo]:void 0;if("treegrid"===this.type){if(this.min=this.userMin??i.parse(e.min)??this.dataMin,this.max=this.userMax??i.parse(e.max)??this.dataMax,oM(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],s){let t=s.getExtremes();this.min=oP(t.min,t.dataMin),this.max=oP(t.max,t.dataMax),this.tickPositions=s.tickPositions}this.linkedParent=s}else t.apply(this,Array.prototype.slice.call(arguments,1))}function oD(t){let e=this;"treegrid"===this.type&&e.visible&&e.tickPositions.forEach(function(t){let i=e.ticks[t];i.label&&i.label.attachedTreeGridEvents&&(oO(i.label.element),i.label.attachedTreeGridEvents=!1)}),t.apply(e,Array.prototype.slice.call(arguments,1))}class oL{static compose(t,e,i,s){if(!t.keepProps.includes("treeGrid")){let e=t.prototype;t.keepProps.push("treeGrid"),oE(e,"generateTick",oC),oE(e,"init",oI),oE(e,"setTickInterval",oR),oE(e,"redraw",oD),e.utils={getNode:s9.getNode},p||(p=s)}return s3.compose(t,e,s),sO.compose(t,i),ol.compose(s),t}constructor(t){this.axis=t}setCollapsedStatus(t){let e=this.axis,i=e.chart;e.series.forEach(function(e){let s=e.options.data;if(t.id&&s){let o=i.get(t.id),r=s[e.data.indexOf(o)];o&&r&&(o.collapsed=t.collapsed,r.collapsed=t.collapsed)}})}collapse(t){let e=this.axis,i=e.options.breaks||[],s=oS(t,e.max);return i.push(s),t.collapsed=!0,e.treeGrid.setCollapsedStatus(t),i}expand(t){let e=this.axis,i=e.options.breaks||[],s=oS(t,e.max);return t.collapsed=!1,e.treeGrid.setCollapsedStatus(t),i.reduce(function(t,e){return(e.to!==s.to||e.from!==s.from)&&t.push(e),t},[])}getTickPositions(){let t=this.axis,e=Math.floor(t.min/t.tickInterval)*t.tickInterval,i=Math.ceil(t.max/t.tickInterval)*t.tickInterval;return Object.keys(t.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=e&&r<=i&&!(t.brokenAxis&&t.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(t){let e=this.axis,i=e.options.breaks||[],s=oS(t,e.max);return i.some(function(t){return t.from===s.from&&t.to===s.to})}toggleCollapse(t){return this.isCollapsed(t)?this.expand(t):this.collapse(t)}}let{series:oG,seriesTypes:{xrange:oz}}=tE(),{extend:oN,isNumber:oW,merge:oH}=A();class oF extends oz{static compose(t,e,i,s){oz.compose(t),e&&(iJ.compose(t,e),i)&&(iY.compose(e,i.prototype.pointClass),s&&oL.compose(t,e,i,s))}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeArgs,r=t.plotY,n=t.selected&&"select",a=i.stacking&&!i.borderRadius,l=t.graphic,h;t.options.milestone?oW(r)&&null!==t.y&&!1!==t.visible?(h=s.symbols.diamond(o.x||0,o.y||0,o.width||0,o.height||0),l?l[e]({d:h}):t.graphic=l=s.path(h).addClass(t.getClassName(),!0).add(t.group||this.group),this.chart.styledMode||t.graphic.attr(this.pointAttribs(t,n)).shadow(i.shadow,null,a)):l&&(t.graphic=l.destroy()):super.drawPoint(t,e)}translatePoint(t){let e,i;super.translatePoint(t),t.options.milestone&&(i=(e=t.shapeArgs).height||0,t.shapeArgs={x:(e.x||0)-i/2,y:e.y,width:i,height:i})}}oF.defaultOptions=oH(oz.defaultOptions,{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let t=this.series,e=t.xAxis,i=t.tooltipOptions.dateTimeLabelFormats,s=e.options.startOfWeek,o=t.tooltipOptions,r=this.options.milestone,n=o.xDateFormat,a=""+(this.name||this.yCategory)+"";if(o.pointFormat)return this.tooltipFormatter(o.pointFormat);!n&&sm(this.start)&&(n=t.chart.time.getDateFormat(e.closestPointRange,this.start,s,i||{}));let l=t.chart.time.dateFormat(n,this.start),h=t.chart.time.dateFormat(n,this.end);return a+="
    ",r?a+=l+"
    ":a+="Start: "+l+"
    End: "+h+"
    ",a}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}),oN(oF.prototype,{pointArrayMap:["start","end","y"],pointClass:sf,setData:oG.prototype.setData}),tE().registerSeriesType("gantt",oF);/** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + */let sg=A();su.compose(sg.Axis);let{xrange:{prototype:{pointClass:sx}}}=tO().seriesTypes;class sf extends sx{static setGanttPointAliases(t,e){t.x=t.start=e.time.parse(t.start??t.x),t.x2=t.end=e.time.parse(t.end??t.x2),t.partialFill=t.completed=t.completed??t.partialFill}applyOptions(t,e){let i=super.applyOptions(t,e);return sf.setGanttPointAliases(i,i.series.chart),this.isNull=!this.isValid?.(),i}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}let{isNumber:sm}=A();var sb=v(184),sy=v.n(sb);let{addEvent:sv,find:sM,fireEvent:sk,isArray:sA,isNumber:sw,pick:sP}=A();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,n;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(n&&!1!==n.visible||(n=i[r+1]),t=i[r],!1!==n.visible&&!1!==t.visible){if(n.x-t.x>o){let e=(t.x+n.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(sy())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}n=t}}return this.getGraphPath(i)}t.compose=function(t,h){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),sv(t,"init",o),sv(t,"afterInit",e),sv(t,"afterSetTickPositions",s),sv(t,"afterSetOptions",i);let d=h.prototype;d.drawBreaks=a,d.gappedPath=l,sv(h,"afterGeneratePoints",r),sv(h,"afterRender",n)}return t};class h{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(h.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return sM(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==h.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=h.lin2Val,s.val2lin=h.val2Lin,s.setExtremes=function(t,e,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=l;for(;p{t.getOffset()})}i&&t.apply(this)}function sF(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:e,height:i,horiz:s,left:o,offset:r,opposite:n,options:a,top:l,width:h}=this,d=this.tickSize(),c=e&&e.getBBox().width,p=a.title.x,u=a.title.y,g=sG(a.title.margin,s?5:10),x=e?this.chart.renderer.fontMetrics(e).f:0,f=(s?l+i:o)+(s?1:-1)*(n?-1:1)*(d?d[0]/2:0)+(this.side===m.bottom?x:0);t.titlePosition.x=s?o-(c||0)/2-g+p:f+(n?h:0)+r+p,t.titlePosition.y=s?f-(n?i:0)+(n?x:-x)/2+r+u:l-g+u}}function sU(){let{chart:t,options:{grid:e={}},userOptions:i}=this;if(e.enabled&&function(t){let e=t.options;e.labels.align=sG(e.labels.align,"center"),t.categories||(e.showLastLabel=!1),t.labelRotation=0,e.labels.rotation=0,e.minTickInterval=1}(this),e.columns){let s=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++ot.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,e;let i=this.tickmarkOffset,r=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(e=this.hiddenMarks.pop())&&e.element;)e.show();(t=this.ticks[n].label)&&(s-n>i?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[r].label)&&(r-o>i?this.hiddenLabels.push(t.hide()):t.show());let a=this.ticks[r].mark;a&&r-o0&&this.ticks[r].isLast&&this.hiddenMarks.push(a.hide())}}}function sY(){let t=this.tickPositions&&this.tickPositions.info,e=this.options,i=e.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&e.dateTimeLabelFormats&&e.labels&&!sB(s.align)&&(!1===e.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(e.labels.align="left",sB(s.x)||(e.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function sV(t){let e;let i=this.options,s=t.userOptions,o=i&&sN(i.grid)?i.grid:{};!0===o.enabled&&(e=sD(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(sB(s.linkedTo)&&!sB(s.tickPixelInterval)&&(e.tickPixelInterval=350),!(!sB(s.tickPixelInterval)&&sB(s.linkedTo))||sB(s.tickPositioner)||sB(s.tickInterval)||sB(s.units)||(e.tickPositioner=function(t,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=e.units||[],r,n=1,a="year";for(let t=0;tt.setScale())}function sq(t){let{horiz:e,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=e?s.cellHeight||o+i.height:o+i.width;sI(t.tickSize)?t.tickSize[0]=r:t.tickSize=[r,0]}}function sZ(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function s$(t){let{grid:e}=this;(e.columns||[]).forEach(e=>e.destroy(t.keepEvents)),e.columns=void 0}function sK(t){let e=t.userOptions||{},i=e.grid||{};i.enabled&&sB(i.borderColor)&&(e.tickColor=e.lineColor=i.borderColor),this.grid||(this.grid=new s2(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function sJ(t){let e=this.label,i=this.axis,s=i.reversed,o=i.chart,r=i.options.grid||{},n=i.options.labels,a=n.align,l=m[i.side],h=t.tickmarkOffset,d=i.tickPositions,c=this.pos-h,p=sR(d[t.index+1])?d[t.index+1]-h:(i.max||0)+h,u=i.tickSize("tick"),g=u?u[0]:0,x=u?u[1]/2:0;if(!0===r.enabled){let r,h,d,u;if("top"===l?h=(r=i.top+i.offset)-g:"bottom"===l?r=(h=o.chartHeight-i.bottom+i.offset)+g:(r=i.top+i.len-(i.translate(s?p:c)||0),h=i.top+i.len-(i.translate(s?c:p)||0)),"right"===l?u=(d=o.chartWidth-i.right+i.offset)+g:"left"===l?d=(u=i.left+i.offset)-g:(d=Math.round(i.left+(i.translate(s?p:c)||0))-x,u=Math.min(Math.round(i.left+(i.translate(s?c:p)||0))-x,i.left+i.len)),this.slotWidth=u-d,t.pos.x="left"===a?d:"right"===a?u:d+(u-d)/2,t.pos.y=h+(r-h)/2,e){let i=o.renderer.fontMetrics(e),s=e.getBBox().height;if(n.useHTML)t.pos.y+=i.b+-(s/2);else{let e=Math.round(s/i.h);t.pos.y+=(i.b-(i.h-i.f))/2+-((e-1)*i.h/2)}}t.pos.x+=i.horiz&&n.x||0}}function sQ(t){let{axis:e,value:i}=t;if(e.options.grid&&e.options.grid.enabled){let s;let o=e.tickPositions,r=(e.linkedParent||e).series[0],n=i===o[0],a=i===o[o.length-1],l=r&&sC(r.options.data,function(t){return t[e.isXAxis?"x":"y"]===i});l&&r.is("gantt")&&(s=sD(l),A().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,e.chart)),t.isFirst=n,t.isLast=a,t.point=s}}function s0(){let t=this.options,e=t.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],a=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,h=this.linkedParent&&this.linkedParent.max,d=l||this.min,c=h||this.max,p=this.tickInterval,u=sR(d)&&d>=o+p&&dd,x=sR(c)&&n>c&&n-pa;!0===e.enabled&&!i&&(this.isXAxis||this.isLinked)&&((g||u)&&!t.startOnTick&&(s[0]=d),(x||f)&&!t.endOnTick&&(s[s.length-1]=c))}function s1(t){var e;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:t.apply(this,(e=arguments,Array.prototype.slice.call(e,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(m||(m={}));class s2{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,e=t.chart,i=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],o=i?t.linkedParent:t,r=-1,n=0;return 3===t.side&&!e.inverted&&s.length?!t.linkedParent:((e[t.coll]||[]).forEach((e,i)=>{e.side!==t.side||e.options.isInternal||(n=i,e!==o||(r=i))}),n===r&&(!sR(i)||s.length===i))}renderBorder(t){let e=this.axis,i=e.chart.renderer,s=e.options,o=i.path(t).addClass("highcharts-axis-line").add(e.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}sO.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},sO.W=function(t){let e=this.toParts(t),i=(e[7]+6)%7,s=e.slice(0);s[2]=e[2]-i+3;let o=this.toParts(this.makeTime(s[0],0,1));return 4!==o[7]&&(e[1]=0,e[2]=1+(11-o[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(o[0],o[1],o[2]))/6048e5)).toString()};let s3={compose:function(t,e,i){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=sW,sz(t.prototype,"unsquish",s1),sz(t.prototype,"getOffset",sH),sS(t,"init",sK),sS(t,"afterGetTitlePosition",sF),sS(t,"afterInit",sU),sS(t,"afterRender",sX),sS(t,"afterSetAxisTranslation",sY),sS(t,"afterSetOptions",sV),sS(t,"afterSetOptions",s_),sS(t,"afterSetScale",sj),sS(t,"afterTickSize",sq),sS(t,"trimTicks",s0),sS(t,"destroy",s$),sS(e,"afterSetChartSize",sZ),sS(i,"afterGetLabelPosition",sJ),sS(i,"labelFormat",sQ)),t}},{extend:s5,isNumber:s6,pick:s4}=A();function s8(t,e,i,s,o,r){let n=r&&r.after,a=r&&r.before,l={data:s,depth:i-1,id:t,level:i,parent:e||""},h=0,d=0,c,p;"function"==typeof a&&a(l,r);let u=(o[t]||[]).map(e=>{let s=s8(e.id,t,i+1,e,o,r),n=e.start||NaN,a=!0===e.milestone?n:e.end||NaN;return c=!s6(c)||np?a:p,h=h+1+s.descendants,d=Math.max(s.height+1,d),s});return s&&(s.start=s4(s.start,c),s.end=s4(s.end,p)),s5(l,{children:u,descendants:h,height:d}),"function"==typeof n&&n(l,r),l}let s9={getNode:s8,getTree:function(t,e){return s8("",null,1,null,function(t){let e=[],i=t.reduce((t,i)=>{let{parent:s="",id:o}=i;return void 0===t[s]&&(t[s]=[]),t[s].push(i),o&&e.push(o),t},{});return Object.keys(i).forEach(t=>{if(""!==t&&-1===e.indexOf(t)){let e=i[t].map(function(t){let{...e}=t;return e});i[""].push(...e),delete i[t]}}),i}(t),e)}},{addEvent:s7,removeEvent:ot,isObject:oe,isNumber:oi,pick:os,wrap:oo}=A();function or(){this.treeGrid||(this.treeGrid=new ol(this))}function on(t,e,i,s,o,r,n,a,l){let h,d,c;let p=os(this.options&&this.options.labels,r),u=this.pos,g=this.axis,x="treegrid"===g.type,f=t.apply(this,[e,i,s,o,p,n,a,l]);if(x){let{width:t=0,padding:e=g.linkedParent?0:5}=p&&oe(p.symbol,!0)?p.symbol:{},i=p&&oi(p.indentation)?p.indentation:0;c=(d=(h=g.treeGrid.mapOfPosToGridNode)&&h[u])&&d.depth||1,f.x+=t+2*e+(c-1)*i}return f}function oa(t){let e,i,s;let{pos:o,axis:r,label:n,treeGrid:a,options:l}=this,h=a?.labelIcon,d=n?.element,{treeGrid:c,options:p,chart:u,tickPositions:g}=r,x=c.mapOfPosToGridNode,f=os(l?.labels,p?.labels),m=f&&oe(f.symbol,!0)?f.symbol:{},b=x&&x[o],{descendants:y,depth:v}=b||{},M=b&&y&&y>0,k="treegrid"===r.type&&d,A=g.indexOf(o)>-1,w="highcharts-treegrid-node-",P=w+"level-",E=u.styledMode;k&&b&&n.removeClass(RegExp(P+".*")).addClass(P+v),t.apply(this,Array.prototype.slice.call(arguments,1)),k&&M?(e=c.isCollapsed(b),function(t,e){let i=t.treeGrid,s=!i.labelIcon,o=e.renderer,r=e.xy,n=e.options,a=n.width||0,l=n.height||0,h=n.padding??t.axis.linkedParent?0:5,d={x:r.x-a/2-h,y:r.y-l/2},c=e.collapsed?90:180,p=e.show&&oi(d.y),u=i.labelIcon;u||(i.labelIcon=u=o.path(o.symbols[n.type](n.x||0,n.y||0,a,l)).addClass("highcharts-label-icon").add(e.group)),u[p?"show":"hide"](),o.styledMode||u.attr({cursor:"pointer",fill:os(e.color,"#666666"),"stroke-width":1,stroke:n.lineColor,strokeWidth:n.lineWidth||0}),u[s?"attr":"animate"]({translateX:d.x,translateY:d.y,rotation:c})}(this,{color:!E&&n.styles.color||"",collapsed:e,group:n.parentGroup,options:m,renderer:n.renderer,show:A,xy:n.xy}),i=w+(e?"collapsed":"expanded"),s=w+(e?"expanded":"collapsed"),n.addClass(i).removeClass(s),E||n.css({cursor:"pointer"}),[n,h].forEach(t=>{t&&!t.attachedTreeGridEvents&&(s7(t.element,"mouseover",function(){n.addClass("highcharts-treegrid-node-active"),n.renderer.styledMode||n.css({textDecoration:"underline"})}),s7(t.element,"mouseout",function(){!function(t,e){let i=oe(e.style)?e.style:{};t.removeClass("highcharts-treegrid-node-active"),t.renderer.styledMode||t.css({textDecoration:i.textDecoration||"none"})}(n,f)}),s7(t.element,"click",function(){a.toggleCollapse()}),t.attachedTreeGridEvents=!0)})):h&&(ot(d),n?.css({cursor:"default"}),h.destroy())}class ol{static compose(t){let e=t.prototype;e.toggleCollapse||(s7(t,"init",or),oo(e,"getLabelPosition",on),oo(e,"renderLabel",oa),e.collapse=function(t){this.treeGrid.collapse(t)},e.expand=function(t){this.treeGrid.expand(t)},e.toggleCollapse=function(t){this.treeGrid.toggleCollapse(t)})}constructor(t){this.tick=t}collapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.collapse(r);s.setBreaks(n,os(t,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(t){let{pos:e,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,r=s.mapOfPosToGridNode;if(o&&r){let i=r[e],n=s.expand(i);o.setBreaks(n,os(t,!0))}}toggleCollapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.toggleCollapse(r);s.setBreaks(n,os(t,!0))}}}let{extend:oh,isArray:od,isNumber:oc,isObject:op,merge:ou,pick:og,relativeLength:ox}=A(),{getLevelOptions:of}={getColor:function(t,e){let i,s,o,r,n,a;let l=e.index,h=e.mapOptionsToLevel,d=e.parentColor,c=e.parentColorIndex,p=e.series,u=e.colors,g=e.siblings,x=p.points,f=p.chart.options.chart;return t&&(i=x[t.i],s=h[t.level]||{},i&&s.colorByPoint&&(r=i.index%(u?u.length:f.colorCount),o=u&&u[r]),p.chart.styledMode||(n=og(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&l&&g?tP().parse(t).brighten(e.to*(l/g)).get():t})(d),p.color)),a=og(i&&i.options.colorIndex,s&&s.colorIndex,r,c,e.colorIndex)),{color:n,colorIndex:a}},getLevelOptions:function(t){let e,i,s,o,r,n;let a={};if(op(t))for(o=oc(t.from)?t.from:1,n=t.levels,i={},e=op(t.defaults)?t.defaults:{},od(n)&&(i=n.reduce((t,i)=>{let s,r,n;return op(i)&&oc(i.level)&&(r=og((n=ou({},i)).levelIsConstant,e.levelIsConstant),delete n.levelIsConstant,delete n.level,op(t[s=i.level+(r?0:o-1)])?ou(!0,t[s],n):t[s]=n),t},{})),r=oc(t.to)?t.to:1,s=0;s<=r;s++)a[s]=ou({},e,op(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(n+t)/(e||1)-t}return ox(r,n)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],n=!1!==i.levelIsConstant,a=i.points[e.i],l=a&&a.options||{},h=[],d=0;e.levelDynamic=e.level-(n?0:r.level),e.name=og(a&&a.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=oh({},i);oh(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),h.push(s),s.visible&&(d+=s.val)});let c=og(l.value,d);return e.visible=c>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=c,e},updateRootId:function(t){let e,i;return op(t)&&(i=op(t.options)?t.options:{},e=og(t.rootNode,i.rootId,""),op(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:om,isArray:ob,splat:oy,find:ov,fireEvent:oM,isObject:ok,isString:oA,merge:ow,pick:oP,removeEvent:oE,wrap:oO}=A();function oS(t,e){let i=t.collapseEnd||0,s=t.collapseStart||0;return i>=e&&(s-=.5),{from:s,to:i,showPoints:!1}}function oB(t,e,i){let s=[],o=[],r={},n=e||!1,a={},l=-1,h=s9.getTree(t,{after:function(t){let e=a[t.pos],i=0,s=0;e.children.forEach(function(t){s+=(t.descendants||0)+1,i=Math.max((t.height||0)+1,i)}),e.descendants=s,e.height=i,e.collapsed&&o.push(e)},before:function(t){let e,i;let o=ok(t.data,!0)?t.data:{},h=oA(o.name)?o.name:"",d=r[t.parent],c=ok(d,!0)?a[d.pos]:null;n&&ok(c,!0)&&(e=ov(c.children,function(t){return t.name===h}))?(i=e.pos,e.nodes.push(t)):i=l++,!a[i]&&(a[i]=e={depth:c?c.depth+1:0,name:h,id:o.id,nodes:[t],children:[],pos:i},-1!==i&&s.push(h),ok(c,!0)&&c.children.push(e)),oA(t.id)&&(r[t.id]=t),e&&!0===o.collapsed&&(e.collapsed=!0),t.pos=i}});return{categories:s,mapOfIdToNode:r,mapOfPosToGridNode:a=function(t,e){let i=function(t,s,o){let r=t.nodes,n=s+(-1===s?0:e-1),a=(n-s)/2,l=s+a;return r.forEach(function(t){let e=t.data;ok(e,!0)&&(e.y=s+(e.seriesIndex||0),delete e.seriesIndex),t.pos=l}),o[l]=t,t.pos=l,t.tickmarkOffset=a+.5,t.collapseStart=n+.5,t.children.forEach(function(t){i(t,n+1,o),n=(t.collapseEnd||0)-.5}),t.collapseEnd=n+.5,o};return i(t["-1"],-1,{})}(a,i),collapsedNodes:o,tree:h}}function oT(t){let e=t.target;e.axes.filter(t=>"treegrid"===t.type).forEach(function(i){let s=i.options||{},o=s.labels,r=i.uniqueNames,n=e.time.parse(s.max),a=!i.treeGrid.mapOfPosToGridNode||i.series.some(function(t){return!t.hasRendered||t.isDirtyData||t.isDirty}),l=0,h,d;if(a){let s=[];if(h=i.series.reduce(function(t,i){let o=i.options.data||[],n=o[0],a=Array.isArray(n)&&!n.find(t=>"object"==typeof t);return s.push(a),i.visible&&(o.forEach(function(s){(a||i.options.keys&&i.options.keys.length)&&(s=i.pointClass.prototype.optionsToObject.call({series:i},s),i.pointClass.setGanttPointAliases(s,e)),ok(s,!0)&&(s.seriesIndex=l,t.push(s))}),!0===r&&l++),t},[]),n&&h.length=0&&e.indexOf(t.x2||0)>=0&&(i=t)}),ok(i,!0)?ow(i):i});t.visible&&t.setData(i,!1)}),i.treeGrid.mapOptionsToLevel=of({defaults:o,from:1,levels:o&&o.levels,to:i.treeGrid.tree&&i.treeGrid.tree.height}),"beforeRender"===t.type&&(i.treeGrid.collapsedNodes=d.collapsedNodes)}})}function oC(t,e){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.type,o=this.ticks,r=o[e],n,a,l;s&&this.treeGrid.mapOfPosToGridNode?((n=i[(l=this.treeGrid.mapOfPosToGridNode[e]).depth])&&(a={labels:n}),!r&&p?o[e]=r=new p(this,e,void 0,void 0,{category:l.name,tickmarkOffset:l.tickmarkOffset,options:a}):(r.parameters.category=l.name,r.options=a,r.addLabel())):t.apply(this,Array.prototype.slice.call(arguments,1))}function oI(t,e,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new oG(o)),r&&(om(e,"beforeRender",oT),om(e,"beforeRedraw",oT),om(e,"addSeries",function(t){if(t.options.data){let e=oB(t.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(e.collapsedNodes)}}),om(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(t){let e=o.treeGrid.collapse(t);o.brokenAxis&&(o.brokenAxis.setBreaks(e,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(e=>t.collapseStart!==e.collapseStart||t.collapseEnd!==e.collapseEnd)))})}),om(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=ow({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),t.apply(o,[e,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function oR(t){let e=this.options,i=this.chart.time,s="number"==typeof e.linkedTo?this.chart[this.coll]?.[e.linkedTo]:void 0;if("treegrid"===this.type){if(this.min=this.userMin??i.parse(e.min)??this.dataMin,this.max=this.userMax??i.parse(e.max)??this.dataMax,oM(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],s){let t=s.getExtremes();this.min=oP(t.min,t.dataMin),this.max=oP(t.max,t.dataMax),this.tickPositions=s.tickPositions}this.linkedParent=s}else t.apply(this,Array.prototype.slice.call(arguments,1))}function oD(t){let e=this;"treegrid"===this.type&&e.visible&&e.tickPositions.forEach(function(t){let i=e.ticks[t];i.label&&i.label.attachedTreeGridEvents&&(oE(i.label.element),i.label.attachedTreeGridEvents=!1)}),t.apply(e,Array.prototype.slice.call(arguments,1))}class oG{static compose(t,e,i,s){if(!t.keepProps.includes("treeGrid")){let e=t.prototype;t.keepProps.push("treeGrid"),oO(e,"generateTick",oC),oO(e,"init",oI),oO(e,"setTickInterval",oR),oO(e,"redraw",oD),e.utils={getNode:s9.getNode},p||(p=s)}return s3.compose(t,e,s),sE.compose(t,i),ol.compose(s),t}constructor(t){this.axis=t}setCollapsedStatus(t){let e=this.axis,i=e.chart;e.series.forEach(function(e){let s=e.options.data;if(t.id&&s){let o=i.get(t.id),r=s[e.data.indexOf(o)];o&&r&&(o.collapsed=t.collapsed,r.collapsed=t.collapsed)}})}collapse(t){let e=this.axis,i=e.options.breaks||[],s=oS(t,e.max);return i.push(s),t.collapsed=!0,e.treeGrid.setCollapsedStatus(t),i}expand(t){let e=this.axis,i=e.options.breaks||[],s=oS(t,e.max);return t.collapsed=!1,e.treeGrid.setCollapsedStatus(t),i.reduce(function(t,e){return(e.to!==s.to||e.from!==s.from)&&t.push(e),t},[])}getTickPositions(){let t=this.axis,e=Math.floor(t.min/t.tickInterval)*t.tickInterval,i=Math.ceil(t.max/t.tickInterval)*t.tickInterval;return Object.keys(t.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=e&&r<=i&&!(t.brokenAxis&&t.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(t){let e=this.axis,i=e.options.breaks||[],s=oS(t,e.max);return i.some(function(t){return t.from===s.from&&t.to===s.to})}toggleCollapse(t){return this.isCollapsed(t)?this.expand(t):this.collapse(t)}}let{series:oL,seriesTypes:{xrange:oz}}=tO(),{extend:oN,isNumber:oW,merge:oH}=A();class oF extends oz{static compose(t,e,i,s){oz.compose(t),e&&(iJ.compose(t,e),i)&&(iY.compose(e,i.prototype.pointClass),s&&oG.compose(t,e,i,s))}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeArgs,r=t.plotY,n=t.selected&&"select",a=i.stacking&&!i.borderRadius,l=t.graphic,h;t.options.milestone?oW(r)&&null!==t.y&&!1!==t.visible?(h=s.symbols.diamond(o.x||0,o.y||0,o.width||0,o.height||0),l?l[e]({d:h}):t.graphic=l=s.path(h).addClass(t.getClassName(),!0).add(t.group||this.group),this.chart.styledMode||t.graphic.attr(this.pointAttribs(t,n)).shadow(i.shadow,null,a)):l&&(t.graphic=l.destroy()):super.drawPoint(t,e)}translatePoint(t){let e,i;super.translatePoint(t),t.options.milestone&&(i=(e=t.shapeArgs).height||0,t.shapeArgs={x:(e.x||0)-i/2,y:e.y,width:i,height:i})}}oF.defaultOptions=oH(oz.defaultOptions,{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let t=this.series,e=t.xAxis,i=t.tooltipOptions.dateTimeLabelFormats,s=e.options.startOfWeek,o=t.tooltipOptions,r=this.options.milestone,n=o.xDateFormat,a=""+(this.name||this.yCategory)+"";if(o.pointFormat)return this.tooltipFormatter(o.pointFormat);!n&&sm(this.start)&&(n=t.chart.time.getDateFormat(e.closestPointRange,this.start,s,i||{}));let l=t.chart.time.dateFormat(n,this.start),h=t.chart.time.dateFormat(n,this.end);return a+="
    ",r?a+=l+"
    ":a+="Start: "+l+"
    End: "+h+"
    ",a}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}),oN(oF.prototype,{pointArrayMap:["start","end","y"],pointClass:sf,setData:oL.prototype.setData}),tO().registerSeriesType("gantt",oF);/** + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/gantt * @requires highcharts * @@ -28,4 +28,4 @@ * (c) 2016-2024 Lars A. V. Cabrera * * License: www.highcharts.com/license - */let oU=A();oU.Connection=oU.Connection||G,oU.GanttChart=oU.GanttChart||Q,oU.Navigator=oU.Navigator||ew,oU.RangeSelector=oU.RangeSelector||im,oU.Scrollbar=oU.Scrollbar||ei,oU.ganttChart=oU.GanttChart.ganttChart,S.compose(oU.SVGRenderer),({compose:function(t,e){H(z,"CurrentDateIndication")&&(N(t,"afterSetOptions",X),N(e,"render",Y),F(e.prototype,"getLabelText",V))}}).compose(oU.Axis,oU.PlotLineOrBand),oF.compose(oU.Axis,oU.Chart,oU.Series,oU.Tick),oU.Navigator.compose(oU.Chart,oU.Axis,oU.Series),oU.RangeSelector.compose(oU.Axis,oU.Chart),oU.Scrollbar.compose(oU.Axis);let oX=A();return M.default})()); \ No newline at end of file + */let oU=A();oU.Connection=oU.Connection||L,oU.GanttChart=oU.GanttChart||Q,oU.Navigator=oU.Navigator||ew,oU.RangeSelector=oU.RangeSelector||im,oU.Scrollbar=oU.Scrollbar||ei,oU.ganttChart=oU.GanttChart.ganttChart,S.compose(oU.SVGRenderer),({compose:function(t,e){H(z,"CurrentDateIndication")&&(N(t,"afterSetOptions",X),N(e,"render",Y),F(e.prototype,"getLabelText",V))}}).compose(oU.Axis,oU.PlotLineOrBand),oF.compose(oU.Axis,oU.Chart,oU.Series,oU.Tick),oU.Navigator.compose(oU.Chart,oU.Axis,oU.Series),oU.RangeSelector.compose(oU.Axis,oU.Chart),oU.Scrollbar.compose(oU.Axis);let oX=A();return M.default})()); \ No newline at end of file diff --git a/modules/gantt.src.js b/modules/gantt.src.js index 5bc7c9507f..ad47315baf 100644 --- a/modules/gantt.src.js +++ b/modules/gantt.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/pathfinder * @requires highcharts * @@ -5327,8 +5327,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -5368,8 +5371,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -7040,6 +7046,7 @@ const { addEvent: RangeSelector_addEvent, createElement, css: RangeSelector_css, * @function preferredInputType */ function preferredInputType(format) { + const hasTimeKey = (char) => new RegExp(`%[[a-zA-Z]*${char}`).test(format); const ms = RangeSelector_isString(format) ? format.indexOf('%L') !== -1 : // Implemented but not typed as of 2024 @@ -7049,11 +7056,10 @@ function preferredInputType(format) { } const date = RangeSelector_isString(format) ? ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y'] - .some((char) => format.indexOf('%' + char) !== -1) : + .some(hasTimeKey) : format.dateStyle || format.day || format.month || format.year; const time = RangeSelector_isString(format) ? - ['H', 'k', 'I', 'l', 'M', 'S'] - .some((char) => format.indexOf('%' + char) !== -1) : + ['H', 'k', 'I', 'l', 'M', 'S'].some(hasTimeKey) : format.timeStyle || format.hour || format.minute || format.second; if (date && time) { return 'datetime-local'; @@ -7100,6 +7106,16 @@ class RangeSelector { this.isDirty = false; this.buttonOptions = RangeSelector.prototype.defaultButtons; this.initialButtonGroupWidth = 0; + this.maxButtonWidth = () => { + let buttonWidth = 0; + this.buttons.forEach((button) => { + const bBox = button.getBBox(); + if (bBox.width > buttonWidth) { + buttonWidth = bBox.width; + } + }); + return buttonWidth; + }; this.init(chart); } /* * @@ -7393,9 +7409,15 @@ class RangeSelector { if (selectedIndex !== null) { buttonStates[selectedIndex] = 2; rangeSelector.setSelected(selectedIndex); + if (this.dropdown) { + this.dropdown.selectedIndex = selectedIndex + 1; + } } else { rangeSelector.setSelected(); + if (this.dropdown) { + this.dropdown.selectedIndex = -1; + } if (dropdownLabel) { dropdownLabel.setState(0); dropdownLabel.attr({ @@ -8014,11 +8036,11 @@ class RangeSelector { const { buttonPosition, inputPosition, verticalAlign } = options; // Get the X offset required to avoid overlapping with the exporting // button. This is used both by the buttonGroup and the inputGroup. - const getXOffsetForExportButton = (group, position) => { + const getXOffsetForExportButton = (group, position, rightAligned) => { if (navButtonOptions && this.titleCollision(chart) && verticalAlign === 'top' && - position.align === 'right' && ((position.y - + rightAligned && ((position.y - group.getBBox().height - 12) < ((navButtonOptions.y || 0) + (navButtonOptions.height || 0) + @@ -8047,7 +8069,8 @@ class RangeSelector { } plotLeft -= chart.spacing[3]; // Detect collision between button group and exporting - const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition); + const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); this.alignButtonGroup(xOffsetForExportButton); if (this.buttonGroup?.translateY) { this.dropdownLabel @@ -8059,7 +8082,8 @@ class RangeSelector { let xOffsetForExportButton = 0; if (options.inputEnabled && inputGroup) { // Detect collision between the input group and exporting button - xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition); + xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); if (inputPosition.align === 'left') { translateX = plotLeft; } @@ -8212,16 +8236,35 @@ class RangeSelector { * @param {number} [width] */ alignButtonGroup(xOffsetForExportButton, width) { - const { chart, options, buttonGroup } = this; + const { chart, options, buttonGroup, dropdown, dropdownLabel } = this; const { buttonPosition } = options; const plotLeft = chart.plotLeft - chart.spacing[3]; let translateX = buttonPosition.x - chart.spacing[3]; + let dropdownTranslateX = chart.plotLeft; if (buttonPosition.align === 'right') { translateX += xOffsetForExportButton - plotLeft; // #13014 + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth + + xOffsetForExportButton - + this.maxButtonWidth() - 20; + } } else if (buttonPosition.align === 'center') { translateX -= plotLeft / 2; + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth / 2 - + this.maxButtonWidth(); + } } + if (dropdown) { + RangeSelector_css(dropdown, { + left: dropdownTranslateX + 'px', + top: buttonGroup?.translateY + 'px' + }); + } + dropdownLabel?.attr({ + x: dropdownTranslateX + }); if (buttonGroup) { // Align button group buttonGroup.align({ @@ -8275,36 +8318,6 @@ class RangeSelector { handleCollision(xOffsetForExportButton) { const { chart, buttonGroup, inputGroup } = this; const { buttonPosition, dropdown, inputPosition } = this.options; - const maxButtonWidth = () => { - let buttonWidth = 0; - this.buttons.forEach((button) => { - const bBox = button.getBBox(); - if (bBox.width > buttonWidth) { - buttonWidth = bBox.width; - } - }); - return buttonWidth; - }; - const groupsOverlap = (buttonGroupWidth) => { - if (inputGroup?.alignOptions && buttonGroup) { - const inputGroupX = (inputGroup.alignAttr.translateX + - inputGroup.alignOptions.x - - xOffsetForExportButton + - // `getBBox` for detecing left margin - inputGroup.getBBox().x + - // 2px padding to not overlap input and label - 2); - const inputGroupWidth = inputGroup.alignOptions.width || 0; - const buttonGroupX = buttonGroup.alignAttr.translateX + - buttonGroup.getBBox().x; - return (buttonGroupX + buttonGroupWidth > inputGroupX) && - (inputGroupX + inputGroupWidth > buttonGroupX) && - (buttonPosition.y < - (inputPosition.y + - inputGroup.getBBox().height)); - } - return false; - }; const moveInputsDown = () => { if (inputGroup && buttonGroup) { inputGroup.attr({ @@ -8316,47 +8329,43 @@ class RangeSelector { }); } }; - if (buttonGroup) { - if (dropdown === 'always') { - this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - // Move the inputs down if there is still a collision - // after collapsing the buttons - moveInputsDown(); - } - return; - } - if (dropdown === 'never') { - this.expandButtons(); - } - } // Detect collision if (inputGroup && buttonGroup) { - if ((inputPosition.align === buttonPosition.align) || - // 20 is minimal spacing between elements - groupsOverlap(this.initialButtonGroupWidth + 20)) { + if (inputPosition.align === buttonPosition.align) { + moveInputsDown(); + if (this.initialButtonGroupWidth > + chart.plotWidth + xOffsetForExportButton - 20) { + this.collapseButtons(); + } + else { + this.expandButtons(); + } + } + else if (this.initialButtonGroupWidth - + xOffsetForExportButton + + inputGroup.getBBox().width > + chart.plotWidth) { if (dropdown === 'responsive') { this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - moveInputsDown(); - } } else { moveInputsDown(); } } - else if (dropdown === 'responsive') { + else { this.expandButtons(); } } - else if (buttonGroup && dropdown === 'responsive') { - if (this.initialButtonGroupWidth > chart.plotWidth) { + // Forced states + if (buttonGroup) { + if (dropdown === 'always') { this.collapseButtons(); } - else { + if (dropdown === 'never') { this.expandButtons(); } } + this.alignButtonGroup(xOffsetForExportButton); } /** * Collapse the buttons and show the select element. @@ -8399,17 +8408,10 @@ class RangeSelector { * @function Highcharts.RangeSelector#showDropdown */ showDropdown() { - const { buttonGroup, chart, dropdownLabel, dropdown } = this; + const { buttonGroup, dropdownLabel, dropdown } = this; if (buttonGroup && dropdown) { - const { translateX = 0, translateY = 0 } = buttonGroup, left = chart.plotLeft + translateX, top = translateY; - dropdownLabel - .attr({ x: left, y: top }) - .show(); - RangeSelector_css(dropdown, { - left: left + 'px', - top: top + 'px', - visibility: 'inherit' - }); + dropdownLabel.show(); + RangeSelector_css(dropdown, { visibility: 'inherit' }); this.hasVisibleDropdown = true; } } @@ -10509,7 +10511,7 @@ const StaticScale = { ;// ./code/es-modules/masters/modules/static-scale.src.js /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/static-scale * @requires highcharts * @@ -11320,7 +11322,7 @@ highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highchart ;// ./code/es-modules/masters/modules/xrange.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/xrange * @requires highcharts * @@ -14871,7 +14873,7 @@ highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highchart ;// ./code/es-modules/masters/modules/gantt.src.js /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/gantt * @requires highcharts * diff --git a/modules/geoheatmap.js b/modules/geoheatmap.js index 66cec42589..67a9241cfc 100644 --- a/modules/geoheatmap.js +++ b/modules/geoheatmap.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/geoheatmap * @requires highcharts * * (c) 2009-2024 * * License: 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/geoheatmap",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/geoheatmap"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function a(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return i[t](r,r.exports,a),r.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};a.d(r,{default:()=>R});var s=a(944),n=/*#__PURE__*/a.n(s),h=a(512),l=/*#__PURE__*/a.n(h);let{map:{prototype:{pointClass:p}}}=l().seriesTypes,{isNumber:d}=n(),g=class extends p{applyOptions(t,e){let i=super.applyOptions.call(this,t,e),{lat:o,lon:a}=i.options;if(d(a)&&d(o)){let{colsize:t=1,rowsize:e=1}=this.series.options,r=a-t/2,s=o-e/2;i.geometry=i.options.geometry={type:"Polygon",coordinates:[[[r,s],[r+t,s],[r+t,s+e],[r,s+e],[r,s]]]}}return i}},{doc:c}=n(),{defined:u,pick:y}=n(),{animObject:m,stop:f}=n(),{noop:x}=n(),{colorFromPoint:b,getContext:w}={colorFromPoint:function(t,e){let i=e.series.colorAxis;if(i){let o=i.toColor(t||0,e).split(")")[0].split("(")[1].split(",").map(t=>y(parseFloat(t),parseInt(t,10)));return o[3]=255*y(o[3],1),u(t)&&e.visible||(o[3]=0),o}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=c.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}},{seriesTypes:{map:v}}=l(),{addEvent:D,extend:C,isNumber:P,isObject:I,merge:j,pick:T}=n();function L(t){return t-360*Math.floor((t+180)/360)}class O extends v{constructor(){super(...arguments),this.isDirtyCanvas=!0}update(){this.options=j(this.options,arguments[0]),this.getInterpolation().enabled&&(this.isDirtyCanvas=!0,this.points.forEach(t=>{t.graphic&&(t.graphic.destroy(),delete t.graphic)})),super.update.apply(this,arguments)}translate(){(!this.getInterpolation().enabled||!this.image||this.isDirty||this.isDirtyData)&&super.translate.apply(this,arguments)}getInterpolation(){return I(this.options.interpolation)?this.options.interpolation:{blur:1,enabled:this.options.interpolation}}drawPoints(){let t=this.chart.mapView,e=this.options;if(this.getInterpolation().enabled&&t&&this.bounds){let i=this.context||w(this),{canvas:o,colorAxis:a,image:r,chart:s,points:n}=this,[h,l]=[T(e.colsize,1),T(e.rowsize,1)],p=t.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),d=t.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(o&&i&&a&&p&&d){let e={x:p.x,y:p.y,width:d.x-p.x,height:d.y-p.y};if(this.isDirtyCanvas||this.isDirtyData||"Orthographic"===t.projection.options.name){this.isDirtyCanvas=!0;let a=o.width=~~(360/h)+1,r=o.height=~~(180/l)+1,s=new Uint8ClampedArray(a*r*4);this.directTouch=!1;for(let t=0;t{r.attr({x:t+(e.x-t)*s.pos,y:i+(e.y-i)*s.pos,width:a+(e.width-a)*s.pos,height:n+(e.height-n)*s.pos})},l=j(m(s.renderer.globalAnimation)),p=l.step;l.step=function(){p&&p.apply(this,arguments),h.apply(this,arguments)},r.attr(j({animator:0},this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0)).animate({animator:1},l)}else f(r),r.attr(j(e,this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0))}else this.image=s.renderer.image(o.toDataURL("image/png",1)).attr(e).add(this.group);this.isDirtyCanvas=!1}}else super.drawPoints.apply(this,arguments)}getProjectedImageData(t,e,i,o,a,r,s){let n=new Uint8ClampedArray(e*i*4),h=T(t.projection.options.rotation?.[0],0),l=a.width/360,p=-1*a.height/180,d=-1;for(let i=0;i-180-h&&c.lon<180-h&&(c.lon=L(c.lon));let t=[c.lon,c.lat],e=t[0]*l+a.width/2,r=t[1]*p+a.height/2;if(e>=0&&e<=a.width&&r>=0&&r<=a.height){let t=Math.floor(r)*a.width*4+4*Math.round(e);n[i]=o.data[t],n[i+1]=o.data[t+1],n[i+2]=o.data[t+2],n[i+3]=o.data[t+3]}}}return n}searchPoint(t,e){let i=this.chart,o=i.mapView;if(o&&this.bounds&&this.image&&i.tooltip&&i.tooltip.options.enabled){if(!i.pointer.hasDragged&&(.01>=+this.image.attr("animator")||+this.image.attr("animator")>=.99)){let a=o.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),r=o.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(i.pointer.normalize(t),t.lon&&t.lat&&a&&r&&t.chartX-i.plotLeft>a.x&&t.chartX-i.plotLefta.y&&t.chartY-i.plotTop"},borderWidth:0,colsize:1,rowsize:1,stickyTracking:!0,interpolation:{enabled:!1,blur:1}}),D(O,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),C(O.prototype,{type:"geoheatmap",applyJitter:x,pointClass:g,pointArrayMap:["lon","lat","value"],kdAxisArray:["lon","lat"]}),l().registerSeriesType("geoheatmap",O);let R=n();return r.default})()); \ No newline at end of file + */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/geoheatmap",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/geoheatmap"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function a(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return i[t](r,r.exports,a),r.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};a.d(r,{default:()=>R});var s=a(944),n=a.n(s),h=a(512),l=a.n(h);let{map:{prototype:{pointClass:p}}}=l().seriesTypes,{isNumber:d}=n(),g=class extends p{applyOptions(t,e){let i=super.applyOptions.call(this,t,e),{lat:o,lon:a}=i.options;if(d(a)&&d(o)){let{colsize:t=1,rowsize:e=1}=this.series.options,r=a-t/2,s=o-e/2;i.geometry=i.options.geometry={type:"Polygon",coordinates:[[[r,s],[r+t,s],[r+t,s+e],[r,s+e],[r,s]]]}}return i}},{doc:c}=n(),{defined:u,pick:y}=n(),{animObject:m,stop:f}=n(),{noop:x}=n(),{colorFromPoint:b,getContext:w}={colorFromPoint:function(t,e){let i=e.series.colorAxis;if(i){let o=i.toColor(t||0,e).split(")")[0].split("(")[1].split(",").map(t=>y(parseFloat(t),parseInt(t,10)));return o[3]=255*y(o[3],1),u(t)&&e.visible||(o[3]=0),o}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=c.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}},{seriesTypes:{map:v}}=l(),{addEvent:D,extend:C,isNumber:P,isObject:I,merge:j,pick:T}=n();function L(t){return t-360*Math.floor((t+180)/360)}class O extends v{constructor(){super(...arguments),this.isDirtyCanvas=!0}update(){this.options=j(this.options,arguments[0]),this.getInterpolation().enabled&&(this.isDirtyCanvas=!0,this.points.forEach(t=>{t.graphic&&(t.graphic.destroy(),delete t.graphic)})),super.update.apply(this,arguments)}translate(){(!this.getInterpolation().enabled||!this.image||this.isDirty||this.isDirtyData)&&super.translate.apply(this,arguments)}getInterpolation(){return I(this.options.interpolation)?this.options.interpolation:{blur:1,enabled:this.options.interpolation}}drawPoints(){let t=this.chart.mapView,e=this.options;if(this.getInterpolation().enabled&&t&&this.bounds){let i=this.context||w(this),{canvas:o,colorAxis:a,image:r,chart:s,points:n}=this,[h,l]=[T(e.colsize,1),T(e.rowsize,1)],p=t.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),d=t.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(o&&i&&a&&p&&d){let e={x:p.x,y:p.y,width:d.x-p.x,height:d.y-p.y};if(this.isDirtyCanvas||this.isDirtyData||"Orthographic"===t.projection.options.name){this.isDirtyCanvas=!0;let a=o.width=~~(360/h)+1,r=o.height=~~(180/l)+1,s=new Uint8ClampedArray(a*r*4);this.directTouch=!1;for(let t=0;t{r.attr({x:t+(e.x-t)*s.pos,y:i+(e.y-i)*s.pos,width:a+(e.width-a)*s.pos,height:n+(e.height-n)*s.pos})},l=j(m(s.renderer.globalAnimation)),p=l.step;l.step=function(){p&&p.apply(this,arguments),h.apply(this,arguments)},r.attr(j({animator:0},this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0)).animate({animator:1},l)}else f(r),r.attr(j(e,this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0))}else this.image=s.renderer.image(o.toDataURL("image/png",1)).attr(e).add(this.group);this.isDirtyCanvas=!1}}else super.drawPoints.apply(this,arguments)}getProjectedImageData(t,e,i,o,a,r,s){let n=new Uint8ClampedArray(e*i*4),h=T(t.projection.options.rotation?.[0],0),l=a.width/360,p=-1*a.height/180,d=-1;for(let i=0;i-180-h&&c.lon<180-h&&(c.lon=L(c.lon));let t=[c.lon,c.lat],e=t[0]*l+a.width/2,r=t[1]*p+a.height/2;if(e>=0&&e<=a.width&&r>=0&&r<=a.height){let t=Math.floor(r)*a.width*4+4*Math.round(e);n[i]=o.data[t],n[i+1]=o.data[t+1],n[i+2]=o.data[t+2],n[i+3]=o.data[t+3]}}}return n}searchPoint(t,e){let i=this.chart,o=i.mapView;if(o&&this.bounds&&this.image&&i.tooltip&&i.tooltip.options.enabled){if(!i.pointer.hasDragged&&(.01>=+this.image.attr("animator")||+this.image.attr("animator")>=.99)){let a=o.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),r=o.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(i.pointer.normalize(t),t.lon&&t.lat&&a&&r&&t.chartX-i.plotLeft>a.x&&t.chartX-i.plotLefta.y&&t.chartY-i.plotTop"},borderWidth:0,colsize:1,rowsize:1,stickyTracking:!0,interpolation:{enabled:!1,blur:1}}),D(O,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),C(O.prototype,{type:"geoheatmap",applyJitter:x,pointClass:g,pointArrayMap:["lon","lat","value"],kdAxisArray:["lon","lat"]}),l().registerSeriesType("geoheatmap",O);let R=n();return r.default})()); \ No newline at end of file diff --git a/modules/geoheatmap.src.js b/modules/geoheatmap.src.js index bb862f1b2b..7ded7719c2 100644 --- a/modules/geoheatmap.src.js +++ b/modules/geoheatmap.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/geoheatmap * @requires highcharts * diff --git a/modules/grid-axis.js b/modules/grid-axis.js index 4a3ca26270..f1f1223e2d 100644 --- a/modules/grid-axis.js +++ b/modules/grid-axis.js @@ -1,5 +1,5 @@ !/** - * Highcharts Gantt JS v12.0.2 (2024-12-04) + * Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/grid-axis * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2016-2024 Lars A. V. Cabrera * * License: www.highcharts.com/license - */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.Axis):"function"==typeof define&&define.amd?define("highcharts/modules/grid-axis",["highcharts/highcharts"],function(t){return i(t,t.Axis)}):"object"==typeof exports?exports["highcharts/modules/grid-axis"]=i(t._Highcharts,t._Highcharts.Axis):t.Highcharts=i(t.Highcharts,t.Highcharts.Axis)}("undefined"==typeof window?this:window,(t,i)=>(()=>{"use strict";var e,s={532:t=>{t.exports=i},944:i=>{i.exports=t}},r={};function o(t){var i=r[t];if(void 0!==i)return i.exports;var e=r[t]={exports:{}};return s[t](e,e.exports,o),e.exports}o.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return o.d(i,{a:i}),i},o.d=(t,i)=>{for(var e in i)o.o(i,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},o.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var n={};o.d(n,{default:()=>_});var h=o(944),l=/*#__PURE__*/o.n(h),a=o(532),d=/*#__PURE__*/o.n(a);let{dateFormats:c}=l(),{addEvent:g,defined:f,erase:p,find:u,isArray:m,isNumber:x,merge:k,pick:b,timeUnits:P,wrap:y}=l();function w(t){return l().isObject(t,!0)}function L(t,i){let e={width:0,height:0};if(i.forEach(function(i){let s=t[i],r=0,o=0,n;w(s)&&(r=(n=w(s.label)?s.label:{}).getBBox?n.getBBox().height:0,n.textStr&&!x(n.textPxLength)&&(n.textPxLength=n.getBBox().width),o=x(n.textPxLength)?Math.round(n.textPxLength):0,n.textStr&&(o=Math.round(n.getBBox().width)),e.height=Math.max(r,e.height),e.width=Math.max(o,e.width))}),"treegrid"===this.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let t=this.treeGrid.mapOfPosToGridNode[-1].height||0;e.width+=this.options.labels.indentation*(t-1)}return e}function B(t){let{grid:i}=this,e=3===this.side;if(e||t.apply(this),!i?.isColumn){let t=i?.columns||[];e&&(t=t.slice().reverse()),t.forEach(t=>{t.getOffset()})}e&&t.apply(this)}function v(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:i,height:s,horiz:r,left:o,offset:n,opposite:h,options:l,top:a,width:d}=this,c=this.tickSize(),g=i&&i.getBBox().width,f=l.title.x,p=l.title.y,u=b(l.title.margin,r?5:10),m=i?this.chart.renderer.fontMetrics(i).f:0,x=(r?a+s:o)+(r?1:-1)*(h?-1:1)*(c?c[0]/2:0)+(this.side===e.bottom?m:0);t.titlePosition.x=r?o-(g||0)/2-u+f:x+(h?d:0)+n+f,t.titlePosition.y=r?x-(h?s:0)+(h?m:-m)/2+n+p:a-u+p}}function O(){let{chart:t,options:{grid:i={}},userOptions:e}=this;if(i.enabled&&function(t){let i=t.options;i.labels.align=b(i.labels.align,"center"),t.categories||(i.showLastLabel=!1),t.labelRotation=0,i.labels.rotation=0,i.minTickInterval=1}(this),i.columns){let s=this.grid.columns=[],r=this.grid.columnIndex=0;for(;++rt.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,i;let e=this.tickmarkOffset,s=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(i=this.hiddenMarks.pop())&&i.element;)i.show();(t=this.ticks[n].label)&&(r-n>e?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[s].label)&&(s-o>e?this.hiddenLabels.push(t.hide()):t.show());let h=this.ticks[s].mark;h&&s-o0&&this.ticks[s].isLast&&this.hiddenMarks.push(h.hide())}}}function M(){let t=this.tickPositions&&this.tickPositions.info,i=this.options,e=i.grid||{},s=this.userOptions.labels||{};e.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&i.dateTimeLabelFormats&&i.labels&&!f(s.align)&&(!1===i.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(i.labels.align="left",f(s.x)||(i.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function W(t){let i;let e=this.options,s=t.userOptions,r=e&&w(e.grid)?e.grid:{};!0===r.enabled&&(i=k(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(f(s.linkedTo)&&!f(s.tickPixelInterval)&&(i.tickPixelInterval=350),!(!f(s.tickPixelInterval)&&f(s.linkedTo))||f(s.tickPositioner)||f(s.tickInterval)||f(s.units)||(i.tickPositioner=function(t,e){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let r=i.units||[],o,n=1,h="year";for(let t=0;tt.setScale())}function z(t){let{horiz:i,maxLabelDimensions:e,options:{grid:s={}}}=this;if(s.enabled&&e){let r=2*this.options.labels.distance,o=i?s.cellHeight||r+e.height:r+e.width;m(t.tickSize)?t.tickSize[0]=o:t.tickSize=[o,0]}}function E(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function I(t){let{grid:i}=this;(i.columns||[]).forEach(i=>i.destroy(t.keepEvents)),i.columns=void 0}function C(t){let i=t.userOptions||{},e=i.grid||{};e.enabled&&f(e.borderColor)&&(i.tickColor=i.lineColor=e.borderColor),this.grid||(this.grid=new F(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function H(t){let i=this.label,s=this.axis,r=s.reversed,o=s.chart,n=s.options.grid||{},h=s.options.labels,l=h.align,a=e[s.side],d=t.tickmarkOffset,c=s.tickPositions,g=this.pos-d,f=x(c[t.index+1])?c[t.index+1]-d:(s.max||0)+d,p=s.tickSize("tick"),u=p?p[0]:0,m=p?p[1]/2:0;if(!0===n.enabled){let e,n,d,c;if("top"===a?n=(e=s.top+s.offset)-u:"bottom"===a?e=(n=o.chartHeight-s.bottom+s.offset)+u:(e=s.top+s.len-(s.translate(r?f:g)||0),n=s.top+s.len-(s.translate(r?g:f)||0)),"right"===a?c=(d=o.chartWidth-s.right+s.offset)+u:"left"===a?d=(c=s.left+s.offset)-u:(d=Math.round(s.left+(s.translate(r?f:g)||0))-m,c=Math.min(Math.round(s.left+(s.translate(r?g:f)||0))-m,s.left+s.len)),this.slotWidth=c-d,t.pos.x="left"===l?d:"right"===l?c:d+(c-d)/2,t.pos.y=n+(e-n)/2,i){let e=o.renderer.fontMetrics(i),s=i.getBBox().height;if(h.useHTML)t.pos.y+=e.b+-(s/2);else{let i=Math.round(s/e.h);t.pos.y+=(e.b-(e.h-e.f))/2+-((i-1)*e.h/2)}}t.pos.x+=s.horiz&&h.x||0}}function G(t){let{axis:i,value:e}=t;if(i.options.grid&&i.options.grid.enabled){let s;let r=i.tickPositions,o=(i.linkedParent||i).series[0],n=e===r[0],h=e===r[r.length-1],a=o&&u(o.options.data,function(t){return t[i.isXAxis?"x":"y"]===e});a&&o.is("gantt")&&(s=k(a),l().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,i.chart)),t.isFirst=n,t.isLast=h,t.point=s}}function N(){let t=this.options,i=t.grid||{},e=this.categories,s=this.tickPositions,r=s[0],o=s[1],n=s[s.length-1],h=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,a=this.linkedParent&&this.linkedParent.max,d=l||this.min,c=a||this.max,g=this.tickInterval,f=x(d)&&d>=r+g&&dd,u=x(c)&&n>c&&n-gh;!0===i.enabled&&!e&&(this.isXAxis||this.isLinked)&&((p||f)&&!t.startOnTick&&(s[0]=d),(u||m)&&!t.endOnTick&&(s[s.length-1]=c))}function j(t){var i;let{options:{grid:e={}}}=this;return!0===e.enabled&&this.categories?this.tickInterval:t.apply(this,(i=arguments,Array.prototype.slice.call(i,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(e||(e={}));class F{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,i=t.chart,e=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],r=e?t.linkedParent:t,o=-1,n=0;return 3===t.side&&!i.inverted&&s.length?!t.linkedParent:((i[t.coll]||[]).forEach((i,e)=>{i.side!==t.side||i.options.isInternal||(n=e,i!==r||(o=e))}),n===o&&(!x(e)||s.length===e))}renderBorder(t){let i=this.axis,e=i.chart.renderer,s=i.options,r=e.path(t).addClass("highcharts-axis-line").add(i.axisGroup);return e.styledMode||r.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),r}}c.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},c.W=function(t){let i=this.toParts(t),e=(i[7]+6)%7,s=i.slice(0);s[2]=i[2]-e+3;let r=this.toParts(this.makeTime(s[0],0,1));return 4!==r[7]&&(i[1]=0,i[2]=1+(11-r[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(r[0],r[1],r[2]))/6048e5)).toString()};let R=l();({compose:function(t,i,e){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=L,y(t.prototype,"unsquish",j),y(t.prototype,"getOffset",B),g(t,"init",C),g(t,"afterGetTitlePosition",v),g(t,"afterInit",O),g(t,"afterRender",T),g(t,"afterSetAxisTranslation",M),g(t,"afterSetOptions",W),g(t,"afterSetOptions",S),g(t,"afterSetScale",A),g(t,"afterTickSize",z),g(t,"trimTicks",N),g(t,"destroy",I),g(i,"afterSetChartSize",E),g(e,"afterGetLabelPosition",H),g(e,"labelFormat",G)),t}}).compose(R.Axis,R.Chart,R.Tick);let _=l();return n.default})()); \ No newline at end of file + */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.Axis):"function"==typeof define&&define.amd?define("highcharts/modules/grid-axis",["highcharts/highcharts"],function(t){return i(t,t.Axis)}):"object"==typeof exports?exports["highcharts/modules/grid-axis"]=i(t._Highcharts,t._Highcharts.Axis):t.Highcharts=i(t.Highcharts,t.Highcharts.Axis)}("undefined"==typeof window?this:window,(t,i)=>(()=>{"use strict";var e,s={532:t=>{t.exports=i},944:i=>{i.exports=t}},r={};function o(t){var i=r[t];if(void 0!==i)return i.exports;var e=r[t]={exports:{}};return s[t](e,e.exports,o),e.exports}o.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return o.d(i,{a:i}),i},o.d=(t,i)=>{for(var e in i)o.o(i,e)&&!o.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},o.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var n={};o.d(n,{default:()=>_});var h=o(944),l=o.n(h),a=o(532),d=o.n(a);let{dateFormats:c}=l(),{addEvent:g,defined:f,erase:p,find:u,isArray:m,isNumber:x,merge:k,pick:b,timeUnits:P,wrap:y}=l();function w(t){return l().isObject(t,!0)}function L(t,i){let e={width:0,height:0};if(i.forEach(function(i){let s=t[i],r=0,o=0,n;w(s)&&(r=(n=w(s.label)?s.label:{}).getBBox?n.getBBox().height:0,n.textStr&&!x(n.textPxLength)&&(n.textPxLength=n.getBBox().width),o=x(n.textPxLength)?Math.round(n.textPxLength):0,n.textStr&&(o=Math.round(n.getBBox().width)),e.height=Math.max(r,e.height),e.width=Math.max(o,e.width))}),"treegrid"===this.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let t=this.treeGrid.mapOfPosToGridNode[-1].height||0;e.width+=this.options.labels.indentation*(t-1)}return e}function B(t){let{grid:i}=this,e=3===this.side;if(e||t.apply(this),!i?.isColumn){let t=i?.columns||[];e&&(t=t.slice().reverse()),t.forEach(t=>{t.getOffset()})}e&&t.apply(this)}function v(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:i,height:s,horiz:r,left:o,offset:n,opposite:h,options:l,top:a,width:d}=this,c=this.tickSize(),g=i&&i.getBBox().width,f=l.title.x,p=l.title.y,u=b(l.title.margin,r?5:10),m=i?this.chart.renderer.fontMetrics(i).f:0,x=(r?a+s:o)+(r?1:-1)*(h?-1:1)*(c?c[0]/2:0)+(this.side===e.bottom?m:0);t.titlePosition.x=r?o-(g||0)/2-u+f:x+(h?d:0)+n+f,t.titlePosition.y=r?x-(h?s:0)+(h?m:-m)/2+n+p:a-u+p}}function O(){let{chart:t,options:{grid:i={}},userOptions:e}=this;if(i.enabled&&function(t){let i=t.options;i.labels.align=b(i.labels.align,"center"),t.categories||(i.showLastLabel=!1),t.labelRotation=0,i.labels.rotation=0,i.minTickInterval=1}(this),i.columns){let s=this.grid.columns=[],r=this.grid.columnIndex=0;for(;++rt.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,i;let e=this.tickmarkOffset,s=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(i=this.hiddenMarks.pop())&&i.element;)i.show();(t=this.ticks[n].label)&&(r-n>e?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[s].label)&&(s-o>e?this.hiddenLabels.push(t.hide()):t.show());let h=this.ticks[s].mark;h&&s-o0&&this.ticks[s].isLast&&this.hiddenMarks.push(h.hide())}}}function M(){let t=this.tickPositions&&this.tickPositions.info,i=this.options,e=i.grid||{},s=this.userOptions.labels||{};e.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&i.dateTimeLabelFormats&&i.labels&&!f(s.align)&&(!1===i.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(i.labels.align="left",f(s.x)||(i.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function W(t){let i;let e=this.options,s=t.userOptions,r=e&&w(e.grid)?e.grid:{};!0===r.enabled&&(i=k(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(f(s.linkedTo)&&!f(s.tickPixelInterval)&&(i.tickPixelInterval=350),!(!f(s.tickPixelInterval)&&f(s.linkedTo))||f(s.tickPositioner)||f(s.tickInterval)||f(s.units)||(i.tickPositioner=function(t,e){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let r=i.units||[],o,n=1,h="year";for(let t=0;tt.setScale())}function z(t){let{horiz:i,maxLabelDimensions:e,options:{grid:s={}}}=this;if(s.enabled&&e){let r=2*this.options.labels.distance,o=i?s.cellHeight||r+e.height:r+e.width;m(t.tickSize)?t.tickSize[0]=o:t.tickSize=[o,0]}}function E(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function I(t){let{grid:i}=this;(i.columns||[]).forEach(i=>i.destroy(t.keepEvents)),i.columns=void 0}function C(t){let i=t.userOptions||{},e=i.grid||{};e.enabled&&f(e.borderColor)&&(i.tickColor=i.lineColor=e.borderColor),this.grid||(this.grid=new F(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function H(t){let i=this.label,s=this.axis,r=s.reversed,o=s.chart,n=s.options.grid||{},h=s.options.labels,l=h.align,a=e[s.side],d=t.tickmarkOffset,c=s.tickPositions,g=this.pos-d,f=x(c[t.index+1])?c[t.index+1]-d:(s.max||0)+d,p=s.tickSize("tick"),u=p?p[0]:0,m=p?p[1]/2:0;if(!0===n.enabled){let e,n,d,c;if("top"===a?n=(e=s.top+s.offset)-u:"bottom"===a?e=(n=o.chartHeight-s.bottom+s.offset)+u:(e=s.top+s.len-(s.translate(r?f:g)||0),n=s.top+s.len-(s.translate(r?g:f)||0)),"right"===a?c=(d=o.chartWidth-s.right+s.offset)+u:"left"===a?d=(c=s.left+s.offset)-u:(d=Math.round(s.left+(s.translate(r?f:g)||0))-m,c=Math.min(Math.round(s.left+(s.translate(r?g:f)||0))-m,s.left+s.len)),this.slotWidth=c-d,t.pos.x="left"===l?d:"right"===l?c:d+(c-d)/2,t.pos.y=n+(e-n)/2,i){let e=o.renderer.fontMetrics(i),s=i.getBBox().height;if(h.useHTML)t.pos.y+=e.b+-(s/2);else{let i=Math.round(s/e.h);t.pos.y+=(e.b-(e.h-e.f))/2+-((i-1)*e.h/2)}}t.pos.x+=s.horiz&&h.x||0}}function G(t){let{axis:i,value:e}=t;if(i.options.grid&&i.options.grid.enabled){let s;let r=i.tickPositions,o=(i.linkedParent||i).series[0],n=e===r[0],h=e===r[r.length-1],a=o&&u(o.options.data,function(t){return t[i.isXAxis?"x":"y"]===e});a&&o.is("gantt")&&(s=k(a),l().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,i.chart)),t.isFirst=n,t.isLast=h,t.point=s}}function N(){let t=this.options,i=t.grid||{},e=this.categories,s=this.tickPositions,r=s[0],o=s[1],n=s[s.length-1],h=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,a=this.linkedParent&&this.linkedParent.max,d=l||this.min,c=a||this.max,g=this.tickInterval,f=x(d)&&d>=r+g&&dd,u=x(c)&&n>c&&n-gh;!0===i.enabled&&!e&&(this.isXAxis||this.isLinked)&&((p||f)&&!t.startOnTick&&(s[0]=d),(u||m)&&!t.endOnTick&&(s[s.length-1]=c))}function j(t){var i;let{options:{grid:e={}}}=this;return!0===e.enabled&&this.categories?this.tickInterval:t.apply(this,(i=arguments,Array.prototype.slice.call(i,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(e||(e={}));class F{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,i=t.chart,e=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],r=e?t.linkedParent:t,o=-1,n=0;return 3===t.side&&!i.inverted&&s.length?!t.linkedParent:((i[t.coll]||[]).forEach((i,e)=>{i.side!==t.side||i.options.isInternal||(n=e,i!==r||(o=e))}),n===o&&(!x(e)||s.length===e))}renderBorder(t){let i=this.axis,e=i.chart.renderer,s=i.options,r=e.path(t).addClass("highcharts-axis-line").add(i.axisGroup);return e.styledMode||r.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),r}}c.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},c.W=function(t){let i=this.toParts(t),e=(i[7]+6)%7,s=i.slice(0);s[2]=i[2]-e+3;let r=this.toParts(this.makeTime(s[0],0,1));return 4!==r[7]&&(i[1]=0,i[2]=1+(11-r[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(r[0],r[1],r[2]))/6048e5)).toString()};let R=l();({compose:function(t,i,e){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=L,y(t.prototype,"unsquish",j),y(t.prototype,"getOffset",B),g(t,"init",C),g(t,"afterGetTitlePosition",v),g(t,"afterInit",O),g(t,"afterRender",T),g(t,"afterSetAxisTranslation",M),g(t,"afterSetOptions",W),g(t,"afterSetOptions",S),g(t,"afterSetScale",A),g(t,"afterTickSize",z),g(t,"trimTicks",N),g(t,"destroy",I),g(i,"afterSetChartSize",E),g(e,"afterGetLabelPosition",H),g(e,"labelFormat",G)),t}}).compose(R.Axis,R.Chart,R.Tick);let _=l();return n.default})()); \ No newline at end of file diff --git a/modules/grid-axis.src.js b/modules/grid-axis.src.js index d1cc679f8f..f3aabb2110 100644 --- a/modules/grid-axis.src.js +++ b/modules/grid-axis.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/grid-axis * @requires highcharts * diff --git a/modules/heatmap.js b/modules/heatmap.js index 5170a7f62e..0a5e1d2318 100644 --- a/modules/heatmap.js +++ b/modules/heatmap.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/color-axis * @requires highcharts * @@ -8,8 +8,8 @@ * (c) 2012-2024 Pawel Potaczek * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/heatmap",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Color,t.LegendSymbol,t.SeriesRegistry,t.SVGElement,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/heatmap"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.SVGRenderer):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.LegendSymbol,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,e,s,i,o,r,a)=>(()=>{"use strict";var l,n,h,d={532:t=>{t.exports=e},620:t=>{t.exports=s},500:t=>{t.exports=i},28:t=>{t.exports=r},540:t=>{t.exports=a},512:t=>{t.exports=o},944:e=>{e.exports=t}},p={};function c(t){var e=p[t];if(void 0!==e)return e.exports;var s=p[t]={exports:{}};return d[t](s,s.exports,c),s.exports}c.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return c.d(e,{a:e}),e},c.d=(t,e)=>{for(var s in e)c.o(e,s)&&!c.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},c.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var u={};c.d(u,{default:()=>tM});var g=c(944),m=/*#__PURE__*/c.n(g),f=c(532),x=/*#__PURE__*/c.n(f),y=c(620),b=/*#__PURE__*/c.n(y);let{parse:v}=b(),{addEvent:C,extend:A,merge:M,pick:k,splat:w}=m();!function(t){let e;function s(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=w(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function i(t){let e=this.chart.colorAxis||[],s=e=>{let s=t.allItems.indexOf(e);-1!==s&&(this.destroyItem(t.allItems[s]),t.allItems.splice(s,1))},i=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?i=i.concat(t.getDataClassLegendSymbols()):o.visible&&i.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){s(t)}):s(t))}))}),r=i.length;r--;)t.allItems.unshift(i[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function l(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function n(t){let e=this,s=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][s]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),s=this.options.nullColor,i=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?s:i&&void 0!==r?i.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",v(this.start).tweenTo(v(this.end),this.pos),void 0,!0)}function p(){this.elem.attr("stroke",v(this.start).tweenTo(v(this.end),this.pos),void 0,!0)}t.compose=function(t,c,u,g,m){let f=c.prototype,x=u.prototype,y=m.prototype;f.collectionsWithUpdate.includes("colorAxis")||(e=t,f.collectionsWithUpdate.push("colorAxis"),f.collectionsWithInit.colorAxis=[f.addColorAxis],C(c,"afterCreateAxes",s),function(t){let s=t.prototype.createAxis;t.prototype.createAxis=function(t,i){if("colorAxis"!==t)return s.apply(this,arguments);let o=new e(this,M(i.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),k(i.redraw,!0)&&this.redraw(i.animation),o}}(c),x.fillSetter=d,x.strokeSetter=p,C(g,"afterGetAllItems",i),C(g,"afterColorizeItem",o),C(g,"afterUpdate",r),A(y,{optionalAxis:"colorAxis",translateColors:h}),A(y.pointClass.prototype,{setVisible:n}),C(m,"afterTranslate",a,{order:1}),C(m,"bindAxes",l))},t.pointSetVisible=n}(l||(l={}));let L=l,{parse:I}=b(),{merge:S}=m();!function(t){t.initDataClasses=function(t){let e=this.chart,s=this.legendItem=this.legendItem||{},i=this.options,o=t.dataClasses||[],r,a,l=e.options.chart.colorCount,n=0,h;this.dataClasses=a=[],s.labels=[];for(let t=0,s=o.length;t=i)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=l,e.colorIndex=a.colorIndex);break}}else{for(s=this.normalizedValue(t),l=h.length;l--&&!(s>h[l][0]););i=h[l]||h[l+1],s=1-((o=h[l+1]||i)[0]-s)/(o[0]-i[0]||1),r=i.color.tweenTo(o.color,s)}return r}}(n||(n={}));let P=n;var T=c(500),D=/*#__PURE__*/c.n(T),E=c(512),V=/*#__PURE__*/c.n(E);let{defaultOptions:H}=m(),{series:O}=V(),{defined:z,extend:R,fireEvent:G,isArray:_,isNumber:W,merge:N,pick:K,relativeLength:X}=m();H.colorAxis=N(H.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class j extends x(){static compose(t,e,s,i){L.compose(j,t,e,s,i)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let s=t.options.legend||{},i=e.layout?"vertical"!==e.layout:"vertical"!==s.layout;this.side=e.side||i?2:1,this.reversed=e.reversed||!i,this.opposite=!i,super.init(t,e,"colorAxis"),this.userOptions=e,_(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=i,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=N(H.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:s,height:i}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=s=+e.attr("width"),this.height=i=+e.attr("height"),this.right=t.chartWidth-this.left-s,this.bottom=t.chartHeight-this.top-i,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?s:i)||j.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let s=this.chart.legend;s.allItems.forEach(function(t){t instanceof j&&t.drawLegendSymbol(s,t)}),s.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,s=e?1:0,i=e?0:1,o=t?[s,0,i,0]:[0,i,0,s];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let s=e.legendItem||{},i=t.padding,o=t.options,r=this.options.labels,a=K(o.itemDistance,10),l=this.horiz,{width:n,height:h}=this.getSize(),d=K(o.labelPadding,l?16:30);this.setLegendColor(),s.symbol||(s.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(s.group)),s.symbol.attr({x:0,y:(t.baseline||0)-11,width:n,height:h}),s.labelWidth=n+i+(l?a:K(r.x,r.distance)+(this.maxLabelLength||0)),s.labelHeight=h+i+(l?d:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,s,i,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(s=(o=t[r]).colorKey=K(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),i=o[s+"Min"]&&o[s+"Max"],[s,"value","y"]))if((e=o.getColumn(a)).length)break;if(i)o.minColorValue=o[s+"Min"],o.maxColorValue=o[s+"Max"];else{let t=O.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}z(o.minColorValue)&&z(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),i||O.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let s;let i=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,a=this.pos,l=this.len;e&&((s=this.toPixels(e.getNestedProperty(e.series.colorKey)))a+l&&(s=a+l+2),e.plotX=s,e.plotY=this.len-s,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&i.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(i.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,s=t.translatedValue,i=this.top;return W(s)?this.horiz?[["M",s-4,i-6],["L",s+4,i-6],["L",s,i],["Z"]]:[["M",e,s],["L",e-6,s+6],["L",e-6,s-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let s=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&s.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),s.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let s of e.labels)t.legend.destroyItem(s);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,s=e.chart,i=e.legendItem&&e.legendItem.labels||[],o=s.options.legend,r=K(o.valueDecimals,-1),a=K(o.valueSuffix,""),l=t=>e.series.reduce((e,s)=>(e.push(...s.points.filter(e=>e.dataClass===t)),e),[]);return i.length||e.dataClasses.forEach((o,n)=>{let h=o.from,d=o.to,{numberFormatter:p}=s,c=!0;t="",void 0===h?t="< ":void 0===d&&(t="> "),void 0!==h&&(t+=p(h,r)+a),void 0!==h&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=p(d,r)+a),i.push(R({chart:s,name:t,options:{},drawLegendSymbol:D().rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of l(n))e.setState(t)},setVisible:function(){this.visible=c=e.visible=!c;let t=[];for(let e of l(n))e.setVisible(c),e.hiddenInDataClass=!c,-1===t.indexOf(e.series)&&t.push(e.series);s.legend.colorizeItem(this,c),t.forEach(t=>{G(t,"afterDataClassLegendClick")})}},o))}),i}getSize(){let{chart:t,horiz:e}=this,{height:s,width:i}=this.options,{legend:o}=t.options;return{width:K(z(i)?X(i,t.chartWidth):void 0,o?.symbolWidth,e?j.defaultLegendLength:12),height:K(z(s)?X(s,t.chartHeight):void 0,o?.symbolHeight,e?12:j.defaultLegendLength)}}}j.defaultLegendLength=200,j.keepProps=["legendItem"],R(j.prototype,P),Array.prototype.push.apply(x().keepProps,j.keepProps);let F=m();F.ColorAxis=F.ColorAxis||j,F.ColorAxis.compose(F.Chart,F.Fx,F.Legend,F.Series);var U=c(28),Y=/*#__PURE__*/c.n(U);let{column:{prototype:Z}}=V().seriesTypes,{addEvent:q,defined:$}=m();!function(t){function e(t){let e=this.series,s=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(Y())(s,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${s.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}t.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},t.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return $(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:Z.pointAttribs},t.compose=function(t){return q(t.prototype.pointClass,"afterSetState",e),t}}(h||(h={}));let B=h,{scatter:{prototype:{pointClass:J}}}=V().seriesTypes,{clamp:Q,defined:tt,extend:te,pick:ts}=m();class ti extends J{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,s=(e.colsize||1)/2,i=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,l=t.pointPlacementToXValue(),n=ts(this.pointPadding,e.pointPadding,0),h={x1:Q(Math.round(o.len-o.translate(this.x-s,!1,!0,!1,!0,-l)),-o.len,2*o.len),x2:Q(Math.round(o.len-o.translate(this.x+s,!1,!0,!1,!0,-l)),-o.len,2*o.len),y1:Q(Math.round(r.translate(this.y-i,!1,!0,!1,!0)),-r.len,2*r.len),y2:Q(Math.round(r.translate(this.y+i,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],s=t[1],i=s+"1",l=s+"2",d=Math.abs(h[i]-h[l]),p=a&&a.lineWidth||0,c=Math.abs(h[i]+h[l])/2,u=a&&a[e];if(tt(u)&&uth(parseFloat(t),parseInt(t,10)));return i[3]=255*th(i[3],1),tn(t)&&e.visible||(i[3]=0),i}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:s}=t;return e&&s?(s.clearRect(0,0,e.width,e.height),s):(t.canvas=tl.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class tA extends tc{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,s=e.interpolation,i=e.marker||{};if(s){let{image:e,chart:s,xAxis:i,yAxis:o}=t,{reversed:r=!1,len:a}=i,{reversed:l=!1,len:n}=o,h={width:a,height:n};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=tC(t),{canvas:n,options:{colsize:d=1,rowsize:p=1},points:c,points:{length:u}}=t,g=s.colorAxis&&s.colorAxis[0];if(n&&a&&g){let{min:g,max:m}=i.getExtremes(),{min:f,max:x}=o.getExtremes(),y=m-g,b=x-f,v=Math.round(y/d/8*8),C=Math.round(b/p/8*8),[A,M]=[[v,v/y,r,"ceil"],[C,C/b,!l,"floor"]].map(([t,e,s,i])=>s?s=>Math[i](t-e*s):t=>Math[i](e*t)),k=n.width=v+1,w=k*(n.height=C+1),L=(u-1)/w,I=new Uint8ClampedArray(4*w),S=(t,e)=>4*Math.ceil(k*M(e-f)+A(t-g));t.buildKDTree();for(let t=0;t{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:t,dataMax:e}=td.prototype.getExtremes.call(this,this.getColumn("value"));return tx(t)&&(this.valueMin=t),tx(e)&&(this.valueMax=e),td.prototype.getExtremes.call(this)}getValidPoints(t,e){return td.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=tb(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,tu.ellipse=tu.circle,t.marker&&tx(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let s=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let i=t.options.marker||{},o=this.options.marker||{},r=o.states&&o.states[e]||{},a=i.states&&i.states[e]||{},l=(a.width||r.width||s.width||0)+(a.widthPlus||r.widthPlus||0),n=(a.height||r.height||s.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(s.x||0)+((s.width||0)-l)/2,y:(s.y||0)+((s.height||0)-n)/2,width:l,height:n}}return s}pointAttribs(t,e){let s=td.prototype.pointAttribs.call(this,t,e),i=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},l=t&&t.options.borderColor||i.borderColor||a.borderColor||r.borderColor,n=t&&t.options.borderWidth||i.borderWidth||a.borderWidth||r.borderWidth||s["stroke-width"];if(s.stroke=t&&t.marker&&t.marker.lineColor||i.marker&&i.marker.lineColor||l||this.color,s["stroke-width"]=n,e&&"normal"!==e){let o=ty(i.states&&i.states[e],i.marker&&i.marker.states&&i.marker.states[e],t&&t.options.states&&t.options.states[e]||{});s.fill=o.color||b().parse(s.fill).brighten(o.brightness||0).get(),s.stroke=o.lineColor||s.stroke}return s}translate(){let{borderRadius:t,marker:e}=this.options,s=e&&e.symbol||"rect",i=tu[s]?s:"rect",o=-1!==["circle","square"].indexOf(i);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),l=Math.min(r.y1,r.y2),n=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker&&e.marker.symbol||s||"").indexOf("url"),o){let t=Math.abs(n-h);a=Math.min(r.x1,r.x2)+(n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),tg(tA,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),tm(tA.prototype,{axisTypes:B.seriesMembers.axisTypes,colorKey:B.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:B.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:ti,specialGroup:"group",trackerGroups:B.seriesMembers.trackerGroups,alignDataLabel:tp.prototype.alignDataLabel,colorAttribs:B.seriesMembers.colorAttribs,getSymbol:td.prototype.getSymbol}),B.compose(tA),V().registerSeriesType("heatmap",tA);/** - * @license Highmaps JS v12.0.2 (2024-12-04) + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/heatmap",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Color,t.LegendSymbol,t.SeriesRegistry,t.SVGElement,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/heatmap"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.SVGRenderer):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.LegendSymbol,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,e,s,i,o,r,a)=>(()=>{"use strict";var l,n,h,d={532:t=>{t.exports=e},620:t=>{t.exports=s},500:t=>{t.exports=i},28:t=>{t.exports=r},540:t=>{t.exports=a},512:t=>{t.exports=o},944:e=>{e.exports=t}},p={};function c(t){var e=p[t];if(void 0!==e)return e.exports;var s=p[t]={exports:{}};return d[t](s,s.exports,c),s.exports}c.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return c.d(e,{a:e}),e},c.d=(t,e)=>{for(var s in e)c.o(e,s)&&!c.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},c.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var u={};c.d(u,{default:()=>tM});var g=c(944),m=c.n(g),f=c(532),x=c.n(f),y=c(620),b=c.n(y);let{parse:v}=b(),{addEvent:C,extend:A,merge:M,pick:k,splat:w}=m();!function(t){let e;function s(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=w(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function i(t){let e=this.chart.colorAxis||[],s=e=>{let s=t.allItems.indexOf(e);-1!==s&&(this.destroyItem(t.allItems[s]),t.allItems.splice(s,1))},i=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?i=i.concat(t.getDataClassLegendSymbols()):o.visible&&i.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){s(t)}):s(t))}))}),r=i.length;r--;)t.allItems.unshift(i[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function l(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function n(t){let e=this,s=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][s]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),s=this.options.nullColor,i=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?s:i&&void 0!==r?i.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function d(){this.elem.attr("fill",v(this.start).tweenTo(v(this.end),this.pos),void 0,!0)}function p(){this.elem.attr("stroke",v(this.start).tweenTo(v(this.end),this.pos),void 0,!0)}t.compose=function(t,c,u,g,m){let f=c.prototype,x=u.prototype,y=m.prototype;f.collectionsWithUpdate.includes("colorAxis")||(e=t,f.collectionsWithUpdate.push("colorAxis"),f.collectionsWithInit.colorAxis=[f.addColorAxis],C(c,"afterCreateAxes",s),function(t){let s=t.prototype.createAxis;t.prototype.createAxis=function(t,i){if("colorAxis"!==t)return s.apply(this,arguments);let o=new e(this,M(i.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),k(i.redraw,!0)&&this.redraw(i.animation),o}}(c),x.fillSetter=d,x.strokeSetter=p,C(g,"afterGetAllItems",i),C(g,"afterColorizeItem",o),C(g,"afterUpdate",r),A(y,{optionalAxis:"colorAxis",translateColors:h}),A(y.pointClass.prototype,{setVisible:n}),C(m,"afterTranslate",a,{order:1}),C(m,"bindAxes",l))},t.pointSetVisible=n}(l||(l={}));let L=l,{parse:I}=b(),{merge:S}=m();!function(t){t.initDataClasses=function(t){let e=this.chart,s=this.legendItem=this.legendItem||{},i=this.options,o=t.dataClasses||[],r,a,l=e.options.chart.colorCount,n=0,h;this.dataClasses=a=[],s.labels=[];for(let t=0,s=o.length;t=i)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=l,e.colorIndex=a.colorIndex);break}}else{for(s=this.normalizedValue(t),l=h.length;l--&&!(s>h[l][0]););i=h[l]||h[l+1],s=1-((o=h[l+1]||i)[0]-s)/(o[0]-i[0]||1),r=i.color.tweenTo(o.color,s)}return r}}(n||(n={}));let P=n;var T=c(500),D=c.n(T),E=c(512),V=c.n(E);let{defaultOptions:H}=m(),{series:O}=V(),{defined:z,extend:R,fireEvent:G,isArray:_,isNumber:W,merge:N,pick:K,relativeLength:X}=m();H.colorAxis=N(H.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class j extends x(){static compose(t,e,s,i){L.compose(j,t,e,s,i)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let s=t.options.legend||{},i=e.layout?"vertical"!==e.layout:"vertical"!==s.layout;this.side=e.side||i?2:1,this.reversed=e.reversed||!i,this.opposite=!i,super.init(t,e,"colorAxis"),this.userOptions=e,_(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=i,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=N(H.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:s,height:i}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=s=+e.attr("width"),this.height=i=+e.attr("height"),this.right=t.chartWidth-this.left-s,this.bottom=t.chartHeight-this.top-i,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?s:i)||j.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let s=this.chart.legend;s.allItems.forEach(function(t){t instanceof j&&t.drawLegendSymbol(s,t)}),s.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,s=e?1:0,i=e?0:1,o=t?[s,0,i,0]:[0,i,0,s];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let s=e.legendItem||{},i=t.padding,o=t.options,r=this.options.labels,a=K(o.itemDistance,10),l=this.horiz,{width:n,height:h}=this.getSize(),d=K(o.labelPadding,l?16:30);this.setLegendColor(),s.symbol||(s.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(s.group)),s.symbol.attr({x:0,y:(t.baseline||0)-11,width:n,height:h}),s.labelWidth=n+i+(l?a:K(r.x,r.distance)+(this.maxLabelLength||0)),s.labelHeight=h+i+(l?d:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,s,i,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(s=(o=t[r]).colorKey=K(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),i=o[s+"Min"]&&o[s+"Max"],[s,"value","y"]))if((e=o.getColumn(a)).length)break;if(i)o.minColorValue=o[s+"Min"],o.maxColorValue=o[s+"Max"];else{let t=O.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}z(o.minColorValue)&&z(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),i||O.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let s;let i=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,a=this.pos,l=this.len;e&&((s=this.toPixels(e.getNestedProperty(e.series.colorKey)))a+l&&(s=a+l+2),e.plotX=s,e.plotY=this.len-s,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&i.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(i.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,s=t.translatedValue,i=this.top;return W(s)?this.horiz?[["M",s-4,i-6],["L",s+4,i-6],["L",s,i],["Z"]]:[["M",e,s],["L",e-6,s+6],["L",e-6,s-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let s=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&s.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),s.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let s of e.labels)t.legend.destroyItem(s);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,s=e.chart,i=e.legendItem&&e.legendItem.labels||[],o=s.options.legend,r=K(o.valueDecimals,-1),a=K(o.valueSuffix,""),l=t=>e.series.reduce((e,s)=>(e.push(...s.points.filter(e=>e.dataClass===t)),e),[]);return i.length||e.dataClasses.forEach((o,n)=>{let h=o.from,d=o.to,{numberFormatter:p}=s,c=!0;t="",void 0===h?t="< ":void 0===d&&(t="> "),void 0!==h&&(t+=p(h,r)+a),void 0!==h&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=p(d,r)+a),i.push(R({chart:s,name:t,options:{},drawLegendSymbol:D().rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of l(n))e.setState(t)},setVisible:function(){this.visible=c=e.visible=!c;let t=[];for(let e of l(n))e.setVisible(c),e.hiddenInDataClass=!c,-1===t.indexOf(e.series)&&t.push(e.series);s.legend.colorizeItem(this,c),t.forEach(t=>{G(t,"afterDataClassLegendClick")})}},o))}),i}getSize(){let{chart:t,horiz:e}=this,{height:s,width:i}=this.options,{legend:o}=t.options;return{width:K(z(i)?X(i,t.chartWidth):void 0,o?.symbolWidth,e?j.defaultLegendLength:12),height:K(z(s)?X(s,t.chartHeight):void 0,o?.symbolHeight,e?12:j.defaultLegendLength)}}}j.defaultLegendLength=200,j.keepProps=["legendItem"],R(j.prototype,P),Array.prototype.push.apply(x().keepProps,j.keepProps);let F=m();F.ColorAxis=F.ColorAxis||j,F.ColorAxis.compose(F.Chart,F.Fx,F.Legend,F.Series);var U=c(28),Y=c.n(U);let{column:{prototype:Z}}=V().seriesTypes,{addEvent:q,defined:$}=m();!function(t){function e(t){let e=this.series,s=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(Y())(s,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${s.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}t.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},t.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return $(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:Z.pointAttribs},t.compose=function(t){return q(t.prototype.pointClass,"afterSetState",e),t}}(h||(h={}));let B=h,{scatter:{prototype:{pointClass:J}}}=V().seriesTypes,{clamp:Q,defined:tt,extend:te,pick:ts}=m();class ti extends J{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,s=(e.colsize||1)/2,i=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,l=t.pointPlacementToXValue(),n=ts(this.pointPadding,e.pointPadding,0),h={x1:Q(Math.round(o.len-o.translate(this.x-s,!1,!0,!1,!0,-l)),-o.len,2*o.len),x2:Q(Math.round(o.len-o.translate(this.x+s,!1,!0,!1,!0,-l)),-o.len,2*o.len),y1:Q(Math.round(r.translate(this.y-i,!1,!0,!1,!0)),-r.len,2*r.len),y2:Q(Math.round(r.translate(this.y+i,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],s=t[1],i=s+"1",l=s+"2",d=Math.abs(h[i]-h[l]),p=a&&a.lineWidth||0,c=Math.abs(h[i]+h[l])/2,u=a&&a[e];if(tt(u)&&uth(parseFloat(t),parseInt(t,10)));return i[3]=255*th(i[3],1),tn(t)&&e.visible||(i[3]=0),i}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:s}=t;return e&&s?(s.clearRect(0,0,e.width,e.height),s):(t.canvas=tl.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class tA extends tc{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,s=e.interpolation,i=e.marker||{};if(s){let{image:e,chart:s,xAxis:i,yAxis:o}=t,{reversed:r=!1,len:a}=i,{reversed:l=!1,len:n}=o,h={width:a,height:n};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=tC(t),{canvas:n,options:{colsize:d=1,rowsize:p=1},points:c,points:{length:u}}=t,g=s.colorAxis&&s.colorAxis[0];if(n&&a&&g){let{min:g,max:m}=i.getExtremes(),{min:f,max:x}=o.getExtremes(),y=m-g,b=x-f,v=Math.round(y/d/8*8),C=Math.round(b/p/8*8),[A,M]=[[v,v/y,r,"ceil"],[C,C/b,!l,"floor"]].map(([t,e,s,i])=>s?s=>Math[i](t-e*s):t=>Math[i](e*t)),k=n.width=v+1,w=k*(n.height=C+1),L=(u-1)/w,I=new Uint8ClampedArray(4*w),S=(t,e)=>4*Math.ceil(k*M(e-f)+A(t-g));t.buildKDTree();for(let t=0;t{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:t,dataMax:e}=td.prototype.getExtremes.call(this,this.getColumn("value"));return tx(t)&&(this.valueMin=t),tx(e)&&(this.valueMax=e),td.prototype.getExtremes.call(this)}getValidPoints(t,e){return td.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=tb(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,tu.ellipse=tu.circle,t.marker&&tx(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let s=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let i=t.options.marker||{},o=this.options.marker||{},r=o.states&&o.states[e]||{},a=i.states&&i.states[e]||{},l=(a.width||r.width||s.width||0)+(a.widthPlus||r.widthPlus||0),n=(a.height||r.height||s.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(s.x||0)+((s.width||0)-l)/2,y:(s.y||0)+((s.height||0)-n)/2,width:l,height:n}}return s}pointAttribs(t,e){let s=td.prototype.pointAttribs.call(this,t,e),i=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},l=t&&t.options.borderColor||i.borderColor||a.borderColor||r.borderColor,n=t&&t.options.borderWidth||i.borderWidth||a.borderWidth||r.borderWidth||s["stroke-width"];if(s.stroke=t&&t.marker&&t.marker.lineColor||i.marker&&i.marker.lineColor||l||this.color,s["stroke-width"]=n,e&&"normal"!==e){let o=ty(i.states&&i.states[e],i.marker&&i.marker.states&&i.marker.states[e],t&&t.options.states&&t.options.states[e]||{});s.fill=o.color||b().parse(s.fill).brighten(o.brightness||0).get(),s.stroke=o.lineColor||s.stroke}return s}translate(){let{borderRadius:t,marker:e}=this.options,s=e&&e.symbol||"rect",i=tu[s]?s:"rect",o=-1!==["circle","square"].indexOf(i);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),l=Math.min(r.y1,r.y2),n=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker&&e.marker.symbol||s||"").indexOf("url"),o){let t=Math.abs(n-h);a=Math.min(r.x1,r.x2)+(n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),tg(tA,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),tm(tA.prototype,{axisTypes:B.seriesMembers.axisTypes,colorKey:B.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:B.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:ti,specialGroup:"group",trackerGroups:B.seriesMembers.trackerGroups,alignDataLabel:tp.prototype.alignDataLabel,colorAttribs:B.seriesMembers.colorAttribs,getSymbol:td.prototype.getSymbol}),B.compose(tA),V().registerSeriesType("heatmap",tA);/** + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/modules/heatmap * @requires highcharts * diff --git a/modules/heatmap.src.js b/modules/heatmap.src.js index 1665781d68..3b820881d2 100644 --- a/modules/heatmap.src.js +++ b/modules/heatmap.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/color-axis * @requires highcharts * @@ -2914,7 +2914,7 @@ highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highchart ;// ./code/es-modules/masters/modules/heatmap.src.js /** - * @license Highmaps JS v12.0.2 (2024-12-04) + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/modules/heatmap * @requires highcharts * diff --git a/modules/heikinashi.js b/modules/heikinashi.js index 5d31fc8035..8148cf6ff4 100644 --- a/modules/heikinashi.js +++ b/modules/heikinashi.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/heikinashi * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Karol Kolodziej * * License: www.highcharts.com/license - */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/heikinashi",["highcharts/highcharts"],function(t){return i(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/heikinashi"]=i(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=i(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,i)=>(()=>{"use strict";var e={512:t=>{t.exports=i},944:i=>{i.exports=t}},s={};function a(t){var i=s[t];if(void 0!==i)return i.exports;var h=s[t]={exports:{}};return e[t](h,h.exports,a),h.exports}a.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return a.d(i,{a:i}),i},a.d=(t,i)=>{for(var e in i)a.o(i,e)&&!a.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},a.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var h={};a.d(h,{default:()=>w});var o=a(944),r=/*#__PURE__*/a.n(o),n=a(512),p=/*#__PURE__*/a.n(n);let{candlestick:{prototype:{pointClass:l}},hlc:{prototype:{pointClass:c}}}=p().seriesTypes,{composed:u}=r(),{candlestick:d}=p().seriesTypes,{addEvent:f,merge:g,pushUnique:y}=r();function k(){this.series.forEach(t=>{t.is("heikinashi")&&(t.heikiashiData.length=0,t.getHeikinashiData())})}function D(){let t=this.points,i=this.heikiashiData,e=this.cropStart||0;for(let s=0;s(()=>{"use strict";var e={512:t=>{t.exports=i},944:i=>{i.exports=t}},s={};function a(t){var i=s[t];if(void 0!==i)return i.exports;var h=s[t]={exports:{}};return e[t](h,h.exports,a),h.exports}a.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return a.d(i,{a:i}),i},a.d=(t,i)=>{for(var e in i)a.o(i,e)&&!a.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},a.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var h={};a.d(h,{default:()=>w});var o=a(944),r=a.n(o),n=a(512),p=a.n(n);let{candlestick:{prototype:{pointClass:l}},hlc:{prototype:{pointClass:c}}}=p().seriesTypes,{composed:u}=r(),{candlestick:d}=p().seriesTypes,{addEvent:f,merge:g,pushUnique:y}=r();function k(){this.series.forEach(t=>{t.is("heikinashi")&&(t.heikiashiData.length=0,t.getHeikinashiData())})}function D(){let t=this.points,i=this.heikiashiData,e=this.cropStart||0;for(let s=0;s(()=>{"use strict";var i,r={820:e=>{e.exports=t},512:e=>{e.exports=s},944:t=>{t.exports=e}},a={};function n(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};n.d(o,{default:()=>q});var h=n(944),d=/*#__PURE__*/n.n(h),l=n(820),u=/*#__PURE__*/n.n(l);let{noop:p}=d(),{addEvent:c,defined:v}=d();!function(e){function t(){u().prototype.init.apply(this,arguments),this.initialised=!1,this.baseSeries=null,this.eventRemovers=[],this.addEvents()}function s(){let e=this.chart,t=this.options.baseSeries,s=v(t)&&(e.series[t]||e.get(t));this.baseSeries=s||null}function i(){this.eventRemovers.push(c(this.chart,"afterLinkSeries",()=>{this.setBaseSeries(),this.baseSeries&&!this.initialised&&(this.setDerivedData(),this.addBaseSeriesEvents(),this.initialised=!0)}))}function r(){this.eventRemovers.push(c(this.baseSeries,"updatedData",()=>{this.setDerivedData()}),c(this.baseSeries,"destroy",()=>{this.baseSeries=null,this.initialised=!1}))}function a(){this.eventRemovers.forEach(e=>{e()}),u().prototype.destroy.apply(this,arguments)}e.hasDerivedData=!0,e.setDerivedData=p,e.compose=function(e){let n=e.prototype;return n.addBaseSeriesEvents=r,n.addEvents=i,n.destroy=a,n.init=t,n.setBaseSeries=s,e},e.init=t,e.setBaseSeries=s,e.addEvents=i,e.addBaseSeriesEvents=r,e.destroy=a}(i||(i={}));let f=i;var g=n(512),m=/*#__PURE__*/n.n(g);let{column:b}=m().seriesTypes,{arrayMax:y,arrayMin:D,correctFloat:S,extend:x,isNumber:M,merge:H}=d(),O={"square-root":function(e){return Math.ceil(Math.sqrt(e.options.data.length))},sturges:function(e){return Math.ceil(Math.log(e.options.data.length)*Math.LOG2E)},rice:function(e){return Math.ceil(2*Math.pow(e.options.data.length,1/3))}};class R extends b{binsNumber(){let e=this.options.binsNumber,t=O[e]||"function"==typeof e&&e;return Math.ceil(t&&t(this.baseSeries)||(M(e)?e:O["square-root"](this.baseSeries)))}derivedData(e,t,s){var i;let r;let a=S(y(e)),n=S(D(e)),o=[],h={},d=[];for(s=this.binWidth=S(M(s)?s||1:(a-n)/t),this.options.pointRange=Math.max(s,0),r=n;r=s||0>=S(S(n+o.length*s)-r));r=S(r+s))o.push(r),h[r]=0;0!==h[n]&&(o.push(n),h[n]=0);let l=(i=o.map(e=>parseFloat(e)),function(e){let t=1;for(;i[t]<=e;)t++;return i[--t]});for(let t of e)h[S(l(t))]++;for(let e of Object.keys(h))d.push({x:Number(e),y:h[e],x2:S(Number(e)+s)});return d.sort((e,t)=>e.x-t.x),d[d.length-1].x2=a,d}setDerivedData(){let e=this.baseSeries?.getColumn("y");if(!e?.length){this.setData([]);return}let t=this.derivedData(e,this.binsNumber(),this.options.binWidth);this.setData(t,!1)}}R.defaultOptions=H(b.defaultOptions,{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'{point.x} - {point.x2}
    {series.name} {point.y}
    '}}),x(R.prototype,{hasDerivedData:f.hasDerivedData}),f.compose(R),m().registerSeriesType("histogram",R);let{areaspline:E}=m().seriesTypes,{correctFloat:_,isNumber:w,merge:N}=d();class j extends E{static mean(e){let t=e.length,s=e.reduce(function(e,t){return e+t},0);return t>0&&s/t}static standardDeviation(e,t){let s=e.length;t=w(t)?t:j.mean(e);let i=e.reduce((e,s)=>{let i=s-t;return e+i*i},0);return s>1&&Math.sqrt(i/(s-1))}static normalDensity(e,t,s){let i=e-t;return Math.exp(-(i*i)/(2*s*s))/(s*Math.sqrt(2*Math.PI))}derivedData(e,t){let s=this.options,i=s.intervals,r=s.pointsInInterval,a=i*r*2+1,n=t/r,o=[],h=e-i*t;for(let s=0;s(()=>{"use strict";var i,r={820:e=>{e.exports=t},512:e=>{e.exports=s},944:t=>{t.exports=e}},a={};function n(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};n.d(o,{default:()=>q});var h=n(944),d=n.n(h),l=n(820),u=n.n(l);let{noop:p}=d(),{addEvent:c,defined:v}=d();!function(e){function t(){u().prototype.init.apply(this,arguments),this.initialised=!1,this.baseSeries=null,this.eventRemovers=[],this.addEvents()}function s(){let e=this.chart,t=this.options.baseSeries,s=v(t)&&(e.series[t]||e.get(t));this.baseSeries=s||null}function i(){this.eventRemovers.push(c(this.chart,"afterLinkSeries",()=>{this.setBaseSeries(),this.baseSeries&&!this.initialised&&(this.setDerivedData(),this.addBaseSeriesEvents(),this.initialised=!0)}))}function r(){this.eventRemovers.push(c(this.baseSeries,"updatedData",()=>{this.setDerivedData()}),c(this.baseSeries,"destroy",()=>{this.baseSeries=null,this.initialised=!1}))}function a(){this.eventRemovers.forEach(e=>{e()}),u().prototype.destroy.apply(this,arguments)}e.hasDerivedData=!0,e.setDerivedData=p,e.compose=function(e){let n=e.prototype;return n.addBaseSeriesEvents=r,n.addEvents=i,n.destroy=a,n.init=t,n.setBaseSeries=s,e},e.init=t,e.setBaseSeries=s,e.addEvents=i,e.addBaseSeriesEvents=r,e.destroy=a}(i||(i={}));let f=i;var g=n(512),m=n.n(g);let{column:b}=m().seriesTypes,{arrayMax:y,arrayMin:D,correctFloat:S,extend:x,isNumber:M,merge:H}=d(),O={"square-root":function(e){return Math.ceil(Math.sqrt(e.options.data.length))},sturges:function(e){return Math.ceil(Math.log(e.options.data.length)*Math.LOG2E)},rice:function(e){return Math.ceil(2*Math.pow(e.options.data.length,1/3))}};class R extends b{binsNumber(){let e=this.options.binsNumber,t=O[e]||"function"==typeof e&&e;return Math.ceil(t&&t(this.baseSeries)||(M(e)?e:O["square-root"](this.baseSeries)))}derivedData(e,t,s){var i;let r;let a=S(y(e)),n=S(D(e)),o=[],h={},d=[];for(s=this.binWidth=S(M(s)?s||1:(a-n)/t),this.options.pointRange=Math.max(s,0),r=n;r=s||0>=S(S(n+o.length*s)-r));r=S(r+s))o.push(r),h[r]=0;0!==h[n]&&(o.push(n),h[n]=0);let l=(i=o.map(e=>parseFloat(e)),function(e){let t=1;for(;i[t]<=e;)t++;return i[--t]});for(let t of e)h[S(l(t))]++;for(let e of Object.keys(h))d.push({x:Number(e),y:h[e],x2:S(Number(e)+s)});return d.sort((e,t)=>e.x-t.x),d[d.length-1].x2=a,d}setDerivedData(){let e=this.baseSeries?.getColumn("y");if(!e?.length){this.setData([]);return}let t=this.derivedData(e,this.binsNumber(),this.options.binWidth);this.setData(t,!1)}}R.defaultOptions=H(b.defaultOptions,{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'{point.x} - {point.x2}
    {series.name} {point.y}
    '}}),x(R.prototype,{hasDerivedData:f.hasDerivedData}),f.compose(R),m().registerSeriesType("histogram",R);let{areaspline:E}=m().seriesTypes,{correctFloat:_,isNumber:w,merge:N}=d();class j extends E{static mean(e){let t=e.length,s=e.reduce(function(e,t){return e+t},0);return t>0&&s/t}static standardDeviation(e,t){let s=e.length;t=w(t)?t:j.mean(e);let i=e.reduce((e,s)=>{let i=s-t;return e+i*i},0);return s>1&&Math.sqrt(i/(s-1))}static normalDensity(e,t,s){let i=e-t;return Math.exp(-(i*i)/(2*s*s))/(s*Math.sqrt(2*Math.PI))}derivedData(e,t){let s=this.options,i=s.intervals,r=s.pointsInInterval,a=i*r*2+1,n=t/r,o=[],h=e-i*t;for(let s=0;s(()=>{"use strict";var s={532:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function r(t){var e=o[t];if(void 0!==e)return e.exports;var i=o[t]={exports:{}};return s[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};r.d(l,{default:()=>C});var n=r(944),a=/*#__PURE__*/r.n(n),h=r(512),p=/*#__PURE__*/r.n(h);let{seriesTypes:{candlestick:c}}=p();class u extends c.prototype.pointClass{getClassName(){let t=super.getClassName.apply(this),e=this.index,i=this.series.hollowCandlestickData[e];return i.isBullish||"up"!==i.trendDirection||(t+="-bearish-up"),t}}var d=r(532),g=/*#__PURE__*/r.n(d);let{seriesTypes:{candlestick:f}}=p(),{addEvent:w,merge:x}=a();class y extends f{constructor(){super(...arguments),this.hollowCandlestickData=[]}getPriceMovement(){let t;let e=this.allGroupedTable||this.dataTable,i=e.rowCount,s=this.hollowCandlestickData;s.length=0;for(let o=0;o(()=>{"use strict";var s={532:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function r(t){var e=o[t];if(void 0!==e)return e.exports;var i=o[t]={exports:{}};return s[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};r.d(l,{default:()=>C});var n=r(944),a=r.n(n),h=r(512),p=r.n(h);let{seriesTypes:{candlestick:c}}=p();class u extends c.prototype.pointClass{getClassName(){let t=super.getClassName.apply(this),e=this.index,i=this.series.hollowCandlestickData[e];return i.isBullish||"up"!==i.trendDirection||(t+="-bearish-up"),t}}var d=r(532),g=r.n(d);let{seriesTypes:{candlestick:f}}=p(),{addEvent:w,merge:x}=a();class y extends f{constructor(){super(...arguments),this.hollowCandlestickData=[]}getPriceMovement(){let t;let e=this.allGroupedTable||this.dataTable,i=e.rowCount,s=this.hollowCandlestickData;s.length=0;for(let o=0;o(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var r=s[t]={exports:{}};return i[t](r,r.exports,o),r.exports}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,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};o.d(r,{default:()=>P});var a=o(944),n=/*#__PURE__*/o.n(a),l=o(512),h=/*#__PURE__*/o.n(l);let{series:{prototype:{pointClass:d}},seriesTypes:{pie:{prototype:{pointClass:c}}}}=h(),{extend:p}=n();class g extends c{}p(g.prototype,{haloPath:d.prototype.haloPath});let{merge:u}=n(),f={endAngle:void 0,innerSize:"40%",itemPadding:.1,layout:"vertical",marker:u({lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}.marker,{radius:null}),rows:void 0,crisp:!1,showInLegend:!0,startAngle:void 0},{pie:m}=h().seriesTypes,{defined:y,extend:b,fireEvent:v,isNumber:w,merge:x,pick:M}=n();class A extends m{animate(t){let e=this.group;e&&(t?e.attr({opacity:0}):e.animate({opacity:1},this.options.animation))}drawDataLabels(){if(this.center&&this.slots)super.drawDataLabels();else for(let t of this.points)t.destroyElements({dataLabel:1})}drawPoints(){let t=this.options,e=this.chart.renderer,i=t.marker,s=this.borderWidth%2?.5:1,o=this.getRows(),r=Math.ceil(this.total/o),a=this.chart.plotWidth/r,n=this.chart.plotHeight/o,l=this.itemSize||Math.min(a,n),h=0;for(let d of this.points){let c,p,g,u,f,m;let v=d.marker||{},w=v.symbol||i.symbol,x=M(v.radius,i.radius),A=y(x)?2*x:l,P=A*t.itemPadding;if(d.graphics=p=d.graphics||[],this.chart.styledMode||(g=this.pointAttribs(d,d.selected&&"select")),!d.isNull&&d.visible){d.graphic||(d.graphic=e.g("point").add(this.group));for(let i=0;i<(d.y||0);++i){if(this.center&&this.slots){let t=this.slots.shift();u=t.x-l/2,f=t.y-l/2}else"horizontal"===t.layout?(u=h%r*a,f=n*Math.floor(h/r)):(u=a*Math.floor(h/o),f=h%o*n);u+=P,f+=P,m=Math.round(A-2*P),this.options.crisp&&(u=Math.round(u)-s,f=Math.round(f)+s),c={x:u,y:f,width:m,height:m},void 0!==x&&(c.r=x),g&&b(c,g);let y=p[i];y?y.animate(c):y=e.symbol(w,void 0,void 0,void 0,void 0,{backgroundSize:"within"}).attr(c).add(d.graphic),y.isActive=!0,p[i]=y,++h}}for(let t=0;t1)for(i=Math.ceil(i);i>0&&!(e/i/i>s);)i--;else for(i=Math.floor(i);ia+(w&&r?w.length:0);){v=b,i.length=0,b=0,w=x,x=[],y=e/++m/2,o?(n=(y-o)/y*e)>=0?y=o:(n=0,M=1):y=Math.floor(y*M);for(let t=y;t>0;t--)p=Math.ceil((c=s*(d=(n+t/y*(e-n-m))/2))/m),x.push({rowRadius:d,rowLength:c,colCount:p}),b+=p+1}if(!w)return;let A=v-this.total-(r?w.length:0),P=t=>{A>0&&(t.row.colCount--,A--)};for(;A>0;)w.map(t=>({angle:t.colCount/t.rowLength,row:t})).sort((t,e)=>e.angle-t.angle).slice(0,Math.min(A,Math.ceil(w.length/2))).forEach(P);for(let e of w){let o=e.rowRadius,r=e.colCount;for(f=0,g=r?s/r:0;f<=r;f+=1)u=this.startAngleRad+f*g,l=t[0]+Math.cos(u)*o,h=t[1]+Math.sin(u)*o,i.push({x:l,y:h,angle:u})}return i.sort((t,e)=>t.angle-e.angle),this.itemSize=m,i}translate(t){0===this.total&&w(this.options.startAngle)&&w(this.options.endAngle)&&(this.center=this.getCenter()),this.slots||(this.slots=[]),w(this.options.startAngle)&&w(this.options.endAngle)?(super.translate(t),this.slots=this.getSlots()):(this.generatePoints(),v(this,"afterTranslate"))}}A.defaultOptions=x(m.defaultOptions,f),b(A.prototype,{markerAttribs:void 0,pointClass:g}),h().registerSeriesType("item",A);let P=n();return r.default})()); \ No newline at end of file + */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/item-series",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/item-series"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var r=s[t]={exports:{}};return i[t](r,r.exports,o),r.exports}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,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};o.d(r,{default:()=>P});var a=o(944),n=o.n(a),l=o(512),h=o.n(l);let{series:{prototype:{pointClass:d}},seriesTypes:{pie:{prototype:{pointClass:c}}}}=h(),{extend:p}=n();class g extends c{}p(g.prototype,{haloPath:d.prototype.haloPath});let{merge:u}=n(),f={endAngle:void 0,innerSize:"40%",itemPadding:.1,layout:"vertical",marker:u({lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}.marker,{radius:null}),rows:void 0,crisp:!1,showInLegend:!0,startAngle:void 0},{pie:m}=h().seriesTypes,{defined:y,extend:b,fireEvent:v,isNumber:w,merge:x,pick:M}=n();class A extends m{animate(t){let e=this.group;e&&(t?e.attr({opacity:0}):e.animate({opacity:1},this.options.animation))}drawDataLabels(){if(this.center&&this.slots)super.drawDataLabels();else for(let t of this.points)t.destroyElements({dataLabel:1})}drawPoints(){let t=this.options,e=this.chart.renderer,i=t.marker,s=this.borderWidth%2?.5:1,o=this.getRows(),r=Math.ceil(this.total/o),a=this.chart.plotWidth/r,n=this.chart.plotHeight/o,l=this.itemSize||Math.min(a,n),h=0;for(let d of this.points){let c,p,g,u,f,m;let v=d.marker||{},w=v.symbol||i.symbol,x=M(v.radius,i.radius),A=y(x)?2*x:l,P=A*t.itemPadding;if(d.graphics=p=d.graphics||[],this.chart.styledMode||(g=this.pointAttribs(d,d.selected&&"select")),!d.isNull&&d.visible){d.graphic||(d.graphic=e.g("point").add(this.group));for(let i=0;i<(d.y||0);++i){if(this.center&&this.slots){let t=this.slots.shift();u=t.x-l/2,f=t.y-l/2}else"horizontal"===t.layout?(u=h%r*a,f=n*Math.floor(h/r)):(u=a*Math.floor(h/o),f=h%o*n);u+=P,f+=P,m=Math.round(A-2*P),this.options.crisp&&(u=Math.round(u)-s,f=Math.round(f)+s),c={x:u,y:f,width:m,height:m},void 0!==x&&(c.r=x),g&&b(c,g);let y=p[i];y?y.animate(c):y=e.symbol(w,void 0,void 0,void 0,void 0,{backgroundSize:"within"}).attr(c).add(d.graphic),y.isActive=!0,p[i]=y,++h}}for(let t=0;t1)for(i=Math.ceil(i);i>0&&!(e/i/i>s);)i--;else for(i=Math.floor(i);ia+(w&&r?w.length:0);){v=b,i.length=0,b=0,w=x,x=[],y=e/++m/2,o?(n=(y-o)/y*e)>=0?y=o:(n=0,M=1):y=Math.floor(y*M);for(let t=y;t>0;t--)p=Math.ceil((c=s*(d=(n+t/y*(e-n-m))/2))/m),x.push({rowRadius:d,rowLength:c,colCount:p}),b+=p+1}if(!w)return;let A=v-this.total-(r?w.length:0),P=t=>{A>0&&(t.row.colCount--,A--)};for(;A>0;)w.map(t=>({angle:t.colCount/t.rowLength,row:t})).sort((t,e)=>e.angle-t.angle).slice(0,Math.min(A,Math.ceil(w.length/2))).forEach(P);for(let e of w){let o=e.rowRadius,r=e.colCount;for(f=0,g=r?s/r:0;f<=r;f+=1)u=this.startAngleRad+f*g,l=t[0]+Math.cos(u)*o,h=t[1]+Math.sin(u)*o,i.push({x:l,y:h,angle:u})}return i.sort((t,e)=>t.angle-e.angle),this.itemSize=m,i}translate(t){0===this.total&&w(this.options.startAngle)&&w(this.options.endAngle)&&(this.center=this.getCenter()),this.slots||(this.slots=[]),w(this.options.startAngle)&&w(this.options.endAngle)?(super.translate(t),this.slots=this.getSlots()):(this.generatePoints(),v(this,"afterTranslate"))}}A.defaultOptions=x(m.defaultOptions,f),b(A.prototype,{markerAttribs:void 0,pointClass:g}),h().registerSeriesType("item",A);let P=n();return r.default})()); \ No newline at end of file diff --git a/modules/item-series.src.js b/modules/item-series.src.js index 029100e0b0..e2625880aa 100644 --- a/modules/item-series.src.js +++ b/modules/item-series.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/item-series * @requires highcharts * diff --git a/modules/lollipop.js b/modules/lollipop.js index 90198dcbc6..a95ee2671c 100644 --- a/modules/lollipop.js +++ b/modules/lollipop.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/lollipop * @requires highcharts * * (c) 2009-2024 Sebastian Bochan, Rafal Sebestjanski * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series):"function"==typeof define&&define.amd?define("highcharts/modules/lollipop",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Series)}):"object"==typeof exports?exports["highcharts/modules/lollipop"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Series)}("undefined"==typeof window?this:window,(t,e,r)=>(()=>{"use strict";var o={820:t=>{t.exports=r},512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function i(t){var e=s[t];if(void 0!==e)return e.exports;var r=s[t]={exports:{}};return o[t](r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};i.d(a,{default:()=>H});var n=i(944),p=/*#__PURE__*/i.n(n),l=i(512),d=/*#__PURE__*/i.n(l);let{series:{prototype:{pointClass:h}},seriesTypes:{scatter:{prototype:{pointClass:c}},dumbbell:{prototype:{pointClass:g}}}}=d(),{extend:u}=p();class y extends h{}u(y.prototype,{destroy:g.prototype.destroy,pointSetState:c.prototype.setState,setState:g.prototype.setState});var f=i(820),b=/*#__PURE__*/i.n(f);let{seriesTypes:{column:{prototype:x},dumbbell:{prototype:S},scatter:v}}=d(),{extend:C,merge:w}=p();class m extends b(){drawPoints(){let t=this.points.length,e=0,r;for(super.drawPoints.apply(this,arguments);e(()=>{"use strict";var o={820:t=>{t.exports=r},512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function i(t){var e=s[t];if(void 0!==e)return e.exports;var r=s[t]={exports:{}};return o[t](r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};i.d(a,{default:()=>H});var n=i(944),p=i.n(n),l=i(512),d=i.n(l);let{series:{prototype:{pointClass:h}},seriesTypes:{scatter:{prototype:{pointClass:c}},dumbbell:{prototype:{pointClass:g}}}}=d(),{extend:u}=p();class y extends h{}u(y.prototype,{destroy:g.prototype.destroy,pointSetState:c.prototype.setState,setState:g.prototype.setState});var f=i(820),b=i.n(f);let{seriesTypes:{column:{prototype:x},dumbbell:{prototype:S},scatter:v}}=d(),{extend:C,merge:w}=p();class m extends b(){drawPoints(){let t=this.points.length,e=0,r;for(super.drawPoints.apply(this,arguments);e(()=>{"use strict";let c;var u,m,g,f,b,y,x,M={532:t=>{t.exports=e},960:t=>{t.exports=n},620:t=>{t.exports=i},500:t=>{t.exports=s},260:t=>{t.exports=d},28:t=>{t.exports=r},540:t=>{t.exports=l},632:t=>{t.exports=p},820:t=>{t.exports=a},512:t=>{t.exports=o},984:t=>{t.exports=h},944:e=>{e.exports=t}},v={};function w(t){var e=v[t];if(void 0!==e)return e.exports;var i=v[t]={exports:{}};return M[t](i,i.exports,w),i.exports}w.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return w.d(e,{a:e}),e},w.d=(t,e)=>{for(var i in e)w.o(e,i)&&!w.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},w.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var C={};w.d(C,{default:()=>sD});var L=w(944),T=/*#__PURE__*/w.n(L),P=w(532),A=/*#__PURE__*/w.n(P),k=w(620),j=/*#__PURE__*/w.n(k);let{parse:z}=j(),{addEvent:S,extend:I,merge:B,pick:E,splat:D}=T();!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=D(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))}))}),r=s.length;r--;)t.allItems.unshift(s[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function l(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==r?s.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function p(){this.elem.attr("fill",z(this.start).tweenTo(z(this.end),this.pos),void 0,!0)}function d(){this.elem.attr("stroke",z(this.start).tweenTo(z(this.end),this.pos),void 0,!0)}t.compose=function(t,c,u,m,g){let f=c.prototype,b=u.prototype,y=g.prototype;f.collectionsWithUpdate.includes("colorAxis")||(e=t,f.collectionsWithUpdate.push("colorAxis"),f.collectionsWithInit.colorAxis=[f.addColorAxis],S(c,"afterCreateAxes",i),function(t){let i=t.prototype.createAxis;t.prototype.createAxis=function(t,s){if("colorAxis"!==t)return i.apply(this,arguments);let o=new e(this,B(s.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),E(s.redraw,!0)&&this.redraw(s.animation),o}}(c),b.fillSetter=p,b.strokeSetter=d,S(m,"afterGetAllItems",s),S(m,"afterColorizeItem",o),S(m,"afterUpdate",r),I(y,{optionalAxis:"colorAxis",translateColors:h}),I(y.pointClass.prototype,{setVisible:l}),S(g,"afterTranslate",a,{order:1}),S(g,"bindAxes",n))},t.pointSetVisible=l}(u||(u={}));let V=u,{parse:O}=j(),{merge:N}=T();!function(t){t.initDataClasses=function(t){let e=this.chart,i=this.legendItem=this.legendItem||{},s=this.options,o=t.dataClasses||[],r,a,n=e.options.chart.colorCount,l=0,h;this.dataClasses=a=[],i.labels=[];for(let t=0,i=o.length;t=s)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(i=this.normalizedValue(t),n=h.length;n--&&!(i>h[n][0]););s=h[n]||h[n+1],i=1-((o=h[n+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r}}(m||(m={}));let G=m;var X=w(500),R=/*#__PURE__*/w.n(X),H=w(512),W=/*#__PURE__*/w.n(H);let{defaultOptions:Y}=T(),{series:U}=W(),{defined:F,extend:Z,fireEvent:_,isArray:K,isNumber:q,merge:$,pick:J,relativeLength:Q}=T();Y.colorAxis=$(Y.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class tt extends A(){static compose(t,e,i,s){V.compose(tt,t,e,i,s)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},s=e.layout?"vertical"!==e.layout:"vertical"!==i.layout;this.side=e.side||s?2:1,this.reversed=e.reversed||!s,this.opposite=!s,super.init(t,e,"colorAxis"),this.userOptions=e,K(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=s,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=$(Y.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:i,height:s}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=i=+e.attr("width"),this.height=s=+e.attr("height"),this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-s,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?i:s)||tt.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let i=this.chart.legend;i.allItems.forEach(function(t){t instanceof tt&&t.drawLegendSymbol(i,t)}),i.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,i=e?1:0,s=e?0:1,o=t?[i,0,s,0]:[0,s,0,i];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},s=t.padding,o=t.options,r=this.options.labels,a=J(o.itemDistance,10),n=this.horiz,{width:l,height:h}=this.getSize(),p=J(o.labelPadding,n?16:30);this.setLegendColor(),i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(i.group)),i.symbol.attr({x:0,y:(t.baseline||0)-11,width:l,height:h}),i.labelWidth=l+s+(n?a:J(r.x,r.distance)+(this.maxLabelLength||0)),i.labelHeight=h+s+(n?p:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,i,s,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(i=(o=t[r]).colorKey=J(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),s=o[i+"Min"]&&o[i+"Max"],[i,"value","y"]))if((e=o.getColumn(a)).length)break;if(s)o.minColorValue=o[i+"Min"],o.maxColorValue=o[i+"Max"];else{let t=U.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}F(o.minColorValue)&&F(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),s||U.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let i;let s=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,a=this.pos,n=this.len;e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))a+n&&(i=a+n+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&s.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(s.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,s=this.top;return q(i)?this.horiz?[["M",i-4,s-6],["L",i+4,s-6],["L",i,s],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,i=e.chart,s=e.legendItem&&e.legendItem.labels||[],o=i.options.legend,r=J(o.valueDecimals,-1),a=J(o.valueSuffix,""),n=t=>e.series.reduce((e,i)=>(e.push(...i.points.filter(e=>e.dataClass===t)),e),[]);return s.length||e.dataClasses.forEach((o,l)=>{let h=o.from,p=o.to,{numberFormatter:d}=i,c=!0;t="",void 0===h?t="< ":void 0===p&&(t="> "),void 0!==h&&(t+=d(h,r)+a),void 0!==h&&void 0!==p&&(t+=" - "),void 0!==p&&(t+=d(p,r)+a),s.push(Z({chart:i,name:t,options:{},drawLegendSymbol:R().rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of n(l))e.setState(t)},setVisible:function(){this.visible=c=e.visible=!c;let t=[];for(let e of n(l))e.setVisible(c),e.hiddenInDataClass=!c,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,c),t.forEach(t=>{_(t,"afterDataClassLegendClick")})}},o))}),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:J(F(s)?Q(s,t.chartWidth):void 0,o?.symbolWidth,e?tt.defaultLegendLength:12),height:J(F(i)?Q(i,t.chartHeight):void 0,o?.symbolHeight,e?12:tt.defaultLegendLength)}}}tt.defaultLegendLength=200,tt.keepProps=["legendItem"],Z(tt.prototype,G),Array.prototype.push.apply(A().keepProps,tt.keepProps);let te=T();te.ColorAxis=te.ColorAxis||tt,te.ColorAxis.compose(te.Chart,te.Fx,te.Legend,te.Series);let ti={lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}},{defined:ts,extend:to,pick:tr,wrap:ta}=T();!function(t){let e,i=0;function s(t){let e=this.chart;t=this.normalize(t),e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(t.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,void 0,void 0,t.chartX,t.chartY)}function o(t){let s=this.chart,o=ts((t=this.normalize(t)).wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&clearTimeout(e),e=setTimeout(()=>{i=0},50)),i<10&&s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&s.mapView&&s.mapView.zoomBy(-((s.options.mapNavigation.mouseWheelSensitivity-1)*o),void 0,[t.chartX,t.chartY],!(1>Math.abs(o))&&void 0)}function r(t,e,i){let s=this.chart;if(e=t.call(this,e,i),s&&s.mapView){let t=s.mapView.pixelsToLonLat({x:e.chartX-s.plotLeft,y:e.chartY-s.plotTop});t&&to(e,t)}return e}function a(t){let e=this.chart.options.mapNavigation;e&&tr(e.enableTouchZoom,e.enabled)&&(this.chart.zooming.pinchType="xy"),t.apply(this,[].slice.call(arguments,1))}t.compose=function(t){let e=t.prototype;e.onContainerDblClick||(to(e,{onContainerDblClick:s,onContainerMouseWheel:o}),ta(e,"normalize",r),ta(e,"zoomOption",a))}}(g||(g={}));let tn=g;function tl(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxY=e-t,o.brBoxHeight=s+t}return c.roundedRect(t,e,i,s,o)}function th(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxHeight=s+t}return c.roundedRect(t,e,i,s,o)}let tp={compose:function(t){(c=t.prototype.symbols).bottombutton=tl,c.topbutton=th}},{setOptions:td}=T(),{composed:tc}=T(),{addEvent:tu,extend:tm,merge:tg,objectEach:tf,pick:tb,pushUnique:ty}=T();function tx(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}class tM{static compose(t,e,i){tn.compose(e),tp.compose(i),ty(tc,"Map.Navigation")&&(tu(t,"beforeRender",function(){this.mapNavigation=new tM(this),this.mapNavigation.update()}),td(ti))}constructor(t){this.chart=t,this.navButtons=[]}update(t){let e=this,i=e.chart,s=e.navButtons,o=function(t){this.handler.call(i,t),tx(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=tg(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();if(!i.renderer.forExport&&tb(r.enableButtons,r.enabled)){e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),tf(r.buttons,(t,a)=>{let n={padding:(t=tg(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&(tm(n,t.theme),n.style=tg(t.theme.style,t.style));let{text:l,width:h=0,height:p=0,padding:d=0}=t,c=i.renderer.button("+"!==l&&"-"!==l&&l||"",0,0,o,n,void 0,void 0,void 0,"zoomIn"===a?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+({zoomIn:"zoom-in",zoomOut:"zoom-out"})[a]).attr({width:h,height:p,title:i.options.lang[a],zIndex:5}).add(e.navButtonsGroup);if("+"===l||"-"===l){let e=h+1,s=[["M",d+3,d+p/2],["L",d+e-3,d+p/2]];"+"===l&&s.push(["M",d+e/2,d+3],["L",d+e/2,d+p-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(c)}if(c.handler=t.onclick,tu(c.element,"dblclick",tx),s.push(c),tm(t,{width:c.width,height:2*(c.height||0)}),i.hasLoaded)c.align(t,!1,t.alignTo);else{let e=tu(i,"load",()=>{c.element&&c.align(t,!1,t.alignTo),e()})}});let t=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y);i.hasLoaded||tu(i,"render",function(){let s=i.exportingGroup?.getBBox();if(s){let i=e.navButtonsGroup.getBBox();if(t(s,i)){let t=-i.y-i.height+s.y-5,o=s.y+s.height-i.y+5,a=r.buttonOptions&&r.buttonOptions.verticalAlign;e.navButtonsGroup.attr({translateY:"bottom"===a?t:o})}}})}this.updateEvents(r)}updateEvents(t){let e=this.chart;tb(t.enableDoubleClickZoom,t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||tu(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),tb(t.enableMouseWheelZoom,t.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||tu(e.container,"wheel",function(t){if(!e.pointer.inClass(t.target,"highcharts-no-mousewheel")){let i=e.mapView?.zoom;e.pointer.onContainerMouseWheel(t),i!==e.mapView?.zoom&&tx(t)}return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}var tv=w(28),tw=/*#__PURE__*/w.n(tv);let{column:{prototype:tC}}=W().seriesTypes,{addEvent:tL,defined:tT}=T();!function(t){function e(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(tw())(i,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${i.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}t.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},t.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return tT(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:tC.pointAttribs},t.compose=function(t){return tL(t.prototype.pointClass,"afterSetState",e),t}}(f||(f={}));let tP=f;var tA=w(820),tk=/*#__PURE__*/w.n(tA);let{deg2rad:tj}=T(),{fireEvent:tz,isNumber:tS,pick:tI,relativeLength:tB}=T();!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,l,h=t.size,p=t.innerSize||0,d,c;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof p&&(p=parseFloat(p));let u=[tI(r?.[0],"50%"),tI(r?.[1],"50%"),tI(h&&h<0?void 0:t.size,"100%"),tI(p&&p<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof tk()||(u[3]=0),d=0;d<4;++d)c=u[d],l=d<2||2===d&&/%$/.test(c),u[d]=tB(c,[s,o,a,u[2]][d])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),tS(n)&&2*n0&&(u[3]=u[2]-2*n),tz(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=tS(t)?t:0,s=tS(e)&&e>i&&e-i<360?e:i+360;return{start:tj*(i+-90),end:tj*(s+-90)}}}(b||(b={}));let tE=b;var tD=w(960),tV=/*#__PURE__*/w.n(tD),tO=w(540),tN=/*#__PURE__*/w.n(tO);let{getOptions:tG}=T(),{isNumber:tX,merge:tR,pick:tH}=T();class tW extends tV(){init(t,e){let i=tG().credits,s=tR({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:tH(i.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:tH(i.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&(tX(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,tX(e)&&tX(i)?this.mapView.projection.inverse([e,i]):void 0,tX(s)&&tX(o)?[s,o]:void 0))}update(t){t.chart&&"map"in t.chart&&this.mapView?.recommendMapView(this,[t.chart.map,...(this.options.series||[]).map(t=>t.mapData)],!0),super.update.apply(this,arguments)}}!function(t){t.maps={},t.mapChart=function(e,i,s){return new t(e,i,s)},t.splitPath=function(t){let e;return e="string"==typeof t?(t=t.replace(/([A-Z])/gi," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(t=>/[A-Z]/i.test(t)?t:parseFloat(t)):t,tN().prototype.pathToSegments(e)}}(tW||(tW={}));let tY=tW,tU={boundsFromPath:function(t){let e=-Number.MAX_VALUE,i=Number.MAX_VALUE,s=-Number.MAX_VALUE,o=Number.MAX_VALUE,r;if(t.forEach(t=>{let a=t[t.length-2],n=t[t.length-1];"number"==typeof a&&"number"==typeof n&&(i=Math.min(i,a),e=Math.max(e,a),o=Math.min(o,n),s=Math.max(s,n),r=!0)}),r)return{x1:i,y1:o,x2:e,y2:s}}},{boundsFromPath:tF}=tU,tZ=W().seriesTypes.scatter.prototype.pointClass,{extend:t_,isNumber:tK,pick:tq}=T();class t$ extends tZ{static getProjectedPath(t,e){return t.projectedPath||(e&&t.geometry?(e.hasCoordinates=!0,t.projectedPath=e.path(t.geometry)):t.projectedPath=t.path),t.projectedPath||[]}applyOptions(t,e){let i=this.series,s=super.applyOptions(t,e),o=i.joinBy;if(i.mapData&&i.mapMap){let t=o[1],e=super.getNestedProperty(t),r=void 0!==e&&i.mapMap[e];r?t_(s,{...r,name:s.name??r.name}):-1!==i.pointArrayMap.indexOf("value")&&(s.value=s.value||null)}return s}getProjectedBounds(t){let e=tF(t$.getProjectedPath(this,t)),i=this.properties,s=this.series.chart.mapView;if(e){let o=i&&i["hc-middle-lon"],r=i&&i["hc-middle-lat"];if(s&&tK(o)&&tK(r)){let i=t.forward([o,r]);e.midX=i[0],e.midY=i[1]}else{let t=i&&i["hc-middle-x"],s=i&&i["hc-middle-y"];e.midX=e.x1+(e.x2-e.x1)*tq(this.middleX,tK(t)?t:.5);let o=tq(this.middleY,tK(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){T().clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,t):this.series.onMouseOut()}setVisible(t){this.visible=this.options.visible=!!t,this.dataLabel&&this.dataLabel[t?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(t){let e=this.series.chart,i=e.mapView,s=this.bounds;if(i&&s){let o=tK(this.insetIndex)&&i.insets[this.insetIndex];if(o){let t=o.projectedUnitsToPixels({x:s.x1,y:s.y1}),e=o.projectedUnitsToPixels({x:s.x2,y:s.y2}),r=i.pixelsToProjectedUnits({x:t.x,y:t.y}),a=i.pixelsToProjectedUnits({x:e.x,y:e.y});s={x1:r.x,y1:r.y,x2:a.x,y2:a.y}}i.fitToBounds(s,void 0,!1),this.series.isDirty=!0,e.redraw(t)}}}t_(t$.prototype,{dataLabelOnNull:tP.pointMembers.dataLabelOnNull,moveToTopOnHover:tP.pointMembers.moveToTopOnHover,isValid:tP.pointMembers.isValid});let{isNumber:tJ}=T(),tQ={center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}};var t0=w(984),t1=/*#__PURE__*/w.n(t0);let{win:t2}=T(),{format:t6}=t1(),{error:t3,extend:t8,merge:t7,wrap:t9}=T();!function(t){function e(t){return this.mapView&&this.mapView.lonLatToProjectedUnits(t)}function i(t){return this.mapView&&this.mapView.projectedUnitsToLonLat(t)}function s(t,e){let i=this.options.chart.proj4||t2.proj4;if(!i){t3(21,!1,this);return}let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:p=0}=e,d=i(e.crs,[t.lon,t.lat]),c=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),m=e.rotation?[d[0]*c+d[1]*u,-d[0]*u+d[1]*c]:d;return{x:((m[0]-n)*a+l)*r+s,y:-(((h-m[1])*a+p)*r-o)}}function o(t,e){let i=this.options.chart.proj4||t2.proj4;if(!i){t3(21,!1,this);return}if(null===t.y)return;let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:p=0}=e,d={x:((t.x-s)/r-l)/a+n,y:((t.y-o)/r+p)/a+h},c=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),m=i(e.crs,"WGS84",e.rotation?{x:d.x*c+-(d.y*u),y:d.x*u+d.y*c}:d);return{lat:m.y,lon:m.x}}function r(t,e){e||(e=Object.keys(t.objects)[0]);let i=t.objects[e];if(i["hc-decoded-geojson"]&&i["hc-decoded-geojson"].title===t.title)return i["hc-decoded-geojson"];let s=t.arcs;if(t.transform){let e,i,o;let r=t.arcs,{scale:a,translate:n}=t.transform;s=[];for(let t=0,l=r.length;t"number"==typeof t[0]?t.reduce((t,e,i)=>{let o=e<0?s[~e]:s[e];return e<0?(o=o.slice(0,0===i?o.length:o.length-1)).reverse():i&&(o=o.slice(1)),t.concat(o)},[]):t.map(o),r=i.geometries,a=[];for(let t=0,e=r.length;t(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=h>e&&t<(l-s)*(e-n)/(h-n)+s&&(a=!a)}return a}}(x||(x={}));let t5=x;function et(t,e,i=!0){let s=e[e.length-1],o,r,a,n=t;for(let t=0;t(e[1]-t[1])*(i[0]-t[0])}function ei(t,e,i,s){let o=[t[0]-e[0],t[1]-e[1]],r=[i[0]-s[0],i[1]-s[1]],a=t[0]*e[1]-t[1]*e[0],n=i[0]*s[1]-i[1]*s[0],l=1/(o[0]*r[1]-o[1]*r[0]),h=[(a*r[0]-n*o[0])*l,(a*r[1]-n*o[1])*l];return h.isIntersection=!0,h}let es=Math.sign||(t=>0===t?0:t>0?1:-1),eo=Math.PI/180,er=Math.PI/2,ea=t=>Math.tan((er+t)/2),en=class{constructor(t){let e=(t.parallels||[]).map(t=>t*eo),i=e[0]||0,s=e[1]??i,o=Math.cos(i);"object"==typeof t.projectedBounds&&(this.projectedBounds=t.projectedBounds);let r=i===s?Math.sin(i):Math.log(o/Math.cos(s))/Math.log(ea(s)/ea(i));1e-10>Math.abs(r)&&(r=1e-10*(es(r)||1)),this.n=r,this.c=o*Math.pow(ea(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*eo,r=t[1]*eo;e>0?r<-er+1e-6&&(r=-er+1e-6):r>er-1e-6&&(r=er-1e-6);let a=e/Math.pow(ea(r),i),n=a*Math.sin(i*o)*63.78137,l=(e-a*Math.cos(i*o))*63.78137,h=[n,l];return s&&(ns.x2||ls.y2)&&(h.outside=!0),h}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=es(i)*Math.sqrt(s*s+o*o),a=Math.atan2(s,Math.abs(o))*es(o);return o*i<0&&(a-=Math.PI*es(s)*es(o)),[a/i/eo,(2*Math.atan(Math.pow(e/r,1/i))-er)/eo]}},el=Math.sqrt(3)/2,eh=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(t){let e=Math.PI/180,i=Math.asin(el*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(el*(1.340264+-.24331799999999998*s+o*(.0062510000000000005+.034164*s))),74.03120656864502*i*(1.340264+-.081106*s+o*(893e-6+.003796*s))]}inverse(t){let e=t[0]/74.03120656864502,i=t[1]/74.03120656864502,s=180/Math.PI,o=i,r,a,n,l;for(let t=0;t<12&&(a=(r=o*o)*r*r,n=o*(1.340264+-.081106*r+a*(893e-6+.003796*r))-i,o-=l=n/(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r)),!(1e-9>Math.abs(l)));++t);a=(r=o*o)*r*r;let h=s*el*e*(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r))/Math.cos(o),p=s*Math.asin(Math.sin(o)/el);return Math.abs(h)>180?[NaN,NaN]:[h,p]}},ep=Math.PI/4,ed=Math.PI/180,ec=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*ed*63.78137,79.7267125*Math.log(Math.tan(ep+.4*t[1]*ed))]}inverse(t){return[t[0]/63.78137/ed,2.5*(Math.atan(Math.exp(.8*(t[1]/63.78137)))-ep)/ed]}},eu=Math.PI/180,em=class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(t){let e=t[0],i=t[1]*eu,s=[Math.cos(i)*Math.sin(e*eu)*63.78460826781007,63.78460826781007*Math.sin(i)];return(e<-90||e>90)&&(s.outside=!0),s}inverse(t){let e=t[0]/63.78460826781007,i=t[1]/63.78460826781007,s=Math.sqrt(e*e+i*i),o=Math.asin(s),r=Math.sin(o);return[Math.atan2(e*r,s*Math.cos(o))/eu,Math.asin(s&&i*r/s)/eu]}},eg=Math.PI/180,ef=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(t){let e=Math.sin(t[1]*eg),i=[63.78137*t[0]*eg,63.78137*Math.log((1+e)/(1-e))/2];return Math.abs(t[1])>this.maxLatitude&&(i.outside=!0),i}inverse(t){return[t[0]/(63.78137*eg),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/eg]}},{clipLineString:eb,clipPolygon:ey}={clipLineString:function(t,e){let i=[],s=et(t,e,!1);for(let t=1;t(t<-180&&(t+=360),t>180&&(t-=360),t),eC=t=>(1-Math.cos(t))/2,eL=(t,e)=>{let i=Math.cos,s=t[1]*ev,o=t[0]*ev,r=e[1]*ev,a=e[0]*ev;return eC(r-s)+i(s)*i(r)*eC(a-o)};class eT{static add(t,e){eT.registry[t]=e}static distance(t,e){let{atan2:i,sqrt:s}=Math,o=eL(t,e);return 6371e3*(2*i(s(o),s(1-o)))}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:a,sqrt:n}=Math,l=eT.distance,h=t[1]*ev,p=t[0]*ev,d=e[1]*ev,c=e[0]*ev,u=r(h)*r(p),m=r(d)*r(c),g=r(h)*a(p),f=r(d)*a(c),b=a(h),y=a(d),x=l(t,e),M=x/6371e3,v=a(M),w=Math.round(x/s),C=[];if(i&&C.push(t),w>1){let t=1/w;for(let e=t;e<.999;e+=t){let t=a((1-e)*M)/v,i=a(e*M)/v,s=t*u+i*m,r=t*g+i*f,l=o(t*b+i*y,n(s*s+r*r)),h=o(r,s);C.push([h/ev,l/ev])}}return i&&C.push(e),C}static insertGeodesics(t){let e=t.length-1;for(;e--;)if(Math.max(Math.abs(t[e][0]-t[e+1][0]),Math.abs(t[e][1]-t[e+1][1]))>10){let i=eT.geodesic(t[e],t[e+1]);i.length&&t.splice(e+1,0,...i)}}static toString(t){let{name:e,rotation:i}=t||{};return[e,i&&i.join(",")].join(";")}constructor(t={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=t;let{name:e,projectedBounds:i,rotation:s}=t;this.rotator=s?this.getRotator(s):void 0;let o=e?eT.registry[e]:void 0;o&&(this.def=new o(t));let{def:r,rotator:a}=this;r&&(this.maxLatitude=r.maxLatitude||90,this.hasGeoProjection=!0),a&&r?(this.forward=t=>r.forward(a.forward(t)),this.inverse=t=>a.inverse(r.inverse(t))):r?(this.forward=t=>r.forward(t),this.inverse=t=>r.inverse(t)):a&&(this.forward=a.forward,this.inverse=a.inverse),this.bounds="world"===i?r&&r.bounds:i}lineIntersectsBounds(t){let{x1:e,x2:i,y1:s,y2:o}=this.bounds||{},r=(t,e,i)=>{let[s,o]=t,r=e?0:1;if("number"==typeof i&&s[e]>=i!=o[e]>=i){let t=(i-s[e])/(o[e]-s[e]),a=s[r]+t*(o[r]-s[r]);return e?[a,i]:[i,a]}},a,n=t[0];return(a=r(t,0,e))?(n=a,t[1]=a):(a=r(t,0,i))&&(n=a,t[1]=a),(a=r(t,1,s))?n=a:(a=r(t,1,o))&&(n=a),n}getRotator(t){let e=t[0]*ev,i=(t[1]||0)*ev,s=(t[2]||0)*ev,o=Math.cos(i),r=Math.sin(i),a=Math.cos(s),n=Math.sin(s);if(0!==e||0!==i||0!==s)return{forward:t=>{let i=t[0]*ev+e,s=t[1]*ev,l=Math.cos(s),h=Math.cos(i)*l,p=Math.sin(i)*l,d=Math.sin(s),c=d*o+h*r;return[Math.atan2(p*a-c*n,h*o-d*r)/ev,Math.asin(c*a+p*n)/ev]},inverse:t=>{let i=t[0]*ev,s=t[1]*ev,l=Math.cos(s),h=Math.cos(i)*l,p=Math.sin(i)*l,d=Math.sin(s),c=d*a-p*n;return[(Math.atan2(p*a+d*n,h*o+c*r)-e)/ev,Math.asin(c*o-h*r)/ev]}}}forward(t){return t}inverse(t){return t}cutOnAntimeridian(t,e){let i;let s=[],o=[t];for(let i=0,o=t.length;i90)&&(n<-90||n>90)&&a>0!=n>0){let t=ex((180-(a+360)%360)/((n+360)%360-(a+360)%360),0,1),e=r[1]+t*(o[1]-r[1]);s.push({i,lat:e,direction:a<0?1:-1,previousLonLat:r,lonLat:o})}}if(s.length){if(e){s.length%2==1&&(i=s.slice().sort((t,e)=>Math.abs(e.lat)-Math.abs(t.lat))[0],eM(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=ew(180+1e-6*s[e].direction),a=ew(180-1e-6*s[e].direction),n=t.splice(i,s[e+1].i-i,...eT.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));n.push(...eT.geodesic([a,s[e+1].lat],[a,s[e].lat],!0)),o.push(n),e-=2}if(i)for(let t=0;t-1){let t=(s<0?-1:1)*this.maxLatitude,o=ew(180+1e-6*e),n=ew(180-1e-6*e),l=eT.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)l.push([i,t]);l.push(...eT.geodesic([n,t],[n,i.lat],!0)),r.splice(a,0,...l);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[ew(180+1e-6*s[e].direction),s[e].lat]);r.unshift([ew(180-1e-6*s[e].direction),s[e].lat]),o.push(r)}}}return o}path(t){let e;let{bounds:i,def:s,rotator:o}=this,r=[],a="Polygon"===t.type||"MultiPolygon"===t.type,n=this.hasGeoProjection,l=!s||!1!==s.antimeridianCutting,h=l?o:void 0,p=l&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let d=t=>{let s=t.map(t=>{if(l){h&&(t=h.forward(t));let e=t[0];1e-6>Math.abs(e-180)&&(e=e<180?179.999999:180.000001),t=[e,t[1]]}return t}),o=[s];n&&(eT.insertGeodesics(s),l&&(o=this.cutOnAntimeridian(s,a))),o.forEach(t=>{let s,o;if(t.length<2)return;let h=!1,d=!1,c=t=>{h?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),h=!0)},u=!1,m=!1,g=t.map(t=>{let e=p.forward(t);return e.outside?u=!0:m=!0,e[1]===1/0?e[1]=1e10:e[1]===-1/0&&(e[1]=-1e10),e});if(l){if(a&&g.push(g[0]),u){if(!m)return;if(e){if(a)g=ey(g,e);else if(i){eb(g,e).forEach(t=>{h=!1,t.forEach(c)});return}}}g.forEach(c)}else for(let e=0;ec(p.forward(t))):h=!1),c(r),o=i,d=!1)}})};return"LineString"===t.type?d(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach(t=>d(t)):"Polygon"===t.type?(t.coordinates.forEach(t=>d(t)),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach(t=>{t.forEach(t=>d(t))}),r.length&&r.push(["Z"])),r}}eT.registry={EqualEarth:eh,LambertConformalConic:en,Miller:ec,Orthographic:em,WebMercator:ef};let{composed:eP}=T(),{pointInPolygon:eA}=t5,{topo2geo:ek}=t4,{boundsFromPath:ej}=tU,{addEvent:ez,clamp:eS,crisp:eI,fireEvent:eB,isArray:eE,isNumber:eD,isObject:eV,isString:eO,merge:eN,pick:eG,pushUnique:eX,relativeLength:eR}=T(),eH={};function eW(t,e){let{width:i,height:s}=e;return Math.log(400.979322/Math.max((t.x2-t.x1)/(i/256),(t.y2-t.y1)/(s/256)))/Math.log(2)}function eY(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class eU{static compose(t){eX(eP,"MapView")&&(eH=t.maps,ez(t,"afterInit",function(){this.mapView=new eU(this,this.options.mapView)},{order:0}),ez(t,"addSeriesAsDrilldown",eY),ez(t,"afterDrillUp",eY))}static compositeBounds(t){if(t.length)return t.slice(1).reduce((t,e)=>(t.x1=Math.min(t.x1,e.x1),t.y1=Math.min(t.y1,e.y1),t.x2=Math.max(t.x2,e.x2),t.y2=Math.max(t.y2,e.y2),t),eN(t[0]))}static mergeInsets(t,e){let i=t=>{let e={};return t.forEach((t,i)=>{e[t&&t.id||`i${i}`]=t}),e},s=eN(i(t),i(e));return Object.keys(s).map(t=>s[t])}constructor(t,e){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof eF||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map(t=>t.mapData)]),this.userOptions=e||{};let i=eN(tQ,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=eU.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new eT(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push(ez(t,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&eD(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&eN(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach(e=>{let i=new eF(this,eN(t.insetOptions,e));this.insets.push(i)})}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=eG(e,t?0:this.options.padding),a=this.getField(!1),n=eE(r)?r:[r,r,r,r];this.padding=[eR(n[0],a.height),eR(n[1],a.width),eR(n[2],a.height),eR(n[3],a.width)],this.playingField=this.getField();let l=eW(o,this.playingField);t||(this.minZoom=l);let h=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(h,l,i,s)}}getField(t=!0){let e=t?this.padding:[0,0,0,0];return{x:e[3],y:e[0],width:this.chart.plotWidth-e[1]-e[3],height:this.chart.plotHeight-e[0]-e[2]}}getGeoMap(t){if(eO(t))return eH[t]&&"Topology"===eH[t].type?ek(eH[t]):eH[t];if(eV(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return ek(t)}}getMapBBox(){let t=this.getProjectedBounds(),e=this.getScale();if(t){let i=this.padding,s=this.projectedUnitsToPixels({x:t.x1,y:t.y2});return{width:(t.x2-t.x1)*e+i[1]+i[3],height:(t.y2-t.y1)*e+i[0]+i[2],x:s.x-i[3],y:s.y-i[0]}}}getProjectedBounds(){let t=this.projection,e=this.chart.series.reduce((t,e)=>{let i=e.getProjectedBounds&&e.getProjectedBounds();return i&&!1!==e.options.affectsMapView&&t.push(i),t},[]),i=this.options.fitToGeometry;if(i){if(!this.fitToGeometryCache){if("MultiPoint"===i.type){let e=i.coordinates.map(e=>t.forward(e)),s=e.map(t=>t[0]),o=e.map(t=>t[1]);this.fitToGeometryCache={x1:Math.min.apply(0,s),x2:Math.max.apply(0,s),y1:Math.min.apply(0,o),y2:Math.max.apply(0,o)}}else this.fitToGeometryCache=ej(t.path(i))}return this.fitToGeometryCache}return this.projection.bounds||eU.compositeBounds(e)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:t,y:e,width:i,height:s}=this.playingField,o=this.projection.forward(this.center),r=this.projection.hasCoordinates?-1:1,a=this.getScale(),n=a*r,l=t+i/2-o[0]*a,h=e+s/2-o[1]*n;return{scaleX:a,scaleY:n,translateX:l,translateY:h}}lonLatToPixels(t){let e=this.lonLatToProjectedUnits(t);if(e)return this.projectedUnitsToPixels(e)}lonLatToProjectedUnits(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone){let o=e.transformFromLatLon(t,i[s]);if(o&&eA(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&eA({x:t.lon,y:t.lat},e.options.geoBounds.coordinates[0])){let i=e.projection.forward([t.lon,t.lat]),s=e.projectedUnitsToPixels({x:i[0],y:i[1]});return this.pixelsToProjectedUnits(s)}let s=this.projection.forward([t.lon,t.lat]);if(!s.outside)return{x:s[0],y:s[1]}}projectedUnitsToLonLat(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone&&eA(t,i[s].hitZone.coordinates[0]))return e.transformToLatLon(t,i[s]);return e.transformToLatLon(t,i.default)}let s=this.projectedUnitsToPixels(t);for(let t of this.insets)if(t.hitZone&&eA(s,t.hitZone.coordinates[0])){let e=t.pixelsToProjectedUnits(s),i=t.projection.inverse([e.x,e.y]);return{lon:i[0],lat:i[1]}}let o=this.projection.inverse([t.x,t.y]);return{lon:o[0],lat:o[1]}}recommendMapView(t,e,i=!1){this.recommendedMapView={};let s=e.map(t=>this.getGeoMap(t)),o=[];s.forEach(t=>{if(t&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=t["hc-recommended-mapview"]||{}),t.bbox)){let[e,i,s,r]=t.bbox;o.push({x1:e,y1:i,x2:s,y2:r})}});let r=o.length&&eU.compositeBounds(o);eB(this,"onRecommendMapView",{geoBounds:r,chart:t},function(){if(r&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:t,y1:e,x2:i,y2:s}=r;this.recommendedMapView.projection=i-t>180&&s-e>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[e,s],rotation:[-(t+i)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=s[0],i&&t.hasRendered&&!t.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(t){this.chart.series.forEach(t=>{t.useMapGeometry&&(t.isDirty=!0)}),this.chart.redraw(t)}setView(t,e,i=!0,s){t&&(this.center=t),"number"==typeof e&&("number"==typeof this.minZoom&&(e=Math.max(e,this.minZoom)),"number"==typeof this.options.maxZoom&&(e=Math.min(e,this.options.maxZoom)),eD(e)&&(this.zoom=e));let o=this.getProjectedBounds();if(o){let t=this.projection.forward(this.center),{x:e,y:i,width:s,height:r}=this.playingField,a=this.getScale(),n=this.projectedUnitsToPixels({x:o.x1,y:o.y1}),l=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),h=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some(t=>t.isDrilling)){let o=n.x,p=l.y,d=l.x,c=n.y;d-oe+s&&o>e&&(t[0]+=Math.min(d-s-e,o-e)/a),c-pi+r&&p>i&&(t[1]-=Math.min(c-r-i,p-i)/a),this.center=this.projection.inverse(t)}this.insets.forEach(t=>{t.options.field&&(t.hitZone=t.getHitZone(),t.playingField=t.getField())}),this.render()}eB(this,"afterSetView"),i&&this.redraw(s)}projectedUnitsToPixels(t){let e=this.getScale(),i=this.projection.forward(this.center),s=this.playingField,o=s.x+s.width/2,r=s.y+s.height/2;return{x:o-e*(i[0]-t.x),y:r+e*(i[1]-t.y)}}pixelsToLonLat(t){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(t))}pixelsToProjectedUnits(t){let{x:e,y:i}=t,s=this.getScale(),o=this.projection.forward(this.center),r=this.playingField,a=r.x+r.width/2,n=r.y+r.height/2;return{x:o[0]+(e-a)/s,y:o[1]-(i-n)/s}}setUpEvents(){let t,e,i;let{chart:s}=this,o=o=>{let{lastTouches:r,pinchDown:a}=s.pointer,n=this.projection,l=o.touches,{mouseDownX:h,mouseDownY:p}=s,d=0;if(a?.length===1?(h=a[0].chartX,p=a[0].chartY):a?.length===2&&(h=(a[0].chartX+a[1].chartX)/2,p=(a[0].chartY+a[1].chartY)/2),l?.length===2&&r&&(d=Math.log(Math.sqrt(Math.pow(r[0].chartX-r[1].chartX,2)+Math.pow(r[0].chartY-r[1].chartY,2))/Math.sqrt(Math.pow(l[0].chartX-l[1].chartX,2)+Math.pow(l[0].chartY-l[1].chartY,2)))/Math.log(.5)),eD(h)&&eD(p)){let r=`${h},${p}`,{chartX:a,chartY:c}=o.originalEvent;l?.length===2&&(a=(l[0].chartX+l[1].chartX)/2,c=(l[0].chartY+l[1].chartY)/2),r!==e&&(e=r,t=this.projection.forward(this.center),i=(this.projection.options.rotation||[0,0]).slice());let u=n.def&&n.def.bounds,m=u&&eW(u,this.playingField)||-1/0;if("Orthographic"===n.options.name&&2>(l?.length||0)&&(this.minZoom||1/0)<1.3*m){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(h-a)*t-i[0],o=eS(-i[1]-(p-c)*t,-80,80),r=this.zoom;this.update({projection:{rotation:[-e,-o]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=r,s.redraw(!1)}}else if(eD(a)&&eD(c)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(h-a)/e,t[1]-(p-c)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(d,s,void 0,!1)}o.preventDefault()}};ez(s,"pan",o),ez(s,"touchpan",o),ez(s,"selection",t=>{if(t.resetSelection)this.zoomBy();else{let e=t.x-s.plotLeft,i=t.y-s.plotTop,{y:o,x:r}=this.pixelsToProjectedUnits({x:e,y:i}),{y:a,x:n}=this.pixelsToProjectedUnits({x:e+t.width,y:i+t.height});this.fitToBounds({x1:r,y1:o,x2:n,y2:a},void 0,!0,!t.originalEvent.touches&&void 0),/^touch/.test(t.originalEvent.type)||s.showResetZoom(),t.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(t,e=!0,i){let s=t.projection,o=s&&eT.toString(s)!==eT.toString(this.options.projection),r=!1;eN(!0,this.userOptions,t),eN(!0,this.options,t),"insets"in t&&(this.insets.forEach(t=>t.destroy()),this.insets.length=0,r=!0),(o||"fitToGeometry"in t)&&delete this.fitToGeometryCache,(o||r)&&(this.chart.series.forEach(t=>{let e=t.transformGroups;if(t.clearBounds&&t.clearBounds(),t.isDirty=!0,t.isDirtyData=!0,r&&e)for(;e.length>1;){let t=e.pop();t&&t.destroy()}}),o&&(this.projection=new eT(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!eD(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||eD(t.zoom)?this.setView(this.options.center,t.zoom,!1):"fitToGeometry"in t&&this.fitToBounds(void 0,void 0,!1),e&&this.chart.redraw(i)}zoomBy(t,e,i,s){let o=this.chart,r=this.projection.forward(this.center);if("number"==typeof t){let a,n,l;let h=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),a=t-o.plotLeft-o.plotWidth/2,h=e-o.plotTop-o.plotHeight/2;n=r[0]+a/s,l=r[1]+h/s}if("number"==typeof n&&"number"==typeof l){let t=1-Math.pow(2,this.zoom)/Math.pow(2,h),e=r[0]-n,i=r[1]-l;r[0]-=e*t,r[1]+=i*t,a=this.projection.inverse(r)}this.setView(e||a,h,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class eF extends eU{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=eN({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){let e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=ej(e),this.geoBoundsProjectedPolygon=e.map(t=>[t[1]||0,t[2]||0])}}getField(t=!0){let e=this.hitZone;if(e){let i=t?this.padding:[0,0,0,0],s=e.coordinates[0],o=s.map(t=>t[0]),r=s.map(t=>t[1]),a=Math.min.apply(0,o)+i[3],n=Math.max.apply(0,o)-i[1],l=Math.min.apply(0,r)+i[0],h=Math.max.apply(0,r)-i[2];if(eD(a)&&eD(l))return{x:a,y:l,width:n-a,height:h-l}}return super.getField.call(this,t)}getHitZone(){let{chart:t,mapView:e,options:i}=this,{coordinates:s}=i.field||{};if(s){let o=s[0];if("percent"===i.units){let s="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||eN(t.plotBox,{x:0,y:0});o=o.map(t=>[eR(`${t[0]}%`,s.width,s.x),eR(`${t[1]}%`,s.height,s.y)])}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return eU.compositeBounds(this.allBounds)}isInside(t){let{geoBoundsProjectedBox:e,geoBoundsProjectedPolygon:i}=this;return!!(e&&t.x>=e.x1&&t.x<=e.x2&&t.y>=e.y1&&t.y<=e.y2&&i&&eA(t,i))}render(){let{chart:t,mapView:e,options:i}=this,s=i.borderPath||i.field;if(s&&e.group){let o=!0;this.border||(this.border=t.renderer.path().addClass("highcharts-mapview-inset-border").add(e.group),o=!1),t.styledMode||this.border.attr({stroke:i.borderColor,"stroke-width":i.borderWidth});let r=this.border.strokeWidth(),a="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||e.playingField,n=(s.coordinates||[]).reduce((e,s)=>s.reduce((e,s,o)=>{let[n,l]=s;return"percent"===i.units&&(n=t.plotLeft+eR(`${n}%`,a.width,a.x),l=t.plotTop+eR(`${l}%`,a.height,a.y)),n=eI(n,r),l=eI(l,r),e.push(0===o?["M",n,l]:["L",n,l]),e},e),[]);this.border[o?"animate":"attr"]({d:n})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(t=>t())}setUpEvents(){}}let{animObject:eZ,stop:e_}=T(),{noop:eK}=T(),{splitPath:eq}=tY,{column:e$,scatter:eJ}=W().seriesTypes,{extend:eQ,find:e0,fireEvent:e1,getNestedProperty:e2,isArray:e6,defined:e3,isNumber:e8,isObject:e7,merge:e9,objectEach:e4,pick:e5,splat:it}=T();class ie extends eJ{constructor(){super(...arguments),this.processedData=[]}animate(t){let{chart:e,group:i}=this,s=eZ(this.options.animation);t?i.attr({translateX:e.plotLeft+e.plotWidth/2,translateY:e.plotTop+e.plotHeight/2,scaleX:.001,scaleY:.001}):i.animate({translateX:e.plotLeft,translateY:e.plotTop,scaleX:1,scaleY:1},s)}clearBounds(){this.points.forEach(t=>{delete t.bounds,delete t.insetIndex,delete t.projectedPath}),delete this.bounds}doFullTranslate(){return!!(this.isDirtyData||this.chart.isResizing||!this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let t=this,{chart:e,group:i,transformGroups:s=[]}=this,{mapView:o,renderer:r}=e;if(o){this.transformGroups=s,s[0]||(s[0]=r.g().add(i));for(let t=0,e=o.insets.length;t{let{graphic:e}=t;t.group=s["number"==typeof t.insetIndex?t.insetIndex+1:0],e&&e.parentGroup!==t.group&&e.add(t.group)}),e$.prototype.drawPoints.apply(this),this.points.forEach(i=>{let s=i.graphic;if(s){let o=s.animate,r="";i.name&&(r+="highcharts-name-"+i.name.replace(/ /g,"-").toLowerCase()),i.properties&&i.properties["hc-key"]&&(r+=" highcharts-key-"+i.properties["hc-key"].toString().toLowerCase()),r&&s.addClass(r),e.styledMode&&s.css(this.pointAttribs(i,i.selected&&"select"||void 0)),s.attr({visibility:!i.visible&&(i.visible||i.isNull)?"hidden":"inherit"}),s.animate=function(i,r,a){let n=e8(i["stroke-width"])&&!e8(s["stroke-width"]),l=e8(s["stroke-width"])&&!e8(i["stroke-width"]);if(n||l){let o=e5(t.getStrokeWidth(t.options),1)/(e.mapView&&e.mapView.getScale()||1);n&&(s["stroke-width"]=o),l&&(i["stroke-width"]=o)}return o.call(s,i,r,l?function(){s.element.removeAttribute("stroke-width"),delete s["stroke-width"],a&&a.apply(this,arguments)}:a)}}})),s.forEach((i,s)=>{let a=(0===s?o:o.insets[s-1]).getSVGTransform(),n=e5(this.getStrokeWidth(this.options),1),l=a.scaleX,h=a.scaleY>0?1:-1,p=e=>{(t.points||[]).forEach(t=>{let i;let s=t.graphic;s&&s["stroke-width"]&&(i=this.getStrokeWidth(t.options))&&s.attr({"stroke-width":i/e})})};if(r.globalAnimation&&e.hasRendered&&o.allowTransformAnimation){let t=Number(i.attr("translateX")),e=Number(i.attr("translateY")),s=Number(i.attr("scaleX")),o=(o,r)=>{let d=s+(l-s)*r.pos;i.attr({translateX:t+(a.translateX-t)*r.pos,translateY:e+(a.translateY-e)*r.pos,scaleX:d,scaleY:d*h,"stroke-width":n/d}),p(d)},d=e9(eZ(r.globalAnimation)),c=d.step;d.step=function(){c&&c.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},d,(function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),e1(this,"mapZoomComplete")}).bind(this))}else e_(i),i.attr(e9(a,{"stroke-width":n/l})),p(l)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:t,projection:e}=this.chart.mapView,i=[];(this.points||[]).forEach(s=>{if(s.path||s.geometry){if("string"==typeof s.path?s.path=eq(s.path):e6(s.path)&&"M"===s.path[0]&&(s.path=this.chart.renderer.pathToSegments(s.path)),!s.bounds){let i=s.getProjectedBounds(e);if(i){s.labelrank=e5(s.labelrank,(i.x2-i.x1)*(i.y2-i.y1));let{midX:e,midY:o}=i;if(t&&e8(e)&&e8(o)){let r=e0(t,t=>t.isInside({x:e,y:o}));r&&(delete s.projectedPath,(i=s.getProjectedBounds(r.projection))&&r.allBounds.push(i),s.insetIndex=t.indexOf(r))}s.bounds=i}}s.bounds&&void 0===s.insetIndex&&i.push(s.bounds)}}),this.bounds=eU.compositeBounds(i)}return this.bounds}getStrokeWidth(t){let e=this.pointAttrToOptions;return t[e&&e["stroke-width"]||"borderWidth"]}hasData(){return!!this.dataTable.rowCount}pointAttribs(t,e){let{mapView:i,styledMode:s}=t.series.chart,o=s?this.colorAttribs(t):e$.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t.options);if(e){let i=e9(this.options.states&&this.options.states[e],t.options.states&&t.options.states[e]||{}),s=this.getStrokeWidth(i);e3(s)&&(r=s),o.stroke=i.borderColor??t.color}r&&i&&(r/=i.getScale());let a=this.getStrokeWidth(this.options);return o.dashstyle&&i&&e8(a)&&(r=a/i.getScale()),t.visible||(o.fill=this.options.nullColor),e3(r)?o["stroke-width"]=r:delete o["stroke-width"],o["stroke-linecap"]=o["stroke-linejoin"]=this.options.linecap,o}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(t,e=!0,i,s){delete this.bounds,super.setData(t,!1,void 0,s),this.processData(),this.generatePoints(),e&&this.chart.redraw(i)}dataColumnKeys(){return this.pointArrayMap}processData(){let t,e,i;let s=this.options,o=s.data,r=this.chart,a=r.options.chart,n=this.joinBy,l=s.keys||this.pointArrayMap,h=[],p={},d=this.chart.mapView,c=d&&(e7(s.mapData,!0)?d.getGeoMap(s.mapData):d.geoMap),u=r.mapTransforms=a.mapTransforms||c&&c["hc-transform"]||r.mapTransforms;u&&e4(u,t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))}),e6(s.mapData)?i=s.mapData:c&&"FeatureCollection"===c.type&&(this.mapTitle=c.title,i=T().geojson(c,this.type,this)),this.processedData=[];let m=this.processedData;if(o){let t;for(let e=0,i=o.length;el.length&&"string"==typeof t[0]&&(m[e]["hc-key"]=t[0],++i);for(let s=0;s0?t$.prototype.setNestedProperty(m[e],t[i],l[s]):m[e][l[s]]=t[i])}else m[e]=o[e];n&&"_i"===n[0]&&(m[e]._i=e)}}if(i){this.mapData=i,this.mapMap={};for(let s=0;s{let i=e2(t,e);p[i]&&h.push(p[i])})}if(s.allAreas){if(n[1]){let t=n[1];m.forEach(e=>{h.push(e2(t,e))})}let t="|"+h.map(function(t){return t&&t[n[0]]}).join("|")+"|";i.forEach(e=>{n[0]&&-1!==t.indexOf("|"+e[n[0]]+"|")||m.push(e9(e,{value:null}))})}}this.dataTable.rowCount=m.length}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=it(i),this.joinBy[1]||(this.joinBy[1]=this.joinBy[0])),e}translate(){let t=this.doFullTranslate(),e=this.chart.mapView,i=e&&e.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!e||e.userOptions.center||e8(e.userOptions.zoom)||e.zoom!==e.minZoom?this.getProjectedBounds():e.fitToBounds(void 0,void 0,!1)),e){let s=e.getSVGTransform();this.points.forEach(o=>{let r=e8(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&e8(o.bounds.midX)&&e8(o.bounds.midY)&&(o.plotX=o.bounds.midX*r.scaleX+r.translateX,o.plotY=o.bounds.midY*r.scaleY+r.translateY),t&&(o.shapeType="path",o.shapeArgs={d:t$.getProjectedPath(o,i)}),o.hiddenInDataClass||(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))})}e1(this,"afterTranslate")}update(t){t.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((e,i)=>i===this._i?t.mapData:e.mapData)],!0),super.update.apply(this,arguments)}}ie.defaultOptions=e9(eJ.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return tJ(e)?t(e,-1):this.point.name||""},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}),eQ(ie.prototype,{type:"map",axisTypes:tP.seriesMembers.axisTypes,colorAttribs:tP.seriesMembers.colorAttribs,colorKey:tP.seriesMembers.colorKey,directTouch:!0,drawDataLabels:eK,drawGraph:eK,forceDL:!0,getCenter:tE.getCenter,getExtremesFromAll:!0,getSymbol:eK,isCartesian:!1,parallelArrays:tP.seriesMembers.parallelArrays,pointArrayMap:tP.seriesMembers.pointArrayMap,pointClass:t$,preserveAspectRatio:!0,searchPoint:eK,trackerGroups:tP.seriesMembers.trackerGroups,useMapGeometry:!0}),tP.compose(ie),W().registerSeriesType("map",ie);let ii=ie,{extend:is,merge:io}=T();class ir extends ii{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}ir.defaultOptions=io(ii.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),is(ir.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),W().registerSeriesType("mapline",ir);let{scatter:ia}=W().seriesTypes,{isNumber:il}=T();class ih extends ia.prototype.pointClass{isValid(){return!!(this.options.geometry||il(this.x)&&il(this.y)||il(this.options.lon)&&il(this.options.lat))}}w(632);let{noop:ip}=T(),{map:id,scatter:ic}=W().seriesTypes,{extend:iu,fireEvent:im,isNumber:ig,merge:ib}=T();class iy extends ic{constructor(){super(...arguments),this.clearBounds=id.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(t){let e=this.chart.mapView;if(e){let{geometry:i,lon:s,lat:o}=t,r=i&&"Point"===i.type&&i.coordinates;if(ig(s)&&ig(o)&&(r=[s,o]),r)return e.lonLatToProjectedUnits({lon:r[0],lat:r[1]})}}translate(){let t=this.chart.mapView;if(this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),t){let e=t.getSVGTransform(),{hasCoordinates:i}=t.projection;this.points.forEach(s=>{let o,{x:r,y:a}=s,n=ig(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,l=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(l?(r=l.x,a=l.y):s.bounds&&(r=s.bounds.midX,a=s.bounds.midY,n&&ig(r)&&ig(a)&&(s.plotX=r*n.scaleX+n.translateX,s.plotY=a*n.scaleY+n.translateY,o=!0)),ig(r)&&ig(a)){if(!o){let e=t.projectedUnitsToPixels({x:r,y:a});s.plotX=e.x,s.plotY=i?e.y:this.chart.plotHeight-e.y}}else s.y=s.plotX=s.plotY=void 0;s.isInside=this.isPointInside(s),s.zone=this.zones.length?s.getZone():void 0})}im(this,"afterTranslate")}}iy.defaultOptions=ib(ic.defaultOptions,{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}),tN().prototype.symbols.mapmarker=(t,e,i,s,o)=>{let r,a;let n=o&&"legend"===o.context;n?(r=t+i/2,a=e+s):o&&"number"==typeof o.anchorX&&"number"==typeof o.anchorY?(r=o.anchorX,a=o.anchorY):(r=t+i/2,a=e+s/2,e-=s);let l=n?s/3:s/2;return[["M",r,a],["C",r,a,r-l,e+1.5*l,r-l,e+l],["A",l,l,1,1,1,r+l,e+l],["C",r+l,e+1.5*l,r,a,r,a],["Z"]]},iu(iy.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ih,searchPoint:ip,useMapGeometry:!0}),W().registerSeriesType("mappoint",iy);let ix={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0},{parse:iM}=j(),{noop:iv}=T(),{arrayMax:iw,arrayMin:iC,isNumber:iL,merge:iT,pick:iP,stableSort:iA}=T(),ik=class{constructor(t,e){this.setState=iv,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e;let i=iP(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,r=o.ranges,a=o.connectorDistance;if(!r||!r.length||!iL(r[0].value)){t.options.bubbleLegend.autoRanges=!0;return}iA(r,function(t,e){return e.value-t.value}),this.ranges=r,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=a-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},r={zIndex:e.zIndex,"stroke-width":e.connectorWidth},a={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach(function(h,p){l||(o.stroke=iP(h.borderColor,e.borderColor,i.color),o.fill=iP(h.color,e.color,1!==n?iM(i.color).setOpacity(n).get("rgba"):i.color),r.stroke=iP(h.connectorColor,e.connectorColor,i.color)),t[p].radius=this.getRangeRadius(h.value),t[p]=iT(t[p],{center:t[0].radius-t[p].radius+s}),l||iT(!0,t[p],{bubbleAttribs:iT(o),connectorAttribs:iT(r),labelAttribs:a})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,r=e.ranges[e.ranges.length-1].value,a=e.minSize,n=e.maxSize;return s.getRadius.call(this,r,o,a,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,r=this.chart,a=r.series[s.seriesIndex],n=r.renderer,l=this.symbols,h=l.labels,p=t.center,d=Math.abs(t.radius),c=s.connectorDistance||0,u=o.align,m=i.options.rtl,g=s.borderWidth,f=s.connectorWidth,b=e.radius||0,y=p-d-g/2+f/2,x=(y%1?1:.5)-(f%2?0:.5),M=n.styledMode,v=m||"left"===u?-c:c;"center"===u&&(v=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(b,p+x,d).attr(M?{}:t.bubbleAttribs).addClass((M?"highcharts-color-"+a.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",b,y],["L",b+v,y]],s.connectorWidth)).attr(M?{}:t.connectorAttribs).addClass((M?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let w=n.text(this.formatLabel(t)).attr(M?{}:t.labelAttribs).css(M?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),C={x:b+v+s.labels.x,y:y+s.labels.y+.4*w.getBBox().height};w.attr(C),h.push(w),w.placed=!0,w.alignAttr=C}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?t1().format(s,t,this.chart):i?i.call(t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,r=Number.MAX_VALUE,a=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(iL)).length&&(r=iP(t.options.zMin,Math.min(r,Math.max(iC(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),a=iP(t.options.zMax,Math.max(a,iw(o))))}),s=r===a?[{value:a}]:[{value:r},{value:(r+a)/2},{value:a,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=iT(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,r=t.plotSizeX,a=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),p=Math.ceil(l.maxPxSize),d=Math.min(a,r),c,u=n.options.maxSize;return i||!/%$/.test(u)?c=p:(c=(d+o)*(u=parseFloat(u))/100/(u/100+1),(s&&a-c>=r||!s&&r-c>=a)&&(c=p)),[h,Math.ceil(c)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:ij}=T(),{composed:iz}=T(),{addEvent:iS,objectEach:iI,pushUnique:iB,wrap:iE}=T();function iD(t,e,i){let s,o,r;let a=this.legend,n=iV(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&n?(s=a.bubbleLegend.options,o=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(a.group.placed=!1,a.allItems.forEach(t=>{(r=t.legendItem||{}).group&&(r.group.translateY=void 0)})),a.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),iI(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),a.bubbleLegend.correctSizes(),iX(a,iO(a))):(t.call(this,e,i),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),iX(a,iO(a))))}function iV(t){let e=t.series,i=0;for(;io.height&&(o.height=e[l].itemHeight);o.step=n}return i}function iN(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=iV(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new ik(s,this),this.bubbleLegend.addToLegend(t.allItems))}function iG(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=iV(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function iX(t,e){let i=t.allItems,s=t.options.rtl,o,r,a,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(o=n.group.translateX||0,r=n.y||0,((a=t.movementX)||s&&t.ranges)&&(a=s?o-t.options.maxSize/2:o+a,n.group.attr({translateX:a})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(r+e[l].height/2)}),n.y=r+e[l].height/2)})}let iR={compose:function(t,e){iB(iz,"Series.BubbleLegend")&&(ij({legend:{bubbleLegend:ix}}),iE(t.prototype,"drawChartBox",iD),iS(e,"afterGetAllItems",iN),iS(e,"itemClick",iG))}};var iH=w(260),iW=/*#__PURE__*/w.n(iH);let{seriesTypes:{scatter:{prototype:{pointClass:iY}}}}=W(),{extend:iU}=T();class iF extends iY{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series;return o.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return iW().prototype.haloPath.call(this,e)}}iU(iF.prototype,{ttBelow:!1});let iZ=iF,{parse:i_}=j(),{composed:iK,noop:iq}=T(),{series:i$,seriesTypes:{column:{prototype:iJ},scatter:iQ}}=W(),{addEvent:i0,arrayMax:i1,arrayMin:i2,clamp:i6,extend:i3,isNumber:i8,merge:i7,pick:i9,pushUnique:i4}=T();function i5(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),r=0,a=t,n=t/o,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(i8(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;r=Math.min((e[i]-s)*n-o,r),a=Math.max((e[i]-s)*n+o,a)}}}}),l&&o>0&&!this.logarithmic&&(a-=t,n*=(t+Math.max(0,r)-Math.min(a,t))/t,[["min","userMin",r],["max","userMax",a]].forEach(t=>{void 0===i9(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function st(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,r=this.options.type;if((o?.length||"category"===r)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let r=t[e[o]],a=r.pos||0;(a>s||a{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(i9(e,o.zMin),o.zMin),i=Math.max(i9(i,o.zMax),o.zMax),t=!0)}}),t?(a={zMin:e,zMax:i},this.chart.bubbleZExtremes=a):a={zMin:0,zMax:0}}for(o=0,s=t.length;o0&&(p=(o-t)/h)}return n&&p>=0&&(p=Math.sqrt(p)),Math.ceil(i+p*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?i3(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=i$.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=i_(s.fill).setOpacity(i).get("rgba")),s}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let r=t[o],a=i?i[o]:0;"z"===this.zoneAxis&&(r.negative=(r.z||0)<(e.zThreshold||0)),i8(a)&&a>=s/2?(r.marker=i3(r.marker,{radius:a,width:2*a,height:2*a}),r.dlBox={x:r.plotX-a,y:r.plotY-a,width:2*a,height:2*a}):(r.shapeArgs=r.plotY=r.dlBox=void 0,r.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(i9(this.options.minSize,8)),s=Math.max(e(i9(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(i8);if(e.length){let i=i9(t.zMin,i6(i2(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=i9(t.zMax,i1(e));if(i8(i)&&i8(s))return{zMin:i,zMax:s}}}}se.defaultOptions=i7(iQ.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return i8(e)?t(e,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),i3(se.prototype,{alignDataLabel:iJ.alignDataLabel,applyZones:iq,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:iZ,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),i0(se,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),i0(se,"remove",t=>{delete t.target.chart.bubbleZExtremes}),W().registerSeriesType("bubble",se);let si=se,{seriesTypes:{map:{prototype:{pointClass:{prototype:ss}}}}}=W(),{extend:so}=T();class sr extends iZ{isValid(){return"number"==typeof this.z}}so(sr.prototype,{applyOptions:ss.applyOptions,getProjectedBounds:ss.getProjectedBounds});let{seriesTypes:{map:{prototype:sa},mappoint:{prototype:sn}}}=W(),{extend:sl,merge:sh}=T();class sp extends si{constructor(){super(...arguments),this.clearBounds=sa.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){sn.translate.call(this),this.getRadii(),this.translateBubble()}}sp.defaultOptions=sh(si.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),sl(sp.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:sa.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:sr,processData:sa.processData,projectPoint:sn.projectPoint,kdAxisArray:["plotX","plotY"],setData:sa.setData,setOptions:sa.setOptions,updateData:sa.updateData,useMapGeometry:!0,xyFromShape:!0}),W().registerSeriesType("mapbubble",sp);let{scatter:{prototype:{pointClass:sd}}}=W().seriesTypes,{clamp:sc,defined:su,extend:sm,pick:sg}=T();class sf extends sd{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,s=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,n=t.pointPlacementToXValue(),l=sg(this.pointPadding,e.pointPadding,0),h={x1:sc(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-n)),-o.len,2*o.len),x2:sc(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-n)),-o.len,2*o.len),y1:sc(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:sc(Math.round(r.translate(this.y+s,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],i=t[1],s=i+"1",n=i+"2",p=Math.abs(h[s]-h[n]),d=a&&a.lineWidth||0,c=Math.abs(h[s]+h[n])/2,u=a&&a[e];if(su(u)&&usM(parseFloat(t),parseInt(t,10)));return s[3]=255*sM(s[3],1),sx(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=sy.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class sB extends sC{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,s=e.marker||{};if(i){let{image:e,chart:i,xAxis:s,yAxis:o}=t,{reversed:r=!1,len:a}=s,{reversed:n=!1,len:l}=o,h={width:a,height:l};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=sI(t),{canvas:l,options:{colsize:p=1,rowsize:d=1},points:c,points:{length:u}}=t,m=i.colorAxis&&i.colorAxis[0];if(l&&a&&m){let{min:m,max:g}=s.getExtremes(),{min:f,max:b}=o.getExtremes(),y=g-m,x=b-f,M=Math.round(y/p/8*8),v=Math.round(x/d/8*8),[w,C]=[[M,M/y,r,"ceil"],[v,v/x,!n,"floor"]].map(([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t)),L=l.width=M+1,T=L*(l.height=v+1),P=(u-1)/T,A=new Uint8ClampedArray(4*T),k=(t,e)=>4*Math.ceil(L*C(e-f)+w(t-m));t.buildKDTree();for(let t=0;t{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:t,dataMax:e}=sv.prototype.getExtremes.call(this,this.getColumn("value"));return sk(t)&&(this.valueMin=t),sk(e)&&(this.valueMax=e),sv.prototype.getExtremes.call(this)}getValidPoints(t,e){return sv.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=sz(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,sL.ellipse=sL.circle,t.marker&&sk(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let s=t.options.marker||{},o=this.options.marker||{},r=o.states&&o.states[e]||{},a=s.states&&s.states[e]||{},n=(a.width||r.width||i.width||0)+(a.widthPlus||r.widthPlus||0),l=(a.height||r.height||i.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(i.x||0)+((i.width||0)-n)/2,y:(i.y||0)+((i.height||0)-l)/2,width:n,height:l}}return i}pointAttribs(t,e){let i=sv.prototype.pointAttribs.call(this,t,e),s=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},n=t&&t.options.borderColor||s.borderColor||a.borderColor||r.borderColor,l=t&&t.options.borderWidth||s.borderWidth||a.borderWidth||r.borderWidth||i["stroke-width"];if(i.stroke=t&&t.marker&&t.marker.lineColor||s.marker&&s.marker.lineColor||n||this.color,i["stroke-width"]=l,e&&"normal"!==e){let o=sj(s.states&&s.states[e],s.marker&&s.marker.states&&s.marker.states[e],t&&t.options.states&&t.options.states[e]||{});i.fill=o.color||j().parse(i.fill).brighten(o.brightness||0).get(),i.stroke=o.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e&&e.symbol||"rect",s=sL[i]?i:"rect",o=-1!==["circle","square"].indexOf(s);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),n=Math.min(r.y1,r.y2),l=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker&&e.marker.symbol||i||"").indexOf("url"),o){let t=Math.abs(l-h);a=Math.min(r.x1,r.x2)+(l"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),sT(sB,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),sP(sB.prototype,{axisTypes:tP.seriesMembers.axisTypes,colorKey:tP.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:tP.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:sf,specialGroup:"group",trackerGroups:tP.seriesMembers.trackerGroups,alignDataLabel:sw.prototype.alignDataLabel,colorAttribs:tP.seriesMembers.colorAttribs,getSymbol:sv.prototype.getSymbol}),tP.compose(sB),W().registerSeriesType("heatmap",sB);/** - * @license Highmaps JS v12.0.2 (2024-12-04) + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Series,t._Highcharts.Chart,t._Highcharts.SVGRenderer,t._Highcharts.Templating,t._Highcharts.Series.types.scatter,t._Highcharts.Point):"function"==typeof define&&define.amd?define("highcharts/modules/map",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Color,t.LegendSymbol,t.SeriesRegistry,t.SVGElement,t.Series,t.Chart,t.SVGRenderer,t.Templating,t.Series,["types"],["scatter"],t.Point)}):"object"==typeof exports?exports["highcharts/modules/map"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.LegendSymbol,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Series,t._Highcharts.Chart,t._Highcharts.SVGRenderer,t._Highcharts.Templating,t._Highcharts.Series.types.scatter,t._Highcharts.Point):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.LegendSymbol,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement,t.Highcharts.Series,t.Highcharts.Chart,t.Highcharts.SVGRenderer,t.Highcharts.Templating,t.Highcharts.Series.types.scatter,t.Highcharts.Point)}("undefined"==typeof window?this:window,(t,e,i,s,o,r,a,n,l,h,p,d)=>(()=>{"use strict";let c;var u,m,g,f,b,y,x,M={532:t=>{t.exports=e},960:t=>{t.exports=n},620:t=>{t.exports=i},500:t=>{t.exports=s},260:t=>{t.exports=d},28:t=>{t.exports=r},540:t=>{t.exports=l},632:t=>{t.exports=p},820:t=>{t.exports=a},512:t=>{t.exports=o},984:t=>{t.exports=h},944:e=>{e.exports=t}},v={};function w(t){var e=v[t];if(void 0!==e)return e.exports;var i=v[t]={exports:{}};return M[t](i,i.exports,w),i.exports}w.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return w.d(e,{a:e}),e},w.d=(t,e)=>{for(var i in e)w.o(e,i)&&!w.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},w.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var C={};w.d(C,{default:()=>sD});var T=w(944),L=w.n(T),P=w(532),A=w.n(P),k=w(620),j=w.n(k);let{parse:z}=j(),{addEvent:S,extend:I,merge:B,pick:E,splat:D}=L();!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=D(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,r;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))}))}),r=s.length;r--;)t.allItems.unshift(s[r])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function a(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function l(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let r=e.getNestedProperty(o),a=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==r?s.toColor(r,e):e.color||t.color);a&&e.color!==a&&(e.color=a,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function p(){this.elem.attr("fill",z(this.start).tweenTo(z(this.end),this.pos),void 0,!0)}function d(){this.elem.attr("stroke",z(this.start).tweenTo(z(this.end),this.pos),void 0,!0)}t.compose=function(t,c,u,m,g){let f=c.prototype,b=u.prototype,y=g.prototype;f.collectionsWithUpdate.includes("colorAxis")||(e=t,f.collectionsWithUpdate.push("colorAxis"),f.collectionsWithInit.colorAxis=[f.addColorAxis],S(c,"afterCreateAxes",i),function(t){let i=t.prototype.createAxis;t.prototype.createAxis=function(t,s){if("colorAxis"!==t)return i.apply(this,arguments);let o=new e(this,B(s.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),E(s.redraw,!0)&&this.redraw(s.animation),o}}(c),b.fillSetter=p,b.strokeSetter=d,S(m,"afterGetAllItems",s),S(m,"afterColorizeItem",o),S(m,"afterUpdate",r),I(y,{optionalAxis:"colorAxis",translateColors:h}),I(y.pointClass.prototype,{setVisible:l}),S(g,"afterTranslate",a,{order:1}),S(g,"bindAxes",n))},t.pointSetVisible=l}(u||(u={}));let V=u,{parse:O}=j(),{merge:N}=L();!function(t){t.initDataClasses=function(t){let e=this.chart,i=this.legendItem=this.legendItem||{},s=this.options,o=t.dataClasses||[],r,a,n=e.options.chart.colorCount,l=0,h;this.dataClasses=a=[],i.labels=[];for(let t=0,i=o.length;t=s)&&(void 0===o||t<=o)){r=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(i=this.normalizedValue(t),n=h.length;n--&&!(i>h[n][0]););s=h[n]||h[n+1],i=1-((o=h[n+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r}}(m||(m={}));let G=m;var X=w(500),R=w.n(X),H=w(512),W=w.n(H);let{defaultOptions:Y}=L(),{series:U}=W(),{defined:F,extend:Z,fireEvent:_,isArray:K,isNumber:q,merge:$,pick:J,relativeLength:Q}=L();Y.colorAxis=$(Y.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class tt extends A(){static compose(t,e,i,s){V.compose(tt,t,e,i,s)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},s=e.layout?"vertical"!==e.layout:"vertical"!==i.layout;this.side=e.side||s?2:1,this.reversed=e.reversed||!s,this.opposite=!s,super.init(t,e,"colorAxis"),this.userOptions=e,K(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=s,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=$(Y.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:i,height:s}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=i=+e.attr("width"),this.height=s=+e.attr("height"),this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-s,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?i:s)||tt.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let i=this.chart.legend;i.allItems.forEach(function(t){t instanceof tt&&t.drawLegendSymbol(i,t)}),i.render(),this.chart.getMargins(!0),this.chart.series.some(t=>t.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,i=e?1:0,s=e?0:1,o=t?[i,0,s,0]:[0,s,0,i];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},s=t.padding,o=t.options,r=this.options.labels,a=J(o.itemDistance,10),n=this.horiz,{width:l,height:h}=this.getSize(),p=J(o.labelPadding,n?16:30);this.setLegendColor(),i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(i.group)),i.symbol.attr({x:0,y:(t.baseline||0)-11,width:l,height:h}),i.labelWidth=l+s+(n?a:J(r.x,r.distance)+(this.maxLabelLength||0)),i.labelHeight=h+s+(n?p:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,i,s,o,r=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let a of(i=(o=t[r]).colorKey=J(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),s=o[i+"Min"]&&o[i+"Max"],[i,"value","y"]))if((e=o.getColumn(a)).length)break;if(s)o.minColorValue=o[i+"Min"],o.maxColorValue=o[i+"Max"];else{let t=U.prototype.getExtremes.call(o,e);o.minColorValue=t.dataMin,o.maxColorValue=t.dataMax}F(o.minColorValue)&&F(o.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,o.minColorValue),this.dataMax=Math.max(this.dataMax,o.maxColorValue)),s||U.prototype.applyExtremes.call(o)}}drawCrosshair(t,e){let i;let s=this.legendItem||{},o=e&&e.plotX,r=e&&e.plotY,a=this.pos,n=this.len;e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))a+n&&(i=a+n+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&s.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(s.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,s=this.top;return q(i)?this.horiz?[["M",i-4,s-6],["L",i+4,s-6],["L",i,s],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach(t=>{t.isDirtyData=!0}),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t;let e=this,i=e.chart,s=e.legendItem&&e.legendItem.labels||[],o=i.options.legend,r=J(o.valueDecimals,-1),a=J(o.valueSuffix,""),n=t=>e.series.reduce((e,i)=>(e.push(...i.points.filter(e=>e.dataClass===t)),e),[]);return s.length||e.dataClasses.forEach((o,l)=>{let h=o.from,p=o.to,{numberFormatter:d}=i,c=!0;t="",void 0===h?t="< ":void 0===p&&(t="> "),void 0!==h&&(t+=d(h,r)+a),void 0!==h&&void 0!==p&&(t+=" - "),void 0!==p&&(t+=d(p,r)+a),s.push(Z({chart:i,name:t,options:{},drawLegendSymbol:R().rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of n(l))e.setState(t)},setVisible:function(){this.visible=c=e.visible=!c;let t=[];for(let e of n(l))e.setVisible(c),e.hiddenInDataClass=!c,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,c),t.forEach(t=>{_(t,"afterDataClassLegendClick")})}},o))}),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:J(F(s)?Q(s,t.chartWidth):void 0,o?.symbolWidth,e?tt.defaultLegendLength:12),height:J(F(i)?Q(i,t.chartHeight):void 0,o?.symbolHeight,e?12:tt.defaultLegendLength)}}}tt.defaultLegendLength=200,tt.keepProps=["legendItem"],Z(tt.prototype,G),Array.prototype.push.apply(A().keepProps,tt.keepProps);let te=L();te.ColorAxis=te.ColorAxis||tt,te.ColorAxis.compose(te.Chart,te.Fx,te.Legend,te.Series);let ti={lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}},{defined:ts,extend:to,pick:tr,wrap:ta}=L();!function(t){let e,i=0;function s(t){let e=this.chart;t=this.normalize(t),e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(t.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,void 0,void 0,t.chartX,t.chartY)}function o(t){let s=this.chart,o=ts((t=this.normalize(t)).wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&clearTimeout(e),e=setTimeout(()=>{i=0},50)),i<10&&s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&s.mapView&&s.mapView.zoomBy(-((s.options.mapNavigation.mouseWheelSensitivity-1)*o),void 0,[t.chartX,t.chartY],!(1>Math.abs(o))&&void 0)}function r(t,e,i){let s=this.chart;if(e=t.call(this,e,i),s&&s.mapView){let t=s.mapView.pixelsToLonLat({x:e.chartX-s.plotLeft,y:e.chartY-s.plotTop});t&&to(e,t)}return e}function a(t){let e=this.chart.options.mapNavigation;e&&tr(e.enableTouchZoom,e.enabled)&&(this.chart.zooming.pinchType="xy"),t.apply(this,[].slice.call(arguments,1))}t.compose=function(t){let e=t.prototype;e.onContainerDblClick||(to(e,{onContainerDblClick:s,onContainerMouseWheel:o}),ta(e,"normalize",r),ta(e,"zoomOption",a))}}(g||(g={}));let tn=g;function tl(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxY=e-t,o.brBoxHeight=s+t}return c.roundedRect(t,e,i,s,o)}function th(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxHeight=s+t}return c.roundedRect(t,e,i,s,o)}let tp={compose:function(t){(c=t.prototype.symbols).bottombutton=tl,c.topbutton=th}},{setOptions:td}=L(),{composed:tc}=L(),{addEvent:tu,extend:tm,merge:tg,objectEach:tf,pick:tb,pushUnique:ty}=L();function tx(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}class tM{static compose(t,e,i){tn.compose(e),tp.compose(i),ty(tc,"Map.Navigation")&&(tu(t,"beforeRender",function(){this.mapNavigation=new tM(this),this.mapNavigation.update()}),td(ti))}constructor(t){this.chart=t,this.navButtons=[]}update(t){let e=this,i=e.chart,s=e.navButtons,o=function(t){this.handler.call(i,t),tx(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=tg(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();if(!i.renderer.forExport&&tb(r.enableButtons,r.enabled)){e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),tf(r.buttons,(t,a)=>{let n={padding:(t=tg(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&(tm(n,t.theme),n.style=tg(t.theme.style,t.style));let{text:l,width:h=0,height:p=0,padding:d=0}=t,c=i.renderer.button("+"!==l&&"-"!==l&&l||"",0,0,o,n,void 0,void 0,void 0,"zoomIn"===a?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+({zoomIn:"zoom-in",zoomOut:"zoom-out"})[a]).attr({width:h,height:p,title:i.options.lang[a],zIndex:5}).add(e.navButtonsGroup);if("+"===l||"-"===l){let e=h+1,s=[["M",d+3,d+p/2],["L",d+e-3,d+p/2]];"+"===l&&s.push(["M",d+e/2,d+3],["L",d+e/2,d+p-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(c)}if(c.handler=t.onclick,tu(c.element,"dblclick",tx),s.push(c),tm(t,{width:c.width,height:2*(c.height||0)}),i.hasLoaded)c.align(t,!1,t.alignTo);else{let e=tu(i,"load",()=>{c.element&&c.align(t,!1,t.alignTo),e()})}});let t=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y);i.hasLoaded||tu(i,"render",function(){let s=i.exportingGroup?.getBBox();if(s){let i=e.navButtonsGroup.getBBox();if(t(s,i)){let t=-i.y-i.height+s.y-5,o=s.y+s.height-i.y+5,a=r.buttonOptions&&r.buttonOptions.verticalAlign;e.navButtonsGroup.attr({translateY:"bottom"===a?t:o})}}})}this.updateEvents(r)}updateEvents(t){let e=this.chart;tb(t.enableDoubleClickZoom,t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||tu(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),tb(t.enableMouseWheelZoom,t.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||tu(e.container,"wheel",function(t){if(!e.pointer.inClass(t.target,"highcharts-no-mousewheel")){let i=e.mapView?.zoom;e.pointer.onContainerMouseWheel(t),i!==e.mapView?.zoom&&tx(t)}return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}var tv=w(28),tw=w.n(tv);let{column:{prototype:tC}}=W().seriesTypes,{addEvent:tT,defined:tL}=L();!function(t){function e(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(tw())(i,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),t?.state==="hover"?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${i.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}t.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},t.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return tL(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:tC.pointAttribs},t.compose=function(t){return tT(t.prototype.pointClass,"afterSetState",e),t}}(f||(f={}));let tP=f;var tA=w(820),tk=w.n(tA);let{deg2rad:tj}=L(),{fireEvent:tz,isNumber:tS,pick:tI,relativeLength:tB}=L();!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,l,h=t.size,p=t.innerSize||0,d,c;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof p&&(p=parseFloat(p));let u=[tI(r?.[0],"50%"),tI(r?.[1],"50%"),tI(h&&h<0?void 0:t.size,"100%"),tI(p&&p<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof tk()||(u[3]=0),d=0;d<4;++d)c=u[d],l=d<2||2===d&&/%$/.test(c),u[d]=tB(c,[s,o,a,u[2]][d])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),tS(n)&&2*n0&&(u[3]=u[2]-2*n),tz(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=tS(t)?t:0,s=tS(e)&&e>i&&e-i<360?e:i+360;return{start:tj*(i+-90),end:tj*(s+-90)}}}(b||(b={}));let tE=b;var tD=w(960),tV=w.n(tD),tO=w(540),tN=w.n(tO);let{getOptions:tG}=L(),{isNumber:tX,merge:tR,pick:tH}=L();class tW extends tV(){init(t,e){let i=tG().credits,s=tR({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:tH(i.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:tH(i.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&(tX(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,tX(e)&&tX(i)?this.mapView.projection.inverse([e,i]):void 0,tX(s)&&tX(o)?[s,o]:void 0))}update(t){t.chart&&"map"in t.chart&&this.mapView?.recommendMapView(this,[t.chart.map,...(this.options.series||[]).map(t=>t.mapData)],!0),super.update.apply(this,arguments)}}!function(t){t.maps={},t.mapChart=function(e,i,s){return new t(e,i,s)},t.splitPath=function(t){let e;return e="string"==typeof t?(t=t.replace(/([A-Z])/gi," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(t=>/[A-Z]/i.test(t)?t:parseFloat(t)):t,tN().prototype.pathToSegments(e)}}(tW||(tW={}));let tY=tW,tU={boundsFromPath:function(t){let e=-Number.MAX_VALUE,i=Number.MAX_VALUE,s=-Number.MAX_VALUE,o=Number.MAX_VALUE,r;if(t.forEach(t=>{let a=t[t.length-2],n=t[t.length-1];"number"==typeof a&&"number"==typeof n&&(i=Math.min(i,a),e=Math.max(e,a),o=Math.min(o,n),s=Math.max(s,n),r=!0)}),r)return{x1:i,y1:o,x2:e,y2:s}}},{boundsFromPath:tF}=tU,tZ=W().seriesTypes.scatter.prototype.pointClass,{extend:t_,isNumber:tK,pick:tq}=L();class t$ extends tZ{static getProjectedPath(t,e){return t.projectedPath||(e&&t.geometry?(e.hasCoordinates=!0,t.projectedPath=e.path(t.geometry)):t.projectedPath=t.path),t.projectedPath||[]}applyOptions(t,e){let i=this.series,s=super.applyOptions(t,e),o=i.joinBy;if(i.mapData&&i.mapMap){let t=o[1],e=super.getNestedProperty(t),r=void 0!==e&&i.mapMap[e];r?t_(s,{...r,name:s.name??r.name}):-1!==i.pointArrayMap.indexOf("value")&&(s.value=s.value||null)}return s}getProjectedBounds(t){let e=tF(t$.getProjectedPath(this,t)),i=this.properties,s=this.series.chart.mapView;if(e){let o=i&&i["hc-middle-lon"],r=i&&i["hc-middle-lat"];if(s&&tK(o)&&tK(r)){let i=t.forward([o,r]);e.midX=i[0],e.midY=i[1]}else{let t=i&&i["hc-middle-x"],s=i&&i["hc-middle-y"];e.midX=e.x1+(e.x2-e.x1)*tq(this.middleX,tK(t)?t:.5);let o=tq(this.middleY,tK(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){L().clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,t):this.series.onMouseOut()}setVisible(t){this.visible=this.options.visible=!!t,this.dataLabel&&this.dataLabel[t?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(t){let e=this.series.chart,i=e.mapView,s=this.bounds;if(i&&s){let o=tK(this.insetIndex)&&i.insets[this.insetIndex];if(o){let t=o.projectedUnitsToPixels({x:s.x1,y:s.y1}),e=o.projectedUnitsToPixels({x:s.x2,y:s.y2}),r=i.pixelsToProjectedUnits({x:t.x,y:t.y}),a=i.pixelsToProjectedUnits({x:e.x,y:e.y});s={x1:r.x,y1:r.y,x2:a.x,y2:a.y}}i.fitToBounds(s,void 0,!1),this.series.isDirty=!0,e.redraw(t)}}}t_(t$.prototype,{dataLabelOnNull:tP.pointMembers.dataLabelOnNull,moveToTopOnHover:tP.pointMembers.moveToTopOnHover,isValid:tP.pointMembers.isValid});let{isNumber:tJ}=L(),tQ={center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}};var t0=w(984),t1=w.n(t0);let{win:t2}=L(),{format:t6}=t1(),{error:t3,extend:t8,merge:t7,wrap:t9}=L();!function(t){function e(t){return this.mapView&&this.mapView.lonLatToProjectedUnits(t)}function i(t){return this.mapView&&this.mapView.projectedUnitsToLonLat(t)}function s(t,e){let i=this.options.chart.proj4||t2.proj4;if(!i){t3(21,!1,this);return}let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:p=0}=e,d=i(e.crs,[t.lon,t.lat]),c=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),m=e.rotation?[d[0]*c+d[1]*u,-d[0]*u+d[1]*c]:d;return{x:((m[0]-n)*a+l)*r+s,y:-(((h-m[1])*a+p)*r-o)}}function o(t,e){let i=this.options.chart.proj4||t2.proj4;if(!i){t3(21,!1,this);return}if(null===t.y)return;let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:a=1,xoffset:n=0,xpan:l=0,yoffset:h=0,ypan:p=0}=e,d={x:((t.x-s)/r-l)/a+n,y:((t.y-o)/r+p)/a+h},c=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),m=i(e.crs,"WGS84",e.rotation?{x:d.x*c+-(d.y*u),y:d.x*u+d.y*c}:d);return{lat:m.y,lon:m.x}}function r(t,e){e||(e=Object.keys(t.objects)[0]);let i=t.objects[e];if(i["hc-decoded-geojson"]&&i["hc-decoded-geojson"].title===t.title)return i["hc-decoded-geojson"];let s=t.arcs;if(t.transform){let e,i,o;let r=t.arcs,{scale:a,translate:n}=t.transform;s=[];for(let t=0,l=r.length;t"number"==typeof t[0]?t.reduce((t,e,i)=>{let o=e<0?s[~e]:s[e];return e<0?(o=o.slice(0,0===i?o.length:o.length-1)).reverse():i&&(o=o.slice(1)),t.concat(o)},[]):t.map(o),r=i.geometries,a=[];for(let t=0,e=r.length;t(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=h>e&&t<(l-s)*(e-n)/(h-n)+s&&(a=!a)}return a}}(x||(x={}));let t5=x;function et(t,e,i=!0){let s=e[e.length-1],o,r,a,n=t;for(let t=0;t(e[1]-t[1])*(i[0]-t[0])}function ei(t,e,i,s){let o=[t[0]-e[0],t[1]-e[1]],r=[i[0]-s[0],i[1]-s[1]],a=t[0]*e[1]-t[1]*e[0],n=i[0]*s[1]-i[1]*s[0],l=1/(o[0]*r[1]-o[1]*r[0]),h=[(a*r[0]-n*o[0])*l,(a*r[1]-n*o[1])*l];return h.isIntersection=!0,h}let es=Math.sign||(t=>0===t?0:t>0?1:-1),eo=Math.PI/180,er=Math.PI/2,ea=t=>Math.tan((er+t)/2),en=class{constructor(t){let e=(t.parallels||[]).map(t=>t*eo),i=e[0]||0,s=e[1]??i,o=Math.cos(i);"object"==typeof t.projectedBounds&&(this.projectedBounds=t.projectedBounds);let r=i===s?Math.sin(i):Math.log(o/Math.cos(s))/Math.log(ea(s)/ea(i));1e-10>Math.abs(r)&&(r=1e-10*(es(r)||1)),this.n=r,this.c=o*Math.pow(ea(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*eo,r=t[1]*eo;e>0?r<-er+1e-6&&(r=-er+1e-6):r>er-1e-6&&(r=er-1e-6);let a=e/Math.pow(ea(r),i),n=a*Math.sin(i*o)*63.78137,l=(e-a*Math.cos(i*o))*63.78137,h=[n,l];return s&&(ns.x2||ls.y2)&&(h.outside=!0),h}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=es(i)*Math.sqrt(s*s+o*o),a=Math.atan2(s,Math.abs(o))*es(o);return o*i<0&&(a-=Math.PI*es(s)*es(o)),[a/i/eo,(2*Math.atan(Math.pow(e/r,1/i))-er)/eo]}},el=Math.sqrt(3)/2,eh=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(t){let e=Math.PI/180,i=Math.asin(el*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(el*(1.340264+-.24331799999999998*s+o*(.0062510000000000005+.034164*s))),74.03120656864502*i*(1.340264+-.081106*s+o*(893e-6+.003796*s))]}inverse(t){let e=t[0]/74.03120656864502,i=t[1]/74.03120656864502,s=180/Math.PI,o=i,r,a,n,l;for(let t=0;t<12&&(a=(r=o*o)*r*r,n=o*(1.340264+-.081106*r+a*(893e-6+.003796*r))-i,o-=l=n/(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r)),!(1e-9>Math.abs(l)));++t);a=(r=o*o)*r*r;let h=s*el*e*(1.340264+-.24331799999999998*r+a*(.0062510000000000005+.034164*r))/Math.cos(o),p=s*Math.asin(Math.sin(o)/el);return Math.abs(h)>180?[NaN,NaN]:[h,p]}},ep=Math.PI/4,ed=Math.PI/180,ec=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*ed*63.78137,79.7267125*Math.log(Math.tan(ep+.4*t[1]*ed))]}inverse(t){return[t[0]/63.78137/ed,2.5*(Math.atan(Math.exp(.8*(t[1]/63.78137)))-ep)/ed]}},eu=Math.PI/180,em=class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(t){let e=t[0],i=t[1]*eu,s=[Math.cos(i)*Math.sin(e*eu)*63.78460826781007,63.78460826781007*Math.sin(i)];return(e<-90||e>90)&&(s.outside=!0),s}inverse(t){let e=t[0]/63.78460826781007,i=t[1]/63.78460826781007,s=Math.sqrt(e*e+i*i),o=Math.asin(s),r=Math.sin(o);return[Math.atan2(e*r,s*Math.cos(o))/eu,Math.asin(s&&i*r/s)/eu]}},eg=Math.PI/180,ef=class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(t){let e=Math.sin(t[1]*eg),i=[63.78137*t[0]*eg,63.78137*Math.log((1+e)/(1-e))/2];return Math.abs(t[1])>this.maxLatitude&&(i.outside=!0),i}inverse(t){return[t[0]/(63.78137*eg),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/eg]}},{clipLineString:eb,clipPolygon:ey}={clipLineString:function(t,e){let i=[],s=et(t,e,!1);for(let t=1;t(t<-180&&(t+=360),t>180&&(t-=360),t),eC=t=>(1-Math.cos(t))/2,eT=(t,e)=>{let i=Math.cos,s=t[1]*ev,o=t[0]*ev,r=e[1]*ev,a=e[0]*ev;return eC(r-s)+i(s)*i(r)*eC(a-o)};class eL{static add(t,e){eL.registry[t]=e}static distance(t,e){let{atan2:i,sqrt:s}=Math,o=eT(t,e);return 6371e3*(2*i(s(o),s(1-o)))}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:a,sqrt:n}=Math,l=eL.distance,h=t[1]*ev,p=t[0]*ev,d=e[1]*ev,c=e[0]*ev,u=r(h)*r(p),m=r(d)*r(c),g=r(h)*a(p),f=r(d)*a(c),b=a(h),y=a(d),x=l(t,e),M=x/6371e3,v=a(M),w=Math.round(x/s),C=[];if(i&&C.push(t),w>1){let t=1/w;for(let e=t;e<.999;e+=t){let t=a((1-e)*M)/v,i=a(e*M)/v,s=t*u+i*m,r=t*g+i*f,l=o(t*b+i*y,n(s*s+r*r)),h=o(r,s);C.push([h/ev,l/ev])}}return i&&C.push(e),C}static insertGeodesics(t){let e=t.length-1;for(;e--;)if(Math.max(Math.abs(t[e][0]-t[e+1][0]),Math.abs(t[e][1]-t[e+1][1]))>10){let i=eL.geodesic(t[e],t[e+1]);i.length&&t.splice(e+1,0,...i)}}static toString(t){let{name:e,rotation:i}=t||{};return[e,i&&i.join(",")].join(";")}constructor(t={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=t;let{name:e,projectedBounds:i,rotation:s}=t;this.rotator=s?this.getRotator(s):void 0;let o=e?eL.registry[e]:void 0;o&&(this.def=new o(t));let{def:r,rotator:a}=this;r&&(this.maxLatitude=r.maxLatitude||90,this.hasGeoProjection=!0),a&&r?(this.forward=t=>r.forward(a.forward(t)),this.inverse=t=>a.inverse(r.inverse(t))):r?(this.forward=t=>r.forward(t),this.inverse=t=>r.inverse(t)):a&&(this.forward=a.forward,this.inverse=a.inverse),this.bounds="world"===i?r&&r.bounds:i}lineIntersectsBounds(t){let{x1:e,x2:i,y1:s,y2:o}=this.bounds||{},r=(t,e,i)=>{let[s,o]=t,r=e?0:1;if("number"==typeof i&&s[e]>=i!=o[e]>=i){let t=(i-s[e])/(o[e]-s[e]),a=s[r]+t*(o[r]-s[r]);return e?[a,i]:[i,a]}},a,n=t[0];return(a=r(t,0,e))?(n=a,t[1]=a):(a=r(t,0,i))&&(n=a,t[1]=a),(a=r(t,1,s))?n=a:(a=r(t,1,o))&&(n=a),n}getRotator(t){let e=t[0]*ev,i=(t[1]||0)*ev,s=(t[2]||0)*ev,o=Math.cos(i),r=Math.sin(i),a=Math.cos(s),n=Math.sin(s);if(0!==e||0!==i||0!==s)return{forward:t=>{let i=t[0]*ev+e,s=t[1]*ev,l=Math.cos(s),h=Math.cos(i)*l,p=Math.sin(i)*l,d=Math.sin(s),c=d*o+h*r;return[Math.atan2(p*a-c*n,h*o-d*r)/ev,Math.asin(c*a+p*n)/ev]},inverse:t=>{let i=t[0]*ev,s=t[1]*ev,l=Math.cos(s),h=Math.cos(i)*l,p=Math.sin(i)*l,d=Math.sin(s),c=d*a-p*n;return[(Math.atan2(p*a+d*n,h*o+c*r)-e)/ev,Math.asin(c*o-h*r)/ev]}}}forward(t){return t}inverse(t){return t}cutOnAntimeridian(t,e){let i;let s=[],o=[t];for(let i=0,o=t.length;i90)&&(n<-90||n>90)&&a>0!=n>0){let t=ex((180-(a+360)%360)/((n+360)%360-(a+360)%360),0,1),e=r[1]+t*(o[1]-r[1]);s.push({i,lat:e,direction:a<0?1:-1,previousLonLat:r,lonLat:o})}}if(s.length){if(e){s.length%2==1&&(i=s.slice().sort((t,e)=>Math.abs(e.lat)-Math.abs(t.lat))[0],eM(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=ew(180+1e-6*s[e].direction),a=ew(180-1e-6*s[e].direction),n=t.splice(i,s[e+1].i-i,...eL.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));n.push(...eL.geodesic([a,s[e+1].lat],[a,s[e].lat],!0)),o.push(n),e-=2}if(i)for(let t=0;t-1){let t=(s<0?-1:1)*this.maxLatitude,o=ew(180+1e-6*e),n=ew(180-1e-6*e),l=eL.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)l.push([i,t]);l.push(...eL.geodesic([n,t],[n,i.lat],!0)),r.splice(a,0,...l);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[ew(180+1e-6*s[e].direction),s[e].lat]);r.unshift([ew(180-1e-6*s[e].direction),s[e].lat]),o.push(r)}}}return o}path(t){let e;let{bounds:i,def:s,rotator:o}=this,r=[],a="Polygon"===t.type||"MultiPolygon"===t.type,n=this.hasGeoProjection,l=!s||!1!==s.antimeridianCutting,h=l?o:void 0,p=l&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let d=t=>{let s=t.map(t=>{if(l){h&&(t=h.forward(t));let e=t[0];1e-6>Math.abs(e-180)&&(e=e<180?179.999999:180.000001),t=[e,t[1]]}return t}),o=[s];n&&(eL.insertGeodesics(s),l&&(o=this.cutOnAntimeridian(s,a))),o.forEach(t=>{let s,o;if(t.length<2)return;let h=!1,d=!1,c=t=>{h?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),h=!0)},u=!1,m=!1,g=t.map(t=>{let e=p.forward(t);return e.outside?u=!0:m=!0,e[1]===1/0?e[1]=1e10:e[1]===-1/0&&(e[1]=-1e10),e});if(l){if(a&&g.push(g[0]),u){if(!m)return;if(e){if(a)g=ey(g,e);else if(i){eb(g,e).forEach(t=>{h=!1,t.forEach(c)});return}}}g.forEach(c)}else for(let e=0;ec(p.forward(t))):h=!1),c(r),o=i,d=!1)}})};return"LineString"===t.type?d(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach(t=>d(t)):"Polygon"===t.type?(t.coordinates.forEach(t=>d(t)),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach(t=>{t.forEach(t=>d(t))}),r.length&&r.push(["Z"])),r}}eL.registry={EqualEarth:eh,LambertConformalConic:en,Miller:ec,Orthographic:em,WebMercator:ef};let{composed:eP}=L(),{pointInPolygon:eA}=t5,{topo2geo:ek}=t4,{boundsFromPath:ej}=tU,{addEvent:ez,clamp:eS,crisp:eI,fireEvent:eB,isArray:eE,isNumber:eD,isObject:eV,isString:eO,merge:eN,pick:eG,pushUnique:eX,relativeLength:eR}=L(),eH={};function eW(t,e){let{width:i,height:s}=e;return Math.log(400.979322/Math.max((t.x2-t.x1)/(i/256),(t.y2-t.y1)/(s/256)))/Math.log(2)}function eY(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class eU{static compose(t){eX(eP,"MapView")&&(eH=t.maps,ez(t,"afterInit",function(){this.mapView=new eU(this,this.options.mapView)},{order:0}),ez(t,"addSeriesAsDrilldown",eY),ez(t,"afterDrillUp",eY))}static compositeBounds(t){if(t.length)return t.slice(1).reduce((t,e)=>(t.x1=Math.min(t.x1,e.x1),t.y1=Math.min(t.y1,e.y1),t.x2=Math.max(t.x2,e.x2),t.y2=Math.max(t.y2,e.y2),t),eN(t[0]))}static mergeInsets(t,e){let i=t=>{let e={};return t.forEach((t,i)=>{e[t&&t.id||`i${i}`]=t}),e},s=eN(i(t),i(e));return Object.keys(s).map(t=>s[t])}constructor(t,e){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof eF||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map(t=>t.mapData)]),this.userOptions=e||{};let i=eN(tQ,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=eU.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new eL(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push(ez(t,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&eD(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&eN(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach(e=>{let i=new eF(this,eN(t.insetOptions,e));this.insets.push(i)})}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=eG(e,t?0:this.options.padding),a=this.getField(!1),n=eE(r)?r:[r,r,r,r];this.padding=[eR(n[0],a.height),eR(n[1],a.width),eR(n[2],a.height),eR(n[3],a.width)],this.playingField=this.getField();let l=eW(o,this.playingField);t||(this.minZoom=l);let h=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(h,l,i,s)}}getField(t=!0){let e=t?this.padding:[0,0,0,0];return{x:e[3],y:e[0],width:this.chart.plotWidth-e[1]-e[3],height:this.chart.plotHeight-e[0]-e[2]}}getGeoMap(t){if(eO(t))return eH[t]&&"Topology"===eH[t].type?ek(eH[t]):eH[t];if(eV(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return ek(t)}}getMapBBox(){let t=this.getProjectedBounds(),e=this.getScale();if(t){let i=this.padding,s=this.projectedUnitsToPixels({x:t.x1,y:t.y2});return{width:(t.x2-t.x1)*e+i[1]+i[3],height:(t.y2-t.y1)*e+i[0]+i[2],x:s.x-i[3],y:s.y-i[0]}}}getProjectedBounds(){let t=this.projection,e=this.chart.series.reduce((t,e)=>{let i=e.getProjectedBounds&&e.getProjectedBounds();return i&&!1!==e.options.affectsMapView&&t.push(i),t},[]),i=this.options.fitToGeometry;if(i){if(!this.fitToGeometryCache){if("MultiPoint"===i.type){let e=i.coordinates.map(e=>t.forward(e)),s=e.map(t=>t[0]),o=e.map(t=>t[1]);this.fitToGeometryCache={x1:Math.min.apply(0,s),x2:Math.max.apply(0,s),y1:Math.min.apply(0,o),y2:Math.max.apply(0,o)}}else this.fitToGeometryCache=ej(t.path(i))}return this.fitToGeometryCache}return this.projection.bounds||eU.compositeBounds(e)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:t,y:e,width:i,height:s}=this.playingField,o=this.projection.forward(this.center),r=this.projection.hasCoordinates?-1:1,a=this.getScale(),n=a*r,l=t+i/2-o[0]*a,h=e+s/2-o[1]*n;return{scaleX:a,scaleY:n,translateX:l,translateY:h}}lonLatToPixels(t){let e=this.lonLatToProjectedUnits(t);if(e)return this.projectedUnitsToPixels(e)}lonLatToProjectedUnits(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone){let o=e.transformFromLatLon(t,i[s]);if(o&&eA(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&eA({x:t.lon,y:t.lat},e.options.geoBounds.coordinates[0])){let i=e.projection.forward([t.lon,t.lat]),s=e.projectedUnitsToPixels({x:i[0],y:i[1]});return this.pixelsToProjectedUnits(s)}let s=this.projection.forward([t.lon,t.lat]);if(!s.outside)return{x:s[0],y:s[1]}}projectedUnitsToLonLat(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone&&eA(t,i[s].hitZone.coordinates[0]))return e.transformToLatLon(t,i[s]);return e.transformToLatLon(t,i.default)}let s=this.projectedUnitsToPixels(t);for(let t of this.insets)if(t.hitZone&&eA(s,t.hitZone.coordinates[0])){let e=t.pixelsToProjectedUnits(s),i=t.projection.inverse([e.x,e.y]);return{lon:i[0],lat:i[1]}}let o=this.projection.inverse([t.x,t.y]);return{lon:o[0],lat:o[1]}}recommendMapView(t,e,i=!1){this.recommendedMapView={};let s=e.map(t=>this.getGeoMap(t)),o=[];s.forEach(t=>{if(t&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=t["hc-recommended-mapview"]||{}),t.bbox)){let[e,i,s,r]=t.bbox;o.push({x1:e,y1:i,x2:s,y2:r})}});let r=o.length&&eU.compositeBounds(o);eB(this,"onRecommendMapView",{geoBounds:r,chart:t},function(){if(r&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:t,y1:e,x2:i,y2:s}=r;this.recommendedMapView.projection=i-t>180&&s-e>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[e,s],rotation:[-(t+i)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=s[0],i&&t.hasRendered&&!t.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(t){this.chart.series.forEach(t=>{t.useMapGeometry&&(t.isDirty=!0)}),this.chart.redraw(t)}setView(t,e,i=!0,s){t&&(this.center=t),"number"==typeof e&&("number"==typeof this.minZoom&&(e=Math.max(e,this.minZoom)),"number"==typeof this.options.maxZoom&&(e=Math.min(e,this.options.maxZoom)),eD(e)&&(this.zoom=e));let o=this.getProjectedBounds();if(o){let t=this.projection.forward(this.center),{x:e,y:i,width:s,height:r}=this.playingField,a=this.getScale(),n=this.projectedUnitsToPixels({x:o.x1,y:o.y1}),l=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),h=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some(t=>t.isDrilling)){let o=n.x,p=l.y,d=l.x,c=n.y;d-oe+s&&o>e&&(t[0]+=Math.min(d-s-e,o-e)/a),c-pi+r&&p>i&&(t[1]-=Math.min(c-r-i,p-i)/a),this.center=this.projection.inverse(t)}this.insets.forEach(t=>{t.options.field&&(t.hitZone=t.getHitZone(),t.playingField=t.getField())}),this.render()}eB(this,"afterSetView"),i&&this.redraw(s)}projectedUnitsToPixels(t){let e=this.getScale(),i=this.projection.forward(this.center),s=this.playingField,o=s.x+s.width/2,r=s.y+s.height/2;return{x:o-e*(i[0]-t.x),y:r+e*(i[1]-t.y)}}pixelsToLonLat(t){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(t))}pixelsToProjectedUnits(t){let{x:e,y:i}=t,s=this.getScale(),o=this.projection.forward(this.center),r=this.playingField,a=r.x+r.width/2,n=r.y+r.height/2;return{x:o[0]+(e-a)/s,y:o[1]-(i-n)/s}}setUpEvents(){let t,e,i;let{chart:s}=this,o=o=>{let{lastTouches:r,pinchDown:a}=s.pointer,n=this.projection,l=o.touches,{mouseDownX:h,mouseDownY:p}=s,d=0;if(a?.length===1?(h=a[0].chartX,p=a[0].chartY):a?.length===2&&(h=(a[0].chartX+a[1].chartX)/2,p=(a[0].chartY+a[1].chartY)/2),l?.length===2&&r&&(d=Math.log(Math.sqrt(Math.pow(r[0].chartX-r[1].chartX,2)+Math.pow(r[0].chartY-r[1].chartY,2))/Math.sqrt(Math.pow(l[0].chartX-l[1].chartX,2)+Math.pow(l[0].chartY-l[1].chartY,2)))/Math.log(.5)),eD(h)&&eD(p)){let r=`${h},${p}`,{chartX:a,chartY:c}=o.originalEvent;l?.length===2&&(a=(l[0].chartX+l[1].chartX)/2,c=(l[0].chartY+l[1].chartY)/2),r!==e&&(e=r,t=this.projection.forward(this.center),i=(this.projection.options.rotation||[0,0]).slice());let u=n.def&&n.def.bounds,m=u&&eW(u,this.playingField)||-1/0;if("Orthographic"===n.options.name&&2>(l?.length||0)&&(this.minZoom||1/0)<1.3*m){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(h-a)*t-i[0],o=eS(-i[1]-(p-c)*t,-80,80),r=this.zoom;this.update({projection:{rotation:[-e,-o]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=r,s.redraw(!1)}}else if(eD(a)&&eD(c)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(h-a)/e,t[1]-(p-c)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(d,s,void 0,!1)}o.preventDefault()}};ez(s,"pan",o),ez(s,"touchpan",o),ez(s,"selection",t=>{if(t.resetSelection)this.zoomBy();else{let e=t.x-s.plotLeft,i=t.y-s.plotTop,{y:o,x:r}=this.pixelsToProjectedUnits({x:e,y:i}),{y:a,x:n}=this.pixelsToProjectedUnits({x:e+t.width,y:i+t.height});this.fitToBounds({x1:r,y1:o,x2:n,y2:a},void 0,!0,!t.originalEvent.touches&&void 0),/^touch/.test(t.originalEvent.type)||s.showResetZoom(),t.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(t,e=!0,i){let s=t.projection,o=s&&eL.toString(s)!==eL.toString(this.options.projection),r=!1;eN(!0,this.userOptions,t),eN(!0,this.options,t),"insets"in t&&(this.insets.forEach(t=>t.destroy()),this.insets.length=0,r=!0),(o||"fitToGeometry"in t)&&delete this.fitToGeometryCache,(o||r)&&(this.chart.series.forEach(t=>{let e=t.transformGroups;if(t.clearBounds&&t.clearBounds(),t.isDirty=!0,t.isDirtyData=!0,r&&e)for(;e.length>1;){let t=e.pop();t&&t.destroy()}}),o&&(this.projection=new eL(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!eD(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||eD(t.zoom)?this.setView(this.options.center,t.zoom,!1):"fitToGeometry"in t&&this.fitToBounds(void 0,void 0,!1),e&&this.chart.redraw(i)}zoomBy(t,e,i,s){let o=this.chart,r=this.projection.forward(this.center);if("number"==typeof t){let a,n,l;let h=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),a=t-o.plotLeft-o.plotWidth/2,h=e-o.plotTop-o.plotHeight/2;n=r[0]+a/s,l=r[1]+h/s}if("number"==typeof n&&"number"==typeof l){let t=1-Math.pow(2,this.zoom)/Math.pow(2,h),e=r[0]-n,i=r[1]-l;r[0]-=e*t,r[1]+=i*t,a=this.projection.inverse(r)}this.setView(e||a,h,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class eF extends eU{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=eN({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){let e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=ej(e),this.geoBoundsProjectedPolygon=e.map(t=>[t[1]||0,t[2]||0])}}getField(t=!0){let e=this.hitZone;if(e){let i=t?this.padding:[0,0,0,0],s=e.coordinates[0],o=s.map(t=>t[0]),r=s.map(t=>t[1]),a=Math.min.apply(0,o)+i[3],n=Math.max.apply(0,o)-i[1],l=Math.min.apply(0,r)+i[0],h=Math.max.apply(0,r)-i[2];if(eD(a)&&eD(l))return{x:a,y:l,width:n-a,height:h-l}}return super.getField.call(this,t)}getHitZone(){let{chart:t,mapView:e,options:i}=this,{coordinates:s}=i.field||{};if(s){let o=s[0];if("percent"===i.units){let s="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||eN(t.plotBox,{x:0,y:0});o=o.map(t=>[eR(`${t[0]}%`,s.width,s.x),eR(`${t[1]}%`,s.height,s.y)])}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return eU.compositeBounds(this.allBounds)}isInside(t){let{geoBoundsProjectedBox:e,geoBoundsProjectedPolygon:i}=this;return!!(e&&t.x>=e.x1&&t.x<=e.x2&&t.y>=e.y1&&t.y<=e.y2&&i&&eA(t,i))}render(){let{chart:t,mapView:e,options:i}=this,s=i.borderPath||i.field;if(s&&e.group){let o=!0;this.border||(this.border=t.renderer.path().addClass("highcharts-mapview-inset-border").add(e.group),o=!1),t.styledMode||this.border.attr({stroke:i.borderColor,"stroke-width":i.borderWidth});let r=this.border.strokeWidth(),a="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||e.playingField,n=(s.coordinates||[]).reduce((e,s)=>s.reduce((e,s,o)=>{let[n,l]=s;return"percent"===i.units&&(n=t.plotLeft+eR(`${n}%`,a.width,a.x),l=t.plotTop+eR(`${l}%`,a.height,a.y)),n=eI(n,r),l=eI(l,r),e.push(0===o?["M",n,l]:["L",n,l]),e},e),[]);this.border[o?"animate":"attr"]({d:n})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(t=>t())}setUpEvents(){}}let{animObject:eZ,stop:e_}=L(),{noop:eK}=L(),{splitPath:eq}=tY,{column:e$,scatter:eJ}=W().seriesTypes,{extend:eQ,find:e0,fireEvent:e1,getNestedProperty:e2,isArray:e6,defined:e3,isNumber:e8,isObject:e7,merge:e9,objectEach:e4,pick:e5,splat:it}=L();class ie extends eJ{constructor(){super(...arguments),this.processedData=[]}animate(t){let{chart:e,group:i}=this,s=eZ(this.options.animation);t?i.attr({translateX:e.plotLeft+e.plotWidth/2,translateY:e.plotTop+e.plotHeight/2,scaleX:.001,scaleY:.001}):i.animate({translateX:e.plotLeft,translateY:e.plotTop,scaleX:1,scaleY:1},s)}clearBounds(){this.points.forEach(t=>{delete t.bounds,delete t.insetIndex,delete t.projectedPath}),delete this.bounds}doFullTranslate(){return!!(this.isDirtyData||this.chart.isResizing||!this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let t=this,{chart:e,group:i,transformGroups:s=[]}=this,{mapView:o,renderer:r}=e;if(o){this.transformGroups=s,s[0]||(s[0]=r.g().add(i));for(let t=0,e=o.insets.length;t{let{graphic:e}=t;t.group=s["number"==typeof t.insetIndex?t.insetIndex+1:0],e&&e.parentGroup!==t.group&&e.add(t.group)}),e$.prototype.drawPoints.apply(this),this.points.forEach(i=>{let s=i.graphic;if(s){let o=s.animate,r="";i.name&&(r+="highcharts-name-"+i.name.replace(/ /g,"-").toLowerCase()),i.properties&&i.properties["hc-key"]&&(r+=" highcharts-key-"+i.properties["hc-key"].toString().toLowerCase()),r&&s.addClass(r),e.styledMode&&s.css(this.pointAttribs(i,i.selected&&"select"||void 0)),s.attr({visibility:!i.visible&&(i.visible||i.isNull)?"hidden":"inherit"}),s.animate=function(i,r,a){let n=e8(i["stroke-width"])&&!e8(s["stroke-width"]),l=e8(s["stroke-width"])&&!e8(i["stroke-width"]);if(n||l){let o=e5(t.getStrokeWidth(t.options),1)/(e.mapView&&e.mapView.getScale()||1);n&&(s["stroke-width"]=o),l&&(i["stroke-width"]=o)}return o.call(s,i,r,l?function(){s.element.removeAttribute("stroke-width"),delete s["stroke-width"],a&&a.apply(this,arguments)}:a)}}})),s.forEach((i,s)=>{let a=(0===s?o:o.insets[s-1]).getSVGTransform(),n=e5(this.getStrokeWidth(this.options),1),l=a.scaleX,h=a.scaleY>0?1:-1,p=e=>{(t.points||[]).forEach(t=>{let i;let s=t.graphic;s&&s["stroke-width"]&&(i=this.getStrokeWidth(t.options))&&s.attr({"stroke-width":i/e})})};if(r.globalAnimation&&e.hasRendered&&o.allowTransformAnimation){let t=Number(i.attr("translateX")),e=Number(i.attr("translateY")),s=Number(i.attr("scaleX")),o=(o,r)=>{let d=s+(l-s)*r.pos;i.attr({translateX:t+(a.translateX-t)*r.pos,translateY:e+(a.translateY-e)*r.pos,scaleX:d,scaleY:d*h,"stroke-width":n/d}),p(d)},d=e9(eZ(r.globalAnimation)),c=d.step;d.step=function(){c&&c.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},d,(function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),e1(this,"mapZoomComplete")}).bind(this))}else e_(i),i.attr(e9(a,{"stroke-width":n/l})),p(l)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:t,projection:e}=this.chart.mapView,i=[];(this.points||[]).forEach(s=>{if(s.path||s.geometry){if("string"==typeof s.path?s.path=eq(s.path):e6(s.path)&&"M"===s.path[0]&&(s.path=this.chart.renderer.pathToSegments(s.path)),!s.bounds){let i=s.getProjectedBounds(e);if(i){s.labelrank=e5(s.labelrank,(i.x2-i.x1)*(i.y2-i.y1));let{midX:e,midY:o}=i;if(t&&e8(e)&&e8(o)){let r=e0(t,t=>t.isInside({x:e,y:o}));r&&(delete s.projectedPath,(i=s.getProjectedBounds(r.projection))&&r.allBounds.push(i),s.insetIndex=t.indexOf(r))}s.bounds=i}}s.bounds&&void 0===s.insetIndex&&i.push(s.bounds)}}),this.bounds=eU.compositeBounds(i)}return this.bounds}getStrokeWidth(t){let e=this.pointAttrToOptions;return t[e&&e["stroke-width"]||"borderWidth"]}hasData(){return!!this.dataTable.rowCount}pointAttribs(t,e){let{mapView:i,styledMode:s}=t.series.chart,o=s?this.colorAttribs(t):e$.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t.options);if(e){let i=e9(this.options.states&&this.options.states[e],t.options.states&&t.options.states[e]||{}),s=this.getStrokeWidth(i);e3(s)&&(r=s),o.stroke=i.borderColor??t.color}r&&i&&(r/=i.getScale());let a=this.getStrokeWidth(this.options);return o.dashstyle&&i&&e8(a)&&(r=a/i.getScale()),t.visible||(o.fill=this.options.nullColor),e3(r)?o["stroke-width"]=r:delete o["stroke-width"],o["stroke-linecap"]=o["stroke-linejoin"]=this.options.linecap,o}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(t,e=!0,i,s){delete this.bounds,super.setData(t,!1,void 0,s),this.processData(),this.generatePoints(),e&&this.chart.redraw(i)}dataColumnKeys(){return this.pointArrayMap}processData(){let t,e,i;let s=this.options,o=s.data,r=this.chart,a=r.options.chart,n=this.joinBy,l=s.keys||this.pointArrayMap,h=[],p={},d=this.chart.mapView,c=d&&(e7(s.mapData,!0)?d.getGeoMap(s.mapData):d.geoMap),u=r.mapTransforms=a.mapTransforms||c&&c["hc-transform"]||r.mapTransforms;u&&e4(u,t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))}),e6(s.mapData)?i=s.mapData:c&&"FeatureCollection"===c.type&&(this.mapTitle=c.title,i=L().geojson(c,this.type,this)),this.processedData=[];let m=this.processedData;if(o){let t;for(let e=0,i=o.length;el.length&&"string"==typeof t[0]&&(m[e]["hc-key"]=t[0],++i);for(let s=0;s0?t$.prototype.setNestedProperty(m[e],t[i],l[s]):m[e][l[s]]=t[i])}else m[e]=o[e];n&&"_i"===n[0]&&(m[e]._i=e)}}if(i){this.mapData=i,this.mapMap={};for(let s=0;s{let i=e2(t,e);p[i]&&h.push(p[i])})}if(s.allAreas){if(n[1]){let t=n[1];m.forEach(e=>{h.push(e2(t,e))})}let t="|"+h.map(function(t){return t&&t[n[0]]}).join("|")+"|";i.forEach(e=>{n[0]&&-1!==t.indexOf("|"+e[n[0]]+"|")||m.push(e9(e,{value:null}))})}}this.dataTable.rowCount=m.length}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=it(i),this.joinBy[1]||(this.joinBy[1]=this.joinBy[0])),e}translate(){let t=this.doFullTranslate(),e=this.chart.mapView,i=e&&e.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!e||e.userOptions.center||e8(e.userOptions.zoom)||e.zoom!==e.minZoom?this.getProjectedBounds():e.fitToBounds(void 0,void 0,!1)),e){let s=e.getSVGTransform();this.points.forEach(o=>{let r=e8(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&e8(o.bounds.midX)&&e8(o.bounds.midY)&&(o.plotX=o.bounds.midX*r.scaleX+r.translateX,o.plotY=o.bounds.midY*r.scaleY+r.translateY),t&&(o.shapeType="path",o.shapeArgs={d:t$.getProjectedPath(o,i)}),o.hiddenInDataClass||(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))})}e1(this,"afterTranslate")}update(t){t.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((e,i)=>i===this._i?t.mapData:e.mapData)],!0),super.update.apply(this,arguments)}}ie.defaultOptions=e9(eJ.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return tJ(e)?t(e,-1):this.point.name||""},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}),eQ(ie.prototype,{type:"map",axisTypes:tP.seriesMembers.axisTypes,colorAttribs:tP.seriesMembers.colorAttribs,colorKey:tP.seriesMembers.colorKey,directTouch:!0,drawDataLabels:eK,drawGraph:eK,forceDL:!0,getCenter:tE.getCenter,getExtremesFromAll:!0,getSymbol:eK,isCartesian:!1,parallelArrays:tP.seriesMembers.parallelArrays,pointArrayMap:tP.seriesMembers.pointArrayMap,pointClass:t$,preserveAspectRatio:!0,searchPoint:eK,trackerGroups:tP.seriesMembers.trackerGroups,useMapGeometry:!0}),tP.compose(ie),W().registerSeriesType("map",ie);let ii=ie,{extend:is,merge:io}=L();class ir extends ii{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}ir.defaultOptions=io(ii.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),is(ir.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),W().registerSeriesType("mapline",ir);let{scatter:ia}=W().seriesTypes,{isNumber:il}=L();class ih extends ia.prototype.pointClass{isValid(){return!!(this.options.geometry||il(this.x)&&il(this.y)||il(this.options.lon)&&il(this.options.lat))}}w(632);let{noop:ip}=L(),{map:id,scatter:ic}=W().seriesTypes,{extend:iu,fireEvent:im,isNumber:ig,merge:ib}=L();class iy extends ic{constructor(){super(...arguments),this.clearBounds=id.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(t){let e=this.chart.mapView;if(e){let{geometry:i,lon:s,lat:o}=t,r=i&&"Point"===i.type&&i.coordinates;if(ig(s)&&ig(o)&&(r=[s,o]),r)return e.lonLatToProjectedUnits({lon:r[0],lat:r[1]})}}translate(){let t=this.chart.mapView;if(this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),t){let e=t.getSVGTransform(),{hasCoordinates:i}=t.projection;this.points.forEach(s=>{let o,{x:r,y:a}=s,n=ig(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,l=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(l?(r=l.x,a=l.y):s.bounds&&(r=s.bounds.midX,a=s.bounds.midY,n&&ig(r)&&ig(a)&&(s.plotX=r*n.scaleX+n.translateX,s.plotY=a*n.scaleY+n.translateY,o=!0)),ig(r)&&ig(a)){if(!o){let e=t.projectedUnitsToPixels({x:r,y:a});s.plotX=e.x,s.plotY=i?e.y:this.chart.plotHeight-e.y}}else s.y=s.plotX=s.plotY=void 0;s.isInside=this.isPointInside(s),s.zone=this.zones.length?s.getZone():void 0})}im(this,"afterTranslate")}}iy.defaultOptions=ib(ic.defaultOptions,{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}),tN().prototype.symbols.mapmarker=(t,e,i,s,o)=>{let r,a;let n=o&&"legend"===o.context;n?(r=t+i/2,a=e+s):o&&"number"==typeof o.anchorX&&"number"==typeof o.anchorY?(r=o.anchorX,a=o.anchorY):(r=t+i/2,a=e+s/2,e-=s);let l=n?s/3:s/2;return[["M",r,a],["C",r,a,r-l,e+1.5*l,r-l,e+l],["A",l,l,1,1,1,r+l,e+l],["C",r+l,e+1.5*l,r,a,r,a],["Z"]]},iu(iy.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ih,searchPoint:ip,useMapGeometry:!0}),W().registerSeriesType("mappoint",iy);let ix={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0},{parse:iM}=j(),{noop:iv}=L(),{arrayMax:iw,arrayMin:iC,isNumber:iT,merge:iL,pick:iP,stableSort:iA}=L(),ik=class{constructor(t,e){this.setState=iv,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e;let i=iP(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,r=o.ranges,a=o.connectorDistance;if(!r||!r.length||!iT(r[0].value)){t.options.bubbleLegend.autoRanges=!0;return}iA(r,function(t,e){return e.value-t.value}),this.ranges=r,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=a-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},r={zIndex:e.zIndex,"stroke-width":e.connectorWidth},a={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach(function(h,p){l||(o.stroke=iP(h.borderColor,e.borderColor,i.color),o.fill=iP(h.color,e.color,1!==n?iM(i.color).setOpacity(n).get("rgba"):i.color),r.stroke=iP(h.connectorColor,e.connectorColor,i.color)),t[p].radius=this.getRangeRadius(h.value),t[p]=iL(t[p],{center:t[0].radius-t[p].radius+s}),l||iL(!0,t[p],{bubbleAttribs:iL(o),connectorAttribs:iL(r),labelAttribs:a})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,r=e.ranges[e.ranges.length-1].value,a=e.minSize,n=e.maxSize;return s.getRadius.call(this,r,o,a,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,r=this.chart,a=r.series[s.seriesIndex],n=r.renderer,l=this.symbols,h=l.labels,p=t.center,d=Math.abs(t.radius),c=s.connectorDistance||0,u=o.align,m=i.options.rtl,g=s.borderWidth,f=s.connectorWidth,b=e.radius||0,y=p-d-g/2+f/2,x=(y%1?1:.5)-(f%2?0:.5),M=n.styledMode,v=m||"left"===u?-c:c;"center"===u&&(v=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(b,p+x,d).attr(M?{}:t.bubbleAttribs).addClass((M?"highcharts-color-"+a.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",b,y],["L",b+v,y]],s.connectorWidth)).attr(M?{}:t.connectorAttribs).addClass((M?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let w=n.text(this.formatLabel(t)).attr(M?{}:t.labelAttribs).css(M?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),C={x:b+v+s.labels.x,y:y+s.labels.y+.4*w.getBBox().height};w.attr(C),h.push(w),w.placed=!0,w.alignAttr=C}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?t1().format(s,t,this.chart):i?i.call(t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,r=Number.MAX_VALUE,a=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.getColumn("z").filter(iT)).length&&(r=iP(t.options.zMin,Math.min(r,Math.max(iC(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),a=iP(t.options.zMax,Math.max(a,iw(o))))}),s=r===a?[{value:a}]:[{value:r},{value:(r+a)/2},{value:a,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=iL(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,o=s?t.legend.lastLineHeight:0,r=t.plotSizeX,a=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),p=Math.ceil(l.maxPxSize),d=Math.min(a,r),c,u=n.options.maxSize;return i||!/%$/.test(u)?c=p:(c=(d+o)*(u=parseFloat(u))/100/(u/100+1),(s&&a-c>=r||!s&&r-c>=a)&&(c=p)),[h,Math.ceil(c)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:ij}=L(),{composed:iz}=L(),{addEvent:iS,objectEach:iI,pushUnique:iB,wrap:iE}=L();function iD(t,e,i){let s,o,r;let a=this.legend,n=iV(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&n?(s=a.bubbleLegend.options,o=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(a.group.placed=!1,a.allItems.forEach(t=>{(r=t.legendItem||{}).group&&(r.group.translateY=void 0)})),a.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),iI(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),a.bubbleLegend.correctSizes(),iX(a,iO(a))):(t.call(this,e,i),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),iX(a,iO(a))))}function iV(t){let e=t.series,i=0;for(;io.height&&(o.height=e[l].itemHeight);o.step=n}return i}function iN(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=iV(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new ik(s,this),this.bubbleLegend.addToLegend(t.allItems))}function iG(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=iV(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function iX(t,e){let i=t.allItems,s=t.options.rtl,o,r,a,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(o=n.group.translateX||0,r=n.y||0,((a=t.movementX)||s&&t.ranges)&&(a=s?o-t.options.maxSize/2:o+a,n.group.attr({translateX:a})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(r+e[l].height/2)}),n.y=r+e[l].height/2)})}let iR={compose:function(t,e){iB(iz,"Series.BubbleLegend")&&(ij({legend:{bubbleLegend:ix}}),iE(t.prototype,"drawChartBox",iD),iS(e,"afterGetAllItems",iN),iS(e,"itemClick",iG))}};var iH=w(260),iW=w.n(iH);let{seriesTypes:{scatter:{prototype:{pointClass:iY}}}}=W(),{extend:iU}=L();class iF extends iY{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series;return o.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return iW().prototype.haloPath.call(this,e)}}iU(iF.prototype,{ttBelow:!1});let iZ=iF,{parse:i_}=j(),{composed:iK,noop:iq}=L(),{series:i$,seriesTypes:{column:{prototype:iJ},scatter:iQ}}=W(),{addEvent:i0,arrayMax:i1,arrayMin:i2,clamp:i6,extend:i3,isNumber:i8,merge:i7,pick:i9,pushUnique:i4}=L();function i5(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=(this.max||0)-(s||0),r=0,a=t,n=t/o,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),o>0){let i=e.length;for(;i--;)if(i8(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;r=Math.min((e[i]-s)*n-o,r),a=Math.max((e[i]-s)*n+o,a)}}}}),l&&o>0&&!this.logarithmic&&(a-=t,n*=(t+Math.max(0,r)-Math.min(a,t))/t,[["min","userMin",r],["max","userMax",a]].forEach(t=>{void 0===i9(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function st(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,r=this.options.type;if((o?.length||"category"===r)&&this.series.find(t=>t.bubblePadding)){let o=e.length;for(;o--;){let r=t[e[o]],a=r.pos||0;(a>s||a{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(i9(e,o.zMin),o.zMin),i=Math.max(i9(i,o.zMax),o.zMax),t=!0)}}),t?(a={zMin:e,zMax:i},this.chart.bubbleZExtremes=a):a={zMin:0,zMax:0}}for(o=0,s=t.length;o0&&(p=(o-t)/h)}return n&&p>=0&&(p=Math.sqrt(p)),Math.ceil(i+p*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?i3(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=i$.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=i_(s.fill).setOpacity(i).get("rgba")),s}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let r=t[o],a=i?i[o]:0;"z"===this.zoneAxis&&(r.negative=(r.z||0)<(e.zThreshold||0)),i8(a)&&a>=s/2?(r.marker=i3(r.marker,{radius:a,width:2*a,height:2*a}),r.dlBox={x:r.plotX-a,y:r.plotY-a,width:2*a,height:2*a}):(r.shapeArgs=r.plotY=r.dlBox=void 0,r.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(i9(this.options.minSize,8)),s=Math.max(e(i9(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(i8);if(e.length){let i=i9(t.zMin,i6(i2(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=i9(t.zMax,i1(e));if(i8(i)&&i8(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=iq,o=iq){return s=(t,e,i)=>{let s=t[i]||0,o=e[i]||0,r,a=!1;return s<0&&o<0?(r=s-(t.marker?.radius||0)>=o-(e.marker?.radius||0)?t:e,a=!0):r=s!i&&t>e||t{delete t.target.chart.bubbleZExtremes}),i0(se,"remove",t=>{delete t.target.chart.bubbleZExtremes}),W().registerSeriesType("bubble",se);let si=se,{seriesTypes:{map:{prototype:{pointClass:{prototype:ss}}}}}=W(),{extend:so}=L();class sr extends iZ{isValid(){return"number"==typeof this.z}}so(sr.prototype,{applyOptions:ss.applyOptions,getProjectedBounds:ss.getProjectedBounds});let{seriesTypes:{map:{prototype:sa},mappoint:{prototype:sn}}}=W(),{extend:sl,merge:sh}=L();class sp extends si{constructor(){super(...arguments),this.clearBounds=sa.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){sn.translate.call(this),this.getRadii(),this.translateBubble()}}sp.defaultOptions=sh(si.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),sl(sp.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:sa.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:sr,processData:sa.processData,projectPoint:sn.projectPoint,kdAxisArray:["plotX","plotY"],setData:sa.setData,setOptions:sa.setOptions,updateData:sa.updateData,useMapGeometry:!0,xyFromShape:!0}),W().registerSeriesType("mapbubble",sp);let{scatter:{prototype:{pointClass:sd}}}=W().seriesTypes,{clamp:sc,defined:su,extend:sm,pick:sg}=L();class sf extends sd{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,s=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,a=this.options.marker||t.options.marker,n=t.pointPlacementToXValue(),l=sg(this.pointPadding,e.pointPadding,0),h={x1:sc(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-n)),-o.len,2*o.len),x2:sc(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-n)),-o.len,2*o.len),y1:sc(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:sc(Math.round(r.translate(this.y+s,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],i=t[1],s=i+"1",n=i+"2",p=Math.abs(h[s]-h[n]),d=a&&a.lineWidth||0,c=Math.abs(h[s]+h[n])/2,u=a&&a[e];if(su(u)&&usM(parseFloat(t),parseInt(t,10)));return s[3]=255*sM(s[3],1),sx(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=sy.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class sB extends sC{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,s=e.marker||{};if(i){let{image:e,chart:i,xAxis:s,yAxis:o}=t,{reversed:r=!1,len:a}=s,{reversed:n=!1,len:l}=o,h={width:a,height:l};if(!e||t.isDirtyData||t.isDirtyCanvas){let a=sI(t),{canvas:l,options:{colsize:p=1,rowsize:d=1},points:c,points:{length:u}}=t,m=i.colorAxis&&i.colorAxis[0];if(l&&a&&m){let{min:m,max:g}=s.getExtremes(),{min:f,max:b}=o.getExtremes(),y=g-m,x=b-f,M=Math.round(y/p/8*8),v=Math.round(x/d/8*8),[w,C]=[[M,M/y,r,"ceil"],[v,v/x,!n,"floor"]].map(([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t)),T=l.width=M+1,L=T*(l.height=v+1),P=(u-1)/L,A=new Uint8ClampedArray(4*L),k=(t,e)=>4*Math.ceil(T*C(e-f)+w(t-m));t.buildKDTree();for(let t=0;t{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:t,dataMax:e}=sv.prototype.getExtremes.call(this,this.getColumn("value"));return sk(t)&&(this.valueMin=t),sk(e)&&(this.valueMax=e),sv.prototype.getExtremes.call(this)}getValidPoints(t,e){return sv.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=sz(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,sT.ellipse=sT.circle,t.marker&&sk(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let s=t.options.marker||{},o=this.options.marker||{},r=o.states&&o.states[e]||{},a=s.states&&s.states[e]||{},n=(a.width||r.width||i.width||0)+(a.widthPlus||r.widthPlus||0),l=(a.height||r.height||i.height||0)+(a.heightPlus||r.heightPlus||0);return{x:(i.x||0)+((i.width||0)-n)/2,y:(i.y||0)+((i.height||0)-l)/2,width:n,height:l}}return i}pointAttribs(t,e){let i=sv.prototype.pointAttribs.call(this,t,e),s=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},a=o.heatmap||{},n=t&&t.options.borderColor||s.borderColor||a.borderColor||r.borderColor,l=t&&t.options.borderWidth||s.borderWidth||a.borderWidth||r.borderWidth||i["stroke-width"];if(i.stroke=t&&t.marker&&t.marker.lineColor||s.marker&&s.marker.lineColor||n||this.color,i["stroke-width"]=l,e&&"normal"!==e){let o=sj(s.states&&s.states[e],s.marker&&s.marker.states&&s.marker.states[e],t&&t.options.states&&t.options.states[e]||{});i.fill=o.color||j().parse(i.fill).brighten(o.brightness||0).get(),i.stroke=o.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e&&e.symbol||"rect",s=sT[i]?i:"rect",o=-1!==["circle","square"].indexOf(s);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),a=Math.min(r.x1,r.x2),n=Math.min(r.y1,r.y2),l=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker&&e.marker.symbol||i||"").indexOf("url"),o){let t=Math.abs(l-h);a=Math.min(r.x1,r.x2)+(l"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),sL(sB,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),sP(sB.prototype,{axisTypes:tP.seriesMembers.axisTypes,colorKey:tP.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:tP.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:sf,specialGroup:"group",trackerGroups:tP.seriesMembers.trackerGroups,alignDataLabel:sw.prototype.alignDataLabel,colorAttribs:tP.seriesMembers.colorAttribs,getSymbol:sv.prototype.getSymbol}),tP.compose(sB),W().registerSeriesType("heatmap",sB);/** + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/modules/map * @requires highcharts * @@ -18,4 +18,4 @@ * (c) 2011-2024 Torstein Honsi * * License: www.highcharts.com/license - */let sE=T();sE.ColorMapComposition=tP,sE.MapChart=sE.MapChart||tY,sE.MapNavigation=sE.MapNavigation||tM,sE.MapView=sE.MapView||eU,sE.Projection=sE.Projection||eT,sE.mapChart=sE.Map=sE.MapChart.mapChart,sE.maps=sE.MapChart.maps,sE.geojson=t4.geojson,sE.topo2geo=t4.topo2geo,t4.compose(sE.Chart),sp.compose(sE.Axis,sE.Chart,sE.Legend),tM.compose(tY,sE.Pointer,sE.SVGRenderer),eU.compose(tY);let sD=T();return C.default})()); \ No newline at end of file + */let sE=L();sE.ColorMapComposition=tP,sE.MapChart=sE.MapChart||tY,sE.MapNavigation=sE.MapNavigation||tM,sE.MapView=sE.MapView||eU,sE.Projection=sE.Projection||eL,sE.mapChart=sE.Map=sE.MapChart.mapChart,sE.maps=sE.MapChart.maps,sE.geojson=t4.geojson,sE.topo2geo=t4.topo2geo,t4.compose(sE.Chart),sp.compose(sE.Axis,sE.Chart,sE.Legend),tM.compose(tY,sE.Pointer,sE.SVGRenderer),eU.compose(tY);let sD=L();return C.default})()); \ No newline at end of file diff --git a/modules/map.src.js b/modules/map.src.js index 99e4657a61..c663404341 100644 --- a/modules/map.src.js +++ b/modules/map.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/color-axis * @requires highcharts * @@ -9530,6 +9530,30 @@ class BubbleSeries extends BubbleSeries_ScatterSeries { } } } + /** + * @private + * @function Highcharts.Series#searchKDTree + */ + searchKDTree(point, compareX, e, suppliedPointEvaluator = BubbleSeries_noop, suppliedBSideCheckEvaluator = BubbleSeries_noop) { + suppliedPointEvaluator = (p1, p2, comparisonProp) => { + const p1Dist = p1[comparisonProp] || 0; + const p2Dist = p2[comparisonProp] || 0; + let ret, flip = false; + if (p1Dist < 0 && p2Dist < 0) { + ret = (p1Dist - (p1.marker?.radius || 0) >= + p2Dist - (p2.marker?.radius || 0)) ? + p1 : + p2; + flip = true; + } + else { + ret = p1Dist < p2Dist ? p1 : p2; + } + return [ret, flip]; + }; + suppliedBSideCheckEvaluator = (a, b, flip) => !flip && (a > b) || (a < b); + return super.searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator); + } } /* * * @@ -11434,7 +11458,7 @@ highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highchart ;// ./code/es-modules/masters/modules/map.src.js /** - * @license Highmaps JS v12.0.2 (2024-12-04) + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/modules/map * @requires highcharts * diff --git a/modules/marker-clusters.js b/modules/marker-clusters.js index 460e588cdb..18638609c8 100644 --- a/modules/marker-clusters.js +++ b/modules/marker-clusters.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/marker-clusters * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Wojciech Chmiel * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/marker-clusters",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/marker-clusters"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";let e;var i={944:e=>{e.exports=t}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var a=s[t]={exports:{}};return i[t](a,a.exports,o),a.exports}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,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};o.d(a,{default:()=>tx});var r=o(944),n=/*#__PURE__*/o.n(r);let l={cluster:{enabled:!1,allowOverlap:!0,animation:{duration:500},drillToCluster:!0,minimumClusterSize:2,layoutAlgorithm:{gridSize:50,distance:40,kmeansThreshold:100},marker:{symbol:"cluster",radius:15,lineWidth:0,lineColor:"#ffffff"},dataLabels:{enabled:!0,format:"{point.clusterPointsAmount}",verticalAlign:"middle",align:"center",style:{color:"contrast"},inside:!0}},tooltip:{clusterFormat:"Clustered points: {point.clusterPointsAmount}
    "}},{fireEvent:p,isArray:h,objectEach:u,uniqueKey:d}=n(),c=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||d(),this.modified=this,this.rowCount=0,this.versionTag=d();let e=0;u(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,u(this.columns,e=>{h(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;u(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(p(this,"afterSetColumns"),this.versionTag=d())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,a=i?this.rowCount+1:e+1;u(t,(t,r)=>{let n=o[r]||s?.addColumns!==!1&&Array(a);n&&(i?n.splice(e,0,t):n[e]=t,o[r]=n)}),a>this.rowCount&&this.applyRowCount(a),s?.silent||(p(this,"afterSetRows"),this.versionTag=d())}},{animObject:m}=n(),{cluster:f}=l,{addEvent:g,defined:x,error:y,isArray:C,isFunction:k,isObject:I,isNumber:M,merge:b,objectEach:S,relativeLength:w,syncTimeout:A}=n(),X={grid:function(t,e,i,s){let o,a,r,n,l;let p={},h=this.getGridOffset(),u=this.getScaledGridSize(s);for(l=0;l1&&(c=T(g[t]),o.push({posX:c.x,posY:c.y,oldX:0,oldY:0,startPointsLen:g[t].length,points:[]}));for(;h;){for(let t of o)t.points.length=0;a.length=0;for(let s=0;so[t].oldX+1||o[t].posXo[t].oldY+1||o[t].posYa.minX||this.initMaxY&&this.initMaxYa.minY)this.initMaxX=a.maxX,this.initMinX=a.minX,this.initMaxY=a.maxY,this.initMinY=a.minY,l=this.markerClusterAlgorithms?this.markerClusterAlgorithms.kmeans.call(this,t,e,i,s):{},this.baseClusters=null;else{for(let t of(this.baseClusters??(this.baseClusters={clusters:this.markerClusterInfo.clusters,noise:this.markerClusterInfo.noise}),this.baseClusters.clusters)){for(let e of(t.pointsOutside=[],t.pointsInside=[],t.data)){let i=Q(this,e),s=Q(this,t);n=Math.sqrt(Math.pow(i.x-s.x,2)+Math.pow(i.y-s.y,2)),p=o-(h=t.clusterZone?.marker?.radius?t.clusterZone.marker.radius:r?.radius?r.radius:f.marker.radius)>=0?o-h:h,n>h+p&&x(t.pointsOutside)?t.pointsOutside.push(e):x(t.pointsInside)&&t.pointsInside.push(e)}t.pointsInside.length&&(l[t.id]=t.pointsInside);let e=0;for(let i of t.pointsOutside)l[t.id+"_noise"+e++]=[i]}for(let t of this.baseClusters.noise)l[t.id]=t.data}return l}},Y,P=[],L=0;function z(t,e,i){t.attr({opacity:e}).animate({opacity:1},i)}function D(t,e,i,s){for(let o of(O(t,s,i,!0,!0),e))o.point?.destroy?.()}function O(t,e,i,s,o){t.point&&(s&&t.point.graphic&&(t.point.graphic.show(),z(t.point.graphic,e,i)),o&&t.point.dataLabel&&(t.point.dataLabel.show(),z(t.point.dataLabel,e,i)))}function T(t){let e=t.length,i=0,s=0;for(let o=0;ot.x).sort((t,e)=>t-e),i=e.clusteredData.map(t=>t.y).sort((t,e)=>t-e),p=t[0],h=t[t.length-1],u=i[0],d=i[i.length-1],c=Math.abs((h-p)*.1),m=Math.abs((d-u)*.1),f=Math.min(p,h)-c,g=Math.max(p,h)+c,x=Math.min(u,d)-m,y=Math.max(u,d)+m;if(n)n.fitToBounds({x1:f,x2:g,y1:x,y2:y});else if(s&&o){let t=s.toPixels(f),e=s.toPixels(g),i=o.toPixels(x),n=o.toPixels(y);r&&([t,e,i,n]=[i,n,t,e]),t>e&&([t,e]=[e,t]),i>n&&([i,n]=[n,i]),l&&(l.zoomX=!0,l.zoomY=!0),a.transform({from:{x:t,y:i,width:e-t,height:n-i}})}}})}function j(t,e){let{chart:i,xAxis:s,yAxis:o}=t;return i.mapView?i.mapView.pixelsToProjectedUnits(e):{x:s?s.toValue(e.x):0,y:o?o.toValue(e.y):0}}function G(t){let e=this.chart,i=e.mapView,s=m(this.options.cluster?.animation),o=s.duration||500,a=this.markerClusterInfo?.pointsState,r=a?.newState,n=a?.oldState,l=[],p,h,u,d=0,c=0,f=0,g=!1,x=!1;if(n&&r){let a=Q(this,h=r[t.stateId]);c=a.x-(i?0:e.plotLeft),f=a.y-(i?0:e.plotTop),1===h.parentsId.length?(p=n[r?.[t.stateId].parentsId[0]],h.point?.graphic&&p.point?.plotX&&p.point.plotY&&(p.point.plotX!==h.point.plotX||p.point.plotY!==h.point.plotY)&&(u=h.point.graphic.getBBox(),d=h.point.graphic?.isImg?0:u.width/2,h.point.graphic.attr({x:p.point.plotX-d,y:p.point.plotY-d}),h.point.graphic.animate({x:c-(h.point.graphic.radius||0),y:f-(h.point.graphic.radius||0)},s,function(){x=!0,p.point?.destroy?.()}),h.point.dataLabel?.alignAttr&&p.point.dataLabel?.alignAttr&&(h.point.dataLabel.attr({x:p.point.dataLabel.alignAttr.x,y:p.point.dataLabel.alignAttr.y}),h.point.dataLabel.animate({x:h.point.dataLabel.alignAttr.x,y:h.point.dataLabel.alignAttr.y},s)))):0===h.parentsId.length?(R(h,!0,!0),A(function(){O(h,.1,s,!0,!0)},o/2)):(R(h,!0,!0),h.parentsId.forEach(function(t){n?.[t]&&(p=n[t],l.push(p),p.point?.graphic&&(g=!0,p.point.graphic.show(),p.point.graphic.animate({x:c-(p.point.graphic.radius||0),y:f-(p.point.graphic.radius||0),opacity:.4},s,function(){x=!0,D(h,l,s,.7)}),p.point.dataLabel&&-9999!==p.point.dataLabel.y&&h.point?.dataLabel?.alignAttr&&(p.point.dataLabel.show(),p.point.dataLabel.animate({x:h.point.dataLabel.alignAttr.x,y:h.point.dataLabel.alignAttr.y,opacity:.4},s))))}),A(function(){x||D(h,l,s,.85)},o),g||A(function(){D(h,l,s,.1)},o/2))}}function F(){this.markerClusterSeriesData?.forEach(t=>{t?.destroy?.()}),this.markerClusterSeriesData=null}function H(){let t,e,i,s,o,a,r,n,l,p,h,u,d,m,y;let C=this,{chart:I}=C,b=I.mapView,S=C.getColumn("x"),A=C.getColumn("y"),X=C.options.cluster,P=C.getRealExtremes(),L=[],z=[],D=[];if(b&&C.is("mappoint")&&S&&A&&C.options.data?.forEach((t,e)=>{let i=C.projectPoint(t);i&&(S[e]=i.x,A[e]=i.y)}),X?.enabled&&S?.length&&A?.length&&!I.polar){h=X.layoutAlgorithm.type,(m=X.layoutAlgorithm).processedGridSize=w(m.gridSize||f.layoutAlgorithm.gridSize,I.plotWidth),m.processedDistance=w(m.distance||f.layoutAlgorithm.distance,I.plotWidth),s=m.kmeansThreshold||f.layoutAlgorithm.kmeansThreshold;let b=m.processedGridSize/2,O=j(C,{x:0,y:0}),T=j(C,{x:b,y:b});o=Math.abs(O.x-T.x),a=Math.abs(O.y-T.y);for(let t=0;t=P.minX-o&&S[t]<=P.maxX+o&&(A[t]||P.minY)>=P.minY-a&&(A[t]||P.maxY)<=P.maxY+a&&(L.push(S[t]),z.push(A[t]),D.push(t));x(n)&&x(r)&&M(p)&&M(l)&&(C.dataMaxX=n,C.dataMinX=r,C.dataMaxY=p,C.dataMinY=l),u=(d=(k(h)?h:C.markerClusterAlgorithms?h&&C.markerClusterAlgorithms[h]?C.markerClusterAlgorithms[h]:L.length!1).call(this,L,z,D,m))?C.getClusteredData(d,X):d,X.animation&&C.markerClusterInfo?.pointsState?.oldState?(function(t){for(let e of Object.keys(t))t[e].point?.destroy?.()}(C.markerClusterInfo.pointsState.oldState),t=C.markerClusterInfo.pointsState.newState):t={},e=S.length,i=C.markerClusterInfo,u&&(C.dataTable.modified=new c({columns:{x:u.groupedXData,y:u.groupedYData}}),C.hasGroupedData=!0,C.markerClusterInfo=u,C.groupMap=u.groupMap),Y.apply(this),u&&C.markerClusterInfo&&(C.markerClusterInfo.clusters?.forEach(t=>{(y=C.points[t.index]).isCluster=!0,y.clusteredData=t.data,y.clusterPointsAmount=t.data.length,t.point=y,g(y,"click",E)}),C.markerClusterInfo.noise?.forEach(t=>{t.point=C.points[t.index]}),X.animation&&C.markerClusterInfo&&(C.markerClusterInfo.pointsState={oldState:t,newState:C.getPointsState(u,i,e)}),X.animation?this.hideClusteredData():this.destroyClusteredData(),this.markerClusterSeriesData=this.hasGroupedData?this.points:null)}else Y.apply(this)}function W(t,e,i){let s=[];for(let o=0;ot.distance-e.distance)}function Z(t,e){let i=this.options.data,s=[],o=[],a=[],r=[],n=[],l=Math.max(2,e.minimumClusterSize||2),p=0,h,u,d,c,m,g,x,M,S,w,A,X;if(k(e.layoutAlgorithm.type)&&!this.isValidGroupedDataObject(t))return y("Highcharts marker-clusters module: The custom algorithm result is not valid!",!1,this.chart),!1;for(let y in t)if(t[y].length>=l){if(d=t[y],h=V(),m=d.length,e.zones)for(let t=0;t=e.zones[t].from&&m<=e.zones[t].to&&((A=e.zones[t]).zoneIndex=t,w=e.zones[t].marker,X=e.zones[t].className);S=T(d),"grid"!==e.layoutAlgorithm.type||e.allowOverlap?x={x:S.x,y:S.y}:(g=this.options.marker||{},x=this.preventClusterCollisions({x:S.x,y:S.y,key:y,groupedData:t,gridSize:this.getScaledGridSize(e.layoutAlgorithm),defaultRadius:g.radius||3+(g.lineWidth||0),clusterRadius:w&&w.radius?w.radius:(e.marker||{}).radius||f.marker.radius}));for(let t=0;t{n[t.stateId]={x:t.x,y:t.y,id:t.stateId,point:t.point,parentsId:[]}}),t.noise.forEach(t=>{n[t.stateId]={x:t.x,y:t.y,id:t.stateId,point:t.point,parentsId:[]}});for(let t=0;t.75&&n<1.25?o=!1:n>=1/t&&n<1/t*2?(o=!1,r=t):n<=t&&n>t/2&&(o=!1,r=1/t),a++}return s/r/n}function U(){let t=this.markerClusterSeriesData,e=this.markerClusterInfo?.pointsState?.oldState,i=P.map(t=>e?.[t].point?.id||"");t?.forEach(t=>{t&&i.indexOf(t.id)!==-1?(t.graphic&&t.graphic.hide(),t.dataLabel&&t.dataLabel.hide()):t?.destroy?.()})}function K(t){let e=!1;return!!I(t)&&(S(t,t=>{if(e=!0,!C(t)||!t.length){e=!1;return}for(let i=0;i=d[t].from&&y<=d[t].to&&(C=x(d[t].marker?.radius)?d[t].marker.radius||0:u?.radius?u.radius:f.marker.radius)}o[t].length>1&&0===C&&u?.radius?C=u.radius:1===o[t].length&&(C=a),L=r+C,C=0,X!==i&&Math.abs(m-k){t.tooltip&&t.tooltip.destroy()},e)}function tu(){for(let t of this.series||[])if(t.markerClusterInfo){let e=t.options.cluster,i=((t.markerClusterInfo||{}).pointsState||{}).oldState;if((e||{}).animation&&t.markerClusterInfo&&0===(t.chart.pointer?.pinchDown||[]).length&&"pan"!==((t.xAxis||{}).eventArgs||{}).trigger&&i&&Object.keys(i).length){for(let e of t.markerClusterInfo.clusters)t.animateClusterPoint(e);for(let e of t.markerClusterInfo.noise)t.animateClusterPoint(e)}}}function td(t){let e=(((t.point||t.target).series.options.cluster||{}).events||{}).drillToCluster;tr(e)&&e.call(this,t)}function tc(){if(this.dataGroup)return ta("Highcharts marker-clusters module: Running `Point.update` when point belongs to clustered series is not supported.",!1,this.series.chart),!1}function tm(){let t=(this.options.cluster||{}).drillToCluster;if(this.markerClusterInfo&&this.markerClusterInfo.clusters)for(let e of this.markerClusterInfo.clusters)e.point&&e.point.graphic&&(e.point.graphic.addClass("highcharts-cluster-point"),t&&e.point&&(e.point.graphic.css({cursor:"pointer"}),e.point.dataLabel&&e.point.dataLabel.css({cursor:"pointer"})),to(e.clusterZone)&&e.point.graphic.addClass(e.clusterZoneClassName||"highcharts-cluster-zone-"+e.clusterZone.zoneIndex))}function tf(t,i,s,o){let a=s/2,r=o/2,n=e.arc(t+a,i+r,a-4,r-4,{start:.5*Math.PI,end:2.5*Math.PI,open:!1}),l=e.arc(t+a,i+r,a-3,r-3,{start:.5*Math.PI,end:2.5*Math.PI,innerR:a-2,open:!1});return e.arc(t+a,i+r,a-1,r-1,{start:.5*Math.PI,end:2.5*Math.PI,innerR:a,open:!1}).concat(l,n)}(te.plotOptions||{}).series=tn((te.plotOptions||{}).series,l);let tg=n();({compose:function(t,e,i,s){if(tl(ti,"MarkerClusters")){let o=s.prototype.pointClass,{scatter:a}=s.types;ts(t,"setExtremes",th),ts(e,"render",tu),ts(o,"drillToCluster",td),ts(o,"update",tc),ts(s,"afterRender",tm),a&&$.compose(i,a)}}}).compose(tg.Axis,tg.Chart,tg.defaultOptions,tg.Series),({compose:function(t){(e=t.prototype.symbols).cluster=tf}}).compose(tg.SVGRenderer);let tx=n();return a.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/marker-clusters",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/marker-clusters"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";let e;var i={944:e=>{e.exports=t}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var a=s[t]={exports:{}};return i[t](a,a.exports,o),a.exports}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,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};o.d(a,{default:()=>tx});var r=o(944),n=o.n(r);let l={cluster:{enabled:!1,allowOverlap:!0,animation:{duration:500},drillToCluster:!0,minimumClusterSize:2,layoutAlgorithm:{gridSize:50,distance:40,kmeansThreshold:100},marker:{symbol:"cluster",radius:15,lineWidth:0,lineColor:"#ffffff"},dataLabels:{enabled:!0,format:"{point.clusterPointsAmount}",verticalAlign:"middle",align:"center",style:{color:"contrast"},inside:!0}},tooltip:{clusterFormat:"Clustered points: {point.clusterPointsAmount}
    "}},{fireEvent:p,isArray:h,objectEach:u,uniqueKey:d}=n(),c=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||d(),this.modified=this,this.rowCount=0,this.versionTag=d();let e=0;u(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,u(this.columns,e=>{h(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;u(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(p(this,"afterSetColumns"),this.versionTag=d())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,a=i?this.rowCount+1:e+1;u(t,(t,r)=>{let n=o[r]||s?.addColumns!==!1&&Array(a);n&&(i?n.splice(e,0,t):n[e]=t,o[r]=n)}),a>this.rowCount&&this.applyRowCount(a),s?.silent||(p(this,"afterSetRows"),this.versionTag=d())}},{animObject:m}=n(),{cluster:f}=l,{addEvent:g,defined:x,error:y,isArray:C,isFunction:k,isObject:I,isNumber:M,merge:b,objectEach:S,relativeLength:w,syncTimeout:A}=n(),X={grid:function(t,e,i,s){let o,a,r,n,l;let p={},h=this.getGridOffset(),u=this.getScaledGridSize(s);for(l=0;l1&&(c=T(g[t]),o.push({posX:c.x,posY:c.y,oldX:0,oldY:0,startPointsLen:g[t].length,points:[]}));for(;h;){for(let t of o)t.points.length=0;a.length=0;for(let s=0;so[t].oldX+1||o[t].posXo[t].oldY+1||o[t].posYa.minX||this.initMaxY&&this.initMaxYa.minY)this.initMaxX=a.maxX,this.initMinX=a.minX,this.initMaxY=a.maxY,this.initMinY=a.minY,l=this.markerClusterAlgorithms?this.markerClusterAlgorithms.kmeans.call(this,t,e,i,s):{},this.baseClusters=null;else{for(let t of(this.baseClusters??(this.baseClusters={clusters:this.markerClusterInfo.clusters,noise:this.markerClusterInfo.noise}),this.baseClusters.clusters)){for(let e of(t.pointsOutside=[],t.pointsInside=[],t.data)){let i=Q(this,e),s=Q(this,t);n=Math.sqrt(Math.pow(i.x-s.x,2)+Math.pow(i.y-s.y,2)),p=o-(h=t.clusterZone?.marker?.radius?t.clusterZone.marker.radius:r?.radius?r.radius:f.marker.radius)>=0?o-h:h,n>h+p&&x(t.pointsOutside)?t.pointsOutside.push(e):x(t.pointsInside)&&t.pointsInside.push(e)}t.pointsInside.length&&(l[t.id]=t.pointsInside);let e=0;for(let i of t.pointsOutside)l[t.id+"_noise"+e++]=[i]}for(let t of this.baseClusters.noise)l[t.id]=t.data}return l}},Y,P=[],L=0;function z(t,e,i){t.attr({opacity:e}).animate({opacity:1},i)}function D(t,e,i,s){for(let o of(O(t,s,i,!0,!0),e))o.point?.destroy?.()}function O(t,e,i,s,o){t.point&&(s&&t.point.graphic&&(t.point.graphic.show(),z(t.point.graphic,e,i)),o&&t.point.dataLabel&&(t.point.dataLabel.show(),z(t.point.dataLabel,e,i)))}function T(t){let e=t.length,i=0,s=0;for(let o=0;ot.x).sort((t,e)=>t-e),i=e.clusteredData.map(t=>t.y).sort((t,e)=>t-e),p=t[0],h=t[t.length-1],u=i[0],d=i[i.length-1],c=Math.abs((h-p)*.1),m=Math.abs((d-u)*.1),f=Math.min(p,h)-c,g=Math.max(p,h)+c,x=Math.min(u,d)-m,y=Math.max(u,d)+m;if(n)n.fitToBounds({x1:f,x2:g,y1:x,y2:y});else if(s&&o){let t=s.toPixels(f),e=s.toPixels(g),i=o.toPixels(x),n=o.toPixels(y);r&&([t,e,i,n]=[i,n,t,e]),t>e&&([t,e]=[e,t]),i>n&&([i,n]=[n,i]),l&&(l.zoomX=!0,l.zoomY=!0),a.transform({from:{x:t,y:i,width:e-t,height:n-i}})}}})}function j(t,e){let{chart:i,xAxis:s,yAxis:o}=t;return i.mapView?i.mapView.pixelsToProjectedUnits(e):{x:s?s.toValue(e.x):0,y:o?o.toValue(e.y):0}}function G(t){let e=this.chart,i=e.mapView,s=m(this.options.cluster?.animation),o=s.duration||500,a=this.markerClusterInfo?.pointsState,r=a?.newState,n=a?.oldState,l=[],p,h,u,d=0,c=0,f=0,g=!1,x=!1;if(n&&r){let a=Q(this,h=r[t.stateId]);c=a.x-(i?0:e.plotLeft),f=a.y-(i?0:e.plotTop),1===h.parentsId.length?(p=n[r?.[t.stateId].parentsId[0]],h.point?.graphic&&p.point?.plotX&&p.point.plotY&&(p.point.plotX!==h.point.plotX||p.point.plotY!==h.point.plotY)&&(u=h.point.graphic.getBBox(),d=h.point.graphic?.isImg?0:u.width/2,h.point.graphic.attr({x:p.point.plotX-d,y:p.point.plotY-d}),h.point.graphic.animate({x:c-(h.point.graphic.radius||0),y:f-(h.point.graphic.radius||0)},s,function(){x=!0,p.point?.destroy?.()}),h.point.dataLabel?.alignAttr&&p.point.dataLabel?.alignAttr&&(h.point.dataLabel.attr({x:p.point.dataLabel.alignAttr.x,y:p.point.dataLabel.alignAttr.y}),h.point.dataLabel.animate({x:h.point.dataLabel.alignAttr.x,y:h.point.dataLabel.alignAttr.y},s)))):0===h.parentsId.length?(R(h,!0,!0),A(function(){O(h,.1,s,!0,!0)},o/2)):(R(h,!0,!0),h.parentsId.forEach(function(t){n?.[t]&&(p=n[t],l.push(p),p.point?.graphic&&(g=!0,p.point.graphic.show(),p.point.graphic.animate({x:c-(p.point.graphic.radius||0),y:f-(p.point.graphic.radius||0),opacity:.4},s,function(){x=!0,D(h,l,s,.7)}),p.point.dataLabel&&-9999!==p.point.dataLabel.y&&h.point?.dataLabel?.alignAttr&&(p.point.dataLabel.show(),p.point.dataLabel.animate({x:h.point.dataLabel.alignAttr.x,y:h.point.dataLabel.alignAttr.y,opacity:.4},s))))}),A(function(){x||D(h,l,s,.85)},o),g||A(function(){D(h,l,s,.1)},o/2))}}function F(){this.markerClusterSeriesData?.forEach(t=>{t?.destroy?.()}),this.markerClusterSeriesData=null}function H(){let t,e,i,s,o,a,r,n,l,p,h,u,d,m,y;let C=this,{chart:I}=C,b=I.mapView,S=C.getColumn("x"),A=C.getColumn("y"),X=C.options.cluster,P=C.getRealExtremes(),L=[],z=[],D=[];if(b&&C.is("mappoint")&&S&&A&&C.options.data?.forEach((t,e)=>{let i=C.projectPoint(t);i&&(S[e]=i.x,A[e]=i.y)}),X?.enabled&&S?.length&&A?.length&&!I.polar){h=X.layoutAlgorithm.type,(m=X.layoutAlgorithm).processedGridSize=w(m.gridSize||f.layoutAlgorithm.gridSize,I.plotWidth),m.processedDistance=w(m.distance||f.layoutAlgorithm.distance,I.plotWidth),s=m.kmeansThreshold||f.layoutAlgorithm.kmeansThreshold;let b=m.processedGridSize/2,O=j(C,{x:0,y:0}),T=j(C,{x:b,y:b});o=Math.abs(O.x-T.x),a=Math.abs(O.y-T.y);for(let t=0;t=P.minX-o&&S[t]<=P.maxX+o&&(A[t]||P.minY)>=P.minY-a&&(A[t]||P.maxY)<=P.maxY+a&&(L.push(S[t]),z.push(A[t]),D.push(t));x(n)&&x(r)&&M(p)&&M(l)&&(C.dataMaxX=n,C.dataMinX=r,C.dataMaxY=p,C.dataMinY=l),u=(d=(k(h)?h:C.markerClusterAlgorithms?h&&C.markerClusterAlgorithms[h]?C.markerClusterAlgorithms[h]:L.length!1).call(this,L,z,D,m))?C.getClusteredData(d,X):d,X.animation&&C.markerClusterInfo?.pointsState?.oldState?(function(t){for(let e of Object.keys(t))t[e].point?.destroy?.()}(C.markerClusterInfo.pointsState.oldState),t=C.markerClusterInfo.pointsState.newState):t={},e=S.length,i=C.markerClusterInfo,u&&(C.dataTable.modified=new c({columns:{x:u.groupedXData,y:u.groupedYData}}),C.hasGroupedData=!0,C.markerClusterInfo=u,C.groupMap=u.groupMap),Y.apply(this),u&&C.markerClusterInfo&&(C.markerClusterInfo.clusters?.forEach(t=>{(y=C.points[t.index]).isCluster=!0,y.clusteredData=t.data,y.clusterPointsAmount=t.data.length,t.point=y,g(y,"click",E)}),C.markerClusterInfo.noise?.forEach(t=>{t.point=C.points[t.index]}),X.animation&&C.markerClusterInfo&&(C.markerClusterInfo.pointsState={oldState:t,newState:C.getPointsState(u,i,e)}),X.animation?this.hideClusteredData():this.destroyClusteredData(),this.markerClusterSeriesData=this.hasGroupedData?this.points:null)}else Y.apply(this)}function W(t,e,i){let s=[];for(let o=0;ot.distance-e.distance)}function Z(t,e){let i=this.options.data,s=[],o=[],a=[],r=[],n=[],l=Math.max(2,e.minimumClusterSize||2),p=0,h,u,d,c,m,g,x,M,S,w,A,X;if(k(e.layoutAlgorithm.type)&&!this.isValidGroupedDataObject(t))return y("Highcharts marker-clusters module: The custom algorithm result is not valid!",!1,this.chart),!1;for(let y in t)if(t[y].length>=l){if(d=t[y],h=V(),m=d.length,e.zones)for(let t=0;t=e.zones[t].from&&m<=e.zones[t].to&&((A=e.zones[t]).zoneIndex=t,w=e.zones[t].marker,X=e.zones[t].className);S=T(d),"grid"!==e.layoutAlgorithm.type||e.allowOverlap?x={x:S.x,y:S.y}:(g=this.options.marker||{},x=this.preventClusterCollisions({x:S.x,y:S.y,key:y,groupedData:t,gridSize:this.getScaledGridSize(e.layoutAlgorithm),defaultRadius:g.radius||3+(g.lineWidth||0),clusterRadius:w&&w.radius?w.radius:(e.marker||{}).radius||f.marker.radius}));for(let t=0;t{n[t.stateId]={x:t.x,y:t.y,id:t.stateId,point:t.point,parentsId:[]}}),t.noise.forEach(t=>{n[t.stateId]={x:t.x,y:t.y,id:t.stateId,point:t.point,parentsId:[]}});for(let t=0;t.75&&n<1.25?o=!1:n>=1/t&&n<1/t*2?(o=!1,r=t):n<=t&&n>t/2&&(o=!1,r=1/t),a++}return s/r/n}function U(){let t=this.markerClusterSeriesData,e=this.markerClusterInfo?.pointsState?.oldState,i=P.map(t=>e?.[t].point?.id||"");t?.forEach(t=>{t&&i.indexOf(t.id)!==-1?(t.graphic&&t.graphic.hide(),t.dataLabel&&t.dataLabel.hide()):t?.destroy?.()})}function K(t){let e=!1;return!!I(t)&&(S(t,t=>{if(e=!0,!C(t)||!t.length){e=!1;return}for(let i=0;i=d[t].from&&y<=d[t].to&&(C=x(d[t].marker?.radius)?d[t].marker.radius||0:u?.radius?u.radius:f.marker.radius)}o[t].length>1&&0===C&&u?.radius?C=u.radius:1===o[t].length&&(C=a),L=r+C,C=0,X!==i&&Math.abs(m-k){t.tooltip&&t.tooltip.destroy()},e)}function tu(){for(let t of this.series||[])if(t.markerClusterInfo){let e=t.options.cluster,i=((t.markerClusterInfo||{}).pointsState||{}).oldState;if((e||{}).animation&&t.markerClusterInfo&&0===(t.chart.pointer?.pinchDown||[]).length&&"pan"!==((t.xAxis||{}).eventArgs||{}).trigger&&i&&Object.keys(i).length){for(let e of t.markerClusterInfo.clusters)t.animateClusterPoint(e);for(let e of t.markerClusterInfo.noise)t.animateClusterPoint(e)}}}function td(t){let e=(((t.point||t.target).series.options.cluster||{}).events||{}).drillToCluster;tr(e)&&e.call(this,t)}function tc(){if(this.dataGroup)return ta("Highcharts marker-clusters module: Running `Point.update` when point belongs to clustered series is not supported.",!1,this.series.chart),!1}function tm(){let t=(this.options.cluster||{}).drillToCluster;if(this.markerClusterInfo&&this.markerClusterInfo.clusters)for(let e of this.markerClusterInfo.clusters)e.point&&e.point.graphic&&(e.point.graphic.addClass("highcharts-cluster-point"),t&&e.point&&(e.point.graphic.css({cursor:"pointer"}),e.point.dataLabel&&e.point.dataLabel.css({cursor:"pointer"})),to(e.clusterZone)&&e.point.graphic.addClass(e.clusterZoneClassName||"highcharts-cluster-zone-"+e.clusterZone.zoneIndex))}function tf(t,i,s,o){let a=s/2,r=o/2,n=e.arc(t+a,i+r,a-4,r-4,{start:.5*Math.PI,end:2.5*Math.PI,open:!1}),l=e.arc(t+a,i+r,a-3,r-3,{start:.5*Math.PI,end:2.5*Math.PI,innerR:a-2,open:!1});return e.arc(t+a,i+r,a-1,r-1,{start:.5*Math.PI,end:2.5*Math.PI,innerR:a,open:!1}).concat(l,n)}(te.plotOptions||{}).series=tn((te.plotOptions||{}).series,l);let tg=n();({compose:function(t,e,i,s){if(tl(ti,"MarkerClusters")){let o=s.prototype.pointClass,{scatter:a}=s.types;ts(t,"setExtremes",th),ts(e,"render",tu),ts(o,"drillToCluster",td),ts(o,"update",tc),ts(s,"afterRender",tm),a&&$.compose(i,a)}}}).compose(tg.Axis,tg.Chart,tg.defaultOptions,tg.Series),({compose:function(t){(e=t.prototype.symbols).cluster=tf}}).compose(tg.SVGRenderer);let tx=n();return a.default})()); \ No newline at end of file diff --git a/modules/marker-clusters.src.js b/modules/marker-clusters.src.js index d36cda6ef2..67b1a4fb2b 100644 --- a/modules/marker-clusters.src.js +++ b/modules/marker-clusters.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/marker-clusters * @requires highcharts * diff --git a/modules/mouse-wheel-zoom.js b/modules/mouse-wheel-zoom.js index 4755e41140..aacadc9cc4 100644 --- a/modules/mouse-wheel-zoom.js +++ b/modules/mouse-wheel-zoom.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/mouse-wheel-zoom * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2023 Askel Eirik Johansson * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/mouse-wheel-zoom",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/mouse-wheel-zoom"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";let t;var o={944:t=>{t.exports=e}},i={};function r(e){var t=i[e];if(void 0!==t)return t.exports;var s=i[e]={exports:{}};return o[e](s,s.exports,r),s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};r.d(s,{default:()=>z});var n=r(944),a=/*#__PURE__*/r.n(n);let{defined:h,isNumber:l,pick:u}=a(),d={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},{addEvent:c,isObject:f,pick:g,defined:p,merge:m}=a(),{getAssignedAxis:x}={annotationsFieldsTypes:d,getAssignedAxis:function(e){return e.filter(e=>{let t=e.axis.getExtremes(),o=t.min,i=t.max,r=u(e.axis.minPointOffset,0);return l(o)&&l(i)&&e.value>=o-r&&e.value<=i+r&&!e.axis.options.isInternal})[0]},getFieldType:function(e,t){let o=d[e],i=typeof t;return h(o)&&(i=o),({string:"text",number:"number",boolean:"checkbox"})[i]}},y=[],b={enabled:!0,sensitivity:1.1},v=e=>(f(e)||(e={enabled:e??!0}),m(b,e)),w=function(e,o,i,r,s,n,a){let h=g(a.type,e.zooming.type,""),l=[];"x"===h?l=i:"y"===h?l=r:"xy"===h&&(l=e.axes);let u=e.transform({axes:l,to:{x:s-5,y:n-5,width:10,height:10},from:{x:s-5*o,y:n-5*o,width:10*o,height:10*o},trigger:"mousewheel"});return u&&(p(t)&&clearTimeout(t),t=setTimeout(()=>{e.pointer?.drop()},400)),u};function A(){let e=v(this.zooming.mouseWheel);e.enabled&&c(this.container,"wheel",t=>{t=this.pointer?.normalize(t)||t;let{pointer:o}=this,i=o&&!o.inClass(t.target,"highcharts-no-mousewheel");if(this.isInsidePlot(t.chartX-this.plotLeft,t.chartY-this.plotTop)&&i){let i=e.sensitivity||1.1,r=t.detail||(t.deltaY||0)/120,s=x(o.getCoordinates(t).xAxis),n=x(o.getCoordinates(t).yAxis);w(this,Math.pow(i,r),s?[s.axis]:this.xAxis,n?[n.axis]:this.yAxis,t.chartX,t.chartY,e)&&t.preventDefault?.()}})}let C=a();C.MouseWheelZoom=C.MouseWheelZoom||{compose:function(e){-1===y.indexOf(e)&&(y.push(e),c(e,"afterGetContainer",A))}},C.MouseWheelZoom.compose(C.Chart);let z=a();return s.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/mouse-wheel-zoom",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/modules/mouse-wheel-zoom"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";let t;var o={944:t=>{t.exports=e}},i={};function r(e){var t=i[e];if(void 0!==t)return t.exports;var s=i[e]={exports:{}};return o[e](s,s.exports,r),s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};r.d(s,{default:()=>z});var n=r(944),a=r.n(n);let{defined:h,isNumber:l,pick:u}=a(),d={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},{addEvent:c,isObject:f,pick:g,defined:p,merge:m}=a(),{getAssignedAxis:x}={annotationsFieldsTypes:d,getAssignedAxis:function(e){return e.filter(e=>{let t=e.axis.getExtremes(),o=t.min,i=t.max,r=u(e.axis.minPointOffset,0);return l(o)&&l(i)&&e.value>=o-r&&e.value<=i+r&&!e.axis.options.isInternal})[0]},getFieldType:function(e,t){let o=d[e],i=typeof t;return h(o)&&(i=o),({string:"text",number:"number",boolean:"checkbox"})[i]}},y=[],b={enabled:!0,sensitivity:1.1},v=e=>(f(e)||(e={enabled:e??!0}),m(b,e)),w=function(e,o,i,r,s,n,a){let h=g(a.type,e.zooming.type,""),l=[];"x"===h?l=i:"y"===h?l=r:"xy"===h&&(l=e.axes);let u=e.transform({axes:l,to:{x:s-5,y:n-5,width:10,height:10},from:{x:s-5*o,y:n-5*o,width:10*o,height:10*o},trigger:"mousewheel"});return u&&(p(t)&&clearTimeout(t),t=setTimeout(()=>{e.pointer?.drop()},400)),u};function A(){let e=v(this.zooming.mouseWheel);e.enabled&&c(this.container,"wheel",t=>{t=this.pointer?.normalize(t)||t;let{pointer:o}=this,i=o&&!o.inClass(t.target,"highcharts-no-mousewheel");if(this.isInsidePlot(t.chartX-this.plotLeft,t.chartY-this.plotTop)&&i){let i=e.sensitivity||1.1,r=t.detail||(t.deltaY||0)/120,s=x(o.getCoordinates(t).xAxis),n=x(o.getCoordinates(t).yAxis);w(this,Math.pow(i,r),s?[s.axis]:this.xAxis,n?[n.axis]:this.yAxis,t.chartX,t.chartY,e)&&t.preventDefault?.()}})}let C=a();C.MouseWheelZoom=C.MouseWheelZoom||{compose:function(e){-1===y.indexOf(e)&&(y.push(e),c(e,"afterGetContainer",A))}},C.MouseWheelZoom.compose(C.Chart);let z=a();return s.default})()); \ No newline at end of file diff --git a/modules/mouse-wheel-zoom.src.js b/modules/mouse-wheel-zoom.src.js index bf5292505b..fdf5459605 100644 --- a/modules/mouse-wheel-zoom.src.js +++ b/modules/mouse-wheel-zoom.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/mouse-wheel-zoom * @requires highcharts * diff --git a/modules/navigator.js b/modules/navigator.js index 3f888737d9..b3ccad3788 100644 --- a/modules/navigator.js +++ b/modules/navigator.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/navigator * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2009-2024 Mateusz Bernacik * * License: www.highcharts.com/license - */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/navigator",["highcharts/highcharts"],function(t){return i(t,t.Chart,t.Axis,t.Color,t.SeriesRegistry,t.RendererRegistry,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/navigator"]=i(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer):t.Highcharts=i(t.Highcharts,t.Highcharts.Chart,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,i,e,s,a,r,o)=>(()=>{"use strict";let n;var h,l={532:t=>{t.exports=e},960:t=>{t.exports=i},620:t=>{t.exports=s},608:t=>{t.exports=r},540:t=>{t.exports=o},512:t=>{t.exports=a},944:i=>{i.exports=t}},d={};function c(t){var i=d[t];if(void 0!==i)return i.exports;var e=d[t]={exports:{}};return l[t](e,e.exports,c),e.exports}c.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return c.d(i,{a:i}),i},c.d=(t,i)=>{for(var e in i)c.o(i,e)&&!c.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},c.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var g={};c.d(g,{default:()=>t6});var p=c(944),x=/*#__PURE__*/c.n(p),u=c(960),m=/*#__PURE__*/c.n(u),v=c(532),b=/*#__PURE__*/c.n(v);let{isTouchDevice:f}=x(),{addEvent:M,merge:A,pick:y}=x(),E=[];function k(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function w(){let t,i,e;let s=this.legend,a=this.navigator;if(a){t=s&&s.options,i=a.xAxis,e=a.yAxis;let{scrollbarHeight:r,scrollButtonSize:o}=a;this.inverted?(a.left=a.opposite?this.chartWidth-r-a.height:this.spacing[3]+r,a.top=this.plotTop+o):(a.left=y(i.left,this.plotLeft+o),a.top=a.navigatorOptions.top||this.chartHeight-a.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+y(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),i&&e&&(this.inverted?i.options.left=e.options.left=a.left:i.options.top=e.options.top=a.top,i.setAxisSize(),e.setAxisSize())}}function O(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new n(this),y(t.redraw,!0)&&this.redraw(t.animation))}function S(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new n(this))}function z(){let t=this.options,i=t.navigator,e=t.rangeSelector;if((i&&i.enabled||e&&e.enabled)&&(!f&&"x"===this.zooming.type||f&&"x"===this.zooming.pinchType))return!1}function R(t){let i=t.navigator;if(i&&t.xAxis[0]){let e=t.xAxis[0].getExtremes();i.render(e.min,e.max)}}function D(t){let i=t.options.navigator||{},e=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(i.enabled||e.enabled)&&(A(!0,this.options.navigator,i),A(!0,this.options.scrollbar,e),delete t.options.navigator,delete t.options.scrollbar)}let T={compose:function(t,i){if(x().pushUnique(E,t)){let e=t.prototype;n=i,e.callbacks.push(R),M(t,"afterAddSeries",k),M(t,"afterSetChartSize",w),M(t,"afterUpdate",O),M(t,"beforeRender",S),M(t,"beforeShowResetZoom",z),M(t,"update",D)}}},{isTouchDevice:B}=x(),{addEvent:C,correctFloat:H,defined:W,isNumber:L,pick:P}=x();function U(){this.navigatorAxis||(this.navigatorAxis=new I(this))}function N(t){let i;let e=this.chart,s=e.options,a=s.navigator,r=this.navigatorAxis,o=e.zooming.pinchType,n=s.rangeSelector,h=e.zooming.type;if(this.isXAxis&&(a?.enabled||n?.enabled)){if("y"===h&&"zoom"===t.trigger)i=!1;else if(("zoom"===t.trigger&&"xy"===h||B&&"xy"===o)&&this.options.range){let i=r.previousZoom;W(t.min)?r.previousZoom=[this.min,this.max]:i&&(t.min=i[0],t.max=i[1],r.previousZoom=void 0)}}void 0!==i&&t.preventDefault()}class I{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),C(t,"init",U),C(t,"setExtremes",N))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,i,e,s){let a=this.axis,r=(a.pointRange||0)/2,o=P(e,a.translate(t,!0,!a.horiz)),n=P(s,a.translate(i,!0,!a.horiz));return W(e)||(o=H(o+r)),W(s)||(n=H(n-r)),L(o)&&L(n)||(o=n=void 0),{min:o,max:n}}}var X=c(620),_=/*#__PURE__*/c.n(X),Y=c(512),G=/*#__PURE__*/c.n(Y);let{parse:F}=_(),{seriesTypes:V}=G(),j={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:F("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===V.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:Z,isNumber:q,pick:J}=x(),K={rect:function(t,i,e,s,a){return a&&a.r?function(t,i,e,s,a){let r=a?.r||0;return[["M",t+r,i],["L",t+e-r,i],["A",r,r,0,0,1,t+e,i+r],["L",t+e,i+s-r],["A",r,r,0,0,1,t+e-r,i+s],["L",t+r,i+s],["A",r,r,0,0,1,t,i+s-r],["L",t,i+r],["A",r,r,0,0,1,t+r,i],["Z"]]}(t,i,e,s,a):[["M",t,i],["L",t+e,i],["L",t+e,i+s],["L",t,i+s],["Z"]]}},{relativeLength:Q}=x(),$={"navigator-handle":function(t,i,e,s,a={}){let r=a.width?a.width/2:e,o=Q(a.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=a.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...K.rect(-r-1,.5,2*r+1,s,{r:o})]}};var tt=c(608),ti=/*#__PURE__*/c.n(tt);let{defined:te}=x(),{setOptions:ts}=x(),{composed:ta}=x(),{getRendererType:tr}=ti(),{setFixedRange:to}={setFixedRange:function(t){let i=this.xAxis[0];te(i.dataMax)&&te(i.dataMin)&&t?this.fixedRange=Math.min(t,i.dataMax-i.dataMin):this.fixedRange=t}},{addEvent:tn,extend:th,pushUnique:tl}=x();function td(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let tc={compose:function(t,i,e){I.compose(i),tl(ta,"Navigator")&&(t.prototype.setFixedRange=to,th(tr().prototype.symbols,$),tn(e,"afterUpdate",td),ts({navigator:j}))}},{composed:tg}=x(),{addEvent:tp,defined:tx,pick:tu,pushUnique:tm}=x();!function(t){let i;function e(t){let i=tu(t.options&&t.options.min,t.min),e=tu(t.options&&t.options.max,t.max);return{axisMin:i,axisMax:e,scrollMin:tx(t.dataMin)?Math.min(i,t.min,t.dataMin,tu(t.threshold,1/0)):i,scrollMax:tx(t.dataMax)?Math.max(e,t.max,t.dataMax,tu(t.threshold,-1/0)):e}}function s(){let t=this.scrollbar,i=t&&!t.options.opposite,e=this.horiz?2:i?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[e]+=t.size+(t.options.margin||0))}function a(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new i(t.chart.renderer,t.options.scrollbar,t.chart),tp(t.scrollbar,"changed",function(i){let s,a;let{axisMin:r,axisMax:o,scrollMin:n,scrollMax:h}=e(t),l=h-n;if(tx(r)&&tx(o)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=n+l*this.to,a=n+l*this.from):(s=n+l*(1-this.from),a=n+l*(1-this.to)),this.shouldUpdateExtremes(i.DOMType)){let e="mousemove"!==i.DOMType&&"touchmove"!==i.DOMType&&void 0;t.setExtremes(a,s,!0,e,i)}else this.setRange(this.from,this.to)}}))}function r(){let t,i,s;let{scrollMin:a,scrollMax:r}=e(this),o=this.scrollbar,n=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(o&&h){if(this.horiz)this.opposite||(h[1]+=n),o.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let i;this.opposite&&(h[0]+=n),i=o.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,o.position(i,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=o.size+(o.options.margin||0),isNaN(a)||isNaN(r)||!tx(this.min)||!tx(this.max)||this.dataMin===this.dataMax)o.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);i=t*this.min,s=t*(this.max+1),o.setRange(i,s)}else i=(this.min-a)/(r-a),s=(this.max-a)/(r-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?o.setRange(i,s):o.setRange(1-s,1-i)}}t.compose=function(t,e){tm(tg,"Axis.Scrollbar")&&(i=e,tp(t,"afterGetOffset",s),tp(t,"afterInit",a),tp(t,"afterRender",r))}}(h||(h={}));let tv=h,tb={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:tf}=x(),{addEvent:tM,correctFloat:tA,crisp:ty,defined:tE,destroyObjectProperties:tk,fireEvent:tw,merge:tO,pick:tS,removeEvent:tz}=x();class tR{static compose(t){tv.compose(t,tR)}static swapXY(t,i){return i&&t.forEach(t=>{let i;let e=t.length;for(let s=0;sthis.calculatedWidth?i.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-e),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-e)}}destroy(){let t=this,i=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(i){t[i]&&t[i].destroy&&(t[i]=t[i].destroy())}),i&&t===i.scrollbar&&(i.scrollbar=null,tk(i.scrollbarButtons))}drawScrollbarButton(t){let i=this.renderer,e=this.scrollbarButtons,s=this.options,a=this.size,r=i.g().add(this.group);if(e.push(r),s.buttonsEnabled){let o=i.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||o.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),o.attr(o.crisp({x:-.5,y:-.5,width:a,height:a,r:s.buttonBorderRadius},o.strokeWidth()));let n=i.path(tR.swapXY([["M",a/2+(t?-1:1),a/2-3],["L",a/2+(t?-1:1),a/2+3],["L",a/2+(t?2:-2),a/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(e[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,i,e){this.scrollbarButtons=[],this.renderer=t,this.userOptions=i,this.options=tO(tb,tf.scrollbar,i),this.options.margin=tS(this.options.margin,10),this.chart=e,this.size=tS(this.options.size,this.options.height),i.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let i=this.chart.pointer?.normalize(t)||t,e=this.cursorToScrollbarPosition(i);this.chartX=e.chartX,this.chartY=e.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let i;let e=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",a=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(i=this.cursorToScrollbarPosition(e)[s]-this[s],this.hasDragged=!0,this.updatePosition(a[0]+i,a[1]+i),this.hasDragged&&tw(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&tw(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,i,e,s){let{buttonsEnabled:a,margin:r=0,vertical:o}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=i+this.trackBorderWidth,this.width=e,this.height=s,this.xOffset=h,this.yOffset=l,o?(this.width=this.yOffset=e=l=this.size,this.xOffset=h=0,this.yOffset=l=a?this.size:0,this.barWidth=s-(a?2*e:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=a?this.size:0,this.barWidth=e-(a?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:e,height:s}),this.scrollbarButtons[1][n]({translateX:o?0:e-h,translateY:o?s-l:0})}removeEvents(){this._events.forEach(function(t){tz.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,i=this.options,e=this.size,s=this.chart.styledMode,a=t.g("scrollbar").attr({zIndex:i.zIndex}).hide().add();this.group=a,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:i.trackBorderRadius||0,height:e,width:e}).add(a),s||this.track.attr({fill:i.trackBackgroundColor,stroke:i.trackBorderColor,"stroke-width":i.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-ty(0,r),y:-ty(0,r)}),this.scrollbarGroup=t.g().add(a),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:e-r,width:e-r,r:i.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(tR.swapXY([["M",-3,e/4],["L",-3,2*e/3],["M",0,e/4],["L",0,2*e/3],["M",3,e/4],["L",3,2*e/3]],i.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:i.barBackgroundColor,stroke:i.barBorderColor,"stroke-width":i.barBorderWidth}),this.scrollbarRifles.attr({stroke:i.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-ty(0,this.scrollbarStrokeWidth),-ty(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,i){let e,s;let a=this.options,r=a.vertical,o=a.minWidth,n=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!tE(n))return;let l=n*Math.min(i,1);e=Math.ceil(n*(t=Math.max(t,0))),this.calculatedWidth=s=tA(l-e),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return tS(this.options.liveRedraw,x().svg&&!x().isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!tE(t)}trackClick(t){let i=this.chart.pointer?.normalize(t)||t,e=this.to-this.from,s=this.y+this.scrollbarTop,a=this.x+this.scrollbarLeft;this.options.vertical&&i.chartY>s||!this.options.vertical&&i.chartX>a?this.updatePosition(this.from+e,this.to+e):this.updatePosition(this.from-e,this.to-e),tw(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,tO(!0,this.options,t),this.chart)}updatePosition(t,i){i>1&&(t=tA(1-tA(i-t)),i=1),t<0&&(i=tA(i-t),t=0),this.from=t,this.to=i}}tR.defaultOptions=tb,tf.scrollbar=tO(!0,tR.defaultOptions,tf.scrollbar);var tD=c(540),tT=/*#__PURE__*/c.n(tD);let{defaultOptions:tB}=x(),{isTouchDevice:tC}=x(),{prototype:{symbols:tH}}=tT(),{addEvent:tW,clamp:tL,correctFloat:tP,defined:tU,destroyObjectProperties:tN,erase:tI,extend:tX,find:t_,fireEvent:tY,isArray:tG,isNumber:tF,merge:tV,pick:tj,removeEvent:tZ,splat:tq}=x();function tJ(t,...i){let e=[].filter.call(i,tF);if(e.length)return Math[t].apply(0,e)}class tK{static compose(t,i,e){T.compose(t,tK),tc.compose(t,i,e)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,i,e,s){let a=this.navigatorOptions.handles.height;this.handles[i][s](e?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-a)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-a/2-1)})}drawOutline(t,i,e,s){let a=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),o=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,g=d-o,p=d+c,x=this.left,u,m;e?(u=d+i+n,i=d+t+n,m=[["M",x+c,d-h-n],["L",x+c,u],["L",x,u],["M",x,i],["L",x+c,i],["L",x+c,d+l+h]],a&&m.push(["M",x+c,u-o],["L",x+c,i+o])):(x-=h,t+=x+h-n,i+=x+h-n,m=[["M",x,g],["L",t,g],["L",t,p],["M",i,p],["L",i,g],["L",x+l+2*h,g]],a&&m.push(["M",t-o,g],["L",i+o,g])),this.outline[s]({d:m})}drawMasks(t,i,e,s){let a,r,o,n;let h=this.left,l=this.top,d=this.height;e?(o=[h,h,h],n=[l,l+t,l+i],r=[d,d,d],a=[t,i-t,this.size-i]):(o=[h,h+t,h+i],n=[l,l,l],r=[t,i-t,this.size-i],a=[d,d,d]),this.shades.forEach((t,i)=>{t[s]({x:o[i],y:n[i],width:r[i],height:a[i]})})}renderElements(){let t=this,i=t.navigatorOptions,e=i.maskInside,s=t.chart,a=s.inverted,r=s.renderer,o={cursor:a?"ns-resize":"ew-resize"},n=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!e,e,!e].forEach((e,a)=>{let h=t.shades[a]??(t.shades[a]=r.rect().addClass("highcharts-navigator-mask"+(1===a?"-inside":"-outside")).add(n));s.styledMode||(h.attr({fill:e?i.maskFill:"rgba(0,0,0,0)"}),1===a&&h.css(o))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(n)),s.styledMode||t.outline.attr({"stroke-width":i.outlineWidth,stroke:i.outlineColor}),i.handles?.enabled){let e=i.handles,{height:a,width:h}=e;[0,1].forEach(i=>{let l=e.symbols[i];if(t.handles[i]&&t.handles[i].symbolUrl===l){if(!t.handles[i].isImg&&t.handles[i].symbolName!==l){let e=tH[l].call(tH,-h/2-1,0,h,a);t.handles[i].attr({d:e}),t.handles[i].symbolName=l}}else t.handles[i]?.destroy(),t.handles[i]=r.symbol(l,-h/2-1,0,h,a,e),t.handles[i].attr({zIndex:7-i}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][i]).add(n),t.addMouseEvents();s.inverted&&t.handles[i].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(a+h)/2}),s.styledMode||t.handles[i].attr({fill:e.backgroundColor,stroke:e.borderColor,"stroke-width":e.lineWidth,width:e.width,height:e.height,x:-h/2-1,y:0}).css(o)})}}update(t,i=!1){let e=this.chart,s=e.options.chart.inverted!==e.scrollbar?.options.vertical;if(tV(!0,e.options.navigator,t),this.navigatorOptions=e.options.navigator||{},this.setOpposite(),tU(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(e);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{tZ(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(tW(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let i=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:i,[e.inverted?"width":"height"]:this.height,[e.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[e.inverted?"width":"height"]:this.height},!1)}i&&e.redraw()}render(t,i,e,s){let a=this.chart,r=this.xAxis,o=r.pointRange||0,n=r.navigatorAxis.fake?a.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=a.inverted,c=a.xAxis[0].minRange,g=a.xAxis[0].options.maxRange,p=this.scrollButtonSize,x,u,m,v=this.scrollbarHeight,b,f;if(this.hasDragged&&!tU(e))return;if(this.isDirty&&this.renderElements(),t=tP(t-o/2),i=tP(i+o/2),!tF(t)||!tF(i)){if(!l)return;e=0,s=tj(r.width,n.width)}this.left=tj(r.left,a.plotLeft+p+(d?a.plotWidth:0));let M=this.size=b=tj(r.len,(d?a.plotHeight:a.plotWidth)-2*p);x=d?v:b+2*p,e=tj(e,r.toPixels(t,!0)),s=tj(s,r.toPixels(i,!0)),tF(e)&&Math.abs(e)!==1/0||(e=0,s=x);let A=r.toValue(e,!0),y=r.toValue(s,!0),E=Math.abs(tP(y-A));Eg&&(this.grabbedLeft?e=r.toPixels(y-g-o,!0):this.grabbedRight&&(s=r.toPixels(A+g+o,!0))),this.zoomedMax=tL(Math.max(e,s),0,M),this.zoomedMin=tL(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(e,s),0,M),this.range=this.zoomedMax-this.zoomedMin,M=Math.round(this.zoomedMax);let k=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),f=l&&!this.hasDragged?"animate":"attr",this.drawMasks(k,M,d,f),this.drawOutline(k,M,d,f),this.navigatorOptions.handles.enabled&&(this.drawHandle(k,0,d,f),this.drawHandle(M,1,d,f))),this.scrollbar&&(d?(m=this.top-p,u=this.left-v+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),v=b+2*p):(m=this.top+(h?this.height:-v),u=this.left-p),this.scrollbar.position(u,m,x,v),this.scrollbar.setRange(this.zoomedMin/(b||1),this.zoomedMax/(b||1))),this.rendered=!0,this.isDirty=!1,tY(this,"afterRender")}addMouseEvents(){let t=this,i=t.chart,e=i.container,s=[],a,r;t.mouseMoveHandler=a=function(i){t.onMouseMove(i)},t.mouseUpHandler=r=function(i){t.onMouseUp(i)},(s=t.getPartsEvents("mousedown")).push(tW(i.renderTo,"mousemove",a),tW(e.ownerDocument,"mouseup",r),tW(i.renderTo,"touchmove",a),tW(e.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(tW(t.series[0].xAxis,"foundExtremes",function(){i.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let i=this,e=[];return["shades","handles"].forEach(function(s){i[s].forEach(function(a,r){e.push(tW(a.element,t,function(t){i[s+"Mousedown"](t,r)}))})}),e}shadesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=this.xAxis,a=this.zoomedMin,r=this.size,o=this.range,n=this.left,h=t.chartX,l,d,c,g;e.inverted&&(h=t.chartY,n=this.top),1===i?(this.grabbedCenter=h,this.fixedWidth=o,this.dragOffset=h-a):(g=h-n-o/2,0===i?g=Math.max(0,g):2===i&&g+o>=r&&(g=r-o,this.reversedExtremes?(g-=o,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),g!==a&&(this.fixedWidth=o,tU((c=s.navigatorAxis.toFixedRange(g,g+o,d,l)).min)&&tY(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=e.xAxis[0],a=this.reversedExtremes;0===i?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=a?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=a?s.max:s.min),e.setFixedRange(void 0)}onMouseMove(t){let i=this,e=i.chart,s=i.navigatorSize,a=i.range,r=i.dragOffset,o=e.inverted,n=i.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=e.pointer?.normalize(t)||t).chartX,o&&(n=i.top,h=t.chartY),i.grabbedLeft?(i.hasDragged=!0,i.render(0,0,h-n,i.otherHandlePos)):i.grabbedRight?(i.hasDragged=!0,i.render(0,0,i.otherHandlePos,h-n)):i.grabbedCenter&&(i.hasDragged=!0,hs+r-a&&(h=s+r-a),i.render(0,0,h-r,h-r+a)),i.hasDragged&&i.scrollbar&&tj(i.scrollbar.options.liveRedraw,!tC&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){i.onMouseUp(t)},0)))}onMouseUp(t){let i,e,s,a,r,o;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,g=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?a=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(a=this.reversedExtremes?s.dataMax:s.dataMin),tU((o=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,a,r)).min)&&tY(this,"setRange",{min:Math.min(o.min,o.max),max:Math.max(o.min,o.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&tF(this.zoomedMin)&&tF(this.zoomedMax)&&(e=Math.round(this.zoomedMin),i=Math.round(this.zoomedMax),this.shades&&this.drawMasks(e,i,c,g),this.outline&&this.drawOutline(e,i,c,g),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(e,0,c,g),this.drawHandle(i,1,c,g)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){tZ(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&tZ(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let i=t.options,e=i.navigator||{},s=e.enabled,a=i.scrollbar||{},r=a.enabled,o=s&&e.height||0,n=r&&a.height||0,h=a.buttonsEnabled&&n||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=o,this.scrollbarHeight=n,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=e,this.scrollbarOptions=a,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,g=t.yAxis.length,p=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let i=this.getXAxisOffsets();l.xAxis=new(b())(t,tV({breaks:p.options.breaks,ordinal:p.options.ordinal,overscroll:p.options.overscroll},e.xAxis,{type:"datetime",yAxis:e.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:p.options.ordinal?0:p.options.minPadding,maxPadding:p.options.ordinal?0:p.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:i,width:o}:{offsets:i,height:o}),"xAxis"),l.yAxis=new(b())(t,tV(e.yAxis,{alignTicks:!1,offset:0,index:g,isInternal:!0,reversed:tj(e.yAxis&&e.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:o}:{height:o}),"yAxis"),d||e.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=tW(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(i,e){let s=t.xAxis[0],a=s.getExtremes(),r=s.len-2*h,o=tJ("min",s.options.min,a.dataMin),n=tJ("max",s.options.max,a.dataMax)-o;return e?i*n/r+o:r*(i-o)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=I.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let i=tV(t.options.scrollbar,{vertical:t.inverted});!tF(i.margin)&&l.navigatorEnabled&&(i.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new tR(t.renderer,i,t),tW(l.scrollbar,"changed",function(t){let i=l.size,e=i*this.to,s=i*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,e),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,i=this.navigatorEnabled,e=this.chart;this.opposite=tj(t.opposite,!!(!i&&e.inverted))}getUnionExtremes(t){let i;let e=this.chart.xAxis[0],s=this.chart.time,a=this.xAxis,r=a.options,o=e.options;return t&&null===e.dataMin||(i={dataMin:tj(s.parse(r?.min),tJ("min",s.parse(o.min),e.dataMin,a.dataMin,a.min)),dataMax:tj(s.parse(r?.max),tJ("max",s.parse(o.max),e.dataMax,a.dataMax,a.max))}),i}setBaseSeries(t,i){let e=this.chart,s=this.baseSeries=[];t=t||e.options&&e.options.navigator.baseSeries||(e.series.length?t_(e.series,t=>!t.options.isInternal).index:0),(e.series||[]).forEach((i,e)=>{!i.options.isInternal&&(i.options.showInNavigator||(e===t||i.options.id===t)&&!1!==i.options.showInNavigator)&&s.push(i)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,i)}updateNavigatorSeries(t,i){let e=this,s=e.chart,a=e.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},o=e.series=(e.series||[]).filter(t=>{let i=t.baseSeries;return!(0>a.indexOf(i))||(i&&(tZ(i,"updatedData",e.updatedDataHandler),delete i.navigatorSeries),t.chart&&t.destroy(),!1)}),n,h,l=e.navigatorOptions.series,d;a&&a.length&&a.forEach(t=>{let c=t.navigatorSeries,g=tX({color:t.color,visible:t.visible},tG(l)?tB.navigator.series:l);if(c&&!1===e.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+a.length,d=(n=t.options||{}).navigatorOptions||{},g.dataLabels=tq(g.dataLabels),(h=tV(n,r,g,d)).pointRange=tj(g.pointRange,d.pointRange,tB.plotOptions[h.type||"line"].pointRange);let p=d.data||g.data;e.hasNavigatorData=e.hasNavigatorData||!!p,h.data=p||n.data?.slice(0),c&&c.options?c.update(h,i):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,o.push(t.navigatorSeries))}),(l.data&&!(a&&a.length)||tG(l))&&(e.hasNavigatorData=!1,(l=tq(l)).forEach((t,i)=>{r.name="Navigator "+(o.length+1),(h=tV(tB.navigator.series,{color:s.series[i]&&!s.series[i].options.isInternal&&s.series[i].color||s.options.colors[i]||s.options.colors[0]},r,t)).data=t.data,h.data&&(e.hasNavigatorData=!0,o.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,i=t.baseSeries||[];i[0]&&i[0].xAxis&&i[0].eventsToUnbind.push(tW(i[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),i.forEach(e=>{e.eventsToUnbind.push(tW(e,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),e.eventsToUnbind.push(tW(e,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&e.xAxis&&e.eventsToUnbind.push(tW(e,"updatedData",this.updatedDataHandler)),e.eventsToUnbind.push(tW(e,"remove",function(){i&&tI(i,e),this.navigatorSeries&&t.series&&(tI(t.series,this.navigatorSeries),tU(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,i){return Math.min(t,i.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let i=this.getUnionExtremes(!0);i&&(i.dataMin!==t.min||i.dataMax!==t.max)&&(t.min=i.dataMin,t.max=i.dataMax)}}modifyBaseAxisExtremes(){let t,i;let e=this.chart.navigator,s=this.getExtremes(),a=s.min,r=s.max,o=s.dataMin,n=s.dataMax,h=r-a,l=e.stickToMin,d=e.stickToMax,c=tj(this.ordinal?.convertOverscroll(this.options.overscroll),0),g=e.series&&e.series[0],p=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(i=o)+h),d&&(t=n+c,l||(i=Math.max(o,t-h,e.getBaseSeriesMin(g&&g.xData?g.xData[0]:-Number.MAX_VALUE)))),p&&(l||d)&&tF(i)&&(this.min=this.userMin=i,this.max=this.userMax=t)),e.stickToMin=e.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,i=this.navigatorSeries,e=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=tj(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,e),t.stickToMin=t.shouldStickToMin(this,t),i&&!t.hasNavigatorData&&(i.options.pointStart=this.getColumn("x")[0],i.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,i){let e=i.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,a=s.max,r=s.min,o=s.options.range;return!!(tF(a)&&tF(r))&&(o&&a-e>0?a-e{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{tN(t)}),this.navigatorEnabled=!1}}let tQ={chart:{height:70,margin:[0,5,0,5]},exporting:{enabled:!1},legend:{enabled:!1},navigator:{enabled:!1},plotOptions:{series:{states:{hover:{enabled:!1}},marker:{enabled:!1}}},scrollbar:{enabled:!1},title:{text:""},tooltip:{enabled:!1},xAxis:{visible:!1},yAxis:{height:0,visible:!1}},{merge:t$,addEvent:t0,fireEvent:t1,pick:t2}=x();class t5{static navigator(t,i){let e=new t5(t,i);return x().navigators?x().navigators.push(e):x().navigators=[e],e}constructor(t,i){this.boundAxes=[],this.userOptions=i,this.chartOptions=t$(x().getOptions(),tQ,{navigator:i}),this.chartOptions.chart&&i.height&&(this.chartOptions.chart.height=i.height);let e=new(m())(t,this.chartOptions);e.options=t$(e.options,{navigator:{enabled:!0},scrollbar:{enabled:!0}}),this.chartOptions.navigator&&this.chartOptions.scrollbar&&(this.chartOptions.navigator.enabled=!0,this.chartOptions.scrollbar.enabled=!0),this.navigator=new tK(e),e.navigator=this.navigator,this.initNavigator()}bind(t,i=!0){let e=this,s=t instanceof m()?t.xAxis[0]:t;if(!(s instanceof b()))return;let{min:a,max:r}=this.navigator.xAxis,o=[];if(i){let t=t0(s,"setExtremes",t=>{("pan"===t.trigger||"zoom"===t.trigger||"mouseWheelZoom"===t.trigger)&&e.setRange(t.min,t.max,!0,"pan"!==t.trigger,{trigger:s})});o.push(t)}let n=t0(this.navigator,"setRange",t=>{s.setExtremes(t.min,t.max,t.redraw,t.animation)});o.push(n);let h=this.boundAxes.filter(function(t){return t.axis===s})[0];h||(h={axis:s,callbacks:[]},this.boundAxes.push(h)),h.callbacks=o,s.series.forEach(t=>{t.options.showInNavigator&&e.addSeries(t.options)}),s.setExtremes(a,r),t0(s,"destroy",t=>{t.keepEvents||this.unbind(s)})}unbind(t){if(!t){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0;return}let i=t instanceof b()?t:t.xAxis[0];for(let t=this.boundAxes.length-1;t>=0;t--)this.boundAxes[t].axis===i&&(this.boundAxes[t].callbacks.forEach(t=>t()),this.boundAxes.splice(t,1))}destroy(){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0,this.navigator.destroy(),this.navigator.chart.destroy()}update(t,i){this.chartOptions=t$(this.chartOptions,t.height&&{chart:{height:t.height}},{navigator:t}),this.navigator.chart.update(this.chartOptions,i)}redraw(){this.navigator.chart.redraw()}addSeries(t){this.navigator.chart.addSeries(t$(t,{showInNavigator:t2(t.showInNavigator,!0)})),this.navigator.setBaseSeries()}initNavigator(){let t=this.navigator;t.top=1,t.xAxis.setScale(),t.yAxis.setScale(),t.xAxis.render(),t.yAxis.render(),t.series?.forEach(t=>{t.translate(),t.render(),t.redraw()});let{min:i,max:e}=this.getInitialExtremes();t.chart.xAxis[0].userMin=i,t.chart.xAxis[0].userMax=e,t.render(i,e)}getRange(){let{min:t,max:i}=this.navigator.chart.xAxis[0].getExtremes(),{userMin:e,userMax:s,min:a,max:r}=this.navigator.xAxis.getExtremes();return{min:t2(t,a),max:t2(i,r),dataMin:a,dataMax:r,userMin:e,userMax:s}}setRange(t,i,e,s,a){t1(this.navigator,"setRange",{min:t,max:i,redraw:e,animation:s,eventArguments:t$(a,{trigger:"navigator"})})}getInitialExtremes(){let{min:t,max:i}=this.navigator.xAxis.getExtremes();return{min:t,max:i}}}let t3=x();t3.StandaloneNavigator=t3.StandaloneNavigator||t5,t3.navigator=t3.StandaloneNavigator.navigator,tc.compose(t3.Chart,t3.Axis,t3.Series);let t6=x();return g.default})()); \ No newline at end of file + */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/navigator",["highcharts/highcharts"],function(t){return i(t,t.Chart,t.Axis,t.Color,t.SeriesRegistry,t.RendererRegistry,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/navigator"]=i(t._Highcharts,t._Highcharts.Chart,t._Highcharts.Axis,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer):t.Highcharts=i(t.Highcharts,t.Highcharts.Chart,t.Highcharts.Axis,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,i,e,s,a,r,o)=>(()=>{"use strict";let n;var h,l={532:t=>{t.exports=e},960:t=>{t.exports=i},620:t=>{t.exports=s},608:t=>{t.exports=r},540:t=>{t.exports=o},512:t=>{t.exports=a},944:i=>{i.exports=t}},d={};function c(t){var i=d[t];if(void 0!==i)return i.exports;var e=d[t]={exports:{}};return l[t](e,e.exports,c),e.exports}c.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return c.d(i,{a:i}),i},c.d=(t,i)=>{for(var e in i)c.o(i,e)&&!c.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},c.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var g={};c.d(g,{default:()=>t6});var p=c(944),x=c.n(p),u=c(960),m=c.n(u),v=c(532),b=c.n(v);let{isTouchDevice:f}=x(),{addEvent:M,merge:A,pick:y}=x(),E=[];function k(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function w(){let t,i,e;let s=this.legend,a=this.navigator;if(a){t=s&&s.options,i=a.xAxis,e=a.yAxis;let{scrollbarHeight:r,scrollButtonSize:o}=a;this.inverted?(a.left=a.opposite?this.chartWidth-r-a.height:this.spacing[3]+r,a.top=this.plotTop+o):(a.left=y(i.left,this.plotLeft+o),a.top=a.navigatorOptions.top||this.chartHeight-a.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+y(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),i&&e&&(this.inverted?i.options.left=e.options.left=a.left:i.options.top=e.options.top=a.top,i.setAxisSize(),e.setAxisSize())}}function O(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new n(this),y(t.redraw,!0)&&this.redraw(t.animation))}function S(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new n(this))}function z(){let t=this.options,i=t.navigator,e=t.rangeSelector;if((i&&i.enabled||e&&e.enabled)&&(!f&&"x"===this.zooming.type||f&&"x"===this.zooming.pinchType))return!1}function R(t){let i=t.navigator;if(i&&t.xAxis[0]){let e=t.xAxis[0].getExtremes();i.render(e.min,e.max)}}function D(t){let i=t.options.navigator||{},e=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(i.enabled||e.enabled)&&(A(!0,this.options.navigator,i),A(!0,this.options.scrollbar,e),delete t.options.navigator,delete t.options.scrollbar)}let T={compose:function(t,i){if(x().pushUnique(E,t)){let e=t.prototype;n=i,e.callbacks.push(R),M(t,"afterAddSeries",k),M(t,"afterSetChartSize",w),M(t,"afterUpdate",O),M(t,"beforeRender",S),M(t,"beforeShowResetZoom",z),M(t,"update",D)}}},{isTouchDevice:B}=x(),{addEvent:C,correctFloat:H,defined:W,isNumber:L,pick:P}=x();function U(){this.navigatorAxis||(this.navigatorAxis=new I(this))}function N(t){let i;let e=this.chart,s=e.options,a=s.navigator,r=this.navigatorAxis,o=e.zooming.pinchType,n=s.rangeSelector,h=e.zooming.type;if(this.isXAxis&&(a?.enabled||n?.enabled)){if("y"===h&&"zoom"===t.trigger)i=!1;else if(("zoom"===t.trigger&&"xy"===h||B&&"xy"===o)&&this.options.range){let i=r.previousZoom;W(t.min)?r.previousZoom=[this.min,this.max]:i&&(t.min=i[0],t.max=i[1],r.previousZoom=void 0)}}void 0!==i&&t.preventDefault()}class I{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),C(t,"init",U),C(t,"setExtremes",N))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,i,e,s){let a=this.axis,r=(a.pointRange||0)/2,o=P(e,a.translate(t,!0,!a.horiz)),n=P(s,a.translate(i,!0,!a.horiz));return W(e)||(o=H(o+r)),W(s)||(n=H(n-r)),L(o)&&L(n)||(o=n=void 0),{min:o,max:n}}}var X=c(620),_=c.n(X),Y=c(512),G=c.n(Y);let{parse:F}=_(),{seriesTypes:V}=G(),j={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:F("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===V.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:Z,isNumber:q,pick:J}=x(),K={rect:function(t,i,e,s,a){return a&&a.r?function(t,i,e,s,a){let r=a?.r||0;return[["M",t+r,i],["L",t+e-r,i],["A",r,r,0,0,1,t+e,i+r],["L",t+e,i+s-r],["A",r,r,0,0,1,t+e-r,i+s],["L",t+r,i+s],["A",r,r,0,0,1,t,i+s-r],["L",t,i+r],["A",r,r,0,0,1,t+r,i],["Z"]]}(t,i,e,s,a):[["M",t,i],["L",t+e,i],["L",t+e,i+s],["L",t,i+s],["Z"]]}},{relativeLength:Q}=x(),$={"navigator-handle":function(t,i,e,s,a={}){let r=a.width?a.width/2:e,o=Q(a.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=a.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...K.rect(-r-1,.5,2*r+1,s,{r:o})]}};var tt=c(608),ti=c.n(tt);let{defined:te}=x(),{setOptions:ts}=x(),{composed:ta}=x(),{getRendererType:tr}=ti(),{setFixedRange:to}={setFixedRange:function(t){let i=this.xAxis[0];te(i.dataMax)&&te(i.dataMin)&&t?this.fixedRange=Math.min(t,i.dataMax-i.dataMin):this.fixedRange=t}},{addEvent:tn,extend:th,pushUnique:tl}=x();function td(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let tc={compose:function(t,i,e){I.compose(i),tl(ta,"Navigator")&&(t.prototype.setFixedRange=to,th(tr().prototype.symbols,$),tn(e,"afterUpdate",td),ts({navigator:j}))}},{composed:tg}=x(),{addEvent:tp,defined:tx,pick:tu,pushUnique:tm}=x();!function(t){let i;function e(t){let i=tu(t.options&&t.options.min,t.min),e=tu(t.options&&t.options.max,t.max);return{axisMin:i,axisMax:e,scrollMin:tx(t.dataMin)?Math.min(i,t.min,t.dataMin,tu(t.threshold,1/0)):i,scrollMax:tx(t.dataMax)?Math.max(e,t.max,t.dataMax,tu(t.threshold,-1/0)):e}}function s(){let t=this.scrollbar,i=t&&!t.options.opposite,e=this.horiz?2:i?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[e]+=t.size+(t.options.margin||0))}function a(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new i(t.chart.renderer,t.options.scrollbar,t.chart),tp(t.scrollbar,"changed",function(i){let s,a;let{axisMin:r,axisMax:o,scrollMin:n,scrollMax:h}=e(t),l=h-n;if(tx(r)&&tx(o)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=n+l*this.to,a=n+l*this.from):(s=n+l*(1-this.from),a=n+l*(1-this.to)),this.shouldUpdateExtremes(i.DOMType)){let e="mousemove"!==i.DOMType&&"touchmove"!==i.DOMType&&void 0;t.setExtremes(a,s,!0,e,i)}else this.setRange(this.from,this.to)}}))}function r(){let t,i,s;let{scrollMin:a,scrollMax:r}=e(this),o=this.scrollbar,n=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(o&&h){if(this.horiz)this.opposite||(h[1]+=n),o.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let i;this.opposite&&(h[0]+=n),i=o.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,o.position(i,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=o.size+(o.options.margin||0),isNaN(a)||isNaN(r)||!tx(this.min)||!tx(this.max)||this.dataMin===this.dataMax)o.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);i=t*this.min,s=t*(this.max+1),o.setRange(i,s)}else i=(this.min-a)/(r-a),s=(this.max-a)/(r-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?o.setRange(i,s):o.setRange(1-s,1-i)}}t.compose=function(t,e){tm(tg,"Axis.Scrollbar")&&(i=e,tp(t,"afterGetOffset",s),tp(t,"afterInit",a),tp(t,"afterRender",r))}}(h||(h={}));let tv=h,tb={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:tf}=x(),{addEvent:tM,correctFloat:tA,crisp:ty,defined:tE,destroyObjectProperties:tk,fireEvent:tw,merge:tO,pick:tS,removeEvent:tz}=x();class tR{static compose(t){tv.compose(t,tR)}static swapXY(t,i){return i&&t.forEach(t=>{let i;let e=t.length;for(let s=0;sthis.calculatedWidth?i.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-e),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-e)}}destroy(){let t=this,i=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(i){t[i]&&t[i].destroy&&(t[i]=t[i].destroy())}),i&&t===i.scrollbar&&(i.scrollbar=null,tk(i.scrollbarButtons))}drawScrollbarButton(t){let i=this.renderer,e=this.scrollbarButtons,s=this.options,a=this.size,r=i.g().add(this.group);if(e.push(r),s.buttonsEnabled){let o=i.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||o.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),o.attr(o.crisp({x:-.5,y:-.5,width:a,height:a,r:s.buttonBorderRadius},o.strokeWidth()));let n=i.path(tR.swapXY([["M",a/2+(t?-1:1),a/2-3],["L",a/2+(t?-1:1),a/2+3],["L",a/2+(t?2:-2),a/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(e[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,i,e){this.scrollbarButtons=[],this.renderer=t,this.userOptions=i,this.options=tO(tb,tf.scrollbar,i),this.options.margin=tS(this.options.margin,10),this.chart=e,this.size=tS(this.options.size,this.options.height),i.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let i=this.chart.pointer?.normalize(t)||t,e=this.cursorToScrollbarPosition(i);this.chartX=e.chartX,this.chartY=e.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let i;let e=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",a=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(i=this.cursorToScrollbarPosition(e)[s]-this[s],this.hasDragged=!0,this.updatePosition(a[0]+i,a[1]+i),this.hasDragged&&tw(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&tw(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,i,e,s){let{buttonsEnabled:a,margin:r=0,vertical:o}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=i+this.trackBorderWidth,this.width=e,this.height=s,this.xOffset=h,this.yOffset=l,o?(this.width=this.yOffset=e=l=this.size,this.xOffset=h=0,this.yOffset=l=a?this.size:0,this.barWidth=s-(a?2*e:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=a?this.size:0,this.barWidth=e-(a?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:e,height:s}),this.scrollbarButtons[1][n]({translateX:o?0:e-h,translateY:o?s-l:0})}removeEvents(){this._events.forEach(function(t){tz.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,i=this.options,e=this.size,s=this.chart.styledMode,a=t.g("scrollbar").attr({zIndex:i.zIndex}).hide().add();this.group=a,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:i.trackBorderRadius||0,height:e,width:e}).add(a),s||this.track.attr({fill:i.trackBackgroundColor,stroke:i.trackBorderColor,"stroke-width":i.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-ty(0,r),y:-ty(0,r)}),this.scrollbarGroup=t.g().add(a),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:e-r,width:e-r,r:i.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(tR.swapXY([["M",-3,e/4],["L",-3,2*e/3],["M",0,e/4],["L",0,2*e/3],["M",3,e/4],["L",3,2*e/3]],i.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:i.barBackgroundColor,stroke:i.barBorderColor,"stroke-width":i.barBorderWidth}),this.scrollbarRifles.attr({stroke:i.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-ty(0,this.scrollbarStrokeWidth),-ty(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,i){let e,s;let a=this.options,r=a.vertical,o=a.minWidth,n=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!tE(n))return;let l=n*Math.min(i,1);e=Math.ceil(n*(t=Math.max(t,0))),this.calculatedWidth=s=tA(l-e),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return tS(this.options.liveRedraw,x().svg&&!x().isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!tE(t)}trackClick(t){let i=this.chart.pointer?.normalize(t)||t,e=this.to-this.from,s=this.y+this.scrollbarTop,a=this.x+this.scrollbarLeft;this.options.vertical&&i.chartY>s||!this.options.vertical&&i.chartX>a?this.updatePosition(this.from+e,this.to+e):this.updatePosition(this.from-e,this.to-e),tw(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,tO(!0,this.options,t),this.chart)}updatePosition(t,i){i>1&&(t=tA(1-tA(i-t)),i=1),t<0&&(i=tA(i-t),t=0),this.from=t,this.to=i}}tR.defaultOptions=tb,tf.scrollbar=tO(!0,tR.defaultOptions,tf.scrollbar);var tD=c(540),tT=c.n(tD);let{defaultOptions:tB}=x(),{isTouchDevice:tC}=x(),{prototype:{symbols:tH}}=tT(),{addEvent:tW,clamp:tL,correctFloat:tP,defined:tU,destroyObjectProperties:tN,erase:tI,extend:tX,find:t_,fireEvent:tY,isArray:tG,isNumber:tF,merge:tV,pick:tj,removeEvent:tZ,splat:tq}=x();function tJ(t,...i){let e=[].filter.call(i,tF);if(e.length)return Math[t].apply(0,e)}class tK{static compose(t,i,e){T.compose(t,tK),tc.compose(t,i,e)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,i,e,s){let a=this.navigatorOptions.handles.height;this.handles[i][s](e?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-a)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-a/2-1)})}drawOutline(t,i,e,s){let a=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),o=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,g=d-o,p=d+c,x=this.left,u,m;e?(u=d+i+n,i=d+t+n,m=[["M",x+c,d-h-n],["L",x+c,u],["L",x,u],["M",x,i],["L",x+c,i],["L",x+c,d+l+h]],a&&m.push(["M",x+c,u-o],["L",x+c,i+o])):(x-=h,t+=x+h-n,i+=x+h-n,m=[["M",x,g],["L",t,g],["L",t,p],["M",i,p],["L",i,g],["L",x+l+2*h,g]],a&&m.push(["M",t-o,g],["L",i+o,g])),this.outline[s]({d:m})}drawMasks(t,i,e,s){let a,r,o,n;let h=this.left,l=this.top,d=this.height;e?(o=[h,h,h],n=[l,l+t,l+i],r=[d,d,d],a=[t,i-t,this.size-i]):(o=[h,h+t,h+i],n=[l,l,l],r=[t,i-t,this.size-i],a=[d,d,d]),this.shades.forEach((t,i)=>{t[s]({x:o[i],y:n[i],width:r[i],height:a[i]})})}renderElements(){let t=this,i=t.navigatorOptions,e=i.maskInside,s=t.chart,a=s.inverted,r=s.renderer,o={cursor:a?"ns-resize":"ew-resize"},n=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!e,e,!e].forEach((e,a)=>{let h=t.shades[a]??(t.shades[a]=r.rect().addClass("highcharts-navigator-mask"+(1===a?"-inside":"-outside")).add(n));s.styledMode||(h.attr({fill:e?i.maskFill:"rgba(0,0,0,0)"}),1===a&&h.css(o))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(n)),s.styledMode||t.outline.attr({"stroke-width":i.outlineWidth,stroke:i.outlineColor}),i.handles?.enabled){let e=i.handles,{height:a,width:h}=e;[0,1].forEach(i=>{let l=e.symbols[i];if(t.handles[i]&&t.handles[i].symbolUrl===l){if(!t.handles[i].isImg&&t.handles[i].symbolName!==l){let e=tH[l].call(tH,-h/2-1,0,h,a);t.handles[i].attr({d:e}),t.handles[i].symbolName=l}}else t.handles[i]?.destroy(),t.handles[i]=r.symbol(l,-h/2-1,0,h,a,e),t.handles[i].attr({zIndex:7-i}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][i]).add(n),t.addMouseEvents();s.inverted&&t.handles[i].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(a+h)/2}),s.styledMode||t.handles[i].attr({fill:e.backgroundColor,stroke:e.borderColor,"stroke-width":e.lineWidth,width:e.width,height:e.height,x:-h/2-1,y:0}).css(o)})}}update(t,i=!1){let e=this.chart,s=e.options.chart.inverted!==e.scrollbar?.options.vertical;if(tV(!0,e.options.navigator,t),this.navigatorOptions=e.options.navigator||{},this.setOpposite(),tU(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(e);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{tZ(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(tW(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let i=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:i,[e.inverted?"width":"height"]:this.height,[e.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[e.inverted?"width":"height"]:this.height},!1)}i&&e.redraw()}render(t,i,e,s){let a=this.chart,r=this.xAxis,o=r.pointRange||0,n=r.navigatorAxis.fake?a.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=a.inverted,c=a.xAxis[0].minRange,g=a.xAxis[0].options.maxRange,p=this.scrollButtonSize,x,u,m,v=this.scrollbarHeight,b,f;if(this.hasDragged&&!tU(e))return;if(this.isDirty&&this.renderElements(),t=tP(t-o/2),i=tP(i+o/2),!tF(t)||!tF(i)){if(!l)return;e=0,s=tj(r.width,n.width)}this.left=tj(r.left,a.plotLeft+p+(d?a.plotWidth:0));let M=this.size=b=tj(r.len,(d?a.plotHeight:a.plotWidth)-2*p);x=d?v:b+2*p,e=tj(e,r.toPixels(t,!0)),s=tj(s,r.toPixels(i,!0)),tF(e)&&Math.abs(e)!==1/0||(e=0,s=x);let A=r.toValue(e,!0),y=r.toValue(s,!0),E=Math.abs(tP(y-A));Eg&&(this.grabbedLeft?e=r.toPixels(y-g-o,!0):this.grabbedRight&&(s=r.toPixels(A+g+o,!0))),this.zoomedMax=tL(Math.max(e,s),0,M),this.zoomedMin=tL(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(e,s),0,M),this.range=this.zoomedMax-this.zoomedMin,M=Math.round(this.zoomedMax);let k=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),f=l&&!this.hasDragged?"animate":"attr",this.drawMasks(k,M,d,f),this.drawOutline(k,M,d,f),this.navigatorOptions.handles.enabled&&(this.drawHandle(k,0,d,f),this.drawHandle(M,1,d,f))),this.scrollbar&&(d?(m=this.top-p,u=this.left-v+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),v=b+2*p):(m=this.top+(h?this.height:-v),u=this.left-p),this.scrollbar.position(u,m,x,v),this.scrollbar.setRange(this.zoomedMin/(b||1),this.zoomedMax/(b||1))),this.rendered=!0,this.isDirty=!1,tY(this,"afterRender")}addMouseEvents(){let t=this,i=t.chart,e=i.container,s=[],a,r;t.mouseMoveHandler=a=function(i){t.onMouseMove(i)},t.mouseUpHandler=r=function(i){t.onMouseUp(i)},(s=t.getPartsEvents("mousedown")).push(tW(i.renderTo,"mousemove",a),tW(e.ownerDocument,"mouseup",r),tW(i.renderTo,"touchmove",a),tW(e.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(tW(t.series[0].xAxis,"foundExtremes",function(){i.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let i=this,e=[];return["shades","handles"].forEach(function(s){i[s].forEach(function(a,r){e.push(tW(a.element,t,function(t){i[s+"Mousedown"](t,r)}))})}),e}shadesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=this.xAxis,a=this.zoomedMin,r=this.size,o=this.range,n=this.left,h=t.chartX,l,d,c,g;e.inverted&&(h=t.chartY,n=this.top),1===i?(this.grabbedCenter=h,this.fixedWidth=o,this.dragOffset=h-a):(g=h-n-o/2,0===i?g=Math.max(0,g):2===i&&g+o>=r&&(g=r-o,this.reversedExtremes?(g-=o,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),g!==a&&(this.fixedWidth=o,tU((c=s.navigatorAxis.toFixedRange(g,g+o,d,l)).min)&&tY(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=e.xAxis[0],a=this.reversedExtremes;0===i?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=a?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=a?s.max:s.min),e.setFixedRange(void 0)}onMouseMove(t){let i=this,e=i.chart,s=i.navigatorSize,a=i.range,r=i.dragOffset,o=e.inverted,n=i.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=e.pointer?.normalize(t)||t).chartX,o&&(n=i.top,h=t.chartY),i.grabbedLeft?(i.hasDragged=!0,i.render(0,0,h-n,i.otherHandlePos)):i.grabbedRight?(i.hasDragged=!0,i.render(0,0,i.otherHandlePos,h-n)):i.grabbedCenter&&(i.hasDragged=!0,hs+r-a&&(h=s+r-a),i.render(0,0,h-r,h-r+a)),i.hasDragged&&i.scrollbar&&tj(i.scrollbar.options.liveRedraw,!tC&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){i.onMouseUp(t)},0)))}onMouseUp(t){let i,e,s,a,r,o;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,g=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?a=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(a=this.reversedExtremes?s.dataMax:s.dataMin),tU((o=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,a,r)).min)&&tY(this,"setRange",{min:Math.min(o.min,o.max),max:Math.max(o.min,o.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&tF(this.zoomedMin)&&tF(this.zoomedMax)&&(e=Math.round(this.zoomedMin),i=Math.round(this.zoomedMax),this.shades&&this.drawMasks(e,i,c,g),this.outline&&this.drawOutline(e,i,c,g),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(e,0,c,g),this.drawHandle(i,1,c,g)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){tZ(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&tZ(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let i=t.options,e=i.navigator||{},s=e.enabled,a=i.scrollbar||{},r=a.enabled,o=s&&e.height||0,n=r&&a.height||0,h=a.buttonsEnabled&&n||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=o,this.scrollbarHeight=n,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=e,this.scrollbarOptions=a,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,g=t.yAxis.length,p=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let i=this.getXAxisOffsets();l.xAxis=new(b())(t,tV({breaks:p.options.breaks,ordinal:p.options.ordinal,overscroll:p.options.overscroll},e.xAxis,{type:"datetime",yAxis:e.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:p.options.ordinal?0:p.options.minPadding,maxPadding:p.options.ordinal?0:p.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:i,width:o}:{offsets:i,height:o}),"xAxis"),l.yAxis=new(b())(t,tV(e.yAxis,{alignTicks:!1,offset:0,index:g,isInternal:!0,reversed:tj(e.yAxis&&e.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:o}:{height:o}),"yAxis"),d||e.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=tW(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(i,e){let s=t.xAxis[0],a=s.getExtremes(),r=s.len-2*h,o=tJ("min",s.options.min,a.dataMin),n=tJ("max",s.options.max,a.dataMax)-o;return e?i*n/r+o:r*(i-o)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=I.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let i=tV(t.options.scrollbar,{vertical:t.inverted});!tF(i.margin)&&l.navigatorEnabled&&(i.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new tR(t.renderer,i,t),tW(l.scrollbar,"changed",function(t){let i=l.size,e=i*this.to,s=i*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,e),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,i=this.navigatorEnabled,e=this.chart;this.opposite=tj(t.opposite,!!(!i&&e.inverted))}getUnionExtremes(t){let i;let e=this.chart.xAxis[0],s=this.chart.time,a=this.xAxis,r=a.options,o=e.options;return t&&null===e.dataMin||(i={dataMin:tj(s.parse(r?.min),tJ("min",s.parse(o.min),e.dataMin,a.dataMin,a.min)),dataMax:tj(s.parse(r?.max),tJ("max",s.parse(o.max),e.dataMax,a.dataMax,a.max))}),i}setBaseSeries(t,i){let e=this.chart,s=this.baseSeries=[];t=t||e.options&&e.options.navigator.baseSeries||(e.series.length?t_(e.series,t=>!t.options.isInternal).index:0),(e.series||[]).forEach((i,e)=>{!i.options.isInternal&&(i.options.showInNavigator||(e===t||i.options.id===t)&&!1!==i.options.showInNavigator)&&s.push(i)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,i)}updateNavigatorSeries(t,i){let e=this,s=e.chart,a=e.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},o=e.series=(e.series||[]).filter(t=>{let i=t.baseSeries;return!(0>a.indexOf(i))||(i&&(tZ(i,"updatedData",e.updatedDataHandler),delete i.navigatorSeries),t.chart&&t.destroy(),!1)}),n,h,l=e.navigatorOptions.series,d;a&&a.length&&a.forEach(t=>{let c=t.navigatorSeries,g=tX({color:t.color,visible:t.visible},tG(l)?tB.navigator.series:l);if(c&&!1===e.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+a.length,d=(n=t.options||{}).navigatorOptions||{},g.dataLabels=tq(g.dataLabels),(h=tV(n,r,g,d)).pointRange=tj(g.pointRange,d.pointRange,tB.plotOptions[h.type||"line"].pointRange);let p=d.data||g.data;e.hasNavigatorData=e.hasNavigatorData||!!p,h.data=p||n.data?.slice(0),c&&c.options?c.update(h,i):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,o.push(t.navigatorSeries))}),(l.data&&!(a&&a.length)||tG(l))&&(e.hasNavigatorData=!1,(l=tq(l)).forEach((t,i)=>{r.name="Navigator "+(o.length+1),(h=tV(tB.navigator.series,{color:s.series[i]&&!s.series[i].options.isInternal&&s.series[i].color||s.options.colors[i]||s.options.colors[0]},r,t)).data=t.data,h.data&&(e.hasNavigatorData=!0,o.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,i=t.baseSeries||[];i[0]&&i[0].xAxis&&i[0].eventsToUnbind.push(tW(i[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),i.forEach(e=>{e.eventsToUnbind.push(tW(e,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),e.eventsToUnbind.push(tW(e,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&e.xAxis&&e.eventsToUnbind.push(tW(e,"updatedData",this.updatedDataHandler)),e.eventsToUnbind.push(tW(e,"remove",function(){i&&tI(i,e),this.navigatorSeries&&t.series&&(tI(t.series,this.navigatorSeries),tU(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,i){return Math.min(t,i.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let i=this.getUnionExtremes(!0);i&&(i.dataMin!==t.min||i.dataMax!==t.max)&&(t.min=i.dataMin,t.max=i.dataMax)}}modifyBaseAxisExtremes(){let t,i;let e=this.chart.navigator,s=this.getExtremes(),a=s.min,r=s.max,o=s.dataMin,n=s.dataMax,h=r-a,l=e.stickToMin,d=e.stickToMax,c=tj(this.ordinal?.convertOverscroll(this.options.overscroll),0),g=e.series&&e.series[0],p=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(i=o)+h),d&&(t=n+c,l||(i=Math.max(o,t-h,e.getBaseSeriesMin(g&&g.xData?g.xData[0]:-Number.MAX_VALUE)))),p&&(l||d)&&tF(i)&&(this.min=this.userMin=i,this.max=this.userMax=t)),e.stickToMin=e.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,i=this.navigatorSeries,e=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=tj(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,e),t.stickToMin=t.shouldStickToMin(this,t),i&&!t.hasNavigatorData&&(i.options.pointStart=this.getColumn("x")[0],i.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,i){let e=i.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,a=s.max,r=s.min,o=s.options.range;return!!(tF(a)&&tF(r))&&(o&&a-e>0?a-e{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{tN(t)}),this.navigatorEnabled=!1}}let tQ={chart:{height:70,margin:[0,5,0,5]},exporting:{enabled:!1},legend:{enabled:!1},navigator:{enabled:!1},plotOptions:{series:{states:{hover:{enabled:!1}},marker:{enabled:!1}}},scrollbar:{enabled:!1},title:{text:""},tooltip:{enabled:!1},xAxis:{visible:!1},yAxis:{height:0,visible:!1}},{merge:t$,addEvent:t0,fireEvent:t1,pick:t2}=x();class t5{static navigator(t,i){let e=new t5(t,i);return x().navigators?x().navigators.push(e):x().navigators=[e],e}constructor(t,i){this.boundAxes=[],this.userOptions=i,this.chartOptions=t$(x().getOptions(),tQ,{navigator:i}),this.chartOptions.chart&&i.height&&(this.chartOptions.chart.height=i.height);let e=new(m())(t,this.chartOptions);e.options=t$(e.options,{navigator:{enabled:!0},scrollbar:{enabled:!0}}),this.chartOptions.navigator&&this.chartOptions.scrollbar&&(this.chartOptions.navigator.enabled=!0,this.chartOptions.scrollbar.enabled=!0),this.navigator=new tK(e),e.navigator=this.navigator,this.initNavigator()}bind(t,i=!0){let e=this,s=t instanceof m()?t.xAxis[0]:t;if(!(s instanceof b()))return;let{min:a,max:r}=this.navigator.xAxis,o=[];if(i){let t=t0(s,"setExtremes",t=>{("pan"===t.trigger||"zoom"===t.trigger||"mouseWheelZoom"===t.trigger)&&e.setRange(t.min,t.max,!0,"pan"!==t.trigger,{trigger:s})});o.push(t)}let n=t0(this.navigator,"setRange",t=>{s.setExtremes(t.min,t.max,t.redraw,t.animation)});o.push(n);let h=this.boundAxes.filter(function(t){return t.axis===s})[0];h||(h={axis:s,callbacks:[]},this.boundAxes.push(h)),h.callbacks=o,s.series.forEach(t=>{t.options.showInNavigator&&e.addSeries(t.options)}),s.setExtremes(a,r),t0(s,"destroy",t=>{t.keepEvents||this.unbind(s)})}unbind(t){if(!t){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0;return}let i=t instanceof b()?t:t.xAxis[0];for(let t=this.boundAxes.length-1;t>=0;t--)this.boundAxes[t].axis===i&&(this.boundAxes[t].callbacks.forEach(t=>t()),this.boundAxes.splice(t,1))}destroy(){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0,this.navigator.destroy(),this.navigator.chart.destroy()}update(t,i){this.chartOptions=t$(this.chartOptions,t.height&&{chart:{height:t.height}},{navigator:t}),this.navigator.chart.update(this.chartOptions,i)}redraw(){this.navigator.chart.redraw()}addSeries(t){this.navigator.chart.addSeries(t$(t,{showInNavigator:t2(t.showInNavigator,!0)})),this.navigator.setBaseSeries()}initNavigator(){let t=this.navigator;t.top=1,t.xAxis.setScale(),t.yAxis.setScale(),t.xAxis.render(),t.yAxis.render(),t.series?.forEach(t=>{t.translate(),t.render(),t.redraw()});let{min:i,max:e}=this.getInitialExtremes();t.chart.xAxis[0].userMin=i,t.chart.xAxis[0].userMax=e,t.render(i,e)}getRange(){let{min:t,max:i}=this.navigator.chart.xAxis[0].getExtremes(),{userMin:e,userMax:s,min:a,max:r}=this.navigator.xAxis.getExtremes();return{min:t2(t,a),max:t2(i,r),dataMin:a,dataMax:r,userMin:e,userMax:s}}setRange(t,i,e,s,a){t1(this.navigator,"setRange",{min:t,max:i,redraw:e,animation:s,eventArguments:t$(a,{trigger:"navigator"})})}getInitialExtremes(){let{min:t,max:i}=this.navigator.xAxis.getExtremes();return{min:t,max:i}}}let t3=x();t3.StandaloneNavigator=t3.StandaloneNavigator||t5,t3.navigator=t3.StandaloneNavigator.navigator,tc.compose(t3.Chart,t3.Axis,t3.Series);let t6=x();return g.default})()); \ No newline at end of file diff --git a/modules/navigator.src.js b/modules/navigator.src.js index 051637c004..1851183241 100644 --- a/modules/navigator.src.js +++ b/modules/navigator.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/navigator * @requires highcharts * diff --git a/modules/networkgraph.js b/modules/networkgraph.js index 33aa230cc1..4ea0b342c9 100644 --- a/modules/networkgraph.js +++ b/modules/networkgraph.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/networkgraph * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/networkgraph",["highcharts/highcharts"],function(t){return e(t,t.SVGElement,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/networkgraph"]=e(t._Highcharts,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SVGElement,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s,o={28:t=>{t.exports=e},512:t=>{t.exports=i},563:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return o[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};a.d(n,{default:()=>tS});var h=a(563),l=/*#__PURE__*/a.n(h),d=a(28),p=/*#__PURE__*/a.n(d);let{composed:c}=l(),{addEvent:u,pushUnique:f}=l();function m(){let t,e,i;let s=this;s.container&&(t=u(s.container,"mousedown",t=>{let o=s.hoverPoint;o&&o.series&&o.series.hasDraggableNodes&&o.series.options.draggable&&(o.series.onMouseDown(o,t),e=u(s.container,"mousemove",t=>o&&o.series&&o.series.onMouseMove(o,t)),i=u(s.container.ownerDocument,"mouseup",t=>(e(),i(),o&&o.series&&o.series.onMouseUp(o,t))))})),u(s,"destroy",function(){t()})}let g={compose:function(t){f(c,"DragNodes")&&u(t,"load",m)},onMouseDown:function(t,e){let i=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:i.chartX,chartY:i.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s;let o=this.chart,r=o.pointer?.normalize(e)||e,a=t.fixedPosition.chartX-r.chartX,n=t.fixedPosition.chartY-r.chartY,h=o.graphLayoutsLookup;(Math.abs(a)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-a,s=t.fixedPosition.plotY-n,o.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),h.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath(this.options.states.hover.halo.size)})}},{setAnimation:y}=l(),{composed:x}=l(),{addEvent:b,pushUnique:k}=l();function v(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function N(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function P(){let t,e=!1,i=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup){for(y(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(i);e&&this.series.forEach(t=>{t&&t.layout&&t.render()})}}let w={compose:function(t){k(x,"GraphLayout")&&(b(t,"afterPrint",v),b(t,"beforePrint",N),b(t,"predraw",L),b(t,"render",P))},integrations:{},layouts:{}};var S=a(512),M=/*#__PURE__*/a.n(S);let{series:{prototype:X,prototype:{pointClass:{prototype:T}}}}=M(),{defined:Y,extend:D,find:E,merge:F,pick:C}=l();!function(t){function e(){return this.data=[].concat(this.points||[],this.nodes),X.destroy.apply(this,arguments)}function i(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),X.setData.apply(this,arguments)}function s(t){let e=arguments,i=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&i.forEach(t=>{t&&t.series&&(T.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&T.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&T.setState.apply(t.toNode,e)))}),T.setState.apply(this,e)}function o(t,e,i,s){let o=this.series.options.nodes,r=this.series.options.data,a=r?.length||0,n=r?.[this.index];if(T.update.call(this,t,!this.isNode&&e,i,s),this.isNode){let t=(o||[]).reduce((t,e,i)=>this.id===e.id?i:t,-1),s=F(o&&o[t]||{},r?.[this.index]||{});r&&(n?r[this.index]=n:r.length=a),o?t>=0?o[t]=s:o.push(s):this.series.options.nodes=[s],C(e,!0)&&this.series.chart.redraw(i)}}t.compose=function(t,r){let a=t.prototype,n=r.prototype;return a.setNodeState=s,a.setState=s,a.update=o,n.destroy=e,n.setData=i,r},t.createNode=function(t){let e=this.pointClass,i=(t,e)=>E(t,t=>t.id===e),s=i(this.nodes,t),o;if(!s){o=this.options.nodes&&i(this.options.nodes,t);let r=new e(this,D({className:"highcharts-node",isNode:!0,id:t,y:1},o));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let t=0,e=0;return r.linksTo.forEach(e=>{t+=e.weight||0}),r.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},r.offset=function(t,e){let i=0;for(let s=0;s{e.outgoing&&t++}),!r.linksTo.length||t!==r.linksTo.length},r.index=this.nodes.push(r)-1,s=r}return s.formatPrefix="node",s.name=s.name||s.options.id||"",s.mass=C(s.options.mass,s.options.marker&&s.options.marker.radius,this.options.marker&&this.options.marker.radius,4),s},t.destroy=e,t.generatePoints=function(){let t=this.chart,e={};X.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(i=>{Y(i.from)&&(e[i.from]||(e[i.from]=this.createNode(i.from)),e[i.from].linksFrom.push(i),i.fromNode=e[i.from],t.styledMode?i.colorIndex=C(i.options.colorIndex,e[i.from].colorIndex):i.color=i.options.color||e[i.from].color),Y(i.to)&&(e[i.to]||(e[i.to]=this.createNode(i.to)),e[i.to].linksTo.push(i),i.toNode=e[i.to]),i.name=i.name||i.id},this),this.nodeLookup=e},t.setNodeState=s,t.updateNode=o}(s||(s={}));let I=s,{series:{prototype:A,prototype:{pointClass:O}}}=M(),{addEvent:R,css:H,defined:B,extend:G,pick:q}=l();class _ extends O{destroy(){return this.isNode&&this.linksFrom.concat(this.linksTo).forEach(function(t){t.destroyElements&&t.destroyElements()}),this.series.layout.removeElementFromCollection(this,this.series.layout[this.isNode?"nodes":"links"]),O.prototype.destroy.apply(this,arguments)}getDegree(){let t=this.isNode?this.linksFrom.length+this.linksTo.length:0;return 0===t?1:t}getLinkAttributes(){let t=this.series.options.link,e=this.options;return{"stroke-width":q(e.width,t.width),stroke:e.color||t.color,dashstyle:e.dashStyle||t.dashStyle,opacity:q(e.opacity,t.opacity,1)}}getLinkPath(){let t=this.fromNode,e=this.toNode;return t.plotX>e.plotX&&(t=this.toNode,e=this.fromNode),[["M",t.plotX||0,t.plotY||0],["L",e.plotX||0,e.plotY||0]]}getMass(){let t=this.fromNode.mass,e=this.toNode.mass,i=t+e;return{fromNode:1-t/i,toNode:1-e/i}}constructor(t,e,i){super(t,e,i),this.series.options.draggable&&!this.series.chart.styledMode&&(R(this,"mouseOver",function(){H(this.series.chart.container,{cursor:"move"})}),R(this,"mouseOut",function(){H(this.series.chart.container,{cursor:"default"})}))}isValid(){return!this.isNode||B(this.id)}redrawLink(){let t;let e=this.getLinkPath();if(this.graphic){this.shapeArgs={d:e},this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})),this.graphic.animate(this.shapeArgs);let i=e[0],s=e[1];"M"===i[0]&&"L"===s[0]&&(this.plotX=(i[1]+s[1])/2,this.plotY=(i[2]+s[2])/2)}}remove(t,e){let i=this.series,s=i.options.nodes||[],o,r=s.length;if(this.isNode){for(i.points=[],[].concat(this.linksFrom).concat(this.linksTo).forEach(function(t){(o=t.fromNode.linksFrom.indexOf(t))>-1&&t.fromNode.linksFrom.splice(o,1),(o=t.toNode.linksTo.indexOf(t))>-1&&t.toNode.linksTo.splice(o,1),A.removePoint.call(i,i.data.indexOf(t),!1,!1)}),i.points=i.data.slice(),i.nodes.splice(i.nodes.indexOf(this),1);r--;)if(s[r].id===this.options.id){i.options.nodes.splice(r,1);break}this&&this.destroy(),i.isDirty=!0,i.isDirtyData=!0,t&&i.chart.redraw(t)}else i.removePoint(i.data.indexOf(this),t,e)}renderLink(){let t;this.graphic||(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})))}}G(_.prototype,{setState:I.setNodeState});let K={attractive:function(t,e,i,s){let o=t.getMass(),r=i.x/s*e,a=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=r*o.fromNode/t.fromNode.degree,t.fromNode.dispY-=a*o.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=r*o.toNode/t.toNode.degree,t.toNode.dispY+=a*o.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let o=s.getDegree(),r=o*(1+o/2);s.dispX+=(e-s.plotX)*t*r/s.degree,s.dispY+=(i-s.plotY)*t*r/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}};class U{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let t=this.box.width/2,e=this.box.height/2;this.nodes[0]=new U({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new U({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new U({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new U({left:this.box.left,top:this.box.top+e,width:t,height:e})}getBoxPosition(t){let e=t.plotXt?1:0)}},{win:V}=l(),{clamp:Q,defined:$,isFunction:W,fireEvent:J,pick:Z}=l();class tt{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(t){w.compose(t),w.integrations.euler=K,w.integrations.verlet=z,w.layouts["reingold-fruchterman"]=tt}init(t){this.options=t,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=w.integrations[t.integration],this.enableSimulation=t.enableSimulation,this.attractiveForce=Z(t.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=Z(t.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=t.approximation}updateSimulation(t){this.enableSimulation=Z(t,this.options.enableSimulation)}start(){let t=this.series,e=this.options;this.currentStep=0,this.forces=t[0]&&t[0].forces||[],this.chart=t[0]&&t[0].chart,this.initialRendering&&(this.initPositions(),t.forEach(function(t){t.finishedAnimating=!0,t.render()})),this.setK(),this.resetSimulation(e),this.enableSimulation&&this.step()}step(){let t=this.series;for(let t of(this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter()),this.forces||[]))this[t+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(let e of t)e.chart&&e.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&V.cancelAnimationFrame(this.simulation),this.simulation=V.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(t=>{J(t,"afterSimulation")}))}}stop(){this.simulation&&V.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=Z(t,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new j(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if(W(t))for(let e of(t.call(this),this.nodes))$(e.prevX)||(e.prevX=e.plotX),$(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else"circle"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t;let e=this.box,i=this.nodes,s=2*Math.PI/(i.length+1),o=i.filter(function(t){return 0===t.linksTo.length}),r={},a=this.options.initialPositionRadius,n=t=>{for(let e of t.linksFrom||[])r[e.toNode.id]||(r[e.toNode.id]=!0,h.push(e.toNode),n(e.toNode))},h=[];for(let t of o)h.push(t),n(t);if(h.length)for(let t of i)-1===h.indexOf(t)&&h.push(t);else h=i;for(let i=0,o=h.length;i{let e=t*t/Math.PI;return e-Math.floor(e)};for(let r=0,a=i.length;rthis.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let o of this.nodes)s===o||s.fixedPosition||(i=this.getDistXY(s,o),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force("repulsive",s,t*o.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force("attractive",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let i=t.radius;t.plotX=Q(t.plotX,e.left+i,e.width-i),t.plotY=Q(t.plotY,e.top+i,e.height-i)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y:s,absX:Math.abs(i),absY:Math.abs(s)}}}let{merge:te,syncTimeout:ti}=l(),{animObject:ts}=l(),{deg2rad:to}=l(),{addEvent:tr,merge:ta,uniqueKey:tn,defined:th,extend:tl}=l();function td(t,e){e=ta(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,o=s.textPath,{attributes:r,enabled:a}=e;if(t=t||o&&o.path,o&&o.undo(),t&&a){let e=tr(s,"afterModifyTree",e=>{if(t&&a){let o=t.attr("id");o||t.attr("id",o=tn());let a={x:0,y:0};th(r.dx)&&(a.dx=r.dx,delete r.dx),th(r.dy)&&(a.dy=r.dy,delete r.dy),s.attr(a),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:tl(r,{"text-anchor":r.textAnchor,href:`${i}#${o}`}),children:n}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function tp(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),r=o-s,a=RegExp('(|]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(a,"").split(/]*>/),h=n.length,l=(t,e)=>{let{x:o,y:a}=e,n=(i.getRotationOfChar(t)-90)*to,h=Math.cos(n),l=Math.sin(n);return[[o-r*h,a-r*l],[o+s*h,a+s*l]]};for(let e=0,s=0;s{this.deferDataLabels=!1},t?ts(t.animation).defer:0):this.deferDataLabels=!1}},{addEvent:tb,defined:tk,extend:tv,merge:tN,pick:tL}=l();({compose:function(t){tr(t,"afterGetBBox",tp),tr(t,"beforeAddingDataLabel",tc);let e=t.prototype;e.setTextPath||(e.setTextPath=td)}}).compose(p());class tP extends tf{constructor(){super(...arguments),this.deferDataLabels=!0}static compose(t){g.compose(t),tt.compose(t)}deferLayout(){let t=this.options.layoutAlgorithm,e=this.chart.options.chart,i,s=this.chart.graphLayoutsStorage,o=this.chart.graphLayoutsLookup;this.visible&&(s||(this.chart.graphLayoutsStorage=s={},this.chart.graphLayoutsLookup=o=[]),(i=s[t.type])||(t.enableSimulation=tk(e.forExport)?!e.forExport:t.enableSimulation,s[t.type]=i=new w.layouts[t.type],i.init(t),o.splice(i.index,0,i)),this.layout=i,i.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),i.addElementsToCollection([this],i.series),i.addElementsToCollection(this.nodes,i.nodes),i.addElementsToCollection(this.points,i.links))}destroy(){this.layout&&this.layout.removeElementFromCollection(this,this.layout.series),I.destroy.call(this)}drawDataLabels(){let t;if(this.deferDataLabels)return;let e=this.options.dataLabels;e?.textPath&&(t=e.textPath),tf.prototype.drawDataLabels.call(this,this.nodes),e?.linkTextPath&&(e.textPath=e.linkTextPath),tf.prototype.drawDataLabels.call(this,this.data),e?.textPath&&(e.textPath=t)}generatePoints(){let t,e;for(I.generatePoints.apply(this,arguments),this.options.nodes&&this.options.nodes.forEach(function(t){this.nodeLookup[t.id]||(this.nodeLookup[t.id]=this.createNode(t.id))},this),e=this.nodes.length-1;e>=0;e--)(t=this.nodes[e]).degree=t.getDegree(),t.radius=tL(t.marker&&t.marker.radius,this.options.marker&&this.options.marker.radius,0),t.key=t.name,this.nodeLookup[t.id]||t.remove();this.data.forEach(function(t){t.formatPrefix="link"}),this.indexateNodes()}getPointsCollection(){return this.nodes||[]}indexateNodes(){this.nodes.forEach(function(t,e){t.index=e})}init(t,e){return super.init(t,e),tx.call(this),tb(this,"updatedData",()=>{this.layout&&this.layout.stop()}),tb(this,"afterUpdate",()=>{this.nodes.forEach(t=>{t&&t.series&&t.resolveColor()})}),tb(this,"afterSimulation",function(){this.deferDataLabels=!1,this.drawDataLabels()}),this}markerAttribs(t,e){let i=tf.prototype.markerAttribs.call(this,t,e);return tk(t.plotY)||(i.y=0),i.x=(t.plotX||0)-(i.width||0)/2,i}pointAttribs(t,e){let i=e||t&&t.state||"normal",s=this.options.states[i],o=tf.prototype.pointAttribs.call(this,t,i);return t&&!t.isNode&&(o=t.getLinkAttributes(),s&&(o={stroke:s.linkColor||o.stroke,dashstyle:s.linkDashStyle||o.dashstyle,opacity:tL(s.linkOpacity,o.opacity),"stroke-width":s.linkColor||o["stroke-width"]})),o}render(){let t=this.points,e=this.chart.hoverPoint,i=[];this.points=this.nodes,tg.render.call(this),this.points=t,t.forEach(function(t){t.fromNode&&t.toNode&&(t.renderLink(),t.redrawLink())}),e&&e.series===this&&this.redrawHalo(e),this.chart.hasRendered&&!this.options.dataLabels.allowOverlap&&(this.nodes.concat(this.points).forEach(function(t){t.dataLabel&&i.push(t.dataLabel)}),this.chart.hideOverlappingLabels(i))}setState(t,e){e?(this.points=this.nodes.concat(this.data),tf.prototype.setState.apply(this,arguments),this.points=this.data):tf.prototype.setState.apply(this,arguments),this.layout.simulation||t||this.render()}translate(){this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(t){t.isInside=!0,t.linksFrom.forEach(function(t){t.shapeType="path",t.y=1})})}}tP.defaultOptions=tN(tf.defaultOptions,{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,animation:{duration:50}}},dataLabels:{formatter:function(){return String(this.key??"")},linkFormatter:function(){return this.fromNode.name+"
    "+this.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"},defer:!0,animation:{defer:1e3}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}),tv(tP.prototype,{pointClass:_,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],initDataLabels:ty,buildKDTree:tu,createNode:I.createNode,drawTracker:tm.drawTracker,onMouseDown:g.onMouseDown,onMouseMove:g.onMouseMove,onMouseUp:g.onMouseUp,redrawHalo:g.redrawHalo}),M().registerSeriesType("networkgraph",tP);let tw=l();tP.compose(tw.Chart);let tS=l();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/networkgraph",["highcharts/highcharts"],function(t){return e(t,t.SVGElement,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/networkgraph"]=e(t._Highcharts,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SVGElement,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s,o={28:t=>{t.exports=e},512:t=>{t.exports=i},563:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return o[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};a.d(n,{default:()=>tS});var h=a(563),l=a.n(h),d=a(28),p=a.n(d);let{composed:c}=l(),{addEvent:u,pushUnique:f}=l();function m(){let t,e,i;let s=this;s.container&&(t=u(s.container,"mousedown",t=>{let o=s.hoverPoint;o&&o.series&&o.series.hasDraggableNodes&&o.series.options.draggable&&(o.series.onMouseDown(o,t),e=u(s.container,"mousemove",t=>o&&o.series&&o.series.onMouseMove(o,t)),i=u(s.container.ownerDocument,"mouseup",t=>(e(),i(),o&&o.series&&o.series.onMouseUp(o,t))))})),u(s,"destroy",function(){t()})}let g={compose:function(t){f(c,"DragNodes")&&u(t,"load",m)},onMouseDown:function(t,e){let i=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:i.chartX,chartY:i.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s;let o=this.chart,r=o.pointer?.normalize(e)||e,a=t.fixedPosition.chartX-r.chartX,n=t.fixedPosition.chartY-r.chartY,h=o.graphLayoutsLookup;(Math.abs(a)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-a,s=t.fixedPosition.plotY-n,o.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),h.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath(this.options.states.hover.halo.size)})}},{setAnimation:y}=l(),{composed:x}=l(),{addEvent:b,pushUnique:k}=l();function v(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function N(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function P(){let t,e=!1,i=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup){for(y(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(i);e&&this.series.forEach(t=>{t&&t.layout&&t.render()})}}let w={compose:function(t){k(x,"GraphLayout")&&(b(t,"afterPrint",v),b(t,"beforePrint",N),b(t,"predraw",L),b(t,"render",P))},integrations:{},layouts:{}};var S=a(512),M=a.n(S);let{series:{prototype:X,prototype:{pointClass:{prototype:T}}}}=M(),{defined:Y,extend:D,find:E,merge:F,pick:C}=l();!function(t){function e(){return this.data=[].concat(this.points||[],this.nodes),X.destroy.apply(this,arguments)}function i(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),X.setData.apply(this,arguments)}function s(t){let e=arguments,i=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&i.forEach(t=>{t&&t.series&&(T.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&T.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&T.setState.apply(t.toNode,e)))}),T.setState.apply(this,e)}function o(t,e,i,s){let o=this.series.options.nodes,r=this.series.options.data,a=r?.length||0,n=r?.[this.index];if(T.update.call(this,t,!this.isNode&&e,i,s),this.isNode){let t=(o||[]).reduce((t,e,i)=>this.id===e.id?i:t,-1),s=F(o&&o[t]||{},r?.[this.index]||{});r&&(n?r[this.index]=n:r.length=a),o?t>=0?o[t]=s:o.push(s):this.series.options.nodes=[s],C(e,!0)&&this.series.chart.redraw(i)}}t.compose=function(t,r){let a=t.prototype,n=r.prototype;return a.setNodeState=s,a.setState=s,a.update=o,n.destroy=e,n.setData=i,r},t.createNode=function(t){let e=this.pointClass,i=(t,e)=>E(t,t=>t.id===e),s=i(this.nodes,t),o;if(!s){o=this.options.nodes&&i(this.options.nodes,t);let r=new e(this,D({className:"highcharts-node",isNode:!0,id:t,y:1},o));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let t=0,e=0;return r.linksTo.forEach(e=>{t+=e.weight||0}),r.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},r.offset=function(t,e){let i=0;for(let s=0;s{e.outgoing&&t++}),!r.linksTo.length||t!==r.linksTo.length},r.index=this.nodes.push(r)-1,s=r}return s.formatPrefix="node",s.name=s.name||s.options.id||"",s.mass=C(s.options.mass,s.options.marker&&s.options.marker.radius,this.options.marker&&this.options.marker.radius,4),s},t.destroy=e,t.generatePoints=function(){let t=this.chart,e={};X.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(i=>{Y(i.from)&&(e[i.from]||(e[i.from]=this.createNode(i.from)),e[i.from].linksFrom.push(i),i.fromNode=e[i.from],t.styledMode?i.colorIndex=C(i.options.colorIndex,e[i.from].colorIndex):i.color=i.options.color||e[i.from].color),Y(i.to)&&(e[i.to]||(e[i.to]=this.createNode(i.to)),e[i.to].linksTo.push(i),i.toNode=e[i.to]),i.name=i.name||i.id},this),this.nodeLookup=e},t.setNodeState=s,t.updateNode=o}(s||(s={}));let I=s,{series:{prototype:A,prototype:{pointClass:O}}}=M(),{addEvent:R,css:H,defined:B,extend:G,pick:q}=l();class _ extends O{destroy(){return this.isNode&&this.linksFrom.concat(this.linksTo).forEach(function(t){t.destroyElements&&t.destroyElements()}),this.series.layout.removeElementFromCollection(this,this.series.layout[this.isNode?"nodes":"links"]),O.prototype.destroy.apply(this,arguments)}getDegree(){let t=this.isNode?this.linksFrom.length+this.linksTo.length:0;return 0===t?1:t}getLinkAttributes(){let t=this.series.options.link,e=this.options;return{"stroke-width":q(e.width,t.width),stroke:e.color||t.color,dashstyle:e.dashStyle||t.dashStyle,opacity:q(e.opacity,t.opacity,1)}}getLinkPath(){let t=this.fromNode,e=this.toNode;return t.plotX>e.plotX&&(t=this.toNode,e=this.fromNode),[["M",t.plotX||0,t.plotY||0],["L",e.plotX||0,e.plotY||0]]}getMass(){let t=this.fromNode.mass,e=this.toNode.mass,i=t+e;return{fromNode:1-t/i,toNode:1-e/i}}constructor(t,e,i){super(t,e,i),this.series.options.draggable&&!this.series.chart.styledMode&&(R(this,"mouseOver",function(){H(this.series.chart.container,{cursor:"move"})}),R(this,"mouseOut",function(){H(this.series.chart.container,{cursor:"default"})}))}isValid(){return!this.isNode||B(this.id)}redrawLink(){let t;let e=this.getLinkPath();if(this.graphic){this.shapeArgs={d:e},this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})),this.graphic.animate(this.shapeArgs);let i=e[0],s=e[1];"M"===i[0]&&"L"===s[0]&&(this.plotX=(i[1]+s[1])/2,this.plotY=(i[2]+s[2])/2)}}remove(t,e){let i=this.series,s=i.options.nodes||[],o,r=s.length;if(this.isNode){for(i.points=[],[].concat(this.linksFrom).concat(this.linksTo).forEach(function(t){(o=t.fromNode.linksFrom.indexOf(t))>-1&&t.fromNode.linksFrom.splice(o,1),(o=t.toNode.linksTo.indexOf(t))>-1&&t.toNode.linksTo.splice(o,1),A.removePoint.call(i,i.data.indexOf(t),!1,!1)}),i.points=i.data.slice(),i.nodes.splice(i.nodes.indexOf(this),1);r--;)if(s[r].id===this.options.id){i.options.nodes.splice(r,1);break}this&&this.destroy(),i.isDirty=!0,i.isDirtyData=!0,t&&i.chart.redraw(t)}else i.removePoint(i.data.indexOf(this),t,e)}renderLink(){let t;this.graphic||(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})))}}G(_.prototype,{setState:I.setNodeState});let K={attractive:function(t,e,i,s){let o=t.getMass(),r=i.x/s*e,a=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=r*o.fromNode/t.fromNode.degree,t.fromNode.dispY-=a*o.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=r*o.toNode/t.toNode.degree,t.toNode.dispY+=a*o.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let o=s.getDegree(),r=o*(1+o/2);s.dispX+=(e-s.plotX)*t*r/s.degree,s.dispY+=(i-s.plotY)*t*r/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}};class U{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let t=this.box.width/2,e=this.box.height/2;this.nodes[0]=new U({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new U({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new U({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new U({left:this.box.left,top:this.box.top+e,width:t,height:e})}getBoxPosition(t){let e=t.plotXt?1:0)}},{win:V}=l(),{clamp:Q,defined:$,isFunction:W,fireEvent:J,pick:Z}=l();class tt{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(t){w.compose(t),w.integrations.euler=K,w.integrations.verlet=z,w.layouts["reingold-fruchterman"]=tt}init(t){this.options=t,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=w.integrations[t.integration],this.enableSimulation=t.enableSimulation,this.attractiveForce=Z(t.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=Z(t.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=t.approximation}updateSimulation(t){this.enableSimulation=Z(t,this.options.enableSimulation)}start(){let t=this.series,e=this.options;this.currentStep=0,this.forces=t[0]&&t[0].forces||[],this.chart=t[0]&&t[0].chart,this.initialRendering&&(this.initPositions(),t.forEach(function(t){t.finishedAnimating=!0,t.render()})),this.setK(),this.resetSimulation(e),this.enableSimulation&&this.step()}step(){let t=this.series;for(let t of(this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter()),this.forces||[]))this[t+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(let e of t)e.chart&&e.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&V.cancelAnimationFrame(this.simulation),this.simulation=V.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(t=>{J(t,"afterSimulation")}))}}stop(){this.simulation&&V.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=Z(t,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new j(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if(W(t))for(let e of(t.call(this),this.nodes))$(e.prevX)||(e.prevX=e.plotX),$(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else"circle"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t;let e=this.box,i=this.nodes,s=2*Math.PI/(i.length+1),o=i.filter(function(t){return 0===t.linksTo.length}),r={},a=this.options.initialPositionRadius,n=t=>{for(let e of t.linksFrom||[])r[e.toNode.id]||(r[e.toNode.id]=!0,h.push(e.toNode),n(e.toNode))},h=[];for(let t of o)h.push(t),n(t);if(h.length)for(let t of i)-1===h.indexOf(t)&&h.push(t);else h=i;for(let i=0,o=h.length;i{let e=t*t/Math.PI;return e-Math.floor(e)};for(let r=0,a=i.length;rthis.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let o of this.nodes)s===o||s.fixedPosition||(i=this.getDistXY(s,o),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force("repulsive",s,t*o.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force("attractive",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let i=t.radius;t.plotX=Q(t.plotX,e.left+i,e.width-i),t.plotY=Q(t.plotY,e.top+i,e.height-i)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y:s,absX:Math.abs(i),absY:Math.abs(s)}}}let{merge:te,syncTimeout:ti}=l(),{animObject:ts}=l(),{deg2rad:to}=l(),{addEvent:tr,merge:ta,uniqueKey:tn,defined:th,extend:tl}=l();function td(t,e){e=ta(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,o=s.textPath,{attributes:r,enabled:a}=e;if(t=t||o&&o.path,o&&o.undo(),t&&a){let e=tr(s,"afterModifyTree",e=>{if(t&&a){let o=t.attr("id");o||t.attr("id",o=tn());let a={x:0,y:0};th(r.dx)&&(a.dx=r.dx,delete r.dx),th(r.dy)&&(a.dy=r.dy,delete r.dy),s.attr(a),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:tl(r,{"text-anchor":r.textAnchor,href:`${i}#${o}`}),children:n}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function tp(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),r=o-s,a=RegExp('(|]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(a,"").split(/]*>/),h=n.length,l=(t,e)=>{let{x:o,y:a}=e,n=(i.getRotationOfChar(t)-90)*to,h=Math.cos(n),l=Math.sin(n);return[[o-r*h,a-r*l],[o+s*h,a+s*l]]};for(let e=0,s=0;s{this.deferDataLabels=!1},t?ts(t.animation).defer:0):this.deferDataLabels=!1}},{addEvent:tb,defined:tk,extend:tv,merge:tN,pick:tL}=l();({compose:function(t){tr(t,"afterGetBBox",tp),tr(t,"beforeAddingDataLabel",tc);let e=t.prototype;e.setTextPath||(e.setTextPath=td)}}).compose(p());class tP extends tf{constructor(){super(...arguments),this.deferDataLabels=!0}static compose(t){g.compose(t),tt.compose(t)}deferLayout(){let t=this.options.layoutAlgorithm,e=this.chart.options.chart,i,s=this.chart.graphLayoutsStorage,o=this.chart.graphLayoutsLookup;this.visible&&(s||(this.chart.graphLayoutsStorage=s={},this.chart.graphLayoutsLookup=o=[]),(i=s[t.type])||(t.enableSimulation=tk(e.forExport)?!e.forExport:t.enableSimulation,s[t.type]=i=new w.layouts[t.type],i.init(t),o.splice(i.index,0,i)),this.layout=i,i.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),i.addElementsToCollection([this],i.series),i.addElementsToCollection(this.nodes,i.nodes),i.addElementsToCollection(this.points,i.links))}destroy(){this.layout&&this.layout.removeElementFromCollection(this,this.layout.series),I.destroy.call(this)}drawDataLabels(){let t;if(this.deferDataLabels)return;let e=this.options.dataLabels;e?.textPath&&(t=e.textPath),tf.prototype.drawDataLabels.call(this,this.nodes),e?.linkTextPath&&(e.textPath=e.linkTextPath),tf.prototype.drawDataLabels.call(this,this.data),e?.textPath&&(e.textPath=t)}generatePoints(){let t,e;for(I.generatePoints.apply(this,arguments),this.options.nodes&&this.options.nodes.forEach(function(t){this.nodeLookup[t.id]||(this.nodeLookup[t.id]=this.createNode(t.id))},this),e=this.nodes.length-1;e>=0;e--)(t=this.nodes[e]).degree=t.getDegree(),t.radius=tL(t.marker&&t.marker.radius,this.options.marker&&this.options.marker.radius,0),t.key=t.name,this.nodeLookup[t.id]||t.remove();this.data.forEach(function(t){t.formatPrefix="link"}),this.indexateNodes()}getPointsCollection(){return this.nodes||[]}indexateNodes(){this.nodes.forEach(function(t,e){t.index=e})}init(t,e){return super.init(t,e),tx.call(this),tb(this,"updatedData",()=>{this.layout&&this.layout.stop()}),tb(this,"afterUpdate",()=>{this.nodes.forEach(t=>{t&&t.series&&t.resolveColor()})}),tb(this,"afterSimulation",function(){this.deferDataLabels=!1,this.drawDataLabels()}),this}markerAttribs(t,e){let i=tf.prototype.markerAttribs.call(this,t,e);return tk(t.plotY)||(i.y=0),i.x=(t.plotX||0)-(i.width||0)/2,i}pointAttribs(t,e){let i=e||t&&t.state||"normal",s=this.options.states[i],o=tf.prototype.pointAttribs.call(this,t,i);return t&&!t.isNode&&(o=t.getLinkAttributes(),s&&(o={stroke:s.linkColor||o.stroke,dashstyle:s.linkDashStyle||o.dashstyle,opacity:tL(s.linkOpacity,o.opacity),"stroke-width":s.linkColor||o["stroke-width"]})),o}render(){let t=this.points,e=this.chart.hoverPoint,i=[];this.points=this.nodes,tg.render.call(this),this.points=t,t.forEach(function(t){t.fromNode&&t.toNode&&(t.renderLink(),t.redrawLink())}),e&&e.series===this&&this.redrawHalo(e),this.chart.hasRendered&&!this.options.dataLabels.allowOverlap&&(this.nodes.concat(this.points).forEach(function(t){t.dataLabel&&i.push(t.dataLabel)}),this.chart.hideOverlappingLabels(i))}setState(t,e){e?(this.points=this.nodes.concat(this.data),tf.prototype.setState.apply(this,arguments),this.points=this.data):tf.prototype.setState.apply(this,arguments),this.layout.simulation||t||this.render()}translate(){this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(t){t.isInside=!0,t.linksFrom.forEach(function(t){t.shapeType="path",t.y=1})})}}tP.defaultOptions=tN(tf.defaultOptions,{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,animation:{duration:50}}},dataLabels:{formatter:function(){return String(this.key??"")},linkFormatter:function(){return this.fromNode.name+"
    "+this.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"},defer:!0,animation:{defer:1e3}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}),tv(tP.prototype,{pointClass:_,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],initDataLabels:ty,buildKDTree:tu,createNode:I.createNode,drawTracker:tm.drawTracker,onMouseDown:g.onMouseDown,onMouseMove:g.onMouseMove,onMouseUp:g.onMouseUp,redrawHalo:g.redrawHalo}),M().registerSeriesType("networkgraph",tP);let tw=l();tP.compose(tw.Chart);let tS=l();return n.default})()); \ No newline at end of file diff --git a/modules/networkgraph.src.js b/modules/networkgraph.src.js index 030a1aff6f..d4c1c29225 100644 --- a/modules/networkgraph.src.js +++ b/modules/networkgraph.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/networkgraph * @requires highcharts * diff --git a/modules/no-data-to-display.js b/modules/no-data-to-display.js index dccfd116d7..d5ef710b1a 100644 --- a/modules/no-data-to-display.js +++ b/modules/no-data-to-display.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/no-data-to-display * @requires highcharts * @@ -9,4 +9,4 @@ * Author: Oystein Moseng * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/no-data-to-display",["highcharts/highcharts"],function(t){return e(t,t.AST)}):"object"==typeof exports?exports["highcharts/modules/no-data-to-display"]=e(t._Highcharts,t._Highcharts.AST):t.Highcharts=e(t.Highcharts,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var a={660:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var n=o[t]={exports:{}};return a[t](n,n.exports,i),n.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var a in e)i.o(e,a)&&!i.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>x});var r=i(944),s=/*#__PURE__*/i.n(r),h=i(660),d=/*#__PURE__*/i.n(h);let l={lang:{noData:"No data to display"},noData:{attr:{zIndex:1},position:{x:0,y:0,align:"center",verticalAlign:"middle"},style:{fontWeight:"bold",fontSize:"0.8em",color:"#666666"}}},{addEvent:c,extend:p,merge:f}=s();function u(){let t=this.series||[],e=t.length;for(;e--;)if(t[e].hasData()&&!t[e].options.isInternal)return!0;return this.loadingShown}function g(){this.noDataLabel&&(this.noDataLabel=this.noDataLabel.destroy())}function D(t){let e=this.options,a=t||e&&e.lang.noData||"",o=e&&(e.noData||{});this.renderer&&(this.noDataLabel||(this.noDataLabel=this.renderer.label(a,0,0,void 0,void 0,void 0,o.useHTML,void 0,"no-data").add()),this.styledMode||this.noDataLabel.attr(d().filterUserAttributes(o.attr||{})).css(o.style||{}),this.noDataLabel.align(p(this.noDataLabel.getBBox(),o.position||{}),!1,"plotBox"))}function b(){this.hasData()?this.hideNoData():this.showNoData()}let y=s();({compose:function(t,e){let a=t.prototype;a.showNoData||(a.hasData=u,a.hideNoData=g,a.showNoData=D,c(t,"render",b),f(!0,e,l))}}).compose(y.Chart,y.defaultOptions);let x=s();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/no-data-to-display",["highcharts/highcharts"],function(t){return e(t,t.AST)}):"object"==typeof exports?exports["highcharts/modules/no-data-to-display"]=e(t._Highcharts,t._Highcharts.AST):t.Highcharts=e(t.Highcharts,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var a={660:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var n=o[t]={exports:{}};return a[t](n,n.exports,i),n.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var a in e)i.o(e,a)&&!i.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>x});var r=i(944),s=i.n(r),h=i(660),d=i.n(h);let l={lang:{noData:"No data to display"},noData:{attr:{zIndex:1},position:{x:0,y:0,align:"center",verticalAlign:"middle"},style:{fontWeight:"bold",fontSize:"0.8em",color:"#666666"}}},{addEvent:c,extend:p,merge:f}=s();function u(){let t=this.series||[],e=t.length;for(;e--;)if(t[e].hasData()&&!t[e].options.isInternal)return!0;return this.loadingShown}function g(){this.noDataLabel&&(this.noDataLabel=this.noDataLabel.destroy())}function D(t){let e=this.options,a=t||e&&e.lang.noData||"",o=e&&(e.noData||{});this.renderer&&(this.noDataLabel||(this.noDataLabel=this.renderer.label(a,0,0,void 0,void 0,void 0,o.useHTML,void 0,"no-data").add()),this.styledMode||this.noDataLabel.attr(d().filterUserAttributes(o.attr||{})).css(o.style||{}),this.noDataLabel.align(p(this.noDataLabel.getBBox(),o.position||{}),!1,"plotBox"))}function b(){this.hasData()?this.hideNoData():this.showNoData()}let y=s();({compose:function(t,e){let a=t.prototype;a.showNoData||(a.hasData=u,a.hideNoData=g,a.showNoData=D,c(t,"render",b),f(!0,e,l))}}).compose(y.Chart,y.defaultOptions);let x=s();return n.default})()); \ No newline at end of file diff --git a/modules/no-data-to-display.src.js b/modules/no-data-to-display.src.js index d73a8a4a4d..6bd1cd8209 100644 --- a/modules/no-data-to-display.src.js +++ b/modules/no-data-to-display.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/no-data-to-display * @requires highcharts * diff --git a/modules/offline-exporting.js b/modules/offline-exporting.js index badb116bc6..044c85e584 100644 --- a/modules/offline-exporting.js +++ b/modules/offline-exporting.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/offline-exporting * @requires highcharts * @requires highcharts/modules/exporting @@ -9,4 +9,4 @@ * (c) 2015-2024 Torstein Honsi / Oystein Moseng * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart,e._Highcharts.HttpUtilities):"function"==typeof define&&define.amd?define("highcharts/modules/offline-exporting",["highcharts/highcharts"],function(e){return t(e,e.AST,e.Chart,e.HttpUtilities)}):"object"==typeof exports?exports["highcharts/modules/offline-exporting"]=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart,e._Highcharts.HttpUtilities):e.Highcharts=t(e.Highcharts,e.Highcharts.AST,e.Highcharts.Chart,e.Highcharts.HttpUtilities)}("undefined"==typeof window?this:window,(e,t,n,o)=>(()=>{"use strict";var i,r,l,s,a={660:e=>{e.exports=t},960:e=>{e.exports=n},156:e=>{e.exports=o},944:t=>{t.exports=e}},c={};function h(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return a[e](n,n.exports,h),n.exports}h.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return h.d(t,{a:t}),t},h.d=(e,t)=>{for(var n in t)h.o(t,n)&&!h.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},h.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var d={};h.d(d,{default:()=>ed});var p=h(944),u=/*#__PURE__*/h.n(p);let{isSafari:g,win:f,win:{document:m}}=u(),x=f.URL||f.webkitURL||f;function y(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&f.atob&&f.ArrayBuffer&&f.Uint8Array&&f.Blob&&x.createObjectURL){let e=f.atob(t[3]),n=new f.ArrayBuffer(e.length),o=new f.Uint8Array(n);for(let t=0;t1e3)throw Error("Input too long");let i=/Edge\/\d+/.test(n.userAgent);if((g&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||i||e.length>2e6)&&!(e=y(e)||""))throw Error("Failed to convert to blob");if(void 0!==o.download)o.href=e,o.download=t,m.body.appendChild(o),o.click(),m.body.removeChild(o);else try{if(!f.open(e,"chart"))throw Error("Failed to open window")}catch{f.location.href=e}}};var v=h(660),w=/*#__PURE__*/h.n(v);h(960),function(e){e.compose=function(e){return e.navigation||(e.navigation=new t(e)),e};class t{constructor(e){this.updates=[],this.chart=e}addUpdate(e){this.chart.navigation.updates.push(e)}update(e,t){this.updates.forEach(n=>{n.call(this.chart,e,t)})}}e.Additions=t}(i||(i={}));let S=i,{isTouchDevice:E}=u(),C={exporting:{allowTableSorting:!0,type:"image/png",url:"https://export-svg.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadSVG"],y:-5}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:5,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{fill:"#ffffff",padding:5,stroke:"none","stroke-linecap":"round"}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:E?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}};!function(e){let t=[];function n(e,t,n,o){return[["M",e,t+2.5],["L",e+n,t+2.5],["M",e,t+o/2+.5],["L",e+n,t+o/2+.5],["M",e,t+o-1.5],["L",e+n,t+o-1.5]]}function o(e,t,n,o){let i=o/3-2;return[].concat(this.circle(n-i,t,i,i),this.circle(n-i,t+i+4,i,i),this.circle(n-i,t+2*(i+4),i,i))}e.compose=function(e){if(-1===t.indexOf(e)){t.push(e);let i=e.prototype.symbols;i.menu=n,i.menuball=o.bind(i)}}}(r||(r={}));let F=r,{composed:O}=u(),{addEvent:T,fireEvent:k,pushUnique:L}=u();function M(){this.fullscreen=new N(this)}class N{static compose(e){L(O,"Fullscreen")&&T(e,"beforeRender",M)}constructor(e){this.chart=e,this.isOpen=!1;let t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;k(t,"fullscreenClose",null,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;k(t,"fullscreenOpen",null,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=T(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),o=T(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),o()};let i=t.renderTo[e.browserProps.requestFullscreen]();i&&i.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exportDivElements,n=e.options.exporting,o=n&&n.buttons&&n.buttons.contextButton.menuItems,i=e.options.lang;if(n&&n.menuItemDefinitions&&i&&i.exitFullscreen&&i.viewFullscreen&&o&&t){let e=t[o.indexOf("viewFullscreen")];e&&w().setElementHTML(e,this.isOpen?i.exitFullscreen:n.menuItemDefinitions.viewFullscreen.text||i.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}var P=h(156),G=/*#__PURE__*/h.n(P);let{defaultOptions:H}=u(),{doc:D,SVG_NS:A,win:R}=u(),{addEvent:B,css:I,createElement:U,discardElement:V,extend:j,find:W,fireEvent:z,isObject:$,merge:q,objectEach:K,pick:_,removeEvent:J,uniqueKey:X}=u();!function(e){let t;let n=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\d+$/],o=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];e.inlineAllowlist=[];let i=["clipPath","defs","desc"];function r(e){let t,n;let o=this,i=o.renderer,r=q(o.options.navigation.buttonOptions,e),l=r.onclick,s=r.menuItems,a=r.symbolSize||12;if(o.btnCount||(o.btnCount=0),o.exportDivElements||(o.exportDivElements=[],o.exportSVGElements=[]),!1===r.enabled||!r.theme)return;let c=o.styledMode?{}:r.theme;l?n=function(e){e&&e.stopPropagation(),l.call(o,e)}:s&&(n=function(e){e&&e.stopPropagation(),o.contextMenu(h.menuClassName,s,h.translateX||0,h.translateY||0,h.width||0,h.height||0,h),h.setState(2)}),r.text&&r.symbol?c.paddingLeft=_(c.paddingLeft,30):r.text||j(c,{width:r.width,height:r.height,padding:0});let h=i.button(r.text,0,0,n,c,void 0,void 0,void 0,void 0,r.useHTML).addClass(e.className).attr({title:_(o.options.lang[r._titleKey||r.titleKey],"")});h.menuClassName=e.menuClassName||"highcharts-menu-"+o.btnCount++,r.symbol&&(t=i.symbol(r.symbol,Math.round((r.symbolX||0)-a/2),Math.round((r.symbolY||0)-a/2),a,a,{width:a,height:a}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(h),o.styledMode||t.attr({stroke:r.symbolStroke,fill:r.symbolFill,"stroke-width":r.symbolStrokeWidth||1})),h.add(o.exportingGroup).align(j(r,{width:h.width,x:_(r.x,o.buttonOffset)}),!0,"spacingBox"),o.buttonOffset+=((h.width||0)+r.buttonSpacing)*("right"===r.align?-1:1),o.exportSVGElements.push(h,t)}function l(){if(!this.printReverseInfo)return;let{childNodes:e,origDisplay:n,resetParams:o}=this.printReverseInfo;this.moveContainers(this.renderTo),[].forEach.call(e,function(e,t){1===e.nodeType&&(e.style.display=n[t]||"")}),this.isPrinting=!1,o&&this.setSize.apply(this,o),delete this.printReverseInfo,t=void 0,z(this,"afterPrint")}function s(){let e=D.body,t=this.options.exporting.printMaxWidth,n={childNodes:e.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,this.pointer?.reset(void 0,0),z(this,"beforePrint"),t&&this.chartWidth>t&&(n.resetParams=[this.options.chart.width,void 0,!1],this.setSize(t,void 0,!1)),[].forEach.call(n.childNodes,function(e,t){1===e.nodeType&&(n.origDisplay[t]=e.style.display,e.style.display="none")}),this.moveContainers(e),this.printReverseInfo=n}function a(e){e.renderExporting(),B(e,"redraw",e.renderExporting),B(e,"destroy",e.destroyExport)}function c(e,t,n,o,i,r,l){let s=this,a=s.options.navigation,c=s.chartWidth,h=s.chartHeight,d="cache-"+e,p=Math.max(i,r),g,f=s[d];f||(s.exportContextMenu=s[d]=f=U("div",{className:e},{position:"absolute",zIndex:1e3,padding:p+"px",pointerEvents:"auto",...s.renderer.style},s.scrollablePlotArea?.fixedDiv||s.container),g=U("ul",{className:"highcharts-menu"},s.styledMode?{}:{listStyle:"none",margin:0,padding:0},f),s.styledMode||I(g,j({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},a.menuStyle)),f.hideMenu=function(){I(f,{display:"none"}),l&&l.setState(0),s.openMenu=!1,I(s.renderTo,{overflow:"hidden"}),I(s.container,{overflow:"hidden"}),u().clearTimeout(f.hideTimer),z(s,"exportMenuHidden")},s.exportEvents.push(B(f,"mouseleave",function(){f.hideTimer=R.setTimeout(f.hideMenu,500)}),B(f,"mouseenter",function(){u().clearTimeout(f.hideTimer)}),B(D,"mouseup",function(t){s.pointer?.inClass(t.target,e)||f.hideMenu()}),B(f,"click",function(){s.openMenu&&f.hideMenu()})),t.forEach(function(e){if("string"==typeof e&&(e=s.options.exporting.menuItemDefinitions[e]),$(e,!0)){let t;e.separator?t=U("hr",void 0,void 0,g):("viewData"===e.textKey&&s.isDataTableVisible&&(e.textKey="hideData"),t=U("li",{className:"highcharts-menu-item",onclick:function(t){t&&t.stopPropagation(),f.hideMenu(),"string"!=typeof e&&e.onclick&&e.onclick.apply(s,arguments)}},void 0,g),w().setElementHTML(t,e.text||s.options.lang[e.textKey]),s.styledMode||(t.onmouseover=function(){I(this,a.menuItemHoverStyle)},t.onmouseout=function(){I(this,a.menuItemStyle)},I(t,j({cursor:"pointer"},a.menuItemStyle||{})))),s.exportDivElements.push(t)}}),s.exportDivElements.push(g,f),s.exportMenuWidth=f.offsetWidth,s.exportMenuHeight=f.offsetHeight);let m={display:"block"};n+(s.exportMenuWidth||0)>c?m.right=c-n-i-p+"px":m.left=n-p+"px",o+r+(s.exportMenuHeight||0)>h&&l.alignOptions?.verticalAlign!=="top"?m.bottom=h-o-p+"px":m.top=o+r-p+"px",I(f,m),I(s.renderTo,{overflow:""}),I(s.container,{overflow:""}),s.openMenu=!0,z(s,"exportMenuShown")}function h(e){let t;let n=e?e.target:this,o=n.exportSVGElements,i=n.exportDivElements,r=n.exportEvents;o&&(o.forEach((e,i)=>{e&&(e.onclick=e.ontouchstart=null,n[t="cache-"+e.menuClassName]&&delete n[t],o[i]=e.destroy())}),o.length=0),n.exportingGroup&&(n.exportingGroup.destroy(),delete n.exportingGroup),i&&(i.forEach(function(e,t){e&&(u().clearTimeout(e.hideTimer),J(e,"mouseleave"),i[t]=e.onmouseout=e.onmouseover=e.ontouchstart=e.onclick=null,V(e))}),i.length=0),r&&(r.forEach(function(e){e()}),r.length=0)}function d(e,t){let n=this.getSVGForExport(e,t);e=q(this.options.exporting,e),G().post(e.url,{filename:e.filename?e.filename.replace(/\//g,"-"):this.getFilename(),type:e.type,width:e.width,scale:e.scale,svg:n},e.fetchOptions)}function p(e){return e&&this.inlineStyles(),this.container.innerHTML}function g(){let e=this.userOptions.title&&this.userOptions.title.text,t=this.options.exporting.filename;return t?t.replace(/\//g,"-"):("string"==typeof e&&(t=e.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!t||t.length<5)&&(t="chart"),t)}function f(e){let t,n,o=q(this.options,e);o.plotOptions=q(this.userOptions.plotOptions,e&&e.plotOptions),o.time=q(this.userOptions.time,e&&e.time);let i=U("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},D.body),r=this.renderTo.style.width,l=this.renderTo.style.height,s=o.exporting.sourceWidth||o.chart.width||/px$/.test(r)&&parseInt(r,10)||(o.isGantt?800:600),a=o.exporting.sourceHeight||o.chart.height||/px$/.test(l)&&parseInt(l,10)||400;j(o.chart,{animation:!1,renderTo:i,forExport:!0,renderer:"SVGRenderer",width:s,height:a}),o.exporting.enabled=!1,delete o.data,o.series=[],this.series.forEach(function(e){(n=q(e.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:e.visible})).isInternal||o.series.push(n)});let c={};this.axes.forEach(function(e){e.userOptions.internalKey||(e.userOptions.internalKey=X()),e.options.isInternal||(c[e.coll]||(c[e.coll]=!0,o[e.coll]=[]),o[e.coll].push(q(e.userOptions,{visible:e.visible,type:e.type,uniqueNames:e.uniqueNames})))}),o.colorAxis=this.userOptions.colorAxis;let h=new this.constructor(o,this.callback);return e&&["xAxis","yAxis","series"].forEach(function(t){let n={};e[t]&&(n[t]=e[t],h.update(n))}),this.axes.forEach(function(e){let t=W(h.axes,function(t){return t.options.internalKey===e.userOptions.internalKey}),n=e.getExtremes(),o=n.userMin,i=n.userMax;t&&(void 0!==o&&o!==t.min||void 0!==i&&i!==t.max)&&t.setExtremes(o,i,!0,!1)}),t=h.getChartHTML(this.styledMode||o.exporting?.applyStyleSheets),z(this,"getSVG",{chartCopy:h}),t=this.sanitizeSVG(t,o),o=null,h.destroy(),V(i),t}function m(e,t){let n=this.options.exporting;return this.getSVG(q({chart:{borderRadius:0}},n.chartOptions,t,{exporting:{sourceWidth:e&&e.sourceWidth||n.sourceWidth,sourceHeight:e&&e.sourceHeight||n.sourceHeight}}))}function x(){let t;let r=e.inlineAllowlist,l={},s=D.createElement("iframe");I(s,{width:"1px",height:"1px",visibility:"hidden"}),D.body.appendChild(s);let a=s.contentWindow&&s.contentWindow.document;a&&a.body.appendChild(a.createElementNS(A,"svg")),function e(s){let c,h,d,p,g,f;let m={};if(a&&1===s.nodeType&&-1===i.indexOf(s.nodeName)){if(c=R.getComputedStyle(s,null),h="svg"===s.nodeName?{}:R.getComputedStyle(s.parentNode,null),!l[s.nodeName]){t=a.getElementsByTagName("svg")[0],d=a.createElementNS(s.namespaceURI,s.nodeName),t.appendChild(d);let e=R.getComputedStyle(d,null),n={};for(let t in e)t.length<1e3&&"string"==typeof e[t]&&!/^\d+$/.test(t)&&(n[t]=e[t]);l[s.nodeName]=n,"text"===s.nodeName&&delete l.text.fill,t.removeChild(d)}for(let e in c)(u().isFirefox||u().isMS||u().isSafari||Object.hasOwnProperty.call(c,e))&&function(e,t){if(p=g=!1,r.length){for(f=r.length;f--&&!g;)g=r[f].test(t);p=!g}for("transform"===t&&"none"===e&&(p=!0),f=n.length;f--&&!p;){if(t.length>1e3)throw Error("Input too long");p=n[f].test(t)||"function"==typeof e}!p&&(h[t]!==e||"svg"===s.nodeName)&&l[s.nodeName][t]!==e&&(o&&-1===o.indexOf(t)?m[t]=e:e&&s.setAttribute(t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),e))}(c[e],e);if(I(s,m),"svg"===s.nodeName&&s.setAttribute("stroke-width","1px"),"text"===s.nodeName)return;[].forEach.call(s.children||s.childNodes,e)}}(this.container.querySelector("svg")),t.parentNode.removeChild(t),s.parentNode.removeChild(s)}function y(e){let{scrollablePlotArea:t}=this;(t?[t.fixedDiv,t.scrollingContainer]:[this.container]).forEach(function(t){e.appendChild(t)})}function b(){let e=this,t=(t,n,o)=>{e.isDirtyExporting=!0,q(!0,e.options[t],n),_(o,!0)&&e.redraw()};e.exporting={update:function(e,n){t("exporting",e,n)}},S.compose(e).navigation.addUpdate((e,n)=>{t("navigation",e,n)})}function v({alignTo:e,key:t,textPxLength:n}){let o=this.options.exporting,{align:i,buttonSpacing:r=0,verticalAlign:l,width:s=0}=q(this.options.navigation?.buttonOptions,o?.buttons?.contextButton),a=e.width-n,c=s+r;(o?.enabled??!0)&&"title"===t&&"right"===i&&"top"===l&&a<2*c&&(a{R.focus(),R.print(),u().isSafari||setTimeout(()=>{e.afterPrint()},1e3)},1))}function O(){let e=this,t=e.options.exporting,n=t.buttons,o=e.isDirtyExporting||!e.exportSVGElements;e.buttonOffset=0,e.isDirtyExporting&&e.destroyExport(),o&&!1!==t.enabled&&(e.exportEvents=[],e.exportingGroup=e.exportingGroup||e.renderer.g("exporting-group").attr({zIndex:3}).add(),K(n,function(t){e.addButton(t)}),e.isDirtyExporting=!1)}function T(e,t){let n=e.indexOf("")+6,o=e.substr(n);return e=e.substr(0,n),t&&t.exporting&&t.exporting.allowHTML&&o&&(o=''+o.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",e=e.replace("",o+"")),e=e.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery\d+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/-1&&"image/svg+xml"!==i.type&&(u().isMS||"application/pdf"===i.type)?r(Error("Image type not supported for charts with embedded HTML")):e.downloadSVGLocal(t,el({filename:o.getFilename()},i),r,()=>es(o,"exportChartLocalSuccess"))})}function n(e,t){let n=et.getElementsByTagName("head")[0],o=et.createElement("script");o.type="text/javascript",o.src=e,o.onload=t,o.onerror=function(){er("Error loading script "+e)},n.appendChild(o)}function o(t,n,o,i){let r=this,l=e=>r.sanitizeSVG(e,d),s=()=>{u&&f===g&&i(l(h.innerHTML))},a=(e,t,n)=>{++f,n.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",e),s()},c,h,d,p=null,u,g=0,f=0;r.unbindGetSVG=ei(r,"getSVG",e=>{d=e.chartCopy.options,g=(u=(h=e.chartCopy.container.cloneNode(!0))&&h.getElementsByTagName("image")||[]).length}),r.getSVGForExport(t,n);try{if(!u||!u.length){i(l(h.innerHTML));return}for(let n=0;n{setTimeout(function(){let e;let l=et.createElement("canvas"),a=l.getContext&&l.getContext("2d");try{if(a){l.height=h.height*i,l.width=h.width*i,a.drawImage(h,0,0,l.width,l.height);try{e=l.toDataURL(n),r(e,n,o,i)}catch(e){d(t,n,o,i)}}else s(t,n,o,i)}finally{c&&c(t,n,o,i)}},e.loadEventDeferDelay)},u=()=>{a(t,n,o,i),c&&c(t,n,o,i)};d=()=>{h=new en.Image,d=l,h.crossOrigin="Anonymous",h.onload=p,h.onerror=u,h.src=t},h.onload=p,h.onerror=u,h.src=t}function r(t){let n=en.navigator.userAgent,o=n.indexOf("WebKit")>-1&&0>n.indexOf("Chrome");try{if(!o&&-1===t.indexOf("i?"p":"l","pt",[i,r]);[].forEach.call(e.querySelectorAll('*[visibility="hidden"]'),function(e){e.parentNode.removeChild(e)});let s=e.querySelectorAll("linearGradient");for(let e=0;e{"​"===e.textContent&&(e.textContent=" ",e.setAttribute("dx",-5))}),l.svg(e,{x:0,y:0,width:i,height:r,removeInvalid:!0}).then(()=>o(l.output("datauristring")))}e.CanVGRenderer={},e.domurl=en.URL||en.webkitURL||en,e.loadEventDeferDelay=u().isMS?150:0,e.compose=function(e){let n=e.prototype;return n.exportChartLocal||(n.getSVGForLocalExport=o,n.exportChartLocal=t,ea(!0,Q.exporting,Z)),e},e.downloadSVGLocal=function(t,o,s,a){let c=et.createElement("div"),h=o.type||"image/png",d=(o.filename||"chart")+"."+("image/svg+xml"===h?"svg":h.split("/")[1]),p=o.scale||1,u,g,f,m=o.libURL||Q.exporting.libURL,x=!0,y=o.pdfFont;m="/"!==m.slice(-1)?m+"/":m;let b=(e,t)=>{let n,o;let i=(e,t)=>{en.jspdf.jsPDF.API.events.push(["initialized",function(){this.addFileToVFS(e,t),this.addFont(e,"HighchartsFont",e),this.getFontList().HighchartsFont||this.setFont("HighchartsFont")}])};y&&(o=e.textContent||"",!/[^\u0000-\u007F\u200B]+/.test(o))&&(y=void 0);let r=["normal","italic","bold","bolditalic"],l=()=>{let e=r.shift();if(!e)return t();let o=y&&y[e];o?eo({url:o,responseType:"blob",success:(t,o)=>{let r=new FileReader;r.onloadend=function(){if("string"==typeof this.result){let t=this.result.split(",")[1];i(e,t),"normal"===e&&(n=t)}l()},r.readAsDataURL(o.response)},error:l}):(n&&i(e,n),l())};l()},v=()=>{let e,n;w().setElementHTML(c,t);let o=c.getElementsByTagName("text"),i=function(e,t){let n=e;for(;n&&n!==c;){if(n.style[t]){let o=n.style[t];"fontSize"===t&&/em$/.test(o)&&(o=Math.round(16*parseFloat(o))+"px"),e.style[t]=o;break}n=n.parentNode}};[].forEach.call(o,function(t){for(["fontFamily","fontSize"].forEach(e=>{i(t,e)}),t.style.fontFamily=y&&y.normal?"HighchartsFont":String(t.style.fontFamily&&t.style.fontFamily.split(" ").splice(-1)),e=t.getElementsByTagName("title"),[].forEach.call(e,function(e){t.removeChild(e)}),n=t.getElementsByClassName("highcharts-text-outline");n.length>0;){let e=n[0];e.parentNode&&e.parentNode.removeChild(e)}});let r=c.querySelector("svg");r&&b(r,()=>{l(r,0,p,e=>{try{ee(e,d),a&&a()}catch(e){s(e)}})})};if("image/svg+xml"===h)try{void 0!==en.MSBlobBuilder?((g=new en.MSBlobBuilder).append(t),u=g.getBlob("image/svg+xml")):u=r(t),ee(u,d),a&&a()}catch(e){s(e)}else"application/pdf"===h?en.jspdf&&en.jspdf.jsPDF?v():(x=!0,n(m+"jspdf.js",function(){n(m+"svg2pdf.js",v)})):(u=r(t),f=function(){try{e.domurl.revokeObjectURL(u)}catch(e){}},i(u,h,{},p,function(e){try{ee(e,d),a&&a()}catch(e){s(e)}},function(){if(t.length>1e8)throw Error("Input too long");let e=et.createElement("canvas"),o=e.getContext("2d"),i=t.match(/^]*\s{,1000}width\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/),r=t.match(/^]*\s{0,1000}height\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/);if(o&&i&&r){let l=+i[1]*p,c=+r[1]*p,u=()=>{en.canvg.Canvg.fromString(o,t).start();try{ee(en.navigator.msSaveOrOpenBlob?e.msToBlob():e.toDataURL(h),d),a&&a()}catch(e){s(e)}finally{f()}};e.width=l,e.height=c,en.canvg?u():(x=!0,n(m+"canvg.js",u))}},s,s,function(){x&&f()}))},e.getScript=n,e.imageToDataUrl=i,e.svgToDataUrl=r,e.svgToPdf=l}(s||(s={}));let ec=s,eh=u();eh.dataURLtoBlob=eh.dataURLtoBlob||b.dataURLtoBlob,eh.downloadSVGLocal=ec.downloadSVGLocal,eh.downloadURL=eh.downloadURL||b.downloadURL,ec.compose(eh.Chart);let ed=u();return d.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart,e._Highcharts.HttpUtilities):"function"==typeof define&&define.amd?define("highcharts/modules/offline-exporting",["highcharts/highcharts"],function(e){return t(e,e.AST,e.Chart,e.HttpUtilities)}):"object"==typeof exports?exports["highcharts/modules/offline-exporting"]=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart,e._Highcharts.HttpUtilities):e.Highcharts=t(e.Highcharts,e.Highcharts.AST,e.Highcharts.Chart,e.Highcharts.HttpUtilities)}("undefined"==typeof window?this:window,(e,t,n,o)=>(()=>{"use strict";var i,r,l,s,a={660:e=>{e.exports=t},960:e=>{e.exports=n},156:e=>{e.exports=o},944:t=>{t.exports=e}},c={};function h(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return a[e](n,n.exports,h),n.exports}h.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return h.d(t,{a:t}),t},h.d=(e,t)=>{for(var n in t)h.o(t,n)&&!h.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},h.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var d={};h.d(d,{default:()=>ed});var p=h(944),u=h.n(p);let{isSafari:g,win:f,win:{document:m}}=u(),x=f.URL||f.webkitURL||f;function y(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&f.atob&&f.ArrayBuffer&&f.Uint8Array&&f.Blob&&x.createObjectURL){let e=f.atob(t[3]),n=new f.ArrayBuffer(e.length),o=new f.Uint8Array(n);for(let t=0;t1e3)throw Error("Input too long");let i=/Edge\/\d+/.test(n.userAgent);if((g&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||i||e.length>2e6)&&!(e=y(e)||""))throw Error("Failed to convert to blob");if(void 0!==o.download)o.href=e,o.download=t,m.body.appendChild(o),o.click(),m.body.removeChild(o);else try{if(!f.open(e,"chart"))throw Error("Failed to open window")}catch{f.location.href=e}}};var v=h(660),w=h.n(v);h(960),function(e){e.compose=function(e){return e.navigation||(e.navigation=new t(e)),e};class t{constructor(e){this.updates=[],this.chart=e}addUpdate(e){this.chart.navigation.updates.push(e)}update(e,t){this.updates.forEach(n=>{n.call(this.chart,e,t)})}}e.Additions=t}(i||(i={}));let S=i,{isTouchDevice:E}=u(),C={exporting:{allowTableSorting:!0,type:"image/png",url:"https://export-svg.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadSVG"],y:-5}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:5,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{fill:"#ffffff",padding:5,stroke:"none","stroke-linecap":"round"}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:E?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}};!function(e){let t=[];function n(e,t,n,o){return[["M",e,t+2.5],["L",e+n,t+2.5],["M",e,t+o/2+.5],["L",e+n,t+o/2+.5],["M",e,t+o-1.5],["L",e+n,t+o-1.5]]}function o(e,t,n,o){let i=o/3-2;return[].concat(this.circle(n-i,t,i,i),this.circle(n-i,t+i+4,i,i),this.circle(n-i,t+2*(i+4),i,i))}e.compose=function(e){if(-1===t.indexOf(e)){t.push(e);let i=e.prototype.symbols;i.menu=n,i.menuball=o.bind(i)}}}(r||(r={}));let F=r,{composed:O}=u(),{addEvent:T,fireEvent:k,pushUnique:L}=u();function M(){this.fullscreen=new N(this)}class N{static compose(e){L(O,"Fullscreen")&&T(e,"beforeRender",M)}constructor(e){this.chart=e,this.isOpen=!1;let t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;k(t,"fullscreenClose",null,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;k(t,"fullscreenOpen",null,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=T(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),o=T(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),o()};let i=t.renderTo[e.browserProps.requestFullscreen]();i&&i.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exportDivElements,n=e.options.exporting,o=n&&n.buttons&&n.buttons.contextButton.menuItems,i=e.options.lang;if(n&&n.menuItemDefinitions&&i&&i.exitFullscreen&&i.viewFullscreen&&o&&t){let e=t[o.indexOf("viewFullscreen")];e&&w().setElementHTML(e,this.isOpen?i.exitFullscreen:n.menuItemDefinitions.viewFullscreen.text||i.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}var P=h(156),G=h.n(P);let{defaultOptions:H}=u(),{doc:D,SVG_NS:A,win:R}=u(),{addEvent:B,css:I,createElement:U,discardElement:V,extend:j,find:W,fireEvent:z,isObject:$,merge:q,objectEach:K,pick:_,removeEvent:J,uniqueKey:X}=u();!function(e){let t;let n=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\d+$/],o=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];e.inlineAllowlist=[];let i=["clipPath","defs","desc"];function r(e){let t,n;let o=this,i=o.renderer,r=q(o.options.navigation.buttonOptions,e),l=r.onclick,s=r.menuItems,a=r.symbolSize||12;if(o.btnCount||(o.btnCount=0),o.exportDivElements||(o.exportDivElements=[],o.exportSVGElements=[]),!1===r.enabled||!r.theme)return;let c=o.styledMode?{}:r.theme;l?n=function(e){e&&e.stopPropagation(),l.call(o,e)}:s&&(n=function(e){e&&e.stopPropagation(),o.contextMenu(h.menuClassName,s,h.translateX||0,h.translateY||0,h.width||0,h.height||0,h),h.setState(2)}),r.text&&r.symbol?c.paddingLeft=_(c.paddingLeft,30):r.text||j(c,{width:r.width,height:r.height,padding:0});let h=i.button(r.text,0,0,n,c,void 0,void 0,void 0,void 0,r.useHTML).addClass(e.className).attr({title:_(o.options.lang[r._titleKey||r.titleKey],"")});h.menuClassName=e.menuClassName||"highcharts-menu-"+o.btnCount++,r.symbol&&(t=i.symbol(r.symbol,Math.round((r.symbolX||0)-a/2),Math.round((r.symbolY||0)-a/2),a,a,{width:a,height:a}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(h),o.styledMode||t.attr({stroke:r.symbolStroke,fill:r.symbolFill,"stroke-width":r.symbolStrokeWidth||1})),h.add(o.exportingGroup).align(j(r,{width:h.width,x:_(r.x,o.buttonOffset)}),!0,"spacingBox"),o.buttonOffset+=((h.width||0)+r.buttonSpacing)*("right"===r.align?-1:1),o.exportSVGElements.push(h,t)}function l(){if(!this.printReverseInfo)return;let{childNodes:e,origDisplay:n,resetParams:o}=this.printReverseInfo;this.moveContainers(this.renderTo),[].forEach.call(e,function(e,t){1===e.nodeType&&(e.style.display=n[t]||"")}),this.isPrinting=!1,o&&this.setSize.apply(this,o),delete this.printReverseInfo,t=void 0,z(this,"afterPrint")}function s(){let e=D.body,t=this.options.exporting.printMaxWidth,n={childNodes:e.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,this.pointer?.reset(void 0,0),z(this,"beforePrint"),t&&this.chartWidth>t&&(n.resetParams=[this.options.chart.width,void 0,!1],this.setSize(t,void 0,!1)),[].forEach.call(n.childNodes,function(e,t){1===e.nodeType&&(n.origDisplay[t]=e.style.display,e.style.display="none")}),this.moveContainers(e),this.printReverseInfo=n}function a(e){e.renderExporting(),B(e,"redraw",e.renderExporting),B(e,"destroy",e.destroyExport)}function c(e,t,n,o,i,r,l){let s=this,a=s.options.navigation,c=s.chartWidth,h=s.chartHeight,d="cache-"+e,p=Math.max(i,r),g,f=s[d];f||(s.exportContextMenu=s[d]=f=U("div",{className:e},{position:"absolute",zIndex:1e3,padding:p+"px",pointerEvents:"auto",...s.renderer.style},s.scrollablePlotArea?.fixedDiv||s.container),g=U("ul",{className:"highcharts-menu"},s.styledMode?{}:{listStyle:"none",margin:0,padding:0},f),s.styledMode||I(g,j({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},a.menuStyle)),f.hideMenu=function(){I(f,{display:"none"}),l&&l.setState(0),s.openMenu=!1,I(s.renderTo,{overflow:"hidden"}),I(s.container,{overflow:"hidden"}),u().clearTimeout(f.hideTimer),z(s,"exportMenuHidden")},s.exportEvents.push(B(f,"mouseleave",function(){f.hideTimer=R.setTimeout(f.hideMenu,500)}),B(f,"mouseenter",function(){u().clearTimeout(f.hideTimer)}),B(D,"mouseup",function(t){s.pointer?.inClass(t.target,e)||f.hideMenu()}),B(f,"click",function(){s.openMenu&&f.hideMenu()})),t.forEach(function(e){if("string"==typeof e&&(e=s.options.exporting.menuItemDefinitions[e]),$(e,!0)){let t;e.separator?t=U("hr",void 0,void 0,g):("viewData"===e.textKey&&s.isDataTableVisible&&(e.textKey="hideData"),t=U("li",{className:"highcharts-menu-item",onclick:function(t){t&&t.stopPropagation(),f.hideMenu(),"string"!=typeof e&&e.onclick&&e.onclick.apply(s,arguments)}},void 0,g),w().setElementHTML(t,e.text||s.options.lang[e.textKey]),s.styledMode||(t.onmouseover=function(){I(this,a.menuItemHoverStyle)},t.onmouseout=function(){I(this,a.menuItemStyle)},I(t,j({cursor:"pointer"},a.menuItemStyle||{})))),s.exportDivElements.push(t)}}),s.exportDivElements.push(g,f),s.exportMenuWidth=f.offsetWidth,s.exportMenuHeight=f.offsetHeight);let m={display:"block"};n+(s.exportMenuWidth||0)>c?m.right=c-n-i-p+"px":m.left=n-p+"px",o+r+(s.exportMenuHeight||0)>h&&l.alignOptions?.verticalAlign!=="top"?m.bottom=h-o-p+"px":m.top=o+r-p+"px",I(f,m),I(s.renderTo,{overflow:""}),I(s.container,{overflow:""}),s.openMenu=!0,z(s,"exportMenuShown")}function h(e){let t;let n=e?e.target:this,o=n.exportSVGElements,i=n.exportDivElements,r=n.exportEvents;o&&(o.forEach((e,i)=>{e&&(e.onclick=e.ontouchstart=null,n[t="cache-"+e.menuClassName]&&delete n[t],o[i]=e.destroy())}),o.length=0),n.exportingGroup&&(n.exportingGroup.destroy(),delete n.exportingGroup),i&&(i.forEach(function(e,t){e&&(u().clearTimeout(e.hideTimer),J(e,"mouseleave"),i[t]=e.onmouseout=e.onmouseover=e.ontouchstart=e.onclick=null,V(e))}),i.length=0),r&&(r.forEach(function(e){e()}),r.length=0)}function d(e,t){let n=this.getSVGForExport(e,t);e=q(this.options.exporting,e),G().post(e.url,{filename:e.filename?e.filename.replace(/\//g,"-"):this.getFilename(),type:e.type,width:e.width,scale:e.scale,svg:n},e.fetchOptions)}function p(e){return e&&this.inlineStyles(),this.container.innerHTML}function g(){let e=this.userOptions.title&&this.userOptions.title.text,t=this.options.exporting.filename;return t?t.replace(/\//g,"-"):("string"==typeof e&&(t=e.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!t||t.length<5)&&(t="chart"),t)}function f(e){let t,n,o=q(this.options,e);o.plotOptions=q(this.userOptions.plotOptions,e&&e.plotOptions),o.time=q(this.userOptions.time,e&&e.time);let i=U("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},D.body),r=this.renderTo.style.width,l=this.renderTo.style.height,s=o.exporting.sourceWidth||o.chart.width||/px$/.test(r)&&parseInt(r,10)||(o.isGantt?800:600),a=o.exporting.sourceHeight||o.chart.height||/px$/.test(l)&&parseInt(l,10)||400;j(o.chart,{animation:!1,renderTo:i,forExport:!0,renderer:"SVGRenderer",width:s,height:a}),o.exporting.enabled=!1,delete o.data,o.series=[],this.series.forEach(function(e){(n=q(e.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:e.visible})).isInternal||o.series.push(n)});let c={};this.axes.forEach(function(e){e.userOptions.internalKey||(e.userOptions.internalKey=X()),e.options.isInternal||(c[e.coll]||(c[e.coll]=!0,o[e.coll]=[]),o[e.coll].push(q(e.userOptions,{visible:e.visible,type:e.type,uniqueNames:e.uniqueNames})))}),o.colorAxis=this.userOptions.colorAxis;let h=new this.constructor(o,this.callback);return e&&["xAxis","yAxis","series"].forEach(function(t){let n={};e[t]&&(n[t]=e[t],h.update(n))}),this.axes.forEach(function(e){let t=W(h.axes,function(t){return t.options.internalKey===e.userOptions.internalKey}),n=e.getExtremes(),o=n.userMin,i=n.userMax;t&&(void 0!==o&&o!==t.min||void 0!==i&&i!==t.max)&&t.setExtremes(o,i,!0,!1)}),t=h.getChartHTML(this.styledMode||o.exporting?.applyStyleSheets),z(this,"getSVG",{chartCopy:h}),t=this.sanitizeSVG(t,o),o=null,h.destroy(),V(i),t}function m(e,t){let n=this.options.exporting;return this.getSVG(q({chart:{borderRadius:0}},n.chartOptions,t,{exporting:{sourceWidth:e&&e.sourceWidth||n.sourceWidth,sourceHeight:e&&e.sourceHeight||n.sourceHeight}}))}function x(){let t;let r=e.inlineAllowlist,l={},s=D.createElement("iframe");I(s,{width:"1px",height:"1px",visibility:"hidden"}),D.body.appendChild(s);let a=s.contentWindow&&s.contentWindow.document;a&&a.body.appendChild(a.createElementNS(A,"svg")),function e(s){let c,h,d,p,g,f;let m={};if(a&&1===s.nodeType&&-1===i.indexOf(s.nodeName)){if(c=R.getComputedStyle(s,null),h="svg"===s.nodeName?{}:R.getComputedStyle(s.parentNode,null),!l[s.nodeName]){t=a.getElementsByTagName("svg")[0],d=a.createElementNS(s.namespaceURI,s.nodeName),t.appendChild(d);let e=R.getComputedStyle(d,null),n={};for(let t in e)t.length<1e3&&"string"==typeof e[t]&&!/^\d+$/.test(t)&&(n[t]=e[t]);l[s.nodeName]=n,"text"===s.nodeName&&delete l.text.fill,t.removeChild(d)}for(let e in c)(u().isFirefox||u().isMS||u().isSafari||Object.hasOwnProperty.call(c,e))&&function(e,t){if(p=g=!1,r.length){for(f=r.length;f--&&!g;)g=r[f].test(t);p=!g}for("transform"===t&&"none"===e&&(p=!0),f=n.length;f--&&!p;){if(t.length>1e3)throw Error("Input too long");p=n[f].test(t)||"function"==typeof e}!p&&(h[t]!==e||"svg"===s.nodeName)&&l[s.nodeName][t]!==e&&(o&&-1===o.indexOf(t)?m[t]=e:e&&s.setAttribute(t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}),e))}(c[e],e);if(I(s,m),"svg"===s.nodeName&&s.setAttribute("stroke-width","1px"),"text"===s.nodeName)return;[].forEach.call(s.children||s.childNodes,e)}}(this.container.querySelector("svg")),t.parentNode.removeChild(t),s.parentNode.removeChild(s)}function y(e){let{scrollablePlotArea:t}=this;(t?[t.fixedDiv,t.scrollingContainer]:[this.container]).forEach(function(t){e.appendChild(t)})}function b(){let e=this,t=(t,n,o)=>{e.isDirtyExporting=!0,q(!0,e.options[t],n),_(o,!0)&&e.redraw()};e.exporting={update:function(e,n){t("exporting",e,n)}},S.compose(e).navigation.addUpdate((e,n)=>{t("navigation",e,n)})}function v({alignTo:e,key:t,textPxLength:n}){let o=this.options.exporting,{align:i,buttonSpacing:r=0,verticalAlign:l,width:s=0}=q(this.options.navigation?.buttonOptions,o?.buttons?.contextButton),a=e.width-n,c=s+r;(o?.enabled??!0)&&"title"===t&&"right"===i&&"top"===l&&a<2*c&&(a{R.focus(),R.print(),u().isSafari||setTimeout(()=>{e.afterPrint()},1e3)},1))}function O(){let e=this,t=e.options.exporting,n=t.buttons,o=e.isDirtyExporting||!e.exportSVGElements;e.buttonOffset=0,e.isDirtyExporting&&e.destroyExport(),o&&!1!==t.enabled&&(e.exportEvents=[],e.exportingGroup=e.exportingGroup||e.renderer.g("exporting-group").attr({zIndex:3}).add(),K(n,function(t){e.addButton(t)}),e.isDirtyExporting=!1)}function T(e,t){let n=e.indexOf("")+6,o=e.substr(n);return e=e.substr(0,n),t&&t.exporting&&t.exporting.allowHTML&&o&&(o=''+o.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",e=e.replace("",o+"")),e=e.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery\d+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/-1&&"image/svg+xml"!==i.type&&(u().isMS||"application/pdf"===i.type)?r(Error("Image type not supported for charts with embedded HTML")):e.downloadSVGLocal(t,el({filename:o.getFilename()},i),r,()=>es(o,"exportChartLocalSuccess"))})}function n(e,t){let n=et.getElementsByTagName("head")[0],o=et.createElement("script");o.type="text/javascript",o.src=e,o.onload=t,o.onerror=function(){er("Error loading script "+e)},n.appendChild(o)}function o(t,n,o,i){let r=this,l=e=>r.sanitizeSVG(e,d),s=()=>{u&&f===g&&i(l(h.innerHTML))},a=(e,t,n)=>{++f,n.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",e),s()},c,h,d,p=null,u,g=0,f=0;r.unbindGetSVG=ei(r,"getSVG",e=>{d=e.chartCopy.options,g=(u=(h=e.chartCopy.container.cloneNode(!0))&&h.getElementsByTagName("image")||[]).length}),r.getSVGForExport(t,n);try{if(!u||!u.length){i(l(h.innerHTML));return}for(let n=0;n{setTimeout(function(){let e;let l=et.createElement("canvas"),a=l.getContext&&l.getContext("2d");try{if(a){l.height=h.height*i,l.width=h.width*i,a.drawImage(h,0,0,l.width,l.height);try{e=l.toDataURL(n),r(e,n,o,i)}catch(e){d(t,n,o,i)}}else s(t,n,o,i)}finally{c&&c(t,n,o,i)}},e.loadEventDeferDelay)},u=()=>{a(t,n,o,i),c&&c(t,n,o,i)};d=()=>{h=new en.Image,d=l,h.crossOrigin="Anonymous",h.onload=p,h.onerror=u,h.src=t},h.onload=p,h.onerror=u,h.src=t}function r(t){let n=en.navigator.userAgent,o=n.indexOf("WebKit")>-1&&0>n.indexOf("Chrome");try{if(!o&&-1===t.indexOf("i?"p":"l","pt",[i,r]);[].forEach.call(e.querySelectorAll('*[visibility="hidden"]'),function(e){e.parentNode.removeChild(e)});let s=e.querySelectorAll("linearGradient");for(let e=0;e{"​"===e.textContent&&(e.textContent=" ",e.setAttribute("dx",-5))}),l.svg(e,{x:0,y:0,width:i,height:r,removeInvalid:!0}).then(()=>o(l.output("datauristring")))}e.CanVGRenderer={},e.domurl=en.URL||en.webkitURL||en,e.loadEventDeferDelay=u().isMS?150:0,e.compose=function(e){let n=e.prototype;return n.exportChartLocal||(n.getSVGForLocalExport=o,n.exportChartLocal=t,ea(!0,Q.exporting,Z)),e},e.downloadSVGLocal=function(t,o,s,a){let c=et.createElement("div"),h=o.type||"image/png",d=(o.filename||"chart")+"."+("image/svg+xml"===h?"svg":h.split("/")[1]),p=o.scale||1,u,g,f,m=o.libURL||Q.exporting.libURL,x=!0,y=o.pdfFont;m="/"!==m.slice(-1)?m+"/":m;let b=(e,t)=>{let n,o;let i=(e,t)=>{en.jspdf.jsPDF.API.events.push(["initialized",function(){this.addFileToVFS(e,t),this.addFont(e,"HighchartsFont",e),this.getFontList().HighchartsFont||this.setFont("HighchartsFont")}])};y&&(o=e.textContent||"",!/[^\u0000-\u007F\u200B]+/.test(o))&&(y=void 0);let r=["normal","italic","bold","bolditalic"],l=()=>{let e=r.shift();if(!e)return t();let o=y&&y[e];o?eo({url:o,responseType:"blob",success:(t,o)=>{let r=new FileReader;r.onloadend=function(){if("string"==typeof this.result){let t=this.result.split(",")[1];i(e,t),"normal"===e&&(n=t)}l()},r.readAsDataURL(o.response)},error:l}):(n&&i(e,n),l())};l()},v=()=>{let e,n;w().setElementHTML(c,t);let o=c.getElementsByTagName("text"),i=function(e,t){let n=e;for(;n&&n!==c;){if(n.style[t]){let o=n.style[t];"fontSize"===t&&/em$/.test(o)&&(o=Math.round(16*parseFloat(o))+"px"),e.style[t]=o;break}n=n.parentNode}};[].forEach.call(o,function(t){for(["fontFamily","fontSize"].forEach(e=>{i(t,e)}),t.style.fontFamily=y&&y.normal?"HighchartsFont":String(t.style.fontFamily&&t.style.fontFamily.split(" ").splice(-1)),e=t.getElementsByTagName("title"),[].forEach.call(e,function(e){t.removeChild(e)}),n=t.getElementsByClassName("highcharts-text-outline");n.length>0;){let e=n[0];e.parentNode&&e.parentNode.removeChild(e)}});let r=c.querySelector("svg");r&&b(r,()=>{l(r,0,p,e=>{try{ee(e,d),a&&a()}catch(e){s(e)}})})};if("image/svg+xml"===h)try{void 0!==en.MSBlobBuilder?((g=new en.MSBlobBuilder).append(t),u=g.getBlob("image/svg+xml")):u=r(t),ee(u,d),a&&a()}catch(e){s(e)}else"application/pdf"===h?en.jspdf&&en.jspdf.jsPDF?v():(x=!0,n(m+"jspdf.js",function(){n(m+"svg2pdf.js",v)})):(u=r(t),f=function(){try{e.domurl.revokeObjectURL(u)}catch(e){}},i(u,h,{},p,function(e){try{ee(e,d),a&&a()}catch(e){s(e)}},function(){if(t.length>1e8)throw Error("Input too long");let e=et.createElement("canvas"),o=e.getContext("2d"),i=t.match(/^]*\s{,1000}width\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/),r=t.match(/^]*\s{0,1000}height\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/);if(o&&i&&r){let l=+i[1]*p,c=+r[1]*p,u=()=>{en.canvg.Canvg.fromString(o,t).start();try{ee(en.navigator.msSaveOrOpenBlob?e.msToBlob():e.toDataURL(h),d),a&&a()}catch(e){s(e)}finally{f()}};e.width=l,e.height=c,en.canvg?u():(x=!0,n(m+"canvg.js",u))}},s,s,function(){x&&f()}))},e.getScript=n,e.imageToDataUrl=i,e.svgToDataUrl=r,e.svgToPdf=l}(s||(s={}));let ec=s,eh=u();eh.dataURLtoBlob=eh.dataURLtoBlob||b.dataURLtoBlob,eh.downloadSVGLocal=ec.downloadSVGLocal,eh.downloadURL=eh.downloadURL||b.downloadURL,ec.compose(eh.Chart);let ed=u();return d.default})()); \ No newline at end of file diff --git a/modules/offline-exporting.src.js b/modules/offline-exporting.src.js index 3849deb243..30f445e4d3 100644 --- a/modules/offline-exporting.src.js +++ b/modules/offline-exporting.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/offline-exporting * @requires highcharts * @requires highcharts/modules/exporting @@ -2954,7 +2954,7 @@ var Exporting; * * */ const OfflineExportingDefaults = { - libURL: 'https://code.highcharts.com/12.0.2/lib/', + libURL: 'https://code.highcharts.com/12.1.0/lib/', // When offline-exporting is loaded, redefine the menu item definitions // related to download. menuItemDefinitions: { diff --git a/modules/organization.js b/modules/organization.js index 7e9522d35b..0e58a041eb 100644 --- a/modules/organization.js +++ b/modules/organization.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * Organization chart series type * @module highcharts/modules/organization * @requires highcharts @@ -8,4 +8,4 @@ * (c) 2019-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/organization",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/organization"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s={28:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function r(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return s[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>D});var a=r(944),h=/*#__PURE__*/r.n(a),l=r(512),d=/*#__PURE__*/r.n(l);let{sankey:{prototype:{pointClass:p}}}=d().seriesTypes,{defined:g,find:u,pick:c}=h(),f=class extends p{constructor(t,e,i){super(t,e,i),this.isNode||(this.dataLabelOnNull=!0,this.formatPrefix="link")}getSum(){return 1}setNodeColumn(){super.setNodeColumn();let t=this,e=t.getFromNode().fromNode;if(!g(t.options.column)&&0!==t.linksTo.length&&e&&"hanging"===e.options.layout){let i=-1,s;t.options.layout=c(t.options.layout,"hanging"),t.hangsFrom=e,u(e.linksFrom,(e,s)=>{let n=e.toNode===t;return n&&(i=s),n});for(let n=0;n{e.id===e.toNode.linksTo[0].id?i+=t(e.toNode):i--}),i}(s.toNode);t.column=(t.column||0)+i}}},y={applyRadius:function(t,e){let i=[];for(let s=0;s{if(t&&o){let n=t.attr("id");n||t.attr("id",n=L());let o={x:0,y:0};w(r.dx)&&(o.dx=r.dx,delete r.dx),w(r.dy)&&(o.dy=r.dy,delete r.dy),s.attr(o),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let a=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:v(r,{"text-anchor":r.textAnchor,href:`${i}#${n}`}),children:a}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function N(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:n}=this.renderer.fontMetrics(this.element),r=n-s,o=RegExp('(|]*>|<\\/tspan>)',"g"),a=i.innerHTML.replace(o,"").split(/]*>/),h=a.length,l=(t,e)=>{let{x:n,y:o}=e,a=(i.getRotationOfChar(t)-90)*x,h=Math.cos(a),l=Math.sin(a);return[[n-r*h,o-r*l],[n+s*h,o+s*l]]};for(let e=0,s=0;s({width:i,height:n,x:0,y:0}),e.width=i,e.height=n}super.alignDataLabel.apply(this,arguments)}createNode(t){let e=super.createNode.call(this,t);return e.getSum=()=>1,e}pointAttribs(t,e){let i=T.prototype.pointAttribs.call(this,t,e),s=t.isNode?t.level:t.fromNode.level,n=this.mapOptionsToLevel[s||0]||{},r=t.options,o=n.states&&n.states[e]||{},a=C(o.borderRadius,r.borderRadius,n.borderRadius,this.options.borderRadius),h=C(o.linkColor,r.linkColor,n.linkColor,this.options.linkColor,o.link&&o.link.color,r.link&&r.link.color,n.link&&n.link.color,this.options.link&&this.options.link.color),l=C(o.linkLineWidth,r.linkLineWidth,n.linkLineWidth,this.options.linkLineWidth,o.link&&o.link.lineWidth,r.link&&r.link.lineWidth,n.link&&n.link.lineWidth,this.options.link&&this.options.link.lineWidth),d=C(o.linkOpacity,r.linkOpacity,n.linkOpacity,this.options.linkOpacity,o.link&&o.link.linkOpacity,r.link&&r.link.linkOpacity,n.link&&n.link.linkOpacity,this.options.link&&this.options.link.linkOpacity);return t.isNode?F(a)&&(i.r=a):(i.stroke=h,i["stroke-width"]=l,i.opacity=d,delete i.fill),i}translateLink(t){let e=this.chart,i=this.options,s=t.fromNode,n=t.toNode,r=C(i.linkLineWidth,i.link.lineWidth,0),o=C(i.link.offset,.5),a=C(t.options.link&&t.options.link.type,i.link.type);if(s.shapeArgs&&n.shapeArgs){let h=i.hangingIndent,l="right"===i.hangingSide,d=n.options.offset,p=/%$/.test(d)&&parseInt(d,10),g=e.inverted,u=S((s.shapeArgs.x||0)+(s.shapeArgs.width||0),r),c=S((s.shapeArgs.y||0)+(s.shapeArgs.height||0)/2,r),f=S(n.shapeArgs.x||0,r),m=S((n.shapeArgs.y||0)+(n.shapeArgs.height||0)/2,r),k;if(g&&(u-=s.shapeArgs.width||0,f+=n.shapeArgs.width||0),k=this.colDistance?S(f+(g?1:-1)*(this.colDistance-this.nodeWidth)/2,r):S((f+u)/2,r),p&&(p>=50||p<=-50)&&(k=f=S(f+(g?-.5:.5)*(n.shapeArgs.width||0),r),m=n.shapeArgs.y||0,p>0&&(m+=n.shapeArgs.height||0)),n.hangsFrom===s&&(e.inverted?(c=l?S((s.shapeArgs.y||0)+h/2,r):S((s.shapeArgs.y||0)+(s.shapeArgs.height||0)-h/2,r),m=l?(n.shapeArgs.y||0)+h/2:(n.shapeArgs.y||0)+(n.shapeArgs.height||0)):c=S((s.shapeArgs.y||0)+h/2,r),k=f=S((n.shapeArgs.x||0)+(n.shapeArgs.width||0)/2,r)),t.plotX=k,t.plotY=(c+m)/2,t.shapeType="path","straight"===a)t.shapeArgs={d:[["M",u,c],["L",f,m]]};else if("curved"===a){let e=Math.abs(f-u)*o*(g?-1:1);t.shapeArgs={d:[["M",u,c],["C",u+e,c,f-e,m,f,m]]}}else t.shapeArgs={d:y.applyRadius([["M",u,c],["L",k,c],["L",k,m],["L",f,m]],C(i.linkRadius,i.link.radius))};t.dlBox={x:(u+f)/2,y:(c+m)/2,height:r,width:0}}}translateNode(t,e){super.translateNode(t,e);let i=this.chart,s=this.options,n=Math.max(Math.round(t.getSum()*this.translationFactor),s.minLinkWidth||0),r="right"===s.hangingSide,o=s.hangingIndent||0,a=s.hangingIndentTranslation,h=s.minNodeLength||10,l=Math.round(this.nodeWidth),d=t.shapeArgs,p=i.inverted?-1:1,g=t.hangsFrom;if(g){if("cumulative"===a)for(d.height-=o,i.inverted&&!r&&(d.y-=p*o);g;)d.y+=(r?1:p)*o,g=g.hangsFrom;else if("shrink"===a)for(;g&&d.height>o+h;)d.height-=o,(!i.inverted||r)&&(d.y+=o),g=g.hangsFrom;else d.height-=o,(!i.inverted||r)&&(d.y+=o)}t.nodeHeight=i.inverted?d.width:d.height,t.shapeArgs&&!t.hangsFrom&&(t.shapeArgs=H(t.shapeArgs,{x:(t.shapeArgs.x||0)+l/2-(t.shapeArgs.width||0)/2,y:(t.shapeArgs.y||0)+n/2-(t.shapeArgs.height||0)/2}))}drawDataLabels(){let t=this.options.dataLabels;if(t.linkTextPath&&t.linkTextPath.enabled)for(let t of this.points)t.options.dataLabels=H(t.options.dataLabels,{useHTML:!1});super.drawDataLabels()}}R.defaultOptions=H(T.defaultOptions,{borderColor:"#666666",borderRadius:3,link:{color:"#666666",lineWidth:1,radius:10,type:"default"},borderWidth:1,dataLabels:{nodeFormatter:function(){let t={width:"100%",height:"100%",display:"flex","flex-direction":"row","align-items":"center","justify-content":"center"},e={"max-height":"100%","border-radius":"50%"},i={width:"100%",padding:0,"text-align":"center","white-space":"normal"};function s(t){return Object.keys(t).reduce(function(e,i){return e+i+":"+t[i]+";"},'style="')+'"'}let{description:n,image:r,title:o}=this.point;r&&(e["max-width"]="30%",i.width="70%"),this.series.chart.renderer.forExport&&(t.display="block",i.position="absolute",i.left=r?"30%":0,i.top=0);let a="

    ";return r&&(a+='"),a+="
    ",this.point.name&&(a+="

    "+this.point.name+"

    "),o&&(a+="

    "+(o||"")+"

    "),n&&(a+="

    "+n+"

    "),a+="
    "},style:{fontWeight:"normal",fontSize:"0.9em"},useHTML:!0,linkTextPath:{attributes:{startOffset:"95%",textAnchor:"end"}}},hangingIndent:20,hangingIndentTranslation:"inherit",hangingSide:"left",minNodeLength:10,nodeWidth:50,tooltip:{nodeFormat:"{point.name}
    {point.title}
    {point.description}"}}),W(R.prototype,{pointClass:f}),d().registerSeriesType("organization",R);let D=h();return o.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/organization",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/organization"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s={28:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function r(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return s[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>D});var a=r(944),h=r.n(a),l=r(512),d=r.n(l);let{sankey:{prototype:{pointClass:p}}}=d().seriesTypes,{defined:g,find:u,pick:c}=h(),f=class extends p{constructor(t,e,i){super(t,e,i),this.isNode||(this.dataLabelOnNull=!0,this.formatPrefix="link")}getSum(){return 1}setNodeColumn(){super.setNodeColumn();let t=this,e=t.getFromNode().fromNode;if(!g(t.options.column)&&0!==t.linksTo.length&&e&&"hanging"===e.options.layout){let i=-1,s;t.options.layout=c(t.options.layout,"hanging"),t.hangsFrom=e,u(e.linksFrom,(e,s)=>{let n=e.toNode===t;return n&&(i=s),n});for(let n=0;n{e.id===e.toNode.linksTo[0].id?i+=t(e.toNode):i--}),i}(s.toNode);t.column=(t.column||0)+i}}},y={applyRadius:function(t,e){let i=[];for(let s=0;s{if(t&&o){let n=t.attr("id");n||t.attr("id",n=L());let o={x:0,y:0};w(r.dx)&&(o.dx=r.dx,delete r.dx),w(r.dy)&&(o.dy=r.dy,delete r.dy),s.attr(o),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let a=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:v(r,{"text-anchor":r.textAnchor,href:`${i}#${n}`}),children:a}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function N(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:n}=this.renderer.fontMetrics(this.element),r=n-s,o=RegExp('(|]*>|<\\/tspan>)',"g"),a=i.innerHTML.replace(o,"").split(/]*>/),h=a.length,l=(t,e)=>{let{x:n,y:o}=e,a=(i.getRotationOfChar(t)-90)*x,h=Math.cos(a),l=Math.sin(a);return[[n-r*h,o-r*l],[n+s*h,o+s*l]]};for(let e=0,s=0;s({width:i,height:n,x:0,y:0}),e.width=i,e.height=n}super.alignDataLabel.apply(this,arguments)}createNode(t){let e=super.createNode.call(this,t);return e.getSum=()=>1,e}pointAttribs(t,e){let i=T.prototype.pointAttribs.call(this,t,e),s=t.isNode?t.level:t.fromNode.level,n=this.mapOptionsToLevel[s||0]||{},r=t.options,o=n.states&&n.states[e]||{},a=C(o.borderRadius,r.borderRadius,n.borderRadius,this.options.borderRadius),h=C(o.linkColor,r.linkColor,n.linkColor,this.options.linkColor,o.link&&o.link.color,r.link&&r.link.color,n.link&&n.link.color,this.options.link&&this.options.link.color),l=C(o.linkLineWidth,r.linkLineWidth,n.linkLineWidth,this.options.linkLineWidth,o.link&&o.link.lineWidth,r.link&&r.link.lineWidth,n.link&&n.link.lineWidth,this.options.link&&this.options.link.lineWidth),d=C(o.linkOpacity,r.linkOpacity,n.linkOpacity,this.options.linkOpacity,o.link&&o.link.linkOpacity,r.link&&r.link.linkOpacity,n.link&&n.link.linkOpacity,this.options.link&&this.options.link.linkOpacity);return t.isNode?F(a)&&(i.r=a):(i.stroke=h,i["stroke-width"]=l,i.opacity=d,delete i.fill),i}translateLink(t){let e=this.chart,i=this.options,s=t.fromNode,n=t.toNode,r=C(i.linkLineWidth,i.link.lineWidth,0),o=C(i.link.offset,.5),a=C(t.options.link&&t.options.link.type,i.link.type);if(s.shapeArgs&&n.shapeArgs){let h=i.hangingIndent,l="right"===i.hangingSide,d=n.options.offset,p=/%$/.test(d)&&parseInt(d,10),g=e.inverted,u=S((s.shapeArgs.x||0)+(s.shapeArgs.width||0),r),c=S((s.shapeArgs.y||0)+(s.shapeArgs.height||0)/2,r),f=S(n.shapeArgs.x||0,r),m=S((n.shapeArgs.y||0)+(n.shapeArgs.height||0)/2,r),k;if(g&&(u-=s.shapeArgs.width||0,f+=n.shapeArgs.width||0),k=this.colDistance?S(f+(g?1:-1)*(this.colDistance-this.nodeWidth)/2,r):S((f+u)/2,r),p&&(p>=50||p<=-50)&&(k=f=S(f+(g?-.5:.5)*(n.shapeArgs.width||0),r),m=n.shapeArgs.y||0,p>0&&(m+=n.shapeArgs.height||0)),n.hangsFrom===s&&(e.inverted?(c=l?S((s.shapeArgs.y||0)+h/2,r):S((s.shapeArgs.y||0)+(s.shapeArgs.height||0)-h/2,r),m=l?(n.shapeArgs.y||0)+h/2:(n.shapeArgs.y||0)+(n.shapeArgs.height||0)):c=S((s.shapeArgs.y||0)+h/2,r),k=f=S((n.shapeArgs.x||0)+(n.shapeArgs.width||0)/2,r)),t.plotX=k,t.plotY=(c+m)/2,t.shapeType="path","straight"===a)t.shapeArgs={d:[["M",u,c],["L",f,m]]};else if("curved"===a){let e=Math.abs(f-u)*o*(g?-1:1);t.shapeArgs={d:[["M",u,c],["C",u+e,c,f-e,m,f,m]]}}else t.shapeArgs={d:y.applyRadius([["M",u,c],["L",k,c],["L",k,m],["L",f,m]],C(i.linkRadius,i.link.radius))};t.dlBox={x:(u+f)/2,y:(c+m)/2,height:r,width:0}}}translateNode(t,e){super.translateNode(t,e);let i=this.chart,s=this.options,n=Math.max(Math.round(t.getSum()*this.translationFactor),s.minLinkWidth||0),r="right"===s.hangingSide,o=s.hangingIndent||0,a=s.hangingIndentTranslation,h=s.minNodeLength||10,l=Math.round(this.nodeWidth),d=t.shapeArgs,p=i.inverted?-1:1,g=t.hangsFrom;if(g){if("cumulative"===a)for(d.height-=o,i.inverted&&!r&&(d.y-=p*o);g;)d.y+=(r?1:p)*o,g=g.hangsFrom;else if("shrink"===a)for(;g&&d.height>o+h;)d.height-=o,(!i.inverted||r)&&(d.y+=o),g=g.hangsFrom;else d.height-=o,(!i.inverted||r)&&(d.y+=o)}t.nodeHeight=i.inverted?d.width:d.height,t.shapeArgs&&!t.hangsFrom&&(t.shapeArgs=H(t.shapeArgs,{x:(t.shapeArgs.x||0)+l/2-(t.shapeArgs.width||0)/2,y:(t.shapeArgs.y||0)+n/2-(t.shapeArgs.height||0)/2}))}drawDataLabels(){let t=this.options.dataLabels;if(t.linkTextPath&&t.linkTextPath.enabled)for(let t of this.points)t.options.dataLabels=H(t.options.dataLabels,{useHTML:!1});super.drawDataLabels()}}R.defaultOptions=H(T.defaultOptions,{borderColor:"#666666",borderRadius:3,link:{color:"#666666",lineWidth:1,radius:10,type:"default"},borderWidth:1,dataLabels:{nodeFormatter:function(){let t={width:"100%",height:"100%",display:"flex","flex-direction":"row","align-items":"center","justify-content":"center"},e={"max-height":"100%","border-radius":"50%"},i={width:"100%",padding:0,"text-align":"center","white-space":"normal"};function s(t){return Object.keys(t).reduce(function(e,i){return e+i+":"+t[i]+";"},'style="')+'"'}let{description:n,image:r,title:o}=this.point;r&&(e["max-width"]="30%",i.width="70%"),this.series.chart.renderer.forExport&&(t.display="block",i.position="absolute",i.left=r?"30%":0,i.top=0);let a="
    ";return r&&(a+='"),a+="
    ",this.point.name&&(a+="

    "+this.point.name+"

    "),o&&(a+="

    "+(o||"")+"

    "),n&&(a+="

    "+n+"

    "),a+="
    "},style:{fontWeight:"normal",fontSize:"0.9em",textAlign:"left"},useHTML:!0,linkTextPath:{attributes:{startOffset:"95%",textAnchor:"end"}}},hangingIndent:20,hangingIndentTranslation:"inherit",hangingSide:"left",minNodeLength:10,nodeWidth:50,tooltip:{nodeFormat:"{point.name}
    {point.title}
    {point.description}"}}),W(R.prototype,{pointClass:f}),d().registerSeriesType("organization",R);let D=h();return o.default})()); \ No newline at end of file diff --git a/modules/organization.src.js b/modules/organization.src.js index 3ec4270cf5..64b4d81569 100644 --- a/modules/organization.src.js +++ b/modules/organization.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * Organization chart series type * @module highcharts/modules/organization * @requires highcharts @@ -443,7 +443,9 @@ const OrganizationSeriesDefaults = { /** @internal */ fontWeight: 'normal', /** @internal */ - fontSize: '0.9em' + fontSize: '0.9em', + /** @internal */ + textAlign: 'left' }, useHTML: true, linkTextPath: { diff --git a/modules/overlapping-datalabels.js b/modules/overlapping-datalabels.js index 00c469ddd2..5962a888de 100644 --- a/modules/overlapping-datalabels.js +++ b/modules/overlapping-datalabels.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/overlapping-datalabels * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/overlapping-datalabels",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/overlapping-datalabels"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e,a={944:e=>{e.exports=t}},l={};function o(t){var e=l[t];if(void 0!==e)return e.exports;var i=l[t]={exports:{}};return a[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var a in e)o.o(e,a)&&!o.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};o.d(i,{default:()=>b});var n=o(944),r=/*#__PURE__*/o.n(n);!function(t){t.getCenterOfPoints=function(t){let e=t.reduce((t,e)=>(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},a){let l=a.length,o,i,n=!1;for(o=0,i=l-1;oe!=p>e&&t<(s-l)*(e-r)/(p-r)+l&&(n=!n)}return n}}(e||(e={}));let{pointInPolygon:s}=e,{addEvent:p,fireEvent:h,objectEach:c,pick:d}=r();function f(t){let e=t.length,a=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),l=(t,e)=>{for(let a of t)if(s({x:a[0],y:a[1]},e))return!0;return!1},o,i,n,r,p,c=!1;for(let a=0;a(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{c(t,t=>{t.label&&e.push(t.label)})});for(let a of t.series||[])if(a.visible&&a.hasDataLabels?.()){let l=a=>{for(let l of a)l.visible&&(l.dataLabels||[]).forEach(a=>{let o=a.options||{};a.labelrank=d(o.labelrank,l.labelrank,l.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(a.oldOpacity=a.opacity,a.newOpacity=1,u(a,t)):e.push(a)})};l(a.nodes||[]),l(a.points)}this.hideOverlappingLabels(e)}let g=r();g.OverlappingDataLabels=g.OverlappingDataLabels||{compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=f,p(t,"render",y))}},g.OverlappingDataLabels.compose(g.Chart);let b=r();return i.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/overlapping-datalabels",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/overlapping-datalabels"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e,a={944:e=>{e.exports=t}},l={};function o(t){var e=l[t];if(void 0!==e)return e.exports;var i=l[t]={exports:{}};return a[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var a in e)o.o(e,a)&&!o.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};o.d(i,{default:()=>b});var n=o(944),r=o.n(n);!function(t){t.getCenterOfPoints=function(t){let e=t.reduce((t,e)=>(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},a){let l=a.length,o,i,n=!1;for(o=0,i=l-1;oe!=p>e&&t<(s-l)*(e-r)/(p-r)+l&&(n=!n)}return n}}(e||(e={}));let{pointInPolygon:s}=e,{addEvent:p,fireEvent:h,objectEach:c,pick:d}=r();function f(t){let e=t.length,a=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),l=(t,e)=>{for(let a of t)if(s({x:a[0],y:a[1]},e))return!0;return!1},o,i,n,r,p,c=!1;for(let a=0;a(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{c(t,t=>{t.label&&e.push(t.label)})});for(let a of t.series||[])if(a.visible&&a.hasDataLabels?.()){let l=a=>{for(let l of a)l.visible&&(l.dataLabels||[]).forEach(a=>{let o=a.options||{};a.labelrank=d(o.labelrank,l.labelrank,l.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(a.oldOpacity=a.opacity,a.newOpacity=1,u(a,t)):e.push(a)})};l(a.nodes||[]),l(a.points)}this.hideOverlappingLabels(e)}let g=r();g.OverlappingDataLabels=g.OverlappingDataLabels||{compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=f,p(t,"render",y))}},g.OverlappingDataLabels.compose(g.Chart);let b=r();return i.default})()); \ No newline at end of file diff --git a/modules/overlapping-datalabels.src.js b/modules/overlapping-datalabels.src.js index 9afa9ec329..e3b857c77c 100644 --- a/modules/overlapping-datalabels.src.js +++ b/modules/overlapping-datalabels.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/overlapping-datalabels * @requires highcharts * diff --git a/modules/parallel-coordinates.js b/modules/parallel-coordinates.js index fb93550753..8b7ed49fa6 100644 --- a/modules/parallel-coordinates.js +++ b/modules/parallel-coordinates.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/parallel-coordinates * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Pawel Fus * * License: 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/parallel-coordinates",["highcharts/highcharts"],function(t){return e(t,t.Templating)}):"object"==typeof exports?exports["highcharts/modules/parallel-coordinates"]=e(t._Highcharts,t._Highcharts.Templating):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i,s,o,a={984:t=>{t.exports=e},944:e=>{e.exports=t}},l={};function r(t){var e=l[t];if(void 0!==e)return e.exports;var i=l[t]={exports:{}};return a[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};r.d(n,{default:()=>F});var h=r(944),p=/*#__PURE__*/r.n(h);let c={chart:{parallelCoordinates:!1,parallelAxes:{lineWidth:1,title:{text:"",reserveSpace:!1},labels:{x:0,y:4,align:"center",reserveSpace:!1},offset:0}},xAxis:{lineWidth:0,tickLength:0,opposite:!0,type:"category"}},{addEvent:d,arrayMax:f,arrayMin:u,isNumber:x,merge:g,pick:y}=p();class m{constructor(t){this.axis=t}setPosition(t,e){let i=this.axis,s=i.chart,o=((this.position||0)+.5)/(s.parallelInfo.counter+1);s.polar?e.angle=360*o:(e[t[0]]=100*o+"%",i[t[1]]=e[t[1]]=0,i[t[2]]=e[t[2]]=null,i[t[3]]=e[t[3]]=null)}}!function(t){function e(t){let e=this.chart,i=this.parallelCoordinates,s=["left","width","height","top"];if(e.hasParallelCoordinates){if(e.inverted&&(s=s.reverse()),this.isXAxis)this.options=g(this.options,c.xAxis,t.userOptions);else{let o=e.yAxis.indexOf(this);this.options=g(this.options,this.chart.options.chart.parallelAxes,t.userOptions),i.position=y(i.position,o>=0?o:e.yAxis.length),i.setPosition(s,this.options)}}}function i(t){let e=this.chart,i=this.parallelCoordinates;if(i&&e&&e.hasParallelCoordinates&&!this.isXAxis){let e=i.position,s=[];this.series.forEach(function(t){t.visible&&x(e)&&(s=(t.pointArrayMap||["y"]).reduce((i,s)=>[...i,t.getColumn(s)?.[e]??null],s))}),s=s.filter(x),this.dataMin=u(s),this.dataMax=f(s),t.preventDefault()}}function s(){this.parallelCoordinates||(this.parallelCoordinates=new m(this))}t.compose=function(t){t.keepProps.includes("parallel")||(t.keepProps.push("parallel"),d(t,"init",s),d(t,"afterSetOptions",e),d(t,"getSeriesExtremes",i))}}(i||(i={}));let A=i;var v=r(984),P=/*#__PURE__*/r.n(v);let{composed:b}=p(),{format:C}=P(),{addEvent:I,defined:X,erase:T,extend:M,insertItem:H,isArray:O,isNumber:_,pushUnique:w}=p();!function(t){function e(){let t=this.chart,e=this.points,i=e&&e.length,s=Number.MAX_VALUE,o,a;if(this.chart.hasParallelCoordinates){for(let l=0;l(()=>{"use strict";var i,s,o,a={984:t=>{t.exports=e},944:e=>{e.exports=t}},l={};function r(t){var e=l[t];if(void 0!==e)return e.exports;var i=l[t]={exports:{}};return a[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};r.d(n,{default:()=>F});var h=r(944),p=r.n(h);let c={chart:{parallelCoordinates:!1,parallelAxes:{lineWidth:1,title:{text:"",reserveSpace:!1},labels:{x:0,y:4,align:"center",reserveSpace:!1},offset:0}},xAxis:{lineWidth:0,tickLength:0,opposite:!0,type:"category"}},{addEvent:d,arrayMax:f,arrayMin:u,isNumber:x,merge:g,pick:y}=p();class m{constructor(t){this.axis=t}setPosition(t,e){let i=this.axis,s=i.chart,o=((this.position||0)+.5)/(s.parallelInfo.counter+1);s.polar?e.angle=360*o:(e[t[0]]=100*o+"%",i[t[1]]=e[t[1]]=0,i[t[2]]=e[t[2]]=null,i[t[3]]=e[t[3]]=null)}}!function(t){function e(t){let e=this.chart,i=this.parallelCoordinates,s=["left","width","height","top"];if(e.hasParallelCoordinates){if(e.inverted&&(s=s.reverse()),this.isXAxis)this.options=g(this.options,c.xAxis,t.userOptions);else{let o=e.yAxis.indexOf(this);this.options=g(this.options,this.chart.options.chart.parallelAxes,t.userOptions),i.position=y(i.position,o>=0?o:e.yAxis.length),i.setPosition(s,this.options)}}}function i(t){let e=this.chart,i=this.parallelCoordinates;if(i&&e&&e.hasParallelCoordinates&&!this.isXAxis){let e=i.position,s=[];this.series.forEach(function(t){t.visible&&x(e)&&(s=(t.pointArrayMap||["y"]).reduce((i,s)=>[...i,t.getColumn(s)?.[e]??null],s))}),s=s.filter(x),this.dataMin=u(s),this.dataMax=f(s),t.preventDefault()}}function s(){this.parallelCoordinates||(this.parallelCoordinates=new m(this))}t.compose=function(t){t.keepProps.includes("parallel")||(t.keepProps.push("parallel"),d(t,"init",s),d(t,"afterSetOptions",e),d(t,"getSeriesExtremes",i))}}(i||(i={}));let A=i;var v=r(984),P=r.n(v);let{composed:b}=p(),{format:C}=P(),{addEvent:I,defined:X,erase:T,extend:M,insertItem:H,isArray:O,isNumber:_,pushUnique:w}=p();!function(t){function e(){let t=this.chart,e=this.points,i=e&&e.length,s=Number.MAX_VALUE,o,a;if(this.chart.hasParallelCoordinates){for(let l=0;l(()=>{"use strict";var i,r={820:e=>{e.exports=t},512:e=>{e.exports=s},944:t=>{t.exports=e}},a={};function n(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};n.d(o,{default:()=>H});var h=n(944),d=/*#__PURE__*/n.n(h),p=n(820),u=/*#__PURE__*/n.n(p);let{noop:l}=d(),{addEvent:c,defined:f}=d();!function(e){function t(){u().prototype.init.apply(this,arguments),this.initialised=!1,this.baseSeries=null,this.eventRemovers=[],this.addEvents()}function s(){let e=this.chart,t=this.options.baseSeries,s=f(t)&&(e.series[t]||e.get(t));this.baseSeries=s||null}function i(){this.eventRemovers.push(c(this.chart,"afterLinkSeries",()=>{this.setBaseSeries(),this.baseSeries&&!this.initialised&&(this.setDerivedData(),this.addBaseSeriesEvents(),this.initialised=!0)}))}function r(){this.eventRemovers.push(c(this.baseSeries,"updatedData",()=>{this.setDerivedData()}),c(this.baseSeries,"destroy",()=>{this.baseSeries=null,this.initialised=!1}))}function a(){this.eventRemovers.forEach(e=>{e()}),u().prototype.destroy.apply(this,arguments)}e.hasDerivedData=!0,e.setDerivedData=l,e.compose=function(e){let n=e.prototype;return n.addBaseSeriesEvents=r,n.addEvents=i,n.destroy=a,n.init=t,n.setBaseSeries=s,e},e.init=t,e.setBaseSeries=s,e.addEvents=i,e.addBaseSeriesEvents=r,e.destroy=a}(i||(i={}));let v=i;var y=n(512),S=/*#__PURE__*/n.n(y);let{line:g}=S().seriesTypes,{correctFloat:m,merge:D,extend:b}=d();class x extends g{sumPointsPercents(e,t,s,i){let r=[],a=0,n=0,o=0,h;for(let d of e)null!==d&&(i?n+=d:(h=d/s*100,r.push([t[a],m(o+h)]),o+=h)),++a;return i?n:r}setDerivedData(){let e=this.baseSeries?.getColumn("x")||[],t=this.baseSeries?.getColumn("y")||[],s=this.sumPointsPercents(t,e,null,!0);this.setData(this.sumPointsPercents(t,e,s,!1),!1)}}x.defaultOptions=D(g.defaultOptions,{zIndex:3}),b(x.prototype,{hasDerivedData:v.hasDerivedData}),v.compose(x),S().registerSeriesType("pareto",x);let H=d();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Series,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/pareto",["highcharts/highcharts"],function(e){return t(e,e.Series,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/pareto"]=t(e._Highcharts,e._Highcharts.Series,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.Series,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t,s)=>(()=>{"use strict";var i,r={820:e=>{e.exports=t},512:e=>{e.exports=s},944:t=>{t.exports=e}},a={};function n(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};n.d(o,{default:()=>H});var h=n(944),d=n.n(h),p=n(820),u=n.n(p);let{noop:l}=d(),{addEvent:c,defined:f}=d();!function(e){function t(){u().prototype.init.apply(this,arguments),this.initialised=!1,this.baseSeries=null,this.eventRemovers=[],this.addEvents()}function s(){let e=this.chart,t=this.options.baseSeries,s=f(t)&&(e.series[t]||e.get(t));this.baseSeries=s||null}function i(){this.eventRemovers.push(c(this.chart,"afterLinkSeries",()=>{this.setBaseSeries(),this.baseSeries&&!this.initialised&&(this.setDerivedData(),this.addBaseSeriesEvents(),this.initialised=!0)}))}function r(){this.eventRemovers.push(c(this.baseSeries,"updatedData",()=>{this.setDerivedData()}),c(this.baseSeries,"destroy",()=>{this.baseSeries=null,this.initialised=!1}))}function a(){this.eventRemovers.forEach(e=>{e()}),u().prototype.destroy.apply(this,arguments)}e.hasDerivedData=!0,e.setDerivedData=l,e.compose=function(e){let n=e.prototype;return n.addBaseSeriesEvents=r,n.addEvents=i,n.destroy=a,n.init=t,n.setBaseSeries=s,e},e.init=t,e.setBaseSeries=s,e.addEvents=i,e.addBaseSeriesEvents=r,e.destroy=a}(i||(i={}));let v=i;var y=n(512),S=n.n(y);let{line:g}=S().seriesTypes,{correctFloat:m,merge:D,extend:b}=d();class x extends g{sumPointsPercents(e,t,s,i){let r=[],a=0,n=0,o=0,h;for(let d of e)null!==d&&(i?n+=d:(h=d/s*100,r.push([t[a],m(o+h)]),o+=h)),++a;return i?n:r}setDerivedData(){let e=this.baseSeries?.getColumn("x")||[],t=this.baseSeries?.getColumn("y")||[],s=this.sumPointsPercents(t,e,null,!0);this.setData(this.sumPointsPercents(t,e,s,!1),!1)}}x.defaultOptions=D(g.defaultOptions,{zIndex:3}),b(x.prototype,{hasDerivedData:v.hasDerivedData}),v.compose(x),S().registerSeriesType("pareto",x);let H=d();return o.default})()); \ No newline at end of file diff --git a/modules/pareto.src.js b/modules/pareto.src.js index fbf812d4c5..260c711b72 100644 --- a/modules/pareto.src.js +++ b/modules/pareto.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/pareto * @requires highcharts * diff --git a/modules/pathfinder.js b/modules/pathfinder.js index 8711b06d36..9c808a7497 100644 --- a/modules/pathfinder.js +++ b/modules/pathfinder.js @@ -1,5 +1,5 @@ !/** - * Highcharts Gantt JS v12.0.2 (2024-12-04) + * Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/pathfinder * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2016-2024 Øystein Moseng * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Point):"function"==typeof define&&define.amd?define("highcharts/modules/pathfinder",["highcharts/highcharts"],function(t){return e(t,t.Point)}):"object"==typeof exports?exports["highcharts/modules/pathfinder"]=e(t._Highcharts,t._Highcharts.Point):t.Highcharts=e(t.Highcharts,t.Highcharts.Point)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var n,i={260:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var n=r[t]={exports:{}};return i[t](n,n.exports,a),n.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};a.d(o,{default:()=>F});var s=a(944),h=/*#__PURE__*/a.n(s);let{defined:c,error:l,merge:x,objectEach:M}=h(),d=h().deg2rad,y=Math.max,p=Math.min,f=class{constructor(t,e,n){this.init(t,e,n)}init(t,e,n){this.fromPoint=t,this.toPoint=e,this.options=n,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let n=this.chart,i=n.styledMode,r=this.pathfinder,a={},o=this.graphics&&this.graphics.path;r.group||(r.group=n.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(n.seriesGroup)),r.group.translate(n.plotLeft,n.plotTop),o&&o.renderer||(o=n.renderer.path().add(r.group),i||o.attr({opacity:0})),o.attr(e),a.d=t,i||(a.opacity=1),o.animate(a),this.graphics=this.graphics||{},this.graphics.path=o}addMarker(t,e,n){let i,r,a,o,s,h,c,l;let x=this.fromPoint.series.chart,M=x.pathfinder,y=x.renderer,p="start"===t?this.fromPoint:this.toPoint,f=p.getPathfinderAnchorPoint(e);e.enabled&&((l="start"===t?n[1]:n[n.length-2])&&"M"===l[0]||"L"===l[0])&&(c={x:l[1],y:l[2]},r=p.getRadiansToVector(c,f),i=p.getMarkerVector(r,e.radius,f),a=-r/d,e.width&&e.height?(s=e.width,h=e.height):s=h=2*e.radius,this.graphics=this.graphics||{},o={x:i.x-s/2,y:i.y-h/2,width:s,height:h,rotation:a,rotationOriginX:i.x,rotationOriginY:i.y},this.graphics[t]?this.graphics[t].animate(o):(this.graphics[t]=y.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(o).add(M.group),y.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},p.series.options.animation)))}getPath(t){let e=this.pathfinder,n=this.chart,i=e.algorithms[t.type],r=e.chartObstacles;return"function"!=typeof i?(l('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(i.requiresObstacles&&!r&&(r=e.chartObstacles=e.getChartObstacles(t),n.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(r)),i(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),x({chartObstacles:r,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:n.plotWidth,yMin:0,yMax:n.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,n=e.chart,i=n.pathfinder,r={},a=x(n.options.connectors,e.options.connectors,t.options.connectors,this.options);!n.styledMode&&(r.stroke=a.lineColor||t.color,r["stroke-width"]=a.lineWidth,a.dashStyle&&(r.dashstyle=a.dashStyle)),r.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,c((a=x(r,a)).marker.radius)||(a.marker.radius=p(y(Math.ceil((a.algorithmMargin||8)/2)-1,1),5));let o=this.getPath(a),s=o.path;o.obstacles&&(i.lineObstacles=i.lineObstacles||[],i.lineObstacles=i.lineObstacles.concat(o.obstacles)),this.renderPath(s,r),this.addMarker("start",x(a.marker,a.startMarker),s),this.addMarker("end",x(a.marker,a.endMarker),s)}destroy(){this.graphics&&(M(this.graphics,function(t){t.destroy()}),delete this.graphics)}},u={applyRadius:function(t,e){let n=[];for(let i=0;i>1].xMin)>0)r=o+1;else{if(!(s<0))return o;a=o-1}return r>0?r-1:0}function O(t,e){let n=v(t,e.x+1)+1;for(;n--;){var i;if(t[n].xMax>=e.x&&(i=t[n],e.x<=i.xMax&&e.x>=i.xMin&&e.y<=i.yMax&&e.y>=i.yMin))return n}return -1}function k(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let n=0;nP(e.y-t.y))?"x":"y",c,l,x,M;function d(t,e,n,i,r){let a={x:t.x,y:t.y};return a[e]=n[i||e]+(r||0),a}function y(t,e,n){let i=P(e[n]-t[n+"Min"])>P(e[n]-t[n+"Max"]);return d(e,n,t,n+(i?"Max":"Min"),i?1:-1)}o>-1?(s={start:l=y(r[o],e,h),end:e},M=l):M=e,a>-1&&(l=y(c=r[a],t,h),i.push({start:t,end:l}),l[h]>=t[h]==l[h]>=M[h]&&(x=t[h="y"===h?"x":"y"]P(e.y-t.y)),r=i?"x":"y",a=[],o=n.obstacleMetrics,s=m(t.x,e.x)-o.maxWidth-10,h=b(t.x,e.x)+o.maxWidth+10,c=m(t.y,e.y)-o.maxHeight-10,l=b(t.y,e.y)+o.maxHeight+10,x,M,d,y=!1,p=n.chartObstacles,f=v(p,h),u=v(p,s);function A(t,e,n){let i,r,a,o;let s=t.x0&&p[h].xMin<=r.x||s<0&&p[h].xMax>=i.x);){if(p[h].xMin<=r.x&&p[h].xMax>=i.x&&p[h].yMin<=a.y&&p[h].yMax>=o.y){if(n)return{y:t.y,x:t.x=a[s+"Max"],x=t[s+"Min"]<=a[s+"Min"],M=t[s+"Max"]>=o[s+"Max"],d=t[s+"Min"]<=o[s+"Min"],y=P(t[s+"Min"]-e[s]),p=P(t[s+"Max"]-e[s]),f=10>P(y-p)?e[s]-1&&(d=function(t,e,i){let r=m(t.xMax-e.x,e.x-t.xMin)-1;)M=e[r]-t[r]<0,(d={x:e.x,y:e.y})[r]=p[f][M?r+"Max":r+"Min"]+(M?1:-1),a.push({end:e,start:d}),e=d;return{path:k(x=(x=function t(e,i,r){let a,o,x,M,d,f,u;if(e.x===i.x&&e.y===i.y)return[];let g=r?"x":"y",P=n.obstacleOptions.margin,v={soft:{xMin:s,xMax:h,yMin:c,yMax:l},hard:n.hardBounds};return(d=O(p,e))>-1?(M=I(d=p[d],e,i,r,v),w(d,n.hardBounds),u=r?{y:e.y,x:d[M?"xMax":"xMin"]+(M?1:-1)}:{x:e.x,y:d[M?"yMax":"yMin"]+(M?1:-1)},(f=O(p,u))>-1&&(w(f=p[f],n.hardBounds),u[g]=M?b(d[g+"Max"]-P+1,(f[g+"Min"]+d[g+"Max"])/2):m(d[g+"Min"]+P-1,(f[g+"Max"]+d[g+"Min"])/2),e.x===u.x&&e.y===u.y?(y&&(u[g]=M?b(d[g+"Max"],f[g+"Max"])+1:m(d[g+"Min"],f[g+"Min"])-1),y=!y):y=!1),o=[{start:e,end:u}]):(a=A(e,{x:r?i.x:e.x,y:r?e.y:i.y},r),o=[{start:e,end:{x:a.x,y:a.y}}],a[r?"x":"y"]!==i[r?"x":"y"]&&(M=I(a.obstacle,a,i,!r,v),w(a.obstacle,n.hardBounds),x={x:r?a.x:a.obstacle[M?"xMax":"xMin"]+(M?1:-1),y:r?a.obstacle[M?"yMax":"yMin"]+(M?1:-1):a.y},r=!r,o=o.concat(t({x:a.x,y:a.y},x,r)))),o=o.concat(t(o[o.length-1].end,i,!r))}(t,e,i)).concat(a.reverse())),obstacles:x}}A.requiresObstacles=!0,I.requiresObstacles=!0;let R={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:L}=h(),{defined:B,error:E,merge:H}=h();function C(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let n=t.graphic&&t.graphic.getBBox();return n?{xMin:t.plotX-n.width/2,xMax:t.plotX+n.width/2,yMin:t.plotY-n.height/2,yMax:t.plotY+n.height/2}:null}!function(t){function e(t){let e,n;let i=C(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":n="yMin";break;case"bottom":n="yMax"}return{x:e?i[e]:(i.xMin+i.xMax)/2,y:n?i[n]:(i.yMin+i.yMax)/2}}function n(t,e){let n;return!B(e)&&(n=C(this))&&(e={x:(n.xMin+n.xMax)/2,y:(n.yMin+n.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function i(t,e,n){let i=2*Math.PI,r=C(this),a=r.xMax-r.xMin,o=r.yMax-r.yMin,s=Math.atan2(o,a),h=a/2,c=o/2,l=r.xMin+h,x=r.yMin+c,M={x:l,y:x},d=t,y=1,p=!1,f=1,u=1;for(;d<-Math.PI;)d+=i;for(;d>Math.PI;)d-=i;return y=Math.tan(d),d>-s&&d<=s?(u=-1,p=!0):d>s&&d<=Math.PI-s?u=-1:d>Math.PI-s||d<=-(Math.PI-s)?(f=-1,p=!0):f=-1,p?(M.x+=f*h,M.y+=u*h*y):(M.x+=o/(2*y)*f,M.y+=u*c),n.x!==l&&(M.x=n.x),n.y!==x&&(M.y=n.y),{x:M.x+e*Math.cos(d),y:M.y-e*Math.sin(d)}}t.compose=function(t,r,a){let o=a.prototype;o.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&H(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&(H(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),E('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new r(this),this.pathfinder.update(!0))}),o.getMarkerVector=i,o.getPathfinderAnchorPoint=e,o.getRadiansToVector=n,L(R))}}(n||(n={}));let W=n;var X=a(260),_=/*#__PURE__*/a.n(X);let{addEvent:j,defined:D,pick:S,splat:V}=h(),Y=Math.max,q=Math.min;class G{static compose(t,e){W.compose(t,G,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],j(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,n=this,i=n.connections;n.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let i;let r=t.options;r&&r.dependency&&(r.connect=r.dependency);let a=t.options?.connect?V(t.options.connect):[];t.visible&&!1!==t.isInside&&a.forEach(r=>{let a="string"==typeof r?r:r.to;a&&(i=e.get(a)),i instanceof _()&&i.series.visible&&i.visible&&!1!==i.isInside&&n.connections.push(new f(t,i,"string"==typeof r?{}:r))})})});for(let t=0,e,r,a=i.length,o=n.connections.length;tn.yMin-r&&e.yMin-rn.xMin-r&&e.xMin-rn.xMax?e.xMin-n.xMax:n.xMin-e.xMax:1/0,h=o?e.yMin>n.yMax?e.yMin-n.yMax:n.yMin-e.yMax:1/0;return o&&a?r?t(e,n,Math.floor(r/2)):1/0:q(s,h)}(t[r],t[a]))<80&&i.push(e);return i.push(80),Y(Math.floor(i.sort(function(t,e){return t-e})[Math.floor(i.length/10)]/2-1),1)}(i),i.forEach(function(t){t.xMin-=r,t.xMax+=r,t.yMin-=r,t.yMax+=r})),i}getObstacleMetrics(t){let e=0,n=0,i,r,a=t.length;for(;a--;)i=t[a].xMax-t[a].xMin,r=t[a].yMax-t[a].yMin,e(()=>{"use strict";var n,i={260:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var n=r[t]={exports:{}};return i[t](n,n.exports,a),n.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};a.d(o,{default:()=>F});var s=a(944),h=a.n(s);let{defined:c,error:l,merge:x,objectEach:M}=h(),d=h().deg2rad,y=Math.max,p=Math.min,f=class{constructor(t,e,n){this.init(t,e,n)}init(t,e,n){this.fromPoint=t,this.toPoint=e,this.options=n,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let n=this.chart,i=n.styledMode,r=this.pathfinder,a={},o=this.graphics&&this.graphics.path;r.group||(r.group=n.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(n.seriesGroup)),r.group.translate(n.plotLeft,n.plotTop),o&&o.renderer||(o=n.renderer.path().add(r.group),i||o.attr({opacity:0})),o.attr(e),a.d=t,i||(a.opacity=1),o.animate(a),this.graphics=this.graphics||{},this.graphics.path=o}addMarker(t,e,n){let i,r,a,o,s,h,c,l;let x=this.fromPoint.series.chart,M=x.pathfinder,y=x.renderer,p="start"===t?this.fromPoint:this.toPoint,f=p.getPathfinderAnchorPoint(e);e.enabled&&((l="start"===t?n[1]:n[n.length-2])&&"M"===l[0]||"L"===l[0])&&(c={x:l[1],y:l[2]},r=p.getRadiansToVector(c,f),i=p.getMarkerVector(r,e.radius,f),a=-r/d,e.width&&e.height?(s=e.width,h=e.height):s=h=2*e.radius,this.graphics=this.graphics||{},o={x:i.x-s/2,y:i.y-h/2,width:s,height:h,rotation:a,rotationOriginX:i.x,rotationOriginY:i.y},this.graphics[t]?this.graphics[t].animate(o):(this.graphics[t]=y.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(o).add(M.group),y.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},p.series.options.animation)))}getPath(t){let e=this.pathfinder,n=this.chart,i=e.algorithms[t.type],r=e.chartObstacles;return"function"!=typeof i?(l('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(i.requiresObstacles&&!r&&(r=e.chartObstacles=e.getChartObstacles(t),n.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(r)),i(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),x({chartObstacles:r,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:n.plotWidth,yMin:0,yMax:n.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,n=e.chart,i=n.pathfinder,r={},a=x(n.options.connectors,e.options.connectors,t.options.connectors,this.options);!n.styledMode&&(r.stroke=a.lineColor||t.color,r["stroke-width"]=a.lineWidth,a.dashStyle&&(r.dashstyle=a.dashStyle)),r.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,c((a=x(r,a)).marker.radius)||(a.marker.radius=p(y(Math.ceil((a.algorithmMargin||8)/2)-1,1),5));let o=this.getPath(a),s=o.path;o.obstacles&&(i.lineObstacles=i.lineObstacles||[],i.lineObstacles=i.lineObstacles.concat(o.obstacles)),this.renderPath(s,r),this.addMarker("start",x(a.marker,a.startMarker),s),this.addMarker("end",x(a.marker,a.endMarker),s)}destroy(){this.graphics&&(M(this.graphics,function(t){t.destroy()}),delete this.graphics)}},u={applyRadius:function(t,e){let n=[];for(let i=0;i>1].xMin)>0)r=o+1;else{if(!(s<0))return o;a=o-1}return r>0?r-1:0}function O(t,e){let n=v(t,e.x+1)+1;for(;n--;){var i;if(t[n].xMax>=e.x&&(i=t[n],e.x<=i.xMax&&e.x>=i.xMin&&e.y<=i.yMax&&e.y>=i.yMin))return n}return -1}function k(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let n=0;nP(e.y-t.y))?"x":"y",c,l,x,M;function d(t,e,n,i,r){let a={x:t.x,y:t.y};return a[e]=n[i||e]+(r||0),a}function y(t,e,n){let i=P(e[n]-t[n+"Min"])>P(e[n]-t[n+"Max"]);return d(e,n,t,n+(i?"Max":"Min"),i?1:-1)}o>-1?(s={start:l=y(r[o],e,h),end:e},M=l):M=e,a>-1&&(l=y(c=r[a],t,h),i.push({start:t,end:l}),l[h]>=t[h]==l[h]>=M[h]&&(x=t[h="y"===h?"x":"y"]P(e.y-t.y)),r=i?"x":"y",a=[],o=n.obstacleMetrics,s=m(t.x,e.x)-o.maxWidth-10,h=b(t.x,e.x)+o.maxWidth+10,c=m(t.y,e.y)-o.maxHeight-10,l=b(t.y,e.y)+o.maxHeight+10,x,M,d,y=!1,p=n.chartObstacles,f=v(p,h),u=v(p,s);function A(t,e,n){let i,r,a,o;let s=t.x0&&p[h].xMin<=r.x||s<0&&p[h].xMax>=i.x);){if(p[h].xMin<=r.x&&p[h].xMax>=i.x&&p[h].yMin<=a.y&&p[h].yMax>=o.y){if(n)return{y:t.y,x:t.x=a[s+"Max"],x=t[s+"Min"]<=a[s+"Min"],M=t[s+"Max"]>=o[s+"Max"],d=t[s+"Min"]<=o[s+"Min"],y=P(t[s+"Min"]-e[s]),p=P(t[s+"Max"]-e[s]),f=10>P(y-p)?e[s]-1&&(d=function(t,e,i){let r=m(t.xMax-e.x,e.x-t.xMin)-1;)M=e[r]-t[r]<0,(d={x:e.x,y:e.y})[r]=p[f][M?r+"Max":r+"Min"]+(M?1:-1),a.push({end:e,start:d}),e=d;return{path:k(x=(x=function t(e,i,r){let a,o,x,M,d,f,u;if(e.x===i.x&&e.y===i.y)return[];let g=r?"x":"y",P=n.obstacleOptions.margin,v={soft:{xMin:s,xMax:h,yMin:c,yMax:l},hard:n.hardBounds};return(d=O(p,e))>-1?(M=I(d=p[d],e,i,r,v),w(d,n.hardBounds),u=r?{y:e.y,x:d[M?"xMax":"xMin"]+(M?1:-1)}:{x:e.x,y:d[M?"yMax":"yMin"]+(M?1:-1)},(f=O(p,u))>-1&&(w(f=p[f],n.hardBounds),u[g]=M?b(d[g+"Max"]-P+1,(f[g+"Min"]+d[g+"Max"])/2):m(d[g+"Min"]+P-1,(f[g+"Max"]+d[g+"Min"])/2),e.x===u.x&&e.y===u.y?(y&&(u[g]=M?b(d[g+"Max"],f[g+"Max"])+1:m(d[g+"Min"],f[g+"Min"])-1),y=!y):y=!1),o=[{start:e,end:u}]):(a=A(e,{x:r?i.x:e.x,y:r?e.y:i.y},r),o=[{start:e,end:{x:a.x,y:a.y}}],a[r?"x":"y"]!==i[r?"x":"y"]&&(M=I(a.obstacle,a,i,!r,v),w(a.obstacle,n.hardBounds),x={x:r?a.x:a.obstacle[M?"xMax":"xMin"]+(M?1:-1),y:r?a.obstacle[M?"yMax":"yMin"]+(M?1:-1):a.y},r=!r,o=o.concat(t({x:a.x,y:a.y},x,r)))),o=o.concat(t(o[o.length-1].end,i,!r))}(t,e,i)).concat(a.reverse())),obstacles:x}}A.requiresObstacles=!0,I.requiresObstacles=!0;let R={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:L}=h(),{defined:B,error:E,merge:H}=h();function C(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let n=t.graphic&&t.graphic.getBBox();return n?{xMin:t.plotX-n.width/2,xMax:t.plotX+n.width/2,yMin:t.plotY-n.height/2,yMax:t.plotY+n.height/2}:null}!function(t){function e(t){let e,n;let i=C(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":n="yMin";break;case"bottom":n="yMax"}return{x:e?i[e]:(i.xMin+i.xMax)/2,y:n?i[n]:(i.yMin+i.yMax)/2}}function n(t,e){let n;return!B(e)&&(n=C(this))&&(e={x:(n.xMin+n.xMax)/2,y:(n.yMin+n.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function i(t,e,n){let i=2*Math.PI,r=C(this),a=r.xMax-r.xMin,o=r.yMax-r.yMin,s=Math.atan2(o,a),h=a/2,c=o/2,l=r.xMin+h,x=r.yMin+c,M={x:l,y:x},d=t,y=1,p=!1,f=1,u=1;for(;d<-Math.PI;)d+=i;for(;d>Math.PI;)d-=i;return y=Math.tan(d),d>-s&&d<=s?(u=-1,p=!0):d>s&&d<=Math.PI-s?u=-1:d>Math.PI-s||d<=-(Math.PI-s)?(f=-1,p=!0):f=-1,p?(M.x+=f*h,M.y+=u*h*y):(M.x+=o/(2*y)*f,M.y+=u*c),n.x!==l&&(M.x=n.x),n.y!==x&&(M.y=n.y),{x:M.x+e*Math.cos(d),y:M.y-e*Math.sin(d)}}t.compose=function(t,r,a){let o=a.prototype;o.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&H(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&(H(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),E('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new r(this),this.pathfinder.update(!0))}),o.getMarkerVector=i,o.getPathfinderAnchorPoint=e,o.getRadiansToVector=n,L(R))}}(n||(n={}));let W=n;var X=a(260),_=a.n(X);let{addEvent:j,defined:D,pick:S,splat:V}=h(),Y=Math.max,q=Math.min;class G{static compose(t,e){W.compose(t,G,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],j(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,n=this,i=n.connections;n.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let i;let r=t.options;r&&r.dependency&&(r.connect=r.dependency);let a=t.options?.connect?V(t.options.connect):[];t.visible&&!1!==t.isInside&&a.forEach(r=>{let a="string"==typeof r?r:r.to;a&&(i=e.get(a)),i instanceof _()&&i.series.visible&&i.visible&&!1!==i.isInside&&n.connections.push(new f(t,i,"string"==typeof r?{}:r))})})});for(let t=0,e,r,a=i.length,o=n.connections.length;tn.yMin-r&&e.yMin-rn.xMin-r&&e.xMin-rn.xMax?e.xMin-n.xMax:n.xMin-e.xMax:1/0,h=o?e.yMin>n.yMax?e.yMin-n.yMax:n.yMin-e.yMax:1/0;return o&&a?r?t(e,n,Math.floor(r/2)):1/0:q(s,h)}(t[r],t[a]))<80&&i.push(e);return i.push(80),Y(Math.floor(i.sort(function(t,e){return t-e})[Math.floor(i.length/10)]/2-1),1)}(i),i.forEach(function(t){t.xMin-=r,t.xMax+=r,t.yMin-=r,t.yMax+=r})),i}getObstacleMetrics(t){let e=0,n=0,i,r,a=t.length;for(;a--;)i=t[a].xMax-t[a].xMin,r=t[a].yMax-t[a].yMin,e(()=>{"use strict";var e={944:e=>{e.exports=t}},r={};function i(t){var a=r[t];if(void 0!==a)return a.exports;var o=r[t]={exports:{}};return e[t](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};i.d(a,{default:()=>R});var o=i(944),n=/*#__PURE__*/i.n(o);let{animObject:h}=n(),{getOptions:s}=n(),{addEvent:l,defined:p,erase:c,extend:d,merge:f,pick:g,removeEvent:u,wrap:m}=n(),x=function(){let t=[],e=s().colors,r=0;for(let i of["M 0 0 L 5 5 M 4.5 -0.5 L 5.5 0.5 M -0.5 4.5 L 0.5 5.5","M 0 5 L 5 0 M -0.5 0.5 L 0.5 -0.5 M 4.5 5.5 L 5.5 4.5","M 2 0 L 2 5 M 4 0 L 4 5","M 0 2 L 5 2 M 0 4 L 5 4","M 0 1.5 L 2.5 1.5 L 2.5 0 M 2.5 5 L 2.5 3.5 L 5 3.5"])t.push({path:i,color:e[r++],width:5,height:5,patternTransform:"scale(1.4 1.4)"});for(let i of(r=5,["M 0 0 L 5 10 L 10 0","M 3 3 L 8 3 L 8 8 L 3 8 Z","M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0","M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11","M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9"]))t.push({path:i,color:e[r],width:10,height:10}),r+=5;return t}();function y(t,e){let r=JSON.stringify(t),i=r.length||0,a=0,o=0,n;if(e){n=Math.max(Math.floor(i/500),1);for(let t=0;tt&&t.indexOf&&0===t.indexOf("highcharts-pattern-")).length){for(let t of this.series)if(t.visible)for(let e of t.points){let t=e.options&&e.options.color;t&&t.pattern&&(t.pattern._width="defer",t.pattern._height="defer")}this.redraw(!1)}}function M(){let t={},e=this.renderer,r=(e.defIds||[]).filter(t=>t.indexOf&&0===t.indexOf("highcharts-pattern-"));if(r.length)for(let i of([].forEach.call(this.renderTo.querySelectorAll('[color^="url("], [fill^="url("], [stroke^="url("]'),r=>{let i=r.getAttribute("fill")||r.getAttribute("color")||r.getAttribute("stroke");i&&(t[i.replace(e.url,"").replace("url(#","").replace(")","")]=!0)}),r))!t[i]&&(c(e.defIds,i),e.patternElements[i]&&(e.patternElements[i].destroy(),delete e.patternElements[i]))}function b(){let t=this.options.color;t&&t.pattern&&("string"==typeof t.pattern.path&&(t.pattern.path={d:t.pattern.path}),this.color=this.options.color=f(this.series.options.color,t))}function _(t){let e=t.args[0],r=t.args[1],i=t.args[2],a=this.chartIndex||0,o=e.pattern,n="#333333";if(void 0!==e.patternIndex&&x&&(o=x[e.patternIndex]),!o)return!0;if(o.image||"string"==typeof o.path||o.path&&o.path.d){let t=i.parentNode&&i.parentNode.getAttribute("class");t=t&&t.indexOf("highcharts-legend")>-1,("defer"===o._width||"defer"===o._height)&&A.call({graphic:{element:i}},o),(t||!o.id)&&((o=f({},o)).id="highcharts-pattern-"+a+"-"+y(o)+y(o,!0)),this.addPattern(o,!this.forExport&&g(o.animation,this.globalAnimation,{duration:100})),n=`url(${this.url}#${o.id+(this.forExport?"-export":"")})`}else n=o.color||n;return i.setAttribute(r,n),e.toString=function(){return n},!1}function L(){let t=this.chart.isResizing;if(this.isDirtyData||t||!this.chart.hasRendered)for(let e of this.points){let r=e.options&&e.options.color;r&&r.pattern&&(t&&!(e.shapeArgs&&e.shapeArgs.width&&e.shapeArgs.height)?(r.pattern._width="defer",r.pattern._height="defer"):e.calculatePatternDimensions(r.pattern))}}function A(t){if(t.width&&t.height)return;let e=this.graphic&&(this.graphic.getBBox&&this.graphic.getBBox(!0)||this.graphic.element&&this.graphic.element.getBBox())||{},r=this.shapeArgs;if(r&&(e.width=r.width||e.width,e.height=r.height||e.height,e.x=r.x||e.x,e.y=r.y||e.y),t.image){if(!e.width||!e.height){t._width="defer",t._height="defer";let e=this.series.chart.mapView&&this.series.chart.mapView.getSVGTransform().scaleY;p(e)&&e<0&&(t._inverted=!0);return}t.aspectRatio&&(e.aspectRatio=e.width/e.height,t.aspectRatio>e.aspectRatio?e.aspectWidth=e.height*t.aspectRatio:e.aspectHeight=e.width/t.aspectRatio),t._width=t.width||Math.ceil(e.aspectWidth||e.width),t._height=t.height||Math.ceil(e.aspectHeight||e.height)}t.width||(t._x=t.x||0,t._x+=e.x-Math.round(e.aspectWidth?Math.abs(e.aspectWidth-e.width)/2:0)),t.height||(t._y=t.y||0,t._y+=e.y-Math.round(e.aspectHeight?Math.abs(e.aspectHeight-e.height)/2:0))}function C(t,e){let r=g(e,!0),i=h(r),a=t.color||"#333333",o=t.height||("number"==typeof t._height?t._height:0)||32,s=t.width||("number"==typeof t._width?t._width:0)||32,l,p=t.id,c;if(!p&&(this.idCounter=this.idCounter||0,p="highcharts-pattern-"+this.idCounter+"-"+(this.chartIndex||0),++this.idCounter),this.forExport&&(p+="-export"),this.defIds=this.defIds||[],this.defIds.indexOf(p)>-1)return;this.defIds.push(p);let d={id:p,patternUnits:"userSpaceOnUse",patternContentUnits:t.patternContentUnits||"userSpaceOnUse",width:s,height:o,x:t._x||t.x||0,y:t._y||t.y||0};t._inverted&&(d.patternTransform="scale(1, -1)",t.patternTransform&&(t.patternTransform+=" scale(1, -1)")),t.patternTransform&&(d.patternTransform=t.patternTransform);let f=this.createElement("pattern").attr(d).add(this.defs);if(f.id=p,t.path){if(c=n().isObject(t.path)?t.path:{d:t.path},t.backgroundColor){let e;e=t.backgroundColor,this.rect(0,0,s,o).attr({fill:e}).add(f)}l={d:c.d},this.styledMode||(l.stroke=c.stroke||a,l["stroke-width"]=g(c.strokeWidth,2),l.fill=c.fill||"none"),c.transform&&(l.transform=c.transform),this.createElement("path").attr(l).add(f),f.color=a}else t.image&&(r?this.image(t.image,0,0,s,o,function(){this.animate({opacity:g(t.opacity,1)},i),u(this.element,"load")}).attr({opacity:0}).add(f):this.image(t.image,0,0,s,o).add(f));return t.image&&r||void 0===t.opacity||[].forEach.call(f.element.childNodes,e=>{e.setAttribute("opacity",t.opacity)}),this.patternElements=this.patternElements||{},this.patternElements[p]=f,f}function E(t){let e=this.options.color;e&&e.pattern&&!e.pattern.color?(delete this.options.color,t.apply(this,[].slice.call(arguments,1)),e.pattern.color=this.color,this.color=this.options.color=e):t.apply(this,[].slice.call(arguments,1))}function O(){if(!this.chart?.mapView)return;let t=this.chart.renderer,e=t.patternElements;t.defIds?.length&&e&&this.points.filter(function(t){return!!t.graphic&&(t.graphic.element.hasAttribute("fill")||t.graphic.element.hasAttribute("color")||t.graphic.element.hasAttribute("stroke"))&&!t.options.color?.pattern?.image&&!!t.group?.scaleX&&!!t.group?.scaleY}).map(function(e){return{id:(e.graphic?.element.getAttribute("fill")||e.graphic?.element.getAttribute("color")||e.graphic?.element.getAttribute("stroke")||"").replace(t.url,"").replace("url(#","").replace(")",""),x:e.group?.scaleX||1,y:e.group?.scaleY||1}}).filter(function(t,e,r){return""!==t.id&&-1!==t.id.indexOf("highcharts-pattern-")&&!r.some(function(r,i){return r.id===t.id&&i(()=>{"use strict";var e={944:e=>{e.exports=t}},r={};function i(t){var a=r[t];if(void 0!==a)return a.exports;var o=r[t]={exports:{}};return e[t](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};i.d(a,{default:()=>R});var o=i(944),n=i.n(o);let{animObject:h}=n(),{getOptions:s}=n(),{addEvent:l,defined:p,erase:c,extend:d,merge:f,pick:g,removeEvent:u,wrap:m}=n(),x=function(){let t=[],e=s().colors,r=0;for(let i of["M 0 0 L 5 5 M 4.5 -0.5 L 5.5 0.5 M -0.5 4.5 L 0.5 5.5","M 0 5 L 5 0 M -0.5 0.5 L 0.5 -0.5 M 4.5 5.5 L 5.5 4.5","M 2 0 L 2 5 M 4 0 L 4 5","M 0 2 L 5 2 M 0 4 L 5 4","M 0 1.5 L 2.5 1.5 L 2.5 0 M 2.5 5 L 2.5 3.5 L 5 3.5"])t.push({path:i,color:e[r++],width:5,height:5,patternTransform:"scale(1.4 1.4)"});for(let i of(r=5,["M 0 0 L 5 10 L 10 0","M 3 3 L 8 3 L 8 8 L 3 8 Z","M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0","M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11","M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9"]))t.push({path:i,color:e[r],width:10,height:10}),r+=5;return t}();function y(t,e){let r=JSON.stringify(t),i=r.length||0,a=0,o=0,n;if(e){n=Math.max(Math.floor(i/500),1);for(let t=0;tt&&t.indexOf&&0===t.indexOf("highcharts-pattern-")).length){for(let t of this.series)if(t.visible)for(let e of t.points){let t=e.options&&e.options.color;t&&t.pattern&&(t.pattern._width="defer",t.pattern._height="defer")}this.redraw(!1)}}function M(){let t={},e=this.renderer,r=(e.defIds||[]).filter(t=>t.indexOf&&0===t.indexOf("highcharts-pattern-"));if(r.length)for(let i of([].forEach.call(this.renderTo.querySelectorAll('[color^="url("], [fill^="url("], [stroke^="url("]'),r=>{let i=r.getAttribute("fill")||r.getAttribute("color")||r.getAttribute("stroke");i&&(t[i.replace(e.url,"").replace("url(#","").replace(")","")]=!0)}),r))!t[i]&&(c(e.defIds,i),e.patternElements[i]&&(e.patternElements[i].destroy(),delete e.patternElements[i]))}function b(){let t=this.options.color;t&&t.pattern&&("string"==typeof t.pattern.path&&(t.pattern.path={d:t.pattern.path}),this.color=this.options.color=f(this.series.options.color,t))}function _(t){let e=t.args[0],r=t.args[1],i=t.args[2],a=this.chartIndex||0,o=e.pattern,n="#333333";if(void 0!==e.patternIndex&&x&&(o=x[e.patternIndex]),!o)return!0;if(o.image||"string"==typeof o.path||o.path&&o.path.d){let t=i.parentNode&&i.parentNode.getAttribute("class");t=t&&t.indexOf("highcharts-legend")>-1,("defer"===o._width||"defer"===o._height)&&A.call({graphic:{element:i}},o),(t||!o.id)&&((o=f({},o)).id="highcharts-pattern-"+a+"-"+y(o)+y(o,!0)),this.addPattern(o,!this.forExport&&g(o.animation,this.globalAnimation,{duration:100})),n=`url(${this.url}#${o.id+(this.forExport?"-export":"")})`}else n=o.color||n;return i.setAttribute(r,n),e.toString=function(){return n},!1}function L(){let t=this.chart.isResizing;if(this.isDirtyData||t||!this.chart.hasRendered)for(let e of this.points){let r=e.options&&e.options.color;r&&r.pattern&&(t&&!(e.shapeArgs&&e.shapeArgs.width&&e.shapeArgs.height)?(r.pattern._width="defer",r.pattern._height="defer"):e.calculatePatternDimensions(r.pattern))}}function A(t){if(t.width&&t.height)return;let e=this.graphic&&(this.graphic.getBBox&&this.graphic.getBBox(!0)||this.graphic.element&&this.graphic.element.getBBox())||{},r=this.shapeArgs;if(r&&(e.width=r.width||e.width,e.height=r.height||e.height,e.x=r.x||e.x,e.y=r.y||e.y),t.image){if(!e.width||!e.height){t._width="defer",t._height="defer";let e=this.series.chart.mapView&&this.series.chart.mapView.getSVGTransform().scaleY;p(e)&&e<0&&(t._inverted=!0);return}t.aspectRatio&&(e.aspectRatio=e.width/e.height,t.aspectRatio>e.aspectRatio?e.aspectWidth=e.height*t.aspectRatio:e.aspectHeight=e.width/t.aspectRatio),t._width=t.width||Math.ceil(e.aspectWidth||e.width),t._height=t.height||Math.ceil(e.aspectHeight||e.height)}t.width||(t._x=t.x||0,t._x+=e.x-Math.round(e.aspectWidth?Math.abs(e.aspectWidth-e.width)/2:0)),t.height||(t._y=t.y||0,t._y+=e.y-Math.round(e.aspectHeight?Math.abs(e.aspectHeight-e.height)/2:0))}function C(t,e){let r=g(e,!0),i=h(r),a=t.color||"#333333",o=t.height||("number"==typeof t._height?t._height:0)||32,s=t.width||("number"==typeof t._width?t._width:0)||32,l,p=t.id,c;if(!p&&(this.idCounter=this.idCounter||0,p="highcharts-pattern-"+this.idCounter+"-"+(this.chartIndex||0),++this.idCounter),this.forExport&&(p+="-export"),this.defIds=this.defIds||[],this.defIds.indexOf(p)>-1)return;this.defIds.push(p);let d={id:p,patternUnits:"userSpaceOnUse",patternContentUnits:t.patternContentUnits||"userSpaceOnUse",width:s,height:o,x:t._x||t.x||0,y:t._y||t.y||0};t._inverted&&(d.patternTransform="scale(1, -1)",t.patternTransform&&(t.patternTransform+=" scale(1, -1)")),t.patternTransform&&(d.patternTransform=t.patternTransform);let f=this.createElement("pattern").attr(d).add(this.defs);if(f.id=p,t.path){if(c=n().isObject(t.path)?t.path:{d:t.path},t.backgroundColor){let e;e=t.backgroundColor,this.rect(0,0,s,o).attr({fill:e}).add(f)}l={d:c.d},this.styledMode||(l.stroke=c.stroke||a,l["stroke-width"]=g(c.strokeWidth,2),l.fill=c.fill||"none"),c.transform&&(l.transform=c.transform),this.createElement("path").attr(l).add(f),f.color=a}else t.image&&(r?this.image(t.image,0,0,s,o,function(){this.animate({opacity:g(t.opacity,1)},i),u(this.element,"load")}).attr({opacity:0}).add(f):this.image(t.image,0,0,s,o).add(f));return t.image&&r||void 0===t.opacity||[].forEach.call(f.element.childNodes,e=>{e.setAttribute("opacity",t.opacity)}),this.patternElements=this.patternElements||{},this.patternElements[p]=f,f}function E(t){let e=this.options.color;e&&e.pattern&&!e.pattern.color?(delete this.options.color,t.apply(this,[].slice.call(arguments,1)),e.pattern.color=this.color,this.color=this.options.color=e):t.apply(this,[].slice.call(arguments,1))}function O(){if(!this.chart?.mapView)return;let t=this.chart.renderer,e=t.patternElements;t.defIds?.length&&e&&this.points.filter(function(t){return!!t.graphic&&(t.graphic.element.hasAttribute("fill")||t.graphic.element.hasAttribute("color")||t.graphic.element.hasAttribute("stroke"))&&!t.options.color?.pattern?.image&&!!t.group?.scaleX&&!!t.group?.scaleY}).map(function(e){return{id:(e.graphic?.element.getAttribute("fill")||e.graphic?.element.getAttribute("color")||e.graphic?.element.getAttribute("stroke")||"").replace(t.url,"").replace("url(#","").replace(")",""),x:e.group?.scaleX||1,y:e.group?.scaleY||1}}).filter(function(t,e,r){return""!==t.id&&-1!==t.id.indexOf("highcharts-pattern-")&&!r.some(function(r,i){return r.id===t.id&&i(()=>{"use strict";var h={960:t=>{t.exports=r},540:t=>{t.exports=o},448:t=>{t.exports=e},820:t=>{t.exports=s},512:t=>{t.exports=i},184:t=>{t.exports=a},944:e=>{e.exports=t}},n={};function l(t){var e=n[t];if(void 0!==e)return e.exports;var r=n[t]={exports:{}};return h[t](r,r.exports,l),r.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var r in e)l.o(e,r)&&!l.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var p={};l.d(p,{default:()=>tp});var d=l(944),c=/*#__PURE__*/l.n(d);l(448);let{animObject:f}=c(),{getOptions:g}=c(),{addEvent:u,defined:m,erase:x,extend:w,merge:y,pick:b,removeEvent:A,wrap:M}=c(),S=function(){let t=[],e=g().colors,r=0;for(let i of["M 0 0 L 5 5 M 4.5 -0.5 L 5.5 0.5 M -0.5 4.5 L 0.5 5.5","M 0 5 L 5 0 M -0.5 0.5 L 0.5 -0.5 M 4.5 5.5 L 5.5 4.5","M 2 0 L 2 5 M 4 0 L 4 5","M 0 2 L 5 2 M 0 4 L 5 4","M 0 1.5 L 2.5 1.5 L 2.5 0 M 2.5 5 L 2.5 3.5 L 5 3.5"])t.push({path:i,color:e[r++],width:5,height:5,patternTransform:"scale(1.4 1.4)"});for(let i of(r=5,["M 0 0 L 5 10 L 10 0","M 3 3 L 8 3 L 8 8 L 3 8 Z","M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0","M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11","M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9"]))t.push({path:i,color:e[r],width:10,height:10}),r+=5;return t}();function _(t,e){let r=JSON.stringify(t),i=r.length||0,s=0,a=0,o;if(e){o=Math.max(Math.floor(i/500),1);for(let t=0;tt&&t.indexOf&&0===t.indexOf("highcharts-pattern-")).length){for(let t of this.series)if(t.visible)for(let e of t.points){let t=e.options&&e.options.color;t&&t.pattern&&(t.pattern._width="defer",t.pattern._height="defer")}this.redraw(!1)}}function k(){let t={},e=this.renderer,r=(e.defIds||[]).filter(t=>t.indexOf&&0===t.indexOf("highcharts-pattern-"));if(r.length)for(let i of([].forEach.call(this.renderTo.querySelectorAll('[color^="url("], [fill^="url("], [stroke^="url("]'),r=>{let i=r.getAttribute("fill")||r.getAttribute("color")||r.getAttribute("stroke");i&&(t[i.replace(e.url,"").replace("url(#","").replace(")","")]=!0)}),r))!t[i]&&(x(e.defIds,i),e.patternElements[i]&&(e.patternElements[i].destroy(),delete e.patternElements[i]))}function v(){let t=this.options.color;t&&t.pattern&&("string"==typeof t.pattern.path&&(t.pattern.path={d:t.pattern.path}),this.color=this.options.color=y(this.series.options.color,t))}function E(t){let e=t.args[0],r=t.args[1],i=t.args[2],s=this.chartIndex||0,a=e.pattern,o="#333333";if(void 0!==e.patternIndex&&S&&(a=S[e.patternIndex]),!a)return!0;if(a.image||"string"==typeof a.path||a.path&&a.path.d){let t=i.parentNode&&i.parentNode.getAttribute("class");t=t&&t.indexOf("highcharts-legend")>-1,("defer"===a._width||"defer"===a._height)&&L.call({graphic:{element:i}},a),(t||!a.id)&&((a=y({},a)).id="highcharts-pattern-"+s+"-"+_(a)+_(a,!0)),this.addPattern(a,!this.forExport&&b(a.animation,this.globalAnimation,{duration:100})),o=`url(${this.url}#${a.id+(this.forExport?"-export":"")})`}else o=a.color||o;return i.setAttribute(r,o),e.toString=function(){return o},!1}function H(){let t=this.chart.isResizing;if(this.isDirtyData||t||!this.chart.hasRendered)for(let e of this.points){let r=e.options&&e.options.color;r&&r.pattern&&(t&&!(e.shapeArgs&&e.shapeArgs.width&&e.shapeArgs.height)?(r.pattern._width="defer",r.pattern._height="defer"):e.calculatePatternDimensions(r.pattern))}}function L(t){if(t.width&&t.height)return;let e=this.graphic&&(this.graphic.getBBox&&this.graphic.getBBox(!0)||this.graphic.element&&this.graphic.element.getBBox())||{},r=this.shapeArgs;if(r&&(e.width=r.width||e.width,e.height=r.height||e.height,e.x=r.x||e.x,e.y=r.y||e.y),t.image){if(!e.width||!e.height){t._width="defer",t._height="defer";let e=this.series.chart.mapView&&this.series.chart.mapView.getSVGTransform().scaleY;m(e)&&e<0&&(t._inverted=!0);return}t.aspectRatio&&(e.aspectRatio=e.width/e.height,t.aspectRatio>e.aspectRatio?e.aspectWidth=e.height*t.aspectRatio:e.aspectHeight=e.width/t.aspectRatio),t._width=t.width||Math.ceil(e.aspectWidth||e.width),t._height=t.height||Math.ceil(e.aspectHeight||e.height)}t.width||(t._x=t.x||0,t._x+=e.x-Math.round(e.aspectWidth?Math.abs(e.aspectWidth-e.width)/2:0)),t.height||(t._y=t.y||0,t._y+=e.y-Math.round(e.aspectHeight?Math.abs(e.aspectHeight-e.height)/2:0))}function O(t,e){let r=b(e,!0),i=f(r),s=t.color||"#333333",a=t.height||("number"==typeof t._height?t._height:0)||32,o=t.width||("number"==typeof t._width?t._width:0)||32,h,n=t.id,l;if(!n&&(this.idCounter=this.idCounter||0,n="highcharts-pattern-"+this.idCounter+"-"+(this.chartIndex||0),++this.idCounter),this.forExport&&(n+="-export"),this.defIds=this.defIds||[],this.defIds.indexOf(n)>-1)return;this.defIds.push(n);let p={id:n,patternUnits:"userSpaceOnUse",patternContentUnits:t.patternContentUnits||"userSpaceOnUse",width:o,height:a,x:t._x||t.x||0,y:t._y||t.y||0};t._inverted&&(p.patternTransform="scale(1, -1)",t.patternTransform&&(t.patternTransform+=" scale(1, -1)")),t.patternTransform&&(p.patternTransform=t.patternTransform);let d=this.createElement("pattern").attr(p).add(this.defs);if(d.id=n,t.path){if(l=c().isObject(t.path)?t.path:{d:t.path},t.backgroundColor){let e;e=t.backgroundColor,this.rect(0,0,o,a).attr({fill:e}).add(d)}h={d:l.d},this.styledMode||(h.stroke=l.stroke||s,h["stroke-width"]=b(l.strokeWidth,2),h.fill=l.fill||"none"),l.transform&&(h.transform=l.transform),this.createElement("path").attr(h).add(d),d.color=s}else t.image&&(r?this.image(t.image,0,0,o,a,function(){this.animate({opacity:b(t.opacity,1)},i),A(this.element,"load")}).attr({opacity:0}).add(d):this.image(t.image,0,0,o,a).add(d));return t.image&&r||void 0===t.opacity||[].forEach.call(d.element.childNodes,e=>{e.setAttribute("opacity",t.opacity)}),this.patternElements=this.patternElements||{},this.patternElements[n]=d,d}function G(t){let e=this.options.color;e&&e.pattern&&!e.pattern.color?(delete this.options.color,t.apply(this,[].slice.call(arguments,1)),e.pattern.color=this.color,this.color=this.options.color=e):t.apply(this,[].slice.call(arguments,1))}function R(){if(!this.chart?.mapView)return;let t=this.chart.renderer,e=t.patternElements;t.defIds?.length&&e&&this.points.filter(function(t){return!!t.graphic&&(t.graphic.element.hasAttribute("fill")||t.graphic.element.hasAttribute("color")||t.graphic.element.hasAttribute("stroke"))&&!t.options.color?.pattern?.image&&!!t.group?.scaleX&&!!t.group?.scaleY}).map(function(e){return{id:(e.graphic?.element.getAttribute("fill")||e.graphic?.element.getAttribute("color")||e.graphic?.element.getAttribute("stroke")||"").replace(t.url,"").replace("url(#","").replace(")",""),x:e.group?.scaleX||1,y:e.group?.scaleY||1}}).filter(function(t,e,r){return""!==t.id&&-1!==t.id.indexOf("highcharts-pattern-")&&!r.some(function(r,i){return r.id===t.id&&it.dataMax&&(t.dataMax=e.max)}),t}}function th(t){let e=Object.keys(t.points).filter(t=>t.split(",").length>1),r=t.axis.chart.series,i=e.map(t=>parseFloat(t.split(",")[0])),s=-1;i.forEach(t=>{r[t]&&r[t].visible&&(s=t)});let a=t.axis.chart.series[s];if(a&&a.is("pictorial")&&t.axis.hasData()&&a.xAxis.hasData()){let e=a.xAxis,r=t.axis.options,i=t.axis.chart,s=t.shadow,o=e.toPixels(t.x,!0),h=i.inverted?e.len-o:o,n=a.options.paths||[],l=t.x%n.length,p=n[l],d=a.getColumnMetrics&&a.getColumnMetrics().width,{height:c,y:f}=K(a.yAxis,p),g=r.stackShadow,u=ta(g&&g.borderWidth,a.options.borderWidth,1);if(!s&&g&&g.enabled&&p)t.shadowGroup||(t.shadowGroup=i.renderer.g("shadow-group").add()),t.shadowGroup.attr({translateX:i.inverted?t.axis.pos:e.pos,translateY:i.inverted?e.pos:t.axis.pos}),t.shadow=i.renderer.rect(h,f,d,c).attr({fill:{pattern:{path:{d:p.definition,fill:g.color||"#dedede",strokeWidth:u,stroke:g.borderColor||"transparent"},x:h,y:f,width:d,height:c,patternContentUnits:"objectBoundingBox",backgroundColor:"none",color:"#dedede"}}}).add(t.shadowGroup),Q(t.shadowGroup,t.axis),tt(t.shadow,c,d,c,u),t.setOffset(a.pointXOffset||0,a.barW||0);else if(s&&t.shadowGroup){s.animate({x:h,y:f,width:d,height:c});let r=s.attr("fill"),o=r&&r.match(/url\(([^)]+)\)/);o&&i.renderer.patternElements&&i.renderer.patternElements[o[1].slice(1)].animate({x:h,y:f,width:d,height:c}),t.shadowGroup.animate({translateX:i.inverted?t.axis.pos:e.pos,translateY:i.inverted?e.pos:t.axis.pos}),Q(t.shadowGroup,t.axis),tt(s,c,d,c,u),t.setOffset(a.pointXOffset||0,a.barW||0)}}else t.shadow&&t.shadowGroup&&(t.shadow.destroy(),t.shadow=void 0,t.shadowGroup.destroy(),t.shadowGroup=void 0)}function tn(t,e){t.axes&&t.axes.forEach(function(t){t.stacking&&ts(t.stacking.stacks,function(t){ts(t,function(t){e(t)})})})}function tl(t){tn(t,function(t){t.shadow&&t.shadowGroup&&(t.shadow.destroy(),t.shadowGroup.destroy(),delete t.shadow,delete t.shadowGroup)})}to.defaultOptions=ti(Z.defaultOptions,{borderWidth:0}),te(to,"afterRender",function(){let t=this,e=t.options.paths,r=/url\(([^)]+)\)/;t.points.forEach(function(i){if(i.graphic&&i.shapeArgs&&e){let s=e[i.index%e.length],a=i.graphic.attr("fill"),o=a&&a.match(r),{y:h,height:n}=K(t.yAxis,s);if(o&&t.chart.renderer.patternElements){let e=t.chart.renderer.patternElements[o[1].slice(1)];e&&e.animate({x:i.shapeArgs.x,y:h,width:i.shapeArgs.width||0,height:n})}tt(i.graphic,K(t.yAxis,s).height,i.shapeArgs.width||0,i.shapeArgs.height||1/0,t.options.borderWidth||0)}})}),te(B(),"render",function(){tn(this,th)}),te(N(),"afterSetOffset",function(t){if(this.shadow){let{chart:e,len:r}=this.axis,{xOffset:i,width:s}=t,a=e.inverted?i-e.xAxis[0].len:i,o=e.inverted?-r:0;this.shadow.attr({translateX:a,translateY:o}),this.shadow.animate({width:s})}}),te(B(),"afterDrilldown",function(){tl(this)}),te(B(),"afterDrillUp",function(){tl(this)}),to.prototype.pointClass=X,D().registerSeriesType("pictorial",to);let tp=c();return p.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Series.types.column,t._Highcharts.Chart,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.StackItem,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/pictorial",["highcharts/highcharts"],function(t){return e(t,t.Series,["types"],["column"],t.Chart,t.SeriesRegistry,t.Series,t.StackItem,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/pictorial"]=e(t._Highcharts,t._Highcharts.Series.types.column,t._Highcharts.Chart,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.StackItem,t._Highcharts.SVGRenderer):t.Highcharts=e(t.Highcharts,t.Highcharts.Series.types.column,t.Highcharts.Chart,t.Highcharts.SeriesRegistry,t.Highcharts.Series,t.Highcharts.StackItem,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,e,r,i,s,a,o)=>(()=>{"use strict";var h={960:t=>{t.exports=r},540:t=>{t.exports=o},448:t=>{t.exports=e},820:t=>{t.exports=s},512:t=>{t.exports=i},184:t=>{t.exports=a},944:e=>{e.exports=t}},n={};function l(t){var e=n[t];if(void 0!==e)return e.exports;var r=n[t]={exports:{}};return h[t](r,r.exports,l),r.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var r in e)l.o(e,r)&&!l.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var p={};l.d(p,{default:()=>tp});var d=l(944),c=l.n(d);l(448);let{animObject:f}=c(),{getOptions:g}=c(),{addEvent:u,defined:m,erase:x,extend:w,merge:y,pick:b,removeEvent:A,wrap:M}=c(),S=function(){let t=[],e=g().colors,r=0;for(let i of["M 0 0 L 5 5 M 4.5 -0.5 L 5.5 0.5 M -0.5 4.5 L 0.5 5.5","M 0 5 L 5 0 M -0.5 0.5 L 0.5 -0.5 M 4.5 5.5 L 5.5 4.5","M 2 0 L 2 5 M 4 0 L 4 5","M 0 2 L 5 2 M 0 4 L 5 4","M 0 1.5 L 2.5 1.5 L 2.5 0 M 2.5 5 L 2.5 3.5 L 5 3.5"])t.push({path:i,color:e[r++],width:5,height:5,patternTransform:"scale(1.4 1.4)"});for(let i of(r=5,["M 0 0 L 5 10 L 10 0","M 3 3 L 8 3 L 8 8 L 3 8 Z","M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0","M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11","M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9"]))t.push({path:i,color:e[r],width:10,height:10}),r+=5;return t}();function _(t,e){let r=JSON.stringify(t),i=r.length||0,s=0,a=0,o;if(e){o=Math.max(Math.floor(i/500),1);for(let t=0;tt&&t.indexOf&&0===t.indexOf("highcharts-pattern-")).length){for(let t of this.series)if(t.visible)for(let e of t.points){let t=e.options&&e.options.color;t&&t.pattern&&(t.pattern._width="defer",t.pattern._height="defer")}this.redraw(!1)}}function k(){let t={},e=this.renderer,r=(e.defIds||[]).filter(t=>t.indexOf&&0===t.indexOf("highcharts-pattern-"));if(r.length)for(let i of([].forEach.call(this.renderTo.querySelectorAll('[color^="url("], [fill^="url("], [stroke^="url("]'),r=>{let i=r.getAttribute("fill")||r.getAttribute("color")||r.getAttribute("stroke");i&&(t[i.replace(e.url,"").replace("url(#","").replace(")","")]=!0)}),r))!t[i]&&(x(e.defIds,i),e.patternElements[i]&&(e.patternElements[i].destroy(),delete e.patternElements[i]))}function v(){let t=this.options.color;t&&t.pattern&&("string"==typeof t.pattern.path&&(t.pattern.path={d:t.pattern.path}),this.color=this.options.color=y(this.series.options.color,t))}function E(t){let e=t.args[0],r=t.args[1],i=t.args[2],s=this.chartIndex||0,a=e.pattern,o="#333333";if(void 0!==e.patternIndex&&S&&(a=S[e.patternIndex]),!a)return!0;if(a.image||"string"==typeof a.path||a.path&&a.path.d){let t=i.parentNode&&i.parentNode.getAttribute("class");t=t&&t.indexOf("highcharts-legend")>-1,("defer"===a._width||"defer"===a._height)&&L.call({graphic:{element:i}},a),(t||!a.id)&&((a=y({},a)).id="highcharts-pattern-"+s+"-"+_(a)+_(a,!0)),this.addPattern(a,!this.forExport&&b(a.animation,this.globalAnimation,{duration:100})),o=`url(${this.url}#${a.id+(this.forExport?"-export":"")})`}else o=a.color||o;return i.setAttribute(r,o),e.toString=function(){return o},!1}function H(){let t=this.chart.isResizing;if(this.isDirtyData||t||!this.chart.hasRendered)for(let e of this.points){let r=e.options&&e.options.color;r&&r.pattern&&(t&&!(e.shapeArgs&&e.shapeArgs.width&&e.shapeArgs.height)?(r.pattern._width="defer",r.pattern._height="defer"):e.calculatePatternDimensions(r.pattern))}}function L(t){if(t.width&&t.height)return;let e=this.graphic&&(this.graphic.getBBox&&this.graphic.getBBox(!0)||this.graphic.element&&this.graphic.element.getBBox())||{},r=this.shapeArgs;if(r&&(e.width=r.width||e.width,e.height=r.height||e.height,e.x=r.x||e.x,e.y=r.y||e.y),t.image){if(!e.width||!e.height){t._width="defer",t._height="defer";let e=this.series.chart.mapView&&this.series.chart.mapView.getSVGTransform().scaleY;m(e)&&e<0&&(t._inverted=!0);return}t.aspectRatio&&(e.aspectRatio=e.width/e.height,t.aspectRatio>e.aspectRatio?e.aspectWidth=e.height*t.aspectRatio:e.aspectHeight=e.width/t.aspectRatio),t._width=t.width||Math.ceil(e.aspectWidth||e.width),t._height=t.height||Math.ceil(e.aspectHeight||e.height)}t.width||(t._x=t.x||0,t._x+=e.x-Math.round(e.aspectWidth?Math.abs(e.aspectWidth-e.width)/2:0)),t.height||(t._y=t.y||0,t._y+=e.y-Math.round(e.aspectHeight?Math.abs(e.aspectHeight-e.height)/2:0))}function O(t,e){let r=b(e,!0),i=f(r),s=t.color||"#333333",a=t.height||("number"==typeof t._height?t._height:0)||32,o=t.width||("number"==typeof t._width?t._width:0)||32,h,n=t.id,l;if(!n&&(this.idCounter=this.idCounter||0,n="highcharts-pattern-"+this.idCounter+"-"+(this.chartIndex||0),++this.idCounter),this.forExport&&(n+="-export"),this.defIds=this.defIds||[],this.defIds.indexOf(n)>-1)return;this.defIds.push(n);let p={id:n,patternUnits:"userSpaceOnUse",patternContentUnits:t.patternContentUnits||"userSpaceOnUse",width:o,height:a,x:t._x||t.x||0,y:t._y||t.y||0};t._inverted&&(p.patternTransform="scale(1, -1)",t.patternTransform&&(t.patternTransform+=" scale(1, -1)")),t.patternTransform&&(p.patternTransform=t.patternTransform);let d=this.createElement("pattern").attr(p).add(this.defs);if(d.id=n,t.path){if(l=c().isObject(t.path)?t.path:{d:t.path},t.backgroundColor){let e;e=t.backgroundColor,this.rect(0,0,o,a).attr({fill:e}).add(d)}h={d:l.d},this.styledMode||(h.stroke=l.stroke||s,h["stroke-width"]=b(l.strokeWidth,2),h.fill=l.fill||"none"),l.transform&&(h.transform=l.transform),this.createElement("path").attr(h).add(d),d.color=s}else t.image&&(r?this.image(t.image,0,0,o,a,function(){this.animate({opacity:b(t.opacity,1)},i),A(this.element,"load")}).attr({opacity:0}).add(d):this.image(t.image,0,0,o,a).add(d));return t.image&&r||void 0===t.opacity||[].forEach.call(d.element.childNodes,e=>{e.setAttribute("opacity",t.opacity)}),this.patternElements=this.patternElements||{},this.patternElements[n]=d,d}function G(t){let e=this.options.color;e&&e.pattern&&!e.pattern.color?(delete this.options.color,t.apply(this,[].slice.call(arguments,1)),e.pattern.color=this.color,this.color=this.options.color=e):t.apply(this,[].slice.call(arguments,1))}function R(){if(!this.chart?.mapView)return;let t=this.chart.renderer,e=t.patternElements;t.defIds?.length&&e&&this.points.filter(function(t){return!!t.graphic&&(t.graphic.element.hasAttribute("fill")||t.graphic.element.hasAttribute("color")||t.graphic.element.hasAttribute("stroke"))&&!t.options.color?.pattern?.image&&!!t.group?.scaleX&&!!t.group?.scaleY}).map(function(e){return{id:(e.graphic?.element.getAttribute("fill")||e.graphic?.element.getAttribute("color")||e.graphic?.element.getAttribute("stroke")||"").replace(t.url,"").replace("url(#","").replace(")",""),x:e.group?.scaleX||1,y:e.group?.scaleY||1}}).filter(function(t,e,r){return""!==t.id&&-1!==t.id.indexOf("highcharts-pattern-")&&!r.some(function(r,i){return r.id===t.id&&it.dataMax&&(t.dataMax=e.max)}),t}}function th(t){let e=Object.keys(t.points).filter(t=>t.split(",").length>1),r=t.axis.chart.series,i=e.map(t=>parseFloat(t.split(",")[0])),s=-1;i.forEach(t=>{r[t]&&r[t].visible&&(s=t)});let a=t.axis.chart.series[s];if(a&&a.is("pictorial")&&t.axis.hasData()&&a.xAxis.hasData()){let e=a.xAxis,r=t.axis.options,i=t.axis.chart,s=t.shadow,o=e.toPixels(t.x,!0),h=i.inverted?e.len-o:o,n=a.options.paths||[],l=t.x%n.length,p=n[l],d=a.getColumnMetrics&&a.getColumnMetrics().width,{height:c,y:f}=K(a.yAxis,p),g=r.stackShadow,u=ta(g&&g.borderWidth,a.options.borderWidth,1);if(!s&&g&&g.enabled&&p)t.shadowGroup||(t.shadowGroup=i.renderer.g("shadow-group").add()),t.shadowGroup.attr({translateX:i.inverted?t.axis.pos:e.pos,translateY:i.inverted?e.pos:t.axis.pos}),t.shadow=i.renderer.rect(h,f,d,c).attr({fill:{pattern:{path:{d:p.definition,fill:g.color||"#dedede",strokeWidth:u,stroke:g.borderColor||"transparent"},x:h,y:f,width:d,height:c,patternContentUnits:"objectBoundingBox",backgroundColor:"none",color:"#dedede"}}}).add(t.shadowGroup),Q(t.shadowGroup,t.axis),tt(t.shadow,c,d,c,u),t.setOffset(a.pointXOffset||0,a.barW||0);else if(s&&t.shadowGroup){s.animate({x:h,y:f,width:d,height:c});let r=s.attr("fill"),o=r&&r.match(/url\(([^)]+)\)/);o&&i.renderer.patternElements&&i.renderer.patternElements[o[1].slice(1)].animate({x:h,y:f,width:d,height:c}),t.shadowGroup.animate({translateX:i.inverted?t.axis.pos:e.pos,translateY:i.inverted?e.pos:t.axis.pos}),Q(t.shadowGroup,t.axis),tt(s,c,d,c,u),t.setOffset(a.pointXOffset||0,a.barW||0)}}else t.shadow&&t.shadowGroup&&(t.shadow.destroy(),t.shadow=void 0,t.shadowGroup.destroy(),t.shadowGroup=void 0)}function tn(t,e){t.axes&&t.axes.forEach(function(t){t.stacking&&ts(t.stacking.stacks,function(t){ts(t,function(t){e(t)})})})}function tl(t){tn(t,function(t){t.shadow&&t.shadowGroup&&(t.shadow.destroy(),t.shadowGroup.destroy(),delete t.shadow,delete t.shadowGroup)})}to.defaultOptions=ti(Z.defaultOptions,{borderWidth:0}),te(to,"afterRender",function(){let t=this,e=t.options.paths,r=/url\(([^)]+)\)/;t.points.forEach(function(i){if(i.graphic&&i.shapeArgs&&e){let s=e[i.index%e.length],a=i.graphic.attr("fill"),o=a&&a.match(r),{y:h,height:n}=K(t.yAxis,s);if(o&&t.chart.renderer.patternElements){let e=t.chart.renderer.patternElements[o[1].slice(1)];e&&e.animate({x:i.shapeArgs.x,y:h,width:i.shapeArgs.width||0,height:n})}tt(i.graphic,K(t.yAxis,s).height,i.shapeArgs.width||0,i.shapeArgs.height||1/0,t.options.borderWidth||0)}})}),te(B(),"render",function(){tn(this,th)}),te(N(),"afterSetOffset",function(t){if(this.shadow){let{chart:e,len:r}=this.axis,{xOffset:i,width:s}=t,a=e.inverted?i-e.xAxis[0].len:i,o=e.inverted?-r:0;this.shadow.attr({translateX:a,translateY:o}),this.shadow.animate({width:s})}}),te(B(),"afterDrilldown",function(){tl(this)}),te(B(),"afterDrillUp",function(){tl(this)}),to.prototype.pointClass=X,D().registerSeriesType("pictorial",to);let tp=c();return p.default})()); \ No newline at end of file diff --git a/modules/pictorial.src.js b/modules/pictorial.src.js index 6cd3641ba2..b6f373da3e 100644 --- a/modules/pictorial.src.js +++ b/modules/pictorial.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/pictorial * @requires highcharts * diff --git a/modules/pointandfigure.js b/modules/pointandfigure.js index a823c392df..1276736ce9 100644 --- a/modules/pointandfigure.js +++ b/modules/pointandfigure.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/pointandfigure * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Kamil Musialowski * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry,e._Highcharts.RendererRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/pointandfigure",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry,e.RendererRegistry)}):"object"==typeof exports?exports["highcharts/modules/pointandfigure"]=t(e._Highcharts,e._Highcharts.SeriesRegistry,e._Highcharts.RendererRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry,e.Highcharts.RendererRegistry)}("undefined"==typeof window?this:window,(e,t,r)=>(()=>{"use strict";var s,o={608:e=>{e.exports=r},512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function n(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return o[e](r,r.exports,n),r.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};n.d(a,{default:()=>w});var h=n(944),l=/*#__PURE__*/n.n(h),p=n(512),u=/*#__PURE__*/n.n(p);let{seriesTypes:{scatter:{prototype:{pointClass:d}}}}=u(),c=class extends d{resolveMarker(){let e=this.series.options;this.marker=this.options.marker=this.upTrend?e.markerUp:e.marker,this.color=this.options.marker.lineColor}resolveColor(){super.resolveColor(),this.resolveMarker()}getClassName(){return super.getClassName.call(this)+(this.upTrend?" highcharts-point-up":" highcharts-point-down")}};var g=n(608),f=/*#__PURE__*/n.n(g);!function(e){let t=[];function r(e,t,r,s){return[["M",e,t],["L",e+r,t+s],["M",e+r,t],["L",e,t+s],["Z"]]}e.compose=function(e){-1===t.indexOf(e)&&(t.push(e),e.prototype.symbols.cross=r);let s=f().getRendererType();t.indexOf(s)&&t.push(s)}}(s||(s={}));let m=s,{composed:y}=l(),{scatter:x,column:{prototype:b}}=u().seriesTypes,{extend:k,merge:C,pushUnique:R,isNumber:v,relativeLength:M}=l();class H extends x{constructor(){super(...arguments),this.allowDG=!1}static compose(e){R(y,"pointandfigure")&&m.compose(e)}init(){super.init.apply(this,arguments),this.pnfDataGroups=[]}getProcessedData(){let e;if(!this.pnfDataGroups)return{modified:this.dataTable.modified,cropped:!1,cropStart:0,closestPointRange:1};let t=this.dataTable.modified,r=this.options,s=this.getColumn("x",!0),o=this.getColumn("y",!0),i=r.boxSize,n=v(i)?i:M(i,o[0]),a=this.pnfDataGroups,h=n*r.reversalAmount;function l(e,t,r){let s=a[a.length-1],o=t?1:-1,i=Math.floor(o*(e-r)/n);for(let e=1;e<=i;e++){let t=r+n*e*o;s.y.push(t)}}if(this.calculatedBoxSize=n,this.isDirtyData||0===a.length){this.pnfDataGroups.length=0;for(let t=0;t=n){e=!0,a.push({x:r,y:[i],upTrend:e});break}if(h-i>=n){e=!1,a.push({x:r,y:[i],upTrend:e});break}}o.forEach((t,r)=>{let o=s[r],i=function(e){let t=e[e.length-1].y;return t[t.length-1]}(a);e&&(t-i>=n&&l(t,e,i),i-t>=h&&(e=!1,a.push({x:o,y:[],upTrend:e}),l(t,e,i))),!e&&(i-t>=n&&l(t,e,i),t-i>=h&&(e=!0,a.push({x:o,y:[],upTrend:e}),l(t,e,i)))})}let p=[],u=[],d=[];return a.forEach(e=>{let t=e.x,r=e.upTrend;e.y.forEach(e=>{u.push(t),d.push(e),p.push({x:t,y:e,upTrend:r})})}),t.setColumn("x",u),t.setColumn("y",d),this.pnfDataGroups=a,this.processedData=p,{modified:t,cropped:!1,cropStart:0,closestPointRange:1}}markerAttribs(e){let t=this.options,r={},s=e.pos();return r.width=this.markerWidth,r.height=this.markerHeight,s&&r.width&&r.height&&(r.x=s[0]-Math.round(r.width)/2,r.y=s[1]-Math.round(r.height)/2),t.crisp&&r.x&&(r.x=Math.floor(r.x)),r}translate(){let e=this.getColumnMetrics(),t=this.calculatedBoxSize;this.markerWidth=e.width+e.paddedWidth+e.offset,this.markerHeight=this.yAxis.toPixels(0)-this.yAxis.toPixels(t),super.translate()}}H.defaultOptions=C(x.defaultOptions,{boxSize:"1%",reversalAmount:3,tooltip:{pointFormat:' {series.name}
    Close: {point.y:.2f}
    ',headerFormat:""},turboThreshold:0,groupPadding:.2,pointPadding:.1,pointRange:null,dataGrouping:{enabled:!1},markerUp:{symbol:"cross",lineColor:"#00FF00",lineWidth:2},marker:{symbol:"circle",fillColor:"transparent",lineColor:"#FF0000",lineWidth:2},legendSymbol:"lineMarker"}),k(H.prototype,{takeOrdinalPosition:!0,pnfDataGroups:[],getColumnMetrics:b.getColumnMetrics,pointClass:c,sorted:!0}),u().registerSeriesType("pointandfigure",H);let S=l();H.compose(S.Renderer);let w=l();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry,e._Highcharts.RendererRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/pointandfigure",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry,e.RendererRegistry)}):"object"==typeof exports?exports["highcharts/modules/pointandfigure"]=t(e._Highcharts,e._Highcharts.SeriesRegistry,e._Highcharts.RendererRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry,e.Highcharts.RendererRegistry)}("undefined"==typeof window?this:window,(e,t,r)=>(()=>{"use strict";var s,o={608:e=>{e.exports=r},512:e=>{e.exports=t},944:t=>{t.exports=e}},i={};function n(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return o[e](r,r.exports,n),r.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};n.d(a,{default:()=>w});var h=n(944),l=n.n(h),p=n(512),u=n.n(p);let{seriesTypes:{scatter:{prototype:{pointClass:d}}}}=u(),c=class extends d{resolveMarker(){let e=this.series.options;this.marker=this.options.marker=this.upTrend?e.markerUp:e.marker,this.color=this.options.marker.lineColor}resolveColor(){super.resolveColor(),this.resolveMarker()}getClassName(){return super.getClassName.call(this)+(this.upTrend?" highcharts-point-up":" highcharts-point-down")}};var g=n(608),f=n.n(g);!function(e){let t=[];function r(e,t,r,s){return[["M",e,t],["L",e+r,t+s],["M",e+r,t],["L",e,t+s],["Z"]]}e.compose=function(e){-1===t.indexOf(e)&&(t.push(e),e.prototype.symbols.cross=r);let s=f().getRendererType();t.indexOf(s)&&t.push(s)}}(s||(s={}));let m=s,{composed:y}=l(),{scatter:x,column:{prototype:b}}=u().seriesTypes,{extend:k,merge:C,pushUnique:R,isNumber:v,relativeLength:M}=l();class H extends x{constructor(){super(...arguments),this.allowDG=!1}static compose(e){R(y,"pointandfigure")&&m.compose(e)}init(){super.init.apply(this,arguments),this.pnfDataGroups=[]}getProcessedData(){let e;if(!this.pnfDataGroups)return{modified:this.dataTable.modified,cropped:!1,cropStart:0,closestPointRange:1};let t=this.dataTable.modified,r=this.options,s=this.getColumn("x",!0),o=this.getColumn("y",!0),i=r.boxSize,n=v(i)?i:M(i,o[0]),a=this.pnfDataGroups,h=n*r.reversalAmount;function l(e,t,r){let s=a[a.length-1],o=t?1:-1,i=Math.floor(o*(e-r)/n);for(let e=1;e<=i;e++){let t=r+n*e*o;s.y.push(t)}}if(this.calculatedBoxSize=n,this.isDirtyData||0===a.length){this.pnfDataGroups.length=0;for(let t=0;t=n){e=!0,a.push({x:r,y:[i],upTrend:e});break}if(h-i>=n){e=!1,a.push({x:r,y:[i],upTrend:e});break}}o.forEach((t,r)=>{let o=s[r],i=function(e){let t=e[e.length-1].y;return t[t.length-1]}(a);e&&(t-i>=n&&l(t,e,i),i-t>=h&&(e=!1,a.push({x:o,y:[],upTrend:e}),l(t,e,i))),!e&&(i-t>=n&&l(t,e,i),t-i>=h&&(e=!0,a.push({x:o,y:[],upTrend:e}),l(t,e,i)))})}let p=[],u=[],d=[];return a.forEach(e=>{let t=e.x,r=e.upTrend;e.y.forEach(e=>{u.push(t),d.push(e),p.push({x:t,y:e,upTrend:r})})}),t.setColumn("x",u),t.setColumn("y",d),this.pnfDataGroups=a,this.processedData=p,{modified:t,cropped:!1,cropStart:0,closestPointRange:1}}markerAttribs(e){let t=this.options,r={},s=e.pos();return r.width=this.markerWidth,r.height=this.markerHeight,s&&r.width&&r.height&&(r.x=s[0]-Math.round(r.width)/2,r.y=s[1]-Math.round(r.height)/2),t.crisp&&r.x&&(r.x=Math.floor(r.x)),r}translate(){let e=this.getColumnMetrics(),t=this.calculatedBoxSize;this.markerWidth=e.width+e.paddedWidth+e.offset,this.markerHeight=this.yAxis.toPixels(0)-this.yAxis.toPixels(t),super.translate()}}H.defaultOptions=C(x.defaultOptions,{boxSize:"1%",reversalAmount:3,tooltip:{pointFormat:' {series.name}
    Close: {point.y:.2f}
    ',headerFormat:""},turboThreshold:0,groupPadding:.2,pointPadding:.1,pointRange:null,dataGrouping:{enabled:!1},markerUp:{symbol:"cross",lineColor:"#00FF00",lineWidth:2},marker:{symbol:"circle",fillColor:"transparent",lineColor:"#FF0000",lineWidth:2},legendSymbol:"lineMarker"}),k(H.prototype,{takeOrdinalPosition:!0,pnfDataGroups:[],getColumnMetrics:b.getColumnMetrics,pointClass:c,sorted:!0}),u().registerSeriesType("pointandfigure",H);let S=l();H.compose(S.Renderer);let w=l();return a.default})()); \ No newline at end of file diff --git a/modules/pointandfigure.src.js b/modules/pointandfigure.src.js index 6537cc2f8e..107000aa0e 100644 --- a/modules/pointandfigure.src.js +++ b/modules/pointandfigure.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/pointandfigure * @requires highcharts * @requires highcharts/modules/stock diff --git a/modules/price-indicator.js b/modules/price-indicator.js index 6333d015d6..0d2469d314 100644 --- a/modules/price-indicator.js +++ b/modules/price-indicator.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/price-indicator * @requires highcharts * @requires highcharts/modules/stock @@ -10,4 +10,4 @@ * Author: Torstein Honsi * * License: www.highcharts.com/license - */function(s,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(s._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/price-indicator",["highcharts/highcharts"],function(s){return e(s)}):"object"==typeof exports?exports["highcharts/modules/price-indicator"]=e(s._Highcharts):s.Highcharts=e(s.Highcharts)}("undefined"==typeof window?this:window,s=>(()=>{"use strict";var e={944:e=>{e.exports=s}},i={};function t(s){var r=i[s];if(void 0!==r)return r.exports;var o=i[s]={exports:{}};return e[s](o,o.exports,t),o.exports}t.n=s=>{var e=s&&s.__esModule?()=>s.default:()=>s;return t.d(e,{a:e}),e},t.d=(s,e)=>{for(var i in e)t.o(e,i)&&!t.o(s,i)&&Object.defineProperty(s,i,{enumerable:!0,get:e[i]})},t.o=(s,e)=>Object.prototype.hasOwnProperty.call(s,e);var r={};t.d(r,{default:()=>p});var o=t(944),a=/*#__PURE__*/t.n(o);let{composed:c}=a(),{addEvent:l,merge:h,pushUnique:n}=a();function d(){let s=this.options,e=s.lastVisiblePrice,i=s.lastPrice;if((e||i)&&"highcharts-navigator-series"!==s.id){let t=this.xAxis,r=this.yAxis,o=r.crosshair,a=r.cross,c=r.crossLabel,l=this.points,n=l.length,d=this.dataTable.rowCount,p=this.getColumn("x")[d-1],b=this.getColumn("y")[d-1]??this.getColumn("close")[d-1];if(i&&i.enabled&&(r.crosshair=r.options.crosshair=s.lastPrice,!this.chart.styledMode&&r.crosshair&&r.options.crosshair&&s.lastPrice&&(r.crosshair.color=r.options.crosshair.color=s.lastPrice.color||this.color),r.cross=this.lastPrice,this.lastPriceLabel&&this.lastPriceLabel.destroy(),delete r.crossLabel,r.drawCrosshair(null,{x:p,y:b,plotX:t.toPixels(p,!0),plotY:r.toPixels(b,!0)}),this.yAxis.cross&&(this.lastPrice=this.yAxis.cross,this.lastPrice.addClass("highcharts-color-"+this.colorIndex),this.lastPrice.y=b),this.lastPriceLabel=r.crossLabel),e&&e.enabled&&n>0){r.crosshair=r.options.crosshair=h({color:"transparent"},s.lastVisiblePrice),r.cross=this.lastVisiblePrice;let e=l[n-1].isInside?l[n-1]:l[n-2];this.lastVisiblePriceLabel&&this.lastVisiblePriceLabel.destroy(),delete r.crossLabel,r.drawCrosshair(null,e),r.cross&&(this.lastVisiblePrice=r.cross,e&&"number"==typeof e.y&&(this.lastVisiblePrice.y=e.y)),this.lastVisiblePriceLabel=r.crossLabel}r.crosshair=r.options.crosshair=o,r.cross=a,r.crossLabel=c}}({compose:function(s){n(c,"PriceIndication")&&l(s,"afterRender",d)}}).compose(a().Series);let p=a();return r.default})()); \ No newline at end of file + */function(s,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(s._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/price-indicator",["highcharts/highcharts"],function(s){return e(s)}):"object"==typeof exports?exports["highcharts/modules/price-indicator"]=e(s._Highcharts):s.Highcharts=e(s.Highcharts)}("undefined"==typeof window?this:window,s=>(()=>{"use strict";var e={944:e=>{e.exports=s}},i={};function t(s){var r=i[s];if(void 0!==r)return r.exports;var o=i[s]={exports:{}};return e[s](o,o.exports,t),o.exports}t.n=s=>{var e=s&&s.__esModule?()=>s.default:()=>s;return t.d(e,{a:e}),e},t.d=(s,e)=>{for(var i in e)t.o(e,i)&&!t.o(s,i)&&Object.defineProperty(s,i,{enumerable:!0,get:e[i]})},t.o=(s,e)=>Object.prototype.hasOwnProperty.call(s,e);var r={};t.d(r,{default:()=>p});var o=t(944),a=t.n(o);let{composed:c}=a(),{addEvent:l,merge:h,pushUnique:n}=a();function d(){let s=this.options,e=s.lastVisiblePrice,i=s.lastPrice;if((e||i)&&"highcharts-navigator-series"!==s.id){let t=this.xAxis,r=this.yAxis,o=r.crosshair,a=r.cross,c=r.crossLabel,l=this.points,n=l.length,d=this.dataTable.rowCount,p=this.getColumn("x")[d-1],b=this.getColumn("y")[d-1]??this.getColumn("close")[d-1];if(i&&i.enabled&&(r.crosshair=r.options.crosshair=s.lastPrice,!this.chart.styledMode&&r.crosshair&&r.options.crosshair&&s.lastPrice&&(r.crosshair.color=r.options.crosshair.color=s.lastPrice.color||this.color),r.cross=this.lastPrice,this.lastPriceLabel&&this.lastPriceLabel.destroy(),delete r.crossLabel,r.drawCrosshair(null,{x:p,y:b,plotX:t.toPixels(p,!0),plotY:r.toPixels(b,!0)}),this.yAxis.cross&&(this.lastPrice=this.yAxis.cross,this.lastPrice.addClass("highcharts-color-"+this.colorIndex),this.lastPrice.y=b),this.lastPriceLabel=r.crossLabel),e&&e.enabled&&n>0){r.crosshair=r.options.crosshair=h({color:"transparent"},s.lastVisiblePrice),r.cross=this.lastVisiblePrice;let e=l[n-1].isInside?l[n-1]:l[n-2];this.lastVisiblePriceLabel&&this.lastVisiblePriceLabel.destroy(),delete r.crossLabel,r.drawCrosshair(null,e),r.cross&&(this.lastVisiblePrice=r.cross,e&&"number"==typeof e.y&&(this.lastVisiblePrice.y=e.y)),this.lastVisiblePriceLabel=r.crossLabel}r.crosshair=r.options.crosshair=o,r.cross=a,r.crossLabel=c}}({compose:function(s){n(c,"PriceIndication")&&l(s,"afterRender",d)}}).compose(a().Series);let p=a();return r.default})()); \ No newline at end of file diff --git a/modules/price-indicator.src.js b/modules/price-indicator.src.js index 4f540fb2a9..e5cd4810e6 100644 --- a/modules/price-indicator.src.js +++ b/modules/price-indicator.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/price-indicator * @requires highcharts * @requires highcharts/modules/stock diff --git a/modules/pyramid3d.js b/modules/pyramid3d.js index afb4e1c603..f934dd9053 100644 --- a/modules/pyramid3d.js +++ b/modules/pyramid3d.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/pyramid3d * @requires highcharts * @requires highcharts/highcharts-3d @@ -11,4 +11,4 @@ * (c) 2010-2024 Kacper Madej * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/pyramid3d",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/pyramid3d"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>f});var a=i(944),n=/*#__PURE__*/i.n(a),d=i(512),h=/*#__PURE__*/i.n(d);let{funnel3d:p}=h().seriesTypes,{merge:c}=n();class u extends p{}u.defaultOptions=c(p.defaultOptions,{reversed:!0,neckHeight:0,neckWidth:0,dataLabels:{verticalAlign:"top"}}),h().registerSeriesType("pyramid3d",u);let f=n();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/pyramid3d",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/pyramid3d"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var o=s[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};i.d(o,{default:()=>f});var a=i(944),n=i.n(a),d=i(512),h=i.n(d);let{funnel3d:p}=h().seriesTypes,{merge:c}=n();class u extends p{}u.defaultOptions=c(p.defaultOptions,{reversed:!0,neckHeight:0,neckWidth:0,dataLabels:{verticalAlign:"top"}}),h().registerSeriesType("pyramid3d",u);let f=n();return o.default})()); \ No newline at end of file diff --git a/modules/pyramid3d.src.js b/modules/pyramid3d.src.js index f12fdc1c08..79c2079d94 100644 --- a/modules/pyramid3d.src.js +++ b/modules/pyramid3d.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/pyramid3d * @requires highcharts * @requires highcharts/highcharts-3d diff --git a/modules/renko.js b/modules/renko.js index 7bf482a4d7..4d6a5c90ac 100644 --- a/modules/renko.js +++ b/modules/renko.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/renko * @requires highcharts * @requires highcharts/modules/stock @@ -9,4 +9,4 @@ * (c) 2010-2024 Pawel Lysy * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series.types.column):"function"==typeof define&&define.amd?define("highcharts/modules/renko",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Series,["types"],["column"])}):"object"==typeof exports?exports["highcharts/modules/renko"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series.types.column):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Series.types.column)}("undefined"==typeof window?this:window,(t,e,o)=>(()=>{"use strict";var r={448:t=>{t.exports=o},512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function i(t){var e=s[t];if(void 0!==e)return e.exports;var o=s[t]={exports:{}};return r[t](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>b});var a=i(944),p=/*#__PURE__*/i.n(a),h=i(512),l=/*#__PURE__*/i.n(h);let{column:{prototype:{pointClass:c}}}=l().seriesTypes;var u=i(448),d=/*#__PURE__*/i.n(u);let{extend:g,merge:f,relativeLength:y,isNumber:m}=p();class x extends d(){constructor(){super(...arguments),this.hasDerivedData=!0,this.allowDG=!1}init(){super.init.apply(this,arguments),this.renkoData=[]}setData(t,e,o){this.renkoData=[],super.setData(t,e,o,!1)}getXExtremes(t){return this.processData(),{min:(t=this.getColumn("x",!0))[0],max:t[t.length-1]}}getProcessedData(){let t=this.dataTable.modified,e=[],o=[],r=[],s=this.getColumn("x",!0),i=this.getColumn("y",!0);if(!this.renkoData||this.renkoData.length>0)return{modified:t,closestPointRange:1,cropped:!1,cropStart:0};let n=this.options.boxSize,a=m(n)?n:y(n,i[0]),p=[],h=s.length,l=0,c=i[0];for(let t=1;ta){2===l&&(c+=a);for(let o=0;oa){1===l&&(c-=a);for(let o=0;o● {series.name}: {point.low:.2f} - {point.y:.2f}
    '}}),g(x.prototype,{pointClass:class extends c{getClassName(){return super.getClassName.call(this)+(this.upTrend?" highcharts-point-up":" highcharts-point-down")}}}),l().registerSeriesType("renko",x);let b=p();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series.types.column):"function"==typeof define&&define.amd?define("highcharts/modules/renko",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Series,["types"],["column"])}):"object"==typeof exports?exports["highcharts/modules/renko"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series.types.column):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Series.types.column)}("undefined"==typeof window?this:window,(t,e,o)=>(()=>{"use strict";var r={448:t=>{t.exports=o},512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function i(t){var e=s[t];if(void 0!==e)return e.exports;var o=s[t]={exports:{}};return r[t](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>b});var a=i(944),p=i.n(a),h=i(512),l=i.n(h);let{column:{prototype:{pointClass:c}}}=l().seriesTypes;var u=i(448),d=i.n(u);let{extend:g,merge:f,relativeLength:y,isNumber:m}=p();class x extends d(){constructor(){super(...arguments),this.hasDerivedData=!0,this.allowDG=!1}init(){super.init.apply(this,arguments),this.renkoData=[]}setData(t,e,o){this.renkoData=[],super.setData(t,e,o,!1)}getXExtremes(t){return this.processData(),{min:(t=this.getColumn("x",!0))[0],max:t[t.length-1]}}getProcessedData(){let t=this.dataTable.modified,e=[],o=[],r=[],s=this.getColumn("x",!0),i=this.getColumn("y",!0);if(!this.renkoData||this.renkoData.length>0)return{modified:t,closestPointRange:1,cropped:!1,cropStart:0};let n=this.options.boxSize,a=m(n)?n:y(n,i[0]),p=[],h=s.length,l=0,c=i[0];for(let t=1;ta){2===l&&(c+=a);for(let o=0;oa){1===l&&(c-=a);for(let o=0;o● {series.name}: {point.low:.2f} - {point.y:.2f}
    '}}),g(x.prototype,{pointClass:class extends c{getClassName(){return super.getClassName.call(this)+(this.upTrend?" highcharts-point-up":" highcharts-point-down")}}}),l().registerSeriesType("renko",x);let b=p();return n.default})()); \ No newline at end of file diff --git a/modules/renko.src.js b/modules/renko.src.js index ed8d6787d0..c8771174b5 100644 --- a/modules/renko.src.js +++ b/modules/renko.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/renko * @requires highcharts * @requires highcharts/modules/stock diff --git a/modules/sankey.js b/modules/sankey.js index d2bcc5197a..a00d760217 100644 --- a/modules/sankey.js +++ b/modules/sankey.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/sankey * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/sankey",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Point,t.Color,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/sankey"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Point,t.Highcharts.Color,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,o,i,s)=>(()=>{"use strict";var n,r,l={620:t=>{t.exports=i},260:t=>{t.exports=o},28:t=>{t.exports=s},512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function h(t){var e=a[t];if(void 0!==e)return e.exports;var o=a[t]={exports:{}};return l[t](o,o.exports,h),o.exports}h.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{for(var o in e)h.o(e,o)&&!h.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};h.d(d,{default:()=>tc});var p=h(944),c=/*#__PURE__*/h.n(p),u=h(512),f=/*#__PURE__*/h.n(u);let{series:{prototype:m,prototype:{pointClass:{prototype:g}}}}=f(),{defined:y,extend:x,find:b,merge:v,pick:k}=c();!function(t){function e(){return this.data=[].concat(this.points||[],this.nodes),m.destroy.apply(this,arguments)}function o(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),m.setData.apply(this,arguments)}function i(t){let e=arguments,o=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&o.forEach(t=>{t&&t.series&&(g.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&g.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&g.setState.apply(t.toNode,e)))}),g.setState.apply(this,e)}function s(t,e,o,i){let s=this.series.options.nodes,n=this.series.options.data,r=n?.length||0,l=n?.[this.index];if(g.update.call(this,t,!this.isNode&&e,o,i),this.isNode){let t=(s||[]).reduce((t,e,o)=>this.id===e.id?o:t,-1),i=v(s&&s[t]||{},n?.[this.index]||{});n&&(l?n[this.index]=l:n.length=r),s?t>=0?s[t]=i:s.push(i):this.series.options.nodes=[i],k(e,!0)&&this.series.chart.redraw(o)}}t.compose=function(t,n){let r=t.prototype,l=n.prototype;return r.setNodeState=i,r.setState=i,r.update=s,l.destroy=e,l.setData=o,n},t.createNode=function(t){let e=this.pointClass,o=(t,e)=>b(t,t=>t.id===e),i=o(this.nodes,t),s;if(!i){s=this.options.nodes&&o(this.options.nodes,t);let n=new e(this,x({className:"highcharts-node",isNode:!0,id:t,y:1},s));n.linksTo=[],n.linksFrom=[],n.getSum=function(){let t=0,e=0;return n.linksTo.forEach(e=>{t+=e.weight||0}),n.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},n.offset=function(t,e){let o=0;for(let i=0;i{e.outgoing&&t++}),!n.linksTo.length||t!==n.linksTo.length},n.index=this.nodes.push(n)-1,i=n}return i.formatPrefix="node",i.name=i.name||i.options.id||"",i.mass=k(i.options.mass,i.options.marker&&i.options.marker.radius,this.options.marker&&this.options.marker.radius,4),i},t.destroy=e,t.generatePoints=function(){let t=this.chart,e={};m.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(o=>{y(o.from)&&(e[o.from]||(e[o.from]=this.createNode(o.from)),e[o.from].linksFrom.push(o),o.fromNode=e[o.from],t.styledMode?o.colorIndex=k(o.options.colorIndex,e[o.from].colorIndex):o.color=o.options.color||e[o.from].color),y(o.to)&&(e[o.to]||(e[o.to]=this.createNode(o.to)),e[o.to].linksTo.push(o),o.toNode=e[o.to]),o.name=o.name||o.id},this),this.nodeLookup=e},t.setNodeState=i,t.updateNode=s}(n||(n={}));let C=n;var N=h(260),P=/*#__PURE__*/h.n(N);let{column:L}=f().seriesTypes,{defined:S}=c();class T extends L.prototype.pointClass{applyOptions(t,e){return P().prototype.applyOptions.call(this,t,e),S(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+P().prototype.getClassName.call(this)}getFromNode(){let t=-1,e;for(let o=0;ot&&i.fromNode!==this&&(t=(e=i.fromNode).column)}return{fromNode:e,fromColumn:t}}setNodeColumn(){S(this.options.column)||(0===this.linksTo.length?this.column=0:this.column=this.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}let{defined:w,getAlignFactor:O,relativeLength:M}=c();!function(t){t.compose=function(t,o){return t.sankeyColumn=new e(t,o),t};class e{constructor(t,e){this.points=t,this.series=e}getTranslationFactor(t){let e=this.points,o=e.slice(),i=t.chart,s=t.options.minLinkWidth||0,n,r=0,l,a=(i.plotSizeY||0)-(t.options.borderWidth||0)-(e.length-1)*t.nodePadding;for(;e.length;){for(r=a/e.sankeyColumn.sum(),n=!1,l=e.length;l--;)e[l].getSum()*r(i>0&&(i+=o),i+=Math.max(s.getSum()*t,e.options.minLinkWidth||0)),0);return O(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-i)}left(t){let e=this.series,o=e.chart,i=e.options.equalNodes,s=o.inverted?o.plotHeight:o.plotWidth,n=e.nodePadding,r=this.points.reduce((o,r)=>(o>0&&(o+=n),o+=i?s/r.series.nodes.length-n:Math.max(r.getSum()*t,e.options.minLinkWidth||0)),0);return((o.plotSizeX||0)-Math.round(r))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let o=this.points,i=this.series,s=i.nodePadding,n=0,r;if(i.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let l=0;l{if(t&&r){let s=t.attr("id");s||t.attr("id",s=G());let r={x:0,y:0};$(n.dx)&&(r.dx=n.dx,delete n.dx),$(n.dy)&&(r.dy=n.dy,delete n.dy),i.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let l=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:q(n,{"text-anchor":n.textAnchor,href:`${o}#${s}`}),children:l}}});i.textPath={path:t,undo:e}}else i.attr({dx:0,dy:0}),delete i.textPath;return this.added&&(i.textCache="",this.renderer.buildText(i)),this}function J(t){let e=t.bBox,o=this.element?.querySelector("textPath");if(o){let t=[],{b:i,h:s}=this.renderer.fontMetrics(this.element),n=s-i,r=RegExp('(|]*>|<\\/tspan>)',"g"),l=o.innerHTML.replace(r,"").split(/]*>/),a=l.length,h=(t,e)=>{let{x:s,y:r}=e,l=(o.getRotationOfChar(t)-90)*X,a=Math.cos(l),h=Math.sin(l);return[[s-n*a,r-n*h],[s+i*a,r+i*h]]};for(let e=0,i=0;i{let e=i&&i.colorVariation;return e&&"brightness"===e.key&&a&&f?H().parse(t).brighten(e.to*(a/f)).get():t})(d),c.color)),l=E(o&&o.options.colorIndex,i&&i.colorIndex,n,p,e.colorIndex)),{color:r,colorIndex:l}},getLevelOptions:function(t){let e,o,i,s,n,r;let l={};if(B(t))for(s=D(t.from)?t.from:1,r=t.levels,o={},e=B(t.defaults)?t.defaults:{},I(r)&&(o=r.reduce((t,o)=>{let i,n,r;return B(o)&&D(o.level)&&(n=E((r=Y({},o)).levelIsConstant,e.levelIsConstant),delete r.levelIsConstant,delete r.level,B(t[i=o.level+(n?0:s-1)])?Y(!0,t[i],r):t[i]=r),t},{})),n=D(t.to)?t.to:1,i=0;i<=n;i++)l[i]=Y({},e,B(o[i])?o[i]:{});return l},getNodeWidth:function(t,e){let{chart:o,options:i}=t,{nodeDistance:s=0,nodeWidth:n=0}=i,{plotSizeX:r=1}=o;if("auto"===n){if("string"==typeof s&&/%$/.test(s))return r/(e+parseFloat(s)/100*(e-1));let t=Number(s);return(r+t)/(e||1)-t}return A(n,r)},setTreeValues:function t(e,o){let i=o.before,s=o.idRoot,n=o.mapIdToNode[s],r=!1!==o.levelIsConstant,l=o.points[e.i],a=l&&l.options||{},h=[],d=0;e.levelDynamic=e.level-(r?0:n.level),e.name=E(l&&l.name,""),e.visible=s===e.id||!0===o.visible,"function"==typeof i&&(e=i(e,o)),e.children.forEach((i,s)=>{let n=z({},o);z(n,{index:s,siblings:e.children.length,visible:e.visible}),i=t(i,n),h.push(i),i.visible&&(d+=i.val)});let p=E(a.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,o;return B(t)&&(o=B(t.options)?t.options:{},e=E(t.rootNode,o.rootId,""),B(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{clamp:ti,crisp:ts,extend:tn,isObject:tr,merge:tl,pick:ta,relativeLength:th,stableSort:td}=c();({compose:function(t){V(t,"afterGetBBox",J),V(t,"beforeAddingDataLabel",K);let e=t.prototype;e.setTextPath||(e.setTextPath=Z)}}).compose(R());class tp extends Q{static getDLOptions(t){let e=tr(t.optionsPoint)?t.optionsPoint.dataLabels:{};return tl({style:{}},tr(t.level)?t.level.dataLabels:{},e)}createNodeColumns(){let t=[];for(let e of this.nodes)e.setNodeColumn(),t[e.column]||(t[e.column]=F.compose([],this)),t[e.column].push(e);for(let e=0;et.level-e.level)}}getNodePadding(){let t=this.options.nodePadding||0;if(this.nodeColumns){let e=this.nodeColumns.reduce((t,e)=>Math.max(t,e.length),0);e*t>this.chart.plotSizeY&&(t=this.chart.plotSizeY/e)}return t}hasData(){return!!this.dataTable.rowCount}pointAttribs(t,e){if(!t)return{};let o=this,i=t.isNode?t.level:t.fromNode.level,s=o.mapOptionsToLevel[i||0]||{},n=t.options,r=s.states&&s.states[e||""]||{},l=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((t,e)=>(t[e]=ta(r[e],n[e],s[e],o.options[e]),t),{}),a=ta(r.color,n.color,l.colorByPoint?t.color:s.color);return t.isNode?{fill:a,stroke:l.borderColor,"stroke-width":l.borderWidth,opacity:l.opacity}:{fill:H().parse(a).setOpacity(l.linkOpacity).get()}}drawTracker(){Q.prototype.drawTracker.call(this,this.points),Q.prototype.drawTracker.call(this,this.nodes)}drawPoints(){Q.prototype.drawPoints.call(this,this.points),Q.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){Q.prototype.drawDataLabels.call(this,this.points),Q.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.generatePoints(),this.nodeColumns=this.createNodeColumns();let t=this,e=this.chart,o=this.options,i=this.nodeColumns,s=i.length;for(let n of(this.nodeWidth=to(this,s),this.nodePadding=this.getNodePadding(),this.translationFactor=i.reduce((e,o)=>Math.min(e,o.sankeyColumn.getTranslationFactor(t)),1/0),this.colDistance=(e.plotSizeX-this.nodeWidth-o.borderWidth)/Math.max(1,i.length-1),t.mapOptionsToLevel=te({from:1,levels:o.levels,to:i.length-1,defaults:{borderColor:o.borderColor,borderRadius:o.borderRadius,borderWidth:o.borderWidth,color:t.color,colorByPoint:o.colorByPoint,levelIsConstant:!0,linkColor:o.linkColor,linkLineWidth:o.linkLineWidth,linkOpacity:o.linkOpacity,states:o.states}}),i))for(let e of n)t.translateNode(e,n);for(let e of this.nodes)for(let o of e.linksFrom)(o.weight||o.isNull)&&o.to&&(t.translateLink(o),o.allowShadow=!1)}translateLink(t){let e=(e,o)=>{let i=e.offset(t,o)*r;return Math.min(e.nodeY+i,e.nodeY+(e.shapeArgs&&e.shapeArgs.height||0)-u)},o=t.fromNode,i=t.toNode,s=this.chart,{inverted:n}=s,r=this.translationFactor,l=this.options,a=ta(t.linkColorMode,l.linkColorMode),h=(s.inverted?-this.colDistance:this.colDistance)*l.curveFactor,d=o.nodeX,p=i.nodeX,c=t.outgoing,u=Math.max(t.weight*r,this.options.minLinkWidth),f=e(o,"linksFrom"),m=e(i,"linksTo"),g=this.nodeWidth,y=p>d+g;if(s.inverted&&(f=s.plotSizeY-f,m=(s.plotSizeY||0)-m,g=-g,u=-u,y=d>p),t.shapeType="path",t.linkBase=[f,f+u,m,m+u],y&&"number"==typeof m)t.shapeArgs={d:[["M",d+g,f],["C",d+g+h,f,p-h,m,p,m],["L",p+(c?g:0),m+u/2],["L",p,m+u],["C",p-h,m+u,d+g+h,f+u,d+g,f+u],["Z"]]};else if("number"==typeof m){let e=s.plotHeight-f-u,o=p-20-u,i=p-20,n=d+g,r=n+20,l=r+u,a=f,h=f+u,c=h+20,y=c+e,x=y+20,b=x+u,v=m,k=v+u,C=k+20,N=h-.7*u,P=x+.7*u,L=k-.7*u,S=p-.7*u,T=n+.7*u;t.shapeArgs={d:[["M",n,a],["C",T,a,l,N,l,c],["L",l,y],["C",l,P,T,b,n,b],["L",p,b],["C",S,b,o,P,o,y],["L",o,C],["C",o,L,S,v,p,v],["L",p,k],["C",i,k,i,k,i,C],["L",i,y],["C",i,x,i,x,p,x],["L",n,x],["C",r,x,r,x,r,y],["L",r,c],["C",r,h,r,h,n,h],["Z"]]}}if(t.dlBox={x:d+(p-d+g)/2,y:f+(m-f)/2,height:u,width:0},t.tooltipPos=s.inverted?[s.plotSizeY-t.dlBox.y-u/2,s.plotSizeX-t.dlBox.x]:[t.dlBox.x,t.dlBox.y+u/2],t.y=t.plotY=1,t.x=t.plotX=1,!t.options.color){if("from"===a)t.color=o.color;else if("to"===a)t.color=i.color;else if("gradient"===a){let e=tt(o.color).get(),s=tt(i.color).get();t.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,n?e:s],[1,n?s:e]]}}}}translateNode(t,e){let o=this.translationFactor,i=this.chart,s=this.options,{borderRadius:n,borderWidth:r=0}=s,l=t.getSum(),a=Math.max(Math.round(l*o),this.options.minLinkWidth),h=Math.round(this.nodeWidth),d=e.sankeyColumn.offset(t,o),p=ts(ta(d.absoluteTop,e.sankeyColumn.top(o)+d.relativeTop),r),c=ts(this.colDistance*t.column+r/2,r)+th(t.options[i.inverted?"offsetVertical":"offsetHorizontal"]||0,h),u=i.inverted?i.plotSizeX-c:c;if(t.sum=l,l){t.shapeType="roundedRect",t.nodeX=u,t.nodeY=p;let e=u,o=p,r=t.options.width||s.width||h,l=t.options.height||s.height||a,d=ti(th("object"==typeof n?n.radius:n||0,r),0,a/2);i.inverted&&(e=u-h,o=i.plotSizeY-p-a,r=t.options.height||s.height||h,l=t.options.width||s.width||a),t.dlOptions=tp.getDLOptions({level:this.mapOptionsToLevel[t.level],optionsPoint:t.options}),t.plotX=1,t.plotY=1,t.tooltipPos=i.inverted?[i.plotSizeY-o-l/2,i.plotSizeX-e-r/2]:[e+r/2,o+l/2],t.shapeArgs={x:e,y:o,width:r,height:l,r:d,display:t.hasShape()?"":"none"}}else t.dlOptions={enabled:!1}}}tp.defaultOptions=tl(Q.defaultOptions,{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
    ',pointFormat:"{point.fromNode.name} → {point.toNode.name}: {point.weight}
    ",nodeFormat:"{point.name}: {point.sum}
    "}}),C.compose(T,tp),tn(tp.prototype,{animate:U.prototype.animate,createNode:C.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:T,searchPoint:c().noop}),f().registerSeriesType("sankey",tp);let tc=c();return d.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/sankey",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Point,t.Color,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/sankey"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Point,t.Highcharts.Color,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,o,i,s)=>(()=>{"use strict";var n,r,l={620:t=>{t.exports=i},260:t=>{t.exports=o},28:t=>{t.exports=s},512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function h(t){var e=a[t];if(void 0!==e)return e.exports;var o=a[t]={exports:{}};return l[t](o,o.exports,h),o.exports}h.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{for(var o in e)h.o(e,o)&&!h.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};h.d(d,{default:()=>tc});var p=h(944),c=h.n(p),u=h(512),f=h.n(u);let{series:{prototype:m,prototype:{pointClass:{prototype:g}}}}=f(),{defined:y,extend:x,find:b,merge:v,pick:k}=c();!function(t){function e(){return this.data=[].concat(this.points||[],this.nodes),m.destroy.apply(this,arguments)}function o(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),m.setData.apply(this,arguments)}function i(t){let e=arguments,o=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&o.forEach(t=>{t&&t.series&&(g.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&g.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&g.setState.apply(t.toNode,e)))}),g.setState.apply(this,e)}function s(t,e,o,i){let s=this.series.options.nodes,n=this.series.options.data,r=n?.length||0,l=n?.[this.index];if(g.update.call(this,t,!this.isNode&&e,o,i),this.isNode){let t=(s||[]).reduce((t,e,o)=>this.id===e.id?o:t,-1),i=v(s&&s[t]||{},n?.[this.index]||{});n&&(l?n[this.index]=l:n.length=r),s?t>=0?s[t]=i:s.push(i):this.series.options.nodes=[i],k(e,!0)&&this.series.chart.redraw(o)}}t.compose=function(t,n){let r=t.prototype,l=n.prototype;return r.setNodeState=i,r.setState=i,r.update=s,l.destroy=e,l.setData=o,n},t.createNode=function(t){let e=this.pointClass,o=(t,e)=>b(t,t=>t.id===e),i=o(this.nodes,t),s;if(!i){s=this.options.nodes&&o(this.options.nodes,t);let n=new e(this,x({className:"highcharts-node",isNode:!0,id:t,y:1},s));n.linksTo=[],n.linksFrom=[],n.getSum=function(){let t=0,e=0;return n.linksTo.forEach(e=>{t+=e.weight||0}),n.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},n.offset=function(t,e){let o=0;for(let i=0;i{e.outgoing&&t++}),!n.linksTo.length||t!==n.linksTo.length},n.index=this.nodes.push(n)-1,i=n}return i.formatPrefix="node",i.name=i.name||i.options.id||"",i.mass=k(i.options.mass,i.options.marker&&i.options.marker.radius,this.options.marker&&this.options.marker.radius,4),i},t.destroy=e,t.generatePoints=function(){let t=this.chart,e={};m.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(o=>{y(o.from)&&(e[o.from]||(e[o.from]=this.createNode(o.from)),e[o.from].linksFrom.push(o),o.fromNode=e[o.from],t.styledMode?o.colorIndex=k(o.options.colorIndex,e[o.from].colorIndex):o.color=o.options.color||e[o.from].color),y(o.to)&&(e[o.to]||(e[o.to]=this.createNode(o.to)),e[o.to].linksTo.push(o),o.toNode=e[o.to]),o.name=o.name||o.id},this),this.nodeLookup=e},t.setNodeState=i,t.updateNode=s}(n||(n={}));let C=n;var N=h(260),P=h.n(N);let{column:L}=f().seriesTypes,{defined:S}=c();class T extends L.prototype.pointClass{applyOptions(t,e){return P().prototype.applyOptions.call(this,t,e),S(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+P().prototype.getClassName.call(this)}getFromNode(){let t=-1,e;for(let o=0;ot&&i.fromNode!==this&&(t=(e=i.fromNode).column)}return{fromNode:e,fromColumn:t}}setNodeColumn(){S(this.options.column)||(0===this.linksTo.length?this.column=0:this.column=this.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}let{defined:w,getAlignFactor:O,relativeLength:M}=c();!function(t){t.compose=function(t,o){return t.sankeyColumn=new e(t,o),t};class e{constructor(t,e){this.points=t,this.series=e}getTranslationFactor(t){let e=this.points,o=e.slice(),i=t.chart,s=t.options.minLinkWidth||0,n,r=0,l,a=(i.plotSizeY||0)-(t.options.borderWidth||0)-(e.length-1)*t.nodePadding;for(;e.length;){for(r=a/e.sankeyColumn.sum(),n=!1,l=e.length;l--;)e[l].getSum()*r(i>0&&(i+=o),i+=Math.max(s.getSum()*t,e.options.minLinkWidth||0)),0);return O(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-i)}left(t){let e=this.series,o=e.chart,i=e.options.equalNodes,s=o.inverted?o.plotHeight:o.plotWidth,n=e.nodePadding,r=this.points.reduce((o,r)=>(o>0&&(o+=n),o+=i?s/r.series.nodes.length-n:Math.max(r.getSum()*t,e.options.minLinkWidth||0)),0);return((o.plotSizeX||0)-Math.round(r))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let o=this.points,i=this.series,s=i.nodePadding,n=0,r;if(i.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let l=0;l{if(t&&r){let s=t.attr("id");s||t.attr("id",s=G());let r={x:0,y:0};$(n.dx)&&(r.dx=n.dx,delete n.dx),$(n.dy)&&(r.dy=n.dy,delete n.dy),i.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let l=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:q(n,{"text-anchor":n.textAnchor,href:`${o}#${s}`}),children:l}}});i.textPath={path:t,undo:e}}else i.attr({dx:0,dy:0}),delete i.textPath;return this.added&&(i.textCache="",this.renderer.buildText(i)),this}function J(t){let e=t.bBox,o=this.element?.querySelector("textPath");if(o){let t=[],{b:i,h:s}=this.renderer.fontMetrics(this.element),n=s-i,r=RegExp('(|]*>|<\\/tspan>)',"g"),l=o.innerHTML.replace(r,"").split(/]*>/),a=l.length,h=(t,e)=>{let{x:s,y:r}=e,l=(o.getRotationOfChar(t)-90)*X,a=Math.cos(l),h=Math.sin(l);return[[s-n*a,r-n*h],[s+i*a,r+i*h]]};for(let e=0,i=0;i{let e=i&&i.colorVariation;return e&&"brightness"===e.key&&a&&f?H().parse(t).brighten(e.to*(a/f)).get():t})(d),c.color)),l=E(o&&o.options.colorIndex,i&&i.colorIndex,n,p,e.colorIndex)),{color:r,colorIndex:l}},getLevelOptions:function(t){let e,o,i,s,n,r;let l={};if(B(t))for(s=D(t.from)?t.from:1,r=t.levels,o={},e=B(t.defaults)?t.defaults:{},I(r)&&(o=r.reduce((t,o)=>{let i,n,r;return B(o)&&D(o.level)&&(n=E((r=Y({},o)).levelIsConstant,e.levelIsConstant),delete r.levelIsConstant,delete r.level,B(t[i=o.level+(n?0:s-1)])?Y(!0,t[i],r):t[i]=r),t},{})),n=D(t.to)?t.to:1,i=0;i<=n;i++)l[i]=Y({},e,B(o[i])?o[i]:{});return l},getNodeWidth:function(t,e){let{chart:o,options:i}=t,{nodeDistance:s=0,nodeWidth:n=0}=i,{plotSizeX:r=1}=o;if("auto"===n){if("string"==typeof s&&/%$/.test(s))return r/(e+parseFloat(s)/100*(e-1));let t=Number(s);return(r+t)/(e||1)-t}return A(n,r)},setTreeValues:function t(e,o){let i=o.before,s=o.idRoot,n=o.mapIdToNode[s],r=!1!==o.levelIsConstant,l=o.points[e.i],a=l&&l.options||{},h=[],d=0;e.levelDynamic=e.level-(r?0:n.level),e.name=E(l&&l.name,""),e.visible=s===e.id||!0===o.visible,"function"==typeof i&&(e=i(e,o)),e.children.forEach((i,s)=>{let n=z({},o);z(n,{index:s,siblings:e.children.length,visible:e.visible}),i=t(i,n),h.push(i),i.visible&&(d+=i.val)});let p=E(a.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,o;return B(t)&&(o=B(t.options)?t.options:{},e=E(t.rootNode,o.rootId,""),B(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{clamp:ti,crisp:ts,extend:tn,isObject:tr,merge:tl,pick:ta,relativeLength:th,stableSort:td}=c();({compose:function(t){V(t,"afterGetBBox",J),V(t,"beforeAddingDataLabel",K);let e=t.prototype;e.setTextPath||(e.setTextPath=Z)}}).compose(R());class tp extends Q{static getDLOptions(t){let e=tr(t.optionsPoint)?t.optionsPoint.dataLabels:{};return tl({style:{}},tr(t.level)?t.level.dataLabels:{},e)}createNodeColumns(){let t=[];for(let e of this.nodes)e.setNodeColumn(),t[e.column]||(t[e.column]=F.compose([],this)),t[e.column].push(e);for(let e=0;et.level-e.level)}}getNodePadding(){let t=this.options.nodePadding||0;if(this.nodeColumns){let e=this.nodeColumns.reduce((t,e)=>Math.max(t,e.length),0);e*t>this.chart.plotSizeY&&(t=this.chart.plotSizeY/e)}return t}hasData(){return!!this.dataTable.rowCount}pointAttribs(t,e){if(!t)return{};let o=this,i=t.isNode?t.level:t.fromNode.level,s=o.mapOptionsToLevel[i||0]||{},n=t.options,r=s.states&&s.states[e||""]||{},l=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((t,e)=>(t[e]=ta(r[e],n[e],s[e],o.options[e]),t),{}),a=ta(r.color,n.color,l.colorByPoint?t.color:s.color);return t.isNode?{fill:a,stroke:l.borderColor,"stroke-width":l.borderWidth,opacity:l.opacity}:{fill:H().parse(a).setOpacity(l.linkOpacity).get()}}drawTracker(){Q.prototype.drawTracker.call(this,this.points),Q.prototype.drawTracker.call(this,this.nodes)}drawPoints(){Q.prototype.drawPoints.call(this,this.points),Q.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){Q.prototype.drawDataLabels.call(this,this.points),Q.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.generatePoints(),this.nodeColumns=this.createNodeColumns();let t=this,e=this.chart,o=this.options,i=this.nodeColumns,s=i.length;for(let n of(this.nodeWidth=to(this,s),this.nodePadding=this.getNodePadding(),this.translationFactor=i.reduce((e,o)=>Math.min(e,o.sankeyColumn.getTranslationFactor(t)),1/0),this.colDistance=(e.plotSizeX-this.nodeWidth-o.borderWidth)/Math.max(1,i.length-1),t.mapOptionsToLevel=te({from:1,levels:o.levels,to:i.length-1,defaults:{borderColor:o.borderColor,borderRadius:o.borderRadius,borderWidth:o.borderWidth,color:t.color,colorByPoint:o.colorByPoint,levelIsConstant:!0,linkColor:o.linkColor,linkLineWidth:o.linkLineWidth,linkOpacity:o.linkOpacity,states:o.states}}),i))for(let e of n)t.translateNode(e,n);for(let e of this.nodes)for(let o of e.linksFrom)(o.weight||o.isNull)&&o.to&&(t.translateLink(o),o.allowShadow=!1)}translateLink(t){let e=(e,o)=>{let i=e.offset(t,o)*r;return Math.min(e.nodeY+i,e.nodeY+(e.shapeArgs&&e.shapeArgs.height||0)-u)},o=t.fromNode,i=t.toNode,s=this.chart,{inverted:n}=s,r=this.translationFactor,l=this.options,a=ta(t.linkColorMode,l.linkColorMode),h=(s.inverted?-this.colDistance:this.colDistance)*l.curveFactor,d=o.nodeX,p=i.nodeX,c=t.outgoing,u=Math.max(t.weight*r,this.options.minLinkWidth),f=e(o,"linksFrom"),m=e(i,"linksTo"),g=this.nodeWidth,y=p>d+g;if(s.inverted&&(f=s.plotSizeY-f,m=(s.plotSizeY||0)-m,g=-g,u=-u,y=d>p),t.shapeType="path",t.linkBase=[f,f+u,m,m+u],y&&"number"==typeof m)t.shapeArgs={d:[["M",d+g,f],["C",d+g+h,f,p-h,m,p,m],["L",p+(c?g:0),m+u/2],["L",p,m+u],["C",p-h,m+u,d+g+h,f+u,d+g,f+u],["Z"]]};else if("number"==typeof m){let e=s.plotHeight-f-u,o=p-20-u,i=p-20,n=d+g,r=n+20,l=r+u,a=f,h=f+u,c=h+20,y=c+e,x=y+20,b=x+u,v=m,k=v+u,C=k+20,N=h-.7*u,P=x+.7*u,L=k-.7*u,S=p-.7*u,T=n+.7*u;t.shapeArgs={d:[["M",n,a],["C",T,a,l,N,l,c],["L",l,y],["C",l,P,T,b,n,b],["L",p,b],["C",S,b,o,P,o,y],["L",o,C],["C",o,L,S,v,p,v],["L",p,k],["C",i,k,i,k,i,C],["L",i,y],["C",i,x,i,x,p,x],["L",n,x],["C",r,x,r,x,r,y],["L",r,c],["C",r,h,r,h,n,h],["Z"]]}}if(t.dlBox={x:d+(p-d+g)/2,y:f+(m-f)/2,height:u,width:0},t.tooltipPos=s.inverted?[s.plotSizeY-t.dlBox.y-u/2,s.plotSizeX-t.dlBox.x]:[t.dlBox.x,t.dlBox.y+u/2],t.y=t.plotY=1,t.x=t.plotX=1,!t.options.color){if("from"===a)t.color=o.color;else if("to"===a)t.color=i.color;else if("gradient"===a){let e=tt(o.color).get(),s=tt(i.color).get();t.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,n?e:s],[1,n?s:e]]}}}}translateNode(t,e){let o=this.translationFactor,i=this.chart,s=this.options,{borderRadius:n,borderWidth:r=0}=s,l=t.getSum(),a=Math.max(Math.round(l*o),this.options.minLinkWidth),h=Math.round(this.nodeWidth),d=e.sankeyColumn.offset(t,o),p=ts(ta(d.absoluteTop,e.sankeyColumn.top(o)+d.relativeTop),r),c=ts(this.colDistance*t.column+r/2,r)+th(t.options[i.inverted?"offsetVertical":"offsetHorizontal"]||0,h),u=i.inverted?i.plotSizeX-c:c;if(t.sum=l,l){t.shapeType="roundedRect",t.nodeX=u,t.nodeY=p;let e=u,o=p,r=t.options.width||s.width||h,l=t.options.height||s.height||a,d=ti(th("object"==typeof n?n.radius:n||0,r),0,a/2);i.inverted&&(e=u-h,o=i.plotSizeY-p-a,r=t.options.height||s.height||h,l=t.options.width||s.width||a),t.dlOptions=tp.getDLOptions({level:this.mapOptionsToLevel[t.level],optionsPoint:t.options}),t.plotX=1,t.plotY=1,t.tooltipPos=i.inverted?[i.plotSizeY-o-l/2,i.plotSizeX-e-r/2]:[e+r/2,o+l/2],t.shapeArgs={x:e,y:o,width:r,height:l,r:d,display:t.hasShape()?"":"none"}}else t.dlOptions={enabled:!1}}}tp.defaultOptions=tl(Q.defaultOptions,{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
    ',pointFormat:"{point.fromNode.name} → {point.toNode.name}: {point.weight}
    ",nodeFormat:"{point.name}: {point.sum}
    "}}),C.compose(T,tp),tn(tp.prototype,{animate:U.prototype.animate,createNode:C.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:T,searchPoint:c().noop}),f().registerSeriesType("sankey",tp);let tc=c();return d.default})()); \ No newline at end of file diff --git a/modules/sankey.src.js b/modules/sankey.src.js index 02fc25f414..ed0d8f085b 100644 --- a/modules/sankey.src.js +++ b/modules/sankey.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/sankey * @requires highcharts * diff --git a/modules/series-label.js b/modules/series-label.js index 33e6813b51..382406c093 100644 --- a/modules/series-label.js +++ b/modules/series-label.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/series-label * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: 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)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var o={984:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return o[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var o in e)a.o(e,o)&&!a.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};a.d(i,{default:()=>B});var h=a(944),n=/*#__PURE__*/a.n(h),l=a(984),s=/*#__PURE__*/a.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,o,r,a,i){let h=(i-e)*(o-t)-(r-e)*(a-t);return h>0||!(h<0)}function d(t,e,o,r,a,i,h,n){return p(t,e,a,i,h,n)!==p(o,r,a,i,h,n)&&p(t,e,o,r,a,i)!==p(t,e,o,r,h,n)}let{animObject:f}=n(),{format:u}=s(),{setOptions:x}=n(),{composed:g}=n(),{boxIntersectLine:b,intersectRect:m}={boxIntersectLine:function(t,e,o,r,a,i,h,n){return d(t,e,t+o,e,a,i,h,n)||d(t+o,e,t+o,e+r,a,i,h,n)||d(t,e+r,t+o,e+r,a,i,h,n)||d(t,e,t,e+r,a,i,h,n)},intersectRect:function(t,e){return!(e.left>t.right||e.rightt.bottom||e.bottom=e-16&&m[X-1].chartX<=e+r.width+16){if(b(e,o,r.width,r.height,m[X-1].chartX,m[X-1].chartY,m[X].chartX,m[X].chartY))return!1;t===s&&!u&&a&&(u=b(e-16,o-16,r.width+32,r.height+32,m[X-1].chartX,m[X-1].chartY,m[X].chartX,m[X].chartY))}(l||u)&&(t!==s||n)&&(c=Math.min(c,(x=e+r.width/2-m[X].chartX)*x+(g=o+r.height/2-m[X].chartY)*g))}if(!n&&l&&t===s&&(a&&!u||c(t||0)+(e||0),0),e.labelSeriesMaxSum=Math.max(e.labelSeriesMaxSum||0,r.sum||0)),"load"===t.type&&(o=Math.max(o,f(r.options.animation).duration)),h&&(void 0!==h[0].plotX?i.animate({x:h[0].plotX+h[1],y:h[0].plotY+h[2]}):i.attr({opacity:0})))}),e.seriesLabelTimer=S(function(){e.series&&e.labelSeries&&function(t){t.boxesToAvoid=[];let e=t.labelSeries||[],o=t.boxesToAvoid;t.series.forEach(t=>(t.points||[]).forEach(e=>(e.dataLabels||[]).forEach(e=>{let{width:r,height:a}=e.getBBox(),i=(e.translateX||0)+(t.xAxis?t.xAxis.pos:t.chart.plotLeft),h=(e.translateY||0)+(t.yAxis?t.yAxis.pos:t.chart.plotTop);o.push({left:i,top:h,right:i+r,bottom:h+a})}))),e.forEach(function(t){let e=t.options.label||{};t.interpolatedPoints=function(t){let e,o,r,a,i;if(!t.xAxis&&!t.yAxis)return;let h=t.points,n=[],l=t.graph||t.area,s=l&&l.element,c=t.chart.inverted,p=t.xAxis,d=t.yAxis,f=c?d.pos:p.pos,u=c?p.pos:d.pos,x=c?p.len:d.len,g=c?d.len:p.len,b=Y((t.options.label||{}).onArea,!!t.area),m=d.getThreshold(t.options.threshold),y={},X=c?"chartCenterX":"chartCenterY";function w(t){let e=Math.round((t.plotX||0)/8)+","+Math.round((t.plotY||0)/8);y[e]||(y[e]=1,n.push(t))}if(t.getPointSpline&&s&&s.getPointAtLength&&!b&&h.length<(t.chart.plotSizeX||0)/16){let t=l.toD&&l.attr("d");for(l.toD&&l.attr({d:l.toD}),r=s.getTotalLength(),e=0;e16&&o<999)for(i=1,a=Math.ceil(o/16);ir&&t<=a-o.width&&e>=s&&e<=s+p-o.height}function E(){L&&(e.labelBySeries=L.destroy())}if(x&&!n&&(T=[e.xAxis.toPixels(b[0]),e.xAxis.toPixels(b[b.length-1])],P=Math.min.apply(Math,T),B=Math.max.apply(Math,T)),e.visible&&!e.boosted&&d){if(!L){let a=e.name;if("string"==typeof o.format?a=u(o.format,e,t):o.formatter&&(a=o.formatter.call(e)),e.labelBySeries=L=t.renderer.label(a,0,0,"connector",0,0,o.useHTML).addClass("highcharts-series-label highcharts-series-label-"+e.index+" "+(e.options.className||"")+" "+r),!t.renderer.styledMode){let r="string"==typeof e.color?e.color:"#666666";L.css(X({color:x?t.renderer.getContrast(r):r},o.style||{})),L.attr({opacity:t.renderer.forExport?1:0,stroke:e.color,"stroke-width":1})}i&&h&&L.css({fontSize:i+(e.sum||0)/(e.chart.labelSeriesMaxSum||0)*(h-i)+"px"}),L.attr({padding:0,zIndex:3}).add()}for((m=L.getBBox()).width=Math.round(m.width),A=d.length-1;A>0;A-=1)x?C(y=(d[A].chartCenterX??d[A].chartX)-m.width/2,w=(d[A].chartCenterY??d[A].chartY)-m.height/2,m)&&(S=v(e,y,w,m)):(C(y=d[A].chartX+3,w=d[A].chartY-m.height-3,m)&&(S=v(e,y,w,m,!0)),S&&g.push(S),C(y=d[A].chartX+3,w=d[A].chartY+3,m)&&(S=v(e,y,w,m,!0)),S&&g.push(S),C(y=d[A].chartX-m.width-3,w=d[A].chartY+3,m)&&(S=v(e,y,w,m,!0)),S&&g.push(S),C(y=d[A].chartX-m.width-3,w=d[A].chartY-m.height-3,m)&&(S=v(e,y,w,m,!0))),S&&g.push(S);if(o.connectorAllowed&&!g.length&&!x)for(y=l+c-m.width;y>=l;y-=16)for(w=s;we.weight-t.weight),S=g[0],(t.boxesToAvoid||[]).push({left:S.x,right:S.x+m.width,top:S.y,bottom:S.y+m.height});let o=Math.sqrt(Math.pow(Math.abs(S.x-(L.x||0)),2)+Math.pow(Math.abs(S.y-(L.y||0)),2));if(o&&e.labelBySeries){let r,i={opacity:t.renderer.forExport?1:0,x:S.x,y:S.y},h={opacity:1};o<=10&&(h={x:i.x,y:i.y},i={}),a&&(r=f(e.options.animation),r.duration*=.2),e.labelBySeries.attr(X(i,{anchorX:S.connectorPoint&&(S.connectorPoint.plotX||0)+l,anchorY:S.connectorPoint&&(S.connectorPoint.plotY||0)+s})).animate(h,r),e.options.kdNow=!0,e.buildKDTree();let n=e.searchPoint({chartX:S.x,chartY:S.y},!0);n&&(L.closest=[n,S.x-(n.plotX||0),S.y-(n.plotY||0)])}}else E()}else E()}),w(t,"afterDrawSeriesLabels")}(e)},e.renderer.forExport||!o?0:o)}}function T(t,e,o,r,a){let i=a&&a.anchorX,h=a&&a.anchorY,n,l,s=o/2;return M(i)&&M(h)&&(n=[["M",i,h]],(l=e-h)<0&&(l=-r-l),le+r?n.push(["L",t+s,e+r]):ht+o&&n.push(["L",t+o,e+r/2])),n||[]}let P=n();({compose:function(t,e){A(g,"SeriesLabel")&&(y(t,"load",L),y(t,"redraw",L),e.prototype.symbols.connector=T,x({plotOptions:{series:{label:c}}}))}}).compose(P.Chart,P.SVGRenderer);let B=n();return i.default})()); \ No newline at end of file + */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)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var o={984:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return o[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var o in e)a.o(e,o)&&!a.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};a.d(i,{default:()=>B});var h=a(944),n=a.n(h),l=a(984),s=a.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,o,r,a,i){let h=(i-e)*(o-t)-(r-e)*(a-t);return h>0||!(h<0)}function d(t,e,o,r,a,i,h,n){return p(t,e,a,i,h,n)!==p(o,r,a,i,h,n)&&p(t,e,o,r,a,i)!==p(t,e,o,r,h,n)}let{animObject:f}=n(),{format:u}=s(),{setOptions:x}=n(),{composed:g}=n(),{boxIntersectLine:b,intersectRect:m}={boxIntersectLine:function(t,e,o,r,a,i,h,n){return d(t,e,t+o,e,a,i,h,n)||d(t+o,e,t+o,e+r,a,i,h,n)||d(t,e+r,t+o,e+r,a,i,h,n)||d(t,e,t,e+r,a,i,h,n)},intersectRect:function(t,e){return!(e.left>t.right||e.rightt.bottom||e.bottom=e-16&&m[X-1].chartX<=e+r.width+16){if(b(e,o,r.width,r.height,m[X-1].chartX,m[X-1].chartY,m[X].chartX,m[X].chartY))return!1;t===s&&!u&&a&&(u=b(e-16,o-16,r.width+32,r.height+32,m[X-1].chartX,m[X-1].chartY,m[X].chartX,m[X].chartY))}(l||u)&&(t!==s||n)&&(c=Math.min(c,(x=e+r.width/2-m[X].chartX)*x+(g=o+r.height/2-m[X].chartY)*g))}if(!n&&l&&t===s&&(a&&!u||c(t||0)+(e||0),0),e.labelSeriesMaxSum=Math.max(e.labelSeriesMaxSum||0,r.sum||0)),"load"===t.type&&(o=Math.max(o,f(r.options.animation).duration)),h&&(void 0!==h[0].plotX?i.animate({x:h[0].plotX+h[1],y:h[0].plotY+h[2]}):i.attr({opacity:0})))}),e.seriesLabelTimer=S(function(){e.series&&e.labelSeries&&function(t){t.boxesToAvoid=[];let e=t.labelSeries||[],o=t.boxesToAvoid;t.series.forEach(t=>(t.points||[]).forEach(e=>(e.dataLabels||[]).forEach(e=>{let{width:r,height:a}=e.getBBox(),i=(e.translateX||0)+(t.xAxis?t.xAxis.pos:t.chart.plotLeft),h=(e.translateY||0)+(t.yAxis?t.yAxis.pos:t.chart.plotTop);o.push({left:i,top:h,right:i+r,bottom:h+a})}))),e.forEach(function(t){let e=t.options.label||{};t.interpolatedPoints=function(t){let e,o,r,a,i;if(!t.xAxis&&!t.yAxis)return;let h=t.points,n=[],l=t.graph||t.area,s=l&&l.element,c=t.chart.inverted,p=t.xAxis,d=t.yAxis,f=c?d.pos:p.pos,u=c?p.pos:d.pos,x=c?p.len:d.len,g=c?d.len:p.len,b=Y((t.options.label||{}).onArea,!!t.area),m=d.getThreshold(t.options.threshold),y={},X=c?"chartCenterX":"chartCenterY";function w(t){let e=Math.round((t.plotX||0)/8)+","+Math.round((t.plotY||0)/8);y[e]||(y[e]=1,n.push(t))}if(t.getPointSpline&&s&&s.getPointAtLength&&!b&&h.length<(t.chart.plotSizeX||0)/16){let t=l.toD&&l.attr("d");for(l.toD&&l.attr({d:l.toD}),r=s.getTotalLength(),e=0;e16&&o<999)for(i=1,a=Math.ceil(o/16);ir&&t<=a-o.width&&e>=s&&e<=s+p-o.height}function E(){L&&(e.labelBySeries=L.destroy())}if(x&&!n&&(T=[e.xAxis.toPixels(b[0]),e.xAxis.toPixels(b[b.length-1])],P=Math.min.apply(Math,T),B=Math.max.apply(Math,T)),e.visible&&!e.boosted&&d){if(!L){let a=e.name;if("string"==typeof o.format?a=u(o.format,e,t):o.formatter&&(a=o.formatter.call(e)),e.labelBySeries=L=t.renderer.label(a,0,0,"connector",0,0,o.useHTML).addClass("highcharts-series-label highcharts-series-label-"+e.index+" "+(e.options.className||"")+" "+r),!t.renderer.styledMode){let r="string"==typeof e.color?e.color:"#666666";L.css(X({color:x?t.renderer.getContrast(r):r},o.style||{})),L.attr({opacity:t.renderer.forExport?1:0,stroke:e.color,"stroke-width":1})}i&&h&&L.css({fontSize:i+(e.sum||0)/(e.chart.labelSeriesMaxSum||0)*(h-i)+"px"}),L.attr({padding:0,zIndex:3}).add()}for((m=L.getBBox()).width=Math.round(m.width),A=d.length-1;A>0;A-=1)x?C(y=(d[A].chartCenterX??d[A].chartX)-m.width/2,w=(d[A].chartCenterY??d[A].chartY)-m.height/2,m)&&(S=v(e,y,w,m)):(C(y=d[A].chartX+3,w=d[A].chartY-m.height-3,m)&&(S=v(e,y,w,m,!0)),S&&g.push(S),C(y=d[A].chartX+3,w=d[A].chartY+3,m)&&(S=v(e,y,w,m,!0)),S&&g.push(S),C(y=d[A].chartX-m.width-3,w=d[A].chartY+3,m)&&(S=v(e,y,w,m,!0)),S&&g.push(S),C(y=d[A].chartX-m.width-3,w=d[A].chartY-m.height-3,m)&&(S=v(e,y,w,m,!0))),S&&g.push(S);if(o.connectorAllowed&&!g.length&&!x)for(y=l+c-m.width;y>=l;y-=16)for(w=s;we.weight-t.weight),S=g[0],(t.boxesToAvoid||[]).push({left:S.x,right:S.x+m.width,top:S.y,bottom:S.y+m.height});let o=Math.sqrt(Math.pow(Math.abs(S.x-(L.x||0)),2)+Math.pow(Math.abs(S.y-(L.y||0)),2));if(o&&e.labelBySeries){let r,i={opacity:t.renderer.forExport?1:0,x:S.x,y:S.y},h={opacity:1};o<=10&&(h={x:i.x,y:i.y},i={}),a&&(r=f(e.options.animation),r.duration*=.2),e.labelBySeries.attr(X(i,{anchorX:S.connectorPoint&&(S.connectorPoint.plotX||0)+l,anchorY:S.connectorPoint&&(S.connectorPoint.plotY||0)+s})).animate(h,r),e.options.kdNow=!0,e.buildKDTree();let n=e.searchPoint({chartX:S.x,chartY:S.y},!0);n&&(L.closest=[n,S.x-(n.plotX||0),S.y-(n.plotY||0)])}}else E()}else E()}),w(t,"afterDrawSeriesLabels")}(e)},e.renderer.forExport||!o?0:o)}}function T(t,e,o,r,a){let i=a&&a.anchorX,h=a&&a.anchorY,n,l,s=o/2;return M(i)&&M(h)&&(n=[["M",i,h]],(l=e-h)<0&&(l=-r-l),le+r?n.push(["L",t+s,e+r]):ht+o&&n.push(["L",t+o,e+r/2])),n||[]}let P=n();({compose:function(t,e){A(g,"SeriesLabel")&&(y(t,"load",L),y(t,"redraw",L),e.prototype.symbols.connector=T,x({plotOptions:{series:{label:c}}}))}}).compose(P.Chart,P.SVGRenderer);let B=n();return i.default})()); \ No newline at end of file diff --git a/modules/series-label.src.js b/modules/series-label.src.js index a12aa89059..478ba87c3d 100644 --- a/modules/series-label.src.js +++ b/modules/series-label.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/series-label * @requires highcharts * @@ -187,7 +187,9 @@ const SeriesLabelDefaults = { * small areas get a smaller font size. The default applies this * effect to area-like series but not line-like series. * - * @type {number|null} + * @sample highcharts/demo/streamgraph + * Min and max font size on a streamgraph + * @type {number|null} */ minFontSize: null, /** @@ -195,7 +197,10 @@ const SeriesLabelDefaults = { * small areas get a smaller font size. The default applies this * effect to area-like series but not line-like series. * - * @type {number|null} + * @sample highcharts/demo/streamgraph + * Min and max font size on a streamgraph + * + * @type {number|null} */ maxFontSize: null, /** diff --git a/modules/series-on-point.js b/modules/series-on-point.js index c068bcc0c2..af5e2ed3a2 100644 --- a/modules/series-on-point.js +++ b/modules/series-on-point.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/series-on-point * @requires highcharts * @@ -9,4 +9,4 @@ * Author: Rafal Sebestjanski and Piotr Madej * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/series-on-point",["highcharts/highcharts"],function(t){return e(t,t.Point,t.Series,t.SeriesRegistry,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/series-on-point"]=e(t._Highcharts,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer):t.Highcharts=e(t.Highcharts,t.Highcharts.Point,t.Highcharts.Series,t.Highcharts.SeriesRegistry,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,e,s,i,o)=>(()=>{"use strict";var r,n={260:t=>{t.exports=e},540:t=>{t.exports=o},820:t=>{t.exports=s},512:t=>{t.exports=i},944:e=>{e.exports=t}},h={};function a(t){var e=h[t];if(void 0!==e)return e.exports;var s=h[t]={exports:{}};return n[t](s,s.exports,a),s.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var s in e)a.o(e,s)&&!a.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};a.d(l,{default:()=>T});var c=a(944),p=/*#__PURE__*/a.n(c);let{fireEvent:d,isArray:u,objectEach:f,uniqueKey:g}=p(),m=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||g(),this.modified=this,this.rowCount=0,this.versionTag=g();let e=0;f(t.columns||{},(t,s)=>{this.columns[s]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,f(this.columns,e=>{u(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],s=0,i){this.setColumns({[t]:e},s,i)}setColumns(t,e,s){let i=this.rowCount;f(t,(t,e)=>{this.columns[e]=t.slice(),i=t.length}),this.applyRowCount(i),s?.silent||(d(this,"afterSetColumns"),this.versionTag=g())}setRow(t,e=this.rowCount,s,i){let{columns:o}=this,r=s?this.rowCount+1:e+1;f(t,(t,n)=>{let h=o[n]||i?.addColumns!==!1&&Array(r);h&&(s?h.splice(e,0,t):h[e]=t,o[n]=h)}),r>this.rowCount&&this.applyRowCount(r),i?.silent||(d(this,"afterSetRows"),this.versionTag=g())}};var y=a(260),w=/*#__PURE__*/a.n(y);a(820);var x=a(512),C=/*#__PURE__*/a.n(x),P=a(540),R=/*#__PURE__*/a.n(P);let{composed:b}=p(),{bubble:S}=C().seriesTypes,{addEvent:H,defined:v,find:_,isNumber:G,pushUnique:E}=p();!function(t){t.compose=function(t,s){if(E(b,"SeriesOnPoint")){let{chartGetZData:i,seriesAfterInit:o,seriesAfterRender:r,seriesGetCenter:n,seriesShowOrHide:h,seriesTranslate:a}=e.prototype;t.types.pie.prototype.onPointSupported=!0,H(t,"afterInit",o),H(t,"afterRender",r),H(t,"afterGetCenter",n),H(t,"hide",h),H(t,"show",h),H(t,"translate",a),H(s,"beforeRender",i),H(s,"beforeRedraw",i)}return t};class e{constructor(t){this.getColumn=S.prototype.getColumn,this.getRadii=S.prototype.getRadii,this.getRadius=S.prototype.getRadius,this.getPxExtremes=S.prototype.getPxExtremes,this.getZExtremes=S.prototype.getZExtremes,this.chart=t.chart,this.series=t,this.options=t.options.onPoint}drawConnector(){this.connector||(this.connector=this.series.chart.renderer.path().addClass("highcharts-connector-seriesonpoint").attr({zIndex:-1}).add(this.series.markerGroup));let t=this.getConnectorAttributes();t&&this.connector.animate(t)}getConnectorAttributes(){let t=this.series.chart,e=this.options;if(!e)return;let s=e.connectorOptions||{},i=e.position,o=t.get(e.id);if(!(o instanceof w())||!i||!v(o.plotX)||!v(o.plotY))return;let r=v(i.x)?i.x:o.plotX,n=v(i.y)?i.y:o.plotY,h=r+(i.offsetX||0),a=n+(i.offsetY||0),l=s.width||1,c=s.stroke||this.series.color,p=s.dashstyle,d={d:R().prototype.crispLine([["M",r,n],["L",h,a]],l),"stroke-width":l};return t.styledMode||(d.stroke=c,d.dashstyle=p),d}seriesAfterInit(){this.onPointSupported&&this.options.onPoint&&(this.bubblePadding=!0,this.useMapGeometry=!0,this.onPoint=new e(this))}seriesAfterRender(){delete this.chart.bubbleZExtremes,this.onPoint&&this.onPoint.drawConnector()}seriesGetCenter(t){let e=this.options.onPoint,s=t.positions;if(e){let t=this.chart.get(e.id);t instanceof w()&&v(t.plotX)&&v(t.plotY)&&(s[0]=t.plotX,s[1]=t.plotY);let i=e.position;i&&(v(i.x)&&(s[0]=i.x),v(i.y)&&(s[1]=i.y),i.offsetX&&(s[0]+=i.offsetX),i.offsetY&&(s[1]+=i.offsetY))}let i=this.radii&&this.radii[this.index];G(i)&&(s[2]=2*i),t.positions=s}seriesShowOrHide(){let t=this.chart.series;this.points?.forEach(e=>{let s=_(t,t=>{let s=((t.onPoint||{}).options||{}).id;return!!s&&s===e.id});s&&s.setVisible(!s.visible,!1)})}seriesTranslate(){this.onPoint&&(this.onPoint.getRadii(),this.radii=this.onPoint.radii)}chartGetZData(){let t=[];this.series.forEach(e=>{let s=e.options.onPoint;t.push(s?.z??null)});let e=new m({columns:{z:t}});this.series.forEach(t=>{t.onPoint&&(t.onPoint.dataTable=t.dataTable=e)})}}t.Additions=e}(r||(r={}));let O=r,j=p();O.compose(j.Series,j.Chart);let T=p();return l.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer):"function"==typeof define&&define.amd?define("highcharts/modules/series-on-point",["highcharts/highcharts"],function(t){return e(t,t.Point,t.Series,t.SeriesRegistry,t.SVGRenderer)}):"object"==typeof exports?exports["highcharts/modules/series-on-point"]=e(t._Highcharts,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer):t.Highcharts=e(t.Highcharts,t.Highcharts.Point,t.Highcharts.Series,t.Highcharts.SeriesRegistry,t.Highcharts.SVGRenderer)}("undefined"==typeof window?this:window,(t,e,s,i,o)=>(()=>{"use strict";var r,n={260:t=>{t.exports=e},540:t=>{t.exports=o},820:t=>{t.exports=s},512:t=>{t.exports=i},944:e=>{e.exports=t}},h={};function a(t){var e=h[t];if(void 0!==e)return e.exports;var s=h[t]={exports:{}};return n[t](s,s.exports,a),s.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var s in e)a.o(e,s)&&!a.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};a.d(l,{default:()=>T});var c=a(944),p=a.n(c);let{fireEvent:d,isArray:u,objectEach:f,uniqueKey:g}=p(),m=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||g(),this.modified=this,this.rowCount=0,this.versionTag=g();let e=0;f(t.columns||{},(t,s)=>{this.columns[s]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,f(this.columns,e=>{u(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],s=0,i){this.setColumns({[t]:e},s,i)}setColumns(t,e,s){let i=this.rowCount;f(t,(t,e)=>{this.columns[e]=t.slice(),i=t.length}),this.applyRowCount(i),s?.silent||(d(this,"afterSetColumns"),this.versionTag=g())}setRow(t,e=this.rowCount,s,i){let{columns:o}=this,r=s?this.rowCount+1:e+1;f(t,(t,n)=>{let h=o[n]||i?.addColumns!==!1&&Array(r);h&&(s?h.splice(e,0,t):h[e]=t,o[n]=h)}),r>this.rowCount&&this.applyRowCount(r),i?.silent||(d(this,"afterSetRows"),this.versionTag=g())}};var y=a(260),w=a.n(y);a(820);var x=a(512),C=a.n(x),P=a(540),R=a.n(P);let{composed:b}=p(),{bubble:S}=C().seriesTypes,{addEvent:H,defined:v,find:_,isNumber:G,pushUnique:E}=p();!function(t){t.compose=function(t,s){if(E(b,"SeriesOnPoint")){let{chartGetZData:i,seriesAfterInit:o,seriesAfterRender:r,seriesGetCenter:n,seriesShowOrHide:h,seriesTranslate:a}=e.prototype;t.types.pie.prototype.onPointSupported=!0,H(t,"afterInit",o),H(t,"afterRender",r),H(t,"afterGetCenter",n),H(t,"hide",h),H(t,"show",h),H(t,"translate",a),H(s,"beforeRender",i),H(s,"beforeRedraw",i)}return t};class e{constructor(t){this.getColumn=S.prototype.getColumn,this.getRadii=S.prototype.getRadii,this.getRadius=S.prototype.getRadius,this.getPxExtremes=S.prototype.getPxExtremes,this.getZExtremes=S.prototype.getZExtremes,this.chart=t.chart,this.series=t,this.options=t.options.onPoint}drawConnector(){this.connector||(this.connector=this.series.chart.renderer.path().addClass("highcharts-connector-seriesonpoint").attr({zIndex:-1}).add(this.series.markerGroup));let t=this.getConnectorAttributes();t&&this.connector.animate(t)}getConnectorAttributes(){let t=this.series.chart,e=this.options;if(!e)return;let s=e.connectorOptions||{},i=e.position,o=t.get(e.id);if(!(o instanceof w())||!i||!v(o.plotX)||!v(o.plotY))return;let r=v(i.x)?i.x:o.plotX,n=v(i.y)?i.y:o.plotY,h=r+(i.offsetX||0),a=n+(i.offsetY||0),l=s.width||1,c=s.stroke||this.series.color,p=s.dashstyle,d={d:R().prototype.crispLine([["M",r,n],["L",h,a]],l),"stroke-width":l};return t.styledMode||(d.stroke=c,d.dashstyle=p),d}seriesAfterInit(){this.onPointSupported&&this.options.onPoint&&(this.bubblePadding=!0,this.useMapGeometry=!0,this.onPoint=new e(this))}seriesAfterRender(){delete this.chart.bubbleZExtremes,this.onPoint&&this.onPoint.drawConnector()}seriesGetCenter(t){let e=this.options.onPoint,s=t.positions;if(e){let t=this.chart.get(e.id);t instanceof w()&&v(t.plotX)&&v(t.plotY)&&(s[0]=t.plotX,s[1]=t.plotY);let i=e.position;i&&(v(i.x)&&(s[0]=i.x),v(i.y)&&(s[1]=i.y),i.offsetX&&(s[0]+=i.offsetX),i.offsetY&&(s[1]+=i.offsetY))}let i=this.radii&&this.radii[this.index];G(i)&&(s[2]=2*i),t.positions=s}seriesShowOrHide(){let t=this.chart.series;this.points?.forEach(e=>{let s=_(t,t=>{let s=((t.onPoint||{}).options||{}).id;return!!s&&s===e.id});s&&s.setVisible(!s.visible,!1)})}seriesTranslate(){this.onPoint&&(this.onPoint.getRadii(),this.radii=this.onPoint.radii)}chartGetZData(){let t=[];this.series.forEach(e=>{let s=e.options.onPoint;t.push(s?.z??null)});let e=new m({columns:{z:t}});this.series.forEach(t=>{t.onPoint&&(t.onPoint.dataTable=t.dataTable=e)})}}t.Additions=e}(r||(r={}));let O=r,j=p();O.compose(j.Series,j.Chart);let T=p();return l.default})()); \ No newline at end of file diff --git a/modules/series-on-point.src.js b/modules/series-on-point.src.js index 290a7ca5d8..17f7de7785 100644 --- a/modules/series-on-point.src.js +++ b/modules/series-on-point.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/series-on-point * @requires highcharts * diff --git a/modules/solid-gauge.js b/modules/solid-gauge.js index c00c964755..5875ca04ef 100644 --- a/modules/solid-gauge.js +++ b/modules/solid-gauge.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/solid-gauge * @requires highcharts * @requires highcharts/highcharts-more @@ -9,4 +9,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/solid-gauge",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Color)}):"object"==typeof exports?exports["highcharts/modules/solid-gauge"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,o)=>(()=>{"use strict";var s,r={620:t=>{t.exports=o},512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function a(t){var e=i[t];if(void 0!==e)return e.exports;var o=i[t]={exports:{}};return r[t](o,o.exports,a),o.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var o in e)a.o(e,o)&&!a.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};a.d(n,{default:()=>D});var l=a(944),d=/*#__PURE__*/a.n(l);let{defaultOptions:h}=d(),{noop:c}=d(),{addEvent:g,extend:p,isObject:u,merge:f,relativeLength:m}=d(),y={radius:0,scope:"stack",where:void 0},x={optionsToObject:function(t,e){return u(t)||(t={radius:t||0}),f(y,e,t)}};var C=a(512),R=/*#__PURE__*/a.n(C),v=a(620);let{parse:b}=/*#__PURE__*/a.n(v)(),{merge:A}=d();!function(t){t.initDataClasses=function(t){let e=this.chart,o=this.legendItem=this.legendItem||{},s=this.options,r=t.dataClasses||[],i,a,n=e.options.chart.colorCount,l=0,d;this.dataClasses=a=[],o.labels=[];for(let t=0,o=r.length;t=s)&&(void 0===r||t<=r)){i=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(o=this.normalizedValue(t),n=d.length;n--&&!(o>d[n][0]););s=d[n]||d[n+1],o=1-((r=d[n+1]||s)[0]-o)/(r[0]-s[0]||1),i=s.color.tweenTo(r.color,o)}return i}}(s||(s={}));let w=s,{extend:M}=d(),H={init:function(t){M(t,w)}},{gauge:j,pie:I}=R().seriesTypes,{clamp:_,extend:O,isNumber:P,merge:S,pick:k,pInt:T}=d();class z extends j{translate(){let t=this.yAxis;H.init(t),!t.dataClasses&&t.options.dataClasses&&t.initDataClasses(t.options),t.initStops(),j.prototype.translate.call(this)}drawPoints(){let t;let e=this.yAxis,o=e.center,s=this.options,r=this.chart.renderer,i=s.overshoot,a=s.rounded&&void 0===s.borderRadius,n=P(i)?i/180*Math.PI:0;for(let i of(P(s.threshold)&&(t=e.startAngleRad+e.translate(s.threshold,void 0,void 0,void 0,!0)),this.thresholdAngleRad=k(t,e.startAngleRad),this.points))if(!i.isNull){let t=T(k(i.options.radius,s.radius,100))*o[2]/200,l=T(k(i.options.innerRadius,s.innerRadius,60))*o[2]/200,d=Math.min(e.startAngleRad,e.endAngleRad),h=Math.max(e.startAngleRad,e.endAngleRad),c=i.graphic,g=e.startAngleRad+e.translate(i.y,void 0,void 0,void 0,!0),p,u,f=e.toColor(i.y,i);"none"===f&&(f=i.color||this.color||"none"),"none"!==f&&(i.color=f),g=_(g,d-n,h+n),!1===s.wrap&&(g=_(g,d,h));let m=a?(t-l)/2/t:0,y=Math.min(g,this.thresholdAngleRad)-m,C=Math.max(g,this.thresholdAngleRad)+m;C-y>2*Math.PI&&(C=y+2*Math.PI);let R=a?"50%":0;s.borderRadius&&(R=x.optionsToObject(s.borderRadius).radius),i.shapeArgs=p={x:o[0],y:o[1],r:t,innerR:l,start:y,end:C,borderRadius:R},i.startR=t,c?(u=p.d,c.animate(O({fill:f},p)),u&&(p.d=u)):i.graphic=c=r.arc(p).attr({fill:f,"sweep-flag":0}).add(this.group),this.chart.styledMode||("square"!==s.linecap&&c.attr({"stroke-linecap":"round","stroke-linejoin":"round"}),c.attr({stroke:s.borderColor||"none","stroke-width":s.borderWidth||0})),c&&c.addClass(i.getClassName(),!0)}}animate(t){t||(this.startAngleRad=this.thresholdAngleRad,I.prototype.animate.call(this,t))}}z.defaultOptions=S(j.defaultOptions,{colorByPoint:!0,dataLabels:{y:0}}),R().registerSeriesType("solidgauge",z);let D=d();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/solid-gauge",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Color)}):"object"==typeof exports?exports["highcharts/modules/solid-gauge"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,o)=>(()=>{"use strict";var s,r={620:t=>{t.exports=o},512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function a(t){var e=i[t];if(void 0!==e)return e.exports;var o=i[t]={exports:{}};return r[t](o,o.exports,a),o.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var o in e)a.o(e,o)&&!a.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};a.d(n,{default:()=>D});var l=a(944),d=a.n(l);let{defaultOptions:h}=d(),{noop:c}=d(),{addEvent:g,extend:p,isObject:u,merge:f,relativeLength:m}=d(),y={radius:0,scope:"stack",where:void 0},x={optionsToObject:function(t,e){return u(t)||(t={radius:t||0}),f(y,e,t)}};var C=a(512),R=a.n(C),v=a(620);let{parse:b}=a.n(v)(),{merge:A}=d();!function(t){t.initDataClasses=function(t){let e=this.chart,o=this.legendItem=this.legendItem||{},s=this.options,r=t.dataClasses||[],i,a,n=e.options.chart.colorCount,l=0,d;this.dataClasses=a=[],o.labels=[];for(let t=0,o=r.length;t=s)&&(void 0===r||t<=r)){i=a.color,e&&(e.dataClass=n,e.colorIndex=a.colorIndex);break}}else{for(o=this.normalizedValue(t),n=d.length;n--&&!(o>d[n][0]););s=d[n]||d[n+1],o=1-((r=d[n+1]||s)[0]-o)/(r[0]-s[0]||1),i=s.color.tweenTo(r.color,o)}return i}}(s||(s={}));let w=s,{extend:M}=d(),H={init:function(t){M(t,w)}},{gauge:j,pie:I}=R().seriesTypes,{clamp:_,extend:O,isNumber:P,merge:S,pick:k,pInt:T}=d();class z extends j{translate(){let t=this.yAxis;H.init(t),!t.dataClasses&&t.options.dataClasses&&t.initDataClasses(t.options),t.initStops(),j.prototype.translate.call(this)}drawPoints(){let t;let e=this.yAxis,o=e.center,s=this.options,r=this.chart.renderer,i=s.overshoot,a=s.rounded&&void 0===s.borderRadius,n=P(i)?i/180*Math.PI:0;for(let i of(P(s.threshold)&&(t=e.startAngleRad+e.translate(s.threshold,void 0,void 0,void 0,!0)),this.thresholdAngleRad=k(t,e.startAngleRad),this.points))if(!i.isNull){let t=T(k(i.options.radius,s.radius,100))*o[2]/200,l=T(k(i.options.innerRadius,s.innerRadius,60))*o[2]/200,d=Math.min(e.startAngleRad,e.endAngleRad),h=Math.max(e.startAngleRad,e.endAngleRad),c=i.graphic,g=e.startAngleRad+e.translate(i.y,void 0,void 0,void 0,!0),p,u,f=e.toColor(i.y,i);"none"===f&&(f=i.color||this.color||"none"),"none"!==f&&(i.color=f),g=_(g,d-n,h+n),!1===s.wrap&&(g=_(g,d,h));let m=a?(t-l)/2/t:0,y=Math.min(g,this.thresholdAngleRad)-m,C=Math.max(g,this.thresholdAngleRad)+m;C-y>2*Math.PI&&(C=y+2*Math.PI);let R=a?"50%":0;s.borderRadius&&(R=x.optionsToObject(s.borderRadius).radius),i.shapeArgs=p={x:o[0],y:o[1],r:t,innerR:l,start:y,end:C,borderRadius:R},i.startR=t,c?(u=p.d,c.animate(O({fill:f},p)),u&&(p.d=u)):i.graphic=c=r.arc(p).attr({fill:f,"sweep-flag":0}).add(this.group),this.chart.styledMode||("square"!==s.linecap&&c.attr({"stroke-linecap":"round","stroke-linejoin":"round"}),c.attr({stroke:s.borderColor||"none","stroke-width":s.borderWidth||0})),c&&c.addClass(i.getClassName(),!0)}}animate(t){t||(this.startAngleRad=this.thresholdAngleRad,I.prototype.animate.call(this,t))}}z.defaultOptions=S(j.defaultOptions,{colorByPoint:!0,dataLabels:{y:0}}),R().registerSeriesType("solidgauge",z);let D=d();return n.default})()); \ No newline at end of file diff --git a/modules/solid-gauge.src.js b/modules/solid-gauge.src.js index 18daea62a8..5683e27b5d 100644 --- a/modules/solid-gauge.src.js +++ b/modules/solid-gauge.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/solid-gauge * @requires highcharts * @requires highcharts/highcharts-more diff --git a/modules/sonification.js b/modules/sonification.js index 77c6a68521..06aa01a8fb 100644 --- a/modules/sonification.js +++ b/modules/sonification.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/sonification * @requires highcharts * @@ -9,4 +9,4 @@ * Author: Øystein Moseng * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Templating):"function"==typeof define&&define.amd?define("highcharts/modules/sonification",["highcharts/highcharts"],function(e){return t(e,e.Templating)}):"object"==typeof exports?exports["highcharts/modules/sonification"]=t(e._Highcharts,e._Highcharts.Templating):e.Highcharts=t(e.Highcharts,e.Highcharts.Templating)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var i={984:e=>{e.exports=t},944:t=>{t.exports=e}},n={};function s(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return i[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>eT});var a=s(944),l=/*#__PURE__*/s.n(a);let{clamp:r,defined:h,pick:c}=l();function u(e,t){return(.2414*e-.2414)*Math.log(t)+(3.5-1.7*e)/1.8}function p(e,t,i){e.gain.cancelScheduledValues(t),e.gain.setTargetAtTime(i,t,y.stopRampTime/4),e.gain.setValueAtTime(i,t+y.stopRampTime)}function m(e,t,i,n,s=1){let o="attack"===t,a=n.gain;if(a.cancelScheduledValues(i),!e.length){p(n,i,o?s:0);return}e[0].t>1&&e.unshift({t:0,vol:o?0:1}),e.forEach((t,n)=>{let o=e[n-1],l=o?(t.t-o.t)/1e3:0,r=i+(o?o.t/1e3+y.stopRampTime:0);a.setTargetAtTime(t.vol*s,r,Math.max(l,y.stopRampTime)/2)})}class d{constructor(e,t){this.pulseWidth=Math.min(Math.max(0,t.pulseWidth||.5));let i=()=>new OscillatorNode(e,{type:"sawtooth",detune:t.detune,frequency:Math.max(1,t.frequency||350)});this.sawOscA=i(),this.sawOscB=i(),this.phaseInverter=new GainNode(e,{gain:-1}),this.masterGain=new GainNode(e),this.delayNode=new DelayNode(e,{delayTime:this.pulseWidth/this.sawOscA.frequency.value}),this.sawOscA.connect(this.masterGain),this.sawOscB.connect(this.phaseInverter),this.phaseInverter.connect(this.delayNode),this.delayNode.connect(this.masterGain)}connect(e){this.masterGain.connect(e)}getFrequencyFacade(){let e=this;return{cancelScheduledValues:t=>(e.sawOscA.frequency.cancelScheduledValues(t),e.sawOscB.frequency.cancelScheduledValues(t),e.delayNode.delayTime.cancelScheduledValues(t),e.sawOscA.frequency),setValueAtTime(t,i){return this.cancelScheduledValues(i),e.sawOscA.frequency.setValueAtTime(t,i),e.sawOscB.frequency.setValueAtTime(t,i),e.delayNode.delayTime.setValueAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i),e.sawOscA.frequency},setTargetAtTime(t,i,n){return this.cancelScheduledValues(i),e.sawOscA.frequency.setTargetAtTime(t,i,n),e.sawOscB.frequency.setTargetAtTime(t,i,n),e.delayNode.delayTime.setTargetAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i,n),e.sawOscA.frequency}}}getPWMTarget(){return this.delayNode.delayTime}start(){this.sawOscA.start(),this.sawOscB.start()}stop(e){this.sawOscA.stop(e),this.sawOscB.stop(e)}}class f{constructor(e,t,i){this.audioContext=e,this.options=t,this.fmOscillatorIx=t.fmOscillator,this.vmOscillatorIx=t.vmOscillator,this.createSoundSource(),this.createGain(),this.createFilters(),this.createVolTracking(),i&&this.connect(i)}connect(e){[this.lowpassNode,this.highpassNode,this.volTrackingNode,this.vmNode,this.gainNode,this.whiteNoise,this.pulseNode,this.oscNode].reduce((e,t)=>t?(t.connect(e),t):e,e)}start(){this.oscNode&&this.oscNode.start(),this.whiteNoise&&this.whiteNoise.start(),this.pulseNode&&this.pulseNode.start()}stopAtTime(e){this.oscNode&&this.oscNode.stop(e),this.whiteNoise&&this.whiteNoise.stop(e),this.pulseNode&&this.pulseNode.stop(e)}setFreqAtTime(e,t,i=0){let n=this.options,s=r(c(n.fixedFrequency,t)*(n.freqMultiplier||1),0,21e3),o=this.getOscTarget(),a=i/5e3;o&&(o.cancelScheduledValues(e),i&&e-(this.lastUpdateTime||-1)>.01?(o.setTargetAtTime(s,e,a),o.setValueAtTime(s,e+a)):o.setValueAtTime(s,e)),this.scheduleVolTrackingChange(s,e,i),this.scheduleFilterTrackingChange(s,e,i),this.lastUpdateTime=e}getFMTarget(){return this.oscNode&&this.oscNode.detune||this.whiteNoise&&this.whiteNoise.detune||this.pulseNode&&this.pulseNode.getPWMTarget()}getVMTarget(){return this.vmNode&&this.vmNode.gain}runEnvelopeAtTime(e,t){this.gainNode&&m(("attack"===e?this.options.attackEnvelope:this.options.releaseEnvelope)||[],e,t,this.gainNode,this.options.volume)}cancelScheduled(){this.gainNode&&this.gainNode.gain.cancelScheduledValues(this.audioContext.currentTime);let e=this.getOscTarget();e&&e.cancelScheduledValues(0),this.lowpassNode&&this.lowpassNode.frequency.cancelScheduledValues(0),this.highpassNode&&this.highpassNode.frequency.cancelScheduledValues(0),this.volTrackingNode&&this.volTrackingNode.gain.cancelScheduledValues(0)}scheduleVolTrackingChange(e,t,i){if(this.volTrackingNode){let n=u(this.options.volumePitchTrackingMultiplier||1,e),s=i?i/1e3:y.stopRampTime;this.volTrackingNode.gain.cancelScheduledValues(t),this.volTrackingNode.gain.setTargetAtTime(n,t,s/5),this.volTrackingNode.gain.setValueAtTime(n,t+s)}}scheduleFilterTrackingChange(e,t,i){let n=this.options,s=i?i/1e3:y.stopRampTime,o=(i,n)=>{let o=u(n.frequencyPitchTrackingMultiplier||1,e),a=r((n.frequency||1e3)*o,0,21e3);i.frequency.cancelScheduledValues(t),i.frequency.setTargetAtTime(a,t,s/5),i.frequency.setValueAtTime(a,t+s)};this.lowpassNode&&n.lowpass&&o(this.lowpassNode,n.lowpass),this.highpassNode&&n.highpass&&o(this.highpassNode,n.highpass)}createGain(){let e=this.options;(h(e.volume)||e.attackEnvelope&&e.attackEnvelope.length||e.releaseEnvelope&&e.releaseEnvelope.length)&&(this.gainNode=new GainNode(this.audioContext,{gain:c(e.volume,1)})),this.vmNode=new GainNode(this.audioContext)}createSoundSource(){let e=this.options,t=this.audioContext,i=(e.fixedFrequency||0)*(e.freqMultiplier||1);if("whitenoise"===e.type){let e=2*t.sampleRate,i=t.createBuffer(1,e,t.sampleRate),n=i.getChannelData(0);for(let t=0;tnew f(e,t,h(t.fmOscillator)||h(t.vmOscillator)?void 0:i)),this.oscillators.forEach(e=>{let t=(t,i)=>{if(i){let n=i[t]();n&&e.connect(n)}};h(e.fmOscillatorIx)&&t("getFMTarget",this.oscillators[e.fmOscillatorIx]),h(e.vmOscillatorIx)&&t("getVMTarget",this.oscillators[e.vmOscillatorIx])})}startSilently(){this.outputNode.gain.value=0,this.oscillators.forEach(e=>e.start())}stop(){let e=this.audioContext.currentTime,t=e+y.stopRampTime;p(this.outputNode,e,0),this.oscillators.forEach(e=>e.stopAtTime(t)),this.outputNode.disconnect()}silenceAtTime(e){if(!e&&this.outputNode.gain.value<.01){this.outputNode.gain.value=0;return}this.releaseAtTime((e||0)+this.audioContext.currentTime)}mute(){this.cancelScheduled(),p(this.outputNode,this.audioContext.currentTime,0)}playFreqAtTime(e,t,i){let n=(e||0)+this.audioContext.currentTime,s=this.options;this.oscillators.forEach(e=>{e.setFreqAtTime(n,t,s.noteGlideDuration),e.runEnvelopeAtTime("attack",n)}),m(s.masterAttackEnvelope||[],"attack",n,this.outputNode,s.masterVolume),i&&this.releaseAtTime(n+i/1e3)}cancelScheduled(){this.outputNode.gain.cancelScheduledValues(this.audioContext.currentTime),this.oscillators.forEach(e=>e.cancelScheduled())}connect(e){return this.outputNode.connect(e)}createEqChain(e){this.eqNodes=(this.options.eq||[]).map(e=>new BiquadFilterNode(this.audioContext,{type:"peaking",...e})),this.eqNodes.reduceRight((e,t)=>(t.connect(e),t),e)}releaseAtTime(e){let t=0;this.oscillators.forEach(i=>{let n=i.options.releaseEnvelope;n&&n.length&&(t=Math.max(t,n[n.length-1].t),i.runEnvelopeAtTime("release",e))});let i=this.options.masterReleaseEnvelope||[];i.length&&(m(i,"release",e,this.outputNode,this.options.masterVolume),t=Math.max(t,i[i.length-1].t)),p(this.outputNode,e+t/1e3,0)}}y.stopRampTime=.012;let g={piano:{masterVolume:.45,masterAttackEnvelope:[{t:1,vol:.71},{t:40,vol:.79},{t:82,vol:.64},{t:147,vol:.29},{t:260,vol:.15},{t:417,vol:.05},{t:589,vol:0}],eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:6},{frequency:1300,gain:2},{frequency:2600,Q:.8,gain:8},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-23},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.5,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270},attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:282,vol:.64},{t:597,vol:0}]},{type:"whitenoise",volume:.8,lowpass:{frequency:400},highpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:19,vol:0}]}]},plucked:{masterVolume:.5,midiInstrument:25,masterAttackEnvelope:[{t:1,vol:.71},{t:4,vol:.71},{t:31,vol:.4},{t:109,vol:.12},{t:234,vol:.04},{t:442,vol:0}],eq:[{frequency:800,gain:-8},{frequency:1400,Q:4,gain:4},{frequency:1600,gain:-14},{frequency:2200,gain:-8},{frequency:3600,gain:-2},{frequency:6400,Q:2,gain:-6}],oscillators:[{type:"sawtooth",volume:.9,volumePitchTrackingMultiplier:.6,highpass:{frequency:100},lowpass:{frequency:8e3},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:550,vol:0}]}]},flute:{masterVolume:1.1,midiInstrument:74,noteGlideDuration:30,masterAttackEnvelope:[{t:0,vol:0},{t:29,vol:1},{t:76,vol:.48},{t:600,vol:.36}],masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-10},{frequency:500,gain:4},{frequency:1100,gain:-4},{frequency:2200,gain:-14},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.4,lowpass:{frequency:12,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"sine",fixedFrequency:5,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:48,vol:0},{t:225,vol:.05},{t:600,vol:.77}]},{type:"whitenoise",volume:.13,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:93,vol:.8}]}]},lead:{masterVolume:1,midiInstrument:20,masterAttackEnvelope:[{t:1,vol:.81},{t:98,vol:.5},{t:201,vol:.18},{t:377,vol:.04},{t:586,vol:0},{t:586,vol:0}],eq:[{frequency:200,gain:-6},{frequency:400,gain:-8},{frequency:800,Q:.5,gain:-10},{frequency:1200,gain:4},{frequency:3600,gain:-4},{frequency:4200,gain:-12},{frequency:7400,gain:-14},{frequency:1e4,gain:2}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.6,lowpass:{frequency:5e3},highpass:{frequency:100}},{type:"sawtooth",volume:.4,lowpass:{frequency:7e3},highpass:{frequency:800,Q:6},releaseEnvelope:[{t:0,vol:.99},{t:200,vol:.83},{t:495,vol:0}]}]},vibraphone:{masterVolume:1,midiInstrument:12,masterAttackEnvelope:[{t:1,vol:0},{t:10,vol:.63},{t:82,vol:.64},{t:149,vol:.26},{t:600,vol:0}],eq:[{frequency:200,Q:.8,gain:-12},{frequency:400,gain:-4},{frequency:1600,Q:.5,gain:6},{frequency:2200,Q:.5,gain:6},{frequency:6400,gain:4},{frequency:12800,gain:4}],oscillators:[{type:"sine",volume:1.5,volumePitchTrackingMultiplier:1e-7,attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:146,vol:.39},{t:597,vol:0}]},{type:"whitenoise",volume:.03,volumePitchTrackingMultiplier:1e-4,lowpass:{frequency:900},highpass:{frequency:800},attackEnvelope:[{t:1,vol:1},{t:9,vol:0}]},{type:"sine",freqMultiplier:4,volume:.15,volumePitchTrackingMultiplier:1e-4},{type:"sine",fixedFrequency:3,volume:6,fmOscillator:0,releaseEnvelope:[{t:1,vol:1},{t:190,vol:.41},{t:600,vol:0}]},{type:"sine",fixedFrequency:6,volume:3,fmOscillator:2},{type:"sine",freqMultiplier:9,volume:5e-4,volumePitchTrackingMultiplier:1e-4,releaseEnvelope:[{t:1,vol:.97},{t:530,vol:0}]}]},saxophone:{masterVolume:1,midiInstrument:67,noteGlideDuration:10,masterAttackEnvelope:[{t:1,vol:.57},{t:35,vol:1},{t:87,vol:.84},{t:111,vol:.6},{t:296,vol:.49},{t:600,vol:.58}],masterReleaseEnvelope:[{t:1,vol:.58},{t:47,vol:.16},{t:119,vol:0}],eq:[{frequency:200,gain:-2},{frequency:600,gain:2},{frequency:800,gain:-10},{frequency:1100,gain:-2},{frequency:2200,gain:-2},{frequency:3500,gain:10},{frequency:12800,gain:4}],oscillators:[{type:"sawtooth",volume:.45,volumePitchTrackingMultiplier:.06,lowpass:{frequency:18,frequencyPitchTrackingMultiplier:200},highpass:{frequency:300}},{type:"whitenoise",fixedFrequency:1,volume:.4,highpass:{frequency:7e3},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:51,vol:1},{t:86,vol:.84},{t:500,vol:.78}]},{type:"sine",fixedFrequency:4,volume:2,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:15,vol:.94},{t:79,vol:1},{t:172,vol:.47},{t:500,vol:.26}]},{type:"sine",fixedFrequency:7,volume:6,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:25,vol:.99},{t:85,vol:0},{t:85,vol:0},{t:387,vol:.02},{t:511,vol:.43},{t:600,vol:0}]}]},trumpet:{masterVolume:.3,midiInstrument:57,noteGlideDuration:40,masterAttackEnvelope:[{t:1,vol:0},{t:17,vol:1},{t:42,vol:.85},{t:76,vol:1},{t:202,vol:.65},{t:226,vol:.86},{t:282,vol:.63}],masterReleaseEnvelope:[{t:1,vol:.62},{t:34,vol:.14},{t:63,vol:.21},{t:96,vol:0}],eq:[{frequency:200,Q:.6,gain:10},{frequency:600,Q:.5,gain:6},{frequency:1500,Q:.7,gain:14},{frequency:3200,Q:2,gain:8},{frequency:3800,Q:.8,gain:10},{frequency:6200,gain:12},{frequency:8400,gain:-20},{frequency:12800,Q:.5,gain:-18}],oscillators:[{type:"sawtooth",volume:.15,pulseWidth:.5,volumePitchTrackingMultiplier:.5,lowpass:{frequency:1900,Q:3}},{type:"sine",fixedFrequency:6,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:102,vol:.13},{t:556,vol:.24}]},{type:"whitenoise",volume:.45,highpass:{frequency:7e3,Q:9},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:.51},{t:577,vol:.29}]},{type:"sine",fixedFrequency:5.7,volume:20,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:1},{t:137,vol:.46},{t:283,vol:.15},{t:600,vol:.28}]}]},sawsynth:{masterVolume:.3,midiInstrument:51,noteGlideDuration:40,masterAttackEnvelope:[{t:0,vol:.6},{t:9,vol:1},{t:102,vol:.48}],eq:[{frequency:200,gain:-6}],oscillators:[{type:"sawtooth",volume:.4,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:11,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:-11,volumePitchTrackingMultiplier:.3}]},basic1:{masterVolume:1,noteGlideDuration:0,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]}]},basic2:{masterVolume:.3,eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:2},{frequency:1300,gain:-2},{frequency:2600,Q:.8,gain:6},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-18},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.4,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270}}]},chord:{masterVolume:1,masterAttackEnvelope:[{t:1,vol:.79},{t:27,vol:.86},{t:62,vol:.81},{t:150,vol:.35},{t:408,vol:.04},{t:600,vol:0}],eq:[{frequency:200,gain:-8},{frequency:600,Q:2,gain:4},{frequency:800,gain:-10},{frequency:1600,gain:-2},{frequency:2200,gain:-6},{frequency:3600,Q:.7,gain:-2},{frequency:6400,gain:6},{frequency:12800,gain:6}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:8e3},highpass:{frequency:100},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:540,vol:0}]},{type:"triangle",freqMultiplier:1.17,volume:.4,volumePitchTrackingMultiplier:.07,lowpass:{frequency:5e3},highpass:{frequency:100},releaseEnvelope:[{t:0,vol:1},{t:476,vol:0}]},{type:"triangle",freqMultiplier:1.58333,volume:.7,volumePitchTrackingMultiplier:.02,highpass:{frequency:200},releaseEnvelope:[{t:0,vol:1},{t:422,vol:.56},{t:577,vol:0}]},{type:"sine",fixedFrequency:10,volume:4,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:157,vol:.65}]},{type:"sine",fixedFrequency:5,volume:.3,vmOscillator:2,attackEnvelope:[{t:1,vol:1},{t:155,vol:.91},{t:289,vol:.78}]}]},wobble:{masterVolume:.9,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:.9,volumePitchTrackingMultiplier:.1,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]},{type:"sine",freqMultiplier:.011,volume:30,fmOscillator:0}]},sine:{masterVolume:1,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},sineGlide:{masterVolume:1,noteGlideDuration:100,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},triangle:{masterVolume:.5,oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.07}]},sawtooth:{masterVolume:.25,midiInstrument:82,oscillators:[{type:"sawtooth",volume:.3,volumePitchTrackingMultiplier:.07}]},square:{masterVolume:.3,midiInstrument:81,oscillators:[{type:"square",volume:.2,volumePitchTrackingMultiplier:.07}]},chop:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:600},highpass:{frequency:200}}]},shaker:{masterVolume:.4,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:6500},highpass:{frequency:5e3}}]},step:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],eq:[{frequency:200,gain:-1},{frequency:400,gain:-14},{frequency:800,gain:8},{frequency:1e3,Q:5,gain:-24},{frequency:1600,gain:8},{frequency:2200,gain:-10},{frequency:5400,gain:4},{frequency:12800,gain:-36}],oscillators:[{type:"whitenoise",volume:1.5,lowpass:{frequency:300},highpass:{frequency:100,Q:6}}]},kick:{masterVolume:.55,masterAttackEnvelope:[{t:1,vol:.8},{t:15,vol:1},{t:45,vol:.35},{t:121,vol:.11},{t:242,vol:0}],eq:[{frequency:50,gain:6},{frequency:400,gain:-18},{frequency:1600,gain:18}],oscillators:[{type:"triangle",fixedFrequency:90,volume:1,lowpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:6,vol:1},{t:45,vol:.01}]},{type:"whitenoise",volume:.4,lowpass:{frequency:200},attackEnvelope:[{t:1,vol:1},{t:30,vol:0}]},{type:"triangle",freqMultiplier:.1,volume:1,lowpass:{frequency:200}}]},shortnote:{masterVolume:.8,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:15,vol:0}],eq:[{frequency:400,gain:-4},{frequency:800,gain:-12},{frequency:2400,gain:4},{frequency:7200,gain:-20},{frequency:1e3,Q:5,gain:-12},{frequency:5400,gain:-32},{frequency:12800,gain:-14}],oscillators:[{type:"sawtooth",volume:.6,lowpass:{frequency:1e3}},{type:"whitenoise",volume:.2,lowpass:{frequency:1e4},highpass:{frequency:7e3},attackEnvelope:[{t:1,vol:1},{t:10,vol:0}]},{type:"whitenoise",volume:1.3,lowpass:{frequency:700,Q:4},highpass:{frequency:250}}]},noise:{masterVolume:.3,midiInstrument:122,oscillators:[{type:"whitenoise"}]},filteredNoise:{masterVolume:.3,midiInstrument:122,eq:[{frequency:1600,gain:-8},{frequency:2200,gain:-4}],oscillators:[{type:"whitenoise",lowpass:{frequency:5,frequencyPitchTrackingMultiplier:1300,Q:6},highpass:{frequency:5,frequencyPitchTrackingMultiplier:300,Q:6}}]},wind:{masterVolume:.75,midiInstrument:122,noteGlideDuration:150,masterReleaseEnvelope:[{t:0,vol:1},{t:124,vol:.24},{t:281,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:100,frequencyPitchTrackingMultiplier:6,Q:23},highpass:{frequency:170,frequencyPitchTrackingMultiplier:6}},{type:"sine",freqMultiplier:.016,volume:1e3,fmOscillator:0}]}},{defined:v,extend:q}=l();class T{constructor(e,t,i){this.audioContext=e,this.curParams={},this.midiTrackName=i.midiTrackName,this.masterVolNode=new GainNode(e),this.masterVolNode.connect(t),this.volumeNode=new GainNode(e),this.createNodesFromCapabilities(q({pan:!0},i.capabilities||{})),this.connectCapabilityNodes(this.volumeNode,this.masterVolNode),this.synthPatch=new y(e,"string"==typeof i.synthPatch?g[i.synthPatch]:i.synthPatch),this.midiInstrument=this.synthPatch.midiInstrument||1,this.synthPatch.startSilently(),this.synthPatch.connect(this.volumeNode)}setMasterVolume(e){this.masterVolNode.gain.setTargetAtTime(e,0,T.rampTime)}scheduleEventAtTime(e,t){let i=q(this.curParams,t),n=v(t.frequency)?t.frequency:v(t.note)?T.musicalNoteToFrequency(t.note):220;v(n)&&this.synthPatch.playFreqAtTime(e,n,i.noteDuration),(v(i.tremoloDepth)||v(i.tremoloSpeed))&&this.setTremoloAtTime(e,i.tremoloDepth,i.tremoloSpeed),v(i.pan)&&this.setPanAtTime(e,i.pan),v(i.volume)&&this.setVolumeAtTime(e,i.volume),(v(i.lowpassFreq)||v(i.lowpassResonance))&&this.setFilterAtTime("lowpass",e,i.lowpassFreq,i.lowpassResonance),(v(i.highpassFreq)||v(i.highpassResonance))&&this.setFilterAtTime("highpass",e,i.highpassFreq,i.highpassResonance)}silenceAtTime(e){this.synthPatch.silenceAtTime(e)}cancel(){this.synthPatch.mute(),[this.tremoloDepth&&this.tremoloDepth.gain,this.tremoloOsc&&this.tremoloOsc.frequency,this.lowpassNode&&this.lowpassNode.frequency,this.lowpassNode&&this.lowpassNode.Q,this.highpassNode&&this.highpassNode.frequency,this.highpassNode&&this.highpassNode.Q,this.panNode&&this.panNode.pan,this.volumeNode.gain].forEach(e=>e&&e.cancelScheduledValues(0))}destroy(){this.cancel(),this.synthPatch.stop(),this.tremoloOsc&&this.tremoloOsc.stop(),[this.tremoloDepth,this.tremoloOsc,this.lowpassNode,this.highpassNode,this.panNode,this.volumeNode,this.masterVolNode].forEach(e=>e&&e.disconnect())}setPanAtTime(e,t){this.panNode&&this.panNode.pan.setTargetAtTime(t,e+this.audioContext.currentTime,T.rampTime)}setFilterAtTime(e,t,i,n){let s=this[e+"Node"],o=this.audioContext.currentTime+t;s&&(v(n)&&s.Q.setTargetAtTime(n,o,T.rampTime),v(i)&&s.frequency.setTargetAtTime(i,o,T.rampTime))}setVolumeAtTime(e,t){this.volumeNode&&this.volumeNode.gain.setTargetAtTime(t,e+this.audioContext.currentTime,T.rampTime)}setTremoloAtTime(e,t,i){let n=this.audioContext.currentTime+e;this.tremoloDepth&&v(t)&&this.tremoloDepth.gain.setTargetAtTime(t,n,T.rampTime),this.tremoloOsc&&v(i)&&this.tremoloOsc.frequency.setTargetAtTime(15*i,n,T.rampTime)}createNodesFromCapabilities(e){let t=this.audioContext;e.pan&&(this.panNode=new StereoPannerNode(t)),e.tremolo&&(this.tremoloOsc=new OscillatorNode(t,{type:"sine",frequency:3}),this.tremoloDepth=new GainNode(t),this.tremoloOsc.connect(this.tremoloDepth),this.tremoloDepth.connect(this.masterVolNode.gain),this.tremoloOsc.start()),e.filters&&(this.lowpassNode=new BiquadFilterNode(t,{type:"lowpass",frequency:2e4}),this.highpassNode=new BiquadFilterNode(t,{type:"highpass",frequency:0}))}connectCapabilityNodes(e,t){[this.panNode,this.lowpassNode,this.highpassNode,e].reduce((e,t)=>t?(t.connect(e),t):e,t)}static noteStringToC0Distance(e){let t=e.match(/^([a-g][#b]?)([0-8])$/i),i=t?t[1]:"a",n=i[0].toLowerCase(),s=i[1];return(({c:0,d:2,e:4,f:5,g:7,a:9,b:11})[n]||0)+("#"===s?1:"b"===s?-1:0)+12*(t?parseInt(t[2],10):4)}static musicalNoteToFrequency(e){return 16.3516*Math.pow(2,Math.min("string"==typeof e?this.noteStringToC0Distance(e):e,107)/12)}}T.rampTime=y.stopRampTime/4;let{pick:w}=l(),x=class{constructor(e){this.options=e,this.masterVolume=1,this.synthesis=window.speechSynthesis,void 0!==speechSynthesis.onvoiceschanged&&(speechSynthesis.onvoiceschanged=this.setVoice.bind(this)),this.setVoice(),this.scheduled=[]}say(e,t){if(this.synthesis){this.synthesis.cancel();let i=new SpeechSynthesisUtterance(e);this.voice&&(i.voice=this.voice),i.rate=t&&t.rate||this.options.rate||1,i.pitch=t&&t.pitch||this.options.pitch||1,i.volume=w(t&&t.volume,this.options.volume,1)*this.masterVolume,this.synthesis.speak(i)}}sayAtTime(e,t,i){this.scheduled.push(setTimeout(this.say.bind(this,t,i),e))}cancel(){this.scheduled.forEach(clearTimeout),this.scheduled=[],this.synthesis.cancel()}destroy(){this.cancel()}setMasterVolume(e){this.masterVolume=e}setVoice(){if(this.synthesis){let e;let t=this.options.name,i=this.options.language||"en-US",n=this.synthesis.getVoices(),s=n.length;for(let o=0;oe.time;);this.events.splice(t+1,0,e)}else this.events.push(e);return e}mute(){this.muted=!0}unmute(){this.muted=!1}cancel(){this.engine.cancel()}destroy(){this.engine.destroy()}},{pick:k}=l(),P=e=>Math.round(12*Math.log(e)/Math.LN2-48.37632),M=(e,t)=>t>>>8*e&255,E=e=>[77,84,104,100,0,0,0,6,0,e>1?1:0,M(1,e),M(0,e),1,244],b=[0,255,81,3,7,161,32],A=e=>{let t=127&e,i=[];for(;e>>=7;)t<<=8,t|=127&e|128;for(;;)if(i.push(255&t),128&t)t>>=8;else break;return i},C=e=>{let t,i;let n=[],s=e=>{let t=n.length;for(;t--&&n[t].timeMS>e.timeMS;);n.splice(t+1,0,e)};return e.forEach(e=>{let n=e.instrumentEventOptions||{},o=e.time,a=i=k(n.noteDuration,i),l=a&&e.time+a,r=[{valMap:e=>64+63*e&127,data:{10:n.pan,92:n.tremoloDepth,93:n.tremoloSpeed}},{valMap:e=>127*e/2e4&127,data:{74:n.lowpassFreq,75:n.highpassFreq}},{valMap:e=>63*Math.min(18,Math.max(-18,e))/18+63&127,data:{71:n.lowpassResonance,76:n.highpassResonance}}],h=t=void 0===n.volume?k(t,127):127*n.volume&127,c=n.frequency,u=n.note||0,p=12+(c?P(c):"string"==typeof u?T.noteStringToC0Distance(u):u)&127;r.forEach(e=>Object.keys(e.data).forEach(t=>{let i=e.data[t];void 0!==i&&s({timeMS:o,type:"CTRL_CHG",data:[176,parseInt(t,10),e.valMap(i)]})})),l&&(s({timeMS:o,type:"NON",data:[144,p,h]}),s({timeMS:l,type:"NOF",data:[128,p,h]}))}),n},S=(e,t)=>{let i=[];if(t&&i.push(0,192,127&t),e){let t=[];for(let i=0;i{let s=0,o=S(i,n),a=C(e).reduce((e,t)=>{let i=A(t.timeMS-s);return s=t.timeMS,e.concat(i,t.data)},[]),l=[0,255,47,0],r=(t?b.length:0)+o.length+a.length+l.length;return[77,84,114,107,M(3,r),M(2,r),M(1,r),M(0,r)].concat(t?b:[],o,a,l)},V=function(e){let t=e.filter(e=>!!e.events.length),i=t.length,n=i>1;return new Uint8Array(E(n?i+1:i).concat(n?O([],!0):[],t.reduce((e,t)=>{let i=t.engine;return e.concat(O(t.events,!n,i.midiTrackName,i.midiInstrument))},[])))},{isSafari:I,win:F,win:{document:D}}=l(),Q=F.URL||F.webkitURL||F;function R(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&F.atob&&F.ArrayBuffer&&F.Uint8Array&&F.Blob&&Q.createObjectURL){let e=F.atob(t[3]),i=new F.ArrayBuffer(e.length),n=new F.Uint8Array(i);for(let t=0;t1e3)throw Error("Input too long");let s=/Edge\/\d+/.test(i.userAgent);if((I&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||s||e.length>2e6)&&!(e=R(e)||""))throw Error("Failed to convert to blob");if(void 0!==n.download)n.href=e,n.download=t,D.body.appendChild(n),n.click(),D.body.removeChild(n);else try{if(!F.open(e,"chart"))throw Error("Failed to open window")}catch{F.location.href=e}}},{defined:G,find:j,merge:U}=l(),L=class{constructor(e,t){this.chart=t,this.isPaused=!1,this.isPlaying=!1,this.channels=[],this.scheduledCallbacks=[],this.playTimestamp=0,this.resumeFromTime=0,this.options=e||{}}addChannel(e,t,i=!1,n){if("instrument"===e&&!t.scheduleEventAtTime||"speech"===e&&!t.sayAtTime)throw Error("Highcharts Sonification: Invalid channel engine.");let s=new N(e,t,i,n);return this.channels.push(s),s}play(e,t=!0,i=!0,n){this.isPlaying?this.cancel():this.clearScheduledCallbacks(),this.onEndArgument=n,this.playTimestamp=Date.now(),this.resumeFromTime=0,this.isPaused=!1,this.isPlaying=!0;let s=this.options.skipThreshold||2,o=this.options.onPlay,a=this.options.showTooltip,l=this.options.showCrosshair,r=e?function(e,t){let i=t.map(t=>(t.cancel(),{channel:t,filteredEvents:t.muted?[]:t.events.filter(e)})),n=i.reduce((e,t)=>Math.min(e,t.filteredEvents.length?t.filteredEvents[0].time:1/0),1/0);return i.map(e=>new N(e.channel.type,e.channel.engine,e.channel.showPlayMarker,e.filteredEvents.map(e=>U(e,{time:e.time-n})),e.channel.muted))}(e,this.playingChannels||this.channels):this.channels,h=e=>Object.keys(e.speechOptions||{}).concat(Object.keys(e.instrumentEventOptions||{})).join(),c=[];t&&(this.playingChannels=r),o&&o({chart:this.chart,timeline:this});let u=0;r.forEach(e=>{if(e.muted)return;let t=e.events.length,i=-1/0,n=-1/0,o="";u=Math.max(e.events[t-1]&&e.events[t-1].time||0,u);for(let r=0;r50||r===t-1);m&&c.push(m),f&&(this.scheduledCallbacks.push(setTimeout(()=>{if(u.callback&&u.callback(),m){if(l){let e=m.series;e&&e.xAxis&&e.xAxis.crosshair&&e.xAxis.drawCrosshair(void 0,m),e&&e.yAxis&&e.yAxis.crosshair&&e.yAxis.drawCrosshair(void 0,m)}a&&!(d&&d.hoverPoints&&d.hoverPoints.length>1&&j(d.hoverPoints,e=>e===m)&&m.onMouseOver)&&m.onMouseOver()}},u.time)),i=u.time)}});let p=this.options.onEnd,m=this.options.onStop;this.scheduledCallbacks.push(setTimeout(()=>{let e=this.chart,t={chart:e,timeline:this,pointsPlayed:c};this.isPlaying=!1,i&&this.resetPlayState(),m&&m(t),p&&p(t),n&&n(t),e&&(e.tooltip&&e.tooltip.hide(0),e.hoverSeries&&e.hoverSeries.onMouseOut(),e.axes.forEach(e=>e.hideCrosshair()))},u+250)),this.resumeFromTime=t?u:this.getLength()}pause(){return this.isPaused=!0,this.cancel(),this.resumeFromTime=Date.now()-this.playTimestamp-10,this.resumeFromTime}getCurrentTime(){return this.isPlaying?Date.now()-this.playTimestamp:this.resumeFromTime}getLength(){return this.channels.reduce((e,t)=>{let i=t.events[t.events.length-1];return i?Math.max(i.time,e):e},0)}resume(){if(this.playingChannels){let e=this.resumeFromTime-50;this.play(t=>t.time>e,!1,!1,this.onEndArgument),this.playTimestamp-=e}else this.play(void 0,!1,!1,this.onEndArgument)}anchorPlayMoment(e,t){this.isPlaying&&this.pause();let i=0;this.play((t,n,s)=>{let o=e(t,n,s);return o&&t.time>i&&(i=t.time),o},!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=i}playAdjacent(e,t,i,n){this.isPlaying&&this.pause();let s=this.resumeFromTime,o=this.channels.reduce((t,i)=>{let o=n?i.events.filter(n):i.events,a=0,l=o.length,r=t;for(;a>1,i=o[t].time,n=i-s;n>0?(e&&ir&&(r=i),a=t+1):e?a=t+1:l=t}return r},e?1/0:-1/0);if(o===1/0||o===-1/0){i&&i({chart:this.chart,timeline:this,attemptedNext:e});return}this.anchorPlayMoment((t,i,a)=>{let l=e?t.time>s&&t.time<=o+.02:t.time=o-.02;return n?l&&n(t,i,a):l},t)}playClosestToPropValue(e,t,i,n,s){let o=(e,t,i)=>!!(s?s(e,t,i)&&e.relatedPoint:e.relatedPoint),a=1/0,l=null;(this.playingChannels||this.channels).forEach(i=>{let n=i.events,s=n.length;for(;s--;){if(!o(n[s],s,n))continue;let i=n[s].relatedPoint[e],r=G(i)&&Math.abs(t-i);!1!==r&&r!!(l&&e.timel.time-1&&e.relatedPoint===l.relatedPoint),!1,!1,i),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=l.time):n&&n({chart:this.chart,timeline:this})}getEventsForPoint(e){return this.channels.reduce((t,i)=>{let n=i.events.filter(t=>t.relatedPoint===e);return t.concat(n)},[])}playSegment(e,t){let i={first:1/0,last:-1/0};if(this.channels.forEach(e=>{e.events.length&&(i.first=Math.min(e.events[0].time,i.first),i.last=Math.max(e.events[e.events.length-1].time,i.last))}),i.first<1/0){let n=(i.last-i.first)/100,s=i.first+e*n,o=s+n;if(!this.channels.some(e=>{let t=e.events,i=0,n=t.length;for(;i>1,a=t[e].time;if(ao))return!0;n=e}}return!1}))return;this.play(e=>e.time>=s&&e.time<=o,!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=o}}getLastPlayedPoint(e){let t=this.getCurrentTime(),i=this.playingChannels||this.channels,n=1/0,s=null;return i.forEach(i=>{let o=i.events.filter((i,n,s)=>!!(i.relatedPoint&&i.time<=t&&(!e||e(i,n,s)))),a=o[o.length-1];if(a){let e=Math.abs(a.time-t);ee.cancel()),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.cancel()),this.clearScheduledCallbacks(),this.resumeFromTime=0}destroy(){this.cancel(),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.destroy()),this.channels.forEach(e=>e.destroy())}setMasterVolume(e){this.channels.forEach(t=>t.engine.setMasterVolume(e))}getMIDIData(){return V(this.channels.filter(e=>"instrument"===e.type))}downloadMIDI(e){let t=this.getMIDIData(),i=(e||this.chart&&this.chart.options.title&&this.chart.options.title.text||"chart")+".mid",n=new Blob([t],{type:"application/octet-stream"}),s=window.URL.createObjectURL(n);B(s,i),window.URL.revokeObjectURL(s)}resetPlayState(){delete this.playingChannels,delete this.onEndArgument,this.playTimestamp=this.resumeFromTime=0,this.isPaused=!1}clearScheduledCallbacks(){this.scheduledCallbacks.forEach(clearTimeout),this.scheduledCallbacks=[]}};var W=s(984),H=/*#__PURE__*/s.n(W);let{clamp:_,defined:K,extend:$,getNestedProperty:Z,merge:z,pick:J}=l(),{format:X}=H(),Y=e=>/^([a-g][#b]?)[0-8]$/i.test(e);function ee(e,t){let i;if(t){if("number"==typeof(i=e[t]))return i;i=Z(t,e)}return"number"==typeof i?i:void 0}function et(e,t,i,n,s){let o=t.max-t.min;if(o<=0)return i.min;let a=i.max-i.min,l=a*(e-t.min)/o;if(s){let i=t.min>0?e=>Math.log(e)/Math.LOG10E:e=>{let t=Math.abs(e);t<10&&(t+=(10-t)/10);let i=Math.log(t)/Math.LN10;return e<0?-i:i},n=i(t.min);l=a*(i(e)-n)/(i(t.max)-n)}return _(n?i.max-l:i.min+l,i.min,i.max)}function ei(e,t,i,n,s,o,a){return J(function(e,t,i,n,s,o){if("number"==typeof s)return s;if("function"==typeof s)return s($({time:0},e));let a=s,l=n.mapFunction,r=n.min,h=n.max,c=n.within,u;if("object"==typeof s&&(a=s.mapTo,l=s.mapFunction||l,r=J(s.min,r),h=J(s.max,h),c=s.within||n.within,u=s.scale),!a)return null;let p="-"===a.charAt(0);p&&(a=a.slice(1));let m=e.value,d="value"===a&&void 0!==m&&o;if(!d){let t=s.value;if(void 0!==t)m=t;else{if(!e.point)return null;m=e.point[a]}void 0===m&&(m=Z(a,e.point))}if("number"!=typeof m||null===m)return null;let f=null;if(e.point){if("xAxis"===c||"yAxis"===c){let t=e.point.series[c];t&&K(t.dataMin)&&K(t.dataMax)&&(f={min:t.dataMin,max:t.dataMax})}else("series"===c||i)&&e.point.series&&(f=t.seriesExtremes[e.point.series.index][d?o:a])}if(f||(f=t.globalExtremes[d?o:a]),u){let e=[],t=Math.floor(r/12),i=Math.ceil(h/12)+1,n=u.length;for(let s=t;s=r&&i<=h&&e.push(i)}let s=et(m,f,{min:0,max:e.length-1},p,"logarithmic"===l);return e[Math.round(s)]}return et(m,f,{min:r,max:h},p,"logarithmic"===l)}(e,t,i,$({min:0,max:1,mapTo:"y",mapFunction:"linear",within:"chart"},o||{}),n,a),s)}function en(e,t,i,n){let s=n.mapping||{},o="speech"===n.type?new x({language:n.language,name:n.preferredVoice}):new T(t,i,{capabilities:{pan:!!s.pan,tremolo:!!s.tremolo,filters:!!(s.highpass||s.lowpass)},synthPatch:n.instrument,midiTrackName:n.midiName});return e.addChannel(n.type||"instrument",o,J(n.showPlayMarker,!0))}function es(e,t,i,n,s,o){let a=(t,s,a,l)=>ei(e,n,!1,(l||i)[t],s,a,o),l=[],r={noteDuration:a("noteDuration",200,{min:40,max:1e3}),pan:a("pan",0,{min:-1,max:1}),volume:a("volume",1,{min:.1,max:1})};i.frequency&&(r.frequency=a("frequency",440,{min:50,max:6e3})),i.lowpass&&(r.lowpassFreq=a("frequency",2e4,{min:0,max:2e4},i.lowpass),r.lowpassResonance=a("resonance",0,{min:-6,max:12},i.lowpass)),i.highpass&&(r.highpassFreq=a("frequency",2e4,{min:0,max:2e4},i.highpass),r.highpassResonance=a("resonance",0,{min:-6,max:12},i.highpass)),i.tremolo&&(r.tremoloDepth=a("depth",0,{min:0,max:.8},i.tremolo),r.tremoloSpeed=a("speed",0,{min:0,max:.8},i.tremolo));let h=a("gapBetweenNotes",150,{min:50,max:1e3}),c=a("playDelay",0,{max:200}),u=(i,a=0)=>{let u=i;i.mapTo?("string"==typeof i.min&&(u.min=T.noteStringToC0Distance(i.min)),"string"==typeof i.max&&(u.max=T.noteStringToC0Distance(i.max))):"string"==typeof i&&Y(i)&&(u=T.noteStringToC0Distance(i)),r.note=ei(e,n,!1,u,-1,{min:0,max:107},o),r.note>-1&&(s&&(r.note=Math.round(r.note)),l.push(t.addEvent({time:e.time+c+h*a,relatedPoint:e.point,instrumentEventOptions:void 0!==a?$({},r):r})))};return i.pitch&&i.pitch.constructor===Array?i.pitch.forEach(u):i.pitch?u(i.pitch):i.frequency&&l.push(t.addEvent({time:e.time+c,relatedPoint:e.point,instrumentEventOptions:r})),l}function eo(e,t,i,n,s){var o;let a=(t,o,a)=>ei(e,n,!1,i[t],o,a,s),l=a("playDelay",0,{max:200}),r=a("pitch",1,{min:.3,max:2}),h=a("rate",1,{min:.4,max:4}),c=a("volume",1,{min:.1}),u=X("function"==typeof(o=i.text)?o(e):o,e,e.point&&e.point.series.chart);if(u)return t.addEvent({time:e.time+l,relatedPoint:e.point,speechOptions:{pitch:r,rate:h,volume:c},message:u})}function ea(e,t,i){if("function"==typeof t)return t(e);if("object"==typeof t){let n=t.prop,s=J(e.value,e.point&&ee(e.point,n));if("number"!=typeof s)return!1;let o=!0,a=t.crossingUp,l=t.crossingDown,r="number"==typeof i;o=a&&l?r&&(i=a||i>l&&s<=l):(void 0===a||r&&i=a)&&(void 0===l||r&&i>l&&s<=l);let h=J(t.max,1/0),c=J(t.min,-1/0);return s<=h&&s>=c&&o}return!0}let el=function(e,t,i){let n=i.options.sonification||{},s=n.defaultInstrumentOptions,o=n.defaultSpeechOptions,a=z({enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},n.pointGrouping),l=n.globalTracks||[],r=n.globalContextTracks||[],h="sequential"===n.order,c=Math.max(50,n.duration-300),u=n.afterSeriesWait,p=n.events||{},m=function(e){let t=e.options.sonification||{},i=(t.defaultInstrumentOptions||{}).mapping||{time:"x",pitch:"y"},n=t.defaultSpeechOptions&&t.defaultSpeechOptions.mapping||{},s=[],o={},a=(e,t)=>{null!==t?(s[t]=s[t]||{},s[t][e]=!0):o[e]=!0},l={},r={},h=(e,t,i)=>{let n=e=>"-"===e.charAt(0)?e.slice(1):e;if("string"==typeof t&&"text"!==e){if("pitch"===e&&Y(t))return;"time"===e&&(r[t]=!0,a(t,i)),l[n(t)]=!0;return}if(t&&t.mapTo&&"string"==typeof t.mapTo){let s=n(t.mapTo);"time"===e&&a(s,i),("time"===e||"series"===t.within)&&(r[s]=!0),l[s]=!0;return}["tremolo","lowpass","highpass"].indexOf(e)>-1&&"object"==typeof t&&Object.keys(t).forEach(e=>h(e,t[e],i))},c=(e,t)=>{Object.keys(e).forEach(i=>h(i,e[i],t))},u=e=>e.forEach(e=>{l[e.valueProp||"x"]=r[e.valueProp||"x"]=!0});c(i,null),c(n,null),u(t.globalContextTracks||[]);let p=Object.keys(o).length;return e.series.forEach(e=>{let t=e.options.sonification;if(e.visible&&!(t&&!1===t.enabled)&&(p&&(s[e.index]=z(o)),t)){let i=(t.defaultInstrumentOptions||{}).mapping,n=(t.defaultSpeechOptions||{}).mapping;i&&c(i,e.index),n&&c(n,e.index),u(t.contextTracks||[]),(t.tracks||[]).concat(t.contextTracks||[]).forEach(t=>{t.mapping&&c(t.mapping,e.index)})}}),{seriesTimeProps:s,...function(e,t,i){let n=e.series,s=t.length,o=i.length,a=e=>e.reduce((e,t)=>(e[t]={min:1/0,max:-1/0},e),{}),l=(e,t,i)=>{let n=t[i];void 0===n&&(n=Z(i,t)),"number"==typeof n&&(e[i].min=Math.min(e[i].min,n),e[i].max=Math.max(e[i].max,n))},r=a(t),h=n.length,c=Array(h);for(;h--;){let e=a(i),u=n[h].options;if(!n[h].visible||u&&u.sonification&&!1===u.sonification.enabled)continue;let p=n[h].points||[],m=p.length;for(;m--;){let n=s;for(;n--;)l(r,p[m],t[n]);for(n=o;n--;)l(e,p[m],i[n])}c[h]=e}return{globalExtremes:r,seriesExtremes:c}}(e,Object.keys(l),Object.keys(r))}}(i),d=new L({onPlay:p.onPlay,onEnd:p.onEnd,onStop:p.onStop,showCrosshair:n.showCrosshair,showTooltip:n.showTooltip},i);i.sonification&&(i.sonification.propMetrics=m);let f=0;return i.series.forEach((i,n)=>{let y=i.options.sonification||{};if(i.visible&&!1!==y.enabled){let g;let v=h?function(e,t,i,n){let s,o;let a=t-(e.chart.series.length-1)*n;if(i.seriesTimeProps.every(e=>{let t=Object.keys(e);return!(t.length>1)&&(s||(s=t[0]),s===t[0])})){let t=i.seriesExtremes[e.index][s];o=Math.round((t.max-t.min)/i.seriesExtremes.reduce((e,t)=>t[s]?e+t[s].max-t[s].min:e,0)*a)}else{let t=e.chart.series.reduce((e,t)=>e+t.points.length,0);o=Math.round((e.points||[]).length/t*a)}return Math.max(50,o)}(i,c,m,u):c,q=z(s,y.defaultInstrumentOptions),T=z(o,y.defaultSpeechOptions),w=z(a,y.pointGrouping),x=(y.tracks||[q]).concat(l),N=d.channels.length&&!h?y.contextTracks||[]:(y.contextTracks||[]).concat(r),k=[];x.forEach(n=>{let s=z({pointGrouping:w,midiName:n.midiName||i.name},"speech"===n.type?T:q,n),o=s.pointGrouping,a=s.activeWhen,l=e=>{"object"==typeof a&&a.prop&&(g=ee(e,a.prop))},r=en(d,e,t,s),c=e=>k.push(...function(e,t,i,n){let s=[];if("speech"===i.type&&i.mapping){let o=eo(e,t,i.mapping,n);o&&(s=[o])}else i.mapping&&(s=es(e,t,i.mapping,n,J(i.roundToMusicalNotes,!0)));return s}(e,r,s,m)),u=[],p=0,y=e=>{if(1===u.length)c({point:u[0].point,time:p+e/2});else{let t=function(e,t){let i=e.algorithm||"minmax",n=e=>t[e]?[t[e].point]:[];if("first"===i)return n(0);if("last"===i)return n(t.length-1);if("middle"===i)return n(t.length>>1);if("firstlast"===i)return n(0).concat(n(t.length-1));if("minmax"===i){let i,n,s,o;let a=e.prop||"y";if(t.forEach(e=>{let t=ee(e.point,a);void 0!==t&&((!i||to)&&(n=e,o=t))}),i&&n)return i.point===n.point?[i.point]:i.time>n.time?[n.point,i.point]:[i.point,n.point]}return[]}(o,u),i=e/t.length;t.forEach((e,t)=>c({point:e,time:p+i/2+i*t}))}u=[]};(i.points||[]).forEach((e,t)=>{var n;let r=t===i.points.length-1,d=(n=f,ei({point:e,time:0},m,h,s.mapping&&s.mapping.time||0,0,{min:0,max:v,mapTo:"x"})+n),q={point:e,time:d};if(!s.mapping||!ea(q,a,g)){l(e),r&&u.length&&y(u[u.length-1].time-u[0].time);return}if(l(e),o.enabled){let e=d-p,t=o.groupTimespan,i=r&&e<=t?e:t;r||e>t?(e<=t&&u.push(q),y(i),p=Math.floor(d/t)*t,r&&e>t?c({point:q.point,time:p+i/2}):u=[q]):u.push(q)}else c(q)})});let P=k.reduce((e,t)=>t.timet.time>e.time?t:e,{time:-1/0});P.callback=p.onSeriesStart?p.onSeriesStart.bind(null,{series:i,timeline:d}):void 0,M.callback=p.onSeriesEnd?p.onSeriesEnd.bind(null,{series:i,timeline:d}):void 0,N.forEach(i=>{let a="speech"===i.type?z(o,i):z(s,{mapping:{pitch:{mapTo:"value"}}},i),l=en(d,e,t,a);g=void 0;let{timeInterval:r,valueInterval:h}=a,c=a.valueProp||"x",u=a.activeWhen,p=m.seriesExtremes[n][c],y=(e,t)=>{if(!a.mapping||!ea({time:e,value:t},"object"==typeof u?$({prop:c},u):u,g)){g=t;return}g=t,"speech"===a.type?eo({time:e,value:t},l,a.mapping,m,c):es({time:e,value:t},l,a.mapping,m,J(a.roundToMusicalNotes,!0),c)};if(r){let e=0;for(;e<=v;){let t=et(e,{min:0,max:v},p);y(e+f,t),e+=r}}if(h){let e=p.min;for(;e<=p.max;)y(et(e,p,{min:0,max:v},!1,"logarithmic"===a.valueMapFunction)+f,e),e+=h}}),h&&(f+=v+u)}}),d},{defaultOptions:er,getOptions:eh}=l(),{addEvent:ec,extend:eu,fireEvent:ep,merge:em,pick:ed}=l(),{doc:ef,win:ey}=l();class eg{constructor(e){this.chart=e,this.retryContextCounter=0,this.lastUpdate=0,this.unbindKeydown=ec(ef,"keydown",function(t){e&&e.sonification&&("Esc"===t.key||"Escape"===t.key)&&e.sonification.cancel()});try{this.audioContext=new ey.AudioContext,this.audioContext.suspend(),this.audioDestination=this.audioContext.destination}catch(e){}}setAudioDestination(e){this.audioDestination=e,this.update()}isPlaying(){return!!this.timeline&&this.timeline.isPlaying}playSegment(e,t){this.ready(this.playSegment.bind(this,e,t))&&this.timeline&&this.timeline.playSegment(e,t)}playAdjacent(e,t,i){if(this.ready(this.playAdjacent.bind(this,e,t,i))&&this.timeline){let n=this.chart.options.sonification,s=n&&n.events&&n.events.onBoundaryHit;s||this.initBoundaryInstrument(),this.timeline.playAdjacent(e,t,s||(()=>{this.defaultBoundaryHit()}),i)}}playAdjacentSeries(e,t="x",i){let n=this.getLastPlayedPoint();if(n){let s=n.series.index+(e?1:-1);return this.playClosestToProp(t,n[t],e=>!!e.relatedPoint&&e.relatedPoint.series.index===s,i),this.chart.series[s]||null}return null}playClosestToProp(e,t,i,n){if(this.ready(this.playClosestToProp.bind(this,e,t,i,n))&&this.timeline){let s=this.chart.options.sonification,o=s&&s.events&&s.events.onBoundaryHit;o||this.initBoundaryInstrument(),this.timeline.playClosestToPropValue(e,t,n,o||(()=>this.defaultBoundaryHit()),i)}}getLastPlayedPoint(){return this.timeline?this.timeline.getLastPlayedPoint():null}playNote(e,t,i=0){if(!this.ready(this.playNote.bind(this,e,t)))return;let n=t.noteDuration=t.noteDuration||500,s=new T(this.audioContext,this.audioDestination,{synthPatch:e,capabilities:{filters:!0,tremolo:!0,pan:!0}});s.scheduleEventAtTime(i/1e3,t),setTimeout(()=>s&&s.destroy(),i+n+500)}speak(e,t,i=0){new x(em({language:"en-US",rate:1.5,volume:.4},t||{})).sayAtTime(i,e)}cancel(){this.timeline&&this.timeline.cancel(),ep(this,"cancel")}downloadMIDI(){this.ready(this.downloadMIDI.bind(this))&&this.timeline&&(this.timeline.reset(),this.timeline.downloadMIDI())}sonifyChart(e,t){this.ready(this.sonifyChart.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(void 0,void 0,e,t))}sonifySeries(e,t,i){this.ready(this.sonifySeries.bind(this,e,t,i))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(t=>!!t.relatedPoint&&t.relatedPoint.series===e,void 0,t,i))}sonifyPoint(e,t){this.ready(this.sonifyPoint.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.anchorPlayMoment(t=>t.relatedPoint===e,t))}setMasterVolume(e){this.timeline&&this.timeline.setMasterVolume(e)}destroy(){this.unbindKeydown(),this.timeline&&(this.timeline.destroy(),delete this.timeline),this.boundaryInstrument&&this.boundaryInstrument.stop(),this.audioContext&&(this.audioContext.close(),delete this.audioContext)}update(){let e=this.chart.options&&this.chart.options.sonification;if(!this.ready(this.update.bind(this))||!e)return;let t=Date.now(),i=e.updateInterval;if(t-this.lastUpdate{this.audioContext&&"suspended"===this.audioContext.state?this.audioContext.resume().then(e):e()},5),!1))}beforePlay(){let e=this.chart.options.sonification,t=e&&e.events&&e.events.beforePlay;t&&t({chart:this.chart,timeline:this.timeline})}initBoundaryInstrument(){this.boundaryInstrument||(this.boundaryInstrument=new y(this.audioContext,em(g.chop,{masterVolume:.3})),this.boundaryInstrument.startSilently(),this.boundaryInstrument.connect(this.audioDestination))}defaultBoundaryHit(){this.boundaryInstrument&&(this.boundaryInstrument.playFreqAtTime(.1,1,200),this.boundaryInstrument.playFreqAtTime(.2,1,200))}}!function(e){let t=[];function i(){let t=this.sonification,i=this.options&&this.options.sonification;i&&i.enabled?t?t.update():(this.sonification=new e(this),this.sonification.update()):t&&(t.destroy(),delete this.sonification)}function n(){this&&this.sonification&&this.sonification.destroy()}function s(){this.updateSonificationEnabled&&this.updateSonificationEnabled()}function o(e){let t=e.options.sonification;t&&(em(!0,this.options.sonification,t),s.call(this))}e.compose=function(e,a,l){-1===t.indexOf(e)&&(t.push(e),eu(e.prototype,{updateSonificationEnabled:i,sonify:function(e){this.sonification&&this.sonification.sonifyChart(!1,e)},toggleSonify:function(e=!0,t){if(!this.sonification)return;let i=this.sonification.timeline;ey.speechSynthesis&&ey.speechSynthesis.cancel(),i&&this.sonification.isPlaying()?e?this.sonification.cancel():i.pause():i&&i.isPaused?i.resume():this.sonification.sonifyChart(e,t)}}),ec(e,"destroy",n),ec(e,"render",s),ec(e,"update",o)),-1===t.indexOf(a)&&(t.push(a),a.prototype.sonify=function(e){this.chart.sonification&&this.chart.sonification.sonifySeries(this,!1,e)}),-1===t.indexOf(l)&&(t.push(l),l.prototype.sonify=function(e){this.series.chart.sonification&&this.series.chart.sonification.sonifyPoint(this,e)});let r=eh().exporting;r&&r.buttons&&r.buttons.contextButton.menuItems&&r.buttons.contextButton.menuItems.push("separator","downloadMIDI","playAsSound")}}(eg||(eg={})),em(!0,er,{sonification:{enabled:!0,duration:6e3,afterSeriesWait:700,updateInterval:200,masterVolume:.7,order:"sequential",showTooltip:!0,showCrosshair:!0,pointGrouping:{enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},defaultInstrumentOptions:{roundToMusicalNotes:!0,instrument:"piano",mapping:{time:"x",pan:"x",noteDuration:200,pitch:{mapTo:"y",min:"c2",max:"c6",within:"yAxis"},gapBetweenNotes:100}},defaultSpeechOptions:{language:"en-US",mapping:{time:"x",rate:1.3,volume:.4},pointGrouping:{algorithm:"last"}}},exporting:{menuItemDefinitions:{downloadMIDI:{textKey:"downloadMIDI",onclick:function(){this.sonification&&this.sonification.downloadMIDI()}},playAsSound:{textKey:"playAsSound",onclick:function(){let e=this.sonification;e&&e.isPlaying()?e.cancel():this.sonify()}}}},lang:{downloadMIDI:"Download MIDI",playAsSound:"Play as sound"}});let ev=eg,eq=l();eq.sonification={InstrumentPresets:g,Scales:{minor:[0,2,3,5,7,8,10],dorian:[0,2,3,5,7,9,10],harmonicMinor:[0,2,3,5,7,8,11],phrygian:[0,1,3,5,7,8,11],major:[0,2,4,5,7,9,11],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10]},SynthPatch:y,SonificationInstrument:T,SonificationSpeaker:x,SonificationTimeline:L,Sonification:ev},ev.compose(eq.Chart,eq.Series,eq.Point);let eT=l();return o.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Templating):"function"==typeof define&&define.amd?define("highcharts/modules/sonification",["highcharts/highcharts"],function(e){return t(e,e.Templating)}):"object"==typeof exports?exports["highcharts/modules/sonification"]=t(e._Highcharts,e._Highcharts.Templating):e.Highcharts=t(e.Highcharts,e.Highcharts.Templating)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var i={984:e=>{e.exports=t},944:t=>{t.exports=e}},n={};function s(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return i[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};s.d(o,{default:()=>eT});var a=s(944),l=s.n(a);let{clamp:r,defined:h,pick:c}=l();function u(e,t){return(.2414*e-.2414)*Math.log(t)+(3.5-1.7*e)/1.8}function p(e,t,i){e.gain.cancelScheduledValues(t),e.gain.setTargetAtTime(i,t,y.stopRampTime/4),e.gain.setValueAtTime(i,t+y.stopRampTime)}function m(e,t,i,n,s=1){let o="attack"===t,a=n.gain;if(a.cancelScheduledValues(i),!e.length){p(n,i,o?s:0);return}e[0].t>1&&e.unshift({t:0,vol:o?0:1}),e.forEach((t,n)=>{let o=e[n-1],l=o?(t.t-o.t)/1e3:0,r=i+(o?o.t/1e3+y.stopRampTime:0);a.setTargetAtTime(t.vol*s,r,Math.max(l,y.stopRampTime)/2)})}class d{constructor(e,t){this.pulseWidth=Math.min(Math.max(0,t.pulseWidth||.5));let i=()=>new OscillatorNode(e,{type:"sawtooth",detune:t.detune,frequency:Math.max(1,t.frequency||350)});this.sawOscA=i(),this.sawOscB=i(),this.phaseInverter=new GainNode(e,{gain:-1}),this.masterGain=new GainNode(e),this.delayNode=new DelayNode(e,{delayTime:this.pulseWidth/this.sawOscA.frequency.value}),this.sawOscA.connect(this.masterGain),this.sawOscB.connect(this.phaseInverter),this.phaseInverter.connect(this.delayNode),this.delayNode.connect(this.masterGain)}connect(e){this.masterGain.connect(e)}getFrequencyFacade(){let e=this;return{cancelScheduledValues:t=>(e.sawOscA.frequency.cancelScheduledValues(t),e.sawOscB.frequency.cancelScheduledValues(t),e.delayNode.delayTime.cancelScheduledValues(t),e.sawOscA.frequency),setValueAtTime(t,i){return this.cancelScheduledValues(i),e.sawOscA.frequency.setValueAtTime(t,i),e.sawOscB.frequency.setValueAtTime(t,i),e.delayNode.delayTime.setValueAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i),e.sawOscA.frequency},setTargetAtTime(t,i,n){return this.cancelScheduledValues(i),e.sawOscA.frequency.setTargetAtTime(t,i,n),e.sawOscB.frequency.setTargetAtTime(t,i,n),e.delayNode.delayTime.setTargetAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i,n),e.sawOscA.frequency}}}getPWMTarget(){return this.delayNode.delayTime}start(){this.sawOscA.start(),this.sawOscB.start()}stop(e){this.sawOscA.stop(e),this.sawOscB.stop(e)}}class f{constructor(e,t,i){this.audioContext=e,this.options=t,this.fmOscillatorIx=t.fmOscillator,this.vmOscillatorIx=t.vmOscillator,this.createSoundSource(),this.createGain(),this.createFilters(),this.createVolTracking(),i&&this.connect(i)}connect(e){[this.lowpassNode,this.highpassNode,this.volTrackingNode,this.vmNode,this.gainNode,this.whiteNoise,this.pulseNode,this.oscNode].reduce((e,t)=>t?(t.connect(e),t):e,e)}start(){this.oscNode&&this.oscNode.start(),this.whiteNoise&&this.whiteNoise.start(),this.pulseNode&&this.pulseNode.start()}stopAtTime(e){this.oscNode&&this.oscNode.stop(e),this.whiteNoise&&this.whiteNoise.stop(e),this.pulseNode&&this.pulseNode.stop(e)}setFreqAtTime(e,t,i=0){let n=this.options,s=r(c(n.fixedFrequency,t)*(n.freqMultiplier||1),0,21e3),o=this.getOscTarget(),a=i/5e3;o&&(o.cancelScheduledValues(e),i&&e-(this.lastUpdateTime||-1)>.01?(o.setTargetAtTime(s,e,a),o.setValueAtTime(s,e+a)):o.setValueAtTime(s,e)),this.scheduleVolTrackingChange(s,e,i),this.scheduleFilterTrackingChange(s,e,i),this.lastUpdateTime=e}getFMTarget(){return this.oscNode&&this.oscNode.detune||this.whiteNoise&&this.whiteNoise.detune||this.pulseNode&&this.pulseNode.getPWMTarget()}getVMTarget(){return this.vmNode&&this.vmNode.gain}runEnvelopeAtTime(e,t){this.gainNode&&m(("attack"===e?this.options.attackEnvelope:this.options.releaseEnvelope)||[],e,t,this.gainNode,this.options.volume)}cancelScheduled(){this.gainNode&&this.gainNode.gain.cancelScheduledValues(this.audioContext.currentTime);let e=this.getOscTarget();e&&e.cancelScheduledValues(0),this.lowpassNode&&this.lowpassNode.frequency.cancelScheduledValues(0),this.highpassNode&&this.highpassNode.frequency.cancelScheduledValues(0),this.volTrackingNode&&this.volTrackingNode.gain.cancelScheduledValues(0)}scheduleVolTrackingChange(e,t,i){if(this.volTrackingNode){let n=u(this.options.volumePitchTrackingMultiplier||1,e),s=i?i/1e3:y.stopRampTime;this.volTrackingNode.gain.cancelScheduledValues(t),this.volTrackingNode.gain.setTargetAtTime(n,t,s/5),this.volTrackingNode.gain.setValueAtTime(n,t+s)}}scheduleFilterTrackingChange(e,t,i){let n=this.options,s=i?i/1e3:y.stopRampTime,o=(i,n)=>{let o=u(n.frequencyPitchTrackingMultiplier||1,e),a=r((n.frequency||1e3)*o,0,21e3);i.frequency.cancelScheduledValues(t),i.frequency.setTargetAtTime(a,t,s/5),i.frequency.setValueAtTime(a,t+s)};this.lowpassNode&&n.lowpass&&o(this.lowpassNode,n.lowpass),this.highpassNode&&n.highpass&&o(this.highpassNode,n.highpass)}createGain(){let e=this.options;(h(e.volume)||e.attackEnvelope&&e.attackEnvelope.length||e.releaseEnvelope&&e.releaseEnvelope.length)&&(this.gainNode=new GainNode(this.audioContext,{gain:c(e.volume,1)})),this.vmNode=new GainNode(this.audioContext)}createSoundSource(){let e=this.options,t=this.audioContext,i=(e.fixedFrequency||0)*(e.freqMultiplier||1);if("whitenoise"===e.type){let e=2*t.sampleRate,i=t.createBuffer(1,e,t.sampleRate),n=i.getChannelData(0);for(let t=0;tnew f(e,t,h(t.fmOscillator)||h(t.vmOscillator)?void 0:i)),this.oscillators.forEach(e=>{let t=(t,i)=>{if(i){let n=i[t]();n&&e.connect(n)}};h(e.fmOscillatorIx)&&t("getFMTarget",this.oscillators[e.fmOscillatorIx]),h(e.vmOscillatorIx)&&t("getVMTarget",this.oscillators[e.vmOscillatorIx])})}startSilently(){this.outputNode.gain.value=0,this.oscillators.forEach(e=>e.start())}stop(){let e=this.audioContext.currentTime,t=e+y.stopRampTime;p(this.outputNode,e,0),this.oscillators.forEach(e=>e.stopAtTime(t)),this.outputNode.disconnect()}silenceAtTime(e){if(!e&&this.outputNode.gain.value<.01){this.outputNode.gain.value=0;return}this.releaseAtTime((e||0)+this.audioContext.currentTime)}mute(){this.cancelScheduled(),p(this.outputNode,this.audioContext.currentTime,0)}playFreqAtTime(e,t,i){let n=(e||0)+this.audioContext.currentTime,s=this.options;this.oscillators.forEach(e=>{e.setFreqAtTime(n,t,s.noteGlideDuration),e.runEnvelopeAtTime("attack",n)}),m(s.masterAttackEnvelope||[],"attack",n,this.outputNode,s.masterVolume),i&&this.releaseAtTime(n+i/1e3)}cancelScheduled(){this.outputNode.gain.cancelScheduledValues(this.audioContext.currentTime),this.oscillators.forEach(e=>e.cancelScheduled())}connect(e){return this.outputNode.connect(e)}createEqChain(e){this.eqNodes=(this.options.eq||[]).map(e=>new BiquadFilterNode(this.audioContext,{type:"peaking",...e})),this.eqNodes.reduceRight((e,t)=>(t.connect(e),t),e)}releaseAtTime(e){let t=0;this.oscillators.forEach(i=>{let n=i.options.releaseEnvelope;n&&n.length&&(t=Math.max(t,n[n.length-1].t),i.runEnvelopeAtTime("release",e))});let i=this.options.masterReleaseEnvelope||[];i.length&&(m(i,"release",e,this.outputNode,this.options.masterVolume),t=Math.max(t,i[i.length-1].t)),p(this.outputNode,e+t/1e3,0)}}y.stopRampTime=.012;let g={piano:{masterVolume:.45,masterAttackEnvelope:[{t:1,vol:.71},{t:40,vol:.79},{t:82,vol:.64},{t:147,vol:.29},{t:260,vol:.15},{t:417,vol:.05},{t:589,vol:0}],eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:6},{frequency:1300,gain:2},{frequency:2600,Q:.8,gain:8},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-23},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.5,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270},attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:282,vol:.64},{t:597,vol:0}]},{type:"whitenoise",volume:.8,lowpass:{frequency:400},highpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:19,vol:0}]}]},plucked:{masterVolume:.5,midiInstrument:25,masterAttackEnvelope:[{t:1,vol:.71},{t:4,vol:.71},{t:31,vol:.4},{t:109,vol:.12},{t:234,vol:.04},{t:442,vol:0}],eq:[{frequency:800,gain:-8},{frequency:1400,Q:4,gain:4},{frequency:1600,gain:-14},{frequency:2200,gain:-8},{frequency:3600,gain:-2},{frequency:6400,Q:2,gain:-6}],oscillators:[{type:"sawtooth",volume:.9,volumePitchTrackingMultiplier:.6,highpass:{frequency:100},lowpass:{frequency:8e3},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:550,vol:0}]}]},flute:{masterVolume:1.1,midiInstrument:74,noteGlideDuration:30,masterAttackEnvelope:[{t:0,vol:0},{t:29,vol:1},{t:76,vol:.48},{t:600,vol:.36}],masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-10},{frequency:500,gain:4},{frequency:1100,gain:-4},{frequency:2200,gain:-14},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.4,lowpass:{frequency:12,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"sine",fixedFrequency:5,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:48,vol:0},{t:225,vol:.05},{t:600,vol:.77}]},{type:"whitenoise",volume:.13,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:93,vol:.8}]}]},lead:{masterVolume:1,midiInstrument:20,masterAttackEnvelope:[{t:1,vol:.81},{t:98,vol:.5},{t:201,vol:.18},{t:377,vol:.04},{t:586,vol:0},{t:586,vol:0}],eq:[{frequency:200,gain:-6},{frequency:400,gain:-8},{frequency:800,Q:.5,gain:-10},{frequency:1200,gain:4},{frequency:3600,gain:-4},{frequency:4200,gain:-12},{frequency:7400,gain:-14},{frequency:1e4,gain:2}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.6,lowpass:{frequency:5e3},highpass:{frequency:100}},{type:"sawtooth",volume:.4,lowpass:{frequency:7e3},highpass:{frequency:800,Q:6},releaseEnvelope:[{t:0,vol:.99},{t:200,vol:.83},{t:495,vol:0}]}]},vibraphone:{masterVolume:1,midiInstrument:12,masterAttackEnvelope:[{t:1,vol:0},{t:10,vol:.63},{t:82,vol:.64},{t:149,vol:.26},{t:600,vol:0}],eq:[{frequency:200,Q:.8,gain:-12},{frequency:400,gain:-4},{frequency:1600,Q:.5,gain:6},{frequency:2200,Q:.5,gain:6},{frequency:6400,gain:4},{frequency:12800,gain:4}],oscillators:[{type:"sine",volume:1.5,volumePitchTrackingMultiplier:1e-7,attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:146,vol:.39},{t:597,vol:0}]},{type:"whitenoise",volume:.03,volumePitchTrackingMultiplier:1e-4,lowpass:{frequency:900},highpass:{frequency:800},attackEnvelope:[{t:1,vol:1},{t:9,vol:0}]},{type:"sine",freqMultiplier:4,volume:.15,volumePitchTrackingMultiplier:1e-4},{type:"sine",fixedFrequency:3,volume:6,fmOscillator:0,releaseEnvelope:[{t:1,vol:1},{t:190,vol:.41},{t:600,vol:0}]},{type:"sine",fixedFrequency:6,volume:3,fmOscillator:2},{type:"sine",freqMultiplier:9,volume:5e-4,volumePitchTrackingMultiplier:1e-4,releaseEnvelope:[{t:1,vol:.97},{t:530,vol:0}]}]},saxophone:{masterVolume:1,midiInstrument:67,noteGlideDuration:10,masterAttackEnvelope:[{t:1,vol:.57},{t:35,vol:1},{t:87,vol:.84},{t:111,vol:.6},{t:296,vol:.49},{t:600,vol:.58}],masterReleaseEnvelope:[{t:1,vol:.58},{t:47,vol:.16},{t:119,vol:0}],eq:[{frequency:200,gain:-2},{frequency:600,gain:2},{frequency:800,gain:-10},{frequency:1100,gain:-2},{frequency:2200,gain:-2},{frequency:3500,gain:10},{frequency:12800,gain:4}],oscillators:[{type:"sawtooth",volume:.45,volumePitchTrackingMultiplier:.06,lowpass:{frequency:18,frequencyPitchTrackingMultiplier:200},highpass:{frequency:300}},{type:"whitenoise",fixedFrequency:1,volume:.4,highpass:{frequency:7e3},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:51,vol:1},{t:86,vol:.84},{t:500,vol:.78}]},{type:"sine",fixedFrequency:4,volume:2,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:15,vol:.94},{t:79,vol:1},{t:172,vol:.47},{t:500,vol:.26}]},{type:"sine",fixedFrequency:7,volume:6,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:25,vol:.99},{t:85,vol:0},{t:85,vol:0},{t:387,vol:.02},{t:511,vol:.43},{t:600,vol:0}]}]},trumpet:{masterVolume:.3,midiInstrument:57,noteGlideDuration:40,masterAttackEnvelope:[{t:1,vol:0},{t:17,vol:1},{t:42,vol:.85},{t:76,vol:1},{t:202,vol:.65},{t:226,vol:.86},{t:282,vol:.63}],masterReleaseEnvelope:[{t:1,vol:.62},{t:34,vol:.14},{t:63,vol:.21},{t:96,vol:0}],eq:[{frequency:200,Q:.6,gain:10},{frequency:600,Q:.5,gain:6},{frequency:1500,Q:.7,gain:14},{frequency:3200,Q:2,gain:8},{frequency:3800,Q:.8,gain:10},{frequency:6200,gain:12},{frequency:8400,gain:-20},{frequency:12800,Q:.5,gain:-18}],oscillators:[{type:"sawtooth",volume:.15,pulseWidth:.5,volumePitchTrackingMultiplier:.5,lowpass:{frequency:1900,Q:3}},{type:"sine",fixedFrequency:6,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:102,vol:.13},{t:556,vol:.24}]},{type:"whitenoise",volume:.45,highpass:{frequency:7e3,Q:9},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:.51},{t:577,vol:.29}]},{type:"sine",fixedFrequency:5.7,volume:20,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:1},{t:137,vol:.46},{t:283,vol:.15},{t:600,vol:.28}]}]},sawsynth:{masterVolume:.3,midiInstrument:51,noteGlideDuration:40,masterAttackEnvelope:[{t:0,vol:.6},{t:9,vol:1},{t:102,vol:.48}],eq:[{frequency:200,gain:-6}],oscillators:[{type:"sawtooth",volume:.4,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:11,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:-11,volumePitchTrackingMultiplier:.3}]},basic1:{masterVolume:1,noteGlideDuration:0,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]}]},basic2:{masterVolume:.3,eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:2},{frequency:1300,gain:-2},{frequency:2600,Q:.8,gain:6},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-18},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.4,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270}}]},chord:{masterVolume:1,masterAttackEnvelope:[{t:1,vol:.79},{t:27,vol:.86},{t:62,vol:.81},{t:150,vol:.35},{t:408,vol:.04},{t:600,vol:0}],eq:[{frequency:200,gain:-8},{frequency:600,Q:2,gain:4},{frequency:800,gain:-10},{frequency:1600,gain:-2},{frequency:2200,gain:-6},{frequency:3600,Q:.7,gain:-2},{frequency:6400,gain:6},{frequency:12800,gain:6}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:8e3},highpass:{frequency:100},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:540,vol:0}]},{type:"triangle",freqMultiplier:1.17,volume:.4,volumePitchTrackingMultiplier:.07,lowpass:{frequency:5e3},highpass:{frequency:100},releaseEnvelope:[{t:0,vol:1},{t:476,vol:0}]},{type:"triangle",freqMultiplier:1.58333,volume:.7,volumePitchTrackingMultiplier:.02,highpass:{frequency:200},releaseEnvelope:[{t:0,vol:1},{t:422,vol:.56},{t:577,vol:0}]},{type:"sine",fixedFrequency:10,volume:4,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:157,vol:.65}]},{type:"sine",fixedFrequency:5,volume:.3,vmOscillator:2,attackEnvelope:[{t:1,vol:1},{t:155,vol:.91},{t:289,vol:.78}]}]},wobble:{masterVolume:.9,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:.9,volumePitchTrackingMultiplier:.1,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]},{type:"sine",freqMultiplier:.011,volume:30,fmOscillator:0}]},sine:{masterVolume:1,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},sineGlide:{masterVolume:1,noteGlideDuration:100,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},triangle:{masterVolume:.5,oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.07}]},sawtooth:{masterVolume:.25,midiInstrument:82,oscillators:[{type:"sawtooth",volume:.3,volumePitchTrackingMultiplier:.07}]},square:{masterVolume:.3,midiInstrument:81,oscillators:[{type:"square",volume:.2,volumePitchTrackingMultiplier:.07}]},chop:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:600},highpass:{frequency:200}}]},shaker:{masterVolume:.4,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:6500},highpass:{frequency:5e3}}]},step:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],eq:[{frequency:200,gain:-1},{frequency:400,gain:-14},{frequency:800,gain:8},{frequency:1e3,Q:5,gain:-24},{frequency:1600,gain:8},{frequency:2200,gain:-10},{frequency:5400,gain:4},{frequency:12800,gain:-36}],oscillators:[{type:"whitenoise",volume:1.5,lowpass:{frequency:300},highpass:{frequency:100,Q:6}}]},kick:{masterVolume:.55,masterAttackEnvelope:[{t:1,vol:.8},{t:15,vol:1},{t:45,vol:.35},{t:121,vol:.11},{t:242,vol:0}],eq:[{frequency:50,gain:6},{frequency:400,gain:-18},{frequency:1600,gain:18}],oscillators:[{type:"triangle",fixedFrequency:90,volume:1,lowpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:6,vol:1},{t:45,vol:.01}]},{type:"whitenoise",volume:.4,lowpass:{frequency:200},attackEnvelope:[{t:1,vol:1},{t:30,vol:0}]},{type:"triangle",freqMultiplier:.1,volume:1,lowpass:{frequency:200}}]},shortnote:{masterVolume:.8,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:15,vol:0}],eq:[{frequency:400,gain:-4},{frequency:800,gain:-12},{frequency:2400,gain:4},{frequency:7200,gain:-20},{frequency:1e3,Q:5,gain:-12},{frequency:5400,gain:-32},{frequency:12800,gain:-14}],oscillators:[{type:"sawtooth",volume:.6,lowpass:{frequency:1e3}},{type:"whitenoise",volume:.2,lowpass:{frequency:1e4},highpass:{frequency:7e3},attackEnvelope:[{t:1,vol:1},{t:10,vol:0}]},{type:"whitenoise",volume:1.3,lowpass:{frequency:700,Q:4},highpass:{frequency:250}}]},noise:{masterVolume:.3,midiInstrument:122,oscillators:[{type:"whitenoise"}]},filteredNoise:{masterVolume:.3,midiInstrument:122,eq:[{frequency:1600,gain:-8},{frequency:2200,gain:-4}],oscillators:[{type:"whitenoise",lowpass:{frequency:5,frequencyPitchTrackingMultiplier:1300,Q:6},highpass:{frequency:5,frequencyPitchTrackingMultiplier:300,Q:6}}]},wind:{masterVolume:.75,midiInstrument:122,noteGlideDuration:150,masterReleaseEnvelope:[{t:0,vol:1},{t:124,vol:.24},{t:281,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:100,frequencyPitchTrackingMultiplier:6,Q:23},highpass:{frequency:170,frequencyPitchTrackingMultiplier:6}},{type:"sine",freqMultiplier:.016,volume:1e3,fmOscillator:0}]}},{defined:v,extend:q}=l();class T{constructor(e,t,i){this.audioContext=e,this.curParams={},this.midiTrackName=i.midiTrackName,this.masterVolNode=new GainNode(e),this.masterVolNode.connect(t),this.volumeNode=new GainNode(e),this.createNodesFromCapabilities(q({pan:!0},i.capabilities||{})),this.connectCapabilityNodes(this.volumeNode,this.masterVolNode),this.synthPatch=new y(e,"string"==typeof i.synthPatch?g[i.synthPatch]:i.synthPatch),this.midiInstrument=this.synthPatch.midiInstrument||1,this.synthPatch.startSilently(),this.synthPatch.connect(this.volumeNode)}setMasterVolume(e){this.masterVolNode.gain.setTargetAtTime(e,0,T.rampTime)}scheduleEventAtTime(e,t){let i=q(this.curParams,t),n=v(t.frequency)?t.frequency:v(t.note)?T.musicalNoteToFrequency(t.note):220;v(n)&&this.synthPatch.playFreqAtTime(e,n,i.noteDuration),(v(i.tremoloDepth)||v(i.tremoloSpeed))&&this.setTremoloAtTime(e,i.tremoloDepth,i.tremoloSpeed),v(i.pan)&&this.setPanAtTime(e,i.pan),v(i.volume)&&this.setVolumeAtTime(e,i.volume),(v(i.lowpassFreq)||v(i.lowpassResonance))&&this.setFilterAtTime("lowpass",e,i.lowpassFreq,i.lowpassResonance),(v(i.highpassFreq)||v(i.highpassResonance))&&this.setFilterAtTime("highpass",e,i.highpassFreq,i.highpassResonance)}silenceAtTime(e){this.synthPatch.silenceAtTime(e)}cancel(){this.synthPatch.mute(),[this.tremoloDepth&&this.tremoloDepth.gain,this.tremoloOsc&&this.tremoloOsc.frequency,this.lowpassNode&&this.lowpassNode.frequency,this.lowpassNode&&this.lowpassNode.Q,this.highpassNode&&this.highpassNode.frequency,this.highpassNode&&this.highpassNode.Q,this.panNode&&this.panNode.pan,this.volumeNode.gain].forEach(e=>e&&e.cancelScheduledValues(0))}destroy(){this.cancel(),this.synthPatch.stop(),this.tremoloOsc&&this.tremoloOsc.stop(),[this.tremoloDepth,this.tremoloOsc,this.lowpassNode,this.highpassNode,this.panNode,this.volumeNode,this.masterVolNode].forEach(e=>e&&e.disconnect())}setPanAtTime(e,t){this.panNode&&this.panNode.pan.setTargetAtTime(t,e+this.audioContext.currentTime,T.rampTime)}setFilterAtTime(e,t,i,n){let s=this[e+"Node"],o=this.audioContext.currentTime+t;s&&(v(n)&&s.Q.setTargetAtTime(n,o,T.rampTime),v(i)&&s.frequency.setTargetAtTime(i,o,T.rampTime))}setVolumeAtTime(e,t){this.volumeNode&&this.volumeNode.gain.setTargetAtTime(t,e+this.audioContext.currentTime,T.rampTime)}setTremoloAtTime(e,t,i){let n=this.audioContext.currentTime+e;this.tremoloDepth&&v(t)&&this.tremoloDepth.gain.setTargetAtTime(t,n,T.rampTime),this.tremoloOsc&&v(i)&&this.tremoloOsc.frequency.setTargetAtTime(15*i,n,T.rampTime)}createNodesFromCapabilities(e){let t=this.audioContext;e.pan&&(this.panNode=new StereoPannerNode(t)),e.tremolo&&(this.tremoloOsc=new OscillatorNode(t,{type:"sine",frequency:3}),this.tremoloDepth=new GainNode(t),this.tremoloOsc.connect(this.tremoloDepth),this.tremoloDepth.connect(this.masterVolNode.gain),this.tremoloOsc.start()),e.filters&&(this.lowpassNode=new BiquadFilterNode(t,{type:"lowpass",frequency:2e4}),this.highpassNode=new BiquadFilterNode(t,{type:"highpass",frequency:0}))}connectCapabilityNodes(e,t){[this.panNode,this.lowpassNode,this.highpassNode,e].reduce((e,t)=>t?(t.connect(e),t):e,t)}static noteStringToC0Distance(e){let t=e.match(/^([a-g][#b]?)([0-8])$/i),i=t?t[1]:"a",n=i[0].toLowerCase(),s=i[1];return(({c:0,d:2,e:4,f:5,g:7,a:9,b:11})[n]||0)+("#"===s?1:"b"===s?-1:0)+12*(t?parseInt(t[2],10):4)}static musicalNoteToFrequency(e){return 16.3516*Math.pow(2,Math.min("string"==typeof e?this.noteStringToC0Distance(e):e,107)/12)}}T.rampTime=y.stopRampTime/4;let{pick:w}=l(),x=class{constructor(e){this.options=e,this.masterVolume=1,this.synthesis=window.speechSynthesis,void 0!==speechSynthesis.onvoiceschanged&&(speechSynthesis.onvoiceschanged=this.setVoice.bind(this)),this.setVoice(),this.scheduled=[]}say(e,t){if(this.synthesis){this.synthesis.cancel();let i=new SpeechSynthesisUtterance(e);this.voice&&(i.voice=this.voice),i.rate=t&&t.rate||this.options.rate||1,i.pitch=t&&t.pitch||this.options.pitch||1,i.volume=w(t&&t.volume,this.options.volume,1)*this.masterVolume,this.synthesis.speak(i)}}sayAtTime(e,t,i){this.scheduled.push(setTimeout(this.say.bind(this,t,i),e))}cancel(){this.scheduled.forEach(clearTimeout),this.scheduled=[],this.synthesis.cancel()}destroy(){this.cancel()}setMasterVolume(e){this.masterVolume=e}setVoice(){if(this.synthesis){let e;let t=this.options.name,i=this.options.language||"en-US",n=this.synthesis.getVoices(),s=n.length;for(let o=0;oe.time;);this.events.splice(t+1,0,e)}else this.events.push(e);return e}mute(){this.muted=!0}unmute(){this.muted=!1}cancel(){this.engine.cancel()}destroy(){this.engine.destroy()}},{pick:k}=l(),P=e=>Math.round(12*Math.log(e)/Math.LN2-48.37632),M=(e,t)=>t>>>8*e&255,E=e=>[77,84,104,100,0,0,0,6,0,e>1?1:0,M(1,e),M(0,e),1,244],b=[0,255,81,3,7,161,32],A=e=>{let t=127&e,i=[];for(;e>>=7;)t<<=8,t|=127&e|128;for(;;)if(i.push(255&t),128&t)t>>=8;else break;return i},C=e=>{let t,i;let n=[],s=e=>{let t=n.length;for(;t--&&n[t].timeMS>e.timeMS;);n.splice(t+1,0,e)};return e.forEach(e=>{let n=e.instrumentEventOptions||{},o=e.time,a=i=k(n.noteDuration,i),l=a&&e.time+a,r=[{valMap:e=>64+63*e&127,data:{10:n.pan,92:n.tremoloDepth,93:n.tremoloSpeed}},{valMap:e=>127*e/2e4&127,data:{74:n.lowpassFreq,75:n.highpassFreq}},{valMap:e=>63*Math.min(18,Math.max(-18,e))/18+63&127,data:{71:n.lowpassResonance,76:n.highpassResonance}}],h=t=void 0===n.volume?k(t,127):127*n.volume&127,c=n.frequency,u=n.note||0,p=12+(c?P(c):"string"==typeof u?T.noteStringToC0Distance(u):u)&127;r.forEach(e=>Object.keys(e.data).forEach(t=>{let i=e.data[t];void 0!==i&&s({timeMS:o,type:"CTRL_CHG",data:[176,parseInt(t,10),e.valMap(i)]})})),l&&(s({timeMS:o,type:"NON",data:[144,p,h]}),s({timeMS:l,type:"NOF",data:[128,p,h]}))}),n},S=(e,t)=>{let i=[];if(t&&i.push(0,192,127&t),e){let t=[];for(let i=0;i{let s=0,o=S(i,n),a=C(e).reduce((e,t)=>{let i=A(t.timeMS-s);return s=t.timeMS,e.concat(i,t.data)},[]),l=[0,255,47,0],r=(t?b.length:0)+o.length+a.length+l.length;return[77,84,114,107,M(3,r),M(2,r),M(1,r),M(0,r)].concat(t?b:[],o,a,l)},V=function(e){let t=e.filter(e=>!!e.events.length),i=t.length,n=i>1;return new Uint8Array(E(n?i+1:i).concat(n?O([],!0):[],t.reduce((e,t)=>{let i=t.engine;return e.concat(O(t.events,!n,i.midiTrackName,i.midiInstrument))},[])))},{isSafari:I,win:F,win:{document:D}}=l(),Q=F.URL||F.webkitURL||F;function R(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&F.atob&&F.ArrayBuffer&&F.Uint8Array&&F.Blob&&Q.createObjectURL){let e=F.atob(t[3]),i=new F.ArrayBuffer(e.length),n=new F.Uint8Array(i);for(let t=0;t1e3)throw Error("Input too long");let s=/Edge\/\d+/.test(i.userAgent);if((I&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||s||e.length>2e6)&&!(e=R(e)||""))throw Error("Failed to convert to blob");if(void 0!==n.download)n.href=e,n.download=t,D.body.appendChild(n),n.click(),D.body.removeChild(n);else try{if(!F.open(e,"chart"))throw Error("Failed to open window")}catch{F.location.href=e}}},{defined:G,find:j,merge:U}=l(),L=class{constructor(e,t){this.chart=t,this.isPaused=!1,this.isPlaying=!1,this.channels=[],this.scheduledCallbacks=[],this.playTimestamp=0,this.resumeFromTime=0,this.options=e||{}}addChannel(e,t,i=!1,n){if("instrument"===e&&!t.scheduleEventAtTime||"speech"===e&&!t.sayAtTime)throw Error("Highcharts Sonification: Invalid channel engine.");let s=new N(e,t,i,n);return this.channels.push(s),s}play(e,t=!0,i=!0,n){this.isPlaying?this.cancel():this.clearScheduledCallbacks(),this.onEndArgument=n,this.playTimestamp=Date.now(),this.resumeFromTime=0,this.isPaused=!1,this.isPlaying=!0;let s=this.options.skipThreshold||2,o=this.options.onPlay,a=this.options.showTooltip,l=this.options.showCrosshair,r=e?function(e,t){let i=t.map(t=>(t.cancel(),{channel:t,filteredEvents:t.muted?[]:t.events.filter(e)})),n=i.reduce((e,t)=>Math.min(e,t.filteredEvents.length?t.filteredEvents[0].time:1/0),1/0);return i.map(e=>new N(e.channel.type,e.channel.engine,e.channel.showPlayMarker,e.filteredEvents.map(e=>U(e,{time:e.time-n})),e.channel.muted))}(e,this.playingChannels||this.channels):this.channels,h=e=>Object.keys(e.speechOptions||{}).concat(Object.keys(e.instrumentEventOptions||{})).join(),c=[];t&&(this.playingChannels=r),o&&o({chart:this.chart,timeline:this});let u=0;r.forEach(e=>{if(e.muted)return;let t=e.events.length,i=-1/0,n=-1/0,o="";u=Math.max(e.events[t-1]&&e.events[t-1].time||0,u);for(let r=0;r50||r===t-1);m&&c.push(m),f&&(this.scheduledCallbacks.push(setTimeout(()=>{if(u.callback&&u.callback(),m){if(l){let e=m.series;e&&e.xAxis&&e.xAxis.crosshair&&e.xAxis.drawCrosshair(void 0,m),e&&e.yAxis&&e.yAxis.crosshair&&e.yAxis.drawCrosshair(void 0,m)}a&&!(d&&d.hoverPoints&&d.hoverPoints.length>1&&j(d.hoverPoints,e=>e===m)&&m.onMouseOver)&&m.onMouseOver()}},u.time)),i=u.time)}});let p=this.options.onEnd,m=this.options.onStop;this.scheduledCallbacks.push(setTimeout(()=>{let e=this.chart,t={chart:e,timeline:this,pointsPlayed:c};this.isPlaying=!1,i&&this.resetPlayState(),m&&m(t),p&&p(t),n&&n(t),e&&(e.tooltip&&e.tooltip.hide(0),e.hoverSeries&&e.hoverSeries.onMouseOut(),e.axes.forEach(e=>e.hideCrosshair()))},u+250)),this.resumeFromTime=t?u:this.getLength()}pause(){return this.isPaused=!0,this.cancel(),this.resumeFromTime=Date.now()-this.playTimestamp-10,this.resumeFromTime}getCurrentTime(){return this.isPlaying?Date.now()-this.playTimestamp:this.resumeFromTime}getLength(){return this.channels.reduce((e,t)=>{let i=t.events[t.events.length-1];return i?Math.max(i.time,e):e},0)}resume(){if(this.playingChannels){let e=this.resumeFromTime-50;this.play(t=>t.time>e,!1,!1,this.onEndArgument),this.playTimestamp-=e}else this.play(void 0,!1,!1,this.onEndArgument)}anchorPlayMoment(e,t){this.isPlaying&&this.pause();let i=0;this.play((t,n,s)=>{let o=e(t,n,s);return o&&t.time>i&&(i=t.time),o},!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=i}playAdjacent(e,t,i,n){this.isPlaying&&this.pause();let s=this.resumeFromTime,o=this.channels.reduce((t,i)=>{let o=n?i.events.filter(n):i.events,a=0,l=o.length,r=t;for(;a>1,i=o[t].time,n=i-s;n>0?(e&&ir&&(r=i),a=t+1):e?a=t+1:l=t}return r},e?1/0:-1/0);if(o===1/0||o===-1/0){i&&i({chart:this.chart,timeline:this,attemptedNext:e});return}this.anchorPlayMoment((t,i,a)=>{let l=e?t.time>s&&t.time<=o+.02:t.time=o-.02;return n?l&&n(t,i,a):l},t)}playClosestToPropValue(e,t,i,n,s){let o=(e,t,i)=>!!(s?s(e,t,i)&&e.relatedPoint:e.relatedPoint),a=1/0,l=null;(this.playingChannels||this.channels).forEach(i=>{let n=i.events,s=n.length;for(;s--;){if(!o(n[s],s,n))continue;let i=n[s].relatedPoint[e],r=G(i)&&Math.abs(t-i);!1!==r&&r!!(l&&e.timel.time-1&&e.relatedPoint===l.relatedPoint),!1,!1,i),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=l.time):n&&n({chart:this.chart,timeline:this})}getEventsForPoint(e){return this.channels.reduce((t,i)=>{let n=i.events.filter(t=>t.relatedPoint===e);return t.concat(n)},[])}playSegment(e,t){let i={first:1/0,last:-1/0};if(this.channels.forEach(e=>{e.events.length&&(i.first=Math.min(e.events[0].time,i.first),i.last=Math.max(e.events[e.events.length-1].time,i.last))}),i.first<1/0){let n=(i.last-i.first)/100,s=i.first+e*n,o=s+n;if(!this.channels.some(e=>{let t=e.events,i=0,n=t.length;for(;i>1,a=t[e].time;if(ao))return!0;n=e}}return!1}))return;this.play(e=>e.time>=s&&e.time<=o,!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=o}}getLastPlayedPoint(e){let t=this.getCurrentTime(),i=this.playingChannels||this.channels,n=1/0,s=null;return i.forEach(i=>{let o=i.events.filter((i,n,s)=>!!(i.relatedPoint&&i.time<=t&&(!e||e(i,n,s)))),a=o[o.length-1];if(a){let e=Math.abs(a.time-t);ee.cancel()),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.cancel()),this.clearScheduledCallbacks(),this.resumeFromTime=0}destroy(){this.cancel(),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.destroy()),this.channels.forEach(e=>e.destroy())}setMasterVolume(e){this.channels.forEach(t=>t.engine.setMasterVolume(e))}getMIDIData(){return V(this.channels.filter(e=>"instrument"===e.type))}downloadMIDI(e){let t=this.getMIDIData(),i=(e||this.chart&&this.chart.options.title&&this.chart.options.title.text||"chart")+".mid",n=new Blob([t],{type:"application/octet-stream"}),s=window.URL.createObjectURL(n);B(s,i),window.URL.revokeObjectURL(s)}resetPlayState(){delete this.playingChannels,delete this.onEndArgument,this.playTimestamp=this.resumeFromTime=0,this.isPaused=!1}clearScheduledCallbacks(){this.scheduledCallbacks.forEach(clearTimeout),this.scheduledCallbacks=[]}};var W=s(984),H=s.n(W);let{clamp:_,defined:K,extend:$,getNestedProperty:Z,merge:z,pick:J}=l(),{format:X}=H(),Y=e=>/^([a-g][#b]?)[0-8]$/i.test(e);function ee(e,t){let i;if(t){if("number"==typeof(i=e[t]))return i;i=Z(t,e)}return"number"==typeof i?i:void 0}function et(e,t,i,n,s){let o=t.max-t.min;if(o<=0)return i.min;let a=i.max-i.min,l=a*(e-t.min)/o;if(s){let i=t.min>0?e=>Math.log(e)/Math.LOG10E:e=>{let t=Math.abs(e);t<10&&(t+=(10-t)/10);let i=Math.log(t)/Math.LN10;return e<0?-i:i},n=i(t.min);l=a*(i(e)-n)/(i(t.max)-n)}return _(n?i.max-l:i.min+l,i.min,i.max)}function ei(e,t,i,n,s,o,a){return J(function(e,t,i,n,s,o){if("number"==typeof s)return s;if("function"==typeof s)return s($({time:0},e));let a=s,l=n.mapFunction,r=n.min,h=n.max,c=n.within,u;if("object"==typeof s&&(a=s.mapTo,l=s.mapFunction||l,r=J(s.min,r),h=J(s.max,h),c=s.within||n.within,u=s.scale),!a)return null;let p="-"===a.charAt(0);p&&(a=a.slice(1));let m=e.value,d="value"===a&&void 0!==m&&o;if(!d){let t=s.value;if(void 0!==t)m=t;else{if(!e.point)return null;m=e.point[a]}void 0===m&&(m=Z(a,e.point))}if("number"!=typeof m||null===m)return null;let f=null;if(e.point){if("xAxis"===c||"yAxis"===c){let t=e.point.series[c];t&&K(t.dataMin)&&K(t.dataMax)&&(f={min:t.dataMin,max:t.dataMax})}else("series"===c||i)&&e.point.series&&(f=t.seriesExtremes[e.point.series.index][d?o:a])}if(f||(f=t.globalExtremes[d?o:a]),u){let e=[],t=Math.floor(r/12),i=Math.ceil(h/12)+1,n=u.length;for(let s=t;s=r&&i<=h&&e.push(i)}let s=et(m,f,{min:0,max:e.length-1},p,"logarithmic"===l);return e[Math.round(s)]}return et(m,f,{min:r,max:h},p,"logarithmic"===l)}(e,t,i,$({min:0,max:1,mapTo:"y",mapFunction:"linear",within:"chart"},o||{}),n,a),s)}function en(e,t,i,n){let s=n.mapping||{},o="speech"===n.type?new x({language:n.language,name:n.preferredVoice}):new T(t,i,{capabilities:{pan:!!s.pan,tremolo:!!s.tremolo,filters:!!(s.highpass||s.lowpass)},synthPatch:n.instrument,midiTrackName:n.midiName});return e.addChannel(n.type||"instrument",o,J(n.showPlayMarker,!0))}function es(e,t,i,n,s,o){let a=(t,s,a,l)=>ei(e,n,!1,(l||i)[t],s,a,o),l=[],r={noteDuration:a("noteDuration",200,{min:40,max:1e3}),pan:a("pan",0,{min:-1,max:1}),volume:a("volume",1,{min:.1,max:1})};i.frequency&&(r.frequency=a("frequency",440,{min:50,max:6e3})),i.lowpass&&(r.lowpassFreq=a("frequency",2e4,{min:0,max:2e4},i.lowpass),r.lowpassResonance=a("resonance",0,{min:-6,max:12},i.lowpass)),i.highpass&&(r.highpassFreq=a("frequency",2e4,{min:0,max:2e4},i.highpass),r.highpassResonance=a("resonance",0,{min:-6,max:12},i.highpass)),i.tremolo&&(r.tremoloDepth=a("depth",0,{min:0,max:.8},i.tremolo),r.tremoloSpeed=a("speed",0,{min:0,max:.8},i.tremolo));let h=a("gapBetweenNotes",150,{min:50,max:1e3}),c=a("playDelay",0,{max:200}),u=(i,a=0)=>{let u=i;i.mapTo?("string"==typeof i.min&&(u.min=T.noteStringToC0Distance(i.min)),"string"==typeof i.max&&(u.max=T.noteStringToC0Distance(i.max))):"string"==typeof i&&Y(i)&&(u=T.noteStringToC0Distance(i)),r.note=ei(e,n,!1,u,-1,{min:0,max:107},o),r.note>-1&&(s&&(r.note=Math.round(r.note)),l.push(t.addEvent({time:e.time+c+h*a,relatedPoint:e.point,instrumentEventOptions:void 0!==a?$({},r):r})))};return i.pitch&&i.pitch.constructor===Array?i.pitch.forEach(u):i.pitch?u(i.pitch):i.frequency&&l.push(t.addEvent({time:e.time+c,relatedPoint:e.point,instrumentEventOptions:r})),l}function eo(e,t,i,n,s){var o;let a=(t,o,a)=>ei(e,n,!1,i[t],o,a,s),l=a("playDelay",0,{max:200}),r=a("pitch",1,{min:.3,max:2}),h=a("rate",1,{min:.4,max:4}),c=a("volume",1,{min:.1}),u=X("function"==typeof(o=i.text)?o(e):o,e,e.point&&e.point.series.chart);if(u)return t.addEvent({time:e.time+l,relatedPoint:e.point,speechOptions:{pitch:r,rate:h,volume:c},message:u})}function ea(e,t,i){if("function"==typeof t)return t(e);if("object"==typeof t){let n=t.prop,s=J(e.value,e.point&&ee(e.point,n));if("number"!=typeof s)return!1;let o=!0,a=t.crossingUp,l=t.crossingDown,r="number"==typeof i;o=a&&l?r&&(i=a||i>l&&s<=l):(void 0===a||r&&i=a)&&(void 0===l||r&&i>l&&s<=l);let h=J(t.max,1/0),c=J(t.min,-1/0);return s<=h&&s>=c&&o}return!0}let el=function(e,t,i){let n=i.options.sonification||{},s=n.defaultInstrumentOptions,o=n.defaultSpeechOptions,a=z({enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},n.pointGrouping),l=n.globalTracks||[],r=n.globalContextTracks||[],h="sequential"===n.order,c=Math.max(50,n.duration-300),u=n.afterSeriesWait,p=n.events||{},m=function(e){let t=e.options.sonification||{},i=(t.defaultInstrumentOptions||{}).mapping||{time:"x",pitch:"y"},n=t.defaultSpeechOptions&&t.defaultSpeechOptions.mapping||{},s=[],o={},a=(e,t)=>{null!==t?(s[t]=s[t]||{},s[t][e]=!0):o[e]=!0},l={},r={},h=(e,t,i)=>{let n=e=>"-"===e.charAt(0)?e.slice(1):e;if("string"==typeof t&&"text"!==e){if("pitch"===e&&Y(t))return;"time"===e&&(r[t]=!0,a(t,i)),l[n(t)]=!0;return}if(t&&t.mapTo&&"string"==typeof t.mapTo){let s=n(t.mapTo);"time"===e&&a(s,i),("time"===e||"series"===t.within)&&(r[s]=!0),l[s]=!0;return}["tremolo","lowpass","highpass"].indexOf(e)>-1&&"object"==typeof t&&Object.keys(t).forEach(e=>h(e,t[e],i))},c=(e,t)=>{Object.keys(e).forEach(i=>h(i,e[i],t))},u=e=>e.forEach(e=>{l[e.valueProp||"x"]=r[e.valueProp||"x"]=!0});c(i,null),c(n,null),u(t.globalContextTracks||[]);let p=Object.keys(o).length;return e.series.forEach(e=>{let t=e.options.sonification;if(e.visible&&!(t&&!1===t.enabled)&&(p&&(s[e.index]=z(o)),t)){let i=(t.defaultInstrumentOptions||{}).mapping,n=(t.defaultSpeechOptions||{}).mapping;i&&c(i,e.index),n&&c(n,e.index),u(t.contextTracks||[]),(t.tracks||[]).concat(t.contextTracks||[]).forEach(t=>{t.mapping&&c(t.mapping,e.index)})}}),{seriesTimeProps:s,...function(e,t,i){let n=e.series,s=t.length,o=i.length,a=e=>e.reduce((e,t)=>(e[t]={min:1/0,max:-1/0},e),{}),l=(e,t,i)=>{let n=t[i];void 0===n&&(n=Z(i,t)),"number"==typeof n&&(e[i].min=Math.min(e[i].min,n),e[i].max=Math.max(e[i].max,n))},r=a(t),h=n.length,c=Array(h);for(;h--;){let e=a(i),u=n[h].options;if(!n[h].visible||u&&u.sonification&&!1===u.sonification.enabled)continue;let p=n[h].points||[],m=p.length;for(;m--;){let n=s;for(;n--;)l(r,p[m],t[n]);for(n=o;n--;)l(e,p[m],i[n])}c[h]=e}return{globalExtremes:r,seriesExtremes:c}}(e,Object.keys(l),Object.keys(r))}}(i),d=new L({onPlay:p.onPlay,onEnd:p.onEnd,onStop:p.onStop,showCrosshair:n.showCrosshair,showTooltip:n.showTooltip},i);i.sonification&&(i.sonification.propMetrics=m);let f=0;return i.series.forEach((i,n)=>{let y=i.options.sonification||{};if(i.visible&&!1!==y.enabled){let g;let v=h?function(e,t,i,n){let s,o;let a=t-(e.chart.series.length-1)*n;if(i.seriesTimeProps.every(e=>{let t=Object.keys(e);return!(t.length>1)&&(s||(s=t[0]),s===t[0])})){let t=i.seriesExtremes[e.index][s];o=Math.round((t.max-t.min)/i.seriesExtremes.reduce((e,t)=>t[s]?e+t[s].max-t[s].min:e,0)*a)}else{let t=e.chart.series.reduce((e,t)=>e+t.points.length,0);o=Math.round((e.points||[]).length/t*a)}return Math.max(50,o)}(i,c,m,u):c,q=z(s,y.defaultInstrumentOptions),T=z(o,y.defaultSpeechOptions),w=z(a,y.pointGrouping),x=(y.tracks||[q]).concat(l),N=d.channels.length&&!h?y.contextTracks||[]:(y.contextTracks||[]).concat(r),k=[];x.forEach(n=>{let s=z({pointGrouping:w,midiName:n.midiName||i.name},"speech"===n.type?T:q,n),o=s.pointGrouping,a=s.activeWhen,l=e=>{"object"==typeof a&&a.prop&&(g=ee(e,a.prop))},r=en(d,e,t,s),c=e=>k.push(...function(e,t,i,n){let s=[];if("speech"===i.type&&i.mapping){let o=eo(e,t,i.mapping,n);o&&(s=[o])}else i.mapping&&(s=es(e,t,i.mapping,n,J(i.roundToMusicalNotes,!0)));return s}(e,r,s,m)),u=[],p=0,y=e=>{if(1===u.length)c({point:u[0].point,time:p+e/2});else{let t=function(e,t){let i=e.algorithm||"minmax",n=e=>t[e]?[t[e].point]:[];if("first"===i)return n(0);if("last"===i)return n(t.length-1);if("middle"===i)return n(t.length>>1);if("firstlast"===i)return n(0).concat(n(t.length-1));if("minmax"===i){let i,n,s,o;let a=e.prop||"y";if(t.forEach(e=>{let t=ee(e.point,a);void 0!==t&&((!i||to)&&(n=e,o=t))}),i&&n)return i.point===n.point?[i.point]:i.time>n.time?[n.point,i.point]:[i.point,n.point]}return[]}(o,u),i=e/t.length;t.forEach((e,t)=>c({point:e,time:p+i/2+i*t}))}u=[]};(i.points||[]).forEach((e,t)=>{var n;let r=t===i.points.length-1,d=(n=f,ei({point:e,time:0},m,h,s.mapping&&s.mapping.time||0,0,{min:0,max:v,mapTo:"x"})+n),q={point:e,time:d};if(!s.mapping||!ea(q,a,g)){l(e),r&&u.length&&y(u[u.length-1].time-u[0].time);return}if(l(e),o.enabled){let e=d-p,t=o.groupTimespan,i=r&&e<=t?e:t;r||e>t?(e<=t&&u.push(q),y(i),p=Math.floor(d/t)*t,r&&e>t?c({point:q.point,time:p+i/2}):u=[q]):u.push(q)}else c(q)})});let P=k.reduce((e,t)=>t.timet.time>e.time?t:e,{time:-1/0});P.callback=p.onSeriesStart?p.onSeriesStart.bind(null,{series:i,timeline:d}):void 0,M.callback=p.onSeriesEnd?p.onSeriesEnd.bind(null,{series:i,timeline:d}):void 0,N.forEach(i=>{let a="speech"===i.type?z(o,i):z(s,{mapping:{pitch:{mapTo:"value"}}},i),l=en(d,e,t,a);g=void 0;let{timeInterval:r,valueInterval:h}=a,c=a.valueProp||"x",u=a.activeWhen,p=m.seriesExtremes[n][c],y=(e,t)=>{if(!a.mapping||!ea({time:e,value:t},"object"==typeof u?$({prop:c},u):u,g)){g=t;return}g=t,"speech"===a.type?eo({time:e,value:t},l,a.mapping,m,c):es({time:e,value:t},l,a.mapping,m,J(a.roundToMusicalNotes,!0),c)};if(r){let e=0;for(;e<=v;){let t=et(e,{min:0,max:v},p);y(e+f,t),e+=r}}if(h){let e=p.min;for(;e<=p.max;)y(et(e,p,{min:0,max:v},!1,"logarithmic"===a.valueMapFunction)+f,e),e+=h}}),h&&(f+=v+u)}}),d},{defaultOptions:er,getOptions:eh}=l(),{addEvent:ec,extend:eu,fireEvent:ep,merge:em,pick:ed}=l(),{doc:ef,win:ey}=l();class eg{constructor(e){this.chart=e,this.retryContextCounter=0,this.lastUpdate=0,this.unbindKeydown=ec(ef,"keydown",function(t){e&&e.sonification&&("Esc"===t.key||"Escape"===t.key)&&e.sonification.cancel()});try{this.audioContext=new ey.AudioContext,this.audioContext.suspend(),this.audioDestination=this.audioContext.destination}catch(e){}}setAudioDestination(e){this.audioDestination=e,this.update()}isPlaying(){return!!this.timeline&&this.timeline.isPlaying}playSegment(e,t){this.ready(this.playSegment.bind(this,e,t))&&this.timeline&&this.timeline.playSegment(e,t)}playAdjacent(e,t,i){if(this.ready(this.playAdjacent.bind(this,e,t,i))&&this.timeline){let n=this.chart.options.sonification,s=n&&n.events&&n.events.onBoundaryHit;s||this.initBoundaryInstrument(),this.timeline.playAdjacent(e,t,s||(()=>{this.defaultBoundaryHit()}),i)}}playAdjacentSeries(e,t="x",i){let n=this.getLastPlayedPoint();if(n){let s=n.series.index+(e?1:-1);return this.playClosestToProp(t,n[t],e=>!!e.relatedPoint&&e.relatedPoint.series.index===s,i),this.chart.series[s]||null}return null}playClosestToProp(e,t,i,n){if(this.ready(this.playClosestToProp.bind(this,e,t,i,n))&&this.timeline){let s=this.chart.options.sonification,o=s&&s.events&&s.events.onBoundaryHit;o||this.initBoundaryInstrument(),this.timeline.playClosestToPropValue(e,t,n,o||(()=>this.defaultBoundaryHit()),i)}}getLastPlayedPoint(){return this.timeline?this.timeline.getLastPlayedPoint():null}playNote(e,t,i=0){if(!this.ready(this.playNote.bind(this,e,t)))return;let n=t.noteDuration=t.noteDuration||500,s=new T(this.audioContext,this.audioDestination,{synthPatch:e,capabilities:{filters:!0,tremolo:!0,pan:!0}});s.scheduleEventAtTime(i/1e3,t),setTimeout(()=>s&&s.destroy(),i+n+500)}speak(e,t,i=0){new x(em({language:"en-US",rate:1.5,volume:.4},t||{})).sayAtTime(i,e)}cancel(){this.timeline&&this.timeline.cancel(),ep(this,"cancel")}downloadMIDI(){this.ready(this.downloadMIDI.bind(this))&&this.timeline&&(this.timeline.reset(),this.timeline.downloadMIDI())}sonifyChart(e,t){this.ready(this.sonifyChart.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(void 0,void 0,e,t))}sonifySeries(e,t,i){this.ready(this.sonifySeries.bind(this,e,t,i))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(t=>!!t.relatedPoint&&t.relatedPoint.series===e,void 0,t,i))}sonifyPoint(e,t){this.ready(this.sonifyPoint.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.anchorPlayMoment(t=>t.relatedPoint===e,t))}setMasterVolume(e){this.timeline&&this.timeline.setMasterVolume(e)}destroy(){this.unbindKeydown(),this.timeline&&(this.timeline.destroy(),delete this.timeline),this.boundaryInstrument&&this.boundaryInstrument.stop(),this.audioContext&&(this.audioContext.close(),delete this.audioContext)}update(){let e=this.chart.options&&this.chart.options.sonification;if(!this.ready(this.update.bind(this))||!e)return;let t=Date.now(),i=e.updateInterval;if(t-this.lastUpdate{this.audioContext&&"suspended"===this.audioContext.state?this.audioContext.resume().then(e):e()},5),!1))}beforePlay(){let e=this.chart.options.sonification,t=e&&e.events&&e.events.beforePlay;t&&t({chart:this.chart,timeline:this.timeline})}initBoundaryInstrument(){this.boundaryInstrument||(this.boundaryInstrument=new y(this.audioContext,em(g.chop,{masterVolume:.3})),this.boundaryInstrument.startSilently(),this.boundaryInstrument.connect(this.audioDestination))}defaultBoundaryHit(){this.boundaryInstrument&&(this.boundaryInstrument.playFreqAtTime(.1,1,200),this.boundaryInstrument.playFreqAtTime(.2,1,200))}}!function(e){let t=[];function i(){let t=this.sonification,i=this.options&&this.options.sonification;i&&i.enabled?t?t.update():(this.sonification=new e(this),this.sonification.update()):t&&(t.destroy(),delete this.sonification)}function n(){this&&this.sonification&&this.sonification.destroy()}function s(){this.updateSonificationEnabled&&this.updateSonificationEnabled()}function o(e){let t=e.options.sonification;t&&(em(!0,this.options.sonification,t),s.call(this))}e.compose=function(e,a,l){-1===t.indexOf(e)&&(t.push(e),eu(e.prototype,{updateSonificationEnabled:i,sonify:function(e){this.sonification&&this.sonification.sonifyChart(!1,e)},toggleSonify:function(e=!0,t){if(!this.sonification)return;let i=this.sonification.timeline;ey.speechSynthesis&&ey.speechSynthesis.cancel(),i&&this.sonification.isPlaying()?e?this.sonification.cancel():i.pause():i&&i.isPaused?i.resume():this.sonification.sonifyChart(e,t)}}),ec(e,"destroy",n),ec(e,"render",s),ec(e,"update",o)),-1===t.indexOf(a)&&(t.push(a),a.prototype.sonify=function(e){this.chart.sonification&&this.chart.sonification.sonifySeries(this,!1,e)}),-1===t.indexOf(l)&&(t.push(l),l.prototype.sonify=function(e){this.series.chart.sonification&&this.series.chart.sonification.sonifyPoint(this,e)});let r=eh().exporting;r&&r.buttons&&r.buttons.contextButton.menuItems&&r.buttons.contextButton.menuItems.push("separator","downloadMIDI","playAsSound")}}(eg||(eg={})),em(!0,er,{sonification:{enabled:!0,duration:6e3,afterSeriesWait:700,updateInterval:200,masterVolume:.7,order:"sequential",showTooltip:!0,showCrosshair:!0,pointGrouping:{enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},defaultInstrumentOptions:{roundToMusicalNotes:!0,instrument:"piano",mapping:{time:"x",pan:"x",noteDuration:200,pitch:{mapTo:"y",min:"c2",max:"c6",within:"yAxis"},gapBetweenNotes:100}},defaultSpeechOptions:{language:"en-US",mapping:{time:"x",rate:1.3,volume:.4},pointGrouping:{algorithm:"last"}}},exporting:{menuItemDefinitions:{downloadMIDI:{textKey:"downloadMIDI",onclick:function(){this.sonification&&this.sonification.downloadMIDI()}},playAsSound:{textKey:"playAsSound",onclick:function(){let e=this.sonification;e&&e.isPlaying()?e.cancel():this.sonify()}}}},lang:{downloadMIDI:"Download MIDI",playAsSound:"Play as sound"}});let ev=eg,eq=l();eq.sonification={InstrumentPresets:g,Scales:{minor:[0,2,3,5,7,8,10],dorian:[0,2,3,5,7,9,10],harmonicMinor:[0,2,3,5,7,8,11],phrygian:[0,1,3,5,7,8,11],major:[0,2,4,5,7,9,11],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10]},SynthPatch:y,SonificationInstrument:T,SonificationSpeaker:x,SonificationTimeline:L,Sonification:ev},ev.compose(eq.Chart,eq.Series,eq.Point);let eT=l();return o.default})()); \ No newline at end of file diff --git a/modules/sonification.src.js b/modules/sonification.src.js index 6141e1bd5f..9f6cc70988 100644 --- a/modules/sonification.src.js +++ b/modules/sonification.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/sonification * @requires highcharts * diff --git a/modules/static-scale.js b/modules/static-scale.js index b61b0ebcee..2fa3754904 100644 --- a/modules/static-scale.js +++ b/modules/static-scale.js @@ -1,5 +1,5 @@ !/** - * Highcharts Gantt JS v12.0.2 (2024-12-04) + * Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/static-scale * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2016-2024 Torstein Honsi, Lars A. V. Cabrera * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/static-scale",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/static-scale"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e={944:e=>{e.exports=t}},i={};function r(t){var o=i[t];if(void 0!==o)return o.exports;var a=i[t]={exports:{}};return e[t](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>f});var a=r(944),s=/*#__PURE__*/r.n(a);let{addEvent:h,defined:n,isNumber:l,pick:c}=s();function d(){let t=this.chart.options.chart;!this.horiz&&l(this.options.staticScale)&&(!t.height||t.scrollablePlotArea&&t.scrollablePlotArea.minHeight)&&(this.staticScale=this.options.staticScale)}function p(){if("adjustHeight"!==this.redrawTrigger){for(let t of this.axes||[]){let e=t.chart,i=!!e.initiatedScale&&e.options.animation,r=t.options.staticScale;if(t.staticScale&&n(t.min)){let o=c(t.brokenAxis&&t.brokenAxis.unitLength,t.max+t.tickInterval-t.min)*r,a=(o=Math.max(o,r))-e.plotHeight;!e.scrollablePixelsY&&Math.abs(a)>=1&&(e.plotHeight=o,e.redrawTrigger="adjustHeight",e.setSize(void 0,e.chartHeight+a,i)),t.series.forEach(function(t){let i=t.sharedClipKey&&e.sharedClips[t.sharedClipKey];i&&i.attr(e.inverted?{width:e.plotHeight}:{height:e.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}let u=s();({compose:function(t,e){let i=e.prototype;i.adjustHeight||(h(t,"afterSetOptions",d),i.adjustHeight=p,h(e,"render",i.adjustHeight))}}).compose(u.Axis,u.Chart);let f=s();return o.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/static-scale",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/static-scale"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e={944:e=>{e.exports=t}},i={};function r(t){var o=i[t];if(void 0!==o)return o.exports;var a=i[t]={exports:{}};return e[t](a,a.exports,r),a.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};r.d(o,{default:()=>f});var a=r(944),s=r.n(a);let{addEvent:h,defined:n,isNumber:l,pick:c}=s();function d(){let t=this.chart.options.chart;!this.horiz&&l(this.options.staticScale)&&(!t.height||t.scrollablePlotArea&&t.scrollablePlotArea.minHeight)&&(this.staticScale=this.options.staticScale)}function p(){if("adjustHeight"!==this.redrawTrigger){for(let t of this.axes||[]){let e=t.chart,i=!!e.initiatedScale&&e.options.animation,r=t.options.staticScale;if(t.staticScale&&n(t.min)){let o=c(t.brokenAxis&&t.brokenAxis.unitLength,t.max+t.tickInterval-t.min)*r,a=(o=Math.max(o,r))-e.plotHeight;!e.scrollablePixelsY&&Math.abs(a)>=1&&(e.plotHeight=o,e.redrawTrigger="adjustHeight",e.setSize(void 0,e.chartHeight+a,i)),t.series.forEach(function(t){let i=t.sharedClipKey&&e.sharedClips[t.sharedClipKey];i&&i.attr(e.inverted?{width:e.plotHeight}:{height:e.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}let u=s();({compose:function(t,e){let i=e.prototype;i.adjustHeight||(h(t,"afterSetOptions",d),i.adjustHeight=p,h(e,"render",i.adjustHeight))}}).compose(u.Axis,u.Chart);let f=s();return o.default})()); \ No newline at end of file diff --git a/modules/static-scale.src.js b/modules/static-scale.src.js index 060c1b0634..92b4d87b9e 100644 --- a/modules/static-scale.src.js +++ b/modules/static-scale.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/static-scale * @requires highcharts * diff --git a/modules/stock-tools.js b/modules/stock-tools.js index ded3661ab3..575b6da8bc 100644 --- a/modules/stock-tools.js +++ b/modules/stock-tools.js @@ -1,5 +1,5 @@ !/** - * Highstock JS v12.0.2 (2024-12-04) + * Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/stock-tools * @requires highcharts * @requires highcharts/modules/stock @@ -10,4 +10,4 @@ * Author: Torstein Honsi * * License: www.highcharts.com/license - */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Series,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/stock-tools",["highcharts/highcharts"],function(t){return i(t,t.Templating,t.Series,t.AST)}):"object"==typeof exports?exports["highcharts/modules/stock-tools"]=i(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Series,t._Highcharts.AST):t.Highcharts=i(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Series,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,i,e,s)=>(()=>{"use strict";var n,o={660:t=>{t.exports=s},820:t=>{t.exports=e},984:t=>{t.exports=i},944:i=>{i.exports=t}},a={};function r(t){var i=a[t];if(void 0!==i)return i.exports;var e=a[t]={exports:{}};return o[t](e,e.exports,r),e.exports}r.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return r.d(i,{a:i}),i},r.d=(t,i)=>{for(var e in i)r.o(i,e)&&!r.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},r.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var l={};r.d(l,{default:()=>t4});var h=r(944),c=/*#__PURE__*/r.n(h);!function(t){t.compose=function(t){return t.navigation||(t.navigation=new i(t)),t};class i{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(e=>{e.call(this.chart,t,i)})}}t.Additions=i}(n||(n={}));let p=n;var d=r(984),g=/*#__PURE__*/r.n(d);let{defined:u,isNumber:m,pick:y}=c(),f={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},v={annotationsFieldsTypes:f,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),e=i.min,s=i.max,n=y(t.axis.minPointOffset,0);return m(e)&&m(s)&&t.value>=e-n&&t.value<=s+n&&!t.axis.options.isInternal})[0]},getFieldType:function(t,i){let e=f[t],s=typeof i;return u(e)&&(s=e),({string:"text",number:"number",boolean:"checkbox"})[s]}},{getAssignedAxis:b}=v,{isNumber:x,merge:A}=c(),k={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis),n=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(A({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:e.value,y:s.value,xAxis:e.axis.index,yAxis:s.axis.index},r:5}]},n.annotationsOptions,n.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let e;let s=i.options.shapes,n=s&&s[0]&&s[0].point||{};if(x(n.xAxis)&&x(n.yAxis)){let i=this.chart.inverted,s=this.chart.xAxis[n.xAxis].toPixels(n.x),o=this.chart.yAxis[n.yAxis].toPixels(n.y);e=Math.max(Math.sqrt(Math.pow(i?o-t.chartX:s-t.chartX,2)+Math.pow(i?s-t.chartY:o-t.chartY,2)),5)}i.update({shapes:[{r:e}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis),n=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(A({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:e.axis.index,yAxis:s.axis.index,points:[{x:e.value,y:s.value},{x:e.value,y:s.value}],ry:1}]},n.annotationsOptions,n.bindings.ellipseAnnotation.annotationOptions))},steps:[function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[1]);e.translatePoint(t.chartX-s.x,t.chartY-s.y,1),e.redraw(!1)},function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[0]),n=e.getAbsolutePosition(e.points[1]),o=e.getDistanceFromLine(s,n,t.chartX,t.chartY),a=e.getYAxis(),r=Math.abs(a.toValue(0)-a.toValue(o));e.setYRadius(r),e.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis);if(!e||!s)return;let n=e.value,o=s.value,a=e.axis.index,r=s.axis.index,l=this.chart.options.navigation;return this.chart.addAnnotation(A({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:a,yAxis:r,x:n,y:o},{xAxis:a,yAxis:r,x:n,y:o},{xAxis:a,yAxis:r,x:n,y:o},{xAxis:a,yAxis:r,x:n,y:o},{command:"Z"}]}]},l.annotationsOptions,l.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.options.shapes,s=e&&e[0]&&e[0].points||[],n=this.chart.pointer?.getCoordinates(t),o=n&&b(n.xAxis),a=n&&b(n.yAxis);if(o&&a){let t=o.value,e=a.value;s[1].x=t,s[2].x=t,s[2].y=e,s[3].y=e,i.update({shapes:[{points:s}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis),n=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(A({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:e.axis.index,yAxis:s.axis.index,x:e.value,y:s.value}}]},n.annotationsOptions,n.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:C}=c(),{format:w}=g(),{composed:O,doc:N,win:L}=c(),{getAssignedAxis:T,getFieldType:B}=v,{addEvent:E,attr:S,defined:I,fireEvent:z,isArray:P,isFunction:W,isNumber:H,isObject:Y,merge:R,objectEach:M,pick:X,pushUnique:U}=c();function D(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function F(){this.navigationBindings&&this.navigationBindings.destroy()}function K(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new G(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function V(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let e=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(e=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let s=this.navigationBindings.container[0];M(t.boundClassNames,(t,n)=>{let o=s.querySelectorAll("."+n);if(o)for(let s=0;s=4||n.call(this,t)}})}class G{static compose(t,i){U(O,"NavigationBindings")&&(E(t,"remove",D),_(t),M(t.types,t=>{_(t)}),E(i,"destroy",F),E(i,"load",K),E(i,"render",V),E(G,"closePopup",q),E(G,"deselectButton",Z),C(k))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=N.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&T(i.xAxis),i&&T(i.yAxis)]}initEvents(){let t=this,i=t.chart,e=t.container,s=t.options;t.boundClassNames={},M(s.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(e,i=>{t.eventsToUnbind.push(E(i,"click",e=>{let s=t.getButtonEvents(i,e);s&&!s.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(s.button,s.events,e)}))}),M(s.events||{},(i,e)=>{W(i)&&t.eventsToUnbind.push(E(t,e,i,{passive:!1}))}),t.eventsToUnbind.push(E(i.container,"click",function(e){!i.cancelClick&&i.isInsidePlot(e.chartX-i.plotLeft,e.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,e)})),t.eventsToUnbind.push(E(i.container,c().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},c().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;p.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,e){let s=this.chart,n=s.renderer.boxWrapper,o=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(o=!1),z(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&s.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),o?(this.selectedButton=i,this.selectedButtonElement=t,z(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,e),(i.start||i.steps)&&s.renderer.boxWrapper.addClass("highcharts-draw-mode")):(s.stockTools&&t.classList.remove("highcharts-active"),n.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let e=this.activeAnnotation,s=this.selectedButton,n=t.renderer.boxWrapper;e&&(e.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let e=L.Element.prototype,s=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,n=null;if(e.closest)n=e.closest.call(t,i);else do{if(s.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return n}(i.target,".highcharts-popup")?e.cancelClick&&setTimeout(()=>{e.cancelClick=!1},0):z(this,"closePopup")),s&&s.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,s.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]:(z(this,"deselectButton",{button:this.selectedButtonElement}),n.removeClass("highcharts-draw-mode"),s.end&&s.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=s.start.call(this,i),this.currentUserDetails&&s.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]):(z(this,"deselectButton",{button:this.selectedButtonElement}),n.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,s.end&&s.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return M(t,(t,e)=>{let s=parseFloat(t),n=e.split("."),o=n.length-1;if(!H(s)||t.match(/px|em/g)||e.match(/format/g)||(t=s),"undefined"!==t){let e=i;n.forEach((i,s)=>{if("__proto__"!==i&&"constructor"!==i){let a=X(n[s+1],"");o===s?e[i]=t:(e[i]||(e[i]=a.match(/\d/g)?[]:{}),e=e[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,e=G.annotationsEditable,s=e.nestedOptions,n=X(i.type,i.shapes&&i.shapes[0]&&i.shapes[0].type,i.labels&&i.labels[0]&&i.labels[0].type,"label"),o=G.annotationsNonEditable[i.langKey]||[],a={langKey:i.langKey,type:n};function r(i,e,n,a,l){let h;n&&I(i)&&-1===o.indexOf(e)&&((n.indexOf&&n.indexOf(e))>=0||n[e]||!0===n)&&(P(i)?(a[e]=[],i.forEach((t,i)=>{Y(t)?(a[e][i]={},M(t,(t,n)=>{r(t,n,s[e],a[e][i],e)})):r(t,0,s[e],a[e],e)})):Y(i)?(h={},P(a)?(a.push(h),h[e]={},h=h[e]):a[e]=h,M(i,(t,i)=>{r(t,i,0===e?n:s[e],h,e)})):"format"===e?a[e]=[w(i,t.labels[0].points[0]).toString(),"text"]:P(a)?a.push([i,B(l,i)]):a[e]=[i,B(e,i)])}return M(i,(t,o)=>{"typeOptions"===o?(a[o]={},M(i[o],(t,i)=>{r(t,i,s,a[o],i)})):r(t,o,e[n],a,o)}),a}getClickedClassNames(t,i){let e=i.target,s=[],n;for(;e&&e.tagName&&((n=S(e,"class"))&&(s=s.concat(n.split(" ").map(t=>[t,e]))),(e=e.parentNode)!==t););return s}getButtonEvents(t,i){let e;let s=this;return this.getClickedClassNames(t,i).forEach(t=>{s.boundClassNames[t[0]]&&!e&&(e={events:s.boundClassNames[t[0]],button:t[1]})}),e}update(t){this.options=R(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}G.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},G.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};var j=r(820),J=/*#__PURE__*/r.n(j);let{getOptions:Q}=c(),{getAssignedAxis:$,getFieldType:tt}=v,{defined:ti,fireEvent:te,isNumber:ts,uniqueKey:tn}=c(),to=["apo","ad","aroon","aroonoscillator","atr","ao","cci","chaikin","cmf","cmo","disparityindex","dmi","dpo","linearRegressionAngle","linearRegressionIntercept","linearRegressionSlope","klinger","macd","mfi","momentum","natr","obv","ppo","roc","rsi","slowstochastic","stochastic","trix","williamsr"],ta=["ad","cmf","klinger","mfi","obv","vbp","vwap"];function tr(t,i){let e=i.pointer?.getCoordinates(t),s,n,o=Number.MAX_VALUE,a;if(i.navigationBindings&&e&&(s=$(e.xAxis),n=$(e.yAxis)),!s||!n)return;let r=s.value,l=n.value;if(n.axis.series.forEach(i=>{if(i.points){let e=i.searchPoint(t,!0);e&&o>Math.abs(e.x-r)&&(o=Math.abs(e.x-r),a=e)}}),a&&a.x&&a.y)return{x:a.x,y:a.y,below:lt.lastVisiblePrice||t.lastPrice)},manageIndicators:function(t){let i,e,s,n;let o=this.chart,a={linkedTo:t.linkedTo,type:t.type};if("edit"===t.actionType)this.fieldsToOptions(t.fields,a),(n=o.get(t.seriesId))&&n.update(a,!1);else if("remove"===t.actionType){if((n=o.get(t.seriesId))&&(i=n.yAxis,n.linkedSeries&&n.linkedSeries.forEach(t=>{t.remove(!1)}),n.remove(!1),to.indexOf(n.type)>=0)){let t={height:i.options.height,top:i.options.top};i.remove(!1),this.resizeYAxes(t)}}else a.id=tn(),this.fieldsToOptions(t.fields,a),e=o.get(a.linkedTo),s=Q().plotOptions,void 0!==e&&e instanceof J()&&"sum"===e.getDGApproximation()&&!ti(s&&s[a.type]&&s.dataGrouping&&s.dataGrouping.approximation)&&(a.dataGrouping={approximation:"sum"}),to.indexOf(t.type)>=0?(i=o.addAxis({id:tn(),offset:0,opposite:!0,title:{text:""},tickPixelInterval:40,showLastLabel:!1,labels:{align:"left",y:-2}},!1,!1),a.yAxis=i.options.id,this.resizeYAxes()):a.yAxis=o.get(t.linkedTo).options.yAxis,ta.indexOf(t.type)>=0&&(a.params.volumeSeriesID=o.series.filter(function(t){return"column"===t.options.type})[0].options.id),o.addSeries(a,!1);te(this,"deselectButton",{button:this.selectedButtonElement}),o.redraw()},shallowArraysEqual:function(t,i){if(!ti(t)||!ti(i)||t.length!==i.length)return!1;for(let e=0;e{s>=t&&(e.x=n.toValue(i[n.horiz?"chartX":"chartY"]),e.y=o.toValue(i[o.horiz?"chartX":"chartY"]))}),e.update({typeOptions:{points:s.points}}))}},updateRectSize:function(t,i){let e=i.chart,s=i.options.typeOptions,n=ts(s.xAxis)&&e.xAxis[s.xAxis],o=ts(s.yAxis)&&e.yAxis[s.yAxis];if(n&&o){let a=n.toValue(t[n.horiz?"chartX":"chartY"]),r=o.toValue(t[o.horiz?"chartX":"chartY"]),l=a-s.point.x,h=s.point.y-r;i.update({typeOptions:{background:{width:e.inverted?h:l,height:e.inverted?l:h}}})}}},{addFlagFromForm:th,attractToPoint:tc,isNotNavigatorYAxis:tp,isPriceIndicatorEnabled:td,manageIndicators:tg,updateHeight:tu,updateNthPoint:tm,updateRectSize:ty}=tl,{fireEvent:tf,merge:tv}=c(),tb={segment:{className:"highcharts-segment",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"segment",type:"crookedLine",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.segment.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},arrowSegment:{className:"highcharts-arrow-segment",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"arrowSegment",type:"crookedLine",typeOptions:{line:{markerEnd:"arrow"},xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.arrowSegment.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},ray:{className:"highcharts-ray",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"ray",type:"infinityLine",typeOptions:{type:"ray",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.ray.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},arrowRay:{className:"highcharts-arrow-ray",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"arrowRay",type:"infinityLine",typeOptions:{type:"ray",line:{markerEnd:"arrow"},xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.arrowRay.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},infinityLine:{className:"highcharts-infinity-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"infinityLine",type:"infinityLine",typeOptions:{type:"line",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.infinityLine.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},arrowInfinityLine:{className:"highcharts-arrow-infinity-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"arrowInfinityLine",type:"infinityLine",typeOptions:{type:"line",line:{markerEnd:"arrow"},xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.arrowInfinityLine.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},horizontalLine:{className:"highcharts-horizontal-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"horizontalLine",type:"infinityLine",draggable:"y",typeOptions:{type:"horizontalLine",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.horizontalLine.annotationsOptions);this.chart.addAnnotation(n)}},verticalLine:{className:"highcharts-vertical-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"verticalLine",type:"infinityLine",draggable:"x",typeOptions:{type:"verticalLine",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.verticalLine.annotationsOptions);this.chart.addAnnotation(n)}},crooked3:{className:"highcharts-crooked3",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"crooked3",type:"crookedLine",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n}]}},o.annotationsOptions,o.bindings.crooked3.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2)]},crooked5:{className:"highcharts-crooked5",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"crooked5",type:"crookedLine",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n}]}},o.annotationsOptions,o.bindings.crooked5.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2),tm(3),tm(4)]},elliott3:{className:"highcharts-elliott3",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"elliott3",type:"elliottWave",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n}]},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.elliott3.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2),tm(3)]},elliott5:{className:"highcharts-elliott5",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"elliott5",type:"elliottWave",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n}]},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.elliott5.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2),tm(3),tm(4),tm(5)]},measureX:{className:"highcharts-measure-x",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"measure",type:"measure",typeOptions:{selectType:"x",xAxis:i.axis.index,yAxis:e.axis.index,point:{x:s,y:n},crosshairX:{strokeWidth:1,stroke:"#000000"},crosshairY:{enabled:!1,strokeWidth:0,stroke:"#000000"},background:{width:0,height:0,strokeWidth:0,stroke:"#ffffff"}},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.measureX.annotationsOptions);return this.chart.addAnnotation(a)},steps:[ty]},measureY:{className:"highcharts-measure-y",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"measure",type:"measure",typeOptions:{selectType:"y",xAxis:i.axis.index,yAxis:e.axis.index,point:{x:s,y:n},crosshairX:{enabled:!1,strokeWidth:0,stroke:"#000000"},crosshairY:{strokeWidth:1,stroke:"#000000"},background:{width:0,height:0,strokeWidth:0,stroke:"#ffffff"}},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.measureY.annotationsOptions);return this.chart.addAnnotation(a)},steps:[ty]},measureXY:{className:"highcharts-measure-xy",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"measure",type:"measure",typeOptions:{selectType:"xy",xAxis:i.axis.index,yAxis:e.axis.index,point:{x:s,y:n},background:{width:0,height:0,strokeWidth:0,stroke:"#ffffff"},crosshairX:{strokeWidth:1,stroke:"#000000"},crosshairY:{strokeWidth:1,stroke:"#000000"}},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.measureXY.annotationsOptions);return this.chart.addAnnotation(a)},steps:[ty]},fibonacci:{className:"highcharts-fibonacci",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"fibonacci",type:"fibonacci",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n}]},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.fibonacci.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tu]},parallelChannel:{className:"highcharts-parallel-channel",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"parallelChannel",type:"tunnel",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n}]}},o.annotationsOptions,o.bindings.parallelChannel.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tu]},pitchfork:{className:"highcharts-pitchfork",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"pitchfork",type:"pitchfork",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value,controlPoint:{style:{fill:"#f21313"}}},{x:s,y:n},{x:s,y:n}],innerBackground:{fill:"rgba(100, 170, 255, 0.8)"}},shapeOptions:{strokeWidth:2}},o.annotationsOptions,o.bindings.pitchfork.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2)]},verticalCounter:{className:"highcharts-vertical-counter",start:function(t){let i=tc(t,this.chart);if(!i)return;this.verticalCounter=this.verticalCounter||0;let e=this.chart.options.navigation,s=tv({langKey:"verticalCounter",type:"verticalLine",typeOptions:{point:{x:i.x,y:i.y,xAxis:i.xAxis,yAxis:i.yAxis},label:{offset:i.below?40:-40,text:this.verticalCounter.toString()}},labelOptions:{style:{color:"#666666",fontSize:"0.7em"}},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1}},e.annotationsOptions,e.bindings.verticalCounter.annotationsOptions),n=this.chart.addAnnotation(s);this.verticalCounter++,n.options.events.click.call(n,{})}},timeCycles:{className:"highcharts-time-cycles",start:function(t){let i=tc(t,this.chart);if(!i)return;let e=this.chart.options.navigation,s=tv({langKey:"timeCycles",type:"timeCycles",typeOptions:{xAxis:i.xAxis,yAxis:i.yAxis,points:[{x:i.x},{x:i.x}],line:{stroke:"rgba(0, 0, 0, 0.75)",fill:"transparent",strokeWidth:2}}},e.annotationsOptions,e.bindings.timeCycles.annotationsOptions),n=this.chart.addAnnotation(s);return n.options.events.click.call(n,{}),n},steps:[tm(1)]},verticalLabel:{className:"highcharts-vertical-label",start:function(t){let i=tc(t,this.chart);if(!i)return;let e=this.chart.options.navigation,s=tv({langKey:"verticalLabel",type:"verticalLine",typeOptions:{point:{x:i.x,y:i.y,xAxis:i.xAxis,yAxis:i.yAxis},label:{offset:i.below?40:-40}},labelOptions:{style:{color:"#666666",fontSize:"0.7em"}},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1}},e.annotationsOptions,e.bindings.verticalLabel.annotationsOptions),n=this.chart.addAnnotation(s);n.options.events.click.call(n,{})}},verticalArrow:{className:"highcharts-vertical-arrow",start:function(t){let i=tc(t,this.chart);if(!i)return;let e=this.chart.options.navigation,s=tv({langKey:"verticalArrow",type:"verticalLine",typeOptions:{point:{x:i.x,y:i.y,xAxis:i.xAxis,yAxis:i.yAxis},label:{offset:i.below?40:-40,format:" "},connector:{fill:"none",stroke:i.below?"#f21313":"#06b535"}},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1}},e.annotationsOptions,e.bindings.verticalArrow.annotationsOptions),n=this.chart.addAnnotation(s);n.options.events.click.call(n,{})}},fibonacciTimeZones:{className:"highcharts-fibonacci-time-zones",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({type:"fibonacciTimeZones",langKey:"fibonacciTimeZones",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value}]}},s.annotationsOptions,s.bindings.fibonacciTimeZones.annotationsOptions);return this.chart.addAnnotation(n)},steps:[function(t,i){let e=i.options.typeOptions.points,s=e&&e[0].x,[n,o]=this.getCoords(t);n&&o&&i.update({typeOptions:{xAxis:n.axis.index,yAxis:o.axis.index,points:[{x:s},{x:n.value}]}})}]},flagCirclepin:{className:"highcharts-flag-circlepin",start:th("circlepin")},flagDiamondpin:{className:"highcharts-flag-diamondpin",start:th("flag")},flagSquarepin:{className:"highcharts-flag-squarepin",start:th("squarepin")},flagSimplepin:{className:"highcharts-flag-simplepin",start:th("nopin")},zoomX:{className:"highcharts-zoom-x",init:function(t){this.chart.update({chart:{zooming:{type:"x"}}}),tf(this,"deselectButton",{button:t})}},zoomY:{className:"highcharts-zoom-y",init:function(t){this.chart.update({chart:{zooming:{type:"y"}}}),tf(this,"deselectButton",{button:t})}},zoomXY:{className:"highcharts-zoom-xy",init:function(t){this.chart.update({chart:{zooming:{type:"xy"}}}),tf(this,"deselectButton",{button:t})}},seriesTypeLine:{className:"highcharts-series-type-line",init:function(t){this.chart.series[0].update({type:"line",useOhlcData:!0}),tf(this,"deselectButton",{button:t})}},seriesTypeOhlc:{className:"highcharts-series-type-ohlc",init:function(t){this.chart.series[0].update({type:"ohlc"}),tf(this,"deselectButton",{button:t})}},seriesTypeCandlestick:{className:"highcharts-series-type-candlestick",init:function(t){this.chart.series[0].update({type:"candlestick"}),tf(this,"deselectButton",{button:t})}},seriesTypeHeikinAshi:{className:"highcharts-series-type-heikinashi",init:function(t){this.chart.series[0].update({type:"heikinashi"}),tf(this,"deselectButton",{button:t})}},seriesTypeHLC:{className:"highcharts-series-type-hlc",init:function(t){this.chart.series[0].update({type:"hlc",useOhlcData:!0}),tf(this,"deselectButton",{button:t})}},seriesTypeHollowCandlestick:{className:"highcharts-series-type-hollowcandlestick",init:function(t){this.chart.series[0].update({type:"hollowcandlestick"}),tf(this,"deselectButton",{button:t})}},fullScreen:{className:"highcharts-full-screen",noDataState:"normal",init:function(t){this.chart.fullscreen&&this.chart.fullscreen.toggle(),tf(this,"deselectButton",{button:t})}},currentPriceIndicator:{className:"highcharts-current-price-indicator",init:function(t){let i=this.chart,e=i.series,s=i.stockTools,n=td(i.series);s&&s.guiEnabled&&(e.forEach(function(t){t.update({lastPrice:{enabled:!n},lastVisiblePrice:{enabled:!n,label:{enabled:!0}}},!1)}),i.redraw()),tf(this,"deselectButton",{button:t})}},indicators:{className:"highcharts-indicators",init:function(){let t=this;tf(t,"showPopup",{formType:"indicators",options:{},onSubmit:function(i){tg.call(t,i)}})}},toggleAnnotations:{className:"highcharts-toggle-annotations",init:function(t){let i=this.chart,e=i.stockTools,s=e.getIconsURL();this.toggledAnnotations=!this.toggledAnnotations,(i.annotations||[]).forEach(function(t){t.setVisibility(!this.toggledAnnotations)},this),e&&e.guiEnabled&&(this.toggledAnnotations?t.firstChild.style["background-image"]='url("'+s+'annotations-hidden.svg")':t.firstChild.style["background-image"]='url("'+s+'annotations-visible.svg")'),tf(this,"deselectButton",{button:t})}},saveChart:{className:"highcharts-save-chart",noDataState:"normal",init:function(t){let i=this.chart,e=[],s=[],n=[],o=[];i.annotations.forEach(function(t,i){e[i]=t.userOptions}),i.series.forEach(function(t){t.is("sma")?s.push(t.userOptions):"flags"===t.type&&n.push(t.userOptions)}),i.yAxis.forEach(function(t){tp(t)&&o.push(t.options)}),c().win.localStorage.setItem("highcharts-chart",JSON.stringify({annotations:e,indicators:s,flags:n,yAxes:o})),tf(this,"deselectButton",{button:t})}}},tx={lang:{stockTools:{gui:{simpleShapes:"Simple shapes",lines:"Lines",crookedLines:"Crooked lines",measure:"Measure",advanced:"Advanced",toggleAnnotations:"Toggle annotations",verticalLabels:"Vertical labels",flags:"Flags",zoomChange:"Zoom change",typeChange:"Type change",saveChart:"Save chart",indicators:"Indicators",currentPriceIndicator:"Current Price Indicators",zoomX:"Zoom X",zoomY:"Zoom Y",zoomXY:"Zooom XY",fullScreen:"Fullscreen",typeOHLC:"OHLC",typeLine:"Line",typeCandlestick:"Candlestick",typeHLC:"HLC",typeHollowCandlestick:"Hollow Candlestick",typeHeikinAshi:"Heikin Ashi",circle:"Circle",ellipse:"Ellipse",label:"Label",rectangle:"Rectangle",flagCirclepin:"Flag circle",flagDiamondpin:"Flag diamond",flagSquarepin:"Flag square",flagSimplepin:"Flag simple",measureXY:"Measure XY",measureX:"Measure X",measureY:"Measure Y",segment:"Segment",arrowSegment:"Arrow segment",ray:"Ray",arrowRay:"Arrow ray",line:"Line",arrowInfinityLine:"Arrow line",horizontalLine:"Horizontal line",verticalLine:"Vertical line",infinityLine:"Infinity line",crooked3:"Crooked 3 line",crooked5:"Crooked 5 line",elliott3:"Elliott 3 line",elliott5:"Elliott 5 line",verticalCounter:"Vertical counter",verticalLabel:"Vertical label",verticalArrow:"Vertical arrow",fibonacci:"Fibonacci",fibonacciTimeZones:"Fibonacci Time Zones",pitchfork:"Pitchfork",parallelChannel:"Parallel channel",timeCycles:"Time Cycles"}},navigation:{popup:{circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",segment:"Segment",arrowSegment:"Arrow segment",ray:"Ray",arrowRay:"Arrow ray",line:"Line",arrowInfinityLine:"Arrow line",horizontalLine:"Horizontal line",verticalLine:"Vertical line",crooked3:"Crooked 3 line",crooked5:"Crooked 5 line",elliott3:"Elliott 3 line",elliott5:"Elliott 5 line",verticalCounter:"Vertical counter",verticalLabel:"Vertical label",verticalArrow:"Vertical arrow",fibonacci:"Fibonacci",fibonacciTimeZones:"Fibonacci Time Zones",pitchfork:"Pitchfork",parallelChannel:"Parallel channel",infinityLine:"Infinity line",measure:"Measure",measureXY:"Measure XY",measureX:"Measure X",measureY:"Measure Y",timeCycles:"Time Cycles",flags:"Flags",addButton:"Add",saveButton:"Save",editButton:"Edit",removeButton:"Remove",series:"Series",volume:"Volume",connector:"Connector",innerBackground:"Inner background",outerBackground:"Outer background",crosshairX:"Crosshair X",crosshairY:"Crosshair Y",tunnel:"Tunnel",background:"Background",noFilterMatch:"No match",searchIndicators:"Search Indicators",clearFilter:"✕ clear filter",index:"Index",period:"Period",periods:"Periods",standardDeviation:"Standard deviation",periodTenkan:"Tenkan period",periodSenkouSpanB:"Senkou Span B period",periodATR:"ATR period",multiplierATR:"ATR multiplier",shortPeriod:"Short period",longPeriod:"Long period",signalPeriod:"Signal period",decimals:"Decimals",algorithm:"Algorithm",topBand:"Top band",bottomBand:"Bottom band",initialAccelerationFactor:"Initial acceleration factor",maxAccelerationFactor:"Max acceleration factor",increment:"Increment",multiplier:"Multiplier",ranges:"Ranges",highIndex:"High index",lowIndex:"Low index",deviation:"Deviation",xAxisUnit:"x-axis unit",factor:"Factor",fastAvgPeriod:"Fast average period",slowAvgPeriod:"Slow average period",average:"Average",indicatorAliases:{abands:["Acceleration Bands"],bb:["Bollinger Bands"],dema:["Double Exponential Moving Average"],ema:["Exponential Moving Average"],ikh:["Ichimoku Kinko Hyo"],keltnerchannels:["Keltner Channels"],linearRegression:["Linear Regression"],pivotpoints:["Pivot Points"],pc:["Price Channel"],priceenvelopes:["Price Envelopes"],psar:["Parabolic SAR"],sma:["Simple Moving Average"],supertrend:["Super Trend"],tema:["Triple Exponential Moving Average"],vbp:["Volume by Price"],vwap:["Volume Weighted Moving Average"],wma:["Weighted Moving Average"],zigzag:["Zig Zag"],apo:["Absolute price indicator"],ad:["Accumulation/Distribution"],aroon:["Aroon"],aroonoscillator:["Aroon oscillator"],atr:["Average True Range"],ao:["Awesome oscillator"],cci:["Commodity Channel Index"],chaikin:["Chaikin"],cmf:["Chaikin Money Flow"],cmo:["Chande Momentum Oscillator"],disparityindex:["Disparity Index"],dmi:["Directional Movement Index"],dpo:["Detrended price oscillator"],klinger:["Klinger Oscillator"],linearRegressionAngle:["Linear Regression Angle"],linearRegressionIntercept:["Linear Regression Intercept"],linearRegressionSlope:["Linear Regression Slope"],macd:["Moving Average Convergence Divergence"],mfi:["Money Flow Index"],momentum:["Momentum"],natr:["Normalized Average True Range"],obv:["On-Balance Volume"],ppo:["Percentage Price oscillator"],roc:["Rate of Change"],rsi:["Relative Strength Index"],slowstochastic:["Slow Stochastic"],stochastic:["Stochastic"],trix:["TRIX"],williamsr:["Williams %R"]}}}},stockTools:{gui:{enabled:!0,className:"highcharts-bindings-wrapper",toolbarClassName:"stocktools-toolbar",buttons:["indicators","separator","simpleShapes","lines","crookedLines","measure","advanced","toggleAnnotations","separator","verticalLabels","flags","separator","zoomChange","fullScreen","typeChange","separator","currentPriceIndicator","saveChart"],definitions:{separator:{elementType:"span",symbol:"separator.svg"},simpleShapes:{items:["label","circle","ellipse","rectangle"],circle:{symbol:"circle.svg"},ellipse:{symbol:"ellipse.svg"},rectangle:{symbol:"rectangle.svg"},label:{symbol:"label.svg"}},flags:{items:["flagCirclepin","flagDiamondpin","flagSquarepin","flagSimplepin"],flagSimplepin:{symbol:"flag-basic.svg"},flagDiamondpin:{symbol:"flag-diamond.svg"},flagSquarepin:{symbol:"flag-trapeze.svg"},flagCirclepin:{symbol:"flag-elipse.svg"}},lines:{items:["segment","arrowSegment","ray","arrowRay","line","arrowInfinityLine","horizontalLine","verticalLine"],segment:{symbol:"segment.svg"},arrowSegment:{symbol:"arrow-segment.svg"},ray:{symbol:"ray.svg"},arrowRay:{symbol:"arrow-ray.svg"},line:{symbol:"line.svg"},arrowInfinityLine:{symbol:"arrow-line.svg"},verticalLine:{symbol:"vertical-line.svg"},horizontalLine:{symbol:"horizontal-line.svg"}},crookedLines:{items:["elliott3","elliott5","crooked3","crooked5"],crooked3:{symbol:"crooked-3.svg"},crooked5:{symbol:"crooked-5.svg"},elliott3:{symbol:"elliott-3.svg"},elliott5:{symbol:"elliott-5.svg"}},verticalLabels:{items:["verticalCounter","verticalLabel","verticalArrow"],verticalCounter:{symbol:"vertical-counter.svg"},verticalLabel:{symbol:"vertical-label.svg"},verticalArrow:{symbol:"vertical-arrow.svg"}},advanced:{items:["fibonacci","fibonacciTimeZones","pitchfork","parallelChannel","timeCycles"],pitchfork:{symbol:"pitchfork.svg"},fibonacci:{symbol:"fibonacci.svg"},fibonacciTimeZones:{symbol:"fibonacci-timezone.svg"},parallelChannel:{symbol:"parallel-channel.svg"},timeCycles:{symbol:"time-cycles.svg"}},measure:{items:["measureXY","measureX","measureY"],measureX:{symbol:"measure-x.svg"},measureY:{symbol:"measure-y.svg"},measureXY:{symbol:"measure-xy.svg"}},toggleAnnotations:{symbol:"annotations-visible.svg"},currentPriceIndicator:{symbol:"current-price-show.svg"},indicators:{symbol:"indicators.svg"},zoomChange:{items:["zoomX","zoomY","zoomXY"],zoomX:{symbol:"zoom-x.svg"},zoomY:{symbol:"zoom-y.svg"},zoomXY:{symbol:"zoom-xy.svg"}},typeChange:{items:["typeOHLC","typeLine","typeCandlestick","typeHollowCandlestick","typeHLC","typeHeikinAshi"],typeOHLC:{symbol:"series-ohlc.svg"},typeLine:{symbol:"series-line.svg"},typeCandlestick:{symbol:"series-candlestick.svg"},typeHLC:{symbol:"series-hlc.svg"},typeHeikinAshi:{symbol:"series-heikin-ashi.svg"},typeHollowCandlestick:{symbol:"series-hollow-candlestick.svg"}},fullScreen:{symbol:"fullscreen.svg"},saveChart:{symbol:"save-chart.svg"}},visible:!0}}},{setOptions:tA}=c(),{getAssignedAxis:tk}=v,{isNotNavigatorYAxis:tC,isPriceIndicatorEnabled:tw}=tl,{correctFloat:tO,defined:tN,isNumber:tL,pick:tT}=c();function tB(t,i,e,s){let n=0,o,a,r;function l(t){return tN(t)&&!tL(t)&&t.match("%")}return s&&(r=tO(parseFloat(s.top)/100),a=tO(parseFloat(s.height)/100)),{positions:t.map((s,h)=>{let c=tO(l(s.options.height)?parseFloat(s.options.height)/100:s.height/i),p=tO(l(s.options.top)?parseFloat(s.options.top)/100:(s.top-s.chart.plotTop)/i);return a?(p>r&&(p-=a),n=Math.max(n,(p||0)+(c||0))):(tL(c)||(c=t[h-1].series.every(t=>t.is("sma"))?o:e/100),tL(p)||(p=n),o=c,n=tO(Math.max(n,(p||0)+(c||0)))),{height:100*c,top:100*p}}),allAxesHeight:n}}function tE(t){let i=[];return t.forEach(function(e,s){let n=t[s+1];n?i[s]={enabled:!0,controlledAxis:{next:[tT(n.options.id,n.index)]}}:i[s]={enabled:!1}}),i}function tS(t,i,e,s){return t.forEach(function(n,o){let a=t[o-1];n.top=a?tO(a.height+a.top):0,e&&(n.height=tO(n.height+s*i))}),t}function tI(t){let i=this.chart,e=i.yAxis.filter(tC),s=i.plotHeight,{positions:n,allAxesHeight:o}=this.getYAxisPositions(e,s,20,t),a=this.getYAxisResizers(e);!t&&o<=tO(1)?n[n.length-1]={height:20,top:tO(100*o-20)}:n.forEach(function(t){t.height=t.height/(100*o)*100,t.top=t.top/(100*o)*100}),n.forEach(function(t,i){e[i].update({height:t.height+"%",top:t.top+"%",resize:a[i],offset:0},!1)})}var tz=r(660),tP=/*#__PURE__*/r.n(tz);let{addEvent:tW,createElement:tH,css:tY,defined:tR,fireEvent:tM,getStyle:tX,isArray:tU,merge:tD,pick:tF}=c(),{shallowArraysEqual:tK}=tl;class tV{constructor(t,i,e){this.width=0,this.isDirty=!1,this.chart=e,this.options=t,this.lang=i,this.iconsURL=this.getIconsURL(),this.guiEnabled=t.enabled,this.visible=tF(t.visible,!0),this.guiClassName=t.className,this.toolbarClassName=t.toolbarClassName,this.eventsToUnbind=[],this.guiEnabled&&(this.createContainer(),this.createButtons(),this.showHideNavigation()),tM(this,"afterInit")}createButtons(){let t=this.lang,i=this.options,e=this.toolbar,s=i.buttons,n=i.definitions,o=e.childNodes;this.buttonList=s,s.forEach(i=>{let s=this.addButton(e,n,i,t);this.eventsToUnbind.push(tW(s.buttonWrapper,"click",()=>this.eraseActiveButtons(o,s.buttonWrapper))),tU(n[i].items)&&this.addSubmenu(s,n[i])})}addSubmenu(t,i){let e=t.submenuArrow,s=t.buttonWrapper,n=tX(s,"width"),o=this.wrapper,a=this.listWrapper,r=this.toolbar.childNodes,l=this.submenu=tH("ul",{className:"highcharts-submenu-wrapper"},void 0,s);this.addSubmenuItems(s,i),this.eventsToUnbind.push(tW(e,"click",t=>{if(t.stopPropagation(),this.eraseActiveButtons(r,s),s.className.indexOf("highcharts-current")>=0)a.style.width=a.startWidth+"px",s.classList.remove("highcharts-current"),l.style.display="none";else{l.style.display="block";let t=l.offsetHeight-s.offsetHeight-3;l.offsetHeight+s.offsetTop>o.offsetHeight&&s.offsetTop>t||(t=0),tY(l,{top:-t+"px",left:n+3+"px"}),s.className+=" highcharts-current",a.startWidth=o.offsetWidth,a.style.width=a.startWidth+tX(a,"padding-left")+l.offsetWidth+3+"px"}}))}addSubmenuItems(t,i){let e;let s=this,n=this.submenu,o=this.lang,a=this.listWrapper;i.items.forEach(r=>{e=this.addButton(n,i,r,o),this.eventsToUnbind.push(tW(e.mainButton,"click",function(){s.switchSymbol(this,t,!0),a.style.width=a.startWidth+"px",n.style.display="none"}))});let r=n.querySelectorAll("li > .highcharts-menu-item-btn")[0];this.switchSymbol(r,!1)}eraseActiveButtons(t,i,e){[].forEach.call(t,t=>{t!==i&&(t.classList.remove("highcharts-current"),t.classList.remove("highcharts-active"),(e=t.querySelectorAll(".highcharts-submenu-wrapper")).length>0&&(e[0].style.display="none"))})}addButton(t,i,e,s={}){let n=i[e],o=n.items,a=tV.prototype.classMapping,r=n.className||"",l=tH("li",{className:tF(a[e],"")+" "+r,title:s[e]||e},void 0,t),h=tH(n.elementType||"button",{className:"highcharts-menu-item-btn"},void 0,l);if(o&&o.length){let t=tH("button",{className:"highcharts-submenu-item-arrow highcharts-arrow-right"},void 0,l);return t.style.backgroundImage="url("+this.iconsURL+"arrow-bottom.svg)",{buttonWrapper:l,mainButton:h,submenuArrow:t}}return h.style.backgroundImage="url("+this.iconsURL+n.symbol+")",{buttonWrapper:l,mainButton:h}}addNavigation(){let t=this.wrapper;this.arrowWrapper=tH("div",{className:"highcharts-arrow-wrapper"}),this.arrowUp=tH("div",{className:"highcharts-arrow-up"},void 0,this.arrowWrapper),this.arrowUp.style.backgroundImage="url("+this.iconsURL+"arrow-right.svg)",this.arrowDown=tH("div",{className:"highcharts-arrow-down"},void 0,this.arrowWrapper),this.arrowDown.style.backgroundImage="url("+this.iconsURL+"arrow-right.svg)",t.insertBefore(this.arrowWrapper,t.childNodes[0]),this.scrollButtons()}scrollButtons(){let t=this.wrapper,i=this.toolbar,e=.1*t.offsetHeight,s=0;this.eventsToUnbind.push(tW(this.arrowUp,"click",()=>{s>0&&(s-=e,i.style.marginTop=-s+"px")})),this.eventsToUnbind.push(tW(this.arrowDown,"click",()=>{t.offsetHeight+s<=i.offsetHeight+e&&(s+=e,i.style.marginTop=-s+"px")}))}createContainer(){let t,i;let e=this.chart,s=this.options,n=e.container,o=e.options.navigation,a=o?.bindingsClassName,r=this,l=this.wrapper=tH("div",{className:"highcharts-stocktools-wrapper "+s.className+" "+a});n.appendChild(l),this.showHideBtn=tH("div",{className:"highcharts-toggle-toolbar highcharts-arrow-left"},void 0,l),this.eventsToUnbind.push(tW(this.showHideBtn,"click",()=>{this.update({gui:{visible:!r.visible}})})),["mousedown","mousemove","click","touchstart"].forEach(t=>{tW(l,t,t=>t.stopPropagation())}),tW(l,"mouseover",t=>e.pointer?.onContainerMouseLeave(t)),this.toolbar=i=tH("ul",{className:"highcharts-stocktools-toolbar "+s.toolbarClassName}),this.listWrapper=t=tH("div",{className:"highcharts-menu-wrapper"}),l.insertBefore(t,l.childNodes[0]),t.insertBefore(i,t.childNodes[0]),this.showHideToolbar(),this.addNavigation()}showHideNavigation(){this.visible&&this.toolbar.offsetHeight>this.wrapper.offsetHeight-50?this.arrowWrapper.style.display="block":(this.toolbar.style.marginTop="0px",this.arrowWrapper.style.display="none")}showHideToolbar(){let t=this.wrapper,i=this.listWrapper,e=this.submenu,s=this.showHideBtn,n=this.visible;s.style.backgroundImage="url("+this.iconsURL+"arrow-right.svg)",n?(t.style.height="100%",i.classList.remove("highcharts-hide"),s.classList.remove("highcharts-arrow-right"),s.style.top=tX(i,"padding-top")+"px",s.style.left=t.offsetWidth+tX(i,"padding-left")+"px"):(e&&(e.style.display="none"),s.style.left="0px",n=this.visible=!1,i.classList.add("highcharts-hide"),s.classList.add("highcharts-arrow-right"),t.style.height=s.offsetHeight+"px")}switchSymbol(t,i){let e=t.parentNode,s=e.className,n=e.parentNode.parentNode;!(s.indexOf("highcharts-disabled-btn")>-1)&&(n.className="",s&&n.classList.add(s.trim()),n.querySelectorAll(".highcharts-menu-item-btn")[0].style.backgroundImage=t.style.backgroundImage,i&&this.toggleButtonActiveClass(n))}toggleButtonActiveClass(t){let i=t.classList;i.contains("highcharts-active")?i.remove("highcharts-active"):i.add("highcharts-active")}unselectAllButtons(t){let i=t.parentNode.querySelectorAll(".highcharts-active");[].forEach.call(i,i=>{i!==t&&i.classList.remove("highcharts-active")})}update(t,i){this.isDirty=!!t.gui.definitions,tD(!0,this.chart.options.stockTools,t),tD(!0,this.options,t.gui),this.visible=tF(this.options.visible&&this.options.enabled,!0),this.chart.navigationBindings&&this.chart.navigationBindings.update(),this.chart.isDirtyBox=!0,tF(i,!0)&&this.chart.redraw()}destroy(){let t=this.wrapper,i=t&&t.parentNode;this.eventsToUnbind.forEach(t=>t()),i&&i.removeChild(t)}redraw(){if(this.options.enabled!==this.guiEnabled)this.handleGuiEnabledChange();else{if(!this.guiEnabled)return;this.updateClassNames(),this.updateButtons(),this.updateVisibility(),this.showHideNavigation(),this.showHideToolbar()}}handleGuiEnabledChange(){!1===this.options.enabled&&(this.destroy(),this.visible=!1),!0===this.options.enabled&&(this.createContainer(),this.createButtons()),this.guiEnabled=this.options.enabled}updateClassNames(){this.options.className!==this.guiClassName&&(this.guiClassName&&this.wrapper.classList.remove(this.guiClassName),this.options.className&&this.wrapper.classList.add(this.options.className),this.guiClassName=this.options.className),this.options.toolbarClassName!==this.toolbarClassName&&(this.toolbarClassName&&this.toolbar.classList.remove(this.toolbarClassName),this.options.toolbarClassName&&this.toolbar.classList.add(this.options.toolbarClassName),this.toolbarClassName=this.options.toolbarClassName)}updateButtons(){(!tK(this.options.buttons,this.buttonList)||this.isDirty)&&(this.toolbar.innerHTML=tP().emptyHTML,this.createButtons())}updateVisibility(){tR(this.options.visible)&&(this.visible=this.options.visible)}getIconsURL(){return this.chart.options.navigation.iconsURL||this.options.iconsURL||"https://code.highcharts.com/12.0.2/gfx/stock-icons/"}}tV.prototype.classMapping={circle:"highcharts-circle-annotation",ellipse:"highcharts-ellipse-annotation",rectangle:"highcharts-rectangle-annotation",label:"highcharts-label-annotation",segment:"highcharts-segment",arrowSegment:"highcharts-arrow-segment",ray:"highcharts-ray",arrowRay:"highcharts-arrow-ray",line:"highcharts-infinity-line",arrowInfinityLine:"highcharts-arrow-infinity-line",verticalLine:"highcharts-vertical-line",horizontalLine:"highcharts-horizontal-line",crooked3:"highcharts-crooked3",crooked5:"highcharts-crooked5",elliott3:"highcharts-elliott3",elliott5:"highcharts-elliott5",pitchfork:"highcharts-pitchfork",fibonacci:"highcharts-fibonacci",fibonacciTimeZones:"highcharts-fibonacci-time-zones",parallelChannel:"highcharts-parallel-channel",measureX:"highcharts-measure-x",measureY:"highcharts-measure-y",measureXY:"highcharts-measure-xy",timeCycles:"highcharts-time-cycles",verticalCounter:"highcharts-vertical-counter",verticalLabel:"highcharts-vertical-label",verticalArrow:"highcharts-vertical-arrow",currentPriceIndicator:"highcharts-current-price-indicator",indicators:"highcharts-indicators",flagCirclepin:"highcharts-flag-circlepin",flagDiamondpin:"highcharts-flag-diamondpin",flagSquarepin:"highcharts-flag-squarepin",flagSimplepin:"highcharts-flag-simplepin",zoomX:"highcharts-zoom-x",zoomY:"highcharts-zoom-y",zoomXY:"highcharts-zoom-xy",typeLine:"highcharts-series-type-line",typeOHLC:"highcharts-series-type-ohlc",typeHLC:"highcharts-series-type-hlc",typeCandlestick:"highcharts-series-type-candlestick",typeHollowCandlestick:"highcharts-series-type-hollowcandlestick",typeHeikinAshi:"highcharts-series-type-heikinashi",fullScreen:"highcharts-full-screen",toggleAnnotations:"highcharts-toggle-annotations",saveChart:"highcharts-save-chart",separator:"highcharts-separator"};let{setOptions:tq}=c(),{addEvent:tZ,getStyle:t_,merge:tG,pick:tj}=c();function tJ(t){let i=this.options,e=i.lang,s=tG(i.stockTools&&i.stockTools.gui,t&&t.gui),n=e&&e.stockTools&&e.stockTools.gui;this.stockTools=new tV(s,n,this),this.stockTools.guiEnabled&&(this.isDirtyBox=!0)}function tQ(){this.setStockTools()}function t$(){this.stockTools&&(this.stockTools.redraw(),function(t){if(t.stockTools?.guiEnabled){let i=t.options.chart,e=t.stockTools.listWrapper,s=e&&(e.startWidth+t_(e,"padding-left")+t_(e,"padding-right")||e.offsetWidth);t.stockTools.width=s;let n=!1;if(s=0&&(i=i.parentNode.parentNode),i.classList.remove("highcharts-active")}}function t5(t){let i=this.chart.stockTools;if(i&&i.guiEnabled){let e=t.button;i.unselectAllButtons(t.button),e.parentNode.className.indexOf("highcharts-submenu-wrapper")>=0&&(e=e.parentNode.parentNode),i.toggleButtonActiveClass(e)}}let t2=c();t2.NavigationBindings=t2.NavigationBindings||G,t2.Toolbar=tV,({compose:function(t){let i=t.prototype;i.utils?.manageIndicators||(i.getYAxisPositions=tB,i.getYAxisResizers=tE,i.recalculateYAxisPositions=tS,i.resizeYAxes=tI,i.utils=i.utils||{},i.utils.indicatorsWithAxes=tl.indicatorsWithAxes,i.utils.indicatorsWithVolume=tl.indicatorsWithVolume,i.utils.getAssignedAxis=tk,i.utils.isPriceIndicatorEnabled=tw,i.utils.manageIndicators=tl.manageIndicators,tA(tx),tA({navigation:{bindings:tb}}))}}).compose(t2.NavigationBindings),({compose:function(t,i){let e=t.prototype;e.setStockTools||(tZ(t,"afterGetContainer",tQ),tZ(t,"beforeRedraw",t$),tZ(t,"beforeRender",t$),tZ(t,"destroy",t0),tZ(t,"getMargins",t1,{order:0}),tZ(t,"render",t6),e.setStockTools=tJ,tZ(i,"deselectButton",t3),tZ(i,"selectButton",t5),tq(tx))}}).compose(t2.Chart,t2.NavigationBindings);let t4=c();return l.default})()); \ No newline at end of file + */function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Series,t._Highcharts.AST):"function"==typeof define&&define.amd?define("highcharts/modules/stock-tools",["highcharts/highcharts"],function(t){return i(t,t.Templating,t.Series,t.AST)}):"object"==typeof exports?exports["highcharts/modules/stock-tools"]=i(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Series,t._Highcharts.AST):t.Highcharts=i(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Series,t.Highcharts.AST)}("undefined"==typeof window?this:window,(t,i,e,s)=>(()=>{"use strict";var n,o={660:t=>{t.exports=s},820:t=>{t.exports=e},984:t=>{t.exports=i},944:i=>{i.exports=t}},a={};function r(t){var i=a[t];if(void 0!==i)return i.exports;var e=a[t]={exports:{}};return o[t](e,e.exports,r),e.exports}r.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return r.d(i,{a:i}),i},r.d=(t,i)=>{for(var e in i)r.o(i,e)&&!r.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},r.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var l={};r.d(l,{default:()=>t4});var h=r(944),c=r.n(h);!function(t){t.compose=function(t){return t.navigation||(t.navigation=new i(t)),t};class i{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(e=>{e.call(this.chart,t,i)})}}t.Additions=i}(n||(n={}));let p=n;var d=r(984),g=r.n(d);let{defined:u,isNumber:m,pick:y}=c(),f={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},v={annotationsFieldsTypes:f,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),e=i.min,s=i.max,n=y(t.axis.minPointOffset,0);return m(e)&&m(s)&&t.value>=e-n&&t.value<=s+n&&!t.axis.options.isInternal})[0]},getFieldType:function(t,i){let e=f[t],s=typeof i;return u(e)&&(s=e),({string:"text",number:"number",boolean:"checkbox"})[s]}},{getAssignedAxis:b}=v,{isNumber:x,merge:A}=c(),k={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis),n=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(A({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:e.value,y:s.value,xAxis:e.axis.index,yAxis:s.axis.index},r:5}]},n.annotationsOptions,n.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let e;let s=i.options.shapes,n=s&&s[0]&&s[0].point||{};if(x(n.xAxis)&&x(n.yAxis)){let i=this.chart.inverted,s=this.chart.xAxis[n.xAxis].toPixels(n.x),o=this.chart.yAxis[n.yAxis].toPixels(n.y);e=Math.max(Math.sqrt(Math.pow(i?o-t.chartX:s-t.chartX,2)+Math.pow(i?s-t.chartY:o-t.chartY,2)),5)}i.update({shapes:[{r:e}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis),n=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(A({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:e.axis.index,yAxis:s.axis.index,points:[{x:e.value,y:s.value},{x:e.value,y:s.value}],ry:1}]},n.annotationsOptions,n.bindings.ellipseAnnotation.annotationOptions))},steps:[function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[1]);e.translatePoint(t.chartX-s.x,t.chartY-s.y,1),e.redraw(!1)},function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[0]),n=e.getAbsolutePosition(e.points[1]),o=e.getDistanceFromLine(s,n,t.chartX,t.chartY),a=e.getYAxis(),r=Math.abs(a.toValue(0)-a.toValue(o));e.setYRadius(r),e.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis);if(!e||!s)return;let n=e.value,o=s.value,a=e.axis.index,r=s.axis.index,l=this.chart.options.navigation;return this.chart.addAnnotation(A({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:a,yAxis:r,x:n,y:o},{xAxis:a,yAxis:r,x:n,y:o},{xAxis:a,yAxis:r,x:n,y:o},{xAxis:a,yAxis:r,x:n,y:o},{command:"Z"}]}]},l.annotationsOptions,l.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.options.shapes,s=e&&e[0]&&e[0].points||[],n=this.chart.pointer?.getCoordinates(t),o=n&&b(n.xAxis),a=n&&b(n.yAxis);if(o&&a){let t=o.value,e=a.value;s[1].x=t,s[2].x=t,s[2].y=e,s[3].y=e,i.update({shapes:[{points:s}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),e=i&&b(i.xAxis),s=i&&b(i.yAxis),n=this.chart.options.navigation;if(e&&s)return this.chart.addAnnotation(A({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:e.axis.index,yAxis:s.axis.index,x:e.value,y:s.value}}]},n.annotationsOptions,n.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:C}=c(),{format:w}=g(),{composed:O,doc:N,win:L}=c(),{getAssignedAxis:T,getFieldType:B}=v,{addEvent:E,attr:S,defined:I,fireEvent:z,isArray:P,isFunction:W,isNumber:H,isObject:Y,merge:R,objectEach:M,pick:X,pushUnique:U}=c();function D(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function F(){this.navigationBindings&&this.navigationBindings.destroy()}function K(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new G(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function V(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let e=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(e=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let s=this.navigationBindings.container[0];M(t.boundClassNames,(t,n)=>{let o=s.querySelectorAll("."+n);if(o)for(let s=0;s=4||n.call(this,t)}})}class G{static compose(t,i){U(O,"NavigationBindings")&&(E(t,"remove",D),_(t),M(t.types,t=>{_(t)}),E(i,"destroy",F),E(i,"load",K),E(i,"render",V),E(G,"closePopup",q),E(G,"deselectButton",Z),C(k))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=N.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&T(i.xAxis),i&&T(i.yAxis)]}initEvents(){let t=this,i=t.chart,e=t.container,s=t.options;t.boundClassNames={},M(s.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(e,i=>{t.eventsToUnbind.push(E(i,"click",e=>{let s=t.getButtonEvents(i,e);s&&!s.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(s.button,s.events,e)}))}),M(s.events||{},(i,e)=>{W(i)&&t.eventsToUnbind.push(E(t,e,i,{passive:!1}))}),t.eventsToUnbind.push(E(i.container,"click",function(e){!i.cancelClick&&i.isInsidePlot(e.chartX-i.plotLeft,e.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,e)})),t.eventsToUnbind.push(E(i.container,c().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},c().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;p.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,e){let s=this.chart,n=s.renderer.boxWrapper,o=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(o=!1),z(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&s.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),o?(this.selectedButton=i,this.selectedButtonElement=t,z(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,e),(i.start||i.steps)&&s.renderer.boxWrapper.addClass("highcharts-draw-mode")):(s.stockTools&&t.classList.remove("highcharts-active"),n.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let e=this.activeAnnotation,s=this.selectedButton,n=t.renderer.boxWrapper;e&&(e.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let e=L.Element.prototype,s=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,n=null;if(e.closest)n=e.closest.call(t,i);else do{if(s.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return n}(i.target,".highcharts-popup")?e.cancelClick&&setTimeout(()=>{e.cancelClick=!1},0):z(this,"closePopup")),s&&s.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,s.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]:(z(this,"deselectButton",{button:this.selectedButtonElement}),n.removeClass("highcharts-draw-mode"),s.end&&s.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=s.start.call(this,i),this.currentUserDetails&&s.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=s.steps[this.stepIndex]):(z(this,"deselectButton",{button:this.selectedButtonElement}),n.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,s.end&&s.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return M(t,(t,e)=>{let s=parseFloat(t),n=e.split("."),o=n.length-1;if(!H(s)||t.match(/px|em/g)||e.match(/format/g)||(t=s),"undefined"!==t){let e=i;n.forEach((i,s)=>{if("__proto__"!==i&&"constructor"!==i){let a=X(n[s+1],"");o===s?e[i]=t:(e[i]||(e[i]=a.match(/\d/g)?[]:{}),e=e[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,e=G.annotationsEditable,s=e.nestedOptions,n=X(i.type,i.shapes&&i.shapes[0]&&i.shapes[0].type,i.labels&&i.labels[0]&&i.labels[0].type,"label"),o=G.annotationsNonEditable[i.langKey]||[],a={langKey:i.langKey,type:n};function r(i,e,n,a,l){let h;n&&I(i)&&-1===o.indexOf(e)&&((n.indexOf&&n.indexOf(e))>=0||n[e]||!0===n)&&(P(i)?(a[e]=[],i.forEach((t,i)=>{Y(t)?(a[e][i]={},M(t,(t,n)=>{r(t,n,s[e],a[e][i],e)})):r(t,0,s[e],a[e],e)})):Y(i)?(h={},P(a)?(a.push(h),h[e]={},h=h[e]):a[e]=h,M(i,(t,i)=>{r(t,i,0===e?n:s[e],h,e)})):"format"===e?a[e]=[w(i,t.labels[0].points[0]).toString(),"text"]:P(a)?a.push([i,B(l,i)]):a[e]=[i,B(e,i)])}return M(i,(t,o)=>{"typeOptions"===o?(a[o]={},M(i[o],(t,i)=>{r(t,i,s,a[o],i)})):r(t,o,e[n],a,o)}),a}getClickedClassNames(t,i){let e=i.target,s=[],n;for(;e&&e.tagName&&((n=S(e,"class"))&&(s=s.concat(n.split(" ").map(t=>[t,e]))),(e=e.parentNode)!==t););return s}getButtonEvents(t,i){let e;let s=this;return this.getClickedClassNames(t,i).forEach(t=>{s.boundClassNames[t[0]]&&!e&&(e={events:s.boundClassNames[t[0]],button:t[1]})}),e}update(t){this.options=R(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}G.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},G.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};var j=r(820),J=r.n(j);let{getOptions:Q}=c(),{getAssignedAxis:$,getFieldType:tt}=v,{defined:ti,fireEvent:te,isNumber:ts,uniqueKey:tn}=c(),to=["apo","ad","aroon","aroonoscillator","atr","ao","cci","chaikin","cmf","cmo","disparityindex","dmi","dpo","linearRegressionAngle","linearRegressionIntercept","linearRegressionSlope","klinger","macd","mfi","momentum","natr","obv","ppo","roc","rsi","slowstochastic","stochastic","trix","williamsr"],ta=["ad","cmf","klinger","mfi","obv","vbp","vwap"];function tr(t,i){let e=i.pointer?.getCoordinates(t),s,n,o=Number.MAX_VALUE,a;if(i.navigationBindings&&e&&(s=$(e.xAxis),n=$(e.yAxis)),!s||!n)return;let r=s.value,l=n.value;if(n.axis.series.forEach(i=>{if(i.points){let e=i.searchPoint(t,!0);e&&o>Math.abs(e.x-r)&&(o=Math.abs(e.x-r),a=e)}}),a&&a.x&&a.y)return{x:a.x,y:a.y,below:lt.lastVisiblePrice||t.lastPrice)},manageIndicators:function(t){let i,e,s,n;let o=this.chart,a={linkedTo:t.linkedTo,type:t.type};if("edit"===t.actionType)this.fieldsToOptions(t.fields,a),(n=o.get(t.seriesId))&&n.update(a,!1);else if("remove"===t.actionType){if((n=o.get(t.seriesId))&&(i=n.yAxis,n.linkedSeries&&n.linkedSeries.forEach(t=>{t.remove(!1)}),n.remove(!1),to.indexOf(n.type)>=0)){let t={height:i.options.height,top:i.options.top};i.remove(!1),this.resizeYAxes(t)}}else a.id=tn(),this.fieldsToOptions(t.fields,a),e=o.get(a.linkedTo),s=Q().plotOptions,void 0!==e&&e instanceof J()&&"sum"===e.getDGApproximation()&&!ti(s&&s[a.type]&&s.dataGrouping&&s.dataGrouping.approximation)&&(a.dataGrouping={approximation:"sum"}),to.indexOf(t.type)>=0?(i=o.addAxis({id:tn(),offset:0,opposite:!0,title:{text:""},tickPixelInterval:40,showLastLabel:!1,labels:{align:"left",y:-2}},!1,!1),a.yAxis=i.options.id,this.resizeYAxes()):a.yAxis=o.get(t.linkedTo).options.yAxis,ta.indexOf(t.type)>=0&&(a.params.volumeSeriesID=o.series.filter(function(t){return"column"===t.options.type})[0].options.id),o.addSeries(a,!1);te(this,"deselectButton",{button:this.selectedButtonElement}),o.redraw()},shallowArraysEqual:function(t,i){if(!ti(t)||!ti(i)||t.length!==i.length)return!1;for(let e=0;e{s>=t&&(e.x=n.toValue(i[n.horiz?"chartX":"chartY"]),e.y=o.toValue(i[o.horiz?"chartX":"chartY"]))}),e.update({typeOptions:{points:s.points}}))}},updateRectSize:function(t,i){let e=i.chart,s=i.options.typeOptions,n=ts(s.xAxis)&&e.xAxis[s.xAxis],o=ts(s.yAxis)&&e.yAxis[s.yAxis];if(n&&o){let a=n.toValue(t[n.horiz?"chartX":"chartY"]),r=o.toValue(t[o.horiz?"chartX":"chartY"]),l=a-s.point.x,h=s.point.y-r;i.update({typeOptions:{background:{width:e.inverted?h:l,height:e.inverted?l:h}}})}}},{addFlagFromForm:th,attractToPoint:tc,isNotNavigatorYAxis:tp,isPriceIndicatorEnabled:td,manageIndicators:tg,updateHeight:tu,updateNthPoint:tm,updateRectSize:ty}=tl,{fireEvent:tf,merge:tv}=c(),tb={segment:{className:"highcharts-segment",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"segment",type:"crookedLine",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.segment.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},arrowSegment:{className:"highcharts-arrow-segment",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"arrowSegment",type:"crookedLine",typeOptions:{line:{markerEnd:"arrow"},xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.arrowSegment.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},ray:{className:"highcharts-ray",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"ray",type:"infinityLine",typeOptions:{type:"ray",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.ray.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},arrowRay:{className:"highcharts-arrow-ray",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"arrowRay",type:"infinityLine",typeOptions:{type:"ray",line:{markerEnd:"arrow"},xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.arrowRay.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},infinityLine:{className:"highcharts-infinity-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"infinityLine",type:"infinityLine",typeOptions:{type:"line",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.infinityLine.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},arrowInfinityLine:{className:"highcharts-arrow-infinity-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"arrowInfinityLine",type:"infinityLine",typeOptions:{type:"line",line:{markerEnd:"arrow"},xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value},{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.arrowInfinityLine.annotationsOptions);return this.chart.addAnnotation(n)},steps:[tm(1)]},horizontalLine:{className:"highcharts-horizontal-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"horizontalLine",type:"infinityLine",draggable:"y",typeOptions:{type:"horizontalLine",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.horizontalLine.annotationsOptions);this.chart.addAnnotation(n)}},verticalLine:{className:"highcharts-vertical-line",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({langKey:"verticalLine",type:"infinityLine",draggable:"x",typeOptions:{type:"verticalLine",xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value}]}},s.annotationsOptions,s.bindings.verticalLine.annotationsOptions);this.chart.addAnnotation(n)}},crooked3:{className:"highcharts-crooked3",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"crooked3",type:"crookedLine",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n}]}},o.annotationsOptions,o.bindings.crooked3.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2)]},crooked5:{className:"highcharts-crooked5",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"crooked5",type:"crookedLine",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n}]}},o.annotationsOptions,o.bindings.crooked5.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2),tm(3),tm(4)]},elliott3:{className:"highcharts-elliott3",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"elliott3",type:"elliottWave",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n}]},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.elliott3.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2),tm(3)]},elliott5:{className:"highcharts-elliott5",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"elliott5",type:"elliottWave",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n},{x:s,y:n}]},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.elliott5.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2),tm(3),tm(4),tm(5)]},measureX:{className:"highcharts-measure-x",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"measure",type:"measure",typeOptions:{selectType:"x",xAxis:i.axis.index,yAxis:e.axis.index,point:{x:s,y:n},crosshairX:{strokeWidth:1,stroke:"#000000"},crosshairY:{enabled:!1,strokeWidth:0,stroke:"#000000"},background:{width:0,height:0,strokeWidth:0,stroke:"#ffffff"}},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.measureX.annotationsOptions);return this.chart.addAnnotation(a)},steps:[ty]},measureY:{className:"highcharts-measure-y",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"measure",type:"measure",typeOptions:{selectType:"y",xAxis:i.axis.index,yAxis:e.axis.index,point:{x:s,y:n},crosshairX:{enabled:!1,strokeWidth:0,stroke:"#000000"},crosshairY:{strokeWidth:1,stroke:"#000000"},background:{width:0,height:0,strokeWidth:0,stroke:"#ffffff"}},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.measureY.annotationsOptions);return this.chart.addAnnotation(a)},steps:[ty]},measureXY:{className:"highcharts-measure-xy",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"measure",type:"measure",typeOptions:{selectType:"xy",xAxis:i.axis.index,yAxis:e.axis.index,point:{x:s,y:n},background:{width:0,height:0,strokeWidth:0,stroke:"#ffffff"},crosshairX:{strokeWidth:1,stroke:"#000000"},crosshairY:{strokeWidth:1,stroke:"#000000"}},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.measureXY.annotationsOptions);return this.chart.addAnnotation(a)},steps:[ty]},fibonacci:{className:"highcharts-fibonacci",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"fibonacci",type:"fibonacci",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n}]},labelOptions:{style:{color:"#666666"}}},o.annotationsOptions,o.bindings.fibonacci.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tu]},parallelChannel:{className:"highcharts-parallel-channel",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"parallelChannel",type:"tunnel",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:s,y:n},{x:s,y:n}]}},o.annotationsOptions,o.bindings.parallelChannel.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tu]},pitchfork:{className:"highcharts-pitchfork",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=i.value,n=e.value,o=this.chart.options.navigation,a=tv({langKey:"pitchfork",type:"pitchfork",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value,y:e.value,controlPoint:{style:{fill:"#f21313"}}},{x:s,y:n},{x:s,y:n}],innerBackground:{fill:"rgba(100, 170, 255, 0.8)"}},shapeOptions:{strokeWidth:2}},o.annotationsOptions,o.bindings.pitchfork.annotationsOptions);return this.chart.addAnnotation(a)},steps:[tm(1),tm(2)]},verticalCounter:{className:"highcharts-vertical-counter",start:function(t){let i=tc(t,this.chart);if(!i)return;this.verticalCounter=this.verticalCounter||0;let e=this.chart.options.navigation,s=tv({langKey:"verticalCounter",type:"verticalLine",typeOptions:{point:{x:i.x,y:i.y,xAxis:i.xAxis,yAxis:i.yAxis},label:{offset:i.below?40:-40,text:this.verticalCounter.toString()}},labelOptions:{style:{color:"#666666",fontSize:"0.7em"}},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1}},e.annotationsOptions,e.bindings.verticalCounter.annotationsOptions),n=this.chart.addAnnotation(s);this.verticalCounter++,n.options.events.click.call(n,{})}},timeCycles:{className:"highcharts-time-cycles",start:function(t){let i=tc(t,this.chart);if(!i)return;let e=this.chart.options.navigation,s=tv({langKey:"timeCycles",type:"timeCycles",typeOptions:{xAxis:i.xAxis,yAxis:i.yAxis,points:[{x:i.x},{x:i.x}],line:{stroke:"rgba(0, 0, 0, 0.75)",fill:"transparent",strokeWidth:2}}},e.annotationsOptions,e.bindings.timeCycles.annotationsOptions),n=this.chart.addAnnotation(s);return n.options.events.click.call(n,{}),n},steps:[tm(1)]},verticalLabel:{className:"highcharts-vertical-label",start:function(t){let i=tc(t,this.chart);if(!i)return;let e=this.chart.options.navigation,s=tv({langKey:"verticalLabel",type:"verticalLine",typeOptions:{point:{x:i.x,y:i.y,xAxis:i.xAxis,yAxis:i.yAxis},label:{offset:i.below?40:-40}},labelOptions:{style:{color:"#666666",fontSize:"0.7em"}},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1}},e.annotationsOptions,e.bindings.verticalLabel.annotationsOptions),n=this.chart.addAnnotation(s);n.options.events.click.call(n,{})}},verticalArrow:{className:"highcharts-vertical-arrow",start:function(t){let i=tc(t,this.chart);if(!i)return;let e=this.chart.options.navigation,s=tv({langKey:"verticalArrow",type:"verticalLine",typeOptions:{point:{x:i.x,y:i.y,xAxis:i.xAxis,yAxis:i.yAxis},label:{offset:i.below?40:-40,format:" "},connector:{fill:"none",stroke:i.below?"#f21313":"#06b535"}},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1}},e.annotationsOptions,e.bindings.verticalArrow.annotationsOptions),n=this.chart.addAnnotation(s);n.options.events.click.call(n,{})}},fibonacciTimeZones:{className:"highcharts-fibonacci-time-zones",start:function(t){let[i,e]=this.getCoords(t);if(!i||!e)return;let s=this.chart.options.navigation,n=tv({type:"fibonacciTimeZones",langKey:"fibonacciTimeZones",typeOptions:{xAxis:i.axis.index,yAxis:e.axis.index,points:[{x:i.value}]}},s.annotationsOptions,s.bindings.fibonacciTimeZones.annotationsOptions);return this.chart.addAnnotation(n)},steps:[function(t,i){let e=i.options.typeOptions.points,s=e&&e[0].x,[n,o]=this.getCoords(t);n&&o&&i.update({typeOptions:{xAxis:n.axis.index,yAxis:o.axis.index,points:[{x:s},{x:n.value}]}})}]},flagCirclepin:{className:"highcharts-flag-circlepin",start:th("circlepin")},flagDiamondpin:{className:"highcharts-flag-diamondpin",start:th("flag")},flagSquarepin:{className:"highcharts-flag-squarepin",start:th("squarepin")},flagSimplepin:{className:"highcharts-flag-simplepin",start:th("nopin")},zoomX:{className:"highcharts-zoom-x",init:function(t){this.chart.update({chart:{zooming:{type:"x"}}}),tf(this,"deselectButton",{button:t})}},zoomY:{className:"highcharts-zoom-y",init:function(t){this.chart.update({chart:{zooming:{type:"y"}}}),tf(this,"deselectButton",{button:t})}},zoomXY:{className:"highcharts-zoom-xy",init:function(t){this.chart.update({chart:{zooming:{type:"xy"}}}),tf(this,"deselectButton",{button:t})}},seriesTypeLine:{className:"highcharts-series-type-line",init:function(t){this.chart.series[0].update({type:"line",useOhlcData:!0}),tf(this,"deselectButton",{button:t})}},seriesTypeOhlc:{className:"highcharts-series-type-ohlc",init:function(t){this.chart.series[0].update({type:"ohlc"}),tf(this,"deselectButton",{button:t})}},seriesTypeCandlestick:{className:"highcharts-series-type-candlestick",init:function(t){this.chart.series[0].update({type:"candlestick"}),tf(this,"deselectButton",{button:t})}},seriesTypeHeikinAshi:{className:"highcharts-series-type-heikinashi",init:function(t){this.chart.series[0].update({type:"heikinashi"}),tf(this,"deselectButton",{button:t})}},seriesTypeHLC:{className:"highcharts-series-type-hlc",init:function(t){this.chart.series[0].update({type:"hlc",useOhlcData:!0}),tf(this,"deselectButton",{button:t})}},seriesTypeHollowCandlestick:{className:"highcharts-series-type-hollowcandlestick",init:function(t){this.chart.series[0].update({type:"hollowcandlestick"}),tf(this,"deselectButton",{button:t})}},fullScreen:{className:"highcharts-full-screen",noDataState:"normal",init:function(t){this.chart.fullscreen&&this.chart.fullscreen.toggle(),tf(this,"deselectButton",{button:t})}},currentPriceIndicator:{className:"highcharts-current-price-indicator",init:function(t){let i=this.chart,e=i.series,s=i.stockTools,n=td(i.series);s&&s.guiEnabled&&(e.forEach(function(t){t.update({lastPrice:{enabled:!n},lastVisiblePrice:{enabled:!n,label:{enabled:!0}}},!1)}),i.redraw()),tf(this,"deselectButton",{button:t})}},indicators:{className:"highcharts-indicators",init:function(){let t=this;tf(t,"showPopup",{formType:"indicators",options:{},onSubmit:function(i){tg.call(t,i)}})}},toggleAnnotations:{className:"highcharts-toggle-annotations",init:function(t){let i=this.chart,e=i.stockTools,s=e.getIconsURL();this.toggledAnnotations=!this.toggledAnnotations,(i.annotations||[]).forEach(function(t){t.setVisibility(!this.toggledAnnotations)},this),e&&e.guiEnabled&&(this.toggledAnnotations?t.firstChild.style["background-image"]='url("'+s+'annotations-hidden.svg")':t.firstChild.style["background-image"]='url("'+s+'annotations-visible.svg")'),tf(this,"deselectButton",{button:t})}},saveChart:{className:"highcharts-save-chart",noDataState:"normal",init:function(t){let i=this.chart,e=[],s=[],n=[],o=[];i.annotations.forEach(function(t,i){e[i]=t.userOptions}),i.series.forEach(function(t){t.is("sma")?s.push(t.userOptions):"flags"===t.type&&n.push(t.userOptions)}),i.yAxis.forEach(function(t){tp(t)&&o.push(t.options)}),c().win.localStorage.setItem("highcharts-chart",JSON.stringify({annotations:e,indicators:s,flags:n,yAxes:o})),tf(this,"deselectButton",{button:t})}}},tx={lang:{stockTools:{gui:{simpleShapes:"Simple shapes",lines:"Lines",crookedLines:"Crooked lines",measure:"Measure",advanced:"Advanced",toggleAnnotations:"Toggle annotations",verticalLabels:"Vertical labels",flags:"Flags",zoomChange:"Zoom change",typeChange:"Type change",saveChart:"Save chart",indicators:"Indicators",currentPriceIndicator:"Current Price Indicators",zoomX:"Zoom X",zoomY:"Zoom Y",zoomXY:"Zooom XY",fullScreen:"Fullscreen",typeOHLC:"OHLC",typeLine:"Line",typeCandlestick:"Candlestick",typeHLC:"HLC",typeHollowCandlestick:"Hollow Candlestick",typeHeikinAshi:"Heikin Ashi",circle:"Circle",ellipse:"Ellipse",label:"Label",rectangle:"Rectangle",flagCirclepin:"Flag circle",flagDiamondpin:"Flag diamond",flagSquarepin:"Flag square",flagSimplepin:"Flag simple",measureXY:"Measure XY",measureX:"Measure X",measureY:"Measure Y",segment:"Segment",arrowSegment:"Arrow segment",ray:"Ray",arrowRay:"Arrow ray",line:"Line",arrowInfinityLine:"Arrow line",horizontalLine:"Horizontal line",verticalLine:"Vertical line",infinityLine:"Infinity line",crooked3:"Crooked 3 line",crooked5:"Crooked 5 line",elliott3:"Elliott 3 line",elliott5:"Elliott 5 line",verticalCounter:"Vertical counter",verticalLabel:"Vertical label",verticalArrow:"Vertical arrow",fibonacci:"Fibonacci",fibonacciTimeZones:"Fibonacci Time Zones",pitchfork:"Pitchfork",parallelChannel:"Parallel channel",timeCycles:"Time Cycles"}},navigation:{popup:{circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",segment:"Segment",arrowSegment:"Arrow segment",ray:"Ray",arrowRay:"Arrow ray",line:"Line",arrowInfinityLine:"Arrow line",horizontalLine:"Horizontal line",verticalLine:"Vertical line",crooked3:"Crooked 3 line",crooked5:"Crooked 5 line",elliott3:"Elliott 3 line",elliott5:"Elliott 5 line",verticalCounter:"Vertical counter",verticalLabel:"Vertical label",verticalArrow:"Vertical arrow",fibonacci:"Fibonacci",fibonacciTimeZones:"Fibonacci Time Zones",pitchfork:"Pitchfork",parallelChannel:"Parallel channel",infinityLine:"Infinity line",measure:"Measure",measureXY:"Measure XY",measureX:"Measure X",measureY:"Measure Y",timeCycles:"Time Cycles",flags:"Flags",addButton:"Add",saveButton:"Save",editButton:"Edit",removeButton:"Remove",series:"Series",volume:"Volume",connector:"Connector",innerBackground:"Inner background",outerBackground:"Outer background",crosshairX:"Crosshair X",crosshairY:"Crosshair Y",tunnel:"Tunnel",background:"Background",noFilterMatch:"No match",searchIndicators:"Search Indicators",clearFilter:"✕ clear filter",index:"Index",period:"Period",periods:"Periods",standardDeviation:"Standard deviation",periodTenkan:"Tenkan period",periodSenkouSpanB:"Senkou Span B period",periodATR:"ATR period",multiplierATR:"ATR multiplier",shortPeriod:"Short period",longPeriod:"Long period",signalPeriod:"Signal period",decimals:"Decimals",algorithm:"Algorithm",topBand:"Top band",bottomBand:"Bottom band",initialAccelerationFactor:"Initial acceleration factor",maxAccelerationFactor:"Max acceleration factor",increment:"Increment",multiplier:"Multiplier",ranges:"Ranges",highIndex:"High index",lowIndex:"Low index",deviation:"Deviation",xAxisUnit:"x-axis unit",factor:"Factor",fastAvgPeriod:"Fast average period",slowAvgPeriod:"Slow average period",average:"Average",indicatorAliases:{abands:["Acceleration Bands"],bb:["Bollinger Bands"],dema:["Double Exponential Moving Average"],ema:["Exponential Moving Average"],ikh:["Ichimoku Kinko Hyo"],keltnerchannels:["Keltner Channels"],linearRegression:["Linear Regression"],pivotpoints:["Pivot Points"],pc:["Price Channel"],priceenvelopes:["Price Envelopes"],psar:["Parabolic SAR"],sma:["Simple Moving Average"],supertrend:["Super Trend"],tema:["Triple Exponential Moving Average"],vbp:["Volume by Price"],vwap:["Volume Weighted Moving Average"],wma:["Weighted Moving Average"],zigzag:["Zig Zag"],apo:["Absolute price indicator"],ad:["Accumulation/Distribution"],aroon:["Aroon"],aroonoscillator:["Aroon oscillator"],atr:["Average True Range"],ao:["Awesome oscillator"],cci:["Commodity Channel Index"],chaikin:["Chaikin"],cmf:["Chaikin Money Flow"],cmo:["Chande Momentum Oscillator"],disparityindex:["Disparity Index"],dmi:["Directional Movement Index"],dpo:["Detrended price oscillator"],klinger:["Klinger Oscillator"],linearRegressionAngle:["Linear Regression Angle"],linearRegressionIntercept:["Linear Regression Intercept"],linearRegressionSlope:["Linear Regression Slope"],macd:["Moving Average Convergence Divergence"],mfi:["Money Flow Index"],momentum:["Momentum"],natr:["Normalized Average True Range"],obv:["On-Balance Volume"],ppo:["Percentage Price oscillator"],roc:["Rate of Change"],rsi:["Relative Strength Index"],slowstochastic:["Slow Stochastic"],stochastic:["Stochastic"],trix:["TRIX"],williamsr:["Williams %R"]}}}},stockTools:{gui:{enabled:!0,className:"highcharts-bindings-wrapper",toolbarClassName:"stocktools-toolbar",buttons:["indicators","separator","simpleShapes","lines","crookedLines","measure","advanced","toggleAnnotations","separator","verticalLabels","flags","separator","zoomChange","fullScreen","typeChange","separator","currentPriceIndicator","saveChart"],definitions:{separator:{elementType:"span",symbol:"separator.svg"},simpleShapes:{items:["label","circle","ellipse","rectangle"],circle:{symbol:"circle.svg"},ellipse:{symbol:"ellipse.svg"},rectangle:{symbol:"rectangle.svg"},label:{symbol:"label.svg"}},flags:{items:["flagCirclepin","flagDiamondpin","flagSquarepin","flagSimplepin"],flagSimplepin:{symbol:"flag-basic.svg"},flagDiamondpin:{symbol:"flag-diamond.svg"},flagSquarepin:{symbol:"flag-trapeze.svg"},flagCirclepin:{symbol:"flag-elipse.svg"}},lines:{items:["segment","arrowSegment","ray","arrowRay","line","arrowInfinityLine","horizontalLine","verticalLine"],segment:{symbol:"segment.svg"},arrowSegment:{symbol:"arrow-segment.svg"},ray:{symbol:"ray.svg"},arrowRay:{symbol:"arrow-ray.svg"},line:{symbol:"line.svg"},arrowInfinityLine:{symbol:"arrow-line.svg"},verticalLine:{symbol:"vertical-line.svg"},horizontalLine:{symbol:"horizontal-line.svg"}},crookedLines:{items:["elliott3","elliott5","crooked3","crooked5"],crooked3:{symbol:"crooked-3.svg"},crooked5:{symbol:"crooked-5.svg"},elliott3:{symbol:"elliott-3.svg"},elliott5:{symbol:"elliott-5.svg"}},verticalLabels:{items:["verticalCounter","verticalLabel","verticalArrow"],verticalCounter:{symbol:"vertical-counter.svg"},verticalLabel:{symbol:"vertical-label.svg"},verticalArrow:{symbol:"vertical-arrow.svg"}},advanced:{items:["fibonacci","fibonacciTimeZones","pitchfork","parallelChannel","timeCycles"],pitchfork:{symbol:"pitchfork.svg"},fibonacci:{symbol:"fibonacci.svg"},fibonacciTimeZones:{symbol:"fibonacci-timezone.svg"},parallelChannel:{symbol:"parallel-channel.svg"},timeCycles:{symbol:"time-cycles.svg"}},measure:{items:["measureXY","measureX","measureY"],measureX:{symbol:"measure-x.svg"},measureY:{symbol:"measure-y.svg"},measureXY:{symbol:"measure-xy.svg"}},toggleAnnotations:{symbol:"annotations-visible.svg"},currentPriceIndicator:{symbol:"current-price-show.svg"},indicators:{symbol:"indicators.svg"},zoomChange:{items:["zoomX","zoomY","zoomXY"],zoomX:{symbol:"zoom-x.svg"},zoomY:{symbol:"zoom-y.svg"},zoomXY:{symbol:"zoom-xy.svg"}},typeChange:{items:["typeOHLC","typeLine","typeCandlestick","typeHollowCandlestick","typeHLC","typeHeikinAshi"],typeOHLC:{symbol:"series-ohlc.svg"},typeLine:{symbol:"series-line.svg"},typeCandlestick:{symbol:"series-candlestick.svg"},typeHLC:{symbol:"series-hlc.svg"},typeHeikinAshi:{symbol:"series-heikin-ashi.svg"},typeHollowCandlestick:{symbol:"series-hollow-candlestick.svg"}},fullScreen:{symbol:"fullscreen.svg"},saveChart:{symbol:"save-chart.svg"}},visible:!0}}},{setOptions:tA}=c(),{getAssignedAxis:tk}=v,{isNotNavigatorYAxis:tC,isPriceIndicatorEnabled:tw}=tl,{correctFloat:tO,defined:tN,isNumber:tL,pick:tT}=c();function tB(t,i,e,s){let n=0,o,a,r;function l(t){return tN(t)&&!tL(t)&&t.match("%")}return s&&(r=tO(parseFloat(s.top)/100),a=tO(parseFloat(s.height)/100)),{positions:t.map((s,h)=>{let c=tO(l(s.options.height)?parseFloat(s.options.height)/100:s.height/i),p=tO(l(s.options.top)?parseFloat(s.options.top)/100:(s.top-s.chart.plotTop)/i);return a?(p>r&&(p-=a),n=Math.max(n,(p||0)+(c||0))):(tL(c)||(c=t[h-1].series.every(t=>t.is("sma"))?o:e/100),tL(p)||(p=n),o=c,n=tO(Math.max(n,(p||0)+(c||0)))),{height:100*c,top:100*p}}),allAxesHeight:n}}function tE(t){let i=[];return t.forEach(function(e,s){let n=t[s+1];n?i[s]={enabled:!0,controlledAxis:{next:[tT(n.options.id,n.index)]}}:i[s]={enabled:!1}}),i}function tS(t,i,e,s){return t.forEach(function(n,o){let a=t[o-1];n.top=a?tO(a.height+a.top):0,e&&(n.height=tO(n.height+s*i))}),t}function tI(t){let i=this.chart,e=i.yAxis.filter(tC),s=i.plotHeight,{positions:n,allAxesHeight:o}=this.getYAxisPositions(e,s,20,t),a=this.getYAxisResizers(e);!t&&o<=tO(1)?n[n.length-1]={height:20,top:tO(100*o-20)}:n.forEach(function(t){t.height=t.height/(100*o)*100,t.top=t.top/(100*o)*100}),n.forEach(function(t,i){e[i].update({height:t.height+"%",top:t.top+"%",resize:a[i],offset:0},!1)})}var tz=r(660),tP=r.n(tz);let{addEvent:tW,createElement:tH,css:tY,defined:tR,fireEvent:tM,getStyle:tX,isArray:tU,merge:tD,pick:tF}=c(),{shallowArraysEqual:tK}=tl;class tV{constructor(t,i,e){this.width=0,this.isDirty=!1,this.chart=e,this.options=t,this.lang=i,this.iconsURL=this.getIconsURL(),this.guiEnabled=t.enabled,this.visible=tF(t.visible,!0),this.guiClassName=t.className,this.toolbarClassName=t.toolbarClassName,this.eventsToUnbind=[],this.guiEnabled&&(this.createContainer(),this.createButtons(),this.showHideNavigation()),tM(this,"afterInit")}createButtons(){let t=this.lang,i=this.options,e=this.toolbar,s=i.buttons,n=i.definitions,o=e.childNodes;this.buttonList=s,s.forEach(i=>{let s=this.addButton(e,n,i,t);this.eventsToUnbind.push(tW(s.buttonWrapper,"click",()=>this.eraseActiveButtons(o,s.buttonWrapper))),tU(n[i].items)&&this.addSubmenu(s,n[i])})}addSubmenu(t,i){let e=t.submenuArrow,s=t.buttonWrapper,n=tX(s,"width"),o=this.wrapper,a=this.listWrapper,r=this.toolbar.childNodes,l=this.submenu=tH("ul",{className:"highcharts-submenu-wrapper"},void 0,s);this.addSubmenuItems(s,i),this.eventsToUnbind.push(tW(e,"click",t=>{if(t.stopPropagation(),this.eraseActiveButtons(r,s),s.className.indexOf("highcharts-current")>=0)a.style.width=a.startWidth+"px",s.classList.remove("highcharts-current"),l.style.display="none";else{l.style.display="block";let t=l.offsetHeight-s.offsetHeight-3;l.offsetHeight+s.offsetTop>o.offsetHeight&&s.offsetTop>t||(t=0),tY(l,{top:-t+"px",left:n+3+"px"}),s.className+=" highcharts-current",a.startWidth=o.offsetWidth,a.style.width=a.startWidth+tX(a,"padding-left")+l.offsetWidth+3+"px"}}))}addSubmenuItems(t,i){let e;let s=this,n=this.submenu,o=this.lang,a=this.listWrapper;i.items.forEach(r=>{e=this.addButton(n,i,r,o),this.eventsToUnbind.push(tW(e.mainButton,"click",function(){s.switchSymbol(this,t,!0),a.style.width=a.startWidth+"px",n.style.display="none"}))});let r=n.querySelectorAll("li > .highcharts-menu-item-btn")[0];this.switchSymbol(r,!1)}eraseActiveButtons(t,i,e){[].forEach.call(t,t=>{t!==i&&(t.classList.remove("highcharts-current"),t.classList.remove("highcharts-active"),(e=t.querySelectorAll(".highcharts-submenu-wrapper")).length>0&&(e[0].style.display="none"))})}addButton(t,i,e,s={}){let n=i[e],o=n.items,a=tV.prototype.classMapping,r=n.className||"",l=tH("li",{className:tF(a[e],"")+" "+r,title:s[e]||e},void 0,t),h=tH(n.elementType||"button",{className:"highcharts-menu-item-btn"},void 0,l);if(o&&o.length){let t=tH("button",{className:"highcharts-submenu-item-arrow highcharts-arrow-right"},void 0,l);return t.style.backgroundImage="url("+this.iconsURL+"arrow-bottom.svg)",{buttonWrapper:l,mainButton:h,submenuArrow:t}}return h.style.backgroundImage="url("+this.iconsURL+n.symbol+")",{buttonWrapper:l,mainButton:h}}addNavigation(){let t=this.wrapper;this.arrowWrapper=tH("div",{className:"highcharts-arrow-wrapper"}),this.arrowUp=tH("div",{className:"highcharts-arrow-up"},void 0,this.arrowWrapper),this.arrowUp.style.backgroundImage="url("+this.iconsURL+"arrow-right.svg)",this.arrowDown=tH("div",{className:"highcharts-arrow-down"},void 0,this.arrowWrapper),this.arrowDown.style.backgroundImage="url("+this.iconsURL+"arrow-right.svg)",t.insertBefore(this.arrowWrapper,t.childNodes[0]),this.scrollButtons()}scrollButtons(){let t=this.wrapper,i=this.toolbar,e=.1*t.offsetHeight,s=0;this.eventsToUnbind.push(tW(this.arrowUp,"click",()=>{s>0&&(s-=e,i.style.marginTop=-s+"px")})),this.eventsToUnbind.push(tW(this.arrowDown,"click",()=>{t.offsetHeight+s<=i.offsetHeight+e&&(s+=e,i.style.marginTop=-s+"px")}))}createContainer(){let t,i;let e=this.chart,s=this.options,n=e.container,o=e.options.navigation,a=o?.bindingsClassName,r=this,l=this.wrapper=tH("div",{className:"highcharts-stocktools-wrapper "+s.className+" "+a});n.appendChild(l),this.showHideBtn=tH("div",{className:"highcharts-toggle-toolbar highcharts-arrow-left"},void 0,l),this.eventsToUnbind.push(tW(this.showHideBtn,"click",()=>{this.update({gui:{visible:!r.visible}})})),["mousedown","mousemove","click","touchstart"].forEach(t=>{tW(l,t,t=>t.stopPropagation())}),tW(l,"mouseover",t=>e.pointer?.onContainerMouseLeave(t)),this.toolbar=i=tH("ul",{className:"highcharts-stocktools-toolbar "+s.toolbarClassName}),this.listWrapper=t=tH("div",{className:"highcharts-menu-wrapper"}),l.insertBefore(t,l.childNodes[0]),t.insertBefore(i,t.childNodes[0]),this.showHideToolbar(),this.addNavigation()}showHideNavigation(){this.visible&&this.toolbar.offsetHeight>this.wrapper.offsetHeight-50?this.arrowWrapper.style.display="block":(this.toolbar.style.marginTop="0px",this.arrowWrapper.style.display="none")}showHideToolbar(){let t=this.wrapper,i=this.listWrapper,e=this.submenu,s=this.showHideBtn,n=this.visible;s.style.backgroundImage="url("+this.iconsURL+"arrow-right.svg)",n?(t.style.height="100%",i.classList.remove("highcharts-hide"),s.classList.remove("highcharts-arrow-right"),s.style.top=tX(i,"padding-top")+"px",s.style.left=t.offsetWidth+tX(i,"padding-left")+"px"):(e&&(e.style.display="none"),s.style.left="0px",n=this.visible=!1,i.classList.add("highcharts-hide"),s.classList.add("highcharts-arrow-right"),t.style.height=s.offsetHeight+"px")}switchSymbol(t,i){let e=t.parentNode,s=e.className,n=e.parentNode.parentNode;!(s.indexOf("highcharts-disabled-btn")>-1)&&(n.className="",s&&n.classList.add(s.trim()),n.querySelectorAll(".highcharts-menu-item-btn")[0].style.backgroundImage=t.style.backgroundImage,i&&this.toggleButtonActiveClass(n))}toggleButtonActiveClass(t){let i=t.classList;i.contains("highcharts-active")?i.remove("highcharts-active"):i.add("highcharts-active")}unselectAllButtons(t){let i=t.parentNode.querySelectorAll(".highcharts-active");[].forEach.call(i,i=>{i!==t&&i.classList.remove("highcharts-active")})}update(t,i){this.isDirty=!!t.gui.definitions,tD(!0,this.chart.options.stockTools,t),tD(!0,this.options,t.gui),this.visible=tF(this.options.visible&&this.options.enabled,!0),this.chart.navigationBindings&&this.chart.navigationBindings.update(),this.chart.isDirtyBox=!0,tF(i,!0)&&this.chart.redraw()}destroy(){let t=this.wrapper,i=t&&t.parentNode;this.eventsToUnbind.forEach(t=>t()),i&&i.removeChild(t)}redraw(){if(this.options.enabled!==this.guiEnabled)this.handleGuiEnabledChange();else{if(!this.guiEnabled)return;this.updateClassNames(),this.updateButtons(),this.updateVisibility(),this.showHideNavigation(),this.showHideToolbar()}}handleGuiEnabledChange(){!1===this.options.enabled&&(this.destroy(),this.visible=!1),!0===this.options.enabled&&(this.createContainer(),this.createButtons()),this.guiEnabled=this.options.enabled}updateClassNames(){this.options.className!==this.guiClassName&&(this.guiClassName&&this.wrapper.classList.remove(this.guiClassName),this.options.className&&this.wrapper.classList.add(this.options.className),this.guiClassName=this.options.className),this.options.toolbarClassName!==this.toolbarClassName&&(this.toolbarClassName&&this.toolbar.classList.remove(this.toolbarClassName),this.options.toolbarClassName&&this.toolbar.classList.add(this.options.toolbarClassName),this.toolbarClassName=this.options.toolbarClassName)}updateButtons(){(!tK(this.options.buttons,this.buttonList)||this.isDirty)&&(this.toolbar.innerHTML=tP().emptyHTML,this.createButtons())}updateVisibility(){tR(this.options.visible)&&(this.visible=this.options.visible)}getIconsURL(){return this.chart.options.navigation.iconsURL||this.options.iconsURL||"https://code.highcharts.com/12.1.0/gfx/stock-icons/"}}tV.prototype.classMapping={circle:"highcharts-circle-annotation",ellipse:"highcharts-ellipse-annotation",rectangle:"highcharts-rectangle-annotation",label:"highcharts-label-annotation",segment:"highcharts-segment",arrowSegment:"highcharts-arrow-segment",ray:"highcharts-ray",arrowRay:"highcharts-arrow-ray",line:"highcharts-infinity-line",arrowInfinityLine:"highcharts-arrow-infinity-line",verticalLine:"highcharts-vertical-line",horizontalLine:"highcharts-horizontal-line",crooked3:"highcharts-crooked3",crooked5:"highcharts-crooked5",elliott3:"highcharts-elliott3",elliott5:"highcharts-elliott5",pitchfork:"highcharts-pitchfork",fibonacci:"highcharts-fibonacci",fibonacciTimeZones:"highcharts-fibonacci-time-zones",parallelChannel:"highcharts-parallel-channel",measureX:"highcharts-measure-x",measureY:"highcharts-measure-y",measureXY:"highcharts-measure-xy",timeCycles:"highcharts-time-cycles",verticalCounter:"highcharts-vertical-counter",verticalLabel:"highcharts-vertical-label",verticalArrow:"highcharts-vertical-arrow",currentPriceIndicator:"highcharts-current-price-indicator",indicators:"highcharts-indicators",flagCirclepin:"highcharts-flag-circlepin",flagDiamondpin:"highcharts-flag-diamondpin",flagSquarepin:"highcharts-flag-squarepin",flagSimplepin:"highcharts-flag-simplepin",zoomX:"highcharts-zoom-x",zoomY:"highcharts-zoom-y",zoomXY:"highcharts-zoom-xy",typeLine:"highcharts-series-type-line",typeOHLC:"highcharts-series-type-ohlc",typeHLC:"highcharts-series-type-hlc",typeCandlestick:"highcharts-series-type-candlestick",typeHollowCandlestick:"highcharts-series-type-hollowcandlestick",typeHeikinAshi:"highcharts-series-type-heikinashi",fullScreen:"highcharts-full-screen",toggleAnnotations:"highcharts-toggle-annotations",saveChart:"highcharts-save-chart",separator:"highcharts-separator"};let{setOptions:tq}=c(),{addEvent:tZ,getStyle:t_,merge:tG,pick:tj}=c();function tJ(t){let i=this.options,e=i.lang,s=tG(i.stockTools&&i.stockTools.gui,t&&t.gui),n=e&&e.stockTools&&e.stockTools.gui;this.stockTools=new tV(s,n,this),this.stockTools.guiEnabled&&(this.isDirtyBox=!0)}function tQ(){this.setStockTools()}function t$(){this.stockTools&&(this.stockTools.redraw(),function(t){if(t.stockTools?.guiEnabled){let i=t.options.chart,e=t.stockTools.listWrapper,s=e&&(e.startWidth+t_(e,"padding-left")+t_(e,"padding-right")||e.offsetWidth);t.stockTools.width=s;let n=!1;if(s=0&&(i=i.parentNode.parentNode),i.classList.remove("highcharts-active")}}function t5(t){let i=this.chart.stockTools;if(i&&i.guiEnabled){let e=t.button;i.unselectAllButtons(t.button),e.parentNode.className.indexOf("highcharts-submenu-wrapper")>=0&&(e=e.parentNode.parentNode),i.toggleButtonActiveClass(e)}}let t2=c();t2.NavigationBindings=t2.NavigationBindings||G,t2.Toolbar=tV,({compose:function(t){let i=t.prototype;i.utils?.manageIndicators||(i.getYAxisPositions=tB,i.getYAxisResizers=tE,i.recalculateYAxisPositions=tS,i.resizeYAxes=tI,i.utils=i.utils||{},i.utils.indicatorsWithAxes=tl.indicatorsWithAxes,i.utils.indicatorsWithVolume=tl.indicatorsWithVolume,i.utils.getAssignedAxis=tk,i.utils.isPriceIndicatorEnabled=tw,i.utils.manageIndicators=tl.manageIndicators,tA(tx),tA({navigation:{bindings:tb}}))}}).compose(t2.NavigationBindings),({compose:function(t,i){let e=t.prototype;e.setStockTools||(tZ(t,"afterGetContainer",tQ),tZ(t,"beforeRedraw",t$),tZ(t,"beforeRender",t$),tZ(t,"destroy",t0),tZ(t,"getMargins",t1,{order:0}),tZ(t,"render",t6),e.setStockTools=tJ,tZ(i,"deselectButton",t3),tZ(i,"selectButton",t5),tq(tx))}}).compose(t2.Chart,t2.NavigationBindings);let t4=c();return l.default})()); \ No newline at end of file diff --git a/modules/stock-tools.src.js b/modules/stock-tools.src.js index c42fe397ab..a0a75ad8e7 100644 --- a/modules/stock-tools.src.js +++ b/modules/stock-tools.src.js @@ -1,5 +1,5 @@ /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/stock-tools * @requires highcharts * @requires highcharts/modules/stock @@ -637,7 +637,7 @@ const navigation = { * from a different server. * * @type {string} - * @default https://code.highcharts.com/12.0.2/gfx/stock-icons/ + * @default https://code.highcharts.com/12.1.0/gfx/stock-icons/ * @since 7.1.3 * @apioption navigation.iconsURL */ @@ -5524,7 +5524,7 @@ class Toolbar { getIconsURL() { return this.chart.options.navigation.iconsURL || this.options.iconsURL || - 'https://code.highcharts.com/12.0.2/gfx/stock-icons/'; + 'https://code.highcharts.com/12.1.0/gfx/stock-icons/'; } } Toolbar.prototype.classMapping = { diff --git a/modules/stock.js b/modules/stock.js index d4383114e1..18eb27ce3f 100644 --- a/modules/stock.js +++ b/modules/stock.js @@ -1,13 +1,13 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/broken-axis * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Chart,t._Highcharts.Templating,t._Highcharts.Series.types.column,t._Highcharts.StackItem):"function"==typeof define&&define.amd?define("highcharts/modules/stock",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Point,t.Series,t.Color,t.SeriesRegistry,t.RendererRegistry,t.SVGRenderer,t.SVGElement,t.Chart,t.Templating,t.Series,["types"],["column"],t.StackItem)}):"object"==typeof exports?exports["highcharts/modules/stock"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Chart,t._Highcharts.Templating,t._Highcharts.Series.types.column,t._Highcharts.StackItem):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Point,t.Highcharts.Series,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.SVGRenderer,t.Highcharts.SVGElement,t.Highcharts.Chart,t.Highcharts.Templating,t.Highcharts.Series.types.column,t.Highcharts.StackItem)}("undefined"==typeof window?this:window,(t,e,i,s,o,n,r,a,l,h,d,p,c)=>(()=>{"use strict";let u,g,m,f;var x,b,v,y,M,A,k,w={532:t=>{t.exports=e},960:t=>{t.exports=h},620:t=>{t.exports=o},260:t=>{t.exports=i},608:t=>{t.exports=r},28:t=>{t.exports=l},540:t=>{t.exports=a},448:t=>{t.exports=p},820:t=>{t.exports=s},512:t=>{t.exports=n},184:t=>{t.exports=c},984:t=>{t.exports=d},944:e=>{e.exports=t}},S={};function E(t){var e=S[t];if(void 0!==e)return e.exports;var i=S[t]={exports:{}};return w[t](i,i.exports,E),i.exports}E.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return E.d(e,{a:e}),e},E.d=(t,e)=>{for(var i in e)E.o(e,i)&&!E.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},E.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var O={};E.d(O,{default:()=>oB});var C=E(944),T=/*#__PURE__*/E.n(C),B=E(532),D=/*#__PURE__*/E.n(B),P=E(260),R=/*#__PURE__*/E.n(P),G=E(820),I=/*#__PURE__*/E.n(G);let{tooltipFormatter:z}=R().prototype,{addEvent:L,arrayMax:H,arrayMin:W,correctFloat:X,defined:Y,isArray:N,isNumber:F,isString:U,pick:_}=T();!function(t){function e(t,e,i){!this.isXAxis&&(this.series.forEach(function(i){"compare"===t&&"boolean"!=typeof e?i.setCompare(e,!1):"cumulative"!==t||U(e)||i.setCumulative(e,!1)}),_(i,!0)&&this.chart.redraw())}function i(t){let e=this,{numberFormatter:i}=e.series.chart,s=function(s){t=t.replace("{point."+s+"}",(e[s]>0&&"change"===s?"+":"")+i(e[s],_(e.series.tooltipOptions.changeDecimals,2)))};return Y(e.change)&&s("change"),Y(e.cumulativeSum)&&s("cumulativeSum"),z.apply(this,[t])}function s(){let t;let e=this.options.compare;("percent"===e||"value"===e||this.options.cumulative)&&(t=new d(this),"percent"===e||"value"===e?t.initCompare(e):t.initCumulative()),this.dataModify=t}function o(t){let e=t.dataExtremes,i=e.activeYData;if(this.dataModify&&e){let t;this.options.compare?t=[this.dataModify.modifyValue(e.dataMin),this.dataModify.modifyValue(e.dataMax)]:this.options.cumulative&&N(i)&&i.length>=2&&(t=d.getCumulativeExtremes(i)),t&&(e.dataMin=W(t),e.dataMax=H(t))}}function n(t,e){this.options.compare=this.userOptions.compare=t,this.update({},_(e,!0)),this.dataModify&&("value"===t||"percent"===t)?this.dataModify.initCompare(t):this.points.forEach(t=>{delete t.change})}function r(){let t=this.getColumn(this.pointArrayMap&&(this.options.pointValKey||this.pointValKey)||"y",!0);if(this.xAxis&&t.length&&this.dataModify){let e=this.getColumn("x",!0),i=this.dataTable.rowCount,s=!0===this.options.compareStart?0:1;for(let o=0;o=(this.xAxis.min||0)){this.dataModify.compareValue=i;break}}}}function a(t,e){this.setModifier("compare",t,e)}function l(t,e){t=_(t,!1),this.options.cumulative=this.userOptions.cumulative=t,this.update({},_(e,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(t=>{delete t.cumulativeSum})}function h(t,e){this.setModifier("cumulative",t,e)}t.compose=function(t,d,p){let c=d.prototype,u=p.prototype,g=t.prototype;return g.setCompare||(g.setCompare=n,g.setCumulative=l,L(t,"afterInit",s),L(t,"afterGetExtremes",o),L(t,"afterProcessData",r)),c.setCompare||(c.setCompare=a,c.setModifier=e,c.setCumulative=h,u.tooltipFormatter=i),t};class d{constructor(t){this.series=t}modifyValue(){return 0}static getCumulativeExtremes(t){let e=1/0,i=-1/0;return t.reduce((t,s)=>{let o=t+s;return e=Math.min(e,o,t),i=Math.max(i,o,t),o}),[e,i]}initCompare(t){this.modifyValue=function(e,i){null===e&&(e=0);let s=this.compareValue;if(void 0!==e&&void 0!==s){if("value"===t?e-=s:e=e/s*100-(100===this.series.options.compareBase?0:100),void 0!==i){let t=this.series.points[i];t&&(t.change=e)}return e}return 0}}initCumulative(){this.modifyValue=function(t,e){if(null===t&&(t=0),void 0!==t&&void 0!==e){let i=e>0?this.series.points[e-1]:null;i&&i.cumulativeSum&&(t=X(i.cumulativeSum+t));let s=this.series.points[e],o=s.series.options.cumulativeStart,n=s.x<=this.series.xAxis.max&&s.x>=this.series.xAxis.min;return s&&(!o||n?s.cumulativeSum=t:s.cumulativeSum=void 0),t}return 0}}}t.Additions=d}(x||(x={}));let V=x,{isTouchDevice:Z}=T(),{addEvent:j,merge:K,pick:q}=T(),$=[];function J(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function Q(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:n,scrollButtonSize:r}=o;this.inverted?(o.left=o.opposite?this.chartWidth-n-o.height:this.spacing[3]+n,o.top=this.plotTop+r):(o.left=q(e.left,this.plotLeft+r),o.top=o.navigatorOptions.top||this.chartHeight-o.height-n-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+q(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function tt(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new u(this),q(t.redraw,!0)&&this.redraw(t.animation))}function te(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new u(this))}function ti(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!Z&&"x"===this.zooming.type||Z&&"x"===this.zooming.pinchType))return!1}function ts(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function to(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(K(!0,this.options.navigator,e),K(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let tn={compose:function(t,e){if(T().pushUnique($,t)){let i=t.prototype;u=e,i.callbacks.push(ts),j(t,"afterAddSeries",J),j(t,"afterSetChartSize",Q),j(t,"afterUpdate",tt),j(t,"beforeRender",te),j(t,"beforeShowResetZoom",ti),j(t,"update",to)}}},{isTouchDevice:tr}=T(),{addEvent:ta,correctFloat:tl,defined:th,isNumber:td,pick:tp}=T();function tc(){this.navigatorAxis||(this.navigatorAxis=new tg(this))}function tu(t){let e;let i=this.chart,s=i.options,o=s.navigator,n=this.navigatorAxis,r=i.zooming.pinchType,a=s.rangeSelector,l=i.zooming.type;if(this.isXAxis&&(o?.enabled||a?.enabled)){if("y"===l&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===l||tr&&"xy"===r)&&this.options.range){let e=n.previousZoom;th(t.min)?n.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],n.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class tg{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),ta(t,"init",tc),ta(t,"setExtremes",tu))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,n=(o.pointRange||0)/2,r=tp(i,o.translate(t,!0,!o.horiz)),a=tp(s,o.translate(e,!0,!o.horiz));return th(i)||(r=tl(r+n)),th(s)||(a=tl(a-n)),td(r)&&td(a)||(r=a=void 0),{min:r,max:a}}}var tm=E(620),tf=/*#__PURE__*/E.n(tm),tx=E(512),tb=/*#__PURE__*/E.n(tx);let{parse:tv}=tf(),{seriesTypes:ty}=tb(),tM={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:tv("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ty.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:tA,isNumber:tk,pick:tw}=T(),tS={rect:function(t,e,i,s,o){return o&&o.r?function(t,e,i,s,o){let n=o?.r||0;return[["M",t+n,e],["L",t+i-n,e],["A",n,n,0,0,1,t+i,e+n],["L",t+i,e+s-n],["A",n,n,0,0,1,t+i-n,e+s],["L",t+n,e+s],["A",n,n,0,0,1,t,e+s-n],["L",t,e+n],["A",n,n,0,0,1,t+n,e],["Z"]]}(t,e,i,s,o):[["M",t,e],["L",t+i,e],["L",t+i,e+s],["L",t,e+s],["Z"]]}},{relativeLength:tE}=T(),tO={"navigator-handle":function(t,e,i,s,o={}){let n=o.width?o.width/2:i,r=tE(o.borderRadius||0,Math.min(2*n,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...tS.rect(-n-1,.5,2*n+1,s,{r})]}};var tC=E(608),tT=/*#__PURE__*/E.n(tC);let{defined:tB}=T(),tD={setFixedRange:function(t){let e=this.xAxis[0];tB(e.dataMax)&&tB(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{setOptions:tP}=T(),{composed:tR}=T(),{getRendererType:tG}=tT(),{setFixedRange:tI}=tD,{addEvent:tz,extend:tL,pushUnique:tH}=T();function tW(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let tX={compose:function(t,e,i){tg.compose(e),tH(tR,"Navigator")&&(t.prototype.setFixedRange=tI,tL(tG().prototype.symbols,tO),tz(i,"afterUpdate",tW),tP({navigator:tM}))}},{composed:tY}=T(),{addEvent:tN,defined:tF,pick:tU,pushUnique:t_}=T();!function(t){let e;function i(t){let e=tU(t.options&&t.options.min,t.min),i=tU(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:tF(t.dataMin)?Math.min(e,t.min,t.dataMin,tU(t.threshold,1/0)):e,scrollMax:tF(t.dataMax)?Math.max(i,t.max,t.dataMax,tU(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),tN(t.scrollbar,"changed",function(e){let s,o;let{axisMin:n,axisMax:r,scrollMin:a,scrollMax:l}=i(t),h=l-a;if(tF(n)&&tF(r)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=a+h*this.to,o=a+h*this.from):(s=a+h*(1-this.from),o=a+h*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function n(){let t,e,s;let{scrollMin:o,scrollMax:n}=i(this),r=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,h=this.options.margin||0;if(r&&l){if(this.horiz)this.opposite||(l[1]+=a),r.position(this.left,this.top+this.height+2+l[1]-(this.opposite?h:0),this.width,this.height),this.opposite||(l[1]+=h),t=1;else{let e;this.opposite&&(l[0]+=a),e=r.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:h):this.opposite?0:h,r.position(e,this.top,this.width,this.height),this.opposite&&(l[0]+=h),t=0}if(l[t]+=r.size+(r.options.margin||0),isNaN(o)||isNaN(n)||!tF(this.min)||!tF(this.max)||this.dataMin===this.dataMax)r.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),r.setRange(e,s)}else e=(this.min-o)/(n-o),s=(this.max-o)/(n-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?r.setRange(e,s):r.setRange(1-s,1-e)}}t.compose=function(t,i){t_(tY,"Axis.Scrollbar")&&(e=i,tN(t,"afterGetOffset",s),tN(t,"afterInit",o),tN(t,"afterRender",n))}}(b||(b={}));let tV=b,tZ={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:tj}=T(),{addEvent:tK,correctFloat:tq,crisp:t$,defined:tJ,destroyObjectProperties:tQ,fireEvent:t0,merge:t1,pick:t2,removeEvent:t5}=T();class t3{static compose(t){tV.compose(t,t3)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,tQ(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,n=e.g().add(this.group);if(i.push(n),s.buttonsEnabled){let r=e.rect().addClass("highcharts-scrollbar-button").add(n);this.chart.styledMode||r.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),r.attr(r.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},r.strokeWidth()));let a=e.path(t3.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=t1(tZ,tj.scrollbar,e),this.options.margin=t2(this.options.margin,10),this.chart=i,this.size=t2(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&t0(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&t0(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:n=0,vertical:r}=this.options,a=this.rendered?"animate":"attr",l=s,h=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=l,this.yOffset=h,r?(this.width=this.yOffset=i=h=this.size,this.xOffset=l=0,this.yOffset=h=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=n):(this.height=s=this.size,this.xOffset=l=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+n),this.group[a]({translateX:t,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:r?0:i-l,translateY:r?s-h:0})}removeEvents(){this._events.forEach(function(t){t5.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let n=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-t$(0,n),y:-t$(0,n)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-n,width:i-n,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(t3.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-t$(0,this.scrollbarStrokeWidth),-t$(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,n=o.vertical,r=o.minWidth,a=this.barWidth,l=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!tJ(a))return;let h=a*Math.min(e,1);i=Math.ceil(a*(t=Math.max(t,0))),this.calculatedWidth=s=tq(h-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return t2(this.options.liveRedraw,T().svg&&!T().isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!tJ(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),t0(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,t1(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=tq(1-tq(e-t)),e=1),t<0&&(e=tq(e-t),t=0),this.from=t,this.to=e}}t3.defaultOptions=tZ,tj.scrollbar=t1(!0,t3.defaultOptions,tj.scrollbar);var t6=E(540),t4=/*#__PURE__*/E.n(t6);let{defaultOptions:t8}=T(),{isTouchDevice:t9}=T(),{prototype:{symbols:t7}}=t4(),{addEvent:et,clamp:ee,correctFloat:ei,defined:es,destroyObjectProperties:eo,erase:en,extend:er,find:ea,fireEvent:el,isArray:eh,isNumber:ed,merge:ep,pick:ec,removeEvent:eu,splat:eg}=T();function em(t,...e){let i=[].filter.call(e,ed);if(i.length)return Math[t].apply(0,i)}class ef{static compose(t,e,i){tn.compose(t,ef),tX.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,n=this.outline.strokeWidth(),r=n/2,a=n%2/2,l=this.scrollButtonSize,h=this.size,d=this.top,p=this.height,c=d-r,u=d+p,g=this.left,m,f;i?(m=d+e+a,e=d+t+a,f=[["M",g+p,d-l-a],["L",g+p,m],["L",g,m],["M",g,e],["L",g+p,e],["L",g+p,d+h+l]],o&&f.push(["M",g+p,m-r],["L",g+p,e+r])):(g-=l,t+=g+l-a,e+=g+l-a,f=[["M",g,c],["L",t,c],["L",t,u],["M",e,u],["L",e,c],["L",g+h+2*l,c]],o&&f.push(["M",t-r,c],["L",e+r,c])),this.outline[s]({d:f})}drawMasks(t,e,i,s){let o,n,r,a;let l=this.left,h=this.top,d=this.height;i?(r=[l,l,l],a=[h,h+t,h+e],n=[d,d,d],o=[t,e-t,this.size-e]):(r=[l,l+t,l+e],a=[h,h,h],n=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:r[e],y:a[e],width:n[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,n=s.renderer,r={cursor:o?"ns-resize":"ew-resize"},a=t.navigatorGroup??(t.navigatorGroup=n.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let l=t.shades[o]??(t.shades[o]=n.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(a));s.styledMode||(l.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&l.css(r))}),t.outline||(t.outline=n.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:l}=i;[0,1].forEach(e=>{let h=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===h){if(!t.handles[e].isImg&&t.handles[e].symbolName!==h){let i=t7[h].call(t7,-l/2-1,0,l,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=h}}else t.handles[e]?.destroy(),t.handles[e]=n.symbol(h,-l/2-1,0,l,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(a),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-l/2),rotationOriginY:(o+l)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-l/2-1,y:0}).css(r)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(ep(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),es(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{eu(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(et(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,n=this.xAxis,r=n.pointRange||0,a=n.navigatorAxis.fake?o.xAxis[0]:n,l=this.navigatorEnabled,h=this.rendered,d=o.inverted,p=o.xAxis[0].minRange,c=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,m,f,x=this.scrollbarHeight,b,v;if(this.hasDragged&&!es(i))return;if(this.isDirty&&this.renderElements(),t=ei(t-r/2),e=ei(e+r/2),!ed(t)||!ed(e)){if(!h)return;i=0,s=ec(n.width,a.width)}this.left=ec(n.left,o.plotLeft+u+(d?o.plotWidth:0));let y=this.size=b=ec(n.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?x:b+2*u,i=ec(i,n.toPixels(t,!0)),s=ec(s,n.toPixels(e,!0)),ed(i)&&Math.abs(i)!==1/0||(i=0,s=g);let M=n.toValue(i,!0),A=n.toValue(s,!0),k=Math.abs(ei(A-M));kc&&(this.grabbedLeft?i=n.toPixels(A-c-r,!0):this.grabbedRight&&(s=n.toPixels(M+c+r,!0))),this.zoomedMax=ee(Math.max(i,s),0,y),this.zoomedMin=ee(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,y),this.range=this.zoomedMax-this.zoomedMin,y=Math.round(this.zoomedMax);let w=Math.round(this.zoomedMin);l&&(this.navigatorGroup.attr({visibility:"inherit"}),v=h&&!this.hasDragged?"animate":"attr",this.drawMasks(w,y,d,v),this.drawOutline(w,y,d,v),this.navigatorOptions.handles.enabled&&(this.drawHandle(w,0,d,v),this.drawHandle(y,1,d,v))),this.scrollbar&&(d?(f=this.top-u,m=this.left-x+(l||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),x=b+2*u):(f=this.top+(l?this.height:-x),m=this.left-u),this.scrollbar.position(m,f,g,x),this.scrollbar.setRange(this.zoomedMin/(b||1),this.zoomedMax/(b||1))),this.rendered=!0,this.isDirty=!1,el(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,n;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=n=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(et(e.renderTo,"mousemove",o),et(i.ownerDocument,"mouseup",n),et(e.renderTo,"touchmove",o),et(i.ownerDocument,"touchend",n)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(et(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,n){i.push(et(o.element,t,function(t){e[s+"Mousedown"](t,n)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,n=this.size,r=this.range,a=this.left,l=t.chartX,h,d,p,c;i.inverted&&(l=t.chartY,a=this.top),1===e?(this.grabbedCenter=l,this.fixedWidth=r,this.dragOffset=l-o):(c=l-a-r/2,0===e?c=Math.max(0,c):2===e&&c+r>=n&&(c=n-r,this.reversedExtremes?(c-=r,d=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),c!==o&&(this.fixedWidth=r,es((p=s.navigatorAxis.toFixedRange(c,c+r,d,h)).min)&&el(this,"setRange",{min:Math.min(p.min,p.max),max:Math.max(p.min,p.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,n=e.dragOffset,r=i.inverted,a=e.left,l;(!t.touches||0!==t.touches[0].pageX)&&(l=(t=i.pointer?.normalize(t)||t).chartX,r&&(a=e.top,l=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,l-a,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,l-a)):e.grabbedCenter&&(e.hasDragged=!0,ls+n-o&&(l=s+n-o),e.render(0,0,l-n,l-n+o)),e.hasDragged&&e.scrollbar&&ec(e.scrollbar.options.liveRedraw,!t9&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,n,r;let a=this.chart,l=this.xAxis,h=this.scrollbar,d=t.DOMEvent||t,p=a.inverted,c=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!h||!h.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(n=this.fixedExtreme),this.zoomedMax===this.size&&(n=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),es((r=l.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,n)).min)&&el(this,"setRange",{min:Math.min(r.min,r.max),max:Math.max(r.min,r.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&ed(this.zoomedMin)&&ed(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,p,c),this.outline&&this.drawOutline(i,e,p,c),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,p,c),this.drawHandle(e,1,p,c)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){eu(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&eu(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},n=o.enabled,r=s&&i.height||0,a=n&&o.height||0,l=o.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=r,this.scrollbarHeight=a,this.scrollButtonSize=l,this.scrollbarEnabled=n,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let h=this,d=h.baseSeries,p=t.xAxis.length,c=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,h.navigatorEnabled){let e=this.getXAxisOffsets();h.xAxis=new(D())(t,ep({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:p,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:r}:{offsets:e,height:r}),"xAxis"),h.yAxis=new(D())(t,ep(i.yAxis,{alignTicks:!1,offset:0,index:c,isInternal:!0,reversed:ec(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:r}:{height:r}),"yAxis"),d||i.series.data?h.updateNavigatorSeries(!1):0===t.series.length&&(h.unbindRedraw=et(t,"beforeRedraw",function(){t.series.length>0&&!h.series&&(h.setBaseSeries(),h.unbindRedraw())})),h.reversedExtremes=t.inverted&&!h.xAxis.reversed||!t.inverted&&h.xAxis.reversed,h.renderElements(),h.addMouseEvents()}else h.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),n=s.len-2*l,r=em("min",s.options.min,o.dataMin),a=em("max",s.options.max,o.dataMax)-r;return i?e*a/n+r:n*(e-r)/a},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},h.xAxis.navigatorAxis.axis=h.xAxis,h.xAxis.navigatorAxis.toFixedRange=tg.prototype.toFixedRange.bind(h.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=ep(t.options.scrollbar,{vertical:t.inverted});!ed(e.margin)&&h.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=h.scrollbar=new t3(t.renderer,e,t),et(h.scrollbar,"changed",function(t){let e=h.size,i=e*this.to,s=e*this.from;h.hasDragged=h.scrollbar.hasDragged,h.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){h.onMouseUp(t)})})}h.addBaseSeriesEvents(),h.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=ec(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,n=o.options,r=i.options;return t&&null===i.dataMin||(e={dataMin:ec(s.parse(n?.min),em("min",s.parse(r.min),i.dataMin,o.dataMin,o.min)),dataMax:ec(s.parse(n?.max),em("max",s.parse(r.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?ea(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,n={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},r=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(eu(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),a,l,h=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let p=t.navigatorSeries,c=er({color:t.color,visible:t.visible},eh(h)?t8.navigator.series:h);if(p&&!1===i.navigatorOptions.adaptToUpdatedData)return;n.name="Navigator "+o.length,d=(a=t.options||{}).navigatorOptions||{},c.dataLabels=eg(c.dataLabels),(l=ep(a,n,c,d)).pointRange=ec(c.pointRange,d.pointRange,t8.plotOptions[l.type||"line"].pointRange);let u=d.data||c.data;i.hasNavigatorData=i.hasNavigatorData||!!u,l.data=u||a.data?.slice(0),p&&p.options?p.update(l,e):(t.navigatorSeries=s.initSeries(l),s.setSortedData(),t.navigatorSeries.baseSeries=t,r.push(t.navigatorSeries))}),(h.data&&!(o&&o.length)||eh(h))&&(i.hasNavigatorData=!1,(h=eg(h)).forEach((t,e)=>{n.name="Navigator "+(r.length+1),(l=ep(t8.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},n,t)).data=t.data,l.data&&(i.hasNavigatorData=!0,r.push(s.initSeries(l)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(et(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(et(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(et(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(et(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(et(i,"remove",function(){e&&en(e,i),this.navigatorSeries&&t.series&&(en(t.series,this.navigatorSeries),es(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,n=s.max,r=s.dataMin,a=s.dataMax,l=n-o,h=i.stickToMin,d=i.stickToMax,p=ec(this.ordinal?.convertOverscroll(this.options.overscroll),0),c=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(h&&(t=(e=r)+l),d&&(t=a+p,h||(e=Math.max(r,t-l,i.getBaseSeriesMin(c&&c.xData?c.xData[0]:-Number.MAX_VALUE)))),u&&(h||d)&&ed(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=ec(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,n=s.min,r=s.options.range;return!!(ed(o)&&ed(n))&&(r&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{eo(t)}),this.navigatorEnabled=!1}}let{fireEvent:ex,isArray:eb,objectEach:ev,uniqueKey:ey}=T(),eM=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||ey(),this.modified=this,this.rowCount=0,this.versionTag=ey();let e=0;ev(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,ev(this.columns,e=>{eb(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;ev(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ex(this,"afterSetColumns"),this.versionTag=ey())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,n=i?this.rowCount+1:e+1;ev(t,(t,r)=>{let a=o[r]||s?.addColumns!==!1&&Array(n);a&&(i?a.splice(e,0,t):a[e]=t,o[r]=a)}),n>this.rowCount&&this.applyRowCount(n),s?.silent||(ex(this,"afterSetRows"),this.versionTag=ey())}},{addEvent:eA,correctFloat:ek,css:ew,defined:eS,error:eE,isNumber:eO,pick:eC,timeUnits:eT,isString:eB}=T();!function(t){function e(t,i,s,o,n=[],r=0,a){let l={},h=this.options.tickPixelInterval,d=this.chart.time,p=[],c,u,g,m,f,x=0,b=[],v=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!n||n.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let y=n.length;for(c=0;cs,n[c]5*r||f){if(n[c]>v){for(u=d.getTimeTicks(t,n[x],n[c],o);u.length&&u[0]<=v;)u.shift();u.length&&(v=u[u.length-1]),p.push(b.length),b=b.concat(u)}x=c+1}if(f)break}if(u){if(m=u.info,a&&m.unitRange<=eT.hour){for(x=1,c=b.length-1;xt-e),(a=i[Math.floor(i.length/2)])<.6*h&&(a=null),p=b[t-1]>s?t-1:t,r=void 0;p--;)d=Math.abs(r-(n=e[p])),r&&d<.8*h&&(null===a||d<.8*a)?(l[b[p]]&&!l[b[p+1]]?(o=p+1,r=n):o=p,b.splice(o,1)):r=n}return b}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let n=ek((t-i)*s+this.minPixelPadding),r=ek(e.getIndexOfPoint(n,o)),a=ek(r%1);if(r>=0&&r<=o.length-1){let t=o[Math.floor(r)],e=o[Math.ceil(r)];return o[Math.floor(r)]+a*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function n(){this.ordinal||(this.ordinal=new t.Additions(this))}function r(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&eS(e.overscroll)&&0!==e.overscroll&&eO(this.max)&&eO(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&eS(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function a(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function l(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function h(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,n=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let r=this.mouseDownX,a=e.getExtremes(),l=a.dataMin,h=a.dataMax,d=a.min,p=a.max,c=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((r-s)/(e.translationSlope*(e.ordinal.slope||u))),m=e.ordinal.getExtendedPositions(),f={ordinal:{positions:m,extendedOrdinalPositions:m}},x=e.index2val,b=e.val2lin;if(d<=l&&g<0||p+i>=h&&g>0)return;f.ordinal.positions?Math.abs(g)>1&&(c&&c.forEach(function(t){t.setState()}),h>(o=f.ordinal.positions)[o.length-1]&&o.push(h),this.setFixedRange(p-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,x.apply(f,[b.apply(f,[d,!0])+g]),x.apply(f,[b.apply(f,[p,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],p)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,ew(this.container,{cursor:"move"})):n=!0}else n=!0;n||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function p(t,e){let i;let s=this.ordinal,n=s.positions,r=s.slope,a;if(!n)return t;let l=n.length;if(n[0]<=t&&n[l-1]>=t)i=o(n,t);else{if(!((a=s.getExtendedPositions&&s.getExtendedPositions())&&a.length))return t;let l=a.length;r||(r=(a[l-1]-a[0])/l);let h=o(a,n[0]);if(t>=a[0]&&t<=a[l-1])i=o(a,t)-h;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(x=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(b=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||n)&&(a=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),m=Math.min(m,eC(t.closestPointRange,m)),a)){for(e=0;e2){for(h=g[1]-g[0],u=a-1;u--&&!f;)g[u+1]-g[u]!==h&&(f=!0);!t.options.keepOrdinalPadding&&(g[0]-s>h||o-g[g.length-1]>h)&&(f=!0)}else t.options.overscroll&&(2===a?m=g[1]-g[0]:1===a?(m=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+m]):m=e.overscrollPointsRange);f||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=m,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),p=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=c=(o-s)/(p-d),e.offset=s-d*c):(e.overscrollPointsRange=eC(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=r&&f,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,n;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),r=t?i.ordinal.convertOverscroll(i.options.overscroll):0,a=i.getExtremes(),l,h,d=e.index;return d||(d=e.index={}),!d[n]&&((l={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:a.dataMin,max:a.dataMax+r}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=l,i.series.forEach(i=>{h={xAxis:l,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:T().noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);h.dataTable=new eM({columns:{x:s}}),h.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},l.series.push(h),i.processData.apply(h)}),l.applyGrouping({hasExtremesChanged:!0}),h?.closestPointRange!==h?.basePointRange&&h.currentDataGrouping&&(l.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:l}),!i.ordinal.originalOrdinalRange&&l.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=l.ordinal.originalOrdinalRange),l.ordinal.positions&&(d[n]=l.ordinal.positions)),d[n]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,n=[],r,a,l=this.groupIntervalFactor;if(!l){for(a=0;at()),eN.splice(t,1);return}}}function eK(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function eq(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,s=this.extraTopMargin,o=this.rangeSelector;if(e&&e.enabled&&!ez(o)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=o=new g(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,o){let t=e&&e.verticalAlign||o.options&&o.options.verticalAlign;o.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==s)&&(this.isDirtyBox=!0)}}let e$={compose:function(t,e,i){if(g=i,eY(eG,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=eF,eI(e,"afterGetContainer",e_),eI(e,"beforeRender",eV),eI(e,"destroy",ej),eI(e,"getMargins",eK),eI(e,"redraw",eZ),eI(e,"update",eq),eI(e,"beforeRedraw",eU),i.callbacks.push(eZ),eL(eR,{rangeSelector:eP.rangeSelector}),eL(eR.lang,eP.lang)}}};var eJ=E(28),eQ=/*#__PURE__*/E.n(eJ);let{defaultOptions:e0}=T(),{addEvent:e1,createElement:e2,css:e5,defined:e3,destroyObjectProperties:e6,diffObjects:e4,discardElement:e8,extend:e9,fireEvent:e7,isNumber:it,isString:ie,merge:ii,objectEach:is,pick:io,splat:ir}=T();function ia(t){if(ie(t)?-1!==t.indexOf("%L"):t.fractionalSecondDigits)return"text";let e=ie(t)?["a","A","d","e","w","b","B","m","o","y","Y"].some(e=>-1!==t.indexOf("%"+e)):t.dateStyle||t.day||t.month||t.year,i=ie(t)?["H","k","I","l","M","S"].some(e=>-1!==t.indexOf("%"+e)):t.timeStyle||t.hour||t.minute||t.second;return e&&i?"datetime-local":e?"date":i?"time":"text"}class il{static compose(t,e){e$.compose(t,e,il)}constructor(t){this.isDirty=!1,this.buttonOptions=il.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],n=i.scroller&&i.scroller.getUnionExtremes()||o||{},r=s.type,a=s.dataGrouping,l=n.dataMin,h=n.dataMax,d,p=it(o?.max)?Math.round(Math.min(o.max,h??o.max)):void 0,c,u=s._range,g,m,f,x=!0;if(null!==l&&null!==h){if(this.setSelected(t),a&&(this.forcedDataGrouping=!0,D().prototype.setDataGrouping.call(o||{chart:this.chart},a,!1),this.frozenStates=s.preserveDataGrouping),"month"===r||"year"===r)o?(m={range:s,max:p,chart:i,dataMin:l,dataMax:h},d=o.minFromRange.call(m),it(m.newMax)&&(p=m.newMax),x=!1):u=s;else if(u)it(p)&&(p=Math.min((d=Math.max(p-u,l))+u,h),x=!1);else if("ytd"===r){if(o)!o.hasData()||it(h)&&it(l)||(l=Number.MAX_VALUE,h=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(l=Math.min(e[0],l),h=Math.max(e[e.length-1],h))}),e=!1),it(h)&&it(l)&&(d=g=(f=this.getYTDExtremes(h,l)).min,p=f.max);else{this.deferredYTDClick=t;return}}else"all"===r&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=l,p=h);if(x&&s._offsetMin&&e3(d)&&(d+=s._offsetMin),s._offsetMax&&e3(p)&&(p+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)it(d)&&it(p)&&(o.setExtremes(d,p,io(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{c=ir(i.options.xAxis||{})[0];let t=e1(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});e1(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=c.range,e.options.min=c.min,t()})}e7(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,n=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&e7(t,"blur"),i&&i.blur&&e7(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(e1(t.container,"mousedown",n)),this.eventsToUnbind.push(e1(t,"resize",n)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(e1(t,"load",function(){t.xAxis&&t.xAxis[0]&&e1(t.xAxis[0],"setExtremes",function(i){it(this.max)&&it(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],n=Math.round(o.max-o.min),r=!o.hasVisibleSeries,a=24*36e5,l=e.scroller&&e.scroller.getUnionExtremes()||o,h=l.dataMin,d=l.dataMax,p=t.getYTDExtremes(d,h),c=p.min,u=p.max,g=t.selected,m=t.options.allButtonsEnabled,f=Array(t.buttonOptions.length).fill(0),x=it(g),b=t.buttons,v=!1,y=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,l=e.type,p=e.count||1,b=e._offsetMax-e._offsetMin,M=i===g,A=s>d-h,k=ss&&(S=!0)}else("month"===l||"year"===l)&&n+36e5>=({month:28,year:365})[l]*a*p-b&&n-36e5<=({month:31,year:366})[l]*a*p+b?S=!0:"ytd"===l?(S=u-c+b===n,w=!M):"all"===l&&(S=o.max-o.min>=d-h);let E=!m&&!(v&&"all"===l)&&(A||k||r),O=v&&"all"===l||!w&&S||M&&t.frozenStates;E?f[i]=3:O&&(!x||i===g)&&(y=i)}),null!==y?(f[y]=2,t.setSelected(y)):(t.setSelected(),s&&(s.setState(0),s.attr({text:(e0.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?p=void 0:pl&&(p=l)),void 0!==p&&n.setExtremes(h?p:n.min,h?n.max:p,void 0,void 0,{trigger:"rangeSelectorInput"}))}let p=l[h?"rangeSelectorFrom":"rangeSelectorTo"]||"",c=r.label(p,0).addClass("highcharts-range-label").attr({padding:p?2:0,height:p?a.inputBoxHeight:0}).add(s),u=r.label("",0).addClass("highcharts-range-input").attr({padding:2,width:a.inputBoxWidth,height:a.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:a.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=e2("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",ia(a.inputDateFormat||"%e %b %Y")),e.styledMode||(c.css(ii(n,a.labelStyle)),u.css(ii({color:"#333333"},n,a.inputStyle)),e5(g,e9({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:n.fontSize,fontFamily:n.fontFamily,top:"-9999em"},a.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===T().doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let m=!1;return g.onchange=()=>{m||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{m=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{m=!1},{dateBox:u,input:g,label:c}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,n=o.inputEnabled,r=io(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=e2("div",void 0,{position:"relative",height:0,zIndex:r}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),n&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(e3(o.dataMin)&&e3(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=e0.lang,o=e.renderer,n=ii(i.buttonTheme),r=n&&n.states;delete n.width,delete n.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let a=this.dropdown=e2("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),l=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},ii(n,{"stroke-width":io(n["stroke-width"],0),width:"auto",paddingLeft:io(i.buttonTheme.paddingLeft,l?.padding,8),paddingRight:io(i.buttonTheme.paddingRight,l?.padding,8)}),r&&r.hover,r&&r.select,r&&r.disabled).hide().add(this.group),e1(a,"touchstart",()=>{a.style.fontSize="16px"});let h=T().isMS?"mouseover":"mouseenter",d=T().isMS?"mouseout":"mouseleave";e1(a,h,()=>{e7(this.dropdownLabel.element,h)}),e1(a,d,()=>{e7(this.dropdownLabel.element,d)}),e1(a,"change",()=>{e7(this.buttons[a.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),e2("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,a),this.createButtons()}createButtons(){let{options:t}=this,e=ii(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:n,chart:r,options:a}=this,l=r.renderer,h=ii(a.buttonTheme);o?.add(e2("option",{textContent:t.title||t.text}),e+2),n[e]=l.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},h,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&n[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:n,zoomText:r}=this,a=i.options,l=a.exporting&&!1!==a.exporting.enabled&&a.navigation&&a.navigation.buttonOptions,{buttonPosition:h,inputPosition:d,verticalAlign:p}=n,c=(t,e)=>l&&this.titleCollision(i)&&"top"===p&&"right"===e.align&&e.y-t.getBBox().height-12<(l.y||0)+(l.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&h&&d){let a=h.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;r&&(t+=r.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=n.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=c(t,h);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let l=0;n.inputEnabled&&o&&(l=c(o,d),"left"===d.align?a=u:"right"===d.align&&(a=-Math.max(i.axisOffset[1],-l)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+a-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(l),s.align({verticalAlign:p},!0,i.spacingBox);let g=s.alignAttr.translateY,m=s.getBBox().height+20,f=0;if("bottom"===p){let t=i.legend&&i.legend.options;f=g-(m=m+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+io(t.margin,10):0)-20)-(n.floating?0:n.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===p?(n.floating&&(f=0),i.titleOffset&&i.titleOffset[0]&&(f=i.titleOffset[0]),f+=i.margin[0]-i.spacing[0]||0):"middle"===p&&(d.y===h.y?f=g:(d.y||h.y)&&(d.y<0||h.y<0?f-=Math.min(d.y,h.y):f=g-m)),s.translate(n.x,n.y+Math.floor(f));let{minInput:x,maxInput:b,dropdown:v}=this;n.inputEnabled&&x&&b&&(x.style.marginTop=s.translateY+"px",b.style.marginTop=s.translateY+"px"),v&&(v.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=ii(s.buttonTheme),n=o&&o.states,r=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(e4(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,r,n),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},l=e=>{if(s?.alignOptions&&i){let n=s.alignAttr.translateX+s.alignOptions.x-t+s.getBBox().x+2,a=s.alignOptions.width||0,l=i.alignAttr.translateX+i.getBBox().x;return l+e>n&&n+a>l&&o.y{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};if(i){if("always"===n){this.collapseButtons(),l(a())&&h();return}"never"===n&&this.expandButtons()}s&&i?r.align===o.align||l(this.initialButtonGroupWidth+20)?"responsive"===n?(this.collapseButtons(),l(a())&&h()):h():"responsive"===n&&this.expandButtons():i&&"responsive"===n&&(this.initialButtonGroupWidth>e.plotWidth?this.collapseButtons():this.expandButtons())}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,chart:e,dropdownLabel:i,dropdown:s}=this;if(t&&s){let{translateX:o=0,translateY:n=0}=t,r=e.plotLeft+o;i.attr({x:r,y:n}).show(),e5(s,{left:r+"px",top:n+"px",visibility:"inherit"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),e5(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,n=s.y,r=i.y,a=0;if(t.height)return t.height;this.alignElements(),a=e?e.getBBox(!0).height+13+o:0;let l=Math.min(r,n);return(r<0&&n<0||r>0&&n>0)&&(a+=Math.abs(l)),a}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(ii(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),e3(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),e6(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),is(t,function(e,i){e&&"chart"!==i&&(e instanceof eQ()?e.destroy():e instanceof window.HTMLElement&&e8(e),delete t[i]),e!==il.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}e9(il.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});var ih=E(960),id=/*#__PURE__*/E.n(ih),ip=E(984),ic=/*#__PURE__*/E.n(ip);let{format:iu}=ic(),{getOptions:ig}=T(),{setFixedRange:im}=tD,{addEvent:ix,clamp:ib,crisp:iv,defined:iy,extend:iM,find:iA,isNumber:ik,isString:iw,merge:iS,pick:iE,splat:iO}=T();function iC(t,e,i){return"xAxis"===t?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===t?{labels:{y:-2},opposite:i.opposite??e.opposite??!0,showLastLabel:!!(e.categories||"category"===e.type),title:{text:i.title?.text!=="Values"?i.title?.text:null}}:{}}function iT(t,e){if("xAxis"===t){let t=iE(e.navigator&&e.navigator.enabled,tM.enabled,!0),i={type:"datetime",categories:void 0};return t&&(i.startOnTick=!1,i.endOnTick=!1),i}return{}}class iB extends id(){init(t,e){let i=ig(),s=t.xAxis,o=t.yAxis,n=iE(t.navigator&&t.navigator.enabled,tM.enabled,!0);t.xAxis=t.yAxis=void 0;let r=iS({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:n},scrollbar:{enabled:iE(tZ.enabled,!0)},rangeSelector:{enabled:iE(eP.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:iE(i.tooltip&&i.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},t,{isStock:!0});t.xAxis=s,t.yAxis=o,r.xAxis=iO(t.xAxis||{}).map(e=>iS(iC("xAxis",e,i.xAxis),e,iT("xAxis",t))),r.yAxis=iO(t.yAxis||{}).map(t=>iS(iC("yAxis",t,i.yAxis),t)),super.init(r,e)}createAxis(t,e){return e.axis=iS(iC(t,e.axis,ig()[t]),e.axis,iT(t,this.userOptions)),super.createAxis(t,e)}}ix(id(),"update",function(t){let e=t.options;"scrollbar"in e&&this.navigator&&(iS(!0,this.options.scrollbar,e.scrollbar),this.navigator.update({enabled:!!this.navigator.navigatorEnabled}),delete e.scrollbar)}),function(t){function e(t){if(!(this.crosshair?.label?.enabled&&this.cross&&ik(this.min)&&ik(this.max)))return;let e=this.chart,i=this.logarithmic,s=this.crosshair.label,o=this.horiz,n=this.opposite,r=this.left,a=this.top,l=this.width,h="inside"===this.options.tickPosition,d=!1!==this.crosshair.snap,p=t.e||this.cross?.e,c=t.point,u=this.crossLabel,g,m,f=s.format,x="",b,v=0,y=this.min,M=this.max;i&&(y=i.lin2log(this.min),M=i.lin2log(this.max));let A=o?"center":n?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";u||(u=this.crossLabel=e.renderer.label("",0,void 0,s.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(c&&c.series?c.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:s.align||A,padding:iE(s.padding,8),r:iE(s.borderRadius,3),zIndex:2}).add(this.labelGroup),e.styledMode||u.attr({fill:s.backgroundColor||c&&c.series&&c.series.color||"#666666",stroke:s.borderColor||"","stroke-width":s.borderWidth||0}).css(iM({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},s.style||{}))),o?(g=d?(c.plotX||0)+r:p.chartX,m=a+(n?0:this.height)):(g=r+this.offset+(n?l:0),m=d?(c.plotY||0)+a:p.chartY),f||s.formatter||(this.dateTime&&(x="%b %d, %Y"),f="{value"+(x?":"+x:"")+"}");let k=d?this.isXAxis?c.x:c.y:this.toValue(o?p.chartX:p.chartY),w=c&&c.series?c.series.isPointInside(c):ik(k)&&k>y&&k=b.right&&(v=-(O+E.width-b.right)),u.attr({x:Math.max(0,g+v),y:Math.max(0,m),anchorX:o?g:this.opposite?0:e.chartWidth,anchorY:o?this.opposite?e.chartHeight:0:m+E.height/2})}function i(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function s(t){let e=this.chart,i=this.options,s=e._labelPanes=e._labelPanes||{},o=i.labels;if(e.options.isStock&&"yAxis"===this.coll){let e=i.top+","+i.height;!s[e]&&o.enabled&&(15===o.distance&&1===this.side&&(o.distance=0),void 0===o.align&&(o.align="right"),s[e]=this,t.align="right",t.preventDefault())}}function o(){let t=this.chart,e=this.options&&this.options.top+","+this.options.height;e&&t._labelPanes&&t._labelPanes[e]===this&&delete t._labelPanes[e]}function n(t){let e=this,i=e.isLinked&&!e.series&&e.linkedParent?e.linkedParent.series:e.series,s=e.chart,o=s.renderer,n=e.left,r=e.top,a=[],l=t.translatedValue,h=t.value,d=t.force,p,c,u,g,m=[],f,x;if(s.options.isStock&&!1!==t.acrossPanes&&"xAxis"===e.coll||"yAxis"===e.coll){for(let o of(t.preventDefault(),m=(t=>{let o="xAxis"===t?"yAxis":"xAxis",n=e.options[o];return ik(n)?[s[o][n]]:iw(n)?[s.get(n)]:i.map(t=>t[o])})(e.coll),e.isXAxis?s.yAxis:s.xAxis))if(!o.options.isInternal){let t=o.isXAxis?"yAxis":"xAxis";e===(iy(o.options[t])?s[t][o.options[t]]:s[t][0])&&m.push(o)}for(let t of(f=m.length?[]:[e.isXAxis?s.yAxis[0]:s.xAxis[0]],m))-1!==f.indexOf(t)||iA(f,e=>e.pos===t.pos&&e.len===t.len)||f.push(t);if(ik(x=iE(l,e.translate(h||0,void 0,void 0,t.old)))){if(e.horiz)for(let t of f){let i;g=(c=t.pos)+t.len,p=u=Math.round(x+e.transB),"pass"!==d&&(pn+e.width)&&(d?p=u=ib(p,n,n+e.width):i=!0),i||a.push(["M",p,c],["L",u,g])}else for(let t of f){let i;u=(p=t.pos)+t.len,c=g=Math.round(r+e.height-x),"pass"!==d&&(cr+e.height)&&(d?c=g=ib(c,r,r+e.height):i=!0),i||a.push(["M",p,c],["L",u,g])}}t.path=a.length>0?o.crispPolyLine(a,t.lineWidth||1):void 0}}function r(t){if(this.chart.options.isStock){let e;this.is("column")||this.is("columnrange")?e={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(e={marker:{enabled:!1,radius:2}}),e&&(t.plotOptions[this.type]=iS(t.plotOptions[this.type],e))}}function a(){let t=this.chart,e=this.options.dataGrouping;return!1!==this.allowDG&&e&&iE(e.enabled,t.options.isStock)}function l(t,e){for(let i=0;i`plot${t.charAt(0).toUpperCase()+t.slice(1)}`);s.push("yBottom"),i.push("low"),super.translate.apply(t),t.points.forEach(function(o){i.forEach(function(i,n){let r=o[i];null!==r&&(t.dataModify&&(r=t.dataModify.modifyValue(r)),o[s[n]]=e.toPixels(r,!0))}),o.tooltipPos[1]=o.plotHigh+e.pos-t.chart.plotTop})}}iL.defaultOptions=iz(iR.defaultOptions,{lineWidth:1,tooltip:{pointFormat:' {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}),iI(iL.prototype,{pointClass:class extends iP{},animate:null,directTouch:!1,keysAffectYAxis:["low","high"],pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),tb().registerSeriesType("hlc",iL);let{seriesTypes:{hlc:iH}}=tb();class iW extends iH.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}),iU(iK.prototype,{pointClass:iW,pointArrayMap:["open","high","low","close"]}),tb().registerSeriesType("ohlc",iK);let{column:iq,ohlc:i$}=tb().seriesTypes,{crisp:iJ,merge:iQ}=T();class i0 extends i${pointAttribs(t,e){let i=iq.prototype.pointAttribs.call(this,t,e),s=this.options,o=t.openo&&(i-=Math.round((n-o)/2),o=n),a=t[e](i,s,o,n,r),l&&h){let r=l;if("circle"===e)r=i+o/2;else{let t=a[0],e=a[1];"M"===t[0]&&"L"===e[0]&&(r=(t[1]+e[1])/2)}let d=s>h?s:s+n;a.push(["M",r,d],["L",l,h]),a=a.concat(t.circle(l-1,h-1,2,2))}return a}}t.compose=function(t){if(-1===e.indexOf(t)){e.push(t);let o=t.prototype.symbols;o.flag=i,s(o,"circle"),s(o,"square")}let o=tT().getRendererType();e.indexOf(o)&&e.push(o)}}(y||(y={}));let i3=y;var i6=E(448),i4=/*#__PURE__*/E.n(i6);let{composed:i8}=T(),{prototype:i9}=i4(),{prototype:i7}=I(),{defined:st,pushUnique:se,stableSort:si}=T();!function(t){function e(t){return i7.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,t)}function i(){i9.translate.apply(this);let t=this,e=t.options,i=t.chart,s=t.points,o=e.onSeries,n=o&&i.get(o),r=n&&n.options.step,a=n&&n.points,l=i.inverted,h=t.xAxis,d=t.yAxis,p=s.length-1,c,u,g=e.onKey||"y",m=a&&a.length,f=0,x,b,v,y,M;if(n&&n.visible&&m){for(f=(n.pointXOffset||0)+(n.barW||0)/2,y=n.currentDataGrouping,b=a[m-1].x+(y?y.totalRange:0),si(s,(t,e)=>t.x-e.x),g="plot"+g[0].toUpperCase()+g.substr(1);m--&&s[p];)if(x=a[m],(c=s[p]).y=x.y,x.x<=c.x&&void 0!==x[g]){if(c.x<=b&&(c.plotY=x[g],x.xMath.pow(1-o,3)*t[n]+3*(1-o)*(1-o)*o*i[n]+3*(1-o)*o*o*s[n]+o*o*o*e[n],n=0,r=1,a;for(let t=0;t<100;t++){let t=(n+r)/2,e=o(t,0);if(null===e)break;if(.25>Math.abs(e-c.plotX)){a=t;break}e{let o;e.plotX+=f,(void 0===e.plotY||l)&&(e.plotX>=0&&e.plotX<=h.len?l?(e.plotY=h.translate(e.x,0,1,0,1),e.plotX=st(e.y)?d.translate(e.y,0,0,0,1):0):e.plotY=(h.opposite?0:t.yAxis.len)+h.offset:e.shapeArgs={}),(u=s[i-1])&&u.plotX===e.plotX&&(void 0===u.stackIndex&&(u.stackIndex=0),o=u.stackIndex+1),e.stackIndex=o}),this.onSeries=n}t.compose=function(t){if(se(i8,"OnSeries")){let s=t.prototype;s.getPlotBox=e,s.translate=i}return t},t.getPlotBox=e,t.translate=i}(M||(M={}));let ss=M,{noop:so}=T(),{distribute:sn}=T(),{series:sr,seriesTypes:{column:sa}}=tb(),{addEvent:sl,defined:sh,extend:sd,isNumber:sp,merge:sc,objectEach:su,wrap:sg}=T();class sm extends sa{animate(t){t&&this.setClip()}drawPoints(){let t,e,i,s,o,n,r,a,l,h,d;let p=this.points,c=this.chart,u=c.renderer,g=c.inverted,m=this.options,f=m.y,x=this.yAxis,b={},v=[],y=sp(m.borderRadius)?m.borderRadius:0;for(s=p.length;s--;)o=p[s],h=(g?o.plotY:o.plotX)>this.xAxis.len,t=o.plotX,r=o.stackIndex,i=o.options.shape||m.shape,void 0!==(e=o.plotY)&&(e=o.plotY+f-(void 0!==r&&r*m.stackDistance)),o.anchorX=r?void 0:o.plotX,a=r?void 0:o.plotY,d="flag"!==i,n=o.graphic,void 0!==e&&t>=0&&!h?(n&&o.hasNewShapeType()&&(n=n.destroy()),n||(n=o.graphic=u.label("",0,void 0,i,void 0,void 0,m.useHTML).addClass("highcharts-point").add(this.markerGroup),o.graphic.div&&(o.graphic.div.point=o),n.isNew=!0),n.attr({align:d?"center":"left",width:m.width,height:m.height,"text-align":m.textAlign,r:y}),c.styledMode||n.attr(this.pointAttribs(o)).css(sc(m.style,o.style)).shadow(m.shadow),t>0&&(t-=n.strokeWidth()%2),l={y:e,anchorY:a},m.allowOverlapX&&(l.x=t,l.anchorX=o.anchorX),n.attr({text:o.options.title??m.title??"A"})[n.isNew?"attr":"animate"](l),m.allowOverlapX||(b[o.plotX]?b[o.plotX].size=Math.max(b[o.plotX].size,n.width||0):b[o.plotX]={align:d?.5:0,size:n.width||0,target:t,anchorX:t}),o.tooltipPos=[t,e+x.pos-c.plotTop]):n&&(o.graphic=n.destroy());if(!m.allowOverlapX){let t=100;for(let e of(su(b,function(e){e.plotX=e.anchorX,v.push(e),t=Math.max(e.size,t)}),sn(v,g?x.len:this.xAxis.len,t),p)){let t=e.plotX,i=e.graphic,s=i&&b[t];s&&i&&(sh(s.pos)?i[i.isNew?"attr":"animate"]({x:s.pos+(s.align||0)*s.size,anchorX:e.anchorX}).show().isNew=!1:i.hide().isNew=!0)}}m.useHTML&&this.markerGroup&&sg(this.markerGroup,"on",function(t){return eQ().prototype.on.apply(t.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let t=this.points;for(let e of(super.drawTracker(),t)){let i=e.graphic;i&&(e.unbindMouseOver&&e.unbindMouseOver(),e.unbindMouseOver=sl(i.element,"mouseover",function(){for(let s of(e.stackIndex>0&&!e.raised&&(e._y=i.y,i.attr({y:e._y-8}),e.raised=!0),t))s!==e&&s.raised&&s.graphic&&(s.graphic.attr({y:s._y}),s.raised=!1)}))}}pointAttribs(t,e){let i=this.options,s=t&&t.color||this.color,o=i.lineColor,n=t&&t.lineWidth,r=t&&t.fillColor||i.fillColor;return e&&(r=i.states[e].fillColor,o=i.states[e].lineColor,n=i.states[e].lineWidth),{fill:r||s,stroke:o||s,"stroke-width":n||i.lineWidth||0}}setClip(){sr.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}sm.compose=i3.compose,sm.defaultOptions=sc(sa.defaultOptions,{borderRadius:0,pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd3ff"}},style:{fontSize:"0.7em",fontWeight:"bold"}}),ss.compose(sm),sd(sm.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:i5,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:so,init:sr.prototype.init}),tb().registerSeriesType("flags",sm);var sf=E(184),sx=/*#__PURE__*/E.n(sf);let{addEvent:sb,find:sv,fireEvent:sy,isArray:sM,isNumber:sA,pick:sk}=T();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,r;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);n--;)if(r&&!1!==r.visible||(r=i[n+1]),t=i[n],!1!==r.visible&&!1!==t.visible){if(r.x-t.x>o){let e=(t.x+r.x)/2;i.splice(n+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(sx())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}r=t}}return this.getGraphPath(i)}t.compose=function(t,h){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),sb(t,"init",o),sb(t,"afterInit",e),sb(t,"afterSetTickPositions",s),sb(t,"afterSetOptions",i);let d=h.prototype;d.drawBreaks=a,d.gappedPath=l,sb(h,"afterGeneratePoints",n),sb(h,"afterRender",r)}return t};class h{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,n=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?n<=o:n=s);n++)o.to=t)break;else if(h.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return sv(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),n||s.val2lin!==h.val2Lin||(delete s.val2lin,delete s.lin2val),n&&(s.userOptions.ordinal=!1,s.lin2val=h.lin2Val,s.val2lin=h.val2Lin,s.setExtremes=function(t,e,o,n,r){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)c-=l;for(;cthis.chart.plotSizeX/i||o&&n.forced)&&(s=!0));return s?i:0}function sN(){this.series.forEach(function(t){t.hasProcessed=!1})}function sF(t,e){let i;if(e=sW(e,!0),t||(t={forced:!1,units:null}),this instanceof m)for(i=this.series.length;i--;)this.series[i].update({dataGrouping:t},!1);else this.chart.options.series.forEach(function(e){e.dataGrouping="boolean"==typeof t?t:sH(t,e.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),e&&this.chart.redraw()}let sU={compose:function(t){m=t;let e=t.prototype;e.applyGrouping||(sz(t,"afterSetScale",sN),sz(t,"postProcessData",sX),sL(e,{applyGrouping:sX,getGroupPixelWidth:sY,setDataGrouping:sF}))}},{addEvent:s_,getMagnitude:sV,normalizeTickInterval:sZ,timeUnits:sj}=T();!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if("datetime"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new s(this))}t.compose=function(t){return t.keepProps.includes("dateTime")||(t.keepProps.push("dateTime"),t.prototype.getTimeTicks=e,s_(t,"afterSetType",i)),t};class s{constructor(t){this.axis=t}normalizeTimeTickInterval(t,e){let i=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],s=i[i.length-1],o=sj[s[0]],n=s[1],r;for(r=0;r=e[0]){let i;p++;let s=t.groupMap[0].start,r=t.groupMap[0].length;s1(s)&&s1(r)&&(i=s+(r-1)),e[0]=({start:e[0],middle:e[0]+.5*o,end:e[0]+o,firstPoint:n[0],lastPoint:i&&n[i]})[l]}if(r>0&&h&&o&&e[r]>=i-o){d--;let i=t.groupMap[t.groupMap.length-1].start;e[r]=({start:e[r],middle:e[r]+.5*o,end:e[r]+o,firstPoint:i&&n[i],lastPoint:n[n.length-1]})[h]}if(a&&"start"!==a){let t=o*({middle:.5,end:1})[a];for(;d>=p;)e[d]+=t,d--}}(this,A||[],r),a&&A&&(sJ((e=A)[0])&&s1(f.min)&&s1(f.dataMin)&&e[0]f.max&&((!sJ(f.options.max)&&s1(f.dataMax)&&f.max>=f.dataMax||f.max===f.dataMax)&&(f.max=Math.max(e[e.length-1],f.max)),f.dataMax=Math.max(e[e.length-1],f.dataMax))),n.groupAll&&(this.allGroupedTable=M,A=(M=(d=this.cropData(M,f.min||0,f.max||0)).modified).getColumn("x"),this.cropStart=d.start),this.dataTable.modified=M}else this.groupMap=void 0,this.currentDataGrouping=void 0;this.hasGroupedData=s,this.preventGraphAnimation=(l&&l.totalRange)!==(h&&h.totalRange)}function s8(){this.groupedData&&(this.groupedData.forEach(function(t,e){t&&(this.groupedData[e]=t.destroy?t.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedTable)}function s9(){s6.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function s7(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function ot(t,e,i){let s=t.getColumn("x",!0)||[],o=t.getColumn("y",!0),n=this,r=n.data,a=n.options&&n.options.data,l=[],h=new eM,d=[],p=t.rowCount,c=!!o,u=[],g=n.pointArrayMap,m=g&&g.length,f=["x"].concat(g||["y"]),x=(g||["y"]).map(()=>[]),b=this.options.dataGrouping&&this.options.dataGrouping.groupAll,v,y,M,A=0,k=0,w="function"==typeof i?i:i&&sE[i]?sE[i]:sE[n.getDGApproximation&&n.getDGApproximation()||"average"];if(m){let t=g.length;for(;t--;)u.push([])}else u.push([]);let S=m||1;for(let t=0;t<=p;t++)if(!(s[t]=e[A+1]||t===p;){if(v=e[A],n.dataGroupInfo={start:b?k:n.cropStart+k,length:u[0].length,groupStart:v},M=w.apply(n,u),n.pointClass&&!sJ(n.dataGroupInfo.options)&&(n.dataGroupInfo.options=s2(n.pointClass.prototype.optionsToObject.call({series:n},n.options.data[n.cropStart+k])),f.forEach(function(t){delete n.dataGroupInfo.options[t]})),void 0!==M){l.push(v);let t=s3(M);for(let e=0;e{E[t]=x[e]}),h.setColumns(E),{groupMap:d,modified:h}}function oe(t){let e=t.options,i=this.type,s=this.chart.options.plotOptions,o=this.useCommonDataGrouping&&sI.common,n=sI.seriesSpecific,r=T().defaultOptions.plotOptions[i].dataGrouping;if(s&&(n[i]||o)){let t=this.chart.rangeSelector;r||(r=s2(sI.common,n[i])),e.dataGrouping=s2(o,r,s.series&&s.series.dataGrouping,s[i].dataGrouping,this.userOptions.dataGrouping,!e.isInternal&&t&&s1(t.selected)&&t.buttonOptions[t.selected].dataGrouping)}}let oi={compose:function(t){let e=t.prototype;e.applyGrouping||(s$(t.prototype.pointClass,"update",function(){if(this.dataGroup)return sQ(24,!1,this.series.chart),!1}),s$(t,"afterSetOptions",oe),s$(t,"destroy",s8),s0(e,{applyGrouping:s4,destroyGroupedData:s8,generatePoints:s9,getDGApproximation:s7,groupData:ot}))},groupData:ot},{format:os}=ic(),{composed:oo}=T(),{addEvent:on,extend:or,isNumber:oa,pick:ol,pushUnique:oh}=T();function od(t){let e=this.chart,i=e.time,s=t.point,o=s.series,n=o.options,r=o.tooltipOptions,a=n.dataGrouping,l=o.xAxis,h=r.xDateFormat||"",d,p,c,u,g,m=r[t.isFooter?"footerFormat":"headerFormat"];if(l&&"datetime"===l.options.type&&a&&oa(s.key)){p=o.currentDataGrouping,c=a.dateTimeLabelFormats||sI.common.dateTimeLabelFormats,p?(u=c[p.unitName],1===p.count?h=u[0]:(h=u[1],d=u[2])):!h&&c&&l.dateTime&&(h=l.dateTime.getXDateFormat(s.x,r.dateTimeLabelFormats));let n=ol(o.groupMap?.[s.index].groupStart,s.key),f=n+(p?.totalRange||0)-1;g=i.dateFormat(h,n),d&&(g+=i.dateFormat(d,f)),o.chart.styledMode&&(m=this.styledModeFormat(m)),t.text=os(m,{point:or(s,{key:g}),series:o},e),t.preventDefault()}}let op={compose:function(t,e,i){sU.compose(t),oi.compose(e),i&&oh(oo,"DataGrouping")&&on(i,"headerFormatter",od)},groupData:oi.groupData},oc=T();oc.dataGrouping=oc.dataGrouping||{},oc.dataGrouping.approximationDefaults=oc.dataGrouping.approximationDefaults||sG,oc.dataGrouping.approximations=oc.dataGrouping.approximations||sE,op.compose(oc.Axis,oc.Series,oc.Tooltip);let{defined:ou,isNumber:og,pick:om}=T(),of={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},{addEvent:ox,isObject:ob,pick:ov,defined:oy,merge:oM}=T(),{getAssignedAxis:oA}={annotationsFieldsTypes:of,getAssignedAxis:function(t){return t.filter(t=>{let e=t.axis.getExtremes(),i=e.min,s=e.max,o=om(t.axis.minPointOffset,0);return og(i)&&og(s)&&t.value>=i-o&&t.value<=s+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,e){let i=of[t],s=typeof e;return ou(i)&&(s=i),({string:"text",number:"number",boolean:"checkbox"})[s]}},ok=[],ow={enabled:!0,sensitivity:1.1},oS=t=>(ob(t)||(t={enabled:t??!0}),oM(ow,t)),oE=function(t,e,i,s,o,n,r){let a=ov(r.type,t.zooming.type,""),l=[];"x"===a?l=i:"y"===a?l=s:"xy"===a&&(l=t.axes);let h=t.transform({axes:l,to:{x:o-5,y:n-5,width:10,height:10},from:{x:o-5*e,y:n-5*e,width:10*e,height:10*e},trigger:"mousewheel"});return h&&(oy(f)&&clearTimeout(f),f=setTimeout(()=>{t.pointer?.drop()},400)),h};function oO(){let t=oS(this.zooming.mouseWheel);t.enabled&&ox(this.container,"wheel",e=>{e=this.pointer?.normalize(e)||e;let{pointer:i}=this,s=i&&!i.inClass(e.target,"highcharts-no-mousewheel");if(this.isInsidePlot(e.chartX-this.plotLeft,e.chartY-this.plotTop)&&s){let s=t.sensitivity||1.1,o=e.detail||(e.deltaY||0)/120,n=oA(i.getCoordinates(e).xAxis),r=oA(i.getCoordinates(e).yAxis);oE(this,Math.pow(s,o),n?[n.axis]:this.xAxis,r?[r.axis]:this.yAxis,e.chartX,e.chartY,t)&&e.preventDefault?.()}})}/** - * @license Highcharts JS v12.0.2 (2024-12-04) + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Chart,t._Highcharts.Templating,t._Highcharts.Series.types.column,t._Highcharts.StackItem):"function"==typeof define&&define.amd?define("highcharts/modules/stock",["highcharts/highcharts"],function(t){return e(t,t.Axis,t.Point,t.Series,t.Color,t.SeriesRegistry,t.RendererRegistry,t.SVGRenderer,t.SVGElement,t.Chart,t.Templating,t.Series,["types"],["column"],t.StackItem)}):"object"==typeof exports?exports["highcharts/modules/stock"]=e(t._Highcharts,t._Highcharts.Axis,t._Highcharts.Point,t._Highcharts.Series,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.RendererRegistry,t._Highcharts.SVGRenderer,t._Highcharts.SVGElement,t._Highcharts.Chart,t._Highcharts.Templating,t._Highcharts.Series.types.column,t._Highcharts.StackItem):t.Highcharts=e(t.Highcharts,t.Highcharts.Axis,t.Highcharts.Point,t.Highcharts.Series,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.RendererRegistry,t.Highcharts.SVGRenderer,t.Highcharts.SVGElement,t.Highcharts.Chart,t.Highcharts.Templating,t.Highcharts.Series.types.column,t.Highcharts.StackItem)}("undefined"==typeof window?this:window,(t,e,i,s,o,n,r,a,l,h,d,p,c)=>(()=>{"use strict";let u,g,m,f;var x,b,v,y,M,A,k,w={532:t=>{t.exports=e},960:t=>{t.exports=h},620:t=>{t.exports=o},260:t=>{t.exports=i},608:t=>{t.exports=r},28:t=>{t.exports=l},540:t=>{t.exports=a},448:t=>{t.exports=p},820:t=>{t.exports=s},512:t=>{t.exports=n},184:t=>{t.exports=c},984:t=>{t.exports=d},944:e=>{e.exports=t}},S={};function E(t){var e=S[t];if(void 0!==e)return e.exports;var i=S[t]={exports:{}};return w[t](i,i.exports,E),i.exports}E.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return E.d(e,{a:e}),e},E.d=(t,e)=>{for(var i in e)E.o(e,i)&&!E.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},E.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var C={};E.d(C,{default:()=>oO});var T=E(944),B=E.n(T),O=E(532),D=E.n(O),P=E(260),R=E.n(P),G=E(820),I=E.n(G);let{tooltipFormatter:z}=R().prototype,{addEvent:L,arrayMax:W,arrayMin:H,correctFloat:X,defined:Y,isArray:N,isNumber:F,isString:U,pick:_}=B();!function(t){function e(t,e,i){!this.isXAxis&&(this.series.forEach(function(i){"compare"===t&&"boolean"!=typeof e?i.setCompare(e,!1):"cumulative"!==t||U(e)||i.setCumulative(e,!1)}),_(i,!0)&&this.chart.redraw())}function i(t){let e=this,{numberFormatter:i}=e.series.chart,s=function(s){t=t.replace("{point."+s+"}",(e[s]>0&&"change"===s?"+":"")+i(e[s],_(e.series.tooltipOptions.changeDecimals,2)))};return Y(e.change)&&s("change"),Y(e.cumulativeSum)&&s("cumulativeSum"),z.apply(this,[t])}function s(){let t;let e=this.options.compare;("percent"===e||"value"===e||this.options.cumulative)&&(t=new d(this),"percent"===e||"value"===e?t.initCompare(e):t.initCumulative()),this.dataModify=t}function o(t){let e=t.dataExtremes,i=e.activeYData;if(this.dataModify&&e){let t;this.options.compare?t=[this.dataModify.modifyValue(e.dataMin),this.dataModify.modifyValue(e.dataMax)]:this.options.cumulative&&N(i)&&i.length>=2&&(t=d.getCumulativeExtremes(i)),t&&(e.dataMin=H(t),e.dataMax=W(t))}}function n(t,e){this.options.compare=this.userOptions.compare=t,this.update({},_(e,!0)),this.dataModify&&("value"===t||"percent"===t)?this.dataModify.initCompare(t):this.points.forEach(t=>{delete t.change})}function r(){let t=this.getColumn(this.pointArrayMap&&(this.options.pointValKey||this.pointValKey)||"y",!0);if(this.xAxis&&t.length&&this.dataModify){let e=this.getColumn("x",!0),i=this.dataTable.rowCount,s=!0===this.options.compareStart?0:1;for(let o=0;o=(this.xAxis.min||0)){this.dataModify.compareValue=i;break}}}}function a(t,e){this.setModifier("compare",t,e)}function l(t,e){t=_(t,!1),this.options.cumulative=this.userOptions.cumulative=t,this.update({},_(e,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(t=>{delete t.cumulativeSum})}function h(t,e){this.setModifier("cumulative",t,e)}t.compose=function(t,d,p){let c=d.prototype,u=p.prototype,g=t.prototype;return g.setCompare||(g.setCompare=n,g.setCumulative=l,L(t,"afterInit",s),L(t,"afterGetExtremes",o),L(t,"afterProcessData",r)),c.setCompare||(c.setCompare=a,c.setModifier=e,c.setCumulative=h,u.tooltipFormatter=i),t};class d{constructor(t){this.series=t}modifyValue(){return 0}static getCumulativeExtremes(t){let e=1/0,i=-1/0;return t.reduce((t,s)=>{let o=t+s;return e=Math.min(e,o,t),i=Math.max(i,o,t),o}),[e,i]}initCompare(t){this.modifyValue=function(e,i){null===e&&(e=0);let s=this.compareValue;if(void 0!==e&&void 0!==s){if("value"===t?e-=s:e=e/s*100-(100===this.series.options.compareBase?0:100),void 0!==i){let t=this.series.points[i];t&&(t.change=e)}return e}return 0}}initCumulative(){this.modifyValue=function(t,e){if(null===t&&(t=0),void 0!==t&&void 0!==e){let i=e>0?this.series.points[e-1]:null;i&&i.cumulativeSum&&(t=X(i.cumulativeSum+t));let s=this.series.points[e],o=s.series.options.cumulativeStart,n=s.x<=this.series.xAxis.max&&s.x>=this.series.xAxis.min;return s&&(!o||n?s.cumulativeSum=t:s.cumulativeSum=void 0),t}return 0}}}t.Additions=d}(x||(x={}));let V=x,{isTouchDevice:Z}=B(),{addEvent:j,merge:K,pick:q}=B(),$=[];function J(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function Q(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:n,scrollButtonSize:r}=o;this.inverted?(o.left=o.opposite?this.chartWidth-n-o.height:this.spacing[3]+n,o.top=this.plotTop+r):(o.left=q(e.left,this.plotLeft+r),o.top=o.navigatorOptions.top||this.chartHeight-o.height-n-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+q(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function tt(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new u(this),q(t.redraw,!0)&&this.redraw(t.animation))}function te(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new u(this))}function ti(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!Z&&"x"===this.zooming.type||Z&&"x"===this.zooming.pinchType))return!1}function ts(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function to(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(K(!0,this.options.navigator,e),K(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let tn={compose:function(t,e){if(B().pushUnique($,t)){let i=t.prototype;u=e,i.callbacks.push(ts),j(t,"afterAddSeries",J),j(t,"afterSetChartSize",Q),j(t,"afterUpdate",tt),j(t,"beforeRender",te),j(t,"beforeShowResetZoom",ti),j(t,"update",to)}}},{isTouchDevice:tr}=B(),{addEvent:ta,correctFloat:tl,defined:th,isNumber:td,pick:tp}=B();function tc(){this.navigatorAxis||(this.navigatorAxis=new tg(this))}function tu(t){let e;let i=this.chart,s=i.options,o=s.navigator,n=this.navigatorAxis,r=i.zooming.pinchType,a=s.rangeSelector,l=i.zooming.type;if(this.isXAxis&&(o?.enabled||a?.enabled)){if("y"===l&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===l||tr&&"xy"===r)&&this.options.range){let e=n.previousZoom;th(t.min)?n.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],n.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class tg{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),ta(t,"init",tc),ta(t,"setExtremes",tu))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,n=(o.pointRange||0)/2,r=tp(i,o.translate(t,!0,!o.horiz)),a=tp(s,o.translate(e,!0,!o.horiz));return th(i)||(r=tl(r+n)),th(s)||(a=tl(a-n)),td(r)&&td(a)||(r=a=void 0),{min:r,max:a}}}var tm=E(620),tf=E.n(tm),tx=E(512),tb=E.n(tx);let{parse:tv}=tf(),{seriesTypes:ty}=tb(),tM={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:tv("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ty.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{defined:tA,isNumber:tk,pick:tw}=B(),tS={rect:function(t,e,i,s,o){return o&&o.r?function(t,e,i,s,o){let n=o?.r||0;return[["M",t+n,e],["L",t+i-n,e],["A",n,n,0,0,1,t+i,e+n],["L",t+i,e+s-n],["A",n,n,0,0,1,t+i-n,e+s],["L",t+n,e+s],["A",n,n,0,0,1,t,e+s-n],["L",t,e+n],["A",n,n,0,0,1,t+n,e],["Z"]]}(t,e,i,s,o):[["M",t,e],["L",t+i,e],["L",t+i,e+s],["L",t,e+s],["Z"]]}},{relativeLength:tE}=B(),tC={"navigator-handle":function(t,e,i,s,o={}){let n=o.width?o.width/2:i,r=tE(o.borderRadius||0,Math.min(2*n,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...tS.rect(-n-1,.5,2*n+1,s,{r})]}};var tT=E(608),tB=E.n(tT);let{defined:tO}=B(),tD={setFixedRange:function(t){let e=this.xAxis[0];tO(e.dataMax)&&tO(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{setOptions:tP}=B(),{composed:tR}=B(),{getRendererType:tG}=tB(),{setFixedRange:tI}=tD,{addEvent:tz,extend:tL,pushUnique:tW}=B();function tH(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let tX={compose:function(t,e,i){tg.compose(e),tW(tR,"Navigator")&&(t.prototype.setFixedRange=tI,tL(tG().prototype.symbols,tC),tz(i,"afterUpdate",tH),tP({navigator:tM}))}},{composed:tY}=B(),{addEvent:tN,defined:tF,pick:tU,pushUnique:t_}=B();!function(t){let e;function i(t){let e=tU(t.options&&t.options.min,t.min),i=tU(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:tF(t.dataMin)?Math.min(e,t.min,t.dataMin,tU(t.threshold,1/0)):e,scrollMax:tF(t.dataMax)?Math.max(i,t.max,t.dataMax,tU(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),tN(t.scrollbar,"changed",function(e){let s,o;let{axisMin:n,axisMax:r,scrollMin:a,scrollMax:l}=i(t),h=l-a;if(tF(n)&&tF(r)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=a+h*this.to,o=a+h*this.from):(s=a+h*(1-this.from),o=a+h*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function n(){let t,e,s;let{scrollMin:o,scrollMax:n}=i(this),r=this.scrollbar,a=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,h=this.options.margin||0;if(r&&l){if(this.horiz)this.opposite||(l[1]+=a),r.position(this.left,this.top+this.height+2+l[1]-(this.opposite?h:0),this.width,this.height),this.opposite||(l[1]+=h),t=1;else{let e;this.opposite&&(l[0]+=a),e=r.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:h):this.opposite?0:h,r.position(e,this.top,this.width,this.height),this.opposite&&(l[0]+=h),t=0}if(l[t]+=r.size+(r.options.margin||0),isNaN(o)||isNaN(n)||!tF(this.min)||!tF(this.max)||this.dataMin===this.dataMax)r.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),r.setRange(e,s)}else e=(this.min-o)/(n-o),s=(this.max-o)/(n-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?r.setRange(e,s):r.setRange(1-s,1-e)}}t.compose=function(t,i){t_(tY,"Axis.Scrollbar")&&(e=i,tN(t,"afterGetOffset",s),tN(t,"afterInit",o),tN(t,"afterRender",n))}}(b||(b={}));let tV=b,tZ={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:tj}=B(),{addEvent:tK,correctFloat:tq,crisp:t$,defined:tJ,destroyObjectProperties:tQ,fireEvent:t0,merge:t1,pick:t2,removeEvent:t5}=B();class t3{static compose(t){tV.compose(t,t3)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,tQ(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,n=e.g().add(this.group);if(i.push(n),s.buttonsEnabled){let r=e.rect().addClass("highcharts-scrollbar-button").add(n);this.chart.styledMode||r.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),r.attr(r.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},r.strokeWidth()));let a=e.path(t3.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||a.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=t1(tZ,tj.scrollbar,e),this.options.margin=t2(this.options.margin,10),this.chart=i,this.size=t2(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&t0(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&t0(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:n=0,vertical:r}=this.options,a=this.rendered?"animate":"attr",l=s,h=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=l,this.yOffset=h,r?(this.width=this.yOffset=i=h=this.size,this.xOffset=l=0,this.yOffset=h=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=n):(this.height=s=this.size,this.xOffset=l=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+n),this.group[a]({translateX:t,translateY:this.y}),this.track[a]({width:i,height:s}),this.scrollbarButtons[1][a]({translateX:r?0:i-l,translateY:r?s-h:0})}removeEvents(){this._events.forEach(function(t){t5.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let n=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-t$(0,n),y:-t$(0,n)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-n,width:i-n,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(t3.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-t$(0,this.scrollbarStrokeWidth),-t$(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,n=o.vertical,r=o.minWidth,a=this.barWidth,l=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!tJ(a))return;let h=a*Math.min(e,1);i=Math.ceil(a*(t=Math.max(t,0))),this.calculatedWidth=s=tq(h-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return t2(this.options.liveRedraw,B().svg&&!B().isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!tJ(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),t0(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,t1(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=tq(1-tq(e-t)),e=1),t<0&&(e=tq(e-t),t=0),this.from=t,this.to=e}}t3.defaultOptions=tZ,tj.scrollbar=t1(!0,t3.defaultOptions,tj.scrollbar);var t6=E(540),t4=E.n(t6);let{defaultOptions:t8}=B(),{isTouchDevice:t9}=B(),{prototype:{symbols:t7}}=t4(),{addEvent:et,clamp:ee,correctFloat:ei,defined:es,destroyObjectProperties:eo,erase:en,extend:er,find:ea,fireEvent:el,isArray:eh,isNumber:ed,merge:ep,pick:ec,removeEvent:eu,splat:eg}=B();function em(t,...e){let i=[].filter.call(e,ed);if(i.length)return Math[t].apply(0,i)}class ef{static compose(t,e,i){tn.compose(t,ef),tX.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,n=this.outline.strokeWidth(),r=n/2,a=n%2/2,l=this.scrollButtonSize,h=this.size,d=this.top,p=this.height,c=d-r,u=d+p,g=this.left,m,f;i?(m=d+e+a,e=d+t+a,f=[["M",g+p,d-l-a],["L",g+p,m],["L",g,m],["M",g,e],["L",g+p,e],["L",g+p,d+h+l]],o&&f.push(["M",g+p,m-r],["L",g+p,e+r])):(g-=l,t+=g+l-a,e+=g+l-a,f=[["M",g,c],["L",t,c],["L",t,u],["M",e,u],["L",e,c],["L",g+h+2*l,c]],o&&f.push(["M",t-r,c],["L",e+r,c])),this.outline[s]({d:f})}drawMasks(t,e,i,s){let o,n,r,a;let l=this.left,h=this.top,d=this.height;i?(r=[l,l,l],a=[h,h+t,h+e],n=[d,d,d],o=[t,e-t,this.size-e]):(r=[l,l+t,l+e],a=[h,h,h],n=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:r[e],y:a[e],width:n[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,n=s.renderer,r={cursor:o?"ns-resize":"ew-resize"},a=t.navigatorGroup??(t.navigatorGroup=n.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let l=t.shades[o]??(t.shades[o]=n.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(a));s.styledMode||(l.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&l.css(r))}),t.outline||(t.outline=n.path().addClass("highcharts-navigator-outline").add(a)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:l}=i;[0,1].forEach(e=>{let h=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===h){if(!t.handles[e].isImg&&t.handles[e].symbolName!==h){let i=t7[h].call(t7,-l/2-1,0,l,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=h}}else t.handles[e]?.destroy(),t.handles[e]=n.symbol(h,-l/2-1,0,l,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(a),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-l/2),rotationOriginY:(o+l)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-l/2-1,y:0}).css(r)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(ep(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),es(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{eu(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(et(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,n=this.xAxis,r=n.pointRange||0,a=n.navigatorAxis.fake?o.xAxis[0]:n,l=this.navigatorEnabled,h=this.rendered,d=o.inverted,p=o.xAxis[0].minRange,c=o.xAxis[0].options.maxRange,u=this.scrollButtonSize,g,m,f,x=this.scrollbarHeight,b,v;if(this.hasDragged&&!es(i))return;if(this.isDirty&&this.renderElements(),t=ei(t-r/2),e=ei(e+r/2),!ed(t)||!ed(e)){if(!h)return;i=0,s=ec(n.width,a.width)}this.left=ec(n.left,o.plotLeft+u+(d?o.plotWidth:0));let y=this.size=b=ec(n.len,(d?o.plotHeight:o.plotWidth)-2*u);g=d?x:b+2*u,i=ec(i,n.toPixels(t,!0)),s=ec(s,n.toPixels(e,!0)),ed(i)&&Math.abs(i)!==1/0||(i=0,s=g);let M=n.toValue(i,!0),A=n.toValue(s,!0),k=Math.abs(ei(A-M));kc&&(this.grabbedLeft?i=n.toPixels(A-c-r,!0):this.grabbedRight&&(s=n.toPixels(M+c+r,!0))),this.zoomedMax=ee(Math.max(i,s),0,y),this.zoomedMin=ee(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,y),this.range=this.zoomedMax-this.zoomedMin,y=Math.round(this.zoomedMax);let w=Math.round(this.zoomedMin);l&&(this.navigatorGroup.attr({visibility:"inherit"}),v=h&&!this.hasDragged?"animate":"attr",this.drawMasks(w,y,d,v),this.drawOutline(w,y,d,v),this.navigatorOptions.handles.enabled&&(this.drawHandle(w,0,d,v),this.drawHandle(y,1,d,v))),this.scrollbar&&(d?(f=this.top-u,m=this.left-x+(l||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),x=b+2*u):(f=this.top+(l?this.height:-x),m=this.left-u),this.scrollbar.position(m,f,g,x),this.scrollbar.setRange(this.zoomedMin/(b||1),this.zoomedMax/(b||1))),this.rendered=!0,this.isDirty=!1,el(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,n;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=n=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(et(e.renderTo,"mousemove",o),et(i.ownerDocument,"mouseup",n),et(e.renderTo,"touchmove",o),et(i.ownerDocument,"touchend",n)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(et(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,n){i.push(et(o.element,t,function(t){e[s+"Mousedown"](t,n)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,n=this.size,r=this.range,a=this.left,l=t.chartX,h,d,p,c;i.inverted&&(l=t.chartY,a=this.top),1===e?(this.grabbedCenter=l,this.fixedWidth=r,this.dragOffset=l-o):(c=l-a-r/2,0===e?c=Math.max(0,c):2===e&&c+r>=n&&(c=n-r,this.reversedExtremes?(c-=r,d=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),c!==o&&(this.fixedWidth=r,es((p=s.navigatorAxis.toFixedRange(c,c+r,d,h)).min)&&el(this,"setRange",{min:Math.min(p.min,p.max),max:Math.max(p.min,p.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,n=e.dragOffset,r=i.inverted,a=e.left,l;(!t.touches||0!==t.touches[0].pageX)&&(l=(t=i.pointer?.normalize(t)||t).chartX,r&&(a=e.top,l=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,l-a,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,l-a)):e.grabbedCenter&&(e.hasDragged=!0,ls+n-o&&(l=s+n-o),e.render(0,0,l-n,l-n+o)),e.hasDragged&&e.scrollbar&&ec(e.scrollbar.options.liveRedraw,!t9&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,n,r;let a=this.chart,l=this.xAxis,h=this.scrollbar,d=t.DOMEvent||t,p=a.inverted,c=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!h||!h.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(n=this.fixedExtreme),this.zoomedMax===this.size&&(n=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),es((r=l.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,n)).min)&&el(this,"setRange",{min:Math.min(r.min,r.max),max:Math.max(r.min,r.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&ed(this.zoomedMin)&&ed(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,p,c),this.outline&&this.drawOutline(i,e,p,c),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,p,c),this.drawHandle(e,1,p,c)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){eu(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&eu(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},n=o.enabled,r=s&&i.height||0,a=n&&o.height||0,l=o.buttonsEnabled&&a||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=r,this.scrollbarHeight=a,this.scrollButtonSize=l,this.scrollbarEnabled=n,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let h=this,d=h.baseSeries,p=t.xAxis.length,c=t.yAxis.length,u=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,h.navigatorEnabled){let e=this.getXAxisOffsets();h.xAxis=new(D())(t,ep({breaks:u.options.breaks,ordinal:u.options.ordinal,overscroll:u.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:p,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:u.options.ordinal?0:u.options.minPadding,maxPadding:u.options.ordinal?0:u.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:r}:{offsets:e,height:r}),"xAxis"),h.yAxis=new(D())(t,ep(i.yAxis,{alignTicks:!1,offset:0,index:c,isInternal:!0,reversed:ec(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:r}:{height:r}),"yAxis"),d||i.series.data?h.updateNavigatorSeries(!1):0===t.series.length&&(h.unbindRedraw=et(t,"beforeRedraw",function(){t.series.length>0&&!h.series&&(h.setBaseSeries(),h.unbindRedraw())})),h.reversedExtremes=t.inverted&&!h.xAxis.reversed||!t.inverted&&h.xAxis.reversed,h.renderElements(),h.addMouseEvents()}else h.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),n=s.len-2*l,r=em("min",s.options.min,o.dataMin),a=em("max",s.options.max,o.dataMax)-r;return i?e*a/n+r:n*(e-r)/a},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},h.xAxis.navigatorAxis.axis=h.xAxis,h.xAxis.navigatorAxis.toFixedRange=tg.prototype.toFixedRange.bind(h.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=ep(t.options.scrollbar,{vertical:t.inverted});!ed(e.margin)&&h.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=h.scrollbar=new t3(t.renderer,e,t),et(h.scrollbar,"changed",function(t){let e=h.size,i=e*this.to,s=e*this.from;h.hasDragged=h.scrollbar.hasDragged,h.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){h.onMouseUp(t)})})}h.addBaseSeriesEvents(),h.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=ec(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,n=o.options,r=i.options;return t&&null===i.dataMin||(e={dataMin:ec(s.parse(n?.min),em("min",s.parse(r.min),i.dataMin,o.dataMin,o.min)),dataMax:ec(s.parse(n?.max),em("max",s.parse(r.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?ea(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,n={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},r=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(eu(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),a,l,h=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let p=t.navigatorSeries,c=er({color:t.color,visible:t.visible},eh(h)?t8.navigator.series:h);if(p&&!1===i.navigatorOptions.adaptToUpdatedData)return;n.name="Navigator "+o.length,d=(a=t.options||{}).navigatorOptions||{},c.dataLabels=eg(c.dataLabels),(l=ep(a,n,c,d)).pointRange=ec(c.pointRange,d.pointRange,t8.plotOptions[l.type||"line"].pointRange);let u=d.data||c.data;i.hasNavigatorData=i.hasNavigatorData||!!u,l.data=u||a.data?.slice(0),p&&p.options?p.update(l,e):(t.navigatorSeries=s.initSeries(l),s.setSortedData(),t.navigatorSeries.baseSeries=t,r.push(t.navigatorSeries))}),(h.data&&!(o&&o.length)||eh(h))&&(i.hasNavigatorData=!1,(h=eg(h)).forEach((t,e)=>{n.name="Navigator "+(r.length+1),(l=ep(t8.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},n,t)).data=t.data,l.data&&(i.hasNavigatorData=!0,r.push(s.initSeries(l)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(et(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(et(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(et(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(et(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(et(i,"remove",function(){e&&en(e,i),this.navigatorSeries&&t.series&&(en(t.series,this.navigatorSeries),es(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,n=s.max,r=s.dataMin,a=s.dataMax,l=n-o,h=i.stickToMin,d=i.stickToMax,p=ec(this.ordinal?.convertOverscroll(this.options.overscroll),0),c=i.series&&i.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(h&&(t=(e=r)+l),d&&(t=a+p,h||(e=Math.max(r,t-l,i.getBaseSeriesMin(c&&c.xData?c.xData[0]:-Number.MAX_VALUE)))),u&&(h||d)&&ed(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=ec(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,n=s.min,r=s.options.range;return!!(ed(o)&&ed(n))&&(r&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{eo(t)}),this.navigatorEnabled=!1}}let{fireEvent:ex,isArray:eb,objectEach:ev,uniqueKey:ey}=B(),eM=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||ey(),this.modified=this,this.rowCount=0,this.versionTag=ey();let e=0;ev(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,ev(this.columns,e=>{eb(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;ev(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(ex(this,"afterSetColumns"),this.versionTag=ey())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,n=i?this.rowCount+1:e+1;ev(t,(t,r)=>{let a=o[r]||s?.addColumns!==!1&&Array(n);a&&(i?a.splice(e,0,t):a[e]=t,o[r]=a)}),n>this.rowCount&&this.applyRowCount(n),s?.silent||(ex(this,"afterSetRows"),this.versionTag=ey())}},{addEvent:eA,correctFloat:ek,css:ew,defined:eS,error:eE,isNumber:eC,pick:eT,timeUnits:eB,isString:eO}=B();!function(t){function e(t,i,s,o,n=[],r=0,a){let l={},h=this.options.tickPixelInterval,d=this.chart.time,p=[],c,u,g,m,f,x=0,b=[],v=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!n||n.length<3||void 0===i)return d.getTimeTicks.apply(d,arguments);let y=n.length;for(c=0;cs,n[c]5*r||f){if(n[c]>v){for(u=d.getTimeTicks(t,n[x],n[c],o);u.length&&u[0]<=v;)u.shift();u.length&&(v=u[u.length-1]),p.push(b.length),b=b.concat(u)}x=c+1}if(f)break}if(u){if(m=u.info,a&&m.unitRange<=eB.hour){for(x=1,c=b.length-1;xt-e),(a=i[Math.floor(i.length/2)])<.6*h&&(a=null),p=b[t-1]>s?t-1:t,r=void 0;p--;)d=Math.abs(r-(n=e[p])),r&&d<.8*h&&(null===a||d<.8*a)?(l[b[p]]&&!l[b[p+1]]?(o=p+1,r=n):o=p,b.splice(o,1)):r=n}return b}function i(t){let e=this.ordinal.positions;if(!e)return t;let i=e.length-1,s;return(t<0?t=e[0]:t>i?t=e[i]:(i=Math.floor(t),s=t-i),void 0!==s&&void 0!==e[i])?e[i]+(s?s*(e[i+1]-e[i]):0):t}function s(t){let e=this.ordinal,i=this.old?this.old.min:this.min,s=this.old?this.old.transA:this.transA,o=e.getExtendedPositions();if(o?.length){let n=ek((t-i)*s+this.minPixelPadding),r=ek(e.getIndexOfPoint(n,o)),a=ek(r%1);if(r>=0&&r<=o.length-1){let t=o[Math.floor(r)],e=o[Math.ceil(r)];return o[Math.floor(r)]+a*(e-t)}}return t}function o(e,i){let s=t.Additions.findIndexOf(e,i,!0);if(e[s]===i)return s;let o=(i-e[s])/(e[s+1]-e[s]);return s+o}function n(){this.ordinal||(this.ordinal=new t.Additions(this))}function r(){let{eventArgs:t,options:e}=this;if(this.isXAxis&&eS(e.overscroll)&&0!==e.overscroll&&eC(this.max)&&eC(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(t?.trigger!=="pan"||this.isInternal)&&t?.trigger!=="navigator")){let i=this.ordinal.convertOverscroll(e.overscroll);this.max+=i,!this.isInternal&&eS(this.userMin)&&t?.trigger!=="mousewheel"&&(this.min+=i)}}function a(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function l(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function h(t){let e=this.xAxis[0],i=e.ordinal.convertOverscroll(e.options.overscroll),s=t.originalEvent.chartX,o=this.options.chart.panning,n=!1;if(o&&"y"!==o.type&&e.options.ordinal&&e.series.length&&(!t.touches||t.touches.length<=1)){let t,o;let r=this.mouseDownX,a=e.getExtremes(),l=a.dataMin,h=a.dataMax,d=a.min,p=a.max,c=this.hoverPoints,u=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange,g=Math.round((r-s)/(e.translationSlope*(e.ordinal.slope||u))),m=e.ordinal.getExtendedPositions(),f={ordinal:{positions:m,extendedOrdinalPositions:m}},x=e.index2val,b=e.val2lin;if(d<=l&&g<0||p+i>=h&&g>0)return;f.ordinal.positions?Math.abs(g)>1&&(c&&c.forEach(function(t){t.setState()}),h>(o=f.ordinal.positions)[o.length-1]&&o.push(h),this.setFixedRange(p-d),(t=e.navigatorAxis.toFixedRange(void 0,void 0,x.apply(f,[b.apply(f,[d,!0])+g]),x.apply(f,[b.apply(f,[p,!0])+g]))).min>=Math.min(o[0],d)&&t.max<=Math.max(o[o.length-1],p)+i&&e.setExtremes(t.min,t.max,!0,!1,{trigger:"pan"}),this.mouseDownX=s,ew(this.container,{cursor:"move"})):n=!0}else n=!0;n||o&&/y/.test(o.type)?i&&(e.max=e.dataMax+i):t.preventDefault()}function d(){let t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.originalOrdinalRange)}function p(t,e){let i;let s=this.ordinal,n=s.positions,r=s.slope,a;if(!n)return t;let l=n.length;if(n[0]<=t&&n[l-1]>=t)i=o(n,t);else{if(!((a=s.getExtendedPositions&&s.getExtendedPositions())&&a.length))return t;let l=a.length;r||(r=(a[l-1]-a[0])/l);let h=o(a,n[0]);if(t>=a[0]&&t<=a[l-1])i=o(a,t)-h;else{if(!e)return t;i=t0&&"highcharts-navigator-series"!==t.options.id&&s.length>1&&(x=i!==s[1]-s[0]),i=s[1]-s[0],t.boosted&&(b=t.boosted),t.reserveSpace()&&(!1!==t.takeOrdinalPosition||n)&&(a=(g=g.concat(s)).length,g.sort(function(t,e){return t-e}),m=Math.min(m,eT(t.closestPointRange,m)),a)){for(e=0;e2){for(h=g[1]-g[0],u=a-1;u--&&!f;)g[u+1]-g[u]!==h&&(f=!0);!t.options.keepOrdinalPadding&&(g[0]-s>h||o-g[g.length-1]>h)&&(f=!0)}else t.options.overscroll&&(2===a?m=g[1]-g[0]:1===a?(m=t.ordinal.convertOverscroll(t.options.overscroll),g=[g[0],g[0]+m]):m=e.overscrollPointsRange);f||t.forceOrdinal?(t.options.overscroll&&(e.overscrollPointsRange=m,g=g.concat(e.getOverscrollPositions())),e.positions=g,d=t.ordinal2lin(Math.max(s,g[0]),!0),p=Math.max(t.ordinal2lin(Math.min(o,g[g.length-1]),!0),1),e.slope=c=(o-s)/(p-d),e.offset=s-d*c):(e.overscrollPointsRange=eT(t.closestPointRange,e.overscrollPointsRange),e.positions=t.ordinal.slope=e.offset=void 0)}t.isOrdinal=r&&f,e.groupIntervalFactor=null}static findIndexOf(t,e,i){let s=0,o=t.length-1,n;for(;s{let i=e.currentDataGrouping;return t+(i?i.count+i.unitName:"raw")},""),r=t?i.ordinal.convertOverscroll(i.options.overscroll):0,a=i.getExtremes(),l,h,d=e.index;return d||(d=e.index={}),!d[n]&&((l={series:[],chart:o,forceOrdinal:!1,getExtremes:function(){return{min:a.dataMin,max:a.dataMax+r}},applyGrouping:s.applyGrouping,getGroupPixelWidth:s.getGroupPixelWidth,getTimeTicks:s.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:s.ordinal2lin,getIndexOfPoint:s.getIndexOfPoint,val2lin:s.val2lin}).ordinal.axis=l,i.series.forEach(i=>{h={xAxis:l,chart:o,groupPixelWidth:i.groupPixelWidth,destroyGroupedData:B().noop,getColumn:i.getColumn,applyGrouping:i.applyGrouping,getProcessedData:i.getProcessedData,reserveSpace:i.reserveSpace,visible:i.visible};let s=i.getColumn("x").concat(t?e.getOverscrollPositions():[]);h.dataTable=new eM({columns:{x:s}}),h.options={...i.options,dataGrouping:i.currentDataGrouping?{firstAnchor:i.options.dataGrouping?.firstAnchor,anchor:i.options.dataGrouping?.anchor,lastAnchor:i.options.dataGrouping?.firstAnchor,enabled:!0,forced:!0,approximation:"open",units:[[i.currentDataGrouping.unitName,[i.currentDataGrouping.count]]]}:{enabled:!1}},l.series.push(h),i.processData.apply(h)}),l.applyGrouping({hasExtremesChanged:!0}),h?.closestPointRange!==h?.basePointRange&&h.currentDataGrouping&&(l.forceOrdinal=!0),i.ordinal.beforeSetTickPositions.apply({axis:l}),!i.ordinal.originalOrdinalRange&&l.ordinal.originalOrdinalRange&&(i.ordinal.originalOrdinalRange=l.ordinal.originalOrdinalRange),l.ordinal.positions&&(d[n]=l.ordinal.positions)),d[n]}getGroupIntervalFactor(t,e,i){let s=i.getColumn("x",!0),o=s.length,n=[],r,a,l=this.groupIntervalFactor;if(!l){for(a=0;at()),eN.splice(t,1);return}}}function eK(){let t=this.rangeSelector;if(t?.options?.enabled){let e=t.getHeight(),i=t.options.verticalAlign;t.options.floating||("bottom"===i?this.marginBottom+=e:"middle"===i||(this.plotTop+=e))}}function eq(t){let e=t.options.rangeSelector,i=this.extraBottomMargin,s=this.extraTopMargin,o=this.rangeSelector;if(e&&e.enabled&&!ez(o)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=o=new g(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,o){let t=e&&e.verticalAlign||o.options&&o.options.verticalAlign;o.options.floating||("bottom"===t?this.extraBottomMargin=!0:"middle"===t||(this.extraTopMargin=!0)),(this.extraBottomMargin!==i||this.extraTopMargin!==s)&&(this.isDirtyBox=!0)}}let e$={compose:function(t,e,i){if(g=i,eY(eG,"RangeSelector")){let i=e.prototype;t.prototype.minFromRange=eF,eI(e,"afterGetContainer",e_),eI(e,"beforeRender",eV),eI(e,"destroy",ej),eI(e,"getMargins",eK),eI(e,"redraw",eZ),eI(e,"update",eq),eI(e,"beforeRedraw",eU),i.callbacks.push(eZ),eL(eR,{rangeSelector:eP.rangeSelector}),eL(eR.lang,eP.lang)}}};var eJ=E(28),eQ=E.n(eJ);let{defaultOptions:e0}=B(),{addEvent:e1,createElement:e2,css:e5,defined:e3,destroyObjectProperties:e6,diffObjects:e4,discardElement:e8,extend:e9,fireEvent:e7,isNumber:it,isString:ie,merge:ii,objectEach:is,pick:io,splat:ir}=B();function ia(t){let e=e=>RegExp(`%[[a-zA-Z]*${e}`).test(t);if(ie(t)?-1!==t.indexOf("%L"):t.fractionalSecondDigits)return"text";let i=ie(t)?["a","A","d","e","w","b","B","m","o","y","Y"].some(e):t.dateStyle||t.day||t.month||t.year,s=ie(t)?["H","k","I","l","M","S"].some(e):t.timeStyle||t.hour||t.minute||t.second;return i&&s?"datetime-local":i?"date":s?"time":"text"}class il{static compose(t,e){e$.compose(t,e,il)}constructor(t){this.isDirty=!1,this.buttonOptions=il.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.maxButtonWidth=()=>{let t=0;return this.buttons.forEach(e=>{let i=e.getBBox();i.width>t&&(t=i.width)}),t},this.init(t)}clickButton(t,e){let i=this.chart,s=this.buttonOptions[t],o=i.xAxis[0],n=i.scroller&&i.scroller.getUnionExtremes()||o||{},r=s.type,a=s.dataGrouping,l=n.dataMin,h=n.dataMax,d,p=it(o?.max)?Math.round(Math.min(o.max,h??o.max)):void 0,c,u=s._range,g,m,f,x=!0;if(null!==l&&null!==h){if(this.setSelected(t),a&&(this.forcedDataGrouping=!0,D().prototype.setDataGrouping.call(o||{chart:this.chart},a,!1),this.frozenStates=s.preserveDataGrouping),"month"===r||"year"===r)o?(m={range:s,max:p,chart:i,dataMin:l,dataMax:h},d=o.minFromRange.call(m),it(m.newMax)&&(p=m.newMax),x=!1):u=s;else if(u)it(p)&&(p=Math.min((d=Math.max(p-u,l))+u,h),x=!1);else if("ytd"===r){if(o)!o.hasData()||it(h)&&it(l)||(l=Number.MAX_VALUE,h=-Number.MAX_VALUE,i.series.forEach(t=>{let e=t.getColumn("x");e.length&&(l=Math.min(e[0],l),h=Math.max(e[e.length-1],h))}),e=!1),it(h)&&it(l)&&(d=g=(f=this.getYTDExtremes(h,l)).min,p=f.max);else{this.deferredYTDClick=t;return}}else"all"===r&&o&&(i.navigator&&i.navigator.baseSeries[0]&&(i.navigator.baseSeries[0].xAxis.options.range=void 0),d=l,p=h);if(x&&s._offsetMin&&e3(d)&&(d+=s._offsetMin),s._offsetMax&&e3(p)&&(p+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=t+1),o)it(d)&&it(p)&&(o.setExtremes(d,p,io(e,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}),i.setFixedRange(s._range));else{c=ir(i.options.xAxis||{})[0];let t=e1(i,"afterCreateAxes",function(){let t=i.xAxis[0];t.range=t.options.range=u,t.min=t.options.min=g});e1(i,"load",function(){let e=i.xAxis[0];i.setFixedRange(s._range),e.options.range=c.range,e.options.min=c.min,t()})}e7(this,"afterBtnClick")}}setSelected(t){this.selected=this.options.selected=t}init(t){let e=this,i=t.options.rangeSelector,s=i.buttons,o=i.selected,n=function(){let t=e.minInput,i=e.maxInput;t&&t.blur&&e7(t,"blur"),i&&i.blur&&e7(i,"blur")};e.chart=t,e.options=i,e.buttons=[],e.buttonOptions=s,this.eventsToUnbind=[],this.eventsToUnbind.push(e1(t.container,"mousedown",n)),this.eventsToUnbind.push(e1(t,"resize",n)),s.forEach(e.computeButtonRange),void 0!==o&&s[o]&&this.clickButton(o,!1),this.eventsToUnbind.push(e1(t,"load",function(){t.xAxis&&t.xAxis[0]&&e1(t.xAxis[0],"setExtremes",function(i){it(this.max)&&it(this.min)&&this.max-this.min!==t.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&e.forcedDataGrouping&&!e.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let t=this,e=this.chart,i=this.dropdown,s=this.dropdownLabel,o=e.xAxis[0],n=Math.round(o.max-o.min),r=!o.hasVisibleSeries,a=24*36e5,l=e.scroller&&e.scroller.getUnionExtremes()||o,h=l.dataMin,d=l.dataMax,p=t.getYTDExtremes(d,h),c=p.min,u=p.max,g=t.selected,m=t.options.allButtonsEnabled,f=Array(t.buttonOptions.length).fill(0),x=it(g),b=t.buttons,v=!1,y=null;t.buttonOptions.forEach((e,i)=>{let s=e._range,l=e.type,p=e.count||1,b=e._offsetMax-e._offsetMin,M=i===g,A=s>d-h,k=ss&&(S=!0)}else("month"===l||"year"===l)&&n+36e5>=({month:28,year:365})[l]*a*p-b&&n-36e5<=({month:31,year:366})[l]*a*p+b?S=!0:"ytd"===l?(S=u-c+b===n,w=!M):"all"===l&&(S=o.max-o.min>=d-h);let E=!m&&!(v&&"all"===l)&&(A||k||r),C=v&&"all"===l||!w&&S||M&&t.frozenStates;E?f[i]=3:C&&(!x||i===g)&&(y=i)}),null!==y?(f[y]=2,t.setSelected(y),this.dropdown&&(this.dropdown.selectedIndex=y+1)):(t.setSelected(),this.dropdown&&(this.dropdown.selectedIndex=-1),s&&(s.setState(0),s.attr({text:(e0.lang.rangeSelectorZoom||"")+" ▾"})));for(let e=0;eNumber(i.getAttribute("data-hc-time"))?p=void 0:pl&&(p=l)),void 0!==p&&n.setExtremes(h?p:n.min,h?n.max:p,void 0,void 0,{trigger:"rangeSelectorInput"}))}let p=l[h?"rangeSelectorFrom":"rangeSelectorTo"]||"",c=r.label(p,0).addClass("highcharts-range-label").attr({padding:p?2:0,height:p?a.inputBoxHeight:0}).add(s),u=r.label("",0).addClass("highcharts-range-input").attr({padding:2,width:a.inputBoxWidth,height:a.inputBoxHeight,"text-align":"center"}).on("click",function(){o.showInput(t),o[t+"Input"].focus()});e.styledMode||u.attr({stroke:a.inputBoxBorderColor,"stroke-width":1}),u.add(s);let g=e2("input",{name:t,className:"highcharts-range-selector"},void 0,i);g.setAttribute("type",ia(a.inputDateFormat||"%e %b %Y")),e.styledMode||(c.css(ii(n,a.labelStyle)),u.css(ii({color:"#333333"},n,a.inputStyle)),e5(g,e9({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:n.fontSize,fontFamily:n.fontFamily,top:"-9999em"},a.inputStyle))),g.onfocus=()=>{o.showInput(t)},g.onblur=()=>{g===B().doc.activeElement&&d(t),o.hideInput(t),o.setInputValue(t),g.blur()};let m=!1;return g.onchange=()=>{m||(d(t),o.hideInput(t),g.blur())},g.onkeypress=e=>{13===e.keyCode&&d(t)},g.onkeydown=e=>{m=!0,("ArrowUp"===e.key||"ArrowDown"===e.key||"Tab"===e.key)&&d(t)},g.onkeyup=()=>{m=!1},{dateBox:u,input:g,label:c}}getPosition(){let t=this.chart,e=t.options.rangeSelector,i="top"===e.verticalAlign?t.plotTop-t.axisOffset[0]:0;return{buttonTop:i+e.buttonPosition.y,inputTop:i+e.inputPosition.y-10}}getYTDExtremes(t,e){let i=this.chart.time,s=i.toParts(t)[0];return{max:t,min:Math.max(e,i.makeTime(s,0))}}createElements(){let t=this.chart,e=t.renderer,i=t.container,s=t.options,o=s.rangeSelector,n=o.inputEnabled,r=io(s.chart.style?.zIndex,0)+1;!1!==o.enabled&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=e2("div",void 0,{position:"relative",height:0,zIndex:r}),this.buttonOptions.length&&this.renderButtons(),i.parentNode&&i.parentNode.insertBefore(this.div,i),n&&this.createInputs())}createInputs(){this.inputGroup=this.chart.renderer.g("input-group").add(this.group);let t=this.drawInput("min");this.minDateBox=t.dateBox,this.minLabel=t.label,this.minInput=t.input;let e=this.drawInput("max");this.maxDateBox=e.dateBox,this.maxLabel=e.label,this.maxInput=e.input}render(t,e){if(!1===this.options.enabled)return;let i=this.chart,s=i.options.rangeSelector;if(s.inputEnabled){this.inputGroup||this.createInputs(),this.setInputValue("min",t),this.setInputValue("max",e),this.chart.styledMode||(this.maxLabel?.css(s.labelStyle),this.minLabel?.css(s.labelStyle));let o=i.scroller&&i.scroller.getUnionExtremes()||i.xAxis[0]||{};if(e3(o.dataMin)&&e3(o.dataMax)){let t=i.xAxis[0].minRange||0;this.setInputExtremes("min",o.dataMin,Math.min(o.dataMax,this.getInputValue("max"))-t),this.setInputExtremes("max",Math.max(o.dataMin,this.getInputValue("min"))+t,o.dataMax)}if(this.inputGroup){let t=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(e=>{if(e){let{width:i}=e.getBBox();i&&(e.attr({x:t}),t+=i+s.inputSpacing)}})}}else this.inputGroup&&(this.inputGroup.destroy(),delete this.inputGroup);!this.chart.styledMode&&this.zoomText&&this.zoomText.css(s.labelStyle),this.alignElements(),this.updateButtonStates()}renderButtons(){var t;let{chart:e,options:i}=this,s=e0.lang,o=e.renderer,n=ii(i.buttonTheme),r=n&&n.states;delete n.width,delete n.states,this.buttonGroup=o.g("range-selector-buttons").add(this.group);let a=this.dropdown=e2("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),l=e.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=o.button("",0,0,()=>{},ii(n,{"stroke-width":io(n["stroke-width"],0),width:"auto",paddingLeft:io(i.buttonTheme.paddingLeft,l?.padding,8),paddingRight:io(i.buttonTheme.paddingRight,l?.padding,8)}),r&&r.hover,r&&r.select,r&&r.disabled).hide().add(this.group),e1(a,"touchstart",()=>{a.style.fontSize="16px"});let h=B().isMS?"mouseover":"mouseenter",d=B().isMS?"mouseout":"mouseleave";e1(a,h,()=>{e7(this.dropdownLabel.element,h)}),e1(a,d,()=>{e7(this.dropdownLabel.element,d)}),e1(a,"change",()=>{e7(this.buttons[a.selectedIndex-1].element,"click")}),this.zoomText=o.label(s.rangeSelectorZoom||"",0).attr({padding:i.buttonTheme.padding,height:i.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(i.labelStyle),(t=i.buttonTheme)["stroke-width"]??(t["stroke-width"]=0)),e2("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,a),this.createButtons()}createButtons(){let{options:t}=this,e=ii(t.buttonTheme),i=e&&e.states,s=e.width||28;delete e.width,delete e.states,this.buttonOptions.forEach((t,e)=>{this.createButton(t,e,s,i)})}createButton(t,e,i,s){let{dropdown:o,buttons:n,chart:r,options:a}=this,l=r.renderer,h=ii(a.buttonTheme);o?.add(e2("option",{textContent:t.title||t.text}),e+2),n[e]=l.button(t.text,0,0,i=>{let s;let o=t.events&&t.events.click;o&&(s=o.call(t,i)),!1!==s&&this.clickButton(e),this.isActive=!0},h,s&&s.hover,s&&s.select,s&&s.disabled).attr({"text-align":"center",width:i}).add(this.buttonGroup),t.title&&n[e].attr("title",t.title)}alignElements(){let{buttonGroup:t,buttons:e,chart:i,group:s,inputGroup:o,options:n,zoomText:r}=this,a=i.options,l=a.exporting&&!1!==a.exporting.enabled&&a.navigation&&a.navigation.buttonOptions,{buttonPosition:h,inputPosition:d,verticalAlign:p}=n,c=(t,e,s)=>l&&this.titleCollision(i)&&"top"===p&&s&&e.y-t.getBBox().height-12<(l.y||0)+(l.height||0)+i.spacing[0]?-40:0,u=i.plotLeft;if(s&&h&&d){let a=h.x-i.spacing[3];if(t){if(this.positionButtons(),!this.initialButtonGroupWidth){let t=0;r&&(t+=r.getBBox().width+5),e.forEach((i,s)=>{t+=i.width||0,s!==e.length-1&&(t+=n.buttonSpacing)}),this.initialButtonGroupWidth=t}u-=i.spacing[3];let o=c(t,h,"right"===h.align||"right"===d.align);this.alignButtonGroup(o),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),s.placed=t.placed=i.hasLoaded}let l=0;n.inputEnabled&&o&&(l=c(o,d,"right"===h.align||"right"===d.align),"left"===d.align?a=u:"right"===d.align&&(a=-Math.max(i.axisOffset[1],-l)),o.align({y:d.y,width:o.getBBox().width,align:d.align,x:d.x+a-2},!0,i.spacingBox),o.placed=i.hasLoaded),this.handleCollision(l),s.align({verticalAlign:p},!0,i.spacingBox);let g=s.alignAttr.translateY,m=s.getBBox().height+20,f=0;if("bottom"===p){let t=i.legend&&i.legend.options;f=g-(m=m+(t&&"bottom"===t.verticalAlign&&t.enabled&&!t.floating?i.legend.legendHeight+io(t.margin,10):0)-20)-(n.floating?0:n.y)-(i.titleOffset?i.titleOffset[2]:0)-10}"top"===p?(n.floating&&(f=0),i.titleOffset&&i.titleOffset[0]&&(f=i.titleOffset[0]),f+=i.margin[0]-i.spacing[0]||0):"middle"===p&&(d.y===h.y?f=g:(d.y||h.y)&&(d.y<0||h.y<0?f-=Math.min(d.y,h.y):f=g-m)),s.translate(n.x,n.y+Math.floor(f));let{minInput:x,maxInput:b,dropdown:v}=this;n.inputEnabled&&x&&b&&(x.style.marginTop=s.translateY+"px",b.style.marginTop=s.translateY+"px"),v&&(v.style.marginTop=s.translateY+"px")}}redrawElements(){let t=this.chart,{inputBoxHeight:e,inputBoxBorderColor:i}=this.options;if(this.maxDateBox?.attr({height:e}),this.minDateBox?.attr({height:e}),t.styledMode||(this.maxDateBox?.attr({stroke:i}),this.minDateBox?.attr({stroke:i})),this.isDirty){this.isDirty=!1,this.isCollapsed=void 0;let t=this.options.buttons??[],e=Math.min(t.length,this.buttonOptions.length),{dropdown:i,options:s}=this,o=ii(s.buttonTheme),n=o&&o.states,r=o.width||28;if(t.length=t.length;e--){let t=this.buttons.pop();t?.destroy(),this.dropdown?.options.remove(e+1)}for(let s=e-1;s>=0;s--)if(0!==Object.keys(e4(t[s],this.buttonOptions[s])).length){let e=t[s];this.buttons[s].destroy(),i?.options.remove(s+1),this.createButton(e,s,r,n),this.computeButtonRange(e)}if(t.length>this.buttonOptions.length)for(let e=this.buttonOptions.length;e{s&&i&&s.attr({translateX:s.alignAttr.translateX+(e.axisOffset[1]>=-t?0:-t),translateY:s.alignAttr.translateY+i.getBBox().height+10})};s&&i&&(r.align===o.align?(a(),this.initialButtonGroupWidth>e.plotWidth+t-20?this.collapseButtons():this.expandButtons()):this.initialButtonGroupWidth-t+s.getBBox().width>e.plotWidth?"responsive"===n?this.collapseButtons():a():this.expandButtons()),i&&("always"===n&&this.collapseButtons(),"never"===n&&this.expandButtons()),this.alignButtonGroup(t)}collapseButtons(){let{buttons:t,zoomText:e}=this;!0!==this.isCollapsed&&(this.isCollapsed=!0,e.hide(),t.forEach(t=>void t.hide()),this.showDropdown())}expandButtons(){let{buttons:t,zoomText:e}=this;!1!==this.isCollapsed&&(this.isCollapsed=!1,this.hideDropdown(),e.show(),t.forEach(t=>void t.show()),this.positionButtons())}showDropdown(){let{buttonGroup:t,dropdownLabel:e,dropdown:i}=this;t&&i&&(e.show(),e5(i,{visibility:"inherit"}),this.hasVisibleDropdown=!0)}hideDropdown(){let{dropdown:t}=this;t&&(this.dropdownLabel.hide(),e5(t,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let t=this.options,e=this.group,i=t.inputPosition,s=t.buttonPosition,o=t.y,n=s.y,r=i.y,a=0;if(t.height)return t.height;this.alignElements(),a=e?e.getBBox(!0).height+13+o:0;let l=Math.min(r,n);return(r<0&&n<0||r>0&&n>0)&&(a+=Math.abs(l)),a}titleCollision(t){return!(t.options.title.text||t.options.subtitle.text)}update(t,e=!0){let i=this.chart;if(ii(!0,this.options,t),this.options.selected&&this.options.selected>=this.options.buttons.length&&(this.options.selected=void 0,i.options.rangeSelector.selected=void 0),e3(t.enabled))return this.destroy(),this.init(i);this.isDirty=!!t.buttons,e&&this.render()}destroy(){let t=this,e=t.minInput,i=t.maxInput;t.eventsToUnbind&&(t.eventsToUnbind.forEach(t=>t()),t.eventsToUnbind=void 0),e6(t.buttons),e&&(e.onfocus=e.onblur=e.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),is(t,function(e,i){e&&"chart"!==i&&(e instanceof eQ()?e.destroy():e instanceof window.HTMLElement&&e8(e),delete t[i]),e!==il.prototype[i]&&(t[i]=null)},this),this.buttons=[]}}e9(il.prototype,{inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});var ih=E(960),id=E.n(ih),ip=E(984),ic=E.n(ip);let{format:iu}=ic(),{getOptions:ig}=B(),{setFixedRange:im}=tD,{addEvent:ix,clamp:ib,crisp:iv,defined:iy,extend:iM,find:iA,isNumber:ik,isString:iw,merge:iS,pick:iE,splat:iC}=B();function iT(t,e,i){return"xAxis"===t?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===t?{labels:{y:-2},opposite:i.opposite??e.opposite??!0,showLastLabel:!!(e.categories||"category"===e.type),title:{text:i.title?.text!=="Values"?i.title?.text:null}}:{}}function iB(t,e){if("xAxis"===t){let t=iE(e.navigator&&e.navigator.enabled,tM.enabled,!0),i={type:"datetime",categories:void 0};return t&&(i.startOnTick=!1,i.endOnTick=!1),i}return{}}class iO extends id(){init(t,e){let i=ig(),s=t.xAxis,o=t.yAxis,n=iE(t.navigator&&t.navigator.enabled,tM.enabled,!0);t.xAxis=t.yAxis=void 0;let r=iS({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:n},scrollbar:{enabled:iE(tZ.enabled,!0)},rangeSelector:{enabled:iE(eP.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:iE(i.tooltip&&i.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},t,{isStock:!0});t.xAxis=s,t.yAxis=o,r.xAxis=iC(t.xAxis||{}).map(e=>iS(iT("xAxis",e,i.xAxis),e,iB("xAxis",t))),r.yAxis=iC(t.yAxis||{}).map(t=>iS(iT("yAxis",t,i.yAxis),t)),super.init(r,e)}createAxis(t,e){return e.axis=iS(iT(t,e.axis,ig()[t]),e.axis,iB(t,this.userOptions)),super.createAxis(t,e)}}ix(id(),"update",function(t){let e=t.options;"scrollbar"in e&&this.navigator&&(iS(!0,this.options.scrollbar,e.scrollbar),this.navigator.update({enabled:!!this.navigator.navigatorEnabled}),delete e.scrollbar)}),function(t){function e(t){if(!(this.crosshair?.label?.enabled&&this.cross&&ik(this.min)&&ik(this.max)))return;let e=this.chart,i=this.logarithmic,s=this.crosshair.label,o=this.horiz,n=this.opposite,r=this.left,a=this.top,l=this.width,h="inside"===this.options.tickPosition,d=!1!==this.crosshair.snap,p=t.e||this.cross?.e,c=t.point,u=this.crossLabel,g,m,f=s.format,x="",b,v=0,y=this.min,M=this.max;i&&(y=i.lin2log(this.min),M=i.lin2log(this.max));let A=o?"center":n?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";u||(u=this.crossLabel=e.renderer.label("",0,void 0,s.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(c&&c.series?c.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:s.align||A,padding:iE(s.padding,8),r:iE(s.borderRadius,3),zIndex:2}).add(this.labelGroup),e.styledMode||u.attr({fill:s.backgroundColor||c&&c.series&&c.series.color||"#666666",stroke:s.borderColor||"","stroke-width":s.borderWidth||0}).css(iM({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},s.style||{}))),o?(g=d?(c.plotX||0)+r:p.chartX,m=a+(n?0:this.height)):(g=r+this.offset+(n?l:0),m=d?(c.plotY||0)+a:p.chartY),f||s.formatter||(this.dateTime&&(x="%b %d, %Y"),f="{value"+(x?":"+x:"")+"}");let k=d?this.isXAxis?c.x:c.y:this.toValue(o?p.chartX:p.chartY),w=c&&c.series?c.series.isPointInside(c):ik(k)&&k>y&&k=b.right&&(v=-(C+E.width-b.right)),u.attr({x:Math.max(0,g+v),y:Math.max(0,m),anchorX:o?g:this.opposite?0:e.chartWidth,anchorY:o?this.opposite?e.chartHeight:0:m+E.height/2})}function i(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function s(t){let e=this.chart,i=this.options,s=e._labelPanes=e._labelPanes||{},o=i.labels;if(e.options.isStock&&"yAxis"===this.coll){let e=i.top+","+i.height;!s[e]&&o.enabled&&(15===o.distance&&1===this.side&&(o.distance=0),void 0===o.align&&(o.align="right"),s[e]=this,t.align="right",t.preventDefault())}}function o(){let t=this.chart,e=this.options&&this.options.top+","+this.options.height;e&&t._labelPanes&&t._labelPanes[e]===this&&delete t._labelPanes[e]}function n(t){let e=this,i=e.isLinked&&!e.series&&e.linkedParent?e.linkedParent.series:e.series,s=e.chart,o=s.renderer,n=e.left,r=e.top,a=[],l=t.translatedValue,h=t.value,d=t.force,p,c,u,g,m=[],f,x;if(s.options.isStock&&!1!==t.acrossPanes&&"xAxis"===e.coll||"yAxis"===e.coll){for(let o of(t.preventDefault(),m=(t=>{let o="xAxis"===t?"yAxis":"xAxis",n=e.options[o];return ik(n)?[s[o][n]]:iw(n)?[s.get(n)]:i.map(t=>t[o])})(e.coll),e.isXAxis?s.yAxis:s.xAxis))if(!o.options.isInternal){let t=o.isXAxis?"yAxis":"xAxis";e===(iy(o.options[t])?s[t][o.options[t]]:s[t][0])&&m.push(o)}for(let t of(f=m.length?[]:[e.isXAxis?s.yAxis[0]:s.xAxis[0]],m))-1!==f.indexOf(t)||iA(f,e=>e.pos===t.pos&&e.len===t.len)||f.push(t);if(ik(x=iE(l,e.translate(h||0,void 0,void 0,t.old)))){if(e.horiz)for(let t of f){let i;g=(c=t.pos)+t.len,p=u=Math.round(x+e.transB),"pass"!==d&&(pn+e.width)&&(d?p=u=ib(p,n,n+e.width):i=!0),i||a.push(["M",p,c],["L",u,g])}else for(let t of f){let i;u=(p=t.pos)+t.len,c=g=Math.round(r+e.height-x),"pass"!==d&&(cr+e.height)&&(d?c=g=ib(c,r,r+e.height):i=!0),i||a.push(["M",p,c],["L",u,g])}}t.path=a.length>0?o.crispPolyLine(a,t.lineWidth||1):void 0}}function r(t){if(this.chart.options.isStock){let e;this.is("column")||this.is("columnrange")?e={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(e={marker:{enabled:!1,radius:2}}),e&&(t.plotOptions[this.type]=iS(t.plotOptions[this.type],e))}}function a(){let t=this.chart,e=this.options.dataGrouping;return!1!==this.allowDG&&e&&iE(e.enabled,t.options.isStock)}function l(t,e){for(let i=0;i`plot${t.charAt(0).toUpperCase()+t.slice(1)}`);s.push("yBottom"),i.push("low"),super.translate.apply(t),t.points.forEach(function(o){i.forEach(function(i,n){let r=o[i];null!==r&&(t.dataModify&&(r=t.dataModify.modifyValue(r)),o[s[n]]=e.toPixels(r,!0))}),o.tooltipPos[1]=o.plotHigh+e.pos-t.chart.plotTop})}}iL.defaultOptions=iz(iR.defaultOptions,{lineWidth:1,tooltip:{pointFormat:' {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}),iI(iL.prototype,{pointClass:class extends iP{},animate:null,directTouch:!1,keysAffectYAxis:["low","high"],pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),tb().registerSeriesType("hlc",iL);let{seriesTypes:{hlc:iW}}=tb();class iH extends iW.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}),iU(iK.prototype,{pointClass:iH,pointArrayMap:["open","high","low","close"]}),tb().registerSeriesType("ohlc",iK);let{column:iq,ohlc:i$}=tb().seriesTypes,{crisp:iJ,merge:iQ}=B();class i0 extends i${pointAttribs(t,e){let i=iq.prototype.pointAttribs.call(this,t,e),s=this.options,o=t.openo&&(i-=Math.round((n-o)/2),o=n),a=t[e](i,s,o,n,r),l&&h){let r=l;if("circle"===e)r=i+o/2;else{let t=a[0],e=a[1];"M"===t[0]&&"L"===e[0]&&(r=(t[1]+e[1])/2)}let d=s>h?s:s+n;a.push(["M",r,d],["L",l,h]),a=a.concat(t.circle(l-1,h-1,2,2))}return a}}t.compose=function(t){if(-1===e.indexOf(t)){e.push(t);let o=t.prototype.symbols;o.flag=i,s(o,"circle"),s(o,"square")}let o=tB().getRendererType();e.indexOf(o)&&e.push(o)}}(y||(y={}));let i3=y;var i6=E(448),i4=E.n(i6);let{composed:i8}=B(),{prototype:i9}=i4(),{prototype:i7}=I(),{defined:st,pushUnique:se,stableSort:si}=B();!function(t){function e(t){return i7.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,t)}function i(){i9.translate.apply(this);let t=this,e=t.options,i=t.chart,s=t.points,o=e.onSeries,n=o&&i.get(o),r=n&&n.options.step,a=n&&n.points,l=i.inverted,h=t.xAxis,d=t.yAxis,p=s.length-1,c,u,g=e.onKey||"y",m=a&&a.length,f=0,x,b,v,y,M;if(n&&n.visible&&m){for(f=(n.pointXOffset||0)+(n.barW||0)/2,y=n.currentDataGrouping,b=a[m-1].x+(y?y.totalRange:0),si(s,(t,e)=>t.x-e.x),g="plot"+g[0].toUpperCase()+g.substr(1);m--&&s[p];)if(x=a[m],(c=s[p]).y=x.y,x.x<=c.x&&void 0!==x[g]){if(c.x<=b&&(c.plotY=x[g],x.xMath.pow(1-o,3)*t[n]+3*(1-o)*(1-o)*o*i[n]+3*(1-o)*o*o*s[n]+o*o*o*e[n],n=0,r=1,a;for(let t=0;t<100;t++){let t=(n+r)/2,e=o(t,0);if(null===e)break;if(.25>Math.abs(e-c.plotX)){a=t;break}e{let o;e.plotX+=f,(void 0===e.plotY||l)&&(e.plotX>=0&&e.plotX<=h.len?l?(e.plotY=h.translate(e.x,0,1,0,1),e.plotX=st(e.y)?d.translate(e.y,0,0,0,1):0):e.plotY=(h.opposite?0:t.yAxis.len)+h.offset:e.shapeArgs={}),(u=s[i-1])&&u.plotX===e.plotX&&(void 0===u.stackIndex&&(u.stackIndex=0),o=u.stackIndex+1),e.stackIndex=o}),this.onSeries=n}t.compose=function(t){if(se(i8,"OnSeries")){let s=t.prototype;s.getPlotBox=e,s.translate=i}return t},t.getPlotBox=e,t.translate=i}(M||(M={}));let ss=M,{noop:so}=B(),{distribute:sn}=B(),{series:sr,seriesTypes:{column:sa}}=tb(),{addEvent:sl,defined:sh,extend:sd,isNumber:sp,merge:sc,objectEach:su,wrap:sg}=B();class sm extends sa{animate(t){t&&this.setClip()}drawPoints(){let t,e,i,s,o,n,r,a,l,h,d;let p=this.points,c=this.chart,u=c.renderer,g=c.inverted,m=this.options,f=m.y,x=this.yAxis,b={},v=[],y=sp(m.borderRadius)?m.borderRadius:0;for(s=p.length;s--;)o=p[s],h=(g?o.plotY:o.plotX)>this.xAxis.len,t=o.plotX,r=o.stackIndex,i=o.options.shape||m.shape,void 0!==(e=o.plotY)&&(e=o.plotY+f-(void 0!==r&&r*m.stackDistance)),o.anchorX=r?void 0:o.plotX,a=r?void 0:o.plotY,d="flag"!==i,n=o.graphic,void 0!==e&&t>=0&&!h?(n&&o.hasNewShapeType()&&(n=n.destroy()),n||(n=o.graphic=u.label("",0,void 0,i,void 0,void 0,m.useHTML).addClass("highcharts-point").add(this.markerGroup),o.graphic.div&&(o.graphic.div.point=o),n.isNew=!0),n.attr({align:d?"center":"left",width:m.width,height:m.height,"text-align":m.textAlign,r:y}),c.styledMode||n.attr(this.pointAttribs(o)).css(sc(m.style,o.style)).shadow(m.shadow),t>0&&(t-=n.strokeWidth()%2),l={y:e,anchorY:a},m.allowOverlapX&&(l.x=t,l.anchorX=o.anchorX),n.attr({text:o.options.title??m.title??"A"})[n.isNew?"attr":"animate"](l),m.allowOverlapX||(b[o.plotX]?b[o.plotX].size=Math.max(b[o.plotX].size,n.width||0):b[o.plotX]={align:d?.5:0,size:n.width||0,target:t,anchorX:t}),o.tooltipPos=[t,e+x.pos-c.plotTop]):n&&(o.graphic=n.destroy());if(!m.allowOverlapX){let t=100;for(let e of(su(b,function(e){e.plotX=e.anchorX,v.push(e),t=Math.max(e.size,t)}),sn(v,g?x.len:this.xAxis.len,t),p)){let t=e.plotX,i=e.graphic,s=i&&b[t];s&&i&&(sh(s.pos)?i[i.isNew?"attr":"animate"]({x:s.pos+(s.align||0)*s.size,anchorX:e.anchorX}).show().isNew=!1:i.hide().isNew=!0)}}m.useHTML&&this.markerGroup&&sg(this.markerGroup,"on",function(t){return eQ().prototype.on.apply(t.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let t=this.points;for(let e of(super.drawTracker(),t)){let i=e.graphic;i&&(e.unbindMouseOver&&e.unbindMouseOver(),e.unbindMouseOver=sl(i.element,"mouseover",function(){for(let s of(e.stackIndex>0&&!e.raised&&(e._y=i.y,i.attr({y:e._y-8}),e.raised=!0),t))s!==e&&s.raised&&s.graphic&&(s.graphic.attr({y:s._y}),s.raised=!1)}))}}pointAttribs(t,e){let i=this.options,s=t&&t.color||this.color,o=i.lineColor,n=t&&t.lineWidth,r=t&&t.fillColor||i.fillColor;return e&&(r=i.states[e].fillColor,o=i.states[e].lineColor,n=i.states[e].lineWidth),{fill:r||s,stroke:o||s,"stroke-width":n||i.lineWidth||0}}setClip(){sr.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}sm.compose=i3.compose,sm.defaultOptions=sc(sa.defaultOptions,{borderRadius:0,pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd3ff"}},style:{fontSize:"0.7em",fontWeight:"bold"}}),ss.compose(sm),sd(sm.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:i5,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:so,init:sr.prototype.init}),tb().registerSeriesType("flags",sm);var sf=E(184),sx=E.n(sf);let{addEvent:sb,find:sv,fireEvent:sy,isArray:sM,isNumber:sA,pick:sk}=B();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,r;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);n--;)if(r&&!1!==r.visible||(r=i[n+1]),t=i[n],!1!==r.visible&&!1!==t.visible){if(r.x-t.x>o){let e=(t.x+r.x)/2;i.splice(n+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(sx())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}r=t}}return this.getGraphPath(i)}t.compose=function(t,h){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),sb(t,"init",o),sb(t,"afterInit",e),sb(t,"afterSetTickPositions",s),sb(t,"afterSetOptions",i);let d=h.prototype;d.drawBreaks=a,d.gappedPath=l,sb(h,"afterGeneratePoints",n),sb(h,"afterRender",r)}return t};class h{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,n=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?n<=o:n=s);n++)o.to=t)break;else if(h.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return sv(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),n||s.val2lin!==h.val2Lin||(delete s.val2lin,delete s.lin2val),n&&(s.userOptions.ordinal=!1,s.lin2val=h.lin2Val,s.val2lin=h.val2Lin,s.setExtremes=function(t,e,o,n,r){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)c-=l;for(;cthis.chart.plotSizeX/i||o&&n.forced)&&(s=!0));return s?i:0}function sN(){this.series.forEach(function(t){t.hasProcessed=!1})}function sF(t,e){let i;if(e=sH(e,!0),t||(t={forced:!1,units:null}),this instanceof m)for(i=this.series.length;i--;)this.series[i].update({dataGrouping:t},!1);else this.chart.options.series.forEach(function(e){e.dataGrouping="boolean"==typeof t?t:sW(t,e.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),e&&this.chart.redraw()}let sU={compose:function(t){m=t;let e=t.prototype;e.applyGrouping||(sz(t,"afterSetScale",sN),sz(t,"postProcessData",sX),sL(e,{applyGrouping:sX,getGroupPixelWidth:sY,setDataGrouping:sF}))}},{addEvent:s_,getMagnitude:sV,normalizeTickInterval:sZ,timeUnits:sj}=B();!function(t){function e(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function i(){if("datetime"!==this.type){this.dateTime=void 0;return}this.dateTime||(this.dateTime=new s(this))}t.compose=function(t){return t.keepProps.includes("dateTime")||(t.keepProps.push("dateTime"),t.prototype.getTimeTicks=e,s_(t,"afterSetType",i)),t};class s{constructor(t){this.axis=t}normalizeTimeTickInterval(t,e){let i=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],s=i[i.length-1],o=sj[s[0]],n=s[1],r;for(r=0;r=e[0]){let i;p++;let s=t.groupMap[0].start,r=t.groupMap[0].length;s1(s)&&s1(r)&&(i=s+(r-1)),e[0]=({start:e[0],middle:e[0]+.5*o,end:e[0]+o,firstPoint:n[0],lastPoint:i&&n[i]})[l]}if(r>0&&h&&o&&e[r]>=i-o){d--;let i=t.groupMap[t.groupMap.length-1].start;e[r]=({start:e[r],middle:e[r]+.5*o,end:e[r]+o,firstPoint:i&&n[i],lastPoint:n[n.length-1]})[h]}if(a&&"start"!==a){let t=o*({middle:.5,end:1})[a];for(;d>=p;)e[d]+=t,d--}}(this,A||[],r),a&&A&&(sJ((e=A)[0])&&s1(f.min)&&s1(f.dataMin)&&e[0]f.max&&((!sJ(f.options.max)&&s1(f.dataMax)&&f.max>=f.dataMax||f.max===f.dataMax)&&(f.max=Math.max(e[e.length-1],f.max)),f.dataMax=Math.max(e[e.length-1],f.dataMax))),n.groupAll&&(this.allGroupedTable=M,A=(M=(d=this.cropData(M,f.min||0,f.max||0)).modified).getColumn("x"),this.cropStart=d.start),this.dataTable.modified=M}else this.groupMap=void 0,this.currentDataGrouping=void 0;this.hasGroupedData=s,this.preventGraphAnimation=(l&&l.totalRange)!==(h&&h.totalRange)}function s8(){this.groupedData&&(this.groupedData.forEach(function(t,e){t&&(this.groupedData[e]=t.destroy?t.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedTable)}function s9(){s6.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function s7(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function ot(t,e,i){let s=t.getColumn("x",!0)||[],o=t.getColumn("y",!0),n=this,r=n.data,a=n.options&&n.options.data,l=[],h=new eM,d=[],p=t.rowCount,c=!!o,u=[],g=n.pointArrayMap,m=g&&g.length,f=["x"].concat(g||["y"]),x=(g||["y"]).map(()=>[]),b=this.options.dataGrouping&&this.options.dataGrouping.groupAll,v,y,M,A=0,k=0,w="function"==typeof i?i:i&&sE[i]?sE[i]:sE[n.getDGApproximation&&n.getDGApproximation()||"average"];if(m){let t=g.length;for(;t--;)u.push([])}else u.push([]);let S=m||1;for(let t=0;t<=p;t++)if(!(s[t]=e[A+1]||t===p;){if(v=e[A],n.dataGroupInfo={start:b?k:n.cropStart+k,length:u[0].length,groupStart:v},M=w.apply(n,u),n.pointClass&&!sJ(n.dataGroupInfo.options)&&(n.dataGroupInfo.options=s2(n.pointClass.prototype.optionsToObject.call({series:n},n.options.data[n.cropStart+k])),f.forEach(function(t){delete n.dataGroupInfo.options[t]})),void 0!==M){l.push(v);let t=s3(M);for(let e=0;e{E[t]=x[e]}),h.setColumns(E),{groupMap:d,modified:h}}function oe(t){let e=t.options,i=this.type,s=this.chart.options.plotOptions,o=this.useCommonDataGrouping&&sI.common,n=sI.seriesSpecific,r=B().defaultOptions.plotOptions[i].dataGrouping;if(s&&(n[i]||o)){let t=this.chart.rangeSelector;r||(r=s2(sI.common,n[i])),e.dataGrouping=s2(o,r,s.series&&s.series.dataGrouping,s[i].dataGrouping,this.userOptions.dataGrouping,!e.isInternal&&t&&s1(t.selected)&&t.buttonOptions[t.selected].dataGrouping)}}let oi={compose:function(t){let e=t.prototype;e.applyGrouping||(s$(t.prototype.pointClass,"update",function(){if(this.dataGroup)return sQ(24,!1,this.series.chart),!1}),s$(t,"afterSetOptions",oe),s$(t,"destroy",s8),s0(e,{applyGrouping:s4,destroyGroupedData:s8,generatePoints:s9,getDGApproximation:s7,groupData:ot}))},groupData:ot},{format:os}=ic(),{composed:oo}=B(),{addEvent:on,extend:or,isNumber:oa,pick:ol,pushUnique:oh}=B();function od(t){let e=this.chart,i=e.time,s=t.point,o=s.series,n=o.options,r=o.tooltipOptions,a=n.dataGrouping,l=o.xAxis,h=r.xDateFormat||"",d,p,c,u,g,m=r[t.isFooter?"footerFormat":"headerFormat"];if(l&&"datetime"===l.options.type&&a&&oa(s.key)){p=o.currentDataGrouping,c=a.dateTimeLabelFormats||sI.common.dateTimeLabelFormats,p?(u=c[p.unitName],1===p.count?h=u[0]:(h=u[1],d=u[2])):!h&&c&&l.dateTime&&(h=l.dateTime.getXDateFormat(s.x,r.dateTimeLabelFormats));let n=ol(o.groupMap?.[s.index].groupStart,s.key),f=n+(p?.totalRange||0)-1;g=i.dateFormat(h,n),d&&(g+=i.dateFormat(d,f)),o.chart.styledMode&&(m=this.styledModeFormat(m)),t.text=os(m,{point:or(s,{key:g}),series:o},e),t.preventDefault()}}let op={compose:function(t,e,i){sU.compose(t),oi.compose(e),i&&oh(oo,"DataGrouping")&&on(i,"headerFormatter",od)},groupData:oi.groupData},oc=B();oc.dataGrouping=oc.dataGrouping||{},oc.dataGrouping.approximationDefaults=oc.dataGrouping.approximationDefaults||sG,oc.dataGrouping.approximations=oc.dataGrouping.approximations||sE,op.compose(oc.Axis,oc.Series,oc.Tooltip);let{defined:ou,isNumber:og,pick:om}=B(),of={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"},{addEvent:ox,isObject:ob,pick:ov,defined:oy,merge:oM}=B(),{getAssignedAxis:oA}={annotationsFieldsTypes:of,getAssignedAxis:function(t){return t.filter(t=>{let e=t.axis.getExtremes(),i=e.min,s=e.max,o=om(t.axis.minPointOffset,0);return og(i)&&og(s)&&t.value>=i-o&&t.value<=s+o&&!t.axis.options.isInternal})[0]},getFieldType:function(t,e){let i=of[t],s=typeof e;return ou(i)&&(s=i),({string:"text",number:"number",boolean:"checkbox"})[s]}},ok=[],ow={enabled:!0,sensitivity:1.1},oS=t=>(ob(t)||(t={enabled:t??!0}),oM(ow,t)),oE=function(t,e,i,s,o,n,r){let a=ov(r.type,t.zooming.type,""),l=[];"x"===a?l=i:"y"===a?l=s:"xy"===a&&(l=t.axes);let h=t.transform({axes:l,to:{x:o-5,y:n-5,width:10,height:10},from:{x:o-5*e,y:n-5*e,width:10*e,height:10*e},trigger:"mousewheel"});return h&&(oy(f)&&clearTimeout(f),f=setTimeout(()=>{t.pointer?.drop()},400)),h};function oC(){let t=oS(this.zooming.mouseWheel);t.enabled&&ox(this.container,"wheel",e=>{e=this.pointer?.normalize(e)||e;let{pointer:i}=this,s=i&&!i.inClass(e.target,"highcharts-no-mousewheel");if(this.isInsidePlot(e.chartX-this.plotLeft,e.chartY-this.plotTop)&&s){let s=t.sensitivity||1.1,o=e.detail||(e.deltaY||0)/120,n=oA(i.getCoordinates(e).xAxis),r=oA(i.getCoordinates(e).yAxis);oE(this,Math.pow(s,o),n?[n.axis]:this.xAxis,r?[r.axis]:this.yAxis,e.chartX,e.chartY,t)&&e.preventDefault?.()}})}/** + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/mouse-wheel-zoom * @requires highcharts * @@ -16,8 +16,8 @@ * (c) 2023 Askel Eirik Johansson * * License: www.highcharts.com/license - */let oC=T();oC.MouseWheelZoom=oC.MouseWheelZoom||{compose:function(t){-1===ok.indexOf(t)&&(ok.push(t),ox(t,"afterGetContainer",oO))}},oC.MouseWheelZoom.compose(oC.Chart);/** - * @license Highstock JS v12.0.2 (2024-12-04) + */let oT=B();oT.MouseWheelZoom=oT.MouseWheelZoom||{compose:function(t){-1===ok.indexOf(t)&&(ok.push(t),ox(t,"afterGetContainer",oC))}},oT.MouseWheelZoom.compose(oT.Chart);/** + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/stock * @requires highcharts * @@ -26,4 +26,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */let oT=T();oT.Navigator=oT.Navigator||ef,oT.OrdinalAxis=oT.OrdinalAxis||eD,oT.RangeSelector=oT.RangeSelector||il,oT.Scrollbar=oT.Scrollbar||t3,oT.stockChart=oT.stockChart||iD.stockChart,oT.StockChart=oT.StockChart||oT.stockChart,oT.extend(oT.StockChart,iD),V.compose(oT.Series,oT.Axis,oT.Point),sm.compose(oT.Renderer),iK.compose(oT.Series),oT.Navigator.compose(oT.Chart,oT.Axis,oT.Series),oT.OrdinalAxis.compose(oT.Axis,oT.Series,oT.Chart),oT.RangeSelector.compose(oT.Axis,oT.Chart),oT.Scrollbar.compose(oT.Axis),oT.StockChart.compose(oT.Chart,oT.Axis,oT.Series,oT.SVGRenderer);let oB=T();return O.default})()); \ No newline at end of file + */let oB=B();oB.Navigator=oB.Navigator||ef,oB.OrdinalAxis=oB.OrdinalAxis||eD,oB.RangeSelector=oB.RangeSelector||il,oB.Scrollbar=oB.Scrollbar||t3,oB.stockChart=oB.stockChart||iD.stockChart,oB.StockChart=oB.StockChart||oB.stockChart,oB.extend(oB.StockChart,iD),V.compose(oB.Series,oB.Axis,oB.Point),sm.compose(oB.Renderer),iK.compose(oB.Series),oB.Navigator.compose(oB.Chart,oB.Axis,oB.Series),oB.OrdinalAxis.compose(oB.Axis,oB.Series,oB.Chart),oB.RangeSelector.compose(oB.Axis,oB.Chart),oB.Scrollbar.compose(oB.Axis),oB.StockChart.compose(oB.Chart,oB.Axis,oB.Series,oB.SVGRenderer);let oO=B();return C.default})()); \ No newline at end of file diff --git a/modules/stock.src.js b/modules/stock.src.js index 50c51920fd..7aae9dcf49 100644 --- a/modules/stock.src.js +++ b/modules/stock.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/broken-axis * @requires highcharts * @@ -6347,8 +6347,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -6388,8 +6391,11 @@ const rangeSelector = { * The alignment of the input box. Allowed properties are `left`, * `center`, `right`. * - * @sample {highstock} stock/rangeselector/input-button-position/ - * Alignment + * @sample {highstock} stock/rangeselector/input-button-opposite-alignment/ + * Opposite alignment + * + * @sample {highstock} stock/rangeselector/input-button-same-alignment/ + * Same alignment for buttons and input * * @type {Highcharts.AlignValue} * @since 6.0.0 @@ -6756,6 +6762,7 @@ const { addEvent: RangeSelector_addEvent, createElement, css: RangeSelector_css, * @function preferredInputType */ function preferredInputType(format) { + const hasTimeKey = (char) => new RegExp(`%[[a-zA-Z]*${char}`).test(format); const ms = RangeSelector_isString(format) ? format.indexOf('%L') !== -1 : // Implemented but not typed as of 2024 @@ -6765,11 +6772,10 @@ function preferredInputType(format) { } const date = RangeSelector_isString(format) ? ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y'] - .some((char) => format.indexOf('%' + char) !== -1) : + .some(hasTimeKey) : format.dateStyle || format.day || format.month || format.year; const time = RangeSelector_isString(format) ? - ['H', 'k', 'I', 'l', 'M', 'S'] - .some((char) => format.indexOf('%' + char) !== -1) : + ['H', 'k', 'I', 'l', 'M', 'S'].some(hasTimeKey) : format.timeStyle || format.hour || format.minute || format.second; if (date && time) { return 'datetime-local'; @@ -6816,6 +6822,16 @@ class RangeSelector { this.isDirty = false; this.buttonOptions = RangeSelector.prototype.defaultButtons; this.initialButtonGroupWidth = 0; + this.maxButtonWidth = () => { + let buttonWidth = 0; + this.buttons.forEach((button) => { + const bBox = button.getBBox(); + if (bBox.width > buttonWidth) { + buttonWidth = bBox.width; + } + }); + return buttonWidth; + }; this.init(chart); } /* * @@ -7109,9 +7125,15 @@ class RangeSelector { if (selectedIndex !== null) { buttonStates[selectedIndex] = 2; rangeSelector.setSelected(selectedIndex); + if (this.dropdown) { + this.dropdown.selectedIndex = selectedIndex + 1; + } } else { rangeSelector.setSelected(); + if (this.dropdown) { + this.dropdown.selectedIndex = -1; + } if (dropdownLabel) { dropdownLabel.setState(0); dropdownLabel.attr({ @@ -7730,11 +7752,11 @@ class RangeSelector { const { buttonPosition, inputPosition, verticalAlign } = options; // Get the X offset required to avoid overlapping with the exporting // button. This is used both by the buttonGroup and the inputGroup. - const getXOffsetForExportButton = (group, position) => { + const getXOffsetForExportButton = (group, position, rightAligned) => { if (navButtonOptions && this.titleCollision(chart) && verticalAlign === 'top' && - position.align === 'right' && ((position.y - + rightAligned && ((position.y - group.getBBox().height - 12) < ((navButtonOptions.y || 0) + (navButtonOptions.height || 0) + @@ -7763,7 +7785,8 @@ class RangeSelector { } plotLeft -= chart.spacing[3]; // Detect collision between button group and exporting - const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition); + const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); this.alignButtonGroup(xOffsetForExportButton); if (this.buttonGroup?.translateY) { this.dropdownLabel @@ -7775,7 +7798,8 @@ class RangeSelector { let xOffsetForExportButton = 0; if (options.inputEnabled && inputGroup) { // Detect collision between the input group and exporting button - xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition); + xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition, buttonPosition.align === 'right' || + inputPosition.align === 'right'); if (inputPosition.align === 'left') { translateX = plotLeft; } @@ -7928,16 +7952,35 @@ class RangeSelector { * @param {number} [width] */ alignButtonGroup(xOffsetForExportButton, width) { - const { chart, options, buttonGroup } = this; + const { chart, options, buttonGroup, dropdown, dropdownLabel } = this; const { buttonPosition } = options; const plotLeft = chart.plotLeft - chart.spacing[3]; let translateX = buttonPosition.x - chart.spacing[3]; + let dropdownTranslateX = chart.plotLeft; if (buttonPosition.align === 'right') { translateX += xOffsetForExportButton - plotLeft; // #13014 + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth + + xOffsetForExportButton - + this.maxButtonWidth() - 20; + } } else if (buttonPosition.align === 'center') { translateX -= plotLeft / 2; + if (this.hasVisibleDropdown) { + dropdownTranslateX = chart.chartWidth / 2 - + this.maxButtonWidth(); + } } + if (dropdown) { + RangeSelector_css(dropdown, { + left: dropdownTranslateX + 'px', + top: buttonGroup?.translateY + 'px' + }); + } + dropdownLabel?.attr({ + x: dropdownTranslateX + }); if (buttonGroup) { // Align button group buttonGroup.align({ @@ -7991,36 +8034,6 @@ class RangeSelector { handleCollision(xOffsetForExportButton) { const { chart, buttonGroup, inputGroup } = this; const { buttonPosition, dropdown, inputPosition } = this.options; - const maxButtonWidth = () => { - let buttonWidth = 0; - this.buttons.forEach((button) => { - const bBox = button.getBBox(); - if (bBox.width > buttonWidth) { - buttonWidth = bBox.width; - } - }); - return buttonWidth; - }; - const groupsOverlap = (buttonGroupWidth) => { - if (inputGroup?.alignOptions && buttonGroup) { - const inputGroupX = (inputGroup.alignAttr.translateX + - inputGroup.alignOptions.x - - xOffsetForExportButton + - // `getBBox` for detecing left margin - inputGroup.getBBox().x + - // 2px padding to not overlap input and label - 2); - const inputGroupWidth = inputGroup.alignOptions.width || 0; - const buttonGroupX = buttonGroup.alignAttr.translateX + - buttonGroup.getBBox().x; - return (buttonGroupX + buttonGroupWidth > inputGroupX) && - (inputGroupX + inputGroupWidth > buttonGroupX) && - (buttonPosition.y < - (inputPosition.y + - inputGroup.getBBox().height)); - } - return false; - }; const moveInputsDown = () => { if (inputGroup && buttonGroup) { inputGroup.attr({ @@ -8032,47 +8045,43 @@ class RangeSelector { }); } }; - if (buttonGroup) { - if (dropdown === 'always') { - this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - // Move the inputs down if there is still a collision - // after collapsing the buttons - moveInputsDown(); - } - return; - } - if (dropdown === 'never') { - this.expandButtons(); - } - } // Detect collision if (inputGroup && buttonGroup) { - if ((inputPosition.align === buttonPosition.align) || - // 20 is minimal spacing between elements - groupsOverlap(this.initialButtonGroupWidth + 20)) { + if (inputPosition.align === buttonPosition.align) { + moveInputsDown(); + if (this.initialButtonGroupWidth > + chart.plotWidth + xOffsetForExportButton - 20) { + this.collapseButtons(); + } + else { + this.expandButtons(); + } + } + else if (this.initialButtonGroupWidth - + xOffsetForExportButton + + inputGroup.getBBox().width > + chart.plotWidth) { if (dropdown === 'responsive') { this.collapseButtons(); - if (groupsOverlap(maxButtonWidth())) { - moveInputsDown(); - } } else { moveInputsDown(); } } - else if (dropdown === 'responsive') { + else { this.expandButtons(); } } - else if (buttonGroup && dropdown === 'responsive') { - if (this.initialButtonGroupWidth > chart.plotWidth) { + // Forced states + if (buttonGroup) { + if (dropdown === 'always') { this.collapseButtons(); } - else { + if (dropdown === 'never') { this.expandButtons(); } } + this.alignButtonGroup(xOffsetForExportButton); } /** * Collapse the buttons and show the select element. @@ -8115,17 +8124,10 @@ class RangeSelector { * @function Highcharts.RangeSelector#showDropdown */ showDropdown() { - const { buttonGroup, chart, dropdownLabel, dropdown } = this; + const { buttonGroup, dropdownLabel, dropdown } = this; if (buttonGroup && dropdown) { - const { translateX = 0, translateY = 0 } = buttonGroup, left = chart.plotLeft + translateX, top = translateY; - dropdownLabel - .attr({ x: left, y: top }) - .show(); - RangeSelector_css(dropdown, { - left: left + 'px', - top: top + 'px', - visibility: 'inherit' - }); + dropdownLabel.show(); + RangeSelector_css(dropdown, { visibility: 'inherit' }); this.hasVisibleDropdown = true; } } @@ -13346,7 +13348,7 @@ const DataGroupingComposition = { ;// ./code/es-modules/masters/modules/datagrouping.src.js /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/datagrouping * @requires highcharts * @@ -13668,7 +13670,7 @@ const MouseWheelZoomComposition = { ;// ./code/es-modules/masters/modules/mouse-wheel-zoom.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/mouse-wheel-zoom * @requires highcharts * @@ -13688,7 +13690,7 @@ mouse_wheel_zoom_src_G.MouseWheelZoom.compose(mouse_wheel_zoom_src_G.Chart); ;// ./code/es-modules/masters/modules/stock.src.js /** - * @license Highstock JS v12.0.2 (2024-12-04) + * @license Highstock JS v12.1.0 (2024-12-17) * @module highcharts/modules/stock * @requires highcharts * diff --git a/modules/streamgraph.js b/modules/streamgraph.js index 1490a829da..ffd33fbe62 100644 --- a/modules/streamgraph.js +++ b/modules/streamgraph.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/streamgraph * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/streamgraph",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/streamgraph"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var i=a[e]={exports:{}};return r[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>u});var o=s(944),n=/*#__PURE__*/s.n(o),h=s(512),d=/*#__PURE__*/s.n(h);let{areaspline:p}=d().seriesTypes,{addEvent:c,merge:l,extend:f}=n();class g extends p{streamStacker(e,t,r){e[0]-=t.total/2,e[1]-=t.total/2,this.stackedYData&&(this.stackedYData[r]=Math.max.apply(0,e))}}g.defaultOptions=l(p.defaultOptions,{fillOpacity:1,lineWidth:0,marker:{enabled:!1},stacking:"stream"}),c(g,"afterGetExtremes",e=>{e.dataExtremes.dataMin=-e.dataExtremes.dataMax}),f(g.prototype,{negStacks:!1}),d().registerSeriesType("streamgraph",g);let u=n();return i.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/streamgraph",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/streamgraph"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512:e=>{e.exports=t},944:t=>{t.exports=e}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var i=a[e]={exports:{}};return r[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>u});var o=s(944),n=s.n(o),h=s(512),d=s.n(h);let{areaspline:p}=d().seriesTypes,{addEvent:c,merge:l,extend:f}=n();class g extends p{streamStacker(e,t,r){e[0]-=t.total/2,e[1]-=t.total/2,this.stackedYData&&(this.stackedYData[r]=Math.max.apply(0,e))}}g.defaultOptions=l(p.defaultOptions,{fillOpacity:1,lineWidth:0,marker:{enabled:!1},stacking:"stream"}),c(g,"afterGetExtremes",e=>{e.dataExtremes.dataMin=-e.dataExtremes.dataMax}),f(g.prototype,{negStacks:!1}),d().registerSeriesType("streamgraph",g);let u=n();return i.default})()); \ No newline at end of file diff --git a/modules/streamgraph.src.js b/modules/streamgraph.src.js index 0289c0e206..ad3b0856c0 100644 --- a/modules/streamgraph.src.js +++ b/modules/streamgraph.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/streamgraph * @requires highcharts * diff --git a/modules/sunburst.js b/modules/sunburst.js index e5389de73a..204583f151 100644 --- a/modules/sunburst.js +++ b/modules/sunburst.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/sunburst * @requires highcharts * @@ -7,4 +7,4 @@ * Authors: Jon Arild Nygard * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Series):"function"==typeof define&&define.amd?define("highcharts/modules/sunburst",["highcharts/highcharts"],function(t){return e(t,t.Templating,t.Color,t.SeriesRegistry,t.SVGElement,t.Series)}):"object"==typeof exports?exports["highcharts/modules/sunburst"]=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Series):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement,t.Highcharts.Series)}("undefined"==typeof window?this:window,(t,e,i,s,r,o)=>(()=>{"use strict";var l,a,n,h={620:t=>{t.exports=i},28:t=>{t.exports=r},820:t=>{t.exports=o},512:t=>{t.exports=s},984:t=>{t.exports=e},944:e=>{e.exports=t}},d={};function p(t){var e=d[t];if(void 0!==e)return e.exports;var i=d[t]={exports:{}};return h[t](i,i.exports,p),i.exports}p.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return p.d(e,{a:e}),e},p.d=(t,e)=>{for(var i in e)p.o(e,i)&&!p.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},p.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var u={};p.d(u,{default:()=>eL});var c=p(944),g=/*#__PURE__*/p.n(c);let v={lang:{mainBreadcrumb:"Main"},options:{buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"#334eff"}},buttonSpacing:5,floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"#666666",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7}};var f=p(984);let{format:b}=/*#__PURE__*/p.n(f)(),{composed:m}=g(),{addEvent:y,defined:x,extend:P,fireEvent:T,isString:L,merge:w,objectEach:A,pick:R,pushUnique:S}=g();function O(){if(this.breadcrumbs){let t=this.resetZoomButton&&this.resetZoomButton.getBBox(),e=this.breadcrumbs.options;t&&"right"===e.position.align&&"plotBox"===e.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-t.width-e.buttonSpacing)}}function B(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function C(){let t=this.breadcrumbs;if(t&&!t.options.floating&&t.level){let e=t.options,i=e.buttonTheme,s=(i.height||0)+2*(i.padding||0)+e.buttonSpacing,r=e.position.verticalAlign;"bottom"===r?(this.marginBottom=(this.marginBottom||0)+s,t.yOffset=s):"middle"!==r?(this.plotTop+=s,t.yOffset=-s):t.yOffset=void 0}}function M(){this.breadcrumbs&&this.breadcrumbs.redraw()}function I(t){!0===t.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}class N{static compose(t,e){S(m,"Breadcrumbs")&&(y(t,"destroy",B),y(t,"afterShowResetZoom",O),y(t,"getMargins",C),y(t,"redraw",M),y(t,"selection",I),P(e.lang,v.lang))}constructor(t,e){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];let i=w(t.options.drilldown&&t.options.drilldown.drillUpButton,N.defaultOptions,t.options.navigation&&t.options.navigation.breadcrumbs,e);this.chart=t,this.options=i||{}}updateProperties(t){this.setList(t),this.setLevel(),this.isDirty=!0}setList(t){this.list=t}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(t){let e=this.chart,i=this.options,s=e.options.lang,r=R(i.format,i.showFullPath?"{level.name}":"← {level.name}"),o=s&&R(s.drillUpText,s.mainBreadcrumb),l=i.formatter&&i.formatter(t)||b(r,{level:t.levelOptions},e)||"";return(L(l)&&!l.length||"← "===l)&&x(o)&&(l=i.showFullPath?o:"← "+o),l}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let t=this.chart,e=this.options;!this.group&&e&&(this.group=t.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:e.zIndex}).add()),e.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let t=this.chart,e=this.list,i=this.options.buttonSpacing;this.destroyListElements();let s=this.group?this.group.getBBox().width:i,r=e[e.length-2];!t.drillUpButton&&this.level>0?t.drillUpButton=this.renderButton(r,s,i):t.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(t){if(this.group){let e=this.options,i=e.buttonTheme,s=e.position,r="chart"===e.relativeTo||"spacingBox"===e.relativeTo?void 0:"plotBox",o=this.group.getBBox(),l=2*(i.padding||0)+e.buttonSpacing;s.width=o.width+l,s.height=o.height+l;let a=w(s);t&&(a.x+=t),this.options.rtl&&(a.x+=s.width),a.y=R(a.y,this.yOffset,0),this.group.align(a,!0,r)}}renderButton(t,e,i){let s=this,r=this.chart,o=s.options,l=w(o.buttonTheme),a=r.renderer.button(s.getButtonText(t),e,i,function(e){let i;let r=o.events&&o.events.click;r&&(i=r.call(s,e,t)),!1!==i&&(o.showFullPath?e.newLevel=t.level:e.newLevel=s.level-1,T(s,"up",e))},l).addClass("highcharts-breadcrumbs-button").add(s.group);return r.styledMode||a.attr(o.style),a}renderSeparator(t,e){let i=this.chart,s=this.options.separator,r=i.renderer.label(s.text,t,e,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return i.styledMode||r.css(s.style),r}update(t){w(!0,this.options,t),this.destroy(),this.isDirty=!0}updateSingleButton(){let t=this.chart,e=this.list[this.level-1];t.drillUpButton&&t.drillUpButton.attr({text:this.getButtonText(e)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(t){let e=this.elementList;A(e,(i,s)=>{(t||!e[s].updated)&&((i=e[s]).button&&i.button.destroy(),i.separator&&i.separator.destroy(),delete i.button,delete i.separator,delete e[s])}),t&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){A(this.elementList,t=>{t.updated=!1})}updateListElements(){let t=this.elementList,e=this.options.buttonSpacing,i=this.list,s=this.options.rtl,r=s?-1:1,o=function(t,e){return r*t.getBBox().width+r*e},l=function(t,e,i){t.translate(e-t.getBBox().width,i)},a=this.group?o(this.group,e):e,n,h;for(let d=0,p=i.length;d{t.graphic=a=a&&a.destroy(),"function"==typeof s&&s()};Object.keys(i).length?a.animate(i,void 0,()=>e()):e()}}},{pie:{prototype:{pointClass:X}},scatter:{prototype:{pointClass:$}}}=k().seriesTypes,{extend:K,isNumber:q,pick:Z}=g();class J extends ${constructor(){super(...arguments),this.shapeType="rect"}draw(t){Y.draw(this,t)}getClassName(){let t=this.series,e=t.options,i=super.getClassName();return this.node.level<=t.nodeMap[t.rootNode].level&&this.node.children.length?i+=" highcharts-above-level":this.node.isLeaf||Z(e.interactByLeaf,!e.allowTraversingTree)?this.node.isLeaf||(i+=" highcharts-internal-node"):i+=" highcharts-internal-node-interactive",i}isValid(){return!!(this.id||q(this.value))}setState(t){super.setState.apply(this,arguments),this.graphic&&this.graphic.attr({zIndex:"hover"===t?1:0})}shouldDraw(){return q(this.plotY)&&null!==this.y}}K(J.prototype,{setVisible:X.prototype.setVisible});let{isString:Q}=g(),tt={allowTraversingTree:!1,animationLimit:250,borderRadius:0,showInLegend:!1,marker:void 0,colorByPoint:!1,dataLabels:{defer:!1,enabled:!0,formatter:function(){let t=this&&this.point?this.point:{};return Q(t.name)?t.name:""},inside:!0,verticalAlign:"middle"},tooltip:{headerFormat:"",pointFormat:"{point.name}: {point.value}
    "},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1,levelIsConstant:!0,traverseUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,colorKey:"colorValue",opacity:.15,states:{hover:{borderColor:"#999999",brightness:k().seriesTypes.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}},legendSymbol:"rectangle",traverseToLeaf:!1};(a||(a={})).recursive=function t(e,i,s){let r=i.call(s||this,e);!1!==r&&t(r,i,s)};let te=a,{extend:ti,isArray:ts,isNumber:tr,isObject:to,merge:tl,pick:ta,relativeLength:tn}=g(),th={getColor:function(t,e){let i,s,r,o,l,a;let n=e.index,h=e.mapOptionsToLevel,d=e.parentColor,p=e.parentColorIndex,u=e.series,c=e.colors,g=e.siblings,v=u.points,f=u.chart.options.chart;return t&&(i=v[t.i],s=h[t.level]||{},i&&s.colorByPoint&&(o=i.index%(c?c.length:f.colorCount),r=c&&c[o]),u.chart.styledMode||(l=ta(i&&i.options.color,s&&s.color,r,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&n&&g?H().parse(t).brighten(e.to*(n/g)).get():t})(d),u.color)),a=ta(i&&i.options.colorIndex,s&&s.colorIndex,o,p,e.colorIndex)),{color:l,colorIndex:a}},getLevelOptions:function(t){let e,i,s,r,o,l;let a={};if(to(t))for(r=tr(t.from)?t.from:1,l=t.levels,i={},e=to(t.defaults)?t.defaults:{},ts(l)&&(i=l.reduce((t,i)=>{let s,o,l;return to(i)&&tr(i.level)&&(o=ta((l=tl({},i)).levelIsConstant,e.levelIsConstant),delete l.levelIsConstant,delete l.level,to(t[s=i.level+(o?0:r-1)])?tl(!0,t[s],l):t[s]=l),t},{})),o=tr(t.to)?t.to:1,s=0;s<=o;s++)a[s]=tl({},e,to(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:r=0,nodeWidth:o=0}=s,{plotSizeX:l=1}=i;if("auto"===o){if("string"==typeof r&&/%$/.test(r))return l/(e+parseFloat(r)/100*(e-1));let t=Number(r);return(l+t)/(e||1)-t}return tn(o,l)},setTreeValues:function t(e,i){let s=i.before,r=i.idRoot,o=i.mapIdToNode[r],l=!1!==i.levelIsConstant,a=i.points[e.i],n=a&&a.options||{},h=[],d=0;e.levelDynamic=e.level-(l?0:o.level),e.name=ta(a&&a.name,""),e.visible=r===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,r)=>{let o=ti({},i);ti(o,{index:r,siblings:e.children.length,visible:e.visible}),s=t(s,o),h.push(s),s.visible&&(d+=s.val)});let p=ta(n.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,i;return to(t)&&(i=to(t.options)?t.options:{},e=ta(t.rootNode,i.rootId,""),to(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{parse:td}=H(),{composed:tp,noop:tu}=g(),{column:tc,scatter:tg}=k().seriesTypes,{getColor:tv,getLevelOptions:tf,updateRootId:tb}=th,{addEvent:tm,correctFloat:ty,crisp:tx,defined:tP,error:tT,extend:tL,fireEvent:tw,isArray:tA,isObject:tR,isString:tS,merge:tO,pick:tB,pushUnique:tC,stableSort:tM}=g(),tI=!1;function tN(){let t;let e=this.xAxis,i=this.yAxis;e&&i&&(this.is("treemap")?(t={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,minPadding:0,max:100,maxPadding:0,startOnTick:!1,title:void 0,tickPositions:[]},tL(i.options,t),tL(e.options,t),tI=!0):tI&&(i.setOptions(i.userOptions),e.setOptions(e.userOptions),tI=!1))}class tD extends tg{static compose(t){tC(tp,"TreemapSeries")&&tm(t,"afterBindAxes",tN)}algorithmCalcPoints(t,e,i,s){let r=i.plot,o=i.elArr.length-1,l,a,n,h,d=i.lW,p=i.lH,u,c=0;for(let t of(e?(d=i.nW,p=i.nH):u=i.elArr[o],i.elArr))(e||ca.lP.lR&&this.algorithmCalcPoints(t,!1,a,s,r),h===l&&this.algorithmCalcPoints(t,!0,a,s,r),++h;return s}alignDataLabel(t,e,i){let s=i.style;s&&!tP(s.textOverflow)&&e.text&&e.getBBox().width>(e.text.textWidth||0)&&e.css({textOverflow:"ellipsis",width:s.width+="px"}),tc.prototype.alignDataLabel.apply(this,arguments),t.dataLabel&&t.dataLabel.attr({zIndex:(t.node.zIndex||0)+1})}calculateChildrenAreas(t,e){let i=this.options,s=this.mapOptionsToLevel[t.level+1],r=tB(this[s&&s.layoutAlgorithm]&&s.layoutAlgorithm,i.layoutAlgorithm),o=i.alternateStartingDirection,l=t.children.filter(t=>!t.ignore),a=[];s&&s.layoutStartingDirection&&(e.direction="vertical"===s.layoutStartingDirection?0:1),a=this[r](e,l);let n=-1;for(let t of l){let i=a[++n];t.values=tO(i,{val:t.childrenTotal,direction:o?1-e.direction:e.direction}),t.pointValues=tO(i,{x:i.x/this.axisRatio,y:100-i.y-i.height,width:i.width/this.axisRatio}),t.children.length&&this.calculateChildrenAreas(t,t.values)}}createList(t){let e=this.chart,i=e.breadcrumbs,s=[];if(i){let i=0;s.push({level:i,levelOptions:e.series[0]});let r=t.target.nodeMap[t.newRootId],o=[];for(;r.parent||""===r.parent;)o.push(r),r=t.target.nodeMap[r.parent];for(let t of o.reverse())s.push({level:++i,levelOptions:t});s.length<=1&&(s.length=0)}return s}drawDataLabels(){let t,e;let i=this.mapOptionsToLevel;for(let s of this.points.filter(function(t){return t.node.visible})){if(e=i[s.node.level],t={style:{}},s.node.isLeaf||(t.enabled=!1),e&&e.dataLabels&&(t=tO(t,e.dataLabels),this.hasDataLabels=()=>!0),s.shapeArgs){let e={width:`${s.shapeArgs.width||0}px`,lineClamp:Math.floor((s.shapeArgs.height||0)/16)};tL(t.style,e),s.dataLabel?.css(e)}s.dlOptions=tO(t,s.options.dataLabels)}super.drawDataLabels()}drawPoints(t=this.points){let e=this.chart,i=e.renderer,s=e.styledMode,r=this.options,o=s?{}:r.shadow,l=r.borderRadius,a=e.pointCount{let e=t.userOptions;tP(e.allowDrillToNode)&&!tP(e.allowTraversingTree)&&(e.allowTraversingTree=e.allowDrillToNode,delete e.allowDrillToNode),tP(e.drillUpButton)&&!tP(e.traverseUpButton)&&(e.traverseUpButton=e.drillUpButton,delete e.drillUpButton)});super.init(t,e),delete i.opacity,i.eventsToUnbind.push(r),i.options.allowTraversingTree&&(i.eventsToUnbind.push(tm(i,"click",i.onClickDrillToNode)),i.eventsToUnbind.push(tm(i,"setRootNode",function(t){let e=i.chart;e.breadcrumbs&&e.breadcrumbs.updateProperties(i.createList(t))})),i.eventsToUnbind.push(tm(i,"update",function(t,e){let i=this.chart.breadcrumbs;i&&t.options.breadcrumbs&&i.update(t.options.breadcrumbs)})),i.eventsToUnbind.push(tm(i,"destroy",function(t){let e=this.chart;e.breadcrumbs&&!t.keepEventsForUpdate&&(e.breadcrumbs.destroy(),e.breadcrumbs=void 0)}))),t.breadcrumbs||(t.breadcrumbs=new N(t,s)),i.eventsToUnbind.push(tm(t.breadcrumbs,"up",function(t){let e=this.level-t.newLevel;for(let t=0;tr?0:t.pointAttribs(e)["stroke-width"]||0;for(let t of e){let{pointValues:e,visible:r}=t.node;if(e&&r){let{height:r,width:l,x:a,y:n}=e,h=o(t),d=tx(i.toPixels(a,!0),h,!0),p=tx(i.toPixels(a+l,!0),h,!0),u=tx(s.toPixels(n,!0),h,!0),c=tx(s.toPixels(n+r,!0),h,!0),g={x:Math.min(d,p),y:Math.min(u,c),width:Math.abs(p-d),height:Math.abs(c-u)};t.plotX=g.x+g.width/2,t.plotY=g.y+g.height/2,t.shapeArgs=g}else delete t.plotX,delete t.plotY}}setRootNode(t,e,i){tw(this,"setRootNode",tL({newRootId:t,previousRootId:this.rootNode,redraw:tB(e,!0),series:this},i),function(t){let e=t.series;e.idPreviousRoot=t.previousRootId,e.rootNode=t.newRootId,e.isDirty=!0,t.redraw&&e.chart.redraw()})}setState(t){this.options.inactiveOtherPoints=!0,super.setState(t,!1),this.options.inactiveOtherPoints=!1}setTreeValues(t){let e=this.options,i=this.rootNode,s=this.nodeMap[i],r="boolean"!=typeof e.levelIsConstant||e.levelIsConstant,o=[],l=this.points[t.i],a=0;for(let e of t.children)e=this.setTreeValues(e),o.push(e),e.ignore||(a+=e.val);tM(o,(t,e)=>(t.sortIndex||0)-(e.sortIndex||0));let n=tB(l&&l.options.value,a);return l&&(l.value=n),tL(t,{children:o,childrenTotal:a,ignore:!(tB(l&&l.visible,!0)&&n>0),isLeaf:t.visible&&!a,levelDynamic:t.level-(r?0:s.level),name:tB(l&&l.name,""),sortIndex:tB(l&&l.sortIndex,-n),val:n}),t}sliceAndDice(t,e){return this.algorithmFill(!0,t,e)}squarified(t,e){return this.algorithmLowAspectRatio(!0,t,e)}strip(t,e){return this.algorithmLowAspectRatio(!1,t,e)}stripes(t,e){return this.algorithmFill(!1,t,e)}translate(){let t=this,e=t.options,i=tb(t),s,r,o,l;super.translate();let a=t.tree=t.getTree();s=t.nodeMap[i],""===i||s||(t.setRootNode("",!1),i=t.rootNode,s=t.nodeMap[i]),t.mapOptionsToLevel=tf({from:s.level+1,levels:e.levels,to:a.height,defaults:{levelIsConstant:t.options.levelIsConstant,colorByPoint:e.colorByPoint}}),te.recursive(t.nodeMap[t.rootNode],e=>{let i=e.parent,s=!1;return e.visible=!0,(i||""===i)&&(s=t.nodeMap[i]),s}),te.recursive(t.nodeMap[t.rootNode].children,t=>{let e=!1;for(let i of t)i.visible=!0,i.children.length&&(e=(e||[]).concat(i.children));return e}),t.setTreeValues(a),t.axisRatio=t.xAxis.len/t.yAxis.len,t.nodeMap[""].pointValues=r={x:0,y:0,width:100,height:100},t.nodeMap[""].values=o=tO(r,{width:r.width*t.axisRatio,direction:"vertical"===e.layoutStartingDirection?0:1,val:a.val}),t.calculateChildrenAreas(a,o),t.colorAxis||e.colorByPoint||t.setColorRecursive(t.tree),e.allowTraversingTree&&(l=s.pointValues,t.xAxis.setExtremes(l.x,l.x+l.width,!1),t.yAxis.setExtremes(l.y,l.y+l.height,!1),t.xAxis.setScale(),t.yAxis.setScale()),t.setPointValues()}}tD.defaultOptions=tO(tg.defaultOptions,tt),tL(tD.prototype,{buildKDTree:tu,colorAttribs:F.seriesMembers.colorAttribs,colorKey:"colorValue",directTouch:!0,getExtremesFromAll:!0,getSymbol:tu,optionalAxis:"colorAxis",parallelArrays:["x","y","value","colorValue"],pointArrayMap:["value","colorValue"],pointClass:J,NodeClass:j,trackerGroups:["group","dataLabelsGroup"],utils:te}),F.compose(tD),k().registerSeriesType("treemap",tD);var tH=p(820),tE=/*#__PURE__*/p.n(tH);let{deg2rad:tk}=g(),{fireEvent:tU,isNumber:tW,pick:tz,relativeLength:tG}=g();!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,r=e.plotHeight-2*i,o=t.center,l=Math.min(s,r),a=t.thickness,n,h=t.size,d=t.innerSize||0,p,u;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof d&&(d=parseFloat(d));let c=[tz(o?.[0],"50%"),tz(o?.[1],"50%"),tz(h&&h<0?void 0:t.size,"100%"),tz(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof tE()||(c[3]=0),p=0;p<4;++p)u=c[p],n=p<2||2===p&&/%$/.test(u),c[p]=tG(u,[s,r,l,c[2]][p])+(n?i:0);return c[3]>c[2]&&(c[3]=c[2]),tW(a)&&2*a0&&(c[3]=c[2]-2*a),tU(this,"afterGetCenter",{positions:c}),c},t.getStartAndEndRadians=function(t,e){let i=tW(t)?t:0,s=tW(e)&&e>i&&e-i<360?e:i+360;return{start:tk*(i+-90),end:tk*(s+-90)}}}(n||(n={}));let tV=n,{series:{prototype:{pointClass:tF}},seriesTypes:{treemap:{prototype:{pointClass:t_}}}}=k(),{correctFloat:tj,extend:tY,pInt:tX}=g();class t$ extends t_{getDataLabelPath(t){let e=this.series.chart.renderer,i=this.shapeExisting,s=i.r+tX(t.options?.distance||0),r=i.start,o=i.end,l=r+(o-r)/2,a=l<0&&l>-Math.PI||l>Math.PI,n;return r===-Math.PI/2&&tj(o)===tj(1.5*Math.PI)&&(r=-Math.PI+Math.PI/360,o=-Math.PI/360,a=!0),o-r>Math.PI&&(a=!1,n=!0,o-r>2*Math.PI-.01&&(r+=.01,o-=.01)),this.dataLabelPath&&(this.dataLabelPath=this.dataLabelPath.destroy()),this.dataLabelPath=e.arc({open:!0,longArc:n?1:0}).attr({start:a?r:o,end:a?o:r,clockwise:+a,x:i.x,y:i.y,r:(s+i.innerR)/2}).add(e.defs),this.dataLabelPath}isValid(){return!0}}tY(t$.prototype,{getClassName:tF.prototype.getClassName,haloPath:tF.prototype.haloPath,setState:tF.prototype.setState});let{seriesTypes:{treemap:tK}}=k(),{isNumber:tq,isObject:tZ,merge:tJ}=g();function tQ(t,e){let i=[];if(tq(t)&&tq(e)&&t<=e)for(let s=t;s<=e;s++)i.push(s);return i}let t0={calculateLevelSizes:function(t,e){let i=tZ(e)?e:{},s,r=0,o,l,a,n;if(tZ(t)){for(let e of(s=tJ({},t),l=tQ(tq(i.from)?i.from:0,tq(i.to)?i.to:0),a=Object.keys(s).filter(t=>-1===l.indexOf(+t)),o=n=tq(i.diffRadius)?i.diffRadius:0,l)){let t=s[e],i=t.levelSize.unit,l=t.levelSize.value;"weight"===i?r+=l:"percentage"===i?(t.levelSize={unit:"pixels",value:l/100*o},n-=t.levelSize.value):"pixels"===i&&(n-=l)}for(let t of l){let e=s[t];if("weight"===e.levelSize.unit){let i=e.levelSize.value;s[t].levelSize={unit:"pixels",value:i/r*n}}}for(let t of a)s[t].levelSize={value:0,unit:"pixels"}}return s},getLevelFromAndTo:function({level:t,height:e}){return{from:t>0?t:1,to:t+e}},range:tQ,recursive:tK.prototype.utils.recursive},{deg2rad:t1}=g(),{addEvent:t2,merge:t6,uniqueKey:t5,defined:t9,extend:t3}=g();function t8(t,e){e=t6(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,r=s.textPath,{attributes:o,enabled:l}=e;if(t=t||r&&r.path,r&&r.undo(),t&&l){let e=t2(s,"afterModifyTree",e=>{if(t&&l){let r=t.attr("id");r||t.attr("id",r=t5());let l={x:0,y:0};t9(o.dx)&&(l.dx=o.dx,delete o.dx),t9(o.dy)&&(l.dy=o.dy,delete o.dy),s.attr(l),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let a=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:t3(o,{"text-anchor":o.textAnchor,href:`${i}#${r}`}),children:a}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function t4(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:r}=this.renderer.fontMetrics(this.element),o=r-s,l=RegExp('(|]*>|<\\/tspan>)',"g"),a=i.innerHTML.replace(l,"").split(/]*>/),n=a.length,h=(t,e)=>{let{x:r,y:l}=e,a=(i.getRotationOfChar(t)-90)*t1,n=Math.cos(a),h=Math.sin(a);return[[r-o*n,l-o*h],[r+s*n,l+s*h]]};for(let e=0,s=0;si.radius?(a=0,e.dataLabelPath&&"circular"===h&&(r.textPath={enabled:!0})):o>1&&l>1.5*i.radius?"circular"===h?r.textPath={enabled:!0,attributes:{dy:5}}:h="parallel":(e.dataLabel?.textPath&&"circular"===h&&(r.textPath={enabled:!1}),h="perpendicular")),"auto"!==h&&"circular"!==h&&(e.dataLabel&&e.dataLabel.textPath&&(r.textPath={enabled:!1}),a=i.end-(i.end-i.start)/2),"parallel"===h?r.style.width=Math.min(2.5*i.radius,(l+o)/2):!eh(r.style.width)&&i.radius&&(r.style.width=1===e.node.level?2*i.radius:i.radius),"perpendicular"===h&&(l<16?r.style.width=1:r.style.lineClamp=Math.floor(o/16)||1),r.style.width=Math.max(r.style.width-2*(r.padding||0),1),n=a*em%180,"parallel"===h&&(n-=90),n>90?n-=180:n<-90&&(n+=180),r.rotation=n),r.textPath&&(0===e.shapeExisting.innerR&&r.textPath.enabled?(r.rotation=0,r.textPath.enabled=!1,r.style.width=Math.max(2*e.shapeExisting.r-2*(r.padding||0),1)):e.dlOptions&&e.dlOptions.textPath&&!e.dlOptions.textPath.enabled&&"circular"===h&&(r.textPath.enabled=!0),r.textPath.enabled&&(r.rotation=0,r.style.width=Math.max((e.outerArcLength+e.innerArcLength)/2-2*(r.padding||0),1),r.style.whiteSpace="nowrap")),r}({point:n,level:y,optionsPoint:n.options,shapeArgs:L}),!T&&w&&(T=!0,c=x),n.draw({animatableAttribs:d.to,attribs:ep(d.from,!u.styledMode&&t.pointAttribs(n,n.selected&&"select")),onComplete:c,group:s,renderer:m,shapeType:"arc",shapeArgs:L})}y&&T?(t.hasRendered=!1,t.options.dataLabels.defer=!0,es.prototype.drawDataLabels.call(t),t.hasRendered=!0,P&&x()):es.prototype.drawDataLabels.call(t),t.idPreviousRoot=o}layoutAlgorithm(t,e,i){let s=t.start,r=t.end-s,o=t.val,l=t.x,a=t.y,n=i&&eg(i.levelSize)&&ec(i.levelSize.value)?i.levelSize.value:0,h=t.r,d=h+n,p=i&&ec(i.slicedOffset)?i.slicedOffset:0;return(e||[]).reduce((t,e)=>{let i=1/o*e.val*r,u=ey(l,a,s+i/2,p),c={x:e.sliced?u.x:l,y:e.sliced?u.y:a,innerR:h,r:d,radius:n,start:s,end:s+i};return t.push(c),s=c.end,t},[])}setRootNode(t,e,i){if(1===this.nodeMap[t].level&&1===this.nodeList.filter(t=>1===t.level).length){if(""===this.idPreviousRoot)return;t=""}super.setRootNode(t,e,i)}setShapeArgs(t,e,i){let s=i[t.level+1],r=t.children.filter(function(t){return t.visible}),o=[];o=this.layoutAlgorithm(e,r,s);let l=-1;for(let t of r){let e=o[++l],s=e.start+(e.end-e.start)/2,r=e.innerR+(e.r-e.innerR)/2,a=e.end-e.start,n=0===e.innerR&&a>6.28?{x:e.x,y:e.y}:ey(e.x,e.y,s,r),h=t.val?t.childrenTotal>t.val?t.childrenTotal:t.val:t.childrenTotal;this.points[t.i]&&(this.points[t.i].innerArcLength=a*e.innerR,this.points[t.i].outerArcLength=a*e.r),t.shapeArgs=ef(e,{plotX:n.x,plotY:n.y}),t.values=ef(e,{val:h}),t.children.length&&this.setShapeArgs(t,t.values,i)}}translate(){let t=this.options,e=this.center=this.getCenter(),i=this.startAndEndRadians=ee(t.startAngle,t.endAngle),s=e[3]/2,r=e[2]/2,o=en(this),l=this.nodeMap,a,n=l&&l[o],h={};this.shapeRoot=n&&n.shapeArgs,this.generatePoints(),eu(this,"afterTranslate");let d=this.tree=this.getTree(),p=ev((n=(l=this.nodeMap)[o]).parent)?n.parent:"",u=l[p],{from:c,to:g}=t0.getLevelFromAndTo(n);a=el({from:c,levels:this.options.levels,to:g,defaults:{colorByPoint:t.colorByPoint,dataLabels:t.dataLabels,levelIsConstant:t.levelIsConstant,levelSize:t.levelSize,slicedOffset:t.slicedOffset}}),a=t0.calculateLevelSizes(a,{diffRadius:r-s,from:c,to:g}),ea(d,{before:ex,idRoot:o,levelIsConstant:t.levelIsConstant,mapOptionsToLevel:a,mapIdToNode:l,points:this.points,series:this});let v=l[""].shapeArgs={end:i.end,r:s,start:i.start,val:n.val,x:e[0],y:e[1]};for(let t of(this.setShapeArgs(u,v,a),this.mapOptionsToLevel=a,this.points))h[t.id]&&ed(31,!1,this.chart),h[t.id]=!0}}eP.defaultOptions=ef(er.defaultOptions,{center:["50%","50%"],clip:!1,colorByPoint:!1,opacity:1,dataLabels:{allowOverlap:!0,defer:!0,rotationMode:"circular",style:{textOverflow:"ellipsis"}},rootId:void 0,levelIsConstant:!0,levelSize:{value:1,unit:"weight"},slicedOffset:10}),ep(eP.prototype,{axisTypes:[],drawDataLabels:ei,getCenter:et,isCartesian:!1,onPointSupported:!0,pointAttribs:es.prototype.pointAttribs,pointClass:t$,NodeClass:class extends j{},utils:t0}),k().registerSeriesType("sunburst",eP);let eT=g();eT.Breadcrumbs=eT.Breadcrumbs||N,eT.Breadcrumbs.compose(eT.Chart,eT.defaultOptions);let eL=g();return u.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Series):"function"==typeof define&&define.amd?define("highcharts/modules/sunburst",["highcharts/highcharts"],function(t){return e(t,t.Templating,t.Color,t.SeriesRegistry,t.SVGElement,t.Series)}):"object"==typeof exports?exports["highcharts/modules/sunburst"]=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement,t._Highcharts.Series):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement,t.Highcharts.Series)}("undefined"==typeof window?this:window,(t,e,i,s,o,r)=>(()=>{"use strict";var l,a,n,h={620:t=>{t.exports=i},28:t=>{t.exports=o},820:t=>{t.exports=r},512:t=>{t.exports=s},984:t=>{t.exports=e},944:e=>{e.exports=t}},d={};function p(t){var e=d[t];if(void 0!==e)return e.exports;var i=d[t]={exports:{}};return h[t](i,i.exports,p),i.exports}p.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return p.d(e,{a:e}),e},p.d=(t,e)=>{for(var i in e)p.o(e,i)&&!p.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},p.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var u={};p.d(u,{default:()=>ew});var c=p(944),g=p.n(c);let v={lang:{mainBreadcrumb:"Main"},options:{buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"#334eff"}},buttonSpacing:5,floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"#666666",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7}};var f=p(984);let{format:b}=p.n(f)(),{composed:m}=g(),{addEvent:y,defined:x,extend:P,fireEvent:L,isString:T,merge:w,objectEach:A,pick:R,pushUnique:S}=g();function C(){if(this.breadcrumbs){let t=this.resetZoomButton&&this.resetZoomButton.getBBox(),e=this.breadcrumbs.options;t&&"right"===e.position.align&&"plotBox"===e.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-t.width-e.buttonSpacing)}}function O(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function B(){let t=this.breadcrumbs;if(t&&!t.options.floating&&t.level){let e=t.options,i=e.buttonTheme,s=(i.height||0)+2*(i.padding||0)+e.buttonSpacing,o=e.position.verticalAlign;"bottom"===o?(this.marginBottom=(this.marginBottom||0)+s,t.yOffset=s):"middle"!==o?(this.plotTop+=s,t.yOffset=-s):t.yOffset=void 0}}function M(){this.breadcrumbs&&this.breadcrumbs.redraw()}function I(t){!0===t.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}class N{static compose(t,e){S(m,"Breadcrumbs")&&(y(t,"destroy",O),y(t,"afterShowResetZoom",C),y(t,"getMargins",B),y(t,"redraw",M),y(t,"selection",I),P(e.lang,v.lang))}constructor(t,e){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];let i=w(t.options.drilldown&&t.options.drilldown.drillUpButton,N.defaultOptions,t.options.navigation&&t.options.navigation.breadcrumbs,e);this.chart=t,this.options=i||{}}updateProperties(t){this.setList(t),this.setLevel(),this.isDirty=!0}setList(t){this.list=t}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(t){let e=this.chart,i=this.options,s=e.options.lang,o=R(i.format,i.showFullPath?"{level.name}":"← {level.name}"),r=s&&R(s.drillUpText,s.mainBreadcrumb),l=i.formatter&&i.formatter(t)||b(o,{level:t.levelOptions},e)||"";return(T(l)&&!l.length||"← "===l)&&x(r)&&(l=i.showFullPath?r:"← "+r),l}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let t=this.chart,e=this.options;!this.group&&e&&(this.group=t.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:e.zIndex}).add()),e.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let t=this.chart,e=this.list,i=this.options.buttonSpacing;this.destroyListElements();let s=this.group?this.group.getBBox().width:i,o=e[e.length-2];!t.drillUpButton&&this.level>0?t.drillUpButton=this.renderButton(o,s,i):t.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(t){if(this.group){let e=this.options,i=e.buttonTheme,s=e.position,o="chart"===e.relativeTo||"spacingBox"===e.relativeTo?void 0:"plotBox",r=this.group.getBBox(),l=2*(i.padding||0)+e.buttonSpacing;s.width=r.width+l,s.height=r.height+l;let a=w(s);t&&(a.x+=t),this.options.rtl&&(a.x+=s.width),a.y=R(a.y,this.yOffset,0),this.group.align(a,!0,o)}}renderButton(t,e,i){let s=this,o=this.chart,r=s.options,l=w(r.buttonTheme),a=o.renderer.button(s.getButtonText(t),e,i,function(e){let i;let o=r.events&&r.events.click;o&&(i=o.call(s,e,t)),!1!==i&&(r.showFullPath?e.newLevel=t.level:e.newLevel=s.level-1,L(s,"up",e))},l).addClass("highcharts-breadcrumbs-button").add(s.group);return o.styledMode||a.attr(r.style),a}renderSeparator(t,e){let i=this.chart,s=this.options.separator,o=i.renderer.label(s.text,t,e,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return i.styledMode||o.css(s.style),o}update(t){w(!0,this.options,t),this.destroy(),this.isDirty=!0}updateSingleButton(){let t=this.chart,e=this.list[this.level-1];t.drillUpButton&&t.drillUpButton.attr({text:this.getButtonText(e)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(t){let e=this.elementList;A(e,(i,s)=>{(t||!e[s].updated)&&((i=e[s]).button&&i.button.destroy(),i.separator&&i.separator.destroy(),delete i.button,delete i.separator,delete e[s])}),t&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){A(this.elementList,t=>{t.updated=!1})}updateListElements(){let t=this.elementList,e=this.options.buttonSpacing,i=this.list,s=this.options.rtl,o=s?-1:1,r=function(t,e){return o*t.getBBox().width+o*e},l=function(t,e,i){t.translate(e-t.getBBox().width,i)},a=this.group?r(this.group,e):e,n,h;for(let d=0,p=i.length;d{t.graphic=a=a&&a.destroy(),"function"==typeof s&&s()};Object.keys(i).length?a.animate(i,void 0,()=>e()):e()}}},{pie:{prototype:{pointClass:X}},scatter:{prototype:{pointClass:$}}}=G().seriesTypes,{extend:K,isNumber:q,pick:Z}=g();class J extends ${constructor(){super(...arguments),this.groupedPointsAmount=0,this.shapeType="rect"}draw(t){Y.draw(this,t)}getClassName(){let t=this.series,e=t.options,i=super.getClassName();return this.node.level<=t.nodeMap[t.rootNode].level&&this.node.children.length?i+=" highcharts-above-level":this.node.isGroup||this.node.isLeaf||t.nodeMap[t.rootNode].isGroup||Z(e.interactByLeaf,!e.allowTraversingTree)?this.node.isGroup||this.node.isLeaf||t.nodeMap[t.rootNode].isGroup||(i+=" highcharts-internal-node"):i+=" highcharts-internal-node-interactive",i}isValid(){return!!(this.id||q(this.value))}setState(t){super.setState.apply(this,arguments),this.graphic&&this.graphic.attr({zIndex:"hover"===t?1:0})}shouldDraw(){return q(this.plotY)&&null!==this.y}}K(J.prototype,{setVisible:X.prototype.setVisible});let{isString:Q}=g(),tt={allowTraversingTree:!1,animationLimit:250,borderRadius:0,showInLegend:!1,marker:void 0,colorByPoint:!1,dataLabels:{defer:!1,enabled:!0,formatter:function(){let t=this&&this.point?this.point:{};return Q(t.name)?t.name:""},inside:!0,padding:2,verticalAlign:"middle",style:{textOverflow:"ellipsis"}},tooltip:{headerFormat:"",pointFormat:"{point.name}: {point.value}
    ",clusterFormat:"+ {point.groupedPointsAmount} more...
    "},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1,levelIsConstant:!0,traverseUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,colorKey:"colorValue",opacity:.15,states:{hover:{borderColor:"#999999",brightness:G().seriesTypes.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}},legendSymbol:"rectangle",traverseToLeaf:!1,cluster:{className:void 0,color:void 0,enabled:!1,pixelWidth:void 0,pixelHeight:void 0,name:void 0,reductionFactor:void 0,minimumClusterSize:5,layoutAlgorithm:{distance:0,gridSize:0,kmeansThreshold:0},marker:{lineWidth:0,radius:0}}};(a||(a={})).recursive=function t(e,i,s){let o=i.call(s||this,e);!1!==o&&t(o,i,s)};let te=a,{extend:ti,isArray:ts,isNumber:to,isObject:tr,merge:tl,pick:ta,relativeLength:tn}=g(),th={getColor:function(t,e){let i,s,o,r,l,a;let n=e.index,h=e.mapOptionsToLevel,d=e.parentColor,p=e.parentColorIndex,u=e.series,c=e.colors,g=e.siblings,v=u.points,f=u.chart.options.chart;return t&&(i=v[t.i],s=h[t.level]||{},i&&s.colorByPoint&&(r=i.index%(c?c.length:f.colorCount),o=c&&c[r]),u.chart.styledMode||(l=ta(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&n&&g?H().parse(t).brighten(e.to*(n/g)).get():t})(d),u.color)),a=ta(i&&i.options.colorIndex,s&&s.colorIndex,r,p,e.colorIndex)),{color:l,colorIndex:a}},getLevelOptions:function(t){let e,i,s,o,r,l;let a={};if(tr(t))for(o=to(t.from)?t.from:1,l=t.levels,i={},e=tr(t.defaults)?t.defaults:{},ts(l)&&(i=l.reduce((t,i)=>{let s,r,l;return tr(i)&&to(i.level)&&(r=ta((l=tl({},i)).levelIsConstant,e.levelIsConstant),delete l.levelIsConstant,delete l.level,tr(t[s=i.level+(r?0:o-1)])?tl(!0,t[s],l):t[s]=l),t},{})),r=to(t.to)?t.to:1,s=0;s<=r;s++)a[s]=tl({},e,tr(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:l=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return l/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(l+t)/(e||1)-t}return tn(r,l)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],l=!1!==i.levelIsConstant,a=i.points[e.i],n=a&&a.options||{},h=[],d=0;e.levelDynamic=e.level-(l?0:r.level),e.name=ta(a&&a.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=ti({},i);ti(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),h.push(s),s.visible&&(d+=s.val)});let p=ta(n.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,i;return tr(t)&&(i=tr(t.options)?t.options:{},e=ta(t.rootNode,i.rootId,""),tr(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{parse:td}=H(),{composed:tp,noop:tu}=g(),{column:tc,scatter:tg}=G().seriesTypes,{getColor:tv,getLevelOptions:tf,updateRootId:tb}=th,{addEvent:tm,correctFloat:ty,crisp:tx,defined:tP,error:tL,extend:tT,fireEvent:tw,isArray:tA,isObject:tR,isString:tS,merge:tC,pick:tO,pushUnique:tB,splat:tM,stableSort:tI}=g(),tN=!1;function tD(){let t;let e=this.xAxis,i=this.yAxis;e&&i&&(this.is("treemap")?(t={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,minPadding:0,max:100,maxPadding:0,startOnTick:!1,title:void 0,tickPositions:[]},tT(i.options,t),tT(e.options,t),tN=!0):tN&&(i.setOptions(i.userOptions),e.setOptions(e.userOptions),tN=!1))}class tH extends tg{static compose(t){tB(tp,"TreemapSeries")&&tm(t,"afterBindAxes",tD)}algorithmCalcPoints(t,e,i,s){let o=i.plot,r=i.elArr.length-1,l,a,n,h,d=i.lW,p=i.lH,u,c=0;for(let t of(e?(d=i.nW,p=i.nH):u=i.elArr[r],i.elArr))(e||ca.lP.lR&&this.algorithmCalcPoints(t,!1,a,s,o),h===l&&this.algorithmCalcPoints(t,!0,a,s,o),++h;return s}alignDataLabel(t,e,i){tc.prototype.alignDataLabel.apply(this,arguments),t.dataLabel&&t.dataLabel.attr({zIndex:(t.node.zIndex||0)+1})}applyTreeGrouping(){let t=this,e=t.parentList||{},{cluster:i}=t.options,s=i?.minimumClusterSize||5;if(i?.enabled){let o={},r=t=>{if(t?.point?.shapeArgs){let{width:e=0,height:s=0}=t.point.shapeArgs,{pixelWidth:r=0,pixelHeight:l=0}=i,a=tP(l),n=l?r*l:r*r;(e{r(t)})};for(let l in r(t.tree),o)o[l]&&o[l].length>s&&o[l].forEach(s=>{let o=e[l].indexOf(s.i);if(-1!==o){e[l].splice(o,1);let r=`highcharts-grouped-treemap-points-${s.parent||"root"}`,a=t.points.find(t=>t.id===r);if(!a){let s=t.pointClass,o=t.points.length;tT(a=new s(t,{className:i.className,color:i.color,id:r,index:o,isGroup:!0,value:0}),{formatPrefix:"cluster"}),t.points.push(a),e[l].push(o),e[r]=[]}let n=a.groupedPointsAmount+1,h=t.points[a.index].options.value||0,d=i.name||`+ ${n}`;t.points[a.index].groupedPointsAmount=n,t.points[a.index].options.value=h+(s.point.value||0),t.points[a.index].name=d,e[r].push(s.point.index)}});t.nodeMap={},t.nodeList=[],t.parentList=e;let l=t.buildTree("",-1,0,t.parentList);t.translate(l)}}calculateChildrenAreas(t,e){let i=this.options,s=this.mapOptionsToLevel[t.level+1],o=tO(s?.layoutAlgorithm&&this[s?.layoutAlgorithm]&&s.layoutAlgorithm,this.options.layoutAlgorithm),r=i.alternateStartingDirection,l=t.children.filter(e=>t.isGroup||!e.ignore);if(!o)return;let a=[];s&&s.layoutStartingDirection&&(e.direction="vertical"===s.layoutStartingDirection?0:1),a=this[o](e,l);let n=-1;for(let t of l){let i=a[++n];t.values=tC(i,{val:t.childrenTotal,direction:r?1-e.direction:e.direction}),t.pointValues=tC(i,{x:i.x/this.axisRatio,y:100-i.y-i.height,width:i.width/this.axisRatio}),t.children.length&&this.calculateChildrenAreas(t,t.values)}}createList(t){let e=this.chart,i=e.breadcrumbs,s=[];if(i){let i=0;s.push({level:i,levelOptions:e.series[0]});let o=t.target.nodeMap[t.newRootId],r=[];for(;o.parent||""===o.parent;)r.push(o),o=t.target.nodeMap[o.parent];for(let t of r.reverse())s.push({level:++i,levelOptions:t});s.length<=1&&(s.length=0)}return s}drawDataLabels(){let t,e;let i=this.mapOptionsToLevel,s=this.points.filter(function(t){return t.node.visible||tP(t.dataLabel)}),o=tM(this.options.dataLabels||{})[0]?.padding;for(let r of s){if(e=i[r.node.level],t={style:{}},(!r.node.isLeaf&&!r.node.isGroup||r.node.isGroup&&r.node.level<=this.nodeMap[this.rootNode].level)&&(t.enabled=!1),e&&e.dataLabels&&(t=tC(t,e.dataLabels),this.hasDataLabels=()=>!0),r.shapeArgs){let e={width:(r.shapeArgs.width||0)-2*(t.padding||o||0)+"px",lineClamp:Math.floor((r.shapeArgs.height||0)/16)};tT(t.style,e),r.dataLabel?.css(e)}r.dlOptions=tC(t,r.options.dataLabels)}super.drawDataLabels(s)}drawPoints(t=this.points){let e=this.chart,i=e.renderer,s=e.styledMode,o=this.options,r=s?{}:o.shadow,l=o.borderRadius,a=e.pointCount{let e=t.userOptions;tP(e.allowDrillToNode)&&!tP(e.allowTraversingTree)&&(e.allowTraversingTree=e.allowDrillToNode,delete e.allowDrillToNode),tP(e.drillUpButton)&&!tP(e.traverseUpButton)&&(e.traverseUpButton=e.drillUpButton,delete e.drillUpButton)});super.init(t,e),delete i.opacity,i.eventsToUnbind.push(o),i.options.allowTraversingTree&&(i.eventsToUnbind.push(tm(i,"click",i.onClickDrillToNode)),i.eventsToUnbind.push(tm(i,"setRootNode",function(t){let e=i.chart;e.breadcrumbs&&e.breadcrumbs.updateProperties(i.createList(t))})),i.eventsToUnbind.push(tm(i,"update",function(t,e){let i=this.chart.breadcrumbs;i&&t.options.breadcrumbs&&i.update(t.options.breadcrumbs)})),i.eventsToUnbind.push(tm(i,"destroy",function(t){let e=this.chart;e.breadcrumbs&&!t.keepEventsForUpdate&&(e.breadcrumbs.destroy(),e.breadcrumbs=void 0)}))),t.breadcrumbs||(t.breadcrumbs=new N(t,s)),i.eventsToUnbind.push(tm(t.breadcrumbs,"up",function(t){let e=this.level-t.newLevel;for(let t=0;to?0:t.pointAttribs(e)["stroke-width"]||0;for(let t of e){let{pointValues:e,visible:o}=t.node;if(e&&o){let{height:o,width:l,x:a,y:n}=e,h=r(t),d=tx(i.toPixels(a,!0),h,!0),p=tx(i.toPixels(a+l,!0),h,!0),u=tx(s.toPixels(n,!0),h,!0),c=tx(s.toPixels(n+o,!0),h,!0),g={x:Math.min(d,p),y:Math.min(u,c),width:Math.abs(p-d),height:Math.abs(c-u)};t.plotX=g.x+g.width/2,t.plotY=g.y+g.height/2,t.shapeArgs=g}else delete t.plotX,delete t.plotY}}setRootNode(t,e,i){tw(this,"setRootNode",tT({newRootId:t,previousRootId:this.rootNode,redraw:tO(e,!0),series:this},i),function(t){let e=t.series;e.idPreviousRoot=t.previousRootId,e.rootNode=t.newRootId,e.isDirty=!0,t.redraw&&e.chart.redraw()})}setState(t){this.options.inactiveOtherPoints=!0,super.setState(t,!1),this.options.inactiveOtherPoints=!1}setTreeValues(t){let e=this.options,i=this.rootNode,s=this.nodeMap[i],o="boolean"!=typeof e.levelIsConstant||e.levelIsConstant,r=[],l=this.points[t.i],a=0;for(let e of t.children)e=this.setTreeValues(e),r.push(e),e.ignore||(a+=e.val);tI(r,(t,e)=>(t.sortIndex||0)-(e.sortIndex||0));let n=tO(l&&l.options.value,a);return l&&(l.value=n),l?.isGroup&&e.cluster?.reductionFactor&&(n/=e.cluster.reductionFactor),t.parentNode?.point?.isGroup&&this.rootNode!==t.parent&&(t.visible=!1),tT(t,{children:r,childrenTotal:a,ignore:!(tO(l&&l.visible,!0)&&n>0),isLeaf:t.visible&&!a,isGroup:l?.isGroup,levelDynamic:t.level-(o?0:s.level),name:tO(l&&l.name,""),sortIndex:tO(l&&l.sortIndex,-n),val:n}),t}sliceAndDice(t,e){return this.algorithmFill(!0,t,e)}squarified(t,e){return this.algorithmLowAspectRatio(!0,t,e)}strip(t,e){return this.algorithmLowAspectRatio(!1,t,e)}stripes(t,e){return this.algorithmFill(!1,t,e)}translate(t){let e=this,i=e.options,s=!t,o=tb(e),r,l,a,n;t||o.startsWith("highcharts-grouped-treemap-points-")||((this.points||[]).forEach(t=>{t.isGroup&&t.destroy()}),super.translate(),t=e.getTree()),e.tree=t=t||e.tree,r=e.nodeMap[o],""===o||r||(e.setRootNode("",!1),o=e.rootNode,r=e.nodeMap[o]),r.point?.isGroup||(e.mapOptionsToLevel=tf({from:r.level+1,levels:i.levels,to:t.height,defaults:{levelIsConstant:e.options.levelIsConstant,colorByPoint:i.colorByPoint}})),te.recursive(e.nodeMap[e.rootNode],t=>{let i=t.parent,s=!1;return t.visible=!0,(i||""===i)&&(s=e.nodeMap[i]),s}),te.recursive(e.nodeMap[e.rootNode].children,t=>{let e=!1;for(let i of t)i.visible=!0,i.children.length&&(e=(e||[]).concat(i.children));return e}),e.setTreeValues(t),e.axisRatio=e.xAxis.len/e.yAxis.len,e.nodeMap[""].pointValues=l={x:0,y:0,width:100,height:100},e.nodeMap[""].values=a=tC(l,{width:l.width*e.axisRatio,direction:"vertical"===i.layoutStartingDirection?0:1,val:t.val}),e.calculateChildrenAreas(t,a),e.colorAxis||i.colorByPoint||e.setColorRecursive(e.tree),i.allowTraversingTree&&r.pointValues&&(n=r.pointValues,e.xAxis.setExtremes(n.x,n.x+n.width,!1),e.yAxis.setExtremes(n.y,n.y+n.height,!1),e.xAxis.setScale(),e.yAxis.setScale()),e.setPointValues(),s&&e.applyTreeGrouping()}}tH.defaultOptions=tC(tg.defaultOptions,tt),tT(tH.prototype,{buildKDTree:tu,colorAttribs:F.seriesMembers.colorAttribs,colorKey:"colorValue",directTouch:!0,getExtremesFromAll:!0,getSymbol:tu,optionalAxis:"colorAxis",parallelArrays:["x","y","value","colorValue"],pointArrayMap:["value","colorValue"],pointClass:J,NodeClass:j,trackerGroups:["group","dataLabelsGroup"],utils:te}),F.compose(tH),G().registerSeriesType("treemap",tH);var tE=p(820),tG=p.n(tE);let{deg2rad:tk}=g(),{fireEvent:tz,isNumber:tW,pick:tU,relativeLength:tV}=g();!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,l=Math.min(s,o),a=t.thickness,n,h=t.size,d=t.innerSize||0,p,u;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof d&&(d=parseFloat(d));let c=[tU(r?.[0],"50%"),tU(r?.[1],"50%"),tU(h&&h<0?void 0:t.size,"100%"),tU(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof tG()||(c[3]=0),p=0;p<4;++p)u=c[p],n=p<2||2===p&&/%$/.test(u),c[p]=tV(u,[s,o,l,c[2]][p])+(n?i:0);return c[3]>c[2]&&(c[3]=c[2]),tW(a)&&2*a0&&(c[3]=c[2]-2*a),tz(this,"afterGetCenter",{positions:c}),c},t.getStartAndEndRadians=function(t,e){let i=tW(t)?t:0,s=tW(e)&&e>i&&e-i<360?e:i+360;return{start:tk*(i+-90),end:tk*(s+-90)}}}(n||(n={}));let tF=n,{series:{prototype:{pointClass:t_}},seriesTypes:{treemap:{prototype:{pointClass:tj}}}}=G(),{correctFloat:tY,extend:tX,pInt:t$}=g();class tK extends tj{getDataLabelPath(t){let e=this.series.chart.renderer,i=this.shapeExisting,s=i.r+t$(t.options?.distance||0),o=i.start,r=i.end,l=o+(r-o)/2,a=l<0&&l>-Math.PI||l>Math.PI,n;return o===-Math.PI/2&&tY(r)===tY(1.5*Math.PI)&&(o=-Math.PI+Math.PI/360,r=-Math.PI/360,a=!0),r-o>Math.PI&&(a=!1,n=!0,r-o>2*Math.PI-.01&&(o+=.01,r-=.01)),this.dataLabelPath&&(this.dataLabelPath=this.dataLabelPath.destroy()),this.dataLabelPath=e.arc({open:!0,longArc:n?1:0}).attr({start:a?o:r,end:a?r:o,clockwise:+a,x:i.x,y:i.y,r:(s+i.innerR)/2}).add(e.defs),this.dataLabelPath}isValid(){return!0}}tX(tK.prototype,{getClassName:t_.prototype.getClassName,haloPath:t_.prototype.haloPath,setState:t_.prototype.setState});let{seriesTypes:{treemap:tq}}=G(),{isNumber:tZ,isObject:tJ,merge:tQ}=g();function t0(t,e){let i=[];if(tZ(t)&&tZ(e)&&t<=e)for(let s=t;s<=e;s++)i.push(s);return i}let t1={calculateLevelSizes:function(t,e){let i=tJ(e)?e:{},s,o=0,r,l,a,n;if(tJ(t)){for(let e of(s=tQ({},t),l=t0(tZ(i.from)?i.from:0,tZ(i.to)?i.to:0),a=Object.keys(s).filter(t=>-1===l.indexOf(+t)),r=n=tZ(i.diffRadius)?i.diffRadius:0,l)){let t=s[e],i=t.levelSize.unit,l=t.levelSize.value;"weight"===i?o+=l:"percentage"===i?(t.levelSize={unit:"pixels",value:l/100*r},n-=t.levelSize.value):"pixels"===i&&(n-=l)}for(let t of l){let e=s[t];if("weight"===e.levelSize.unit){let i=e.levelSize.value;s[t].levelSize={unit:"pixels",value:i/o*n}}}for(let t of a)s[t].levelSize={value:0,unit:"pixels"}}return s},getLevelFromAndTo:function({level:t,height:e}){return{from:t>0?t:1,to:t+e}},range:t0,recursive:tq.prototype.utils.recursive},{deg2rad:t2}=g(),{addEvent:t5,merge:t6,uniqueKey:t9,defined:t3,extend:t8}=g();function t4(t,e){e=t6(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,o=s.textPath,{attributes:r,enabled:l}=e;if(t=t||o&&o.path,o&&o.undo(),t&&l){let e=t5(s,"afterModifyTree",e=>{if(t&&l){let o=t.attr("id");o||t.attr("id",o=t9());let l={x:0,y:0};t3(r.dx)&&(l.dx=r.dx,delete r.dx),t3(r.dy)&&(l.dy=r.dy,delete r.dy),s.attr(l),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let a=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:t8(r,{"text-anchor":r.textAnchor,href:`${i}#${o}`}),children:a}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function t7(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),r=o-s,l=RegExp('(|]*>|<\\/tspan>)',"g"),a=i.innerHTML.replace(l,"").split(/]*>/),n=a.length,h=(t,e)=>{let{x:o,y:l}=e,a=(i.getRotationOfChar(t)-90)*t2,n=Math.cos(a),h=Math.sin(a);return[[o-r*n,l-r*h],[o+s*n,l+s*h]]};for(let e=0,s=0;si.radius?(a=0,e.dataLabelPath&&"circular"===h&&(o.textPath={enabled:!0})):r>1&&l>1.5*i.radius?"circular"===h?o.textPath={enabled:!0,attributes:{dy:5}}:h="parallel":(e.dataLabel?.textPath&&"circular"===h&&(o.textPath={enabled:!1}),h="perpendicular")),"auto"!==h&&"circular"!==h&&(e.dataLabel&&e.dataLabel.textPath&&(o.textPath={enabled:!1}),a=i.end-(i.end-i.start)/2),"parallel"===h?o.style.width=Math.min(2.5*i.radius,(l+r)/2):!ed(o.style.width)&&i.radius&&(o.style.width=1===e.node.level?2*i.radius:i.radius),"perpendicular"===h&&(l<16?o.style.width=1:o.style.lineClamp=Math.floor(r/16)||1),o.style.width=Math.max(o.style.width-2*(o.padding||0),1),n=a*ey%180,"parallel"===h&&(n-=90),n>90?n-=180:n<-90&&(n+=180),o.rotation=n),o.textPath&&(0===e.shapeExisting.innerR&&o.textPath.enabled?(o.rotation=0,o.textPath.enabled=!1,o.style.width=Math.max(2*e.shapeExisting.r-2*(o.padding||0),1)):e.dlOptions&&e.dlOptions.textPath&&!e.dlOptions.textPath.enabled&&"circular"===h&&(o.textPath.enabled=!0),o.textPath.enabled&&(o.rotation=0,o.style.width=Math.max((e.outerArcLength+e.innerArcLength)/2-2*(o.padding||0),1),o.style.whiteSpace="nowrap")),o}({point:n,level:y,optionsPoint:n.options,shapeArgs:T}),!L&&w&&(L=!0,c=x),n.draw({animatableAttribs:d.to,attribs:eu(d.from,!u.styledMode&&t.pointAttribs(n,n.selected&&"select")),onComplete:c,group:s,renderer:m,shapeType:"arc",shapeArgs:T})}y&&L?(t.hasRendered=!1,t.options.dataLabels.defer=!0,eo.prototype.drawDataLabels.call(t),t.hasRendered=!0,P&&x()):eo.prototype.drawDataLabels.call(t),t.idPreviousRoot=r}layoutAlgorithm(t,e,i){let s=t.start,o=t.end-s,r=t.val,l=t.x,a=t.y,n=i&&ev(i.levelSize)&&eg(i.levelSize.value)?i.levelSize.value:0,h=t.r,d=h+n,p=i&&eg(i.slicedOffset)?i.slicedOffset:0;return(e||[]).reduce((t,e)=>{let i=1/r*e.val*o,u=ex(l,a,s+i/2,p),c={x:e.sliced?u.x:l,y:e.sliced?u.y:a,innerR:h,r:d,radius:n,start:s,end:s+i};return t.push(c),s=c.end,t},[])}setRootNode(t,e,i){if(1===this.nodeMap[t].level&&1===this.nodeList.filter(t=>1===t.level).length){if(""===this.idPreviousRoot)return;t=""}super.setRootNode(t,e,i)}setShapeArgs(t,e,i){let s=i[t.level+1],o=t.children.filter(function(t){return t.visible}),r=[];r=this.layoutAlgorithm(e,o,s);let l=-1;for(let t of o){let e=r[++l],s=e.start+(e.end-e.start)/2,o=e.innerR+(e.r-e.innerR)/2,a=e.end-e.start,n=0===e.innerR&&a>6.28?{x:e.x,y:e.y}:ex(e.x,e.y,s,o),h=t.val?t.childrenTotal>t.val?t.childrenTotal:t.val:t.childrenTotal;this.points[t.i]&&(this.points[t.i].innerArcLength=a*e.innerR,this.points[t.i].outerArcLength=a*e.r),t.shapeArgs=eb(e,{plotX:n.x,plotY:n.y}),t.values=eb(e,{val:h}),t.children.length&&this.setShapeArgs(t,t.values,i)}}translate(){let t=this.options,e=this.center=this.getCenter(),i=this.startAndEndRadians=ei(t.startAngle,t.endAngle),s=e[3]/2,o=e[2]/2,r=eh(this),l=this.nodeMap,a,n=l&&l[r],h={};this.shapeRoot=n&&n.shapeArgs,this.generatePoints(),ec(this,"afterTranslate");let d=this.tree=this.getTree(),p=ef((n=(l=this.nodeMap)[r]).parent)?n.parent:"",u=l[p],{from:c,to:g}=t1.getLevelFromAndTo(n);a=ea({from:c,levels:this.options.levels,to:g,defaults:{colorByPoint:t.colorByPoint,dataLabels:t.dataLabels,levelIsConstant:t.levelIsConstant,levelSize:t.levelSize,slicedOffset:t.slicedOffset}}),a=t1.calculateLevelSizes(a,{diffRadius:o-s,from:c,to:g}),en(d,{before:eP,idRoot:r,levelIsConstant:t.levelIsConstant,mapOptionsToLevel:a,mapIdToNode:l,points:this.points,series:this});let v=l[""].shapeArgs={end:i.end,r:s,start:i.start,val:n.val,x:e[0],y:e[1]};for(let t of(this.setShapeArgs(u,v,a),this.mapOptionsToLevel=a,this.points))h[t.id]&&ep(31,!1,this.chart),h[t.id]=!0}}eL.defaultOptions=eb(er.defaultOptions,{center:["50%","50%"],clip:!1,colorByPoint:!1,opacity:1,dataLabels:{allowOverlap:!0,defer:!0,rotationMode:"circular",style:{textOverflow:"ellipsis"}},rootId:void 0,levelIsConstant:!0,levelSize:{value:1,unit:"weight"},slicedOffset:10}),eu(eL.prototype,{axisTypes:[],drawDataLabels:es,getCenter:ee,isCartesian:!1,onPointSupported:!0,pointAttribs:eo.prototype.pointAttribs,pointClass:tK,NodeClass:class extends j{},utils:t1}),G().registerSeriesType("sunburst",eL);let eT=g();eT.Breadcrumbs=eT.Breadcrumbs||N,eT.Breadcrumbs.compose(eT.Chart,eT.defaultOptions);let ew=g();return u.default})()); \ No newline at end of file diff --git a/modules/sunburst.src.js b/modules/sunburst.src.js index f1295bcc1b..fe6df9869a 100644 --- a/modules/sunburst.src.js +++ b/modules/sunburst.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/sunburst * @requires highcharts * @@ -1470,6 +1470,7 @@ class TreemapPoint extends ScatterPoint { * * */ super(...arguments); + this.groupedPointsAmount = 0; this.shapeType = 'rect'; } /* * @@ -1488,11 +1489,15 @@ class TreemapPoint extends ScatterPoint { this.node.children.length) { className += ' highcharts-above-level'; } - else if (!this.node.isLeaf && + else if (!this.node.isGroup && + !this.node.isLeaf && + !series.nodeMap[series.rootNode].isGroup && !TreemapPoint_pick(options.interactByLeaf, !options.allowTraversingTree)) { className += ' highcharts-internal-node-interactive'; } - else if (!this.node.isLeaf) { + else if (!this.node.isGroup && + !this.node.isLeaf && + !series.nodeMap[series.rootNode].isGroup) { className += ' highcharts-internal-node'; } return className; @@ -1559,7 +1564,7 @@ const { isString: TreemapSeriesDefaults_isString } = (highcharts_commonjs_highch * Treemap * * @extends plotOptions.scatter - * @excluding cluster, connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker + * @excluding connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker * @product highcharts * @requires modules/treemap * @optionparent plotOptions.treemap @@ -1586,6 +1591,8 @@ const TreemapSeriesDefaults = { * * @sample {highcharts} highcharts/plotoptions/treemap-allowtraversingtree/ * Enabled + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-traversing/ + * Traversing to Grouped Points node * * @since 7.0.3 * @product highcharts @@ -1708,11 +1715,28 @@ const TreemapSeriesDefaults = { return name; }, inside: true, - verticalAlign: 'middle' + padding: 2, + verticalAlign: 'middle', + style: { + textOverflow: 'ellipsis' + } }, tooltip: { headerFormat: '', - pointFormat: '{point.name}: {point.value}
    ' + pointFormat: '{point.name}: {point.value}
    ', + /** + * The HTML of the grouped point's nodes in the tooltip. Works only for + * Treemap series grouping and analogously to + * [pointFormat](#tooltip.pointFormat). + * + * The grouped nodes point tooltip can be also formatted using + * `tooltip.formatter` callback function and `point.isGroupNode` flag. + * + * @type {string} + * @default '+ {point.groupedPointsAmount} more...' + * @apioption tooltip.clusterFormat + */ + clusterFormat: '+ {point.groupedPointsAmount} more...
    ' }, /** * Whether to ignore hidden points when the layout algorithm runs. @@ -2006,7 +2030,110 @@ const TreemapSeriesDefaults = { * * @product highcharts */ - traverseToLeaf: false + traverseToLeaf: false, + /** + * An option to optimize treemap series rendering by grouping smaller leaf + * nodes below a certain square area threshold in pixels. If the square area + * of a point becomes smaller than the specified threshold, determined by + * the `pixelWidth` and/or `pixelHeight` options, then this point is moved + * into one group point per series. + * + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-simple + * Simple demo of Treemap grouping + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-multiple-parents + * Treemap grouping with multiple parents + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-advanced + * Advanced demo of Treemap grouping + * + * @since 12.1.0 + * + * @excluding allowOverlap, animation, dataLabels, drillToCluster, events, + * layoutAlgorithm, marker, states, zones + * + * @product highcharts + */ + cluster: { + /** + * An additional, individual class name for the grouped point's graphic + * representation. + * + * @type string + * @product highcharts + */ + className: void 0, + /** + * Individual color for the grouped point. By default the color is + * pulled from the parent color. + * + * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} + * @product highcharts + */ + color: void 0, + /** + * Enable or disable Treemap grouping. + * + * @type {boolean} + * @since 12.1.0 + * @product highcharts + */ + enabled: false, + /** + * The pixel threshold width of area, which is used in Treemap grouping. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + pixelWidth: void 0, + /** + * The pixel threshold height of area, which is used in Treemap + * grouping. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + pixelHeight: void 0, + /** + * The name of the point of grouped nodes shown in the tooltip, + * dataLabels, etc. By default it is set to '+ n', where n is number of + * grouped points. + * + * @type {string} + * @since 12.1.0 + * @product highcharts + */ + name: void 0, + /** + * A configuration property that specifies the factor by which the value + * and size of a grouped node are reduced. This can be particularly + * useful when a grouped node occupies a disproportionately large + * portion of the graph, ensuring better visual balance and readability. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + reductionFactor: void 0, + /** + * Defines the minimum number of child nodes required to create a group + * of small nodes. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + minimumClusterSize: 5, + layoutAlgorithm: { + distance: 0, + gridSize: 0, + kmeansThreshold: 0 + }, + marker: { + lineWidth: 0, + radius: 0 + } + } }; /** * A `treemap` series. If the [type](#series.treemap.type) option is @@ -2392,7 +2519,7 @@ const { column: ColumnSeries, scatter: ScatterSeries } = (highcharts_SeriesRegis const { getColor: TreemapSeries_getColor, getLevelOptions: TreemapSeries_getLevelOptions, updateRootId: TreemapSeries_updateRootId } = Series_TreeUtilities; -const { addEvent: TreemapSeries_addEvent, correctFloat, crisp, defined: TreemapSeries_defined, error, extend: TreemapSeries_extend, fireEvent: TreemapSeries_fireEvent, isArray: TreemapSeries_isArray, isObject: TreemapSeries_isObject, isString: TreemapSeries_isString, merge: TreemapSeries_merge, pick: TreemapSeries_pick, pushUnique: TreemapSeries_pushUnique, stableSort } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); +const { addEvent: TreemapSeries_addEvent, correctFloat, crisp, defined: TreemapSeries_defined, error, extend: TreemapSeries_extend, fireEvent: TreemapSeries_fireEvent, isArray: TreemapSeries_isArray, isObject: TreemapSeries_isObject, isString: TreemapSeries_isString, merge: TreemapSeries_merge, pick: TreemapSeries_pick, pushUnique: TreemapSeries_pushUnique, splat, stableSort } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); /* * * * Constants @@ -2549,7 +2676,9 @@ class TreemapSeries extends ScatterSeries { x: pX, y: pY, width: pW, - height: pH + height: pH, + direction: 0, + val: 0 }); if (directionChange) { direction = 1 - direction; @@ -2586,28 +2715,93 @@ class TreemapSeries extends ScatterSeries { * Over the alignment method by setting z index. * @private */ - alignDataLabel(point, dataLabel, labelOptions) { - const style = labelOptions.style; - // #8160: Prevent the label from exceeding the point's - // boundaries in treemaps by applying ellipsis overflow. - // The issue was happening when datalabel's text contained a - // long sequence of characters without a whitespace. - if (style && - !TreemapSeries_defined(style.textOverflow) && - dataLabel.text && - dataLabel.getBBox().width > (dataLabel.text.textWidth || 0)) { - dataLabel.css({ - textOverflow: 'ellipsis', - // Unit (px) is required when useHTML is true - width: style.width += 'px' - }); - } + alignDataLabel(point, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dataLabel, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + labelOptions) { ColumnSeries.prototype.alignDataLabel.apply(this, arguments); if (point.dataLabel) { // `point.node.zIndex` could be undefined (#6956) point.dataLabel.attr({ zIndex: (point.node.zIndex || 0) + 1 }); } } + applyTreeGrouping() { + const series = this, parentList = series.parentList || {}, { cluster } = series.options, minimumClusterSize = cluster?.minimumClusterSize || 5; + if (cluster?.enabled) { + const parentGroups = {}; + const checkIfHide = (node) => { + if (node?.point?.shapeArgs) { + const { width = 0, height = 0 } = node.point.shapeArgs, area = width * height; + const { pixelWidth = 0, pixelHeight = 0 } = cluster, compareHeight = TreemapSeries_defined(pixelHeight), thresholdArea = pixelHeight ? + pixelWidth * pixelHeight : + pixelWidth * pixelWidth; + if (width < pixelWidth || + height < (compareHeight ? pixelHeight : pixelWidth) || + area < thresholdArea) { + if (!node.isGroup && TreemapSeries_defined(node.parent)) { + if (!parentGroups[node.parent]) { + parentGroups[node.parent] = []; + } + parentGroups[node.parent].push(node); + } + } + } + node?.children.forEach((child) => { + checkIfHide(child); + }); + }; + checkIfHide(series.tree); + for (const parent in parentGroups) { + if (parentGroups[parent]) { + if (parentGroups[parent].length > minimumClusterSize) { + parentGroups[parent].forEach((node) => { + const index = parentList[parent].indexOf(node.i); + if (index !== -1) { + parentList[parent].splice(index, 1); + const id = `highcharts-grouped-treemap-points-${node.parent || 'root'}`; + let groupPoint = series.points + .find((p) => p.id === id); + if (!groupPoint) { + const PointClass = series.pointClass, pointIndex = series.points.length; + groupPoint = new PointClass(series, { + className: cluster.className, + color: cluster.color, + id, + index: pointIndex, + isGroup: true, + value: 0 + }); + TreemapSeries_extend(groupPoint, { + formatPrefix: 'cluster' + }); + series.points.push(groupPoint); + parentList[parent].push(pointIndex); + parentList[id] = []; + } + const amount = groupPoint.groupedPointsAmount + 1, val = series.points[groupPoint.index] + .options.value || 0, name = cluster.name || + `+ ${amount}`; + // Update the point directly in points array to + // prevent wrong instance update + series.points[groupPoint.index] + .groupedPointsAmount = amount; + series.points[groupPoint.index].options.value = + val + (node.point.value || 0); + series.points[groupPoint.index].name = name; + parentList[id].push(node.point.index); + } + }); + } + } + } + series.nodeMap = {}; + series.nodeList = []; + series.parentList = parentList; + const tree = series.buildTree('', -1, 0, series.parentList); + series.translate(tree); + } + } /** * Recursive function which calculates the area for all children of a * node. @@ -2622,10 +2816,14 @@ class TreemapSeries extends ScatterSeries { * The rectangular area of the parent. */ calculateChildrenAreas(parent, area) { - const series = this, options = series.options, mapOptionsToLevel = series.mapOptionsToLevel, level = mapOptionsToLevel[parent.level + 1], algorithm = TreemapSeries_pick((series[(level && level.layoutAlgorithm)] && - level.layoutAlgorithm), options.layoutAlgorithm), alternate = options.alternateStartingDirection, + const series = this, options = series.options, mapOptionsToLevel = series.mapOptionsToLevel, level = mapOptionsToLevel[parent.level + 1], algorithm = TreemapSeries_pick((level?.layoutAlgorithm && + series[level?.layoutAlgorithm] && + level.layoutAlgorithm), series.options.layoutAlgorithm), alternate = options.alternateStartingDirection, // Collect all children which should be included - children = parent.children.filter((n) => !n.ignore); + children = parent.children.filter((n) => parent.isGroup || !n.ignore); + if (!algorithm) { + return; + } let childrenValues = []; if (level && level.layoutStartingDirection) { area.direction = level.layoutStartingDirection === 'vertical' ? @@ -2702,15 +2900,18 @@ class TreemapSeries extends ScatterSeries { */ drawDataLabels() { const series = this, mapOptionsToLevel = series.mapOptionsToLevel, points = series.points.filter(function (n) { - return n.node.visible; - }); + return n.node.visible || TreemapSeries_defined(n.dataLabel); + }), padding = splat(series.options.dataLabels || {})[0]?.padding; let options, level; for (const point of points) { level = mapOptionsToLevel[point.node.level]; // Set options to new object to avoid problems with scope options = { style: {} }; // If not a leaf, then label should be disabled as default - if (!point.node.isLeaf) { + if (!point.node.isLeaf && + !point.node.isGroup || + (point.node.isGroup && + point.node.level <= series.nodeMap[series.rootNode].level)) { options.enabled = false; } // If options for level exists, include them as well @@ -2718,10 +2919,12 @@ class TreemapSeries extends ScatterSeries { options = TreemapSeries_merge(options, level.dataLabels); series.hasDataLabels = () => true; } - // Set dataLabel width to the width of the point shape. + // Set dataLabel width to the width of the point shape minus the + // padding if (point.shapeArgs) { const css = { - width: `${point.shapeArgs.width || 0}px`, + width: ((point.shapeArgs.width || 0) - + 2 * (options.padding || padding || 0)) + 'px', lineClamp: Math.floor((point.shapeArgs.height || 0) / 16) }; TreemapSeries_extend(options.style, css); @@ -2730,7 +2933,7 @@ class TreemapSeries extends ScatterSeries { // Merge custom options with point options point.dlOptions = TreemapSeries_merge(options, point.options.dataLabels); } - super.drawDataLabels(); + super.drawDataLabels(points); } /** * Override drawPoints @@ -2801,7 +3004,8 @@ class TreemapSeries extends ScatterSeries { */ drillToByGroup(point) { let drillId = false; - if (!point.node.isLeaf && + if ((!point.node.isLeaf || + point.node.isGroup) && (point.node.level - this.nodeMap[this.rootNode].level) === 1) { drillId = point.id; } @@ -2901,10 +3105,11 @@ class TreemapSeries extends ScatterSeries { getTree() { const series = this, allIds = this.data.map(function (d) { return d.id; - }), parentList = series.getListOfParents(this.data, allIds); + }); + series.parentList = series.getListOfParents(this.data, allIds); series.nodeMap = {}; series.nodeList = []; - return series.buildTree('', -1, 0, parentList); + return series.buildTree('', -1, 0, series.parentList || {}); } buildTree(id, index, level, list, parent) { const series = this, children = [], point = series.points[index]; @@ -3209,16 +3414,23 @@ class TreemapSeries extends ScatterSeries { // Sort the children stableSort(children, (a, b) => ((a.sortIndex || 0) - (b.sortIndex || 0))); // Set the values - const val = TreemapSeries_pick(point && point.options.value, childrenTotal); + let val = TreemapSeries_pick(point && point.options.value, childrenTotal); if (point) { point.value = val; } + if (point?.isGroup && options.cluster?.reductionFactor) { + val /= options.cluster.reductionFactor; + } + if (tree.parentNode?.point?.isGroup && series.rootNode !== tree.parent) { + tree.visible = false; + } TreemapSeries_extend(tree, { children: children, childrenTotal: childrenTotal, // Ignore this node if point is not visible ignore: !(TreemapSeries_pick(point && point.visible, true) && (val > 0)), isLeaf: tree.visible && !childrenTotal, + isGroup: point?.isGroup, levelDynamic: (tree.level - (levelIsConstant ? 0 : nodeRoot.level)), name: TreemapSeries_pick(point && point.name, ''), sortIndex: TreemapSeries_pick(point && point.sortIndex, -val), @@ -3238,30 +3450,41 @@ class TreemapSeries extends ScatterSeries { stripes(parent, children) { return this.algorithmFill(false, parent, children); } - translate() { - const series = this, options = series.options; + translate(tree) { + const series = this, options = series.options, applyGrouping = !tree; let // NOTE: updateRootId modifies series. rootId = TreemapSeries_updateRootId(series), rootNode, pointValues, seriesArea, val; - // Call prototype function - super.translate(); - // @todo Only if series.isDirtyData is true - const tree = series.tree = series.getTree(); + if (!tree && !rootId.startsWith('highcharts-grouped-treemap-points-')) { + // Group points are removed, but not destroyed during generatePoints + (this.points || []).forEach((point) => { + if (point.isGroup) { + point.destroy(); + } + }); + // Call prototype function + super.translate(); + // @todo Only if series.isDirtyData is true + tree = series.getTree(); + } + // Ensure `tree` and `series.tree` are synchronized + series.tree = tree = tree || series.tree; rootNode = series.nodeMap[rootId]; - if (rootId !== '' && - (!rootNode)) { + if (rootId !== '' && !rootNode) { series.setRootNode('', false); rootId = series.rootNode; rootNode = series.nodeMap[rootId]; } - series.mapOptionsToLevel = TreemapSeries_getLevelOptions({ - from: rootNode.level + 1, - levels: options.levels, - to: tree.height, - defaults: { - levelIsConstant: series.options.levelIsConstant, - colorByPoint: options.colorByPoint - } - }); + if (!rootNode.point?.isGroup) { + series.mapOptionsToLevel = TreemapSeries_getLevelOptions({ + from: rootNode.level + 1, + levels: options.levels, + to: tree.height, + defaults: { + levelIsConstant: series.options.levelIsConstant, + colorByPoint: options.colorByPoint + } + }); + } // Parents of the root node is by default visible Treemap_TreemapUtilities.recursive(series.nodeMap[series.rootNode], (node) => { const p = node.parent; @@ -3305,14 +3528,19 @@ class TreemapSeries extends ScatterSeries { } // Update axis extremes according to the root node. if (options.allowTraversingTree) { - val = rootNode.pointValues; - series.xAxis.setExtremes(val.x, val.x + val.width, false); - series.yAxis.setExtremes(val.y, val.y + val.height, false); - series.xAxis.setScale(); - series.yAxis.setScale(); + if (rootNode.pointValues) { + val = rootNode.pointValues; + series.xAxis.setExtremes(val.x, val.x + val.width, false); + series.yAxis.setExtremes(val.y, val.y + val.height, false); + series.xAxis.setScale(); + series.yAxis.setScale(); + } } // Assign values to points. series.setPointValues(); + if (applyGrouping) { + series.applyTreeGrouping(); + } } } /* * @@ -4340,7 +4568,7 @@ const { getColor: SunburstSeries_getColor, getLevelOptions: SunburstSeries_getLe -const { defined: SunburstSeries_defined, error: SunburstSeries_error, extend: SunburstSeries_extend, fireEvent: SunburstSeries_fireEvent, isNumber: SunburstSeries_isNumber, isObject: SunburstSeries_isObject, isString: SunburstSeries_isString, merge: SunburstSeries_merge, splat } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); +const { defined: SunburstSeries_defined, error: SunburstSeries_error, extend: SunburstSeries_extend, fireEvent: SunburstSeries_fireEvent, isNumber: SunburstSeries_isNumber, isObject: SunburstSeries_isObject, isString: SunburstSeries_isString, merge: SunburstSeries_merge, splat: SunburstSeries_splat } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); Extensions_TextPath.compose((highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_default())); @@ -4395,7 +4623,7 @@ function getDlOptions(params) { {}), // The splat was used because levels dataLabels // options doesn't work as an array - optionsLevel = splat(SunburstSeries_isObject(params.level) ? + optionsLevel = SunburstSeries_splat(SunburstSeries_isObject(params.level) ? params.level.dataLabels : {})[0], options = SunburstSeries_merge({ style: {} diff --git a/modules/textpath.js b/modules/textpath.js index cc273c8625..8a0b5bc93a 100644 --- a/modules/textpath.js +++ b/modules/textpath.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/textpath-support * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/modules/textpath",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/modules/textpath"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e={944:e=>{e.exports=t}},r={};function a(t){var h=r[t];if(void 0!==h)return h.exports;var s=r[t]={exports:{}};return e[t](s,s.exports,a),s.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var r in e)a.o(e,r)&&!a.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};a.d(h,{default:()=>g});var s=a(944),o=/*#__PURE__*/a.n(s);let{deg2rad:n}=o(),{addEvent:i,merge:d,uniqueKey:l,defined:f,extend:c}=o();function x(t,e){e=d(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let r=this.renderer.url,a=this.text||this,h=a.textPath,{attributes:s,enabled:o}=e;if(t=t||h&&h.path,h&&h.undo(),t&&o){let e=i(a,"afterModifyTree",e=>{if(t&&o){let h=t.attr("id");h||t.attr("id",h=l());let o={x:0,y:0};f(s.dx)&&(o.dx=s.dx,delete s.dx),f(s.dy)&&(o.dy=s.dy,delete s.dy),a.attr(o),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:c(s,{"text-anchor":s.textAnchor,href:`${r}#${h}`}),children:n}}});a.textPath={path:t,undo:e}}else a.attr({dx:0,dy:0}),delete a.textPath;return this.added&&(a.textCache="",this.renderer.buildText(a)),this}function u(t){let e=t.bBox,r=this.element?.querySelector("textPath");if(r){let t=[],{b:a,h}=this.renderer.fontMetrics(this.element),s=h-a,o=RegExp('(|]*>|<\\/tspan>)',"g"),i=r.innerHTML.replace(o,"").split(/]*>/),d=i.length,l=(t,e)=>{let{x:h,y:o}=e,i=(r.getRotationOfChar(t)-90)*n,d=Math.cos(i),l=Math.sin(i);return[[h-s*d,o-s*l],[h+a*d,o+a*l]]};for(let e=0,a=0;a(()=>{"use strict";var e={944:e=>{e.exports=t}},r={};function a(t){var h=r[t];if(void 0!==h)return h.exports;var s=r[t]={exports:{}};return e[t](s,s.exports,a),s.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var r in e)a.o(e,r)&&!a.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};a.d(h,{default:()=>g});var s=a(944),o=a.n(s);let{deg2rad:n}=o(),{addEvent:i,merge:d,uniqueKey:l,defined:f,extend:c}=o();function x(t,e){e=d(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let r=this.renderer.url,a=this.text||this,h=a.textPath,{attributes:s,enabled:o}=e;if(t=t||h&&h.path,h&&h.undo(),t&&o){let e=i(a,"afterModifyTree",e=>{if(t&&o){let h=t.attr("id");h||t.attr("id",h=l());let o={x:0,y:0};f(s.dx)&&(o.dx=s.dx,delete s.dx),f(s.dy)&&(o.dy=s.dy,delete s.dy),a.attr(o),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:c(s,{"text-anchor":s.textAnchor,href:`${r}#${h}`}),children:n}}});a.textPath={path:t,undo:e}}else a.attr({dx:0,dy:0}),delete a.textPath;return this.added&&(a.textCache="",this.renderer.buildText(a)),this}function u(t){let e=t.bBox,r=this.element?.querySelector("textPath");if(r){let t=[],{b:a,h}=this.renderer.fontMetrics(this.element),s=h-a,o=RegExp('(|]*>|<\\/tspan>)',"g"),i=r.innerHTML.replace(o,"").split(/]*>/),d=i.length,l=(t,e)=>{let{x:h,y:o}=e,i=(r.getRotationOfChar(t)-90)*n,d=Math.cos(i),l=Math.sin(i);return[[h-s*d,o-s*l],[h+a*d,o+a*l]]};for(let e=0,a=0;a(()=>{"use strict";var o={512:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={exports:{}};return o[e](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};i.d(s,{default:()=>v});var a=i(944),n=/*#__PURE__*/i.n(a);let p={Esri:class{constructor(){this.defaultCredits="Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012",this.initialProjectionName="WebMercator",this.themes={WorldStreetMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},DeLorme:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer/tile/{z}/{y}/{x}",minZoom:1,maxZoom:11,credits:"Tiles © Esri — Copyright: ©2012 DeLorme"},WorldTopoMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"},WorldImagery:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"},WorldTerrain:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS"},WorldShadedRelief:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: Esri"},WorldPhysical:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:8,credits:"Tiles © Esri — Source: US National Park Service"},NatGeoWorldMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"},WorldGrayCanvas:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ"}}}},LimaLabs:class{constructor(){this.defaultCredits='Map data ©2023 LimaLabs',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.themes={Standard:{url:"https://cdn.lima-labs.com/{zoom}/{x}/{y}.png?api={apikey}",minZoom:0,maxZoom:20}}}},OpenStreetMap:class{constructor(){this.defaultCredits='Map data ©2023 OpenStreetMap',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c"],this.themes={Standard:{url:"https://tile.openstreetmap.org/{zoom}/{x}/{y}.png",minZoom:0,maxZoom:19},Hot:{url:"https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",minZoom:0,maxZoom:19},OpenTopoMap:{url:"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",minZoom:0,maxZoom:17,credits:`Map data: © + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/tiledwebmap",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/tiledwebmap"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";var o={512:e=>{e.exports=t},944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={exports:{}};return o[e](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};i.d(s,{default:()=>v});var a=i(944),n=i.n(a);let p={Esri:class{constructor(){this.defaultCredits="Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012",this.initialProjectionName="WebMercator",this.themes={WorldStreetMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},DeLorme:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer/tile/{z}/{y}/{x}",minZoom:1,maxZoom:11,credits:"Tiles © Esri — Copyright: ©2012 DeLorme"},WorldTopoMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"},WorldImagery:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"},WorldTerrain:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS"},WorldShadedRelief:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: Esri"},WorldPhysical:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:8,credits:"Tiles © Esri — Source: US National Park Service"},NatGeoWorldMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"},WorldGrayCanvas:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ"}}}},LimaLabs:class{constructor(){this.defaultCredits='Map data ©2023 LimaLabs',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.themes={Standard:{url:"https://cdn.lima-labs.com/{zoom}/{x}/{y}.png?api={apikey}",minZoom:0,maxZoom:20}}}},OpenStreetMap:class{constructor(){this.defaultCredits='Map data ©2023 OpenStreetMap',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c"],this.themes={Standard:{url:"https://tile.openstreetmap.org/{zoom}/{x}/{y}.png",minZoom:0,maxZoom:19},Hot:{url:"https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",minZoom:0,maxZoom:19},OpenTopoMap:{url:"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",minZoom:0,maxZoom:17,credits:`Map data: © OpenStreetMap contributors, SRTM | Map style: © OpenTopoMap - (CC-BY-SA)`}}}},Stamen:class{constructor(){this.defaultCredits='© Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c","d"],this.themes={Toner:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerLite:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},Terrain:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},TerrainBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},Watercolor:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png",minZoom:1,maxZoom:16,credits:'© Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA'}}}},Thunderforest:class{constructor(){this.defaultCredits='Maps © Thunderforest, Data © OpenStreetMap contributors',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.subdomains=["a","b","c"],this.themes={OpenCycleMap:{url:"https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Transport:{url:"https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},TransportDark:{url:"https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},SpinalMap:{url:"https://{s}.tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Landscape:{url:"https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Outdoors:{url:"https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Pioneer:{url:"https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},MobileAtlas:{url:"https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Neighbourhood:{url:"https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22}}}},USGS:class{constructor(){this.defaultCredits='Tiles courtesy of the U.S. GeologicalSurvey',this.initialProjectionName="WebMercator",this.themes={USTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImagery:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImageryTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20}}}}};var l=i(512),m=/*#__PURE__*/i.n(l);let{composed:h}=n(),{map:c}=m().seriesTypes,{addEvent:d,defined:y,error:u,merge:g,pick:f,pushUnique:x}=n();function M(e){let{geoBounds:t,chart:o}=e,r=(o.options.series||[]).filter(e=>"tiledwebmap"===e.type)[0];if(r&&r.provider&&r.provider.type&&!r.provider.url){let e=p[r.provider.type];if(y(e)){let{initialProjectionName:o}=new e;if(t){let{x1:e,y1:r,x2:i,y2:s}=t;this.recommendedMapView={projection:{name:o,parallels:[r,s],rotation:[-(e+i)/2]}}}else this.recommendedMapView={projection:{name:o},minZoom:0};return!1}u("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}return!0}class S extends c{constructor(){super(...arguments),this.redrawTiles=!1,this.isAnimating=!1}static compose(e){x(h,"TiledWebMapSeries")&&d(e,"onRecommendMapView",M)}lonLatToTile(e,t){let{lon:o,lat:r}=e;return{x:Math.floor((o+180)/360*Math.pow(2,t)),y:Math.floor((1-Math.log(Math.tan(r*Math.PI/180)+1/Math.cos(r*Math.PI/180))/Math.PI)/2*Math.pow(2,t))}}tileToLonLat(e,t,o){let r=e/Math.pow(2,o)*360-180,i=Math.PI-2*Math.PI*t/Math.pow(2,o);return{lon:r,lat:180/Math.PI*Math.atan(.5*(Math.exp(i)-Math.exp(-i)))}}drawPoints(){let e=this.chart,t=e.mapView;if(!t)return;let o=this.tiles=this.tiles||{},r=this.transformGroups=this.transformGroups||[],i=this,s=this.options.provider,{zoom:a}=t,n=f(t.projection.options.rotation&&t.projection.options.rotation[0],0),l=e.renderer.forExport?0:200,m=e=>{for(let r of Object.keys(o))parseFloat(r)===(t.zoom<0?0:Math.floor(t.zoom))||i.minZoom&&(t.zoom<0?0:Math.floor(t.zoom))i.maxZoom&&parseFloat(r)===i.maxZoom?Object.keys(o[r].tiles).forEach((t,i)=>{o[r].tiles[t].animate({opacity:1},{duration:e},()=>{i===Object.keys(o[r].tiles).length-1&&(o[r].isActive=!0)})}):Object.keys(o[r].tiles).forEach((t,i)=>{o[r].tiles[t].animate({opacity:0},{duration:e,defer:e/2},()=>{o[r].tiles[t].destroy(),delete o[r].tiles[t],i===Object.keys(o[r].tiles).length-1&&(o[r].isActive=!1,o[r].loaded=!1)})})},h=a<0?0:Math.floor(a),c=Math.pow(2,h),d=.638436911716859*Math.pow(2,a)/(.638436911716859*Math.pow(2,h)),g=256*d;if(s&&(s.type||s.url)){if(s.type&&!s.url){let o=p[s.type];if(!y(o)){u("Highcharts warning: Tiles Provider '"+s.type+"' not defined in the ProviderRegistry.",!1);return}let r=new o,i=r.initialProjectionName,a,n="";if(s.theme&&y(r.themes[s.theme]))a=r.themes[s.theme];else{let e=Object.keys(r.themes)[0];a=r.themes[e],u("Highcharts warning: The Tiles Provider's Theme '"+s.theme+"' is not defined in the Provider definition - falling back to '"+e+"'.",!1)}s.subdomain&&r.subdomains&&-1!==r.subdomains.indexOf(s.subdomain)?n=s.subdomain:y(r.subdomains)&&-1!==a.url.indexOf("{s}")&&(n=f(r.subdomains&&r.subdomains[0],""),u("Highcharts warning: The Tiles Provider's Subdomain '"+s.subdomain+"' is not defined in the Provider definition - falling back to '"+n+"'.",!1)),r.requiresApiKey&&(s.apiKey?a.url=a.url.replace("{apikey}",s.apiKey):(u("Highcharts warning: The Tiles Provider requires API Key to use tiles, use provider.apiKey to provide a token.",!1),a.url=a.url.replace("?apikey={apikey}",""))),s.url=a.url.replace("{s}",n),this.minZoom=a.minZoom,this.maxZoom=a.maxZoom;let l=f(e.userOptions.credits&&e.userOptions.credits.text,"Highcharts.com "+f(a.credits,r.defaultCredits));e.credits?e.credits.update({text:l}):e.addCredits({text:l,style:f(e.options.credits?.style,{})}),t.projection.options.name!==i&&u("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1)}else t.projection.options.name||u("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1);if(y(this.minZoom)&&hthis.maxZoom&&(c=Math.pow(2,h=this.maxZoom),g=256*(d=.638436911716859*Math.pow(2,a)/(.638436911716859*Math.pow(2,h)))),t.projection&&t.projection.def){t.projection.hasCoordinates=!0,r[h]||(r[h]=e.renderer.g().add(this.group));let a=(e,t,o,r)=>e.replace("{x}",t.toString()).replace("{y}",o.toString()).replace("{zoom}",r.toString()).replace("{z}",r.toString()),p=(n,p,h,d,y)=>{let u=n%c,f=p%c,x=u<0?u+c:u,M=f<0?f+c:f;if(!o[`${h}`].tiles[`${n},${p}`]&&s.url){let c=a(s.url,x,M,h);o[h].loaded=!1,o[`${h}`].tiles[`${n},${p}`]=e.renderer.image(c,n*g-d,p*g-y,g,g).attr({zIndex:2,opacity:0}).on("load",function(){s.onload&&s.onload.apply(this),(h===(t.zoom<0?0:Math.floor(t.zoom))||h===i.minZoom)&&(o[`${h}`].actualTilesCount++,o[`${h}`].howManyTiles===o[`${h}`].actualTilesCount&&(o[h].loaded=!0,i.isAnimating?i.redrawTiles=!0:(i.redrawTiles=!1,m(l)),o[`${h}`].actualTilesCount=0))}).add(r[h]),o[`${h}`].tiles[`${n},${p}`].posX=n,o[`${h}`].tiles[`${n},${p}`].posY=p,o[`${h}`].tiles[`${n},${p}`].originalURL=c}},d=t.pixelsToProjectedUnits({x:0,y:0}),y=t.projection.def.inverse([d.x,d.y]),u={lon:y[0]-n,lat:y[1]},f=t.pixelsToProjectedUnits({x:e.plotWidth,y:e.plotHeight}),x=t.projection.def.inverse([f.x,f.y]),M={lon:x[0]-n,lat:x[1]};(u.lat>t.projection.maxLatitude||M.lat<-1*t.projection.maxLatitude)&&(u.lat=t.projection.maxLatitude,M.lat=-1*t.projection.maxLatitude);let S=this.lonLatToTile(u,h),T=this.lonLatToTile(M,h),v=this.tileToLonLat(S.x,S.y,h),Z=t.projection.def.forward([v.lon+n,v.lat]),b=t.projectedUnitsToPixels({x:Z[0],y:Z[1]}),w=S.x*g-b.x,j=S.y*g-b.y;o[`${h}`]||(o[`${h}`]={tiles:{},isActive:!1,howManyTiles:0,actualTilesCount:0,loaded:!1}),o[`${h}`].howManyTiles=(T.x-S.x+1)*(T.y-S.y+1),o[`${h}`].actualTilesCount=0;for(let e=S.x;e<=T.x;e++)for(let t=S.y;t<=T.y;t++)p(e,t,h,w,j)}for(let r of Object.keys(o))for(let s of Object.keys(o[r].tiles))if(t.projection&&t.projection.def){let p=256*(.638436911716859*Math.pow(2,a)/(.638436911716859*Math.pow(2,parseFloat(r)))),c=o[r].tiles[Object.keys(o[r].tiles)[0]],{posX:d,posY:u}=o[r].tiles[s];if(y(d)&&y(u)&&y(c.posX)&&y(c.posY)){let a=this.tileToLonLat(c.posX,c.posY,parseFloat(r)),y=t.projection.def.forward([a.lon+n,a.lat]),g=t.projectedUnitsToPixels({x:y[0],y:y[1]}),f=c.posX*p-g.x,x=c.posY*p-g.y;if(e.renderer.globalAnimation&&e.hasRendered){let e=Number(o[r].tiles[s].attr("x")),t=Number(o[r].tiles[s].attr("y")),a=Number(o[r].tiles[s].attr("width")),n=Number(o[r].tiles[s].attr("height")),h=(i,l)=>{o[r].tiles[s].attr({x:e+(d*p-f-e)*l.pos,y:t+(u*p-x-t)*l.pos,width:a+(Math.ceil(p)+1-a)*l.pos,height:n+(Math.ceil(p)+1-n)*l.pos})};i.isAnimating=!0,o[r].tiles[s].attr({animator:0}).animate({animator:1},{step:h},function(){i.isAnimating=!1,i.redrawTiles&&(i.redrawTiles=!1,m(l))})}else(i.redrawTiles||parseFloat(r)!==h||(o[r].isActive||parseFloat(r)===h)&&Object.keys(o[r].tiles).map(e=>o[r].tiles[e]).some(e=>0===e.opacity))&&(i.redrawTiles=!1,m(l)),o[r].tiles[s].attr({x:d*p-f,y:u*p-x,width:Math.ceil(p)+1,height:Math.ceil(p)+1})}}}else u("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}update(){let{transformGroups:e}=this,t=this.chart,o=t.mapView,r=arguments[0],{provider:i}=r;if(e&&(e.forEach(e=>{0!==Object.keys(e).length&&e.destroy()}),this.transformGroups=[]),o&&!y(t.userOptions.mapView?.projection)&&i&&i.type){let e=p[i.type];if(e){let{initialProjectionName:t}=new e;o.update({projection:{name:t}})}}super.update.apply(this,arguments)}}S.defaultOptions=g(c.defaultOptions,{states:{inactive:{enabled:!1}}}),m().registerSeriesType("tiledwebmap",S);let T=n();T.TilesProviderRegistry=T.TilesProviderRegistry||p,S.compose(T.MapView);let v=n();return s.default})()); \ No newline at end of file + (CC-BY-SA)`}}}},Stamen:class{constructor(){this.defaultCredits='© Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c","d"],this.themes={Toner:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerLite:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},Terrain:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},TerrainBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},Watercolor:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png",minZoom:1,maxZoom:16,credits:'© Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA'}}}},Thunderforest:class{constructor(){this.defaultCredits='Maps © Thunderforest, Data © OpenStreetMap contributors',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.subdomains=["a","b","c"],this.themes={OpenCycleMap:{url:"https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Transport:{url:"https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},TransportDark:{url:"https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},SpinalMap:{url:"https://{s}.tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Landscape:{url:"https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Outdoors:{url:"https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Pioneer:{url:"https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},MobileAtlas:{url:"https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Neighbourhood:{url:"https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22}}}},USGS:class{constructor(){this.defaultCredits='Tiles courtesy of the U.S. GeologicalSurvey',this.initialProjectionName="WebMercator",this.themes={USTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImagery:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImageryTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20}}}}};var l=i(512),m=i.n(l);let{composed:h}=n(),{map:c}=m().seriesTypes,{addEvent:d,defined:y,error:u,merge:g,pick:f,pushUnique:x}=n();function M(e){let{geoBounds:t,chart:o}=e,r=(o.options.series||[]).filter(e=>"tiledwebmap"===e.type)[0];if(r&&r.provider&&r.provider.type&&!r.provider.url){let e=p[r.provider.type];if(y(e)){let{initialProjectionName:o}=new e;if(t){let{x1:e,y1:r,x2:i,y2:s}=t;this.recommendedMapView={projection:{name:o,parallels:[r,s],rotation:[-(e+i)/2]}}}else this.recommendedMapView={projection:{name:o},minZoom:0};return!1}u("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}return!0}class S extends c{constructor(){super(...arguments),this.redrawTiles=!1,this.isAnimating=!1}static compose(e){x(h,"TiledWebMapSeries")&&d(e,"onRecommendMapView",M)}lonLatToTile(e,t){let{lon:o,lat:r}=e;return{x:Math.floor((o+180)/360*Math.pow(2,t)),y:Math.floor((1-Math.log(Math.tan(r*Math.PI/180)+1/Math.cos(r*Math.PI/180))/Math.PI)/2*Math.pow(2,t))}}tileToLonLat(e,t,o){let r=e/Math.pow(2,o)*360-180,i=Math.PI-2*Math.PI*t/Math.pow(2,o);return{lon:r,lat:180/Math.PI*Math.atan(.5*(Math.exp(i)-Math.exp(-i)))}}drawPoints(){let e=this.chart,t=e.mapView;if(!t)return;let o=this.tiles=this.tiles||{},r=this.transformGroups=this.transformGroups||[],i=this,s=this.options.provider,{zoom:a}=t,n=f(t.projection.options.rotation&&t.projection.options.rotation[0],0),l=e.renderer.forExport?0:200,m=e=>{for(let r of Object.keys(o))parseFloat(r)===(t.zoom<0?0:Math.floor(t.zoom))||i.minZoom&&(t.zoom<0?0:Math.floor(t.zoom))i.maxZoom&&parseFloat(r)===i.maxZoom?Object.keys(o[r].tiles).forEach((t,i)=>{o[r].tiles[t].animate({opacity:1},{duration:e},()=>{i===Object.keys(o[r].tiles).length-1&&(o[r].isActive=!0)})}):Object.keys(o[r].tiles).forEach((t,i)=>{o[r].tiles[t].animate({opacity:0},{duration:e,defer:e/2},()=>{o[r].tiles[t].destroy(),delete o[r].tiles[t],i===Object.keys(o[r].tiles).length-1&&(o[r].isActive=!1,o[r].loaded=!1)})})},h=a<0?0:Math.floor(a),c=Math.pow(2,h),d=.638436911716859*Math.pow(2,a)/(.638436911716859*Math.pow(2,h)),g=256*d;if(s&&(s.type||s.url)){if(s.type&&!s.url){let o=p[s.type];if(!y(o)){u("Highcharts warning: Tiles Provider '"+s.type+"' not defined in the ProviderRegistry.",!1);return}let r=new o,i=r.initialProjectionName,a,n="";if(s.theme&&y(r.themes[s.theme]))a=r.themes[s.theme];else{let e=Object.keys(r.themes)[0];a=r.themes[e],u("Highcharts warning: The Tiles Provider's Theme '"+s.theme+"' is not defined in the Provider definition - falling back to '"+e+"'.",!1)}s.subdomain&&r.subdomains&&-1!==r.subdomains.indexOf(s.subdomain)?n=s.subdomain:y(r.subdomains)&&-1!==a.url.indexOf("{s}")&&(n=f(r.subdomains&&r.subdomains[0],""),u("Highcharts warning: The Tiles Provider's Subdomain '"+s.subdomain+"' is not defined in the Provider definition - falling back to '"+n+"'.",!1)),r.requiresApiKey&&(s.apiKey?a.url=a.url.replace("{apikey}",s.apiKey):(u("Highcharts warning: The Tiles Provider requires API Key to use tiles, use provider.apiKey to provide a token.",!1),a.url=a.url.replace("?apikey={apikey}",""))),s.url=a.url.replace("{s}",n),this.minZoom=a.minZoom,this.maxZoom=a.maxZoom;let l=f(e.userOptions.credits&&e.userOptions.credits.text,"Highcharts.com "+f(a.credits,r.defaultCredits));e.credits?e.credits.update({text:l}):e.addCredits({text:l,style:f(e.options.credits?.style,{})}),t.projection.options.name!==i&&u("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1)}else t.projection.options.name||u("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1);if(y(this.minZoom)&&hthis.maxZoom&&(c=Math.pow(2,h=this.maxZoom),g=256*(d=.638436911716859*Math.pow(2,a)/(.638436911716859*Math.pow(2,h)))),t.projection&&t.projection.def){t.projection.hasCoordinates=!0,r[h]||(r[h]=e.renderer.g().add(this.group));let a=(e,t,o,r)=>e.replace("{x}",t.toString()).replace("{y}",o.toString()).replace("{zoom}",r.toString()).replace("{z}",r.toString()),p=(n,p,h,d,y)=>{let u=n%c,f=p%c,x=u<0?u+c:u,M=f<0?f+c:f;if(!o[`${h}`].tiles[`${n},${p}`]&&s.url){let c=a(s.url,x,M,h);o[h].loaded=!1,o[`${h}`].tiles[`${n},${p}`]=e.renderer.image(c,n*g-d,p*g-y,g,g).attr({zIndex:2,opacity:0}).on("load",function(){s.onload&&s.onload.apply(this),(h===(t.zoom<0?0:Math.floor(t.zoom))||h===i.minZoom)&&(o[`${h}`].actualTilesCount++,o[`${h}`].howManyTiles===o[`${h}`].actualTilesCount&&(o[h].loaded=!0,i.isAnimating?i.redrawTiles=!0:(i.redrawTiles=!1,m(l)),o[`${h}`].actualTilesCount=0))}).add(r[h]),o[`${h}`].tiles[`${n},${p}`].posX=n,o[`${h}`].tiles[`${n},${p}`].posY=p,o[`${h}`].tiles[`${n},${p}`].originalURL=c}},d=t.pixelsToProjectedUnits({x:0,y:0}),y=t.projection.def.inverse([d.x,d.y]),u={lon:y[0]-n,lat:y[1]},f=t.pixelsToProjectedUnits({x:e.plotWidth,y:e.plotHeight}),x=t.projection.def.inverse([f.x,f.y]),M={lon:x[0]-n,lat:x[1]};(u.lat>t.projection.maxLatitude||M.lat<-1*t.projection.maxLatitude)&&(u.lat=t.projection.maxLatitude,M.lat=-1*t.projection.maxLatitude);let S=this.lonLatToTile(u,h),T=this.lonLatToTile(M,h),v=this.tileToLonLat(S.x,S.y,h),Z=t.projection.def.forward([v.lon+n,v.lat]),b=t.projectedUnitsToPixels({x:Z[0],y:Z[1]}),w=S.x*g-b.x,j=S.y*g-b.y;o[`${h}`]||(o[`${h}`]={tiles:{},isActive:!1,howManyTiles:0,actualTilesCount:0,loaded:!1}),o[`${h}`].howManyTiles=(T.x-S.x+1)*(T.y-S.y+1),o[`${h}`].actualTilesCount=0;for(let e=S.x;e<=T.x;e++)for(let t=S.y;t<=T.y;t++)p(e,t,h,w,j)}for(let r of Object.keys(o))for(let s of Object.keys(o[r].tiles))if(t.projection&&t.projection.def){let p=256*(.638436911716859*Math.pow(2,a)/(.638436911716859*Math.pow(2,parseFloat(r)))),c=o[r].tiles[Object.keys(o[r].tiles)[0]],{posX:d,posY:u}=o[r].tiles[s];if(y(d)&&y(u)&&y(c.posX)&&y(c.posY)){let a=this.tileToLonLat(c.posX,c.posY,parseFloat(r)),y=t.projection.def.forward([a.lon+n,a.lat]),g=t.projectedUnitsToPixels({x:y[0],y:y[1]}),f=c.posX*p-g.x,x=c.posY*p-g.y;if(e.renderer.globalAnimation&&e.hasRendered){let e=Number(o[r].tiles[s].attr("x")),t=Number(o[r].tiles[s].attr("y")),a=Number(o[r].tiles[s].attr("width")),n=Number(o[r].tiles[s].attr("height")),h=(i,l)=>{o[r].tiles[s].attr({x:e+(d*p-f-e)*l.pos,y:t+(u*p-x-t)*l.pos,width:a+(Math.ceil(p)+1-a)*l.pos,height:n+(Math.ceil(p)+1-n)*l.pos})};i.isAnimating=!0,o[r].tiles[s].attr({animator:0}).animate({animator:1},{step:h},function(){i.isAnimating=!1,i.redrawTiles&&(i.redrawTiles=!1,m(l))})}else(i.redrawTiles||parseFloat(r)!==h||(o[r].isActive||parseFloat(r)===h)&&Object.keys(o[r].tiles).map(e=>o[r].tiles[e]).some(e=>0===e.opacity))&&(i.redrawTiles=!1,m(l)),o[r].tiles[s].attr({x:d*p-f,y:u*p-x,width:Math.ceil(p)+1,height:Math.ceil(p)+1})}}}else u("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}update(){let{transformGroups:e}=this,t=this.chart,o=t.mapView,r=arguments[0],{provider:i}=r;if(e&&(e.forEach(e=>{0!==Object.keys(e).length&&e.destroy()}),this.transformGroups=[]),o&&!y(t.userOptions.mapView?.projection)&&i&&i.type){let e=p[i.type];if(e){let{initialProjectionName:t}=new e;o.update({projection:{name:t}})}}super.update.apply(this,arguments)}}S.defaultOptions=g(c.defaultOptions,{states:{inactive:{enabled:!1}}}),m().registerSeriesType("tiledwebmap",S);let T=n();T.TilesProviderRegistry=T.TilesProviderRegistry||p,S.compose(T.MapView);let v=n();return s.default})()); \ No newline at end of file diff --git a/modules/tiledwebmap.src.js b/modules/tiledwebmap.src.js index e1bc0a9f6f..9711665c8c 100644 --- a/modules/tiledwebmap.src.js +++ b/modules/tiledwebmap.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/tiledwebmap * @requires highcharts * diff --git a/modules/tilemap.js b/modules/tilemap.js index 6ffd0be5d5..b9e8a3c391 100644 --- a/modules/tilemap.js +++ b/modules/tilemap.js @@ -1,5 +1,5 @@ !/** - * Highmaps JS v12.0.2 (2024-12-04) + * Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/modules/tilemap * @requires highcharts * @requires highcharts/modules/map @@ -9,4 +9,4 @@ * (c) 2010-2024 Highsoft AS * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/tilemap",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Color)}):"object"==typeof exports?exports["highcharts/modules/tilemap"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s,o={620:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function r(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return o[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};r.d(n,{default:()=>U});var l=r(944),h=/*#__PURE__*/r.n(l),p=r(512),d=/*#__PURE__*/r.n(p),c=r(620);let{parse:u}=/*#__PURE__*/r.n(c)(),{addEvent:g,extend:x,merge:f,pick:y,splat:m}=h();!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=m(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,a;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))}))}),a=s.length;a--;)t.allItems.unshift(s[a])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function a(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function r(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function l(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let a=e.getNestedProperty(o),r=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==a?s.toColor(a,e):e.color||t.color);r&&e.color!==r&&(e.color=r,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function p(){this.elem.attr("fill",u(this.start).tweenTo(u(this.end),this.pos),void 0,!0)}function d(){this.elem.attr("stroke",u(this.start).tweenTo(u(this.end),this.pos),void 0,!0)}t.compose=function(t,c,u,m,b){let A=c.prototype,P=u.prototype,M=b.prototype;A.collectionsWithUpdate.includes("colorAxis")||(e=t,A.collectionsWithUpdate.push("colorAxis"),A.collectionsWithInit.colorAxis=[A.addColorAxis],g(c,"afterCreateAxes",i),function(t){let i=t.prototype.createAxis;t.prototype.createAxis=function(t,s){if("colorAxis"!==t)return i.apply(this,arguments);let o=new e(this,f(s.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),y(s.redraw,!0)&&this.redraw(s.animation),o}}(c),P.fillSetter=p,P.strokeSetter=d,g(m,"afterGetAllItems",s),g(m,"afterColorizeItem",o),g(m,"afterUpdate",a),x(M,{optionalAxis:"colorAxis",translateColors:h}),x(M.pointClass.prototype,{setVisible:l}),g(b,"afterTranslate",r,{order:1}),g(b,"bindAxes",n))},t.pointSetVisible=l}(s||(s={}));let b=s,{series:{prototype:{pointClass:A}},seriesTypes:{heatmap:{prototype:{pointClass:P}}}}=d(),{extend:M}=h();class L extends P{haloPath(){return this.series.tileShape.haloPath.apply(this,arguments)}}M(L.prototype,{setState:A.prototype.setState,setVisible:b.pointSetVisible});let{noop:v}=h(),{heatmap:S,scatter:C}=d().seriesTypes,{clamp:w,pick:T}=h();function D(t,e,i){let s=t.options;return{xPad:-((s.colsize||1)/e),yPad:-((s.rowsize||1)/i)}}let I={hexagon:{alignDataLabel:C.prototype.alignDataLabel,getSeriesPadding:function(t){return D(t,3,2)},haloPath:function(t){if(!t)return[];let e=this.tileEdges;return[["M",e.x2-t,e.y1+t],["L",e.x3+t,e.y1+t],["L",e.x4+1.5*t,e.y2],["L",e.x3+t,e.y3-t],["L",e.x2-t,e.y3-t],["L",e.x1-1.5*t,e.y2],["Z"]]},translate:function(){let t;let e=this.options,i=this.xAxis,s=this.yAxis,o=e.pointPadding||0,a=(e.colsize||1)/3,r=(e.rowsize||1)/2;for(let e of(this.generatePoints(),this.points)){let n=w(Math.floor(i.len-i.translate(e.x-2*a,0,1,0,1)),-i.len,2*i.len),l=w(Math.floor(i.len-i.translate(e.x-a,0,1,0,1)),-i.len,2*i.len),h=w(Math.floor(i.len-i.translate(e.x+a,0,1,0,1)),-i.len,2*i.len),p=w(Math.floor(i.len-i.translate(e.x+2*a,0,1,0,1)),-i.len,2*i.len),d=w(Math.floor(s.translate(e.y-r,0,1,0,1)),-s.len,2*s.len),c=w(Math.floor(s.translate(e.y,0,1,0,1)),-s.len,2*s.len),u=w(Math.floor(s.translate(e.y+r,0,1,0,1)),-s.len,2*s.len),g=e.pointPadding??o,x=g*Math.abs(l-n)/Math.abs(u-c),f=i.reversed?-x:x,y=i.reversed?-g:g,m=s.reversed?-g:g;e.x%2&&(t=t||Math.round(Math.abs(u-d)/2)*(s.reversed?-1:1),d+=t,c+=t,u+=t),e.plotX=e.clientX=(l+h)/2,e.plotY=c,n+=f+y,l+=y,h-=y,p-=f+y,d-=m,u+=m,e.tileEdges={x1:n,x2:l,x3:h,x4:p,y1:d,y2:c,y3:u},e.shapeType="path",e.shapeArgs={d:[["M",l,d],["L",h,d],["L",p,c],["L",h,u],["L",l,u],["L",n,c],["Z"]]}}this.translateColors()}},diamond:{alignDataLabel:C.prototype.alignDataLabel,getSeriesPadding:function(t){return D(t,2,2)},haloPath:function(t){if(!t)return[];let e=this.tileEdges;return[["M",e.x2,e.y1+t],["L",e.x3+t,e.y2],["L",e.x2,e.y3-t],["L",e.x1-t,e.y2],["Z"]]},translate:function(){let t;let e=this.options,i=this.xAxis,s=this.yAxis,o=e.pointPadding||0,a=e.colsize||1,r=(e.rowsize||1)/2;for(let e of(this.generatePoints(),this.points)){let n=w(Math.round(i.len-i.translate(e.x-a,0,1,0,0)),-i.len,2*i.len),l=w(Math.round(i.len-i.translate(e.x+a,0,1,0,0)),-i.len,2*i.len),h=w(Math.round(s.translate(e.y-r,0,1,0,0)),-s.len,2*s.len),p=w(Math.round(s.translate(e.y,0,1,0,0)),-s.len,2*s.len),d=w(Math.round(s.translate(e.y+r,0,1,0,0)),-s.len,2*s.len),c=w(Math.round(i.len-i.translate(e.x,0,1,0,0)),-i.len,2*i.len),u=T(e.pointPadding,o),g=u*Math.abs(c-n)/Math.abs(d-p),x=i.reversed?-g:g,f=s.reversed?-u:u;e.x%2&&(t=Math.abs(d-h)/2*(s.reversed?-1:1),h+=t,p+=t,d+=t),e.plotX=e.clientX=c,e.plotY=p,n+=x,l-=x,h-=f,d+=f,e.tileEdges={x1:n,x2:c,x3:l,y1:h,y2:p,y3:d},e.shapeType="path",e.shapeArgs={d:[["M",c,h],["L",l,p],["L",c,d],["L",n,p],["Z"]]}}this.translateColors()}},circle:{alignDataLabel:C.prototype.alignDataLabel,getSeriesPadding:function(t){return D(t,2,2)},haloPath:function(t){return C.prototype.pointClass.prototype.haloPath.call(this,t+(t&&this.radius))},translate:function(){let t=this.options,e=this.xAxis,i=this.yAxis,s=t.pointPadding||0,o=(t.rowsize||1)/2,a=t.colsize||1,r,n,l,h,p=!1;for(let t of(this.generatePoints(),this.points)){let d=w(Math.round(e.len-e.translate(t.x,0,1,0,0)),-e.len,2*e.len),c=s,u=!1,g=w(Math.round(i.translate(t.y,0,1,0,0)),-i.len,2*i.len);void 0!==t.pointPadding&&(c=t.pointPadding,u=!0,p=!0),(!h||p)&&(l=Math.floor(Math.sqrt((r=Math.abs(w(Math.floor(e.len-e.translate(t.x+a,0,1,0,0)),-e.len,2*e.len)-d))*r+(n=Math.abs(w(Math.floor(i.translate(t.y+o,0,1,0,0)),-i.len,2*i.len)-g))*n)/2),h=Math.min(r,l,n)-c,p&&!u&&(p=!1)),t.x%2&&(g+=n*(i.reversed?-1:1)),t.plotX=t.clientX=d,t.plotY=g,t.radius=h,t.shapeType="circle",t.shapeArgs={x:d,y:g,r:h}}this.translateColors()}},square:{alignDataLabel:S.prototype.alignDataLabel,translate:S.prototype.translate,getSeriesPadding:v,haloPath:S.prototype.pointClass.prototype.haloPath}},{composed:E,noop:z}=h(),{column:H,heatmap:O,scatter:X}=d().seriesTypes,{addEvent:_,extend:F,merge:k,pushUnique:j}=h();function R(){if(this.recomputingForTilemap||"colorAxis"===this.coll)return;let t=this,e=t.series.map(function(e){return e.getSeriesPixelPadding&&e.getSeriesPixelPadding(t)}).reduce(function(t,e){return(t&&t.padding)>(e&&e.padding)?t:e},void 0)||{padding:0,axisLengthFactor:1},i=Math.round(e.padding*e.axisLengthFactor);e.padding&&(t.len-=i,t.recomputingForTilemap=!0,t.setAxisTranslation(),delete t.recomputingForTilemap,t.minPixelPadding+=e.padding,t.len+=i)}class V extends O{static compose(t){j(E,"TilemapSeries")&&_(t,"afterSetAxisTranslation",R)}alignDataLabel(){return this.tileShape.alignDataLabel.apply(this,arguments)}drawPoints(){for(let t of(H.prototype.drawPoints.call(this),this.points))t.graphic&&t.graphic[this.chart.styledMode?"css":"animate"](this.colorAttribs(t))}getSeriesPixelPadding(t){let e=t.isXAxis,i=this.tileShape.getSeriesPadding(this);if(!i)return{padding:0,axisLengthFactor:1};let s=Math.round(t.translate(e?2*i.xPad:i.yPad,0,1,0,1)),o=Math.round(t.translate(e?i.xPad:0,0,1,0,1));return{padding:(t.single?Math.abs(s-o)/2:Math.abs(s-o))||0,axisLengthFactor:e?2:1.1}}setOptions(){let t=super.setOptions.apply(this,arguments);return this.tileShape=I[t.tileShape],t}translate(){return this.tileShape.translate.apply(this,arguments)}}V.defaultOptions=k(O.defaultOptions,{marker:null,states:{hover:{halo:{enabled:!0,size:2,opacity:.5,attributes:{zIndex:3}}}},pointPadding:2,tileShape:"hexagon"}),F(V.prototype,{getSymbol:z,markerAttribs:X.prototype.markerAttribs,pointAttribs:H.prototype.pointAttribs,pointClass:L}),d().registerSeriesType("tilemap",V);let Z=h();V.compose(Z.Axis);let U=h();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/tilemap",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Color)}):"object"==typeof exports?exports["highcharts/modules/tilemap"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s,o={620:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function r(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return o[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};r.d(n,{default:()=>U});var l=r(944),h=r.n(l),p=r(512),d=r.n(p),c=r(620);let{parse:u}=r.n(c)(),{addEvent:g,extend:x,merge:f,pick:y,splat:m}=h();!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=m(t.colorAxis),t.colorAxis.map(t=>new e(this,t)))}function s(t){let e=this.chart.colorAxis||[],i=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},s=[],o,a;for(e.forEach(function(t){(o=t.options)&&o.showInLegend&&(o.dataClasses&&o.visible?s=s.concat(t.getDataClassLegendSymbols()):o.visible&&s.push(t),t.series.forEach(function(t){(!t.options.showInLegend||o.dataClasses)&&("point"===t.options.legendType?t.points.forEach(function(t){i(t)}):i(t))}))}),a=s.length;a--;)t.allItems.unshift(s[a])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function a(t){this.chart.colorAxis?.forEach(e=>{e.update({},t.redraw)})}function r(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function n(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function l(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach(function(t){e[t]&&e[t][i]()}),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach(e=>{let a=e.getNestedProperty(o),r=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==a?s.toColor(a,e):e.color||t.color);r&&e.color!==r&&(e.color=r,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))})}function p(){this.elem.attr("fill",u(this.start).tweenTo(u(this.end),this.pos),void 0,!0)}function d(){this.elem.attr("stroke",u(this.start).tweenTo(u(this.end),this.pos),void 0,!0)}t.compose=function(t,c,u,m,b){let A=c.prototype,P=u.prototype,M=b.prototype;A.collectionsWithUpdate.includes("colorAxis")||(e=t,A.collectionsWithUpdate.push("colorAxis"),A.collectionsWithInit.colorAxis=[A.addColorAxis],g(c,"afterCreateAxes",i),function(t){let i=t.prototype.createAxis;t.prototype.createAxis=function(t,s){if("colorAxis"!==t)return i.apply(this,arguments);let o=new e(this,f(s.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(t=>{t.series=[]}),this.series.forEach(t=>{t.bindAxes(),t.isDirtyData=!0}),y(s.redraw,!0)&&this.redraw(s.animation),o}}(c),P.fillSetter=p,P.strokeSetter=d,g(m,"afterGetAllItems",s),g(m,"afterColorizeItem",o),g(m,"afterUpdate",a),x(M,{optionalAxis:"colorAxis",translateColors:h}),x(M.pointClass.prototype,{setVisible:l}),g(b,"afterTranslate",r,{order:1}),g(b,"bindAxes",n))},t.pointSetVisible=l}(s||(s={}));let b=s,{series:{prototype:{pointClass:A}},seriesTypes:{heatmap:{prototype:{pointClass:P}}}}=d(),{extend:M}=h();class L extends P{haloPath(){return this.series.tileShape.haloPath.apply(this,arguments)}}M(L.prototype,{setState:A.prototype.setState,setVisible:b.pointSetVisible});let{noop:v}=h(),{heatmap:S,scatter:C}=d().seriesTypes,{clamp:w,pick:T}=h();function D(t,e,i){let s=t.options;return{xPad:-((s.colsize||1)/e),yPad:-((s.rowsize||1)/i)}}let I={hexagon:{alignDataLabel:C.prototype.alignDataLabel,getSeriesPadding:function(t){return D(t,3,2)},haloPath:function(t){if(!t)return[];let e=this.tileEdges;return[["M",e.x2-t,e.y1+t],["L",e.x3+t,e.y1+t],["L",e.x4+1.5*t,e.y2],["L",e.x3+t,e.y3-t],["L",e.x2-t,e.y3-t],["L",e.x1-1.5*t,e.y2],["Z"]]},translate:function(){let t;let e=this.options,i=this.xAxis,s=this.yAxis,o=e.pointPadding||0,a=(e.colsize||1)/3,r=(e.rowsize||1)/2;for(let e of(this.generatePoints(),this.points)){let n=w(Math.floor(i.len-i.translate(e.x-2*a,0,1,0,1)),-i.len,2*i.len),l=w(Math.floor(i.len-i.translate(e.x-a,0,1,0,1)),-i.len,2*i.len),h=w(Math.floor(i.len-i.translate(e.x+a,0,1,0,1)),-i.len,2*i.len),p=w(Math.floor(i.len-i.translate(e.x+2*a,0,1,0,1)),-i.len,2*i.len),d=w(Math.floor(s.translate(e.y-r,0,1,0,1)),-s.len,2*s.len),c=w(Math.floor(s.translate(e.y,0,1,0,1)),-s.len,2*s.len),u=w(Math.floor(s.translate(e.y+r,0,1,0,1)),-s.len,2*s.len),g=e.pointPadding??o,x=g*Math.abs(l-n)/Math.abs(u-c),f=i.reversed?-x:x,y=i.reversed?-g:g,m=s.reversed?-g:g;e.x%2&&(t=t||Math.round(Math.abs(u-d)/2)*(s.reversed?-1:1),d+=t,c+=t,u+=t),e.plotX=e.clientX=(l+h)/2,e.plotY=c,n+=f+y,l+=y,h-=y,p-=f+y,d-=m,u+=m,e.tileEdges={x1:n,x2:l,x3:h,x4:p,y1:d,y2:c,y3:u},e.shapeType="path",e.shapeArgs={d:[["M",l,d],["L",h,d],["L",p,c],["L",h,u],["L",l,u],["L",n,c],["Z"]]}}this.translateColors()}},diamond:{alignDataLabel:C.prototype.alignDataLabel,getSeriesPadding:function(t){return D(t,2,2)},haloPath:function(t){if(!t)return[];let e=this.tileEdges;return[["M",e.x2,e.y1+t],["L",e.x3+t,e.y2],["L",e.x2,e.y3-t],["L",e.x1-t,e.y2],["Z"]]},translate:function(){let t;let e=this.options,i=this.xAxis,s=this.yAxis,o=e.pointPadding||0,a=e.colsize||1,r=(e.rowsize||1)/2;for(let e of(this.generatePoints(),this.points)){let n=w(Math.round(i.len-i.translate(e.x-a,0,1,0,0)),-i.len,2*i.len),l=w(Math.round(i.len-i.translate(e.x+a,0,1,0,0)),-i.len,2*i.len),h=w(Math.round(s.translate(e.y-r,0,1,0,0)),-s.len,2*s.len),p=w(Math.round(s.translate(e.y,0,1,0,0)),-s.len,2*s.len),d=w(Math.round(s.translate(e.y+r,0,1,0,0)),-s.len,2*s.len),c=w(Math.round(i.len-i.translate(e.x,0,1,0,0)),-i.len,2*i.len),u=T(e.pointPadding,o),g=u*Math.abs(c-n)/Math.abs(d-p),x=i.reversed?-g:g,f=s.reversed?-u:u;e.x%2&&(t=Math.abs(d-h)/2*(s.reversed?-1:1),h+=t,p+=t,d+=t),e.plotX=e.clientX=c,e.plotY=p,n+=x,l-=x,h-=f,d+=f,e.tileEdges={x1:n,x2:c,x3:l,y1:h,y2:p,y3:d},e.shapeType="path",e.shapeArgs={d:[["M",c,h],["L",l,p],["L",c,d],["L",n,p],["Z"]]}}this.translateColors()}},circle:{alignDataLabel:C.prototype.alignDataLabel,getSeriesPadding:function(t){return D(t,2,2)},haloPath:function(t){return C.prototype.pointClass.prototype.haloPath.call(this,t+(t&&this.radius))},translate:function(){let t=this.options,e=this.xAxis,i=this.yAxis,s=t.pointPadding||0,o=(t.rowsize||1)/2,a=t.colsize||1,r,n,l,h,p=!1;for(let t of(this.generatePoints(),this.points)){let d=w(Math.round(e.len-e.translate(t.x,0,1,0,0)),-e.len,2*e.len),c=s,u=!1,g=w(Math.round(i.translate(t.y,0,1,0,0)),-i.len,2*i.len);void 0!==t.pointPadding&&(c=t.pointPadding,u=!0,p=!0),(!h||p)&&(l=Math.floor(Math.sqrt((r=Math.abs(w(Math.floor(e.len-e.translate(t.x+a,0,1,0,0)),-e.len,2*e.len)-d))*r+(n=Math.abs(w(Math.floor(i.translate(t.y+o,0,1,0,0)),-i.len,2*i.len)-g))*n)/2),h=Math.min(r,l,n)-c,p&&!u&&(p=!1)),t.x%2&&(g+=n*(i.reversed?-1:1)),t.plotX=t.clientX=d,t.plotY=g,t.radius=h,t.shapeType="circle",t.shapeArgs={x:d,y:g,r:h}}this.translateColors()}},square:{alignDataLabel:S.prototype.alignDataLabel,translate:S.prototype.translate,getSeriesPadding:v,haloPath:S.prototype.pointClass.prototype.haloPath}},{composed:E,noop:z}=h(),{column:H,heatmap:O,scatter:X}=d().seriesTypes,{addEvent:_,extend:F,merge:k,pushUnique:j}=h();function R(){if(this.recomputingForTilemap||"colorAxis"===this.coll)return;let t=this,e=t.series.map(function(e){return e.getSeriesPixelPadding&&e.getSeriesPixelPadding(t)}).reduce(function(t,e){return(t&&t.padding)>(e&&e.padding)?t:e},void 0)||{padding:0,axisLengthFactor:1},i=Math.round(e.padding*e.axisLengthFactor);e.padding&&(t.len-=i,t.recomputingForTilemap=!0,t.setAxisTranslation(),delete t.recomputingForTilemap,t.minPixelPadding+=e.padding,t.len+=i)}class V extends O{static compose(t){j(E,"TilemapSeries")&&_(t,"afterSetAxisTranslation",R)}alignDataLabel(){return this.tileShape.alignDataLabel.apply(this,arguments)}drawPoints(){for(let t of(H.prototype.drawPoints.call(this),this.points))t.graphic&&t.graphic[this.chart.styledMode?"css":"animate"](this.colorAttribs(t))}getSeriesPixelPadding(t){let e=t.isXAxis,i=this.tileShape.getSeriesPadding(this);if(!i)return{padding:0,axisLengthFactor:1};let s=Math.round(t.translate(e?2*i.xPad:i.yPad,0,1,0,1)),o=Math.round(t.translate(e?i.xPad:0,0,1,0,1));return{padding:(t.single?Math.abs(s-o)/2:Math.abs(s-o))||0,axisLengthFactor:e?2:1.1}}setOptions(){let t=super.setOptions.apply(this,arguments);return this.tileShape=I[t.tileShape],t}translate(){return this.tileShape.translate.apply(this,arguments)}}V.defaultOptions=k(O.defaultOptions,{marker:null,states:{hover:{halo:{enabled:!0,size:2,opacity:.5,attributes:{zIndex:3}}}},pointPadding:2,tileShape:"hexagon"}),F(V.prototype,{getSymbol:z,markerAttribs:X.prototype.markerAttribs,pointAttribs:H.prototype.pointAttribs,pointClass:L}),d().registerSeriesType("tilemap",V);let Z=h();V.compose(Z.Axis);let U=h();return n.default})()); \ No newline at end of file diff --git a/modules/tilemap.src.js b/modules/tilemap.src.js index 778c93afe2..7f471e17e5 100644 --- a/modules/tilemap.src.js +++ b/modules/tilemap.src.js @@ -1,5 +1,5 @@ /** - * @license Highmaps JS v12.0.2 (2024-12-04) + * @license Highmaps JS v12.1.0 (2024-12-17) * @module highcharts/modules/tilemap * @requires highcharts * @requires highcharts/modules/map diff --git a/modules/timeline.js b/modules/timeline.js index c0d01c7f91..2db99b6de7 100644 --- a/modules/timeline.js +++ b/modules/timeline.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/timeline * @requires highcharts * @@ -9,4 +9,4 @@ * Author: Daniel Studencki * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point):"function"==typeof define&&define.amd?define("highcharts/modules/timeline",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Point)}):"object"==typeof exports?exports["highcharts/modules/timeline"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Point)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s={260:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return s[t](i,i.exports,o),i.exports}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,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};o.d(n,{default:()=>D});var a=o(944),l=/*#__PURE__*/o.n(a),h=o(512),p=/*#__PURE__*/o.n(h),d=o(260),c=/*#__PURE__*/o.n(d);let{line:{prototype:{pointClass:y}},pie:{prototype:{pointClass:u}}}=p().seriesTypes,{defined:g,isNumber:x,merge:b,objectEach:f,pick:m}=l(),w=class extends y{alignConnector(){let t=this.series,e=this.dataLabel,i=e.connector,s=e.options||{},r=s.connectorWidth||0,o=this.series.chart,n=i.getBBox(),a={x:n.x+(e.translateX||0),y:n.y+(e.translateY||0)};o.inverted?a.y-=r/2:a.x+=r/2,i[o.isInsidePlot(a.x,a.y)?"animate":"attr"]({d:this.getConnectorPath()}),i.addClass("highcharts-color-"+this.colorIndex),t.chart.styledMode||i.attr({stroke:s.connectorColor||this.color,"stroke-width":s.connectorWidth,opacity:e[g(e.newOpacity)?"newOpacity":"opacity"]})}drawConnector(){let{dataLabel:t,series:e}=this;t&&(t.connector||(t.connector=e.chart.renderer.path(this.getConnectorPath()).attr({zIndex:-1}).add(t)),this.series.chart.isInsidePlot(t.x||0,t.y||0)&&this.alignConnector())}getConnectorPath(){let{plotX:t=0,plotY:e=0,series:i,dataLabel:s}=this,r=i.chart,o=i.xAxis.len,n=r.inverted,a=n?"x2":"y2";if(s){let l=s.targetPosition,h=(s.alignAttr||s)[a[0]]{p[e]-=(s.alignAttr||s)[e[0]]}),r.renderer.crispLine([["M",p.x1,p.y1],["L",p.x2,p.y2]],s.options?.connectorWidth||0)}return[]}constructor(t,e){super(t,e),this.name??(this.name="Event"),this.y=1}isValid(){return null!==this.options.y}setState(){let t=super.setState;this.isNull||t.apply(this,arguments)}setVisible(t,e){let i=this.series;e=m(e,i.options.ignoreHiddenPoint),u.prototype.setVisible.call(this,t,!1),i.processData(),e&&i.chart.redraw()}applyOptions(t,e){return t=c().prototype.optionsToObject.call(this,t),this.userDLOptions=b(this.userDLOptions,t.dataLabels),super.applyOptions(t,e)}},{column:v,line:P}=p().seriesTypes,{addEvent:L,arrayMax:O,arrayMin:C,defined:A,extend:k,merge:M,pick:T}=l();class H extends P{alignDataLabel(t,e,i,s){let r,o,n;let a=this.chart.inverted,l=this.visibilityMap.filter(t=>!!t),h=this.visiblePointsCount||0,p=l.indexOf(t),d=this.options.dataLabels,c=t.userDLOptions||{},y=d.alternate?p&&p!==h-1?2:1.5:1,u=Math.floor(this.xAxis.len/h),g=e.padding;t.visible&&(r=Math.abs(c.x||t.options.dataLabels.x),a?(o=(r-g)*2-(t.itemHeight||0)/2,n={width:T(d.style?.width,`${.4*this.yAxis.len}px`),textOverflow:(e.width||0)/o*(e.height||0)/2>u*y?"ellipsis":"none"}):n={width:(c.width||d.width||u*y-2*g)+"px"},e.css(n),this.chart.styledMode||e.shadow(d.shadow)),super.alignDataLabel.apply(this,arguments)}bindAxes(){super.bindAxes(),this.xAxis.userOptions.type||(this.xAxis.categories=this.xAxis.hasNames=!0)}distributeDL(){let t=this.options.dataLabels,e=this.chart.inverted,i=1;if(t){let s=T(t.distance,e?20:100);for(let r of this.points){let o={[e?"x":"y"]:t.alternate&&i%2?-s:s};e&&(o.align=t.alternate&&i%2?"right":"left"),r.options.dataLabels=M(o,r.userDLOptions),i++}}}generatePoints(){super.generatePoints();let t=this.points,e=this.getColumn("x");for(let i=0,s=t.length;i!!t&&!1!==t.visible&&!t.isNull&&t)}getXExtremes(t){let e=this,i=t.filter((t,i)=>e.points[i].isValid()&&e.points[i].visible);return{min:C(i),max:O(i)}}init(){let t=this;super.init.apply(t,arguments),t.eventsToUnbind.push(L(t,"afterTranslate",function(){let e,i=Number.MAX_VALUE;for(let s of t.points)s.isInside=s.isInside&&s.visible,s.visible&&!s.isNull&&(A(e)&&(i=Math.min(i,Math.abs(s.plotX-e))),e=s.plotX);t.closestPointRangePx=i})),t.eventsToUnbind.push(L(t,"drawDataLabels",function(){t.distributeDL()})),t.eventsToUnbind.push(L(t,"afterDrawDataLabels",function(){let e;for(let i of t.points)(e=i.dataLabel)&&(e.animate=function(t){return this.targetPosition&&(this.targetPosition=t),this.renderer.Element.prototype.animate.apply(this,arguments)},e.targetPosition||(e.targetPosition={}),i.drawConnector())})),t.eventsToUnbind.push(L(t.chart,"afterHideOverlappingLabel",function(){for(let e of t.points)e.dataLabel&&e.dataLabel.connector&&e.dataLabel.oldOpacity!==e.dataLabel.newOpacity&&e.alignConnector()}))}markerAttribs(t,e){let i=this.options.marker,s=t.marker||{},r=s.symbol||i.symbol,o=T(s.width,i.width,this.closestPointRangePx),n=T(s.height,i.height),a,l=0;if(this.xAxis.dateTime)return super.markerAttribs(t,e);e&&(a=i.states[e]||{},l=T((s.states&&s.states[e]||{}).radius,a.radius,l+(a.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url");let h={x:Math.floor(t.plotX)-o/2-l/2,y:t.plotY-n/2-l/2,width:o+l,height:n+l};return this.chart.inverted?{y:h.x&&h.width&&this.xAxis.len-h.x-h.width,x:h.y&&h.y,width:h.height,height:h.width}:h}}H.defaultOptions=M(P.defaultOptions,{colorByPoint:!0,stickyTracking:!1,ignoreHiddenPoint:!0,legendType:"point",lineWidth:4,tooltip:{headerFormat:' {point.key}
    ',pointFormat:"{point.description}"},states:{hover:{lineWidthPlus:0}},dataLabels:{enabled:!0,allowOverlap:!0,alternate:!0,backgroundColor:"#ffffff",borderWidth:1,borderColor:"#999999",borderRadius:3,color:"#333333",connectorWidth:1,distance:void 0,formatter:function(){return(this.series.chart.styledMode?'':'')+(''+(this.key||""))+"
    "+(this.label||"")},style:{textOutline:"none",fontWeight:"normal",fontSize:"0.8em"},shadow:!1,verticalAlign:"middle"},marker:{enabledThreshold:0,symbol:"square",radius:6,lineWidth:2,height:15},showInLegend:!1,colorKey:"x",legendSymbol:"rectangle"}),L(H,"afterProcessData",function(){let t=this.getColumn("x"),e=0;for(let t of(this.visibilityMap=this.getVisibilityMap(),this.visibilityMap))t&&e++;this.visiblePointsCount=e,this.dataTable.setColumn("y",Array(t.length).fill(1))}),k(H.prototype,{drawTracker:v.prototype.drawTracker,pointClass:w,trackerGroups:["markerGroup","dataLabelsGroup"]}),p().registerSeriesType("timeline",H);let D=l();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point):"function"==typeof define&&define.amd?define("highcharts/modules/timeline",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Point)}):"object"==typeof exports?exports["highcharts/modules/timeline"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Point):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Point)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s={260:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return s[t](i,i.exports,o),i.exports}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,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};o.d(n,{default:()=>D});var a=o(944),l=o.n(a),h=o(512),p=o.n(h),d=o(260),c=o.n(d);let{line:{prototype:{pointClass:y}},pie:{prototype:{pointClass:u}}}=p().seriesTypes,{defined:g,isNumber:x,merge:f,objectEach:b,pick:m}=l(),w=class extends y{alignConnector(){let t=this.series,e=this.dataLabel,i=e.connector,s=e.options||{},r=s.connectorWidth||0,o=this.series.chart,n=i.getBBox(),a={x:n.x+(e.translateX||0),y:n.y+(e.translateY||0)};o.inverted?a.y-=r/2:a.x+=r/2,i[o.isInsidePlot(a.x,a.y)?"animate":"attr"]({d:this.getConnectorPath()}),i.addClass("highcharts-color-"+this.colorIndex),t.chart.styledMode||i.attr({stroke:s.connectorColor||this.color,"stroke-width":s.connectorWidth,opacity:e[g(e.newOpacity)?"newOpacity":"opacity"]})}drawConnector(){let{dataLabel:t,series:e}=this;t&&(t.connector||(t.connector=e.chart.renderer.path(this.getConnectorPath()).attr({zIndex:-1}).add(t)),this.series.chart.isInsidePlot(t.x||0,t.y||0)&&this.alignConnector())}getConnectorPath(){let{plotX:t=0,plotY:e=0,series:i,dataLabel:s}=this,r=i.chart,o=i.xAxis.len,n=r.inverted,a=n?"x2":"y2";if(s){let l=s.targetPosition,h=(s.alignAttr||s)[a[0]]{p[e]-=(s.alignAttr||s)[e[0]]}),r.renderer.crispLine([["M",p.x1,p.y1],["L",p.x2,p.y2]],s.options?.connectorWidth||0)}return[]}constructor(t,e){super(t,e),this.name??(this.name="Event"),this.y=1}isValid(){return null!==this.options.y}setState(){let t=super.setState;this.isNull||t.apply(this,arguments)}setVisible(t,e){let i=this.series;e=m(e,i.options.ignoreHiddenPoint),u.prototype.setVisible.call(this,t,!1),i.processData(),e&&i.chart.redraw()}applyOptions(t,e){return t=c().prototype.optionsToObject.call(this,t),this.userDLOptions=f(this.userDLOptions,t.dataLabels),super.applyOptions(t,e)}},{column:v,line:P}=p().seriesTypes,{addEvent:L,arrayMax:O,arrayMin:A,defined:C,extend:k,merge:M,pick:T}=l();class H extends P{alignDataLabel(t,e,i,s){let r,o,n;let a=this.chart.inverted,l=this.visibilityMap.filter(t=>!!t),h=this.visiblePointsCount||0,p=l.indexOf(t),d=this.options.dataLabels,c=t.userDLOptions||{},y=d.alternate?p&&p!==h-1?2:1.5:1,u=Math.floor(this.xAxis.len/h),g=e.padding;t.visible&&(r=Math.abs(c.x||t.options.dataLabels.x),a?(o=(r-g)*2-(t.itemHeight||0)/2,n={width:T(d.style?.width,`${.4*this.yAxis.len}px`),textOverflow:(e.width||0)/o*(e.height||0)/2>u*y?"ellipsis":"none"}):n={width:(c.width||d.width||u*y-2*g)+"px"},e.css(n),this.chart.styledMode||e.shadow(d.shadow)),super.alignDataLabel.apply(this,arguments)}bindAxes(){super.bindAxes(),this.xAxis.userOptions.type||(this.xAxis.categories=this.xAxis.hasNames=!0)}distributeDL(){let t=this.options.dataLabels,e=this.chart.inverted,i=1;if(t){let s=T(t.distance,e?20:100);for(let r of this.points){let o={[e?"x":"y"]:t.alternate&&i%2?-s:s};e&&(o.align=t.alternate&&i%2?"right":"left"),r.options.dataLabels=M(o,r.userDLOptions),i++}}}generatePoints(){super.generatePoints();let t=this.points,e=this.getColumn("x");for(let i=0,s=t.length;i!!t&&!1!==t.visible&&!t.isNull&&t)}getXExtremes(t){let e=this,i=t.filter((t,i)=>e.points[i].isValid()&&e.points[i].visible);return{min:A(i),max:O(i)}}init(){let t=this;super.init.apply(t,arguments),t.eventsToUnbind.push(L(t,"afterTranslate",function(){let e,i=Number.MAX_VALUE;for(let s of t.points)s.isInside=s.isInside&&s.visible,s.visible&&!s.isNull&&(C(e)&&(i=Math.min(i,Math.abs(s.plotX-e))),e=s.plotX);t.closestPointRangePx=i})),t.eventsToUnbind.push(L(t,"drawDataLabels",function(){t.distributeDL()})),t.eventsToUnbind.push(L(t,"afterDrawDataLabels",function(){let e;for(let i of t.points)(e=i.dataLabel)&&(e.animate=function(t){return this.targetPosition&&(this.targetPosition=t),this.renderer.Element.prototype.animate.apply(this,arguments)},e.targetPosition||(e.targetPosition={}),i.drawConnector())})),t.eventsToUnbind.push(L(t.chart,"afterHideOverlappingLabel",function(){for(let e of t.points)e.dataLabel&&e.dataLabel.connector&&e.dataLabel.oldOpacity!==e.dataLabel.newOpacity&&e.alignConnector()}))}markerAttribs(t,e){let i=this.options.marker,s=t.marker||{},r=s.symbol||i.symbol,o=T(s.width,i.width,this.closestPointRangePx),n=T(s.height,i.height),a,l=0;if(this.xAxis.dateTime)return super.markerAttribs(t,e);e&&(a=i.states[e]||{},l=T((s.states&&s.states[e]||{}).radius,a.radius,l+(a.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url");let h={x:Math.floor(t.plotX)-o/2-l/2,y:t.plotY-n/2-l/2,width:o+l,height:n+l};return this.chart.inverted?{y:h.x&&h.width&&this.xAxis.len-h.x-h.width,x:h.y&&h.y,width:h.height,height:h.width}:h}}H.defaultOptions=M(P.defaultOptions,{colorByPoint:!0,stickyTracking:!1,ignoreHiddenPoint:!0,legendType:"point",lineWidth:4,tooltip:{headerFormat:' {point.key}
    ',pointFormat:"{point.description}"},states:{hover:{lineWidthPlus:0}},dataLabels:{enabled:!0,allowOverlap:!0,alternate:!0,backgroundColor:"#ffffff",borderWidth:1,borderColor:"#999999",borderRadius:3,color:"#333333",connectorWidth:1,distance:void 0,formatter:function(){return(this.series.chart.styledMode?'':'')+(''+(this.key||""))+"
    "+(this.label||"")},style:{textOutline:"none",fontWeight:"normal",fontSize:"0.8em",textAlign:"left"},shadow:!1,verticalAlign:"middle"},marker:{enabledThreshold:0,symbol:"square",radius:6,lineWidth:2,height:15},showInLegend:!1,colorKey:"x",legendSymbol:"rectangle"}),L(H,"afterProcessData",function(){let t=this.getColumn("x"),e=0;for(let t of(this.visibilityMap=this.getVisibilityMap(),this.visibilityMap))t&&e++;this.visiblePointsCount=e,this.dataTable.setColumn("y",Array(t.length).fill(1))}),k(H.prototype,{drawTracker:v.prototype.drawTracker,pointClass:w,trackerGroups:["markerGroup","dataLabelsGroup"]}),p().registerSeriesType("timeline",H);let D=l();return n.default})()); \ No newline at end of file diff --git a/modules/timeline.src.js b/modules/timeline.src.js index f9a4e9f928..77dce98206 100644 --- a/modules/timeline.src.js +++ b/modules/timeline.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/timeline * @requires highcharts * @@ -419,7 +419,9 @@ const TimelineSeriesDefaults = { /** @internal */ fontWeight: 'normal', /** @internal */ - fontSize: '0.8em' + fontSize: '0.8em', + /** @internal */ + textAlign: 'left' }, /** * Shadow options for the data label. diff --git a/modules/treegraph.js b/modules/treegraph.js index 9cf46f61a3..97fea3c83c 100644 --- a/modules/treegraph.js +++ b/modules/treegraph.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * Treegraph chart series type * @module highcharts/modules/treegraph * @requires highcharts @@ -8,4 +8,4 @@ * (c) 2010-2024 Pawel Lysy Grzegorz Blachlinski * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/treegraph",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.SVGRenderer,t.Point,t.Color,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/treegraph"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.SVGRenderer,t.Highcharts.Point,t.Highcharts.Color,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,i,s,o,l)=>(()=>{"use strict";var r={620:t=>{t.exports=o},260:t=>{t.exports=s},28:t=>{t.exports=l},540:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return r[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};a.d(h,{default:()=>tf});var d=a(944),p=/*#__PURE__*/a.n(d);function c(t,e){let i=[];for(let s=0;s=0;t--)if(e[t]&&e[t].point.visible)return e[t]}}getLeftMostChild(){let t=this.children;for(let e=0;e=0;e--)if(t[e].point.visible)return t[e]}getParent(){return this.parentNode}getFirstChild(){let t=this.children;for(let e=0;e{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&a&&u?X().parse(t).brighten(e.to*(a/u)).get():t})(d),c.color)),n=A(i&&i.options.colorIndex,s&&s.colorIndex,l,p,e.colorIndex)),{color:r,colorIndex:n}},getLevelOptions:function(t){let e,i,s,o,l,r;let n={};if(w(t))for(o=S(t.from)?t.from:1,r=t.levels,i={},e=w(t.defaults)?t.defaults:{},O(r)&&(i=r.reduce((t,i)=>{let s,l,r;return w(i)&&S(i.level)&&(l=A((r=B({},i)).levelIsConstant,e.levelIsConstant),delete r.levelIsConstant,delete r.level,w(t[s=i.level+(l?0:o-1)])?B(!0,t[s],r):t[s]=r),t},{})),l=S(t.to)?t.to:1,s=0;s<=l;s++)n[s]=B({},e,w(i[s])?i[s]:{});return n},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:l=0}=s,{plotSizeX:r=1}=i;if("auto"===l){if("string"==typeof o&&/%$/.test(o))return r/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(r+t)/(e||1)-t}return R(l,r)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,l=i.mapIdToNode[o],r=!1!==i.levelIsConstant,n=i.points[e.i],a=n&&n.options||{},h=[],d=0;e.levelDynamic=e.level-(r?0:l.level),e.name=A(n&&n.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let l=N({},i);N(l,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,l),h.push(s),s.visible&&(d+=s.val)});let p=A(a.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,i;return w(t)&&(i=w(t.options)?t.options:{},e=A(t.rootNode,i.rootId,""),w(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{pick:W,extend:I}=p(),{seriesTypes:{column:{prototype:{pointClass:V}}}}=u(),_=class extends V{constructor(t,e,i,s){super(t,e,i),this.dataLabelOnNull=!0,this.formatPrefix="link",this.isLink=!0,this.node={},this.formatPrefix="link",this.dataLabelOnNull=!0,s&&(this.fromNode=s.node.parentNode.point,this.visible=s.visible,this.toNode=s,this.id=this.toNode.id+"-"+this.fromNode.id)}update(t,e,i,s){let o={id:this.id,formatPrefix:this.formatPrefix};x().prototype.update.call(this,t,!this.isLink&&e,i,s),this.visible=this.toNode.visible,I(this,o),W(e,!0)&&this.series.chart.redraw(i)}};class E{static createDummyNode(t,e,i){let s=new y;return s.id=t.id+"-"+i,s.ancestor=t,s.children.push(e),s.parent=t.id,s.parentNode=t,s.point=e.point,s.level=e.level-i,s.relativeXPosition=e.relativeXPosition,s.visible=e.visible,t.children[e.relativeXPosition]=s,e.oldParentNode=t,e.relativeXPosition=0,e.parentNode=s,e.parent=s.id,s}calculatePositions(t){let e=t.nodeList;this.resetValues(e);let i=t.tree;i&&(this.calculateRelativeX(i,0),this.beforeLayout(e),this.firstWalk(i),this.secondWalk(i,-i.preX),this.afterLayout(e))}beforeLayout(t){for(let e of t)for(let t of e.children)if(t&&t.level-e.level>1){let i=t.level-e.level-1;for(;i>0;)t=E.createDummyNode(e,t,i),i--}}resetValues(t){for(let e of t)e.mod=0,e.ancestor=e,e.shift=0,e.thread=void 0,e.change=0,e.preX=0}calculateRelativeX(t,e){let i=t.children;for(let t=0,e=i.length;t=0;s--){let o=t.children[s];o.preX+=e,o.mod+=e,i+=o.change,e+=o.shift+i}}apportion(t,e){let i=t.getLeftSibling();if(i){let s=t,o=t,l=i,r=s.getLeftMostSibling(),n=s.mod,a=o.mod,h=l.mod,d=r.mod;for(;l&&l.nextRight()&&s&&s.nextLeft();){l=l.nextRight(),r=r.nextLeft(),s=s.nextLeft(),(o=o.nextRight()).ancestor=t;let i=l.preX+h-(s.preX+n)+1;i>0&&(this.moveSubtree(t.getAncestor(l,e),t,i),n+=i,a+=i),h+=l.mod,n+=s.mod,d+=r.mod,a+=o.mod}l&&l.nextRight()&&!o.nextRight()&&(o.thread=l.nextRight(),o.mod+=h-a),s&&s.nextLeft()&&!r.nextLeft()&&(r.thread=s.nextLeft(),r.mod+=n-d),e=t}return e}moveSubtree(t,e,i){let s=e.relativeXPosition-t.relativeXPosition;e.change-=i/s,e.shift+=i,e.preX+=i,e.mod+=i,t.change+=i/s}afterLayout(t){for(let e of t)e.oldParentNode&&(e.relativeXPosition=e.parentNode.relativeXPosition,e.parent=e.oldParentNode.parent,e.parentNode=e.oldParentNode,delete e.oldParentNode.children[e.relativeXPosition],e.oldParentNode.children[e.relativeXPosition]=e,e.oldParentNode=void 0)}}var z=a(28),D=/*#__PURE__*/a.n(z);let{deg2rad:Y}=p(),{addEvent:G,merge:F,uniqueKey:j,defined:$,extend:q}=p();function U(t,e){e=F(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,o=s.textPath,{attributes:l,enabled:r}=e;if(t=t||o&&o.path,o&&o.undo(),t&&r){let e=G(s,"afterModifyTree",e=>{if(t&&r){let o=t.attr("id");o||t.attr("id",o=j());let r={x:0,y:0};$(l.dx)&&(r.dx=l.dx,delete l.dx),$(l.dy)&&(r.dy=l.dy,delete l.dy),s.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:q(l,{"text-anchor":l.textAnchor,href:`${i}#${o}`}),children:n}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function J(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),l=o-s,r=RegExp('(|]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(r,"").split(/]*>/),a=n.length,h=(t,e)=>{let{x:o,y:r}=e,n=(i.getRotationOfChar(t)-90)*Y,a=Math.cos(n),h=Math.sin(n);return[[o-l*a,r-l*h],[o+s*a,r+s*h]]};for(let e=0,s=0;s"collectorFunc"===t.name)||e.push(function(){let e=[];if(t.options.dataLabels&&!tp(t.options.dataLabels)[0].allowOverlap)for(let i of t.links||[])i.dataLabel&&e.push(i.dataLabel);return e})}getLayoutModifiers(){let t=this.chart,e=this,i=t.plotSizeX,s=t.plotSizeY,o=tl(this.points.map(t=>t.node.xPosition)),l=1/0,r=-1/0,n=1/0,a=-1/0,h=0,d=0,p=0,c=0;this.points.forEach(t=>{if(this.options.fillSpace&&!t.visible)return;let f=t.node,u=e.mapOptionsToLevel[t.node.level]||{},g=ta(this.options.marker,u.marker,t.options.marker),v=g.width??to(this,o),b=td(g.radius||0,Math.min(i,s)),y=g.symbol,m="circle"!==y&&g.height?td(g.height,s):2*b,x="circle"!==y&&v?td(v,i):2*b;f.nodeSizeX=x,f.nodeSizeY=m,f.xPosition<=l&&(l=f.xPosition,d=Math.max(x+(g.lineWidth||0),d)),f.xPosition>=r&&(r=f.xPosition,h=Math.max(x+(g.lineWidth||0),h)),f.yPosition<=n&&(n=f.yPosition,c=Math.max(m+(g.lineWidth||0),c)),f.yPosition>=a&&(a=f.yPosition,p=Math.max(m+(g.lineWidth||0),p))});let f=a===n?1:(s-(c+p)/2)/(a-n),u=a===n?s/2:-f*n+c/2,g=r===l?1:(i-(h+h)/2)/(r-l),v=r===l?i/2:-g*l+d/2;return{ax:g,bx:v,ay:f,by:u}}getLinks(){let t=this,e=[];return this.data.forEach(i=>{let s=t.mapOptionsToLevel[i.node.level||0]||{};if(i.node.parent){let o=ta(s,i.options);if(!i.linkToParent||i.linkToParent.destroyed){let e=new t.LinkClass(t,o,void 0,i);i.linkToParent=e}else i.collapsed=th(i.collapsed,(this.mapOptionsToLevel[i.node.level]||{}).collapsed),i.linkToParent.visible=i.linkToParent.toNode.visible;i.linkToParent.index=e.push(i.linkToParent)-1}else i.linkToParent&&(t.links.splice(i.linkToParent.index),i.linkToParent.destroy(),delete i.linkToParent)}),e}buildTree(t,e,i,s,o){let l=this.points[e];return i=l&&l.level||i,super.buildTree.call(this,t,e,i,s,o)}markerAttribs(){return{}}setCollapsedStatus(t,e){let i=t.point;i&&(i.collapsed=th(i.collapsed,(this.mapOptionsToLevel[t.level]||{}).collapsed),i.visible=e,e=!1!==e&&!i.collapsed),t.children.forEach(t=>{this.setCollapsedStatus(t,e)})}drawTracker(){te.prototype.drawTracker.apply(this,arguments),te.prototype.drawTracker.call(this,this.links)}translate(){let t=this.options,e=H.updateRootId(this),i;Z.translate.call(this);let s=this.tree=this.getTree();i=this.nodeMap[e],""===e||i&&i.children.length||(this.setRootNode("",!1),e=this.rootNode,i=this.nodeMap[e]),this.mapOptionsToLevel=ts({from:i.level+1,levels:t.levels,to:s.height,defaults:{levelIsConstant:this.options.levelIsConstant,colorByPoint:t.colorByPoint}}),this.setCollapsedStatus(s,!0),this.links=this.getLinks(),this.setTreeValues(s),this.layoutAlgorythm.calculatePositions(this),this.layoutModifier=this.getLayoutModifiers(),this.points.forEach(t=>{this.translateNode(t)}),this.points.forEach(t=>{t.linkToParent&&this.translateLink(t.linkToParent)}),t.colorByPoint||this.setColorRecursive(this.tree)}translateLink(t){let e=t.fromNode,i=t.toNode,s=this.options.link?.lineWidth||0,o=th(this.options.link?.curveFactor,.5),l=th(t.options.link?.type,this.options.link?.type,"default");if(e.shapeArgs&&i.shapeArgs){let r=e.shapeArgs.width||0,n=this.chart.inverted,a=tr((e.shapeArgs.y||0)+(e.shapeArgs.height||0)/2,s),h=tr((i.shapeArgs.y||0)+(i.shapeArgs.height||0)/2,s),d=tr((e.shapeArgs.x||0)+r,s),p=tr(i.shapeArgs.x||0,s);n&&(d-=r,p+=i.shapeArgs.width||0);let c=i.node.xPosition-e.node.xPosition;t.shapeType="path";let f=(Math.abs(p-d)+r)/c-r,u=tr((p+d)/2,s);t.plotX=u,t.plotY=h,t.shapeArgs={d:Q[l]({x1:d,y1:a,x2:p,y2:h,width:f,offset:f*o*(n?-1:1),inverted:n,parentVisible:i.visible,radius:this.options.link?.radius})},t.dlBox={x:(d+p)/2,y:(a+h)/2,height:s,width:0},t.tooltipPos=n?[(this.chart.plotSizeY||0)-t.dlBox.y,(this.chart.plotSizeX||0)-t.dlBox.x]:[t.dlBox.x,t.dlBox.y]}}drawNodeLabels(t){let e,i;let s=this.mapOptionsToLevel;for(let o of t){if(i=s[o.node.level],e={style:{}},i&&i.dataLabels&&(e=ta(e,i.dataLabels),this.hasDataLabels=()=>!0),o.shapeArgs&&this.options.dataLabels){let t={},{width:i=0,height:s=0}=o.shapeArgs;this.chart.inverted&&([i,s]=[s,i]),tp(this.options.dataLabels)[0].style?.width||(t.width=`${i}px`),tp(this.options.dataLabels)[0].style?.lineClamp||(t.lineClamp=Math.floor(s/16)),tn(e.style,t),o.dataLabel?.css(t)}o.dlOptions=ta(e,o.options.dataLabels)}Z.drawDataLabels.call(this,t)}alignDataLabel(t,e){let i=t.visible;t.visible=!0,super.alignDataLabel.apply(this,arguments),e.animate({opacity:!1===i?0:1},void 0,function(){i||e.hide()}),t.visible=i}drawDataLabels(){this.options.dataLabels&&(this.options.dataLabels=tp(this.options.dataLabels),this.drawNodeLabels(this.points),Z.drawDataLabels.call(this,this.links))}destroy(){if(this.links){for(let t of this.links)t.destroy();this.links.length=0}return Z.destroy.apply(this,arguments)}pointAttribs(t,e){let i=t&&this.mapOptionsToLevel[t.node.level||0]||{},s=t&&t.options,o=i.states&&i.states[e]||{};t&&(t.options.marker=ta(this.options.marker,i.marker,t.options.marker));let l=th(o&&o.link&&o.link.color,s&&s.link&&s.link.color,i&&i.link&&i.link.color,this.options.link&&this.options.link.color),r=th(o&&o.link&&o.link.lineWidth,s&&s.link&&s.link.lineWidth,i&&i.link&&i.link.lineWidth,this.options.link&&this.options.link.lineWidth),n=Z.pointAttribs.call(this,t,e);return t&&(t.isLink&&(n.stroke=l,n["stroke-width"]=r,delete n.fill),t.visible||(n.opacity=0)),n}drawPoints(){tt.prototype.drawPoints.apply(this,arguments),te.prototype.drawPoints.call(this,this.links)}translateNode(t){let e=this.chart,i=t.node,s=e.plotSizeY,o=e.plotSizeX,{ax:l,bx:r,ay:n,by:a}=this.layoutModifier,h=l*i.xPosition+r,d=n*i.yPosition+a,p=this.mapOptionsToLevel[i.level]||{},c=ta(this.options.marker,p.marker,t.options.marker).symbol,f=i.nodeSizeY,u=i.nodeSizeX,g=this.options.reversed,v=i.x=e.inverted?o-u/2-h:h-u/2,b=i.y=g?d-f/2:s-d-f/2,y=th(t.options.borderRadius,p.borderRadius,this.options.borderRadius),m=ti[c||"circle"];if(void 0===m?(t.hasImage=!0,t.shapeType="image",t.imageUrl=c.match(/^url\((.*?)\)$/)[1]):t.shapeType="path",!t.visible&&t.linkToParent){let e=t.linkToParent.fromNode;if(e){let{x:i=0,y:s=0,width:o=0,height:l=0}=e.shapeArgs||{};t.shapeArgs||(t.shapeArgs={}),t.hasImage||tn(t.shapeArgs,{d:m(i,s,o,l,y?{r:y}:void 0)}),tn(t.shapeArgs,{x:i,y:s}),t.plotX=e.plotX,t.plotY=e.plotY}}else t.plotX=v,t.plotY=b,t.shapeArgs={x:v,y:b,width:u,height:f,cursor:t.node.isLeaf?"default":"pointer"},t.hasImage||(t.shapeArgs.d=m(v,b,u,f,y?{r:y}:void 0));t.tooltipPos=e.inverted?[s-b-f/2,o-v-u/2]:[v+u/2,b]}}tc.defaultOptions=ta(tt.defaultOptions,{reversed:!1,marker:{radius:10,lineWidth:0,symbol:"circle",fillOpacity:1,states:{}},link:{color:"#666666",lineWidth:1,radius:10,cursor:"default",type:"curved"},collapseButton:{onlyOnHover:!0,enabled:!0,lineWidth:1,x:0,y:0,height:18,width:18,shape:"circle",style:{cursor:"pointer",fontWeight:"bold",fontSize:"1em"}},fillSpace:!1,tooltip:{linkFormat:"{point.fromNode.id} → {point.toNode.id}",pointFormat:"{point.id}"},dataLabels:{defer:!0,linkTextPath:{attributes:{startOffset:"50%"}},enabled:!0,linkFormatter:()=>"",style:{textOverflow:"none"}},nodeDistance:30,nodeWidth:void 0}),tn(tc.prototype,{pointClass:T,NodeClass:y,LinkClass:_}),u().registerSeriesType("treegraph",tc);let tf=p();return h.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/treegraph",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.SVGRenderer,t.Point,t.Color,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/treegraph"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.SVGRenderer,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.SVGRenderer,t.Highcharts.Point,t.Highcharts.Color,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,i,s,o,l)=>(()=>{"use strict";var r={620:t=>{t.exports=o},260:t=>{t.exports=s},28:t=>{t.exports=l},540:t=>{t.exports=i},512:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return r[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};a.d(h,{default:()=>tf});var d=a(944),p=a.n(d);function c(t,e){let i=[];for(let s=0;s=0;t--)if(e[t]&&e[t].point.visible)return e[t]}}getLeftMostChild(){let t=this.children;for(let e=0;e=0;e--)if(t[e].point.visible)return t[e]}getParent(){return this.parentNode}getFirstChild(){let t=this.children;for(let e=0;e{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&a&&u?X().parse(t).brighten(e.to*(a/u)).get():t})(d),c.color)),n=A(i&&i.options.colorIndex,s&&s.colorIndex,l,p,e.colorIndex)),{color:r,colorIndex:n}},getLevelOptions:function(t){let e,i,s,o,l,r;let n={};if(w(t))for(o=S(t.from)?t.from:1,r=t.levels,i={},e=w(t.defaults)?t.defaults:{},O(r)&&(i=r.reduce((t,i)=>{let s,l,r;return w(i)&&S(i.level)&&(l=A((r=B({},i)).levelIsConstant,e.levelIsConstant),delete r.levelIsConstant,delete r.level,w(t[s=i.level+(l?0:o-1)])?B(!0,t[s],r):t[s]=r),t},{})),l=S(t.to)?t.to:1,s=0;s<=l;s++)n[s]=B({},e,w(i[s])?i[s]:{});return n},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:l=0}=s,{plotSizeX:r=1}=i;if("auto"===l){if("string"==typeof o&&/%$/.test(o))return r/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(r+t)/(e||1)-t}return R(l,r)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,l=i.mapIdToNode[o],r=!1!==i.levelIsConstant,n=i.points[e.i],a=n&&n.options||{},h=[],d=0;e.levelDynamic=e.level-(r?0:l.level),e.name=A(n&&n.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let l=N({},i);N(l,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,l),h.push(s),s.visible&&(d+=s.val)});let p=A(a.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,i;return w(t)&&(i=w(t.options)?t.options:{},e=A(t.rootNode,i.rootId,""),w(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{pick:W,extend:I}=p(),{seriesTypes:{column:{prototype:{pointClass:V}}}}=u(),_=class extends V{constructor(t,e,i,s){super(t,e,i),this.dataLabelOnNull=!0,this.formatPrefix="link",this.isLink=!0,this.node={},this.formatPrefix="link",this.dataLabelOnNull=!0,s&&(this.fromNode=s.node.parentNode.point,this.visible=s.visible,this.toNode=s,this.id=this.toNode.id+"-"+this.fromNode.id)}update(t,e,i,s){let o={id:this.id,formatPrefix:this.formatPrefix};x().prototype.update.call(this,t,!this.isLink&&e,i,s),this.visible=this.toNode.visible,I(this,o),W(e,!0)&&this.series.chart.redraw(i)}};class E{static createDummyNode(t,e,i){let s=new y;return s.id=t.id+"-"+i,s.ancestor=t,s.children.push(e),s.parent=t.id,s.parentNode=t,s.point=e.point,s.level=e.level-i,s.relativeXPosition=e.relativeXPosition,s.visible=e.visible,t.children[e.relativeXPosition]=s,e.oldParentNode=t,e.relativeXPosition=0,e.parentNode=s,e.parent=s.id,s}calculatePositions(t){let e=t.nodeList;this.resetValues(e);let i=t.tree;i&&(this.calculateRelativeX(i,0),this.beforeLayout(e),this.firstWalk(i),this.secondWalk(i,-i.preX),this.afterLayout(e))}beforeLayout(t){for(let e of t)for(let t of e.children)if(t&&t.level-e.level>1){let i=t.level-e.level-1;for(;i>0;)t=E.createDummyNode(e,t,i),i--}}resetValues(t){for(let e of t)e.mod=0,e.ancestor=e,e.shift=0,e.thread=void 0,e.change=0,e.preX=0}calculateRelativeX(t,e){let i=t.children;for(let t=0,e=i.length;t=0;s--){let o=t.children[s];o.preX+=e,o.mod+=e,i+=o.change,e+=o.shift+i}}apportion(t,e){let i=t.getLeftSibling();if(i){let s=t,o=t,l=i,r=s.getLeftMostSibling(),n=s.mod,a=o.mod,h=l.mod,d=r.mod;for(;l&&l.nextRight()&&s&&s.nextLeft();){l=l.nextRight(),r=r.nextLeft(),s=s.nextLeft(),(o=o.nextRight()).ancestor=t;let i=l.preX+h-(s.preX+n)+1;i>0&&(this.moveSubtree(t.getAncestor(l,e),t,i),n+=i,a+=i),h+=l.mod,n+=s.mod,d+=r.mod,a+=o.mod}l&&l.nextRight()&&!o.nextRight()&&(o.thread=l.nextRight(),o.mod+=h-a),s&&s.nextLeft()&&!r.nextLeft()&&(r.thread=s.nextLeft(),r.mod+=n-d),e=t}return e}moveSubtree(t,e,i){let s=e.relativeXPosition-t.relativeXPosition;e.change-=i/s,e.shift+=i,e.preX+=i,e.mod+=i,t.change+=i/s}afterLayout(t){for(let e of t)e.oldParentNode&&(e.relativeXPosition=e.parentNode.relativeXPosition,e.parent=e.oldParentNode.parent,e.parentNode=e.oldParentNode,delete e.oldParentNode.children[e.relativeXPosition],e.oldParentNode.children[e.relativeXPosition]=e,e.oldParentNode=void 0)}}var z=a(28),D=a.n(z);let{deg2rad:Y}=p(),{addEvent:G,merge:F,uniqueKey:j,defined:$,extend:q}=p();function U(t,e){e=F(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,o=s.textPath,{attributes:l,enabled:r}=e;if(t=t||o&&o.path,o&&o.undo(),t&&r){let e=G(s,"afterModifyTree",e=>{if(t&&r){let o=t.attr("id");o||t.attr("id",o=j());let r={x:0,y:0};$(l.dx)&&(r.dx=l.dx,delete l.dx),$(l.dy)&&(r.dy=l.dy,delete l.dy),s.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:q(l,{"text-anchor":l.textAnchor,href:`${i}#${o}`}),children:n}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function J(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),l=o-s,r=RegExp('(|]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(r,"").split(/]*>/),a=n.length,h=(t,e)=>{let{x:o,y:r}=e,n=(i.getRotationOfChar(t)-90)*Y,a=Math.cos(n),h=Math.sin(n);return[[o-l*a,r-l*h],[o+s*a,r+s*h]]};for(let e=0,s=0;s"collectorFunc"===t.name)||e.push(function(){let e=[];if(t.options.dataLabels&&!tp(t.options.dataLabels)[0].allowOverlap)for(let i of t.links||[])i.dataLabel&&e.push(i.dataLabel);return e})}getLayoutModifiers(){let t=this.chart,e=this,i=t.plotSizeX,s=t.plotSizeY,o=tl(this.points.map(t=>t.node.xPosition)),l=1/0,r=-1/0,n=1/0,a=-1/0,h=0,d=0,p=0,c=0;this.points.forEach(t=>{if(this.options.fillSpace&&!t.visible)return;let f=t.node,u=e.mapOptionsToLevel[t.node.level]||{},g=ta(this.options.marker,u.marker,t.options.marker),v=g.width??to(this,o),b=td(g.radius||0,Math.min(i,s)),y=g.symbol,m="circle"!==y&&g.height?td(g.height,s):2*b,x="circle"!==y&&v?td(v,i):2*b;f.nodeSizeX=x,f.nodeSizeY=m,f.xPosition<=l&&(l=f.xPosition,d=Math.max(x+(g.lineWidth||0),d)),f.xPosition>=r&&(r=f.xPosition,h=Math.max(x+(g.lineWidth||0),h)),f.yPosition<=n&&(n=f.yPosition,c=Math.max(m+(g.lineWidth||0),c)),f.yPosition>=a&&(a=f.yPosition,p=Math.max(m+(g.lineWidth||0),p))});let f=a===n?1:(s-(c+p)/2)/(a-n),u=a===n?s/2:-f*n+c/2,g=r===l?1:(i-(h+h)/2)/(r-l),v=r===l?i/2:-g*l+d/2;return{ax:g,bx:v,ay:f,by:u}}getLinks(){let t=this,e=[];return this.data.forEach(i=>{let s=t.mapOptionsToLevel[i.node.level||0]||{};if(i.node.parent){let o=ta(s,i.options);if(!i.linkToParent||i.linkToParent.destroyed){let e=new t.LinkClass(t,o,void 0,i);i.linkToParent=e}else i.collapsed=th(i.collapsed,(this.mapOptionsToLevel[i.node.level]||{}).collapsed),i.linkToParent.visible=i.linkToParent.toNode.visible;i.linkToParent.index=e.push(i.linkToParent)-1}else i.linkToParent&&(t.links.splice(i.linkToParent.index),i.linkToParent.destroy(),delete i.linkToParent)}),e}buildTree(t,e,i,s,o){let l=this.points[e];return i=l&&l.level||i,super.buildTree.call(this,t,e,i,s,o)}markerAttribs(){return{}}setCollapsedStatus(t,e){let i=t.point;i&&(i.collapsed=th(i.collapsed,(this.mapOptionsToLevel[t.level]||{}).collapsed),i.visible=e,e=!1!==e&&!i.collapsed),t.children.forEach(t=>{this.setCollapsedStatus(t,e)})}drawTracker(){te.prototype.drawTracker.apply(this,arguments),te.prototype.drawTracker.call(this,this.links)}translate(){let t=this.options,e=H.updateRootId(this),i;Z.translate.call(this);let s=this.tree=this.getTree();i=this.nodeMap[e],""===e||i&&i.children.length||(this.setRootNode("",!1),e=this.rootNode,i=this.nodeMap[e]),this.mapOptionsToLevel=ts({from:i.level+1,levels:t.levels,to:s.height,defaults:{levelIsConstant:this.options.levelIsConstant,colorByPoint:t.colorByPoint}}),this.setCollapsedStatus(s,!0),this.links=this.getLinks(),this.setTreeValues(s),this.layoutAlgorythm.calculatePositions(this),this.layoutModifier=this.getLayoutModifiers(),this.points.forEach(t=>{this.translateNode(t)}),this.points.forEach(t=>{t.linkToParent&&this.translateLink(t.linkToParent)}),t.colorByPoint||this.setColorRecursive(this.tree)}translateLink(t){let e=t.fromNode,i=t.toNode,s=this.options.link?.lineWidth||0,o=th(this.options.link?.curveFactor,.5),l=th(t.options.link?.type,this.options.link?.type,"default");if(e.shapeArgs&&i.shapeArgs){let r=e.shapeArgs.width||0,n=this.chart.inverted,a=tr((e.shapeArgs.y||0)+(e.shapeArgs.height||0)/2,s),h=tr((i.shapeArgs.y||0)+(i.shapeArgs.height||0)/2,s),d=tr((e.shapeArgs.x||0)+r,s),p=tr(i.shapeArgs.x||0,s);n&&(d-=r,p+=i.shapeArgs.width||0);let c=i.node.xPosition-e.node.xPosition;t.shapeType="path";let f=(Math.abs(p-d)+r)/c-r,u=tr((p+d)/2,s);t.plotX=u,t.plotY=h,t.shapeArgs={d:Q[l]({x1:d,y1:a,x2:p,y2:h,width:f,offset:f*o*(n?-1:1),inverted:n,parentVisible:i.visible,radius:this.options.link?.radius})},t.dlBox={x:(d+p)/2,y:(a+h)/2,height:s,width:0},t.tooltipPos=n?[(this.chart.plotSizeY||0)-t.dlBox.y,(this.chart.plotSizeX||0)-t.dlBox.x]:[t.dlBox.x,t.dlBox.y]}}drawNodeLabels(t){let e,i;let s=this.mapOptionsToLevel;for(let o of t){if(i=s[o.node.level],e={style:{}},i&&i.dataLabels&&(e=ta(e,i.dataLabels),this.hasDataLabels=()=>!0),o.shapeArgs&&this.options.dataLabels){let t={},{width:i=0,height:s=0}=o.shapeArgs;this.chart.inverted&&([i,s]=[s,i]),tp(this.options.dataLabels)[0].style?.width||(t.width=`${i}px`),tp(this.options.dataLabels)[0].style?.lineClamp||(t.lineClamp=Math.floor(s/16)),tn(e.style,t),o.dataLabel?.css(t)}o.dlOptions=ta(e,o.options.dataLabels)}Z.drawDataLabels.call(this,t)}alignDataLabel(t,e){let i=t.visible;t.visible=!0,super.alignDataLabel.apply(this,arguments),e.animate({opacity:!1===i?0:1},void 0,function(){i||e.hide()}),t.visible=i}drawDataLabels(){this.options.dataLabels&&(this.options.dataLabels=tp(this.options.dataLabels),this.drawNodeLabels(this.points),Z.drawDataLabels.call(this,this.links))}destroy(){if(this.links){for(let t of this.links)t.destroy();this.links.length=0}return Z.destroy.apply(this,arguments)}pointAttribs(t,e){let i=t&&this.mapOptionsToLevel[t.node.level||0]||{},s=t&&t.options,o=i.states&&i.states[e]||{};t&&(t.options.marker=ta(this.options.marker,i.marker,t.options.marker));let l=th(o&&o.link&&o.link.color,s&&s.link&&s.link.color,i&&i.link&&i.link.color,this.options.link&&this.options.link.color),r=th(o&&o.link&&o.link.lineWidth,s&&s.link&&s.link.lineWidth,i&&i.link&&i.link.lineWidth,this.options.link&&this.options.link.lineWidth),n=Z.pointAttribs.call(this,t,e);return t&&(t.isLink&&(n.stroke=l,n["stroke-width"]=r,delete n.fill),t.visible||(n.opacity=0)),n}drawPoints(){tt.prototype.drawPoints.apply(this,arguments),te.prototype.drawPoints.call(this,this.links)}translateNode(t){let e=this.chart,i=t.node,s=e.plotSizeY,o=e.plotSizeX,{ax:l,bx:r,ay:n,by:a}=this.layoutModifier,h=l*i.xPosition+r,d=n*i.yPosition+a,p=this.mapOptionsToLevel[i.level]||{},c=ta(this.options.marker,p.marker,t.options.marker).symbol,f=i.nodeSizeY,u=i.nodeSizeX,g=this.options.reversed,v=i.x=e.inverted?o-u/2-h:h-u/2,b=i.y=g?d-f/2:s-d-f/2,y=th(t.options.borderRadius,p.borderRadius,this.options.borderRadius),m=ti[c||"circle"];if(void 0===m?(t.hasImage=!0,t.shapeType="image",t.imageUrl=c.match(/^url\((.*?)\)$/)[1]):t.shapeType="path",!t.visible&&t.linkToParent){let e=t.linkToParent.fromNode;if(e){let{x:i=0,y:s=0,width:o=0,height:l=0}=e.shapeArgs||{};t.shapeArgs||(t.shapeArgs={}),t.hasImage||tn(t.shapeArgs,{d:m(i,s,o,l,y?{r:y}:void 0)}),tn(t.shapeArgs,{x:i,y:s}),t.plotX=e.plotX,t.plotY=e.plotY}}else t.plotX=v,t.plotY=b,t.shapeArgs={x:v,y:b,width:u,height:f,cursor:t.node.isLeaf?"default":"pointer"},t.hasImage||(t.shapeArgs.d=m(v,b,u,f,y?{r:y}:void 0));t.tooltipPos=e.inverted?[s-b-f/2,o-v-u/2]:[v+u/2,b]}}tc.defaultOptions=ta(tt.defaultOptions,{reversed:!1,marker:{radius:10,lineWidth:0,symbol:"circle",fillOpacity:1,states:{}},link:{color:"#666666",lineWidth:1,radius:10,cursor:"default",type:"curved"},collapseButton:{onlyOnHover:!0,enabled:!0,lineWidth:1,x:0,y:0,height:18,width:18,shape:"circle",style:{cursor:"pointer",fontWeight:"bold",fontSize:"1em"}},fillSpace:!1,tooltip:{linkFormat:"{point.fromNode.id} → {point.toNode.id}",pointFormat:"{point.id}"},dataLabels:{defer:!0,linkTextPath:{attributes:{startOffset:"50%"}},enabled:!0,linkFormatter:()=>"",padding:5,style:{textOverflow:"none"}},nodeDistance:30,nodeWidth:void 0}),tn(tc.prototype,{pointClass:T,NodeClass:y,LinkClass:_}),u().registerSeriesType("treegraph",tc);let tf=p();return h.default})()); \ No newline at end of file diff --git a/modules/treegraph.src.js b/modules/treegraph.src.js index e10c76ac81..4c8fcbcfef 100644 --- a/modules/treegraph.src.js +++ b/modules/treegraph.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * Treegraph chart series type * @module highcharts/modules/treegraph * @requires highcharts @@ -1300,7 +1300,7 @@ class TreegraphLayout { * alternateStartingDirection, borderRadius, breadcrumbs, * interactByLeaf, layoutStartingDirection, levelIsConstant, * lineWidth, negativeColor, nodes, sortIndex, zoneAxis, - * zones + * zones, cluster * * @product highcharts * @since 10.3.0 @@ -1442,6 +1442,7 @@ const TreegraphSeriesDefaults = { fillSpace: false, /** * @extends plotOptions.series.tooltip + * @excluding clusterFormat */ tooltip: { /** @@ -1502,6 +1503,7 @@ const TreegraphSeriesDefaults = { }, enabled: true, linkFormatter: () => '', + padding: 5, style: { textOverflow: 'none' } diff --git a/modules/treegrid.js b/modules/treegrid.js index 58d9315d18..25897b58a5 100644 --- a/modules/treegrid.js +++ b/modules/treegrid.js @@ -1,5 +1,5 @@ !/** - * Highcharts Gantt JS v12.0.2 (2024-12-04) + * Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/treegrid * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2016-2024 Jon Arild Nygard * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/treegrid",["highcharts/highcharts"],function(t){return e(t,t.StackItem,t.Axis,t.Color)}):"object"==typeof exports?exports["highcharts/modules/treegrid"]=e(t._Highcharts,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.StackItem,t.Highcharts.Axis,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,i,s)=>(()=>{"use strict";let o;var r,n,a={532:t=>{t.exports=i},620:t=>{t.exports=s},184:t=>{t.exports=e},944:e=>{e.exports=t}},l={};function h(t){var e=l[t];if(void 0!==e)return e.exports;var i=l[t]={exports:{}};return a[t](i,i.exports,h),i.exports}h.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{for(var i in e)h.o(e,i)&&!h.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};h.d(d,{default:()=>tV});var c=h(944),p=/*#__PURE__*/h.n(c),f=h(184),u=/*#__PURE__*/h.n(f);let{addEvent:g,find:m,fireEvent:k,isArray:x,isNumber:b,pick:y}=p();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,n;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(n&&!1!==n.visible||(n=i[r+1]),t=i[r],!1!==n.visible&&!1!==t.visible){if(n.x-t.x>o){let e=(t.x+n.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(u())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}n=t}}return this.getGraphPath(i)}t.compose=function(t,h){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),g(t,"init",o),g(t,"afterInit",e),g(t,"afterSetTickPositions",s),g(t,"afterSetOptions",i);let d=h.prototype;d.drawBreaks=a,d.gappedPath=l,g(h,"afterGeneratePoints",r),g(h,"afterRender",n)}return t};class h{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(h.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return m(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==h.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=h.lin2Val,s.val2lin=h.val2Lin,s.setExtremes=function(t,e,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=l;for(;p{t.getOffset()})}i&&t.apply(this)}function H(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:e,height:i,horiz:s,left:o,offset:r,opposite:a,options:l,top:h,width:d}=this,c=this.tickSize(),p=e&&e.getBBox().width,f=l.title.x,u=l.title.y,g=C(l.title.margin,s?5:10),m=e?this.chart.renderer.fontMetrics(e).f:0,k=(s?h+i:o)+(s?1:-1)*(a?-1:1)*(c?c[0]/2:0)+(this.side===n.bottom?m:0);t.titlePosition.x=s?o-(p||0)/2-g+f:k+(a?d:0)+r+f,t.titlePosition.y=s?k-(a?i:0)+(a?m:-m)/2+r+u:h-g+u}}function R(){let{chart:t,options:{grid:e={}},userOptions:i}=this;if(e.enabled&&function(t){let e=t.options;e.labels.align=C(e.labels.align,"center"),t.categories||(e.showLastLabel=!1),t.labelRotation=0,e.labels.rotation=0,e.minTickInterval=1}(this),e.columns){let s=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++ot.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,e;let i=this.tickmarkOffset,r=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(e=this.hiddenMarks.pop())&&e.element;)e.show();(t=this.ticks[n].label)&&(s-n>i?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[r].label)&&(r-o>i?this.hiddenLabels.push(t.hide()):t.show());let a=this.ticks[r].mark;a&&r-o0&&this.ticks[r].isLast&&this.hiddenMarks.push(a.hide())}}}function j(){let t=this.tickPositions&&this.tickPositions.info,e=this.options,i=e.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&e.dateTimeLabelFormats&&e.labels&&!B(s.align)&&(!1===e.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(e.labels.align="left",B(s.x)||(e.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function _(t){let e;let i=this.options,s=t.userOptions,o=i&&M(i.grid)?i.grid:{};!0===o.enabled&&(e=N(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(B(s.linkedTo)&&!B(s.tickPixelInterval)&&(e.tickPixelInterval=350),!(!B(s.tickPixelInterval)&&B(s.linkedTo))||B(s.tickPositioner)||B(s.tickInterval)||B(s.units)||(e.tickPositioner=function(t,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=e.units||[],r,n=1,a="year";for(let t=0;tt.setScale())}function q(t){let{horiz:e,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=e?s.cellHeight||o+i.height:o+i.width;w(t.tickSize)?t.tickSize[0]=r:t.tickSize=[r,0]}}function V(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function U(t){let{grid:e}=this;(e.columns||[]).forEach(e=>e.destroy(t.keepEvents)),e.columns=void 0}function $(t){let e=t.userOptions||{},i=e.grid||{};i.enabled&&B(i.borderColor)&&(e.tickColor=e.lineColor=i.borderColor),this.grid||(this.grid=new Z(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function K(t){let e=this.label,i=this.axis,s=i.reversed,o=i.chart,r=i.options.grid||{},a=i.options.labels,l=a.align,h=n[i.side],d=t.tickmarkOffset,c=i.tickPositions,p=this.pos-d,f=E(c[t.index+1])?c[t.index+1]-d:(i.max||0)+d,u=i.tickSize("tick"),g=u?u[0]:0,m=u?u[1]/2:0;if(!0===r.enabled){let r,n,d,c;if("top"===h?n=(r=i.top+i.offset)-g:"bottom"===h?r=(n=o.chartHeight-i.bottom+i.offset)+g:(r=i.top+i.len-(i.translate(s?f:p)||0),n=i.top+i.len-(i.translate(s?p:f)||0)),"right"===h?c=(d=o.chartWidth-i.right+i.offset)+g:"left"===h?d=(c=i.left+i.offset)-g:(d=Math.round(i.left+(i.translate(s?f:p)||0))-m,c=Math.min(Math.round(i.left+(i.translate(s?p:f)||0))-m,i.left+i.len)),this.slotWidth=c-d,t.pos.x="left"===l?d:"right"===l?c:d+(c-d)/2,t.pos.y=n+(r-n)/2,e){let i=o.renderer.fontMetrics(e),s=e.getBBox().height;if(a.useHTML)t.pos.y+=i.b+-(s/2);else{let e=Math.round(s/i.h);t.pos.y+=(i.b-(i.h-i.f))/2+-((e-1)*i.h/2)}}t.pos.x+=i.horiz&&a.x||0}}function Y(t){let{axis:e,value:i}=t;if(e.options.grid&&e.options.grid.enabled){let s;let o=e.tickPositions,r=(e.linkedParent||e).series[0],n=i===o[0],a=i===o[o.length-1],l=r&&I(r.options.data,function(t){return t[e.isXAxis?"x":"y"]===i});l&&r.is("gantt")&&(s=N(l),p().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,e.chart)),t.isFirst=n,t.isLast=a,t.point=s}}function J(){let t=this.options,e=t.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],a=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,h=this.linkedParent&&this.linkedParent.max,d=l||this.min,c=h||this.max,p=this.tickInterval,f=E(d)&&d>=o+p&&dd,g=E(c)&&n>c&&n-pa;!0===e.enabled&&!i&&(this.isXAxis||this.isLinked)&&((u||f)&&!t.startOnTick&&(s[0]=d),(g||m)&&!t.endOnTick&&(s[s.length-1]=c))}function Q(t){var e;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:t.apply(this,(e=arguments,Array.prototype.slice.call(e,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(n||(n={}));class Z{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,e=t.chart,i=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],o=i?t.linkedParent:t,r=-1,n=0;return 3===t.side&&!e.inverted&&s.length?!t.linkedParent:((e[t.coll]||[]).forEach((e,i)=>{e.side!==t.side||e.options.isInternal||(n=i,e!==o||(r=i))}),n===r&&(!E(i)||s.length===i))}renderBorder(t){let e=this.axis,i=e.chart.renderer,s=e.options,o=i.path(t).addClass("highcharts-axis-line").add(e.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}G.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},G.W=function(t){let e=this.toParts(t),i=(e[7]+6)%7,s=e.slice(0);s[2]=e[2]-i+3;let o=this.toParts(this.makeTime(s[0],0,1));return 4!==o[7]&&(e[1]=0,e[2]=1+(11-o[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(o[0],o[1],o[2]))/6048e5)).toString()};let tt={compose:function(t,e,i){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=W,S(t.prototype,"unsquish",Q),S(t.prototype,"getOffset",z),O(t,"init",$),O(t,"afterGetTitlePosition",H),O(t,"afterInit",R),O(t,"afterRender",D),O(t,"afterSetAxisTranslation",j),O(t,"afterSetOptions",_),O(t,"afterSetOptions",F),O(t,"afterSetScale",X),O(t,"afterTickSize",q),O(t,"trimTicks",J),O(t,"destroy",U),O(e,"afterSetChartSize",V),O(i,"afterGetLabelPosition",K),O(i,"labelFormat",Y)),t}},{extend:te,isNumber:ti,pick:ts}=p();function to(t,e,i,s,o,r){let n=r&&r.after,a=r&&r.before,l={data:s,depth:i-1,id:t,level:i,parent:e||""},h=0,d=0,c,p;"function"==typeof a&&a(l,r);let f=(o[t]||[]).map(e=>{let s=to(e.id,t,i+1,e,o,r),n=e.start||NaN,a=!0===e.milestone?n:e.end||NaN;return c=!ti(c)||np?a:p,h=h+1+s.descendants,d=Math.max(s.height+1,d),s});return s&&(s.start=ts(s.start,c),s.end=ts(s.end,p)),te(l,{children:f,descendants:h,height:d}),"function"==typeof n&&n(l,r),l}let tr={getNode:to,getTree:function(t,e){return to("",null,1,null,function(t){let e=[],i=t.reduce((t,i)=>{let{parent:s="",id:o}=i;return void 0===t[s]&&(t[s]=[]),t[s].push(i),o&&e.push(o),t},{});return Object.keys(i).forEach(t=>{if(""!==t&&-1===e.indexOf(t)){let e=i[t].map(function(t){let{...e}=t;return e});i[""].push(...e),delete i[t]}}),i}(t),e)}},{addEvent:tn,removeEvent:ta,isObject:tl,isNumber:th,pick:td,wrap:tc}=p();function tp(){this.treeGrid||(this.treeGrid=new tg(this))}function tf(t,e,i,s,o,r,n,a,l){let h,d,c;let p=td(this.options&&this.options.labels,r),f=this.pos,u=this.axis,g="treegrid"===u.type,m=t.apply(this,[e,i,s,o,p,n,a,l]);if(g){let{width:t=0,padding:e=u.linkedParent?0:5}=p&&tl(p.symbol,!0)?p.symbol:{},i=p&&th(p.indentation)?p.indentation:0;c=(d=(h=u.treeGrid.mapOfPosToGridNode)&&h[f])&&d.depth||1,m.x+=t+2*e+(c-1)*i}return m}function tu(t){let e,i,s;let{pos:o,axis:r,label:n,treeGrid:a,options:l}=this,h=a?.labelIcon,d=n?.element,{treeGrid:c,options:p,chart:f,tickPositions:u}=r,g=c.mapOfPosToGridNode,m=td(l?.labels,p?.labels),k=m&&tl(m.symbol,!0)?m.symbol:{},x=g&&g[o],{descendants:b,depth:y}=x||{},v=x&&b&&b>0,P="treegrid"===r.type&&d,A=u.indexOf(o)>-1,G="highcharts-treegrid-node-",O=G+"level-",B=f.styledMode;P&&x&&n.removeClass(RegExp(O+".*")).addClass(O+y),t.apply(this,Array.prototype.slice.call(arguments,1)),P&&v?(e=c.isCollapsed(x),function(t,e){let i=t.treeGrid,s=!i.labelIcon,o=e.renderer,r=e.xy,n=e.options,a=n.width||0,l=n.height||0,h=n.padding??t.axis.linkedParent?0:5,d={x:r.x-a/2-h,y:r.y-l/2},c=e.collapsed?90:180,p=e.show&&th(d.y),f=i.labelIcon;f||(i.labelIcon=f=o.path(o.symbols[n.type](n.x||0,n.y||0,a,l)).addClass("highcharts-label-icon").add(e.group)),f[p?"show":"hide"](),o.styledMode||f.attr({cursor:"pointer",fill:td(e.color,"#666666"),"stroke-width":1,stroke:n.lineColor,strokeWidth:n.lineWidth||0}),f[s?"attr":"animate"]({translateX:d.x,translateY:d.y,rotation:c})}(this,{color:!B&&n.styles.color||"",collapsed:e,group:n.parentGroup,options:k,renderer:n.renderer,show:A,xy:n.xy}),i=G+(e?"collapsed":"expanded"),s=G+(e?"expanded":"collapsed"),n.addClass(i).removeClass(s),B||n.css({cursor:"pointer"}),[n,h].forEach(t=>{t&&!t.attachedTreeGridEvents&&(tn(t.element,"mouseover",function(){n.addClass("highcharts-treegrid-node-active"),n.renderer.styledMode||n.css({textDecoration:"underline"})}),tn(t.element,"mouseout",function(){!function(t,e){let i=tl(e.style)?e.style:{};t.removeClass("highcharts-treegrid-node-active"),t.renderer.styledMode||t.css({textDecoration:i.textDecoration||"none"})}(n,m)}),tn(t.element,"click",function(){a.toggleCollapse()}),t.attachedTreeGridEvents=!0)})):h&&(ta(d),n?.css({cursor:"default"}),h.destroy())}class tg{static compose(t){let e=t.prototype;e.toggleCollapse||(tn(t,"init",tp),tc(e,"getLabelPosition",tf),tc(e,"renderLabel",tu),e.collapse=function(t){this.treeGrid.collapse(t)},e.expand=function(t){this.treeGrid.expand(t)},e.toggleCollapse=function(t){this.treeGrid.toggleCollapse(t)})}constructor(t){this.tick=t}collapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.collapse(r);s.setBreaks(n,td(t,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(t){let{pos:e,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,r=s.mapOfPosToGridNode;if(o&&r){let i=r[e],n=s.expand(i);o.setBreaks(n,td(t,!0))}}toggleCollapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.toggleCollapse(r);s.setBreaks(n,td(t,!0))}}}var tm=h(620),tk=/*#__PURE__*/h.n(tm);let{extend:tx,isArray:tb,isNumber:ty,isObject:tv,merge:tP,pick:tA,relativeLength:tG}=p(),{getLevelOptions:tO}={getColor:function(t,e){let i,s,o,r,n,a;let l=e.index,h=e.mapOptionsToLevel,d=e.parentColor,c=e.parentColorIndex,p=e.series,f=e.colors,u=e.siblings,g=p.points,m=p.chart.options.chart;return t&&(i=g[t.i],s=h[t.level]||{},i&&s.colorByPoint&&(r=i.index%(f?f.length:m.colorCount),o=f&&f[r]),p.chart.styledMode||(n=tA(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&l&&u?tk().parse(t).brighten(e.to*(l/u)).get():t})(d),p.color)),a=tA(i&&i.options.colorIndex,s&&s.colorIndex,r,c,e.colorIndex)),{color:n,colorIndex:a}},getLevelOptions:function(t){let e,i,s,o,r,n;let a={};if(tv(t))for(o=ty(t.from)?t.from:1,n=t.levels,i={},e=tv(t.defaults)?t.defaults:{},tb(n)&&(i=n.reduce((t,i)=>{let s,r,n;return tv(i)&&ty(i.level)&&(r=tA((n=tP({},i)).levelIsConstant,e.levelIsConstant),delete n.levelIsConstant,delete n.level,tv(t[s=i.level+(r?0:o-1)])?tP(!0,t[s],n):t[s]=n),t},{})),r=ty(t.to)?t.to:1,s=0;s<=r;s++)a[s]=tP({},e,tv(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(n+t)/(e||1)-t}return tG(r,n)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],n=!1!==i.levelIsConstant,a=i.points[e.i],l=a&&a.options||{},h=[],d=0;e.levelDynamic=e.level-(n?0:r.level),e.name=tA(a&&a.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=tx({},i);tx(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),h.push(s),s.visible&&(d+=s.val)});let c=tA(l.value,d);return e.visible=c>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=c,e},updateRootId:function(t){let e,i;return tv(t)&&(i=tv(t.options)?t.options:{},e=tA(t.rootNode,i.rootId,""),tv(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:tB,isArray:tT,splat:tI,find:tw,fireEvent:tE,isObject:tN,isString:tC,merge:tL,pick:tS,removeEvent:tM,wrap:tW}=p();function tz(t,e){let i=t.collapseEnd||0,s=t.collapseStart||0;return i>=e&&(s-=.5),{from:s,to:i,showPoints:!1}}function tH(t,e,i){let s=[],o=[],r={},n=e||!1,a={},l=-1,h=tr.getTree(t,{after:function(t){let e=a[t.pos],i=0,s=0;e.children.forEach(function(t){s+=(t.descendants||0)+1,i=Math.max((t.height||0)+1,i)}),e.descendants=s,e.height=i,e.collapsed&&o.push(e)},before:function(t){let e,i;let o=tN(t.data,!0)?t.data:{},h=tC(o.name)?o.name:"",d=r[t.parent],c=tN(d,!0)?a[d.pos]:null;n&&tN(c,!0)&&(e=tw(c.children,function(t){return t.name===h}))?(i=e.pos,e.nodes.push(t)):i=l++,!a[i]&&(a[i]=e={depth:c?c.depth+1:0,name:h,id:o.id,nodes:[t],children:[],pos:i},-1!==i&&s.push(h),tN(c,!0)&&c.children.push(e)),tC(t.id)&&(r[t.id]=t),e&&!0===o.collapsed&&(e.collapsed=!0),t.pos=i}});return{categories:s,mapOfIdToNode:r,mapOfPosToGridNode:a=function(t,e){let i=function(t,s,o){let r=t.nodes,n=s+(-1===s?0:e-1),a=(n-s)/2,l=s+a;return r.forEach(function(t){let e=t.data;tN(e,!0)&&(e.y=s+(e.seriesIndex||0),delete e.seriesIndex),t.pos=l}),o[l]=t,t.pos=l,t.tickmarkOffset=a+.5,t.collapseStart=n+.5,t.children.forEach(function(t){i(t,n+1,o),n=(t.collapseEnd||0)-.5}),t.collapseEnd=n+.5,o};return i(t["-1"],-1,{})}(a,i),collapsedNodes:o,tree:h}}function tR(t){let e=t.target;e.axes.filter(t=>"treegrid"===t.type).forEach(function(i){let s=i.options||{},o=s.labels,r=i.uniqueNames,n=e.time.parse(s.max),a=!i.treeGrid.mapOfPosToGridNode||i.series.some(function(t){return!t.hasRendered||t.isDirtyData||t.isDirty}),l=0,h,d;if(a){let s=[];if(h=i.series.reduce(function(t,i){let o=i.options.data||[],n=o[0],a=Array.isArray(n)&&!n.find(t=>"object"==typeof t);return s.push(a),i.visible&&(o.forEach(function(s){(a||i.options.keys&&i.options.keys.length)&&(s=i.pointClass.prototype.optionsToObject.call({series:i},s),i.pointClass.setGanttPointAliases(s,e)),tN(s,!0)&&(s.seriesIndex=l,t.push(s))}),!0===r&&l++),t},[]),n&&h.length=0&&e.indexOf(t.x2||0)>=0&&(i=t)}),tN(i,!0)?tL(i):i});t.visible&&t.setData(i,!1)}),i.treeGrid.mapOptionsToLevel=tO({defaults:o,from:1,levels:o&&o.levels,to:i.treeGrid.tree&&i.treeGrid.tree.height}),"beforeRender"===t.type&&(i.treeGrid.collapsedNodes=d.collapsedNodes)}})}function tD(t,e){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.type,r=this.ticks,n=r[e],a,l,h;s&&this.treeGrid.mapOfPosToGridNode?((a=i[(h=this.treeGrid.mapOfPosToGridNode[e]).depth])&&(l={labels:a}),!n&&o?r[e]=n=new o(this,e,void 0,void 0,{category:h.name,tickmarkOffset:h.tickmarkOffset,options:l}):(n.parameters.category=h.name,n.options=l,n.addLabel())):t.apply(this,Array.prototype.slice.call(arguments,1))}function tj(t,e,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new tX(o)),r&&(tB(e,"beforeRender",tR),tB(e,"beforeRedraw",tR),tB(e,"addSeries",function(t){if(t.options.data){let e=tH(t.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(e.collapsedNodes)}}),tB(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(t){let e=o.treeGrid.collapse(t);o.brokenAxis&&(o.brokenAxis.setBreaks(e,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(e=>t.collapseStart!==e.collapseStart||t.collapseEnd!==e.collapseEnd)))})}),tB(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=tL({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),t.apply(o,[e,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function t_(t){let e=this.options,i=this.chart.time,s="number"==typeof e.linkedTo?this.chart[this.coll]?.[e.linkedTo]:void 0;if("treegrid"===this.type){if(this.min=this.userMin??i.parse(e.min)??this.dataMin,this.max=this.userMax??i.parse(e.max)??this.dataMax,tE(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],s){let t=s.getExtremes();this.min=tS(t.min,t.dataMin),this.max=tS(t.max,t.dataMax),this.tickPositions=s.tickPositions}this.linkedParent=s}else t.apply(this,Array.prototype.slice.call(arguments,1))}function tF(t){let e=this;"treegrid"===this.type&&e.visible&&e.tickPositions.forEach(function(t){let i=e.ticks[t];i.label&&i.label.attachedTreeGridEvents&&(tM(i.label.element),i.label.attachedTreeGridEvents=!1)}),t.apply(e,Array.prototype.slice.call(arguments,1))}class tX{static compose(t,e,i,s){if(!t.keepProps.includes("treeGrid")){let e=t.prototype;t.keepProps.push("treeGrid"),tW(e,"generateTick",tD),tW(e,"init",tj),tW(e,"setTickInterval",t_),tW(e,"redraw",tF),e.utils={getNode:tr.getNode},o||(o=s)}return tt.compose(t,e,s),v.compose(t,i),tg.compose(s),t}constructor(t){this.axis=t}setCollapsedStatus(t){let e=this.axis,i=e.chart;e.series.forEach(function(e){let s=e.options.data;if(t.id&&s){let o=i.get(t.id),r=s[e.data.indexOf(o)];o&&r&&(o.collapsed=t.collapsed,r.collapsed=t.collapsed)}})}collapse(t){let e=this.axis,i=e.options.breaks||[],s=tz(t,e.max);return i.push(s),t.collapsed=!0,e.treeGrid.setCollapsedStatus(t),i}expand(t){let e=this.axis,i=e.options.breaks||[],s=tz(t,e.max);return t.collapsed=!1,e.treeGrid.setCollapsedStatus(t),i.reduce(function(t,e){return(e.to!==s.to||e.from!==s.from)&&t.push(e),t},[])}getTickPositions(){let t=this.axis,e=Math.floor(t.min/t.tickInterval)*t.tickInterval,i=Math.ceil(t.max/t.tickInterval)*t.tickInterval;return Object.keys(t.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=e&&r<=i&&!(t.brokenAxis&&t.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(t){let e=this.axis,i=e.options.breaks||[],s=tz(t,e.max);return i.some(function(t){return t.from===s.from&&t.to===s.to})}toggleCollapse(t){return this.isCollapsed(t)?this.expand(t):this.collapse(t)}}let tq=p();tX.compose(tq.Axis,tq.Chart,tq.Series,tq.Tick);let tV=p();return d.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/treegrid",["highcharts/highcharts"],function(t){return e(t,t.StackItem,t.Axis,t.Color)}):"object"==typeof exports?exports["highcharts/modules/treegrid"]=e(t._Highcharts,t._Highcharts.StackItem,t._Highcharts.Axis,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.StackItem,t.Highcharts.Axis,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e,i,s)=>(()=>{"use strict";let o;var r,n,a={532:t=>{t.exports=i},620:t=>{t.exports=s},184:t=>{t.exports=e},944:e=>{e.exports=t}},l={};function h(t){var e=l[t];if(void 0!==e)return e.exports;var i=l[t]={exports:{}};return a[t](i,i.exports,h),i.exports}h.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{for(var i in e)h.o(e,i)&&!h.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};h.d(d,{default:()=>tV});var c=h(944),p=h.n(c),f=h(184),u=h.n(f);let{addEvent:g,find:m,fireEvent:k,isArray:x,isNumber:b,pick:y}=p();!function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function s(){let t=this.brokenAxis;if(t?.hasBreaks){let e=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;ie.to||s>e.from&&oe.from&&oe.from&&o>e.to&&o0){let t,n;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(n&&!1!==n.visible||(n=i[r+1]),t=i[r],!1!==n.visible&&!1!==t.visible){if(n.x-t.x>o){let e=(t.x+n.x)/2;i.splice(r+1,0,{isNull:!0,x:e}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][e]=new(u())(s,s.options.stackLabels,!1,e,this.stack)).total=0)}n=t}}return this.getGraphPath(i)}t.compose=function(t,h){if(!t.keepProps.includes("brokenAxis")){t.keepProps.push("brokenAxis"),g(t,"init",o),g(t,"afterInit",e),g(t,"afterSetTickPositions",s),g(t,"afterSetOptions",i);let d=h.prototype;d.drawBreaks=a,d.gappedPath=l,g(h,"afterGeneratePoints",r),g(h,"afterRender",n)}return t};class h{static isInBreak(t,e){let i=t.repeat||1/0,s=t.from,o=t.to-t.from,r=e>=s?(e-s)%i:i-(s-e)%i;return t.inclusive?r<=o:r=s);r++)o.to=t)break;else if(h.isInBreak(o,t)){s-=t-o.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,e){return m(e,function(e){return e.from{t.from=o.parse(t.from)||0,t.to=o.parse(t.to)||0}),t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),r||s.val2lin!==h.val2Lin||(delete s.val2lin,delete s.lin2val),r&&(s.userOptions.ordinal=!1,s.lin2val=h.lin2Val,s.val2lin=h.val2Lin,s.setExtremes=function(t,e,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(t,o);)t=s.to;for(;s=i.findBreakAt(e,o);)e=s.from;ed;)p-=l;for(;p{t.getOffset()})}i&&t.apply(this)}function H(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:e,height:i,horiz:s,left:o,offset:r,opposite:a,options:l,top:h,width:d}=this,c=this.tickSize(),p=e&&e.getBBox().width,f=l.title.x,u=l.title.y,g=C(l.title.margin,s?5:10),m=e?this.chart.renderer.fontMetrics(e).f:0,k=(s?h+i:o)+(s?1:-1)*(a?-1:1)*(c?c[0]/2:0)+(this.side===n.bottom?m:0);t.titlePosition.x=s?o-(p||0)/2-g+f:k+(a?d:0)+r+f,t.titlePosition.y=s?k-(a?i:0)+(a?m:-m)/2+r+u:h-g+u}}function R(){let{chart:t,options:{grid:e={}},userOptions:i}=this;if(e.enabled&&function(t){let e=t.options;e.labels.align=C(e.labels.align,"center"),t.categories||(e.showLastLabel=!1),t.labelRotation=0,e.labels.rotation=0,e.minTickInterval=1}(this),e.columns){let s=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++ot.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,e;let i=this.tickmarkOffset,r=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(e=this.hiddenMarks.pop())&&e.element;)e.show();(t=this.ticks[n].label)&&(s-n>i?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[r].label)&&(r-o>i?this.hiddenLabels.push(t.hide()):t.show());let a=this.ticks[r].mark;a&&r-o0&&this.ticks[r].isLast&&this.hiddenMarks.push(a.hide())}}}function j(){let t=this.tickPositions&&this.tickPositions.info,e=this.options,i=e.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&e.dateTimeLabelFormats&&e.labels&&!B(s.align)&&(!1===e.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(e.labels.align="left",B(s.x)||(e.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function _(t){let e;let i=this.options,s=t.userOptions,o=i&&M(i.grid)?i.grid:{};!0===o.enabled&&(e=N(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(B(s.linkedTo)&&!B(s.tickPixelInterval)&&(e.tickPixelInterval=350),!(!B(s.tickPixelInterval)&&B(s.linkedTo))||B(s.tickPositioner)||B(s.tickInterval)||B(s.units)||(e.tickPositioner=function(t,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=e.units||[],r,n=1,a="year";for(let t=0;tt.setScale())}function q(t){let{horiz:e,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=e?s.cellHeight||o+i.height:o+i.width;w(t.tickSize)?t.tickSize[0]=r:t.tickSize=[r,0]}}function V(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function U(t){let{grid:e}=this;(e.columns||[]).forEach(e=>e.destroy(t.keepEvents)),e.columns=void 0}function $(t){let e=t.userOptions||{},i=e.grid||{};i.enabled&&B(i.borderColor)&&(e.tickColor=e.lineColor=i.borderColor),this.grid||(this.grid=new Z(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function K(t){let e=this.label,i=this.axis,s=i.reversed,o=i.chart,r=i.options.grid||{},a=i.options.labels,l=a.align,h=n[i.side],d=t.tickmarkOffset,c=i.tickPositions,p=this.pos-d,f=E(c[t.index+1])?c[t.index+1]-d:(i.max||0)+d,u=i.tickSize("tick"),g=u?u[0]:0,m=u?u[1]/2:0;if(!0===r.enabled){let r,n,d,c;if("top"===h?n=(r=i.top+i.offset)-g:"bottom"===h?r=(n=o.chartHeight-i.bottom+i.offset)+g:(r=i.top+i.len-(i.translate(s?f:p)||0),n=i.top+i.len-(i.translate(s?p:f)||0)),"right"===h?c=(d=o.chartWidth-i.right+i.offset)+g:"left"===h?d=(c=i.left+i.offset)-g:(d=Math.round(i.left+(i.translate(s?f:p)||0))-m,c=Math.min(Math.round(i.left+(i.translate(s?p:f)||0))-m,i.left+i.len)),this.slotWidth=c-d,t.pos.x="left"===l?d:"right"===l?c:d+(c-d)/2,t.pos.y=n+(r-n)/2,e){let i=o.renderer.fontMetrics(e),s=e.getBBox().height;if(a.useHTML)t.pos.y+=i.b+-(s/2);else{let e=Math.round(s/i.h);t.pos.y+=(i.b-(i.h-i.f))/2+-((e-1)*i.h/2)}}t.pos.x+=i.horiz&&a.x||0}}function Y(t){let{axis:e,value:i}=t;if(e.options.grid&&e.options.grid.enabled){let s;let o=e.tickPositions,r=(e.linkedParent||e).series[0],n=i===o[0],a=i===o[o.length-1],l=r&&I(r.options.data,function(t){return t[e.isXAxis?"x":"y"]===i});l&&r.is("gantt")&&(s=N(l),p().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(s,e.chart)),t.isFirst=n,t.isLast=a,t.point=s}}function J(){let t=this.options,e=t.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],a=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,h=this.linkedParent&&this.linkedParent.max,d=l||this.min,c=h||this.max,p=this.tickInterval,f=E(d)&&d>=o+p&&dd,g=E(c)&&n>c&&n-pa;!0===e.enabled&&!i&&(this.isXAxis||this.isLinked)&&((u||f)&&!t.startOnTick&&(s[0]=d),(g||m)&&!t.endOnTick&&(s[s.length-1]=c))}function Q(t){var e;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:t.apply(this,(e=arguments,Array.prototype.slice.call(e,1)))}!function(t){t[t.top=0]="top",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.left=3]="left"}(n||(n={}));class Z{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,e=t.chart,i=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],o=i?t.linkedParent:t,r=-1,n=0;return 3===t.side&&!e.inverted&&s.length?!t.linkedParent:((e[t.coll]||[]).forEach((e,i)=>{e.side!==t.side||e.options.isInternal||(n=i,e!==o||(r=i))}),n===r&&(!E(i)||s.length===i))}renderBorder(t){let e=this.axis,i=e.chart.renderer,s=e.options,o=i.path(t).addClass("highcharts-axis-line").add(e.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}G.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},G.W=function(t){let e=this.toParts(t),i=(e[7]+6)%7,s=e.slice(0);s[2]=e[2]-i+3;let o=this.toParts(this.makeTime(s[0],0,1));return 4!==o[7]&&(e[1]=0,e[2]=1+(11-o[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(o[0],o[1],o[2]))/6048e5)).toString()};let tt={compose:function(t,e,i){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=W,S(t.prototype,"unsquish",Q),S(t.prototype,"getOffset",z),O(t,"init",$),O(t,"afterGetTitlePosition",H),O(t,"afterInit",R),O(t,"afterRender",D),O(t,"afterSetAxisTranslation",j),O(t,"afterSetOptions",_),O(t,"afterSetOptions",F),O(t,"afterSetScale",X),O(t,"afterTickSize",q),O(t,"trimTicks",J),O(t,"destroy",U),O(e,"afterSetChartSize",V),O(i,"afterGetLabelPosition",K),O(i,"labelFormat",Y)),t}},{extend:te,isNumber:ti,pick:ts}=p();function to(t,e,i,s,o,r){let n=r&&r.after,a=r&&r.before,l={data:s,depth:i-1,id:t,level:i,parent:e||""},h=0,d=0,c,p;"function"==typeof a&&a(l,r);let f=(o[t]||[]).map(e=>{let s=to(e.id,t,i+1,e,o,r),n=e.start||NaN,a=!0===e.milestone?n:e.end||NaN;return c=!ti(c)||np?a:p,h=h+1+s.descendants,d=Math.max(s.height+1,d),s});return s&&(s.start=ts(s.start,c),s.end=ts(s.end,p)),te(l,{children:f,descendants:h,height:d}),"function"==typeof n&&n(l,r),l}let tr={getNode:to,getTree:function(t,e){return to("",null,1,null,function(t){let e=[],i=t.reduce((t,i)=>{let{parent:s="",id:o}=i;return void 0===t[s]&&(t[s]=[]),t[s].push(i),o&&e.push(o),t},{});return Object.keys(i).forEach(t=>{if(""!==t&&-1===e.indexOf(t)){let e=i[t].map(function(t){let{...e}=t;return e});i[""].push(...e),delete i[t]}}),i}(t),e)}},{addEvent:tn,removeEvent:ta,isObject:tl,isNumber:th,pick:td,wrap:tc}=p();function tp(){this.treeGrid||(this.treeGrid=new tg(this))}function tf(t,e,i,s,o,r,n,a,l){let h,d,c;let p=td(this.options&&this.options.labels,r),f=this.pos,u=this.axis,g="treegrid"===u.type,m=t.apply(this,[e,i,s,o,p,n,a,l]);if(g){let{width:t=0,padding:e=u.linkedParent?0:5}=p&&tl(p.symbol,!0)?p.symbol:{},i=p&&th(p.indentation)?p.indentation:0;c=(d=(h=u.treeGrid.mapOfPosToGridNode)&&h[f])&&d.depth||1,m.x+=t+2*e+(c-1)*i}return m}function tu(t){let e,i,s;let{pos:o,axis:r,label:n,treeGrid:a,options:l}=this,h=a?.labelIcon,d=n?.element,{treeGrid:c,options:p,chart:f,tickPositions:u}=r,g=c.mapOfPosToGridNode,m=td(l?.labels,p?.labels),k=m&&tl(m.symbol,!0)?m.symbol:{},x=g&&g[o],{descendants:b,depth:y}=x||{},v=x&&b&&b>0,P="treegrid"===r.type&&d,A=u.indexOf(o)>-1,G="highcharts-treegrid-node-",O=G+"level-",B=f.styledMode;P&&x&&n.removeClass(RegExp(O+".*")).addClass(O+y),t.apply(this,Array.prototype.slice.call(arguments,1)),P&&v?(e=c.isCollapsed(x),function(t,e){let i=t.treeGrid,s=!i.labelIcon,o=e.renderer,r=e.xy,n=e.options,a=n.width||0,l=n.height||0,h=n.padding??t.axis.linkedParent?0:5,d={x:r.x-a/2-h,y:r.y-l/2},c=e.collapsed?90:180,p=e.show&&th(d.y),f=i.labelIcon;f||(i.labelIcon=f=o.path(o.symbols[n.type](n.x||0,n.y||0,a,l)).addClass("highcharts-label-icon").add(e.group)),f[p?"show":"hide"](),o.styledMode||f.attr({cursor:"pointer",fill:td(e.color,"#666666"),"stroke-width":1,stroke:n.lineColor,strokeWidth:n.lineWidth||0}),f[s?"attr":"animate"]({translateX:d.x,translateY:d.y,rotation:c})}(this,{color:!B&&n.styles.color||"",collapsed:e,group:n.parentGroup,options:k,renderer:n.renderer,show:A,xy:n.xy}),i=G+(e?"collapsed":"expanded"),s=G+(e?"expanded":"collapsed"),n.addClass(i).removeClass(s),B||n.css({cursor:"pointer"}),[n,h].forEach(t=>{t&&!t.attachedTreeGridEvents&&(tn(t.element,"mouseover",function(){n.addClass("highcharts-treegrid-node-active"),n.renderer.styledMode||n.css({textDecoration:"underline"})}),tn(t.element,"mouseout",function(){!function(t,e){let i=tl(e.style)?e.style:{};t.removeClass("highcharts-treegrid-node-active"),t.renderer.styledMode||t.css({textDecoration:i.textDecoration||"none"})}(n,m)}),tn(t.element,"click",function(){a.toggleCollapse()}),t.attachedTreeGridEvents=!0)})):h&&(ta(d),n?.css({cursor:"default"}),h.destroy())}class tg{static compose(t){let e=t.prototype;e.toggleCollapse||(tn(t,"init",tp),tc(e,"getLabelPosition",tf),tc(e,"renderLabel",tu),e.collapse=function(t){this.treeGrid.collapse(t)},e.expand=function(t){this.treeGrid.expand(t)},e.toggleCollapse=function(t){this.treeGrid.toggleCollapse(t)})}constructor(t){this.tick=t}collapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.collapse(r);s.setBreaks(n,td(t,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(t){let{pos:e,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,r=s.mapOfPosToGridNode;if(o&&r){let i=r[e],n=s.expand(i);o.setBreaks(n,td(t,!0))}}toggleCollapse(t){let e=this.tick,i=e.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=e.pos,r=i.treeGrid.mapOfPosToGridNode[o],n=i.treeGrid.toggleCollapse(r);s.setBreaks(n,td(t,!0))}}}var tm=h(620),tk=h.n(tm);let{extend:tx,isArray:tb,isNumber:ty,isObject:tv,merge:tP,pick:tA,relativeLength:tG}=p(),{getLevelOptions:tO}={getColor:function(t,e){let i,s,o,r,n,a;let l=e.index,h=e.mapOptionsToLevel,d=e.parentColor,c=e.parentColorIndex,p=e.series,f=e.colors,u=e.siblings,g=p.points,m=p.chart.options.chart;return t&&(i=g[t.i],s=h[t.level]||{},i&&s.colorByPoint&&(r=i.index%(f?f.length:m.colorCount),o=f&&f[r]),p.chart.styledMode||(n=tA(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&l&&u?tk().parse(t).brighten(e.to*(l/u)).get():t})(d),p.color)),a=tA(i&&i.options.colorIndex,s&&s.colorIndex,r,c,e.colorIndex)),{color:n,colorIndex:a}},getLevelOptions:function(t){let e,i,s,o,r,n;let a={};if(tv(t))for(o=ty(t.from)?t.from:1,n=t.levels,i={},e=tv(t.defaults)?t.defaults:{},tb(n)&&(i=n.reduce((t,i)=>{let s,r,n;return tv(i)&&ty(i.level)&&(r=tA((n=tP({},i)).levelIsConstant,e.levelIsConstant),delete n.levelIsConstant,delete n.level,tv(t[s=i.level+(r?0:o-1)])?tP(!0,t[s],n):t[s]=n),t},{})),r=ty(t.to)?t.to:1,s=0;s<=r;s++)a[s]=tP({},e,tv(i[s])?i[s]:{});return a},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(n+t)/(e||1)-t}return tG(r,n)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],n=!1!==i.levelIsConstant,a=i.points[e.i],l=a&&a.options||{},h=[],d=0;e.levelDynamic=e.level-(n?0:r.level),e.name=tA(a&&a.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=tx({},i);tx(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),h.push(s),s.visible&&(d+=s.val)});let c=tA(l.value,d);return e.visible=c>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=c,e},updateRootId:function(t){let e,i;return tv(t)&&(i=tv(t.options)?t.options:{},e=tA(t.rootNode,i.rootId,""),tv(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:tB,isArray:tT,splat:tI,find:tw,fireEvent:tE,isObject:tN,isString:tC,merge:tL,pick:tS,removeEvent:tM,wrap:tW}=p();function tz(t,e){let i=t.collapseEnd||0,s=t.collapseStart||0;return i>=e&&(s-=.5),{from:s,to:i,showPoints:!1}}function tH(t,e,i){let s=[],o=[],r={},n=e||!1,a={},l=-1,h=tr.getTree(t,{after:function(t){let e=a[t.pos],i=0,s=0;e.children.forEach(function(t){s+=(t.descendants||0)+1,i=Math.max((t.height||0)+1,i)}),e.descendants=s,e.height=i,e.collapsed&&o.push(e)},before:function(t){let e,i;let o=tN(t.data,!0)?t.data:{},h=tC(o.name)?o.name:"",d=r[t.parent],c=tN(d,!0)?a[d.pos]:null;n&&tN(c,!0)&&(e=tw(c.children,function(t){return t.name===h}))?(i=e.pos,e.nodes.push(t)):i=l++,!a[i]&&(a[i]=e={depth:c?c.depth+1:0,name:h,id:o.id,nodes:[t],children:[],pos:i},-1!==i&&s.push(h),tN(c,!0)&&c.children.push(e)),tC(t.id)&&(r[t.id]=t),e&&!0===o.collapsed&&(e.collapsed=!0),t.pos=i}});return{categories:s,mapOfIdToNode:r,mapOfPosToGridNode:a=function(t,e){let i=function(t,s,o){let r=t.nodes,n=s+(-1===s?0:e-1),a=(n-s)/2,l=s+a;return r.forEach(function(t){let e=t.data;tN(e,!0)&&(e.y=s+(e.seriesIndex||0),delete e.seriesIndex),t.pos=l}),o[l]=t,t.pos=l,t.tickmarkOffset=a+.5,t.collapseStart=n+.5,t.children.forEach(function(t){i(t,n+1,o),n=(t.collapseEnd||0)-.5}),t.collapseEnd=n+.5,o};return i(t["-1"],-1,{})}(a,i),collapsedNodes:o,tree:h}}function tR(t){let e=t.target;e.axes.filter(t=>"treegrid"===t.type).forEach(function(i){let s=i.options||{},o=s.labels,r=i.uniqueNames,n=e.time.parse(s.max),a=!i.treeGrid.mapOfPosToGridNode||i.series.some(function(t){return!t.hasRendered||t.isDirtyData||t.isDirty}),l=0,h,d;if(a){let s=[];if(h=i.series.reduce(function(t,i){let o=i.options.data||[],n=o[0],a=Array.isArray(n)&&!n.find(t=>"object"==typeof t);return s.push(a),i.visible&&(o.forEach(function(s){(a||i.options.keys&&i.options.keys.length)&&(s=i.pointClass.prototype.optionsToObject.call({series:i},s),i.pointClass.setGanttPointAliases(s,e)),tN(s,!0)&&(s.seriesIndex=l,t.push(s))}),!0===r&&l++),t},[]),n&&h.length=0&&e.indexOf(t.x2||0)>=0&&(i=t)}),tN(i,!0)?tL(i):i});t.visible&&t.setData(i,!1)}),i.treeGrid.mapOptionsToLevel=tO({defaults:o,from:1,levels:o&&o.levels,to:i.treeGrid.tree&&i.treeGrid.tree.height}),"beforeRender"===t.type&&(i.treeGrid.collapsedNodes=d.collapsedNodes)}})}function tD(t,e){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.type,r=this.ticks,n=r[e],a,l,h;s&&this.treeGrid.mapOfPosToGridNode?((a=i[(h=this.treeGrid.mapOfPosToGridNode[e]).depth])&&(l={labels:a}),!n&&o?r[e]=n=new o(this,e,void 0,void 0,{category:h.name,tickmarkOffset:h.tickmarkOffset,options:l}):(n.parameters.category=h.name,n.options=l,n.addLabel())):t.apply(this,Array.prototype.slice.call(arguments,1))}function tj(t,e,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new tX(o)),r&&(tB(e,"beforeRender",tR),tB(e,"beforeRedraw",tR),tB(e,"addSeries",function(t){if(t.options.data){let e=tH(t.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(e.collapsedNodes)}}),tB(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(t){let e=o.treeGrid.collapse(t);o.brokenAxis&&(o.brokenAxis.setBreaks(e,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(e=>t.collapseStart!==e.collapseStart||t.collapseEnd!==e.collapseEnd)))})}),tB(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=tL({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),t.apply(o,[e,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function t_(t){let e=this.options,i=this.chart.time,s="number"==typeof e.linkedTo?this.chart[this.coll]?.[e.linkedTo]:void 0;if("treegrid"===this.type){if(this.min=this.userMin??i.parse(e.min)??this.dataMin,this.max=this.userMax??i.parse(e.max)??this.dataMax,tE(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],s){let t=s.getExtremes();this.min=tS(t.min,t.dataMin),this.max=tS(t.max,t.dataMax),this.tickPositions=s.tickPositions}this.linkedParent=s}else t.apply(this,Array.prototype.slice.call(arguments,1))}function tF(t){let e=this;"treegrid"===this.type&&e.visible&&e.tickPositions.forEach(function(t){let i=e.ticks[t];i.label&&i.label.attachedTreeGridEvents&&(tM(i.label.element),i.label.attachedTreeGridEvents=!1)}),t.apply(e,Array.prototype.slice.call(arguments,1))}class tX{static compose(t,e,i,s){if(!t.keepProps.includes("treeGrid")){let e=t.prototype;t.keepProps.push("treeGrid"),tW(e,"generateTick",tD),tW(e,"init",tj),tW(e,"setTickInterval",t_),tW(e,"redraw",tF),e.utils={getNode:tr.getNode},o||(o=s)}return tt.compose(t,e,s),v.compose(t,i),tg.compose(s),t}constructor(t){this.axis=t}setCollapsedStatus(t){let e=this.axis,i=e.chart;e.series.forEach(function(e){let s=e.options.data;if(t.id&&s){let o=i.get(t.id),r=s[e.data.indexOf(o)];o&&r&&(o.collapsed=t.collapsed,r.collapsed=t.collapsed)}})}collapse(t){let e=this.axis,i=e.options.breaks||[],s=tz(t,e.max);return i.push(s),t.collapsed=!0,e.treeGrid.setCollapsedStatus(t),i}expand(t){let e=this.axis,i=e.options.breaks||[],s=tz(t,e.max);return t.collapsed=!1,e.treeGrid.setCollapsedStatus(t),i.reduce(function(t,e){return(e.to!==s.to||e.from!==s.from)&&t.push(e),t},[])}getTickPositions(){let t=this.axis,e=Math.floor(t.min/t.tickInterval)*t.tickInterval,i=Math.ceil(t.max/t.tickInterval)*t.tickInterval;return Object.keys(t.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=e&&r<=i&&!(t.brokenAxis&&t.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(t){let e=this.axis,i=e.options.breaks||[],s=tz(t,e.max);return i.some(function(t){return t.from===s.from&&t.to===s.to})}toggleCollapse(t){return this.isCollapsed(t)?this.expand(t):this.collapse(t)}}let tq=p();tX.compose(tq.Axis,tq.Chart,tq.Series,tq.Tick);let tV=p();return d.default})()); \ No newline at end of file diff --git a/modules/treegrid.src.js b/modules/treegrid.src.js index bbef2217c4..d268d39991 100644 --- a/modules/treegrid.src.js +++ b/modules/treegrid.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts Gantt JS v12.0.2 (2024-12-04) + * @license Highcharts Gantt JS v12.1.0 (2024-12-17) * @module highcharts/modules/treegrid * @requires highcharts * diff --git a/modules/treemap.js b/modules/treemap.js index b8dc9a3874..6a67dba051 100644 --- a/modules/treemap.js +++ b/modules/treemap.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/treemap * @requires highcharts * @@ -7,4 +7,4 @@ * Authors: Jon Arild Nygard / Oystein Moseng * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/treemap",["highcharts/highcharts"],function(t){return e(t,t.Templating,t.Color,t.SeriesRegistry,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/treemap"]=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,i,s,o)=>(()=>{"use strict";var r,l,n={620:t=>{t.exports=i},28:t=>{t.exports=o},512:t=>{t.exports=s},984:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function h(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return n[t](i,i.exports,h),i.exports}h.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{for(var i in e)h.o(e,i)&&!h.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};h.d(d,{default:()=>tM});var p=h(944),u=/*#__PURE__*/h.n(p);let c={lang:{mainBreadcrumb:"Main"},options:{buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"#334eff"}},buttonSpacing:5,floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"#666666",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7}};var g=h(984);let{format:v}=/*#__PURE__*/h.n(g)(),{composed:b}=u(),{addEvent:m,defined:f,extend:y,fireEvent:x,isString:w,merge:T,objectEach:B,pick:L,pushUnique:A}=u();function P(){if(this.breadcrumbs){let t=this.resetZoomButton&&this.resetZoomButton.getBBox(),e=this.breadcrumbs.options;t&&"right"===e.position.align&&"plotBox"===e.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-t.width-e.buttonSpacing)}}function S(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function C(){let t=this.breadcrumbs;if(t&&!t.options.floating&&t.level){let e=t.options,i=e.buttonTheme,s=(i.height||0)+2*(i.padding||0)+e.buttonSpacing,o=e.position.verticalAlign;"bottom"===o?(this.marginBottom=(this.marginBottom||0)+s,t.yOffset=s):"middle"!==o?(this.plotTop+=s,t.yOffset=-s):t.yOffset=void 0}}function O(){this.breadcrumbs&&this.breadcrumbs.redraw()}function R(t){!0===t.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}class I{static compose(t,e){A(b,"Breadcrumbs")&&(m(t,"destroy",S),m(t,"afterShowResetZoom",P),m(t,"getMargins",C),m(t,"redraw",O),m(t,"selection",R),y(e.lang,c.lang))}constructor(t,e){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];let i=T(t.options.drilldown&&t.options.drilldown.drillUpButton,I.defaultOptions,t.options.navigation&&t.options.navigation.breadcrumbs,e);this.chart=t,this.options=i||{}}updateProperties(t){this.setList(t),this.setLevel(),this.isDirty=!0}setList(t){this.list=t}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(t){let e=this.chart,i=this.options,s=e.options.lang,o=L(i.format,i.showFullPath?"{level.name}":"← {level.name}"),r=s&&L(s.drillUpText,s.mainBreadcrumb),l=i.formatter&&i.formatter(t)||v(o,{level:t.levelOptions},e)||"";return(w(l)&&!l.length||"← "===l)&&f(r)&&(l=i.showFullPath?r:"← "+r),l}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let t=this.chart,e=this.options;!this.group&&e&&(this.group=t.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:e.zIndex}).add()),e.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let t=this.chart,e=this.list,i=this.options.buttonSpacing;this.destroyListElements();let s=this.group?this.group.getBBox().width:i,o=e[e.length-2];!t.drillUpButton&&this.level>0?t.drillUpButton=this.renderButton(o,s,i):t.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(t){if(this.group){let e=this.options,i=e.buttonTheme,s=e.position,o="chart"===e.relativeTo||"spacingBox"===e.relativeTo?void 0:"plotBox",r=this.group.getBBox(),l=2*(i.padding||0)+e.buttonSpacing;s.width=r.width+l,s.height=r.height+l;let n=T(s);t&&(n.x+=t),this.options.rtl&&(n.x+=s.width),n.y=L(n.y,this.yOffset,0),this.group.align(n,!0,o)}}renderButton(t,e,i){let s=this,o=this.chart,r=s.options,l=T(r.buttonTheme),n=o.renderer.button(s.getButtonText(t),e,i,function(e){let i;let o=r.events&&r.events.click;o&&(i=o.call(s,e,t)),!1!==i&&(r.showFullPath?e.newLevel=t.level:e.newLevel=s.level-1,x(s,"up",e))},l).addClass("highcharts-breadcrumbs-button").add(s.group);return o.styledMode||n.attr(r.style),n}renderSeparator(t,e){let i=this.chart,s=this.options.separator,o=i.renderer.label(s.text,t,e,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return i.styledMode||o.css(s.style),o}update(t){T(!0,this.options,t),this.destroy(),this.isDirty=!0}updateSingleButton(){let t=this.chart,e=this.list[this.level-1];t.drillUpButton&&t.drillUpButton.attr({text:this.getButtonText(e)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(t){let e=this.elementList;B(e,(i,s)=>{(t||!e[s].updated)&&((i=e[s]).button&&i.button.destroy(),i.separator&&i.separator.destroy(),delete i.button,delete i.separator,delete e[s])}),t&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){B(this.elementList,t=>{t.updated=!1})}updateListElements(){let t=this.elementList,e=this.options.buttonSpacing,i=this.list,s=this.options.rtl,o=s?-1:1,r=function(t,e){return o*t.getBBox().width+o*e},l=function(t,e,i){t.translate(e-t.getBBox().width,i)},n=this.group?r(this.group,e):e,a,h;for(let d=0,p=i.length;d{t.graphic=n=n&&n.destroy(),"function"==typeof s&&s()};Object.keys(i).length?n.animate(i,void 0,()=>e()):e()}}},{pie:{prototype:{pointClass:z}},scatter:{prototype:{pointClass:j}}}=H().seriesTypes,{extend:K,isNumber:$,pick:Y}=u();class Z extends j{constructor(){super(...arguments),this.shapeType="rect"}draw(t){_.draw(this,t)}getClassName(){let t=this.series,e=t.options,i=super.getClassName();return this.node.level<=t.nodeMap[t.rootNode].level&&this.node.children.length?i+=" highcharts-above-level":this.node.isLeaf||Y(e.interactByLeaf,!e.allowTraversingTree)?this.node.isLeaf||(i+=" highcharts-internal-node"):i+=" highcharts-internal-node-interactive",i}isValid(){return!!(this.id||$(this.value))}setState(t){super.setState.apply(this,arguments),this.graphic&&this.graphic.attr({zIndex:"hover"===t?1:0})}shouldDraw(){return $(this.plotY)&&null!==this.y}}K(Z.prototype,{setVisible:z.prototype.setVisible});let{isString:q}=u(),X={allowTraversingTree:!1,animationLimit:250,borderRadius:0,showInLegend:!1,marker:void 0,colorByPoint:!1,dataLabels:{defer:!1,enabled:!0,formatter:function(){let t=this&&this.point?this.point:{};return q(t.name)?t.name:""},inside:!0,verticalAlign:"middle"},tooltip:{headerFormat:"",pointFormat:"{point.name}: {point.value}
    "},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1,levelIsConstant:!0,traverseUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,colorKey:"colorValue",opacity:.15,states:{hover:{borderColor:"#999999",brightness:H().seriesTypes.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}},legendSymbol:"rectangle",traverseToLeaf:!1};(l||(l={})).recursive=function t(e,i,s){let o=i.call(s||this,e);!1!==o&&t(o,i,s)};let J=l,{extend:Q,isArray:tt,isNumber:te,isObject:ti,merge:ts,pick:to,relativeLength:tr}=u(),{parse:tl}=N(),{composed:tn,noop:ta}=u(),{column:th,scatter:td}=H().seriesTypes,{getColor:tp,getLevelOptions:tu,updateRootId:tc}={getColor:function(t,e){let i,s,o,r,l,n;let a=e.index,h=e.mapOptionsToLevel,d=e.parentColor,p=e.parentColorIndex,u=e.series,c=e.colors,g=e.siblings,v=u.points,b=u.chart.options.chart;return t&&(i=v[t.i],s=h[t.level]||{},i&&s.colorByPoint&&(r=i.index%(c?c.length:b.colorCount),o=c&&c[r]),u.chart.styledMode||(l=to(i&&i.options.color,s&&s.color,o,d&&(t=>{let e=s&&s.colorVariation;return e&&"brightness"===e.key&&a&&g?N().parse(t).brighten(e.to*(a/g)).get():t})(d),u.color)),n=to(i&&i.options.colorIndex,s&&s.colorIndex,r,p,e.colorIndex)),{color:l,colorIndex:n}},getLevelOptions:function(t){let e,i,s,o,r,l;let n={};if(ti(t))for(o=te(t.from)?t.from:1,l=t.levels,i={},e=ti(t.defaults)?t.defaults:{},tt(l)&&(i=l.reduce((t,i)=>{let s,r,l;return ti(i)&&te(i.level)&&(r=to((l=ts({},i)).levelIsConstant,e.levelIsConstant),delete l.levelIsConstant,delete l.level,ti(t[s=i.level+(r?0:o-1)])?ts(!0,t[s],l):t[s]=l),t},{})),r=te(t.to)?t.to:1,s=0;s<=r;s++)n[s]=ts({},e,ti(i[s])?i[s]:{});return n},getNodeWidth:function(t,e){let{chart:i,options:s}=t,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:l=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return l/(e+parseFloat(o)/100*(e-1));let t=Number(o);return(l+t)/(e||1)-t}return tr(r,l)},setTreeValues:function t(e,i){let s=i.before,o=i.idRoot,r=i.mapIdToNode[o],l=!1!==i.levelIsConstant,n=i.points[e.i],a=n&&n.options||{},h=[],d=0;e.levelDynamic=e.level-(l?0:r.level),e.name=to(n&&n.name,""),e.visible=o===e.id||!0===i.visible,"function"==typeof s&&(e=s(e,i)),e.children.forEach((s,o)=>{let r=Q({},i);Q(r,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,r),h.push(s),s.visible&&(d+=s.val)});let p=to(a.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,i;return ti(t)&&(i=ti(t.options)?t.options:{},e=to(t.rootNode,i.rootId,""),ti(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:tg,correctFloat:tv,crisp:tb,defined:tm,error:tf,extend:ty,fireEvent:tx,isArray:tw,isObject:tT,isString:tB,merge:tL,pick:tA,pushUnique:tP,stableSort:tS}=u(),tC=!1;function tO(){let t;let e=this.xAxis,i=this.yAxis;e&&i&&(this.is("treemap")?(t={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,minPadding:0,max:100,maxPadding:0,startOnTick:!1,title:void 0,tickPositions:[]},ty(i.options,t),ty(e.options,t),tC=!0):tC&&(i.setOptions(i.userOptions),e.setOptions(e.userOptions),tC=!1))}class tR extends td{static compose(t){tP(tn,"TreemapSeries")&&tg(t,"afterBindAxes",tO)}algorithmCalcPoints(t,e,i,s){let o=i.plot,r=i.elArr.length-1,l,n,a,h,d=i.lW,p=i.lH,u,c=0;for(let t of(e?(d=i.nW,p=i.nH):u=i.elArr[r],i.elArr))(e||cn.lP.lR&&this.algorithmCalcPoints(t,!1,n,s,o),h===l&&this.algorithmCalcPoints(t,!0,n,s,o),++h;return s}alignDataLabel(t,e,i){let s=i.style;s&&!tm(s.textOverflow)&&e.text&&e.getBBox().width>(e.text.textWidth||0)&&e.css({textOverflow:"ellipsis",width:s.width+="px"}),th.prototype.alignDataLabel.apply(this,arguments),t.dataLabel&&t.dataLabel.attr({zIndex:(t.node.zIndex||0)+1})}calculateChildrenAreas(t,e){let i=this.options,s=this.mapOptionsToLevel[t.level+1],o=tA(this[s&&s.layoutAlgorithm]&&s.layoutAlgorithm,i.layoutAlgorithm),r=i.alternateStartingDirection,l=t.children.filter(t=>!t.ignore),n=[];s&&s.layoutStartingDirection&&(e.direction="vertical"===s.layoutStartingDirection?0:1),n=this[o](e,l);let a=-1;for(let t of l){let i=n[++a];t.values=tL(i,{val:t.childrenTotal,direction:r?1-e.direction:e.direction}),t.pointValues=tL(i,{x:i.x/this.axisRatio,y:100-i.y-i.height,width:i.width/this.axisRatio}),t.children.length&&this.calculateChildrenAreas(t,t.values)}}createList(t){let e=this.chart,i=e.breadcrumbs,s=[];if(i){let i=0;s.push({level:i,levelOptions:e.series[0]});let o=t.target.nodeMap[t.newRootId],r=[];for(;o.parent||""===o.parent;)r.push(o),o=t.target.nodeMap[o.parent];for(let t of r.reverse())s.push({level:++i,levelOptions:t});s.length<=1&&(s.length=0)}return s}drawDataLabels(){let t,e;let i=this.mapOptionsToLevel;for(let s of this.points.filter(function(t){return t.node.visible})){if(e=i[s.node.level],t={style:{}},s.node.isLeaf||(t.enabled=!1),e&&e.dataLabels&&(t=tL(t,e.dataLabels),this.hasDataLabels=()=>!0),s.shapeArgs){let e={width:`${s.shapeArgs.width||0}px`,lineClamp:Math.floor((s.shapeArgs.height||0)/16)};ty(t.style,e),s.dataLabel?.css(e)}s.dlOptions=tL(t,s.options.dataLabels)}super.drawDataLabels()}drawPoints(t=this.points){let e=this.chart,i=e.renderer,s=e.styledMode,o=this.options,r=s?{}:o.shadow,l=o.borderRadius,n=e.pointCount{let e=t.userOptions;tm(e.allowDrillToNode)&&!tm(e.allowTraversingTree)&&(e.allowTraversingTree=e.allowDrillToNode,delete e.allowDrillToNode),tm(e.drillUpButton)&&!tm(e.traverseUpButton)&&(e.traverseUpButton=e.drillUpButton,delete e.drillUpButton)});super.init(t,e),delete i.opacity,i.eventsToUnbind.push(o),i.options.allowTraversingTree&&(i.eventsToUnbind.push(tg(i,"click",i.onClickDrillToNode)),i.eventsToUnbind.push(tg(i,"setRootNode",function(t){let e=i.chart;e.breadcrumbs&&e.breadcrumbs.updateProperties(i.createList(t))})),i.eventsToUnbind.push(tg(i,"update",function(t,e){let i=this.chart.breadcrumbs;i&&t.options.breadcrumbs&&i.update(t.options.breadcrumbs)})),i.eventsToUnbind.push(tg(i,"destroy",function(t){let e=this.chart;e.breadcrumbs&&!t.keepEventsForUpdate&&(e.breadcrumbs.destroy(),e.breadcrumbs=void 0)}))),t.breadcrumbs||(t.breadcrumbs=new I(t,s)),i.eventsToUnbind.push(tg(t.breadcrumbs,"up",function(t){let e=this.level-t.newLevel;for(let t=0;to?0:t.pointAttribs(e)["stroke-width"]||0;for(let t of e){let{pointValues:e,visible:o}=t.node;if(e&&o){let{height:o,width:l,x:n,y:a}=e,h=r(t),d=tb(i.toPixels(n,!0),h,!0),p=tb(i.toPixels(n+l,!0),h,!0),u=tb(s.toPixels(a,!0),h,!0),c=tb(s.toPixels(a+o,!0),h,!0),g={x:Math.min(d,p),y:Math.min(u,c),width:Math.abs(p-d),height:Math.abs(c-u)};t.plotX=g.x+g.width/2,t.plotY=g.y+g.height/2,t.shapeArgs=g}else delete t.plotX,delete t.plotY}}setRootNode(t,e,i){tx(this,"setRootNode",ty({newRootId:t,previousRootId:this.rootNode,redraw:tA(e,!0),series:this},i),function(t){let e=t.series;e.idPreviousRoot=t.previousRootId,e.rootNode=t.newRootId,e.isDirty=!0,t.redraw&&e.chart.redraw()})}setState(t){this.options.inactiveOtherPoints=!0,super.setState(t,!1),this.options.inactiveOtherPoints=!1}setTreeValues(t){let e=this.options,i=this.rootNode,s=this.nodeMap[i],o="boolean"!=typeof e.levelIsConstant||e.levelIsConstant,r=[],l=this.points[t.i],n=0;for(let e of t.children)e=this.setTreeValues(e),r.push(e),e.ignore||(n+=e.val);tS(r,(t,e)=>(t.sortIndex||0)-(e.sortIndex||0));let a=tA(l&&l.options.value,n);return l&&(l.value=a),ty(t,{children:r,childrenTotal:n,ignore:!(tA(l&&l.visible,!0)&&a>0),isLeaf:t.visible&&!n,levelDynamic:t.level-(o?0:s.level),name:tA(l&&l.name,""),sortIndex:tA(l&&l.sortIndex,-a),val:a}),t}sliceAndDice(t,e){return this.algorithmFill(!0,t,e)}squarified(t,e){return this.algorithmLowAspectRatio(!0,t,e)}strip(t,e){return this.algorithmLowAspectRatio(!1,t,e)}stripes(t,e){return this.algorithmFill(!1,t,e)}translate(){let t=this,e=t.options,i=tc(t),s,o,r,l;super.translate();let n=t.tree=t.getTree();s=t.nodeMap[i],""===i||s||(t.setRootNode("",!1),i=t.rootNode,s=t.nodeMap[i]),t.mapOptionsToLevel=tu({from:s.level+1,levels:e.levels,to:n.height,defaults:{levelIsConstant:t.options.levelIsConstant,colorByPoint:e.colorByPoint}}),J.recursive(t.nodeMap[t.rootNode],e=>{let i=e.parent,s=!1;return e.visible=!0,(i||""===i)&&(s=t.nodeMap[i]),s}),J.recursive(t.nodeMap[t.rootNode].children,t=>{let e=!1;for(let i of t)i.visible=!0,i.children.length&&(e=(e||[]).concat(i.children));return e}),t.setTreeValues(n),t.axisRatio=t.xAxis.len/t.yAxis.len,t.nodeMap[""].pointValues=o={x:0,y:0,width:100,height:100},t.nodeMap[""].values=r=tL(o,{width:o.width*t.axisRatio,direction:"vertical"===e.layoutStartingDirection?0:1,val:n.val}),t.calculateChildrenAreas(n,r),t.colorAxis||e.colorByPoint||t.setColorRecursive(t.tree),e.allowTraversingTree&&(l=s.pointValues,t.xAxis.setExtremes(l.x,l.x+l.width,!1),t.yAxis.setExtremes(l.y,l.y+l.height,!1),t.xAxis.setScale(),t.yAxis.setScale()),t.setPointValues()}}tR.defaultOptions=tL(td.defaultOptions,X),ty(tR.prototype,{buildKDTree:ta,colorAttribs:G.seriesMembers.colorAttribs,colorKey:"colorValue",directTouch:!0,getExtremesFromAll:!0,getSymbol:ta,optionalAxis:"colorAxis",parallelArrays:["x","y","value","colorValue"],pointArrayMap:["value","colorValue"],pointClass:Z,NodeClass:class{constructor(){this.childrenTotal=0,this.visible=!1}init(t,e,i,s,o,r,l){return this.id=t,this.i=e,this.children=i,this.height=s,this.level=o,this.series=r,this.parent=l,this}},trackerGroups:["group","dataLabelsGroup"],utils:J}),G.compose(tR),H().registerSeriesType("treemap",tR);let tI=u();tI.Breadcrumbs=tI.Breadcrumbs||I,tI.Breadcrumbs.compose(tI.Chart,tI.defaultOptions),tR.compose(tI.Series);let tM=u();return d.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):"function"==typeof define&&define.amd?define("highcharts/modules/treemap",["highcharts/highcharts"],function(t){return e(t,t.Templating,t.Color,t.SeriesRegistry,t.SVGElement)}):"object"==typeof exports?exports["highcharts/modules/treemap"]=e(t._Highcharts,t._Highcharts.Templating,t._Highcharts.Color,t._Highcharts.SeriesRegistry,t._Highcharts.SVGElement):t.Highcharts=e(t.Highcharts,t.Highcharts.Templating,t.Highcharts.Color,t.Highcharts.SeriesRegistry,t.Highcharts.SVGElement)}("undefined"==typeof window?this:window,(t,e,i,o,s)=>(()=>{"use strict";var r,l,n={620:t=>{t.exports=i},28:t=>{t.exports=s},512:t=>{t.exports=o},984:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function h(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return n[t](i,i.exports,h),i.exports}h.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{for(var i in e)h.o(e,i)&&!h.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var d={};h.d(d,{default:()=>tI});var p=h(944),u=h.n(p);let c={lang:{mainBreadcrumb:"Main"},options:{buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"#334eff"}},buttonSpacing:5,floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"#666666",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7}};var g=h(984);let{format:v}=h.n(g)(),{composed:m}=u(),{addEvent:b,defined:f,extend:y,fireEvent:x,isString:T,merge:w,objectEach:L,pick:B,pushUnique:A}=u();function P(){if(this.breadcrumbs){let t=this.resetZoomButton&&this.resetZoomButton.getBBox(),e=this.breadcrumbs.options;t&&"right"===e.position.align&&"plotBox"===e.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-t.width-e.buttonSpacing)}}function S(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function C(){let t=this.breadcrumbs;if(t&&!t.options.floating&&t.level){let e=t.options,i=e.buttonTheme,o=(i.height||0)+2*(i.padding||0)+e.buttonSpacing,s=e.position.verticalAlign;"bottom"===s?(this.marginBottom=(this.marginBottom||0)+o,t.yOffset=o):"middle"!==s?(this.plotTop+=o,t.yOffset=-o):t.yOffset=void 0}}function O(){this.breadcrumbs&&this.breadcrumbs.redraw()}function N(t){!0===t.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}class R{static compose(t,e){A(m,"Breadcrumbs")&&(b(t,"destroy",S),b(t,"afterShowResetZoom",P),b(t,"getMargins",C),b(t,"redraw",O),b(t,"selection",N),y(e.lang,c.lang))}constructor(t,e){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];let i=w(t.options.drilldown&&t.options.drilldown.drillUpButton,R.defaultOptions,t.options.navigation&&t.options.navigation.breadcrumbs,e);this.chart=t,this.options=i||{}}updateProperties(t){this.setList(t),this.setLevel(),this.isDirty=!0}setList(t){this.list=t}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(t){let e=this.chart,i=this.options,o=e.options.lang,s=B(i.format,i.showFullPath?"{level.name}":"← {level.name}"),r=o&&B(o.drillUpText,o.mainBreadcrumb),l=i.formatter&&i.formatter(t)||v(s,{level:t.levelOptions},e)||"";return(T(l)&&!l.length||"← "===l)&&f(r)&&(l=i.showFullPath?r:"← "+r),l}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let t=this.chart,e=this.options;!this.group&&e&&(this.group=t.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:e.zIndex}).add()),e.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let t=this.chart,e=this.list,i=this.options.buttonSpacing;this.destroyListElements();let o=this.group?this.group.getBBox().width:i,s=e[e.length-2];!t.drillUpButton&&this.level>0?t.drillUpButton=this.renderButton(s,o,i):t.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(t){if(this.group){let e=this.options,i=e.buttonTheme,o=e.position,s="chart"===e.relativeTo||"spacingBox"===e.relativeTo?void 0:"plotBox",r=this.group.getBBox(),l=2*(i.padding||0)+e.buttonSpacing;o.width=r.width+l,o.height=r.height+l;let n=w(o);t&&(n.x+=t),this.options.rtl&&(n.x+=o.width),n.y=B(n.y,this.yOffset,0),this.group.align(n,!0,s)}}renderButton(t,e,i){let o=this,s=this.chart,r=o.options,l=w(r.buttonTheme),n=s.renderer.button(o.getButtonText(t),e,i,function(e){let i;let s=r.events&&r.events.click;s&&(i=s.call(o,e,t)),!1!==i&&(r.showFullPath?e.newLevel=t.level:e.newLevel=o.level-1,x(o,"up",e))},l).addClass("highcharts-breadcrumbs-button").add(o.group);return s.styledMode||n.attr(r.style),n}renderSeparator(t,e){let i=this.chart,o=this.options.separator,s=i.renderer.label(o.text,t,e,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return i.styledMode||s.css(o.style),s}update(t){w(!0,this.options,t),this.destroy(),this.isDirty=!0}updateSingleButton(){let t=this.chart,e=this.list[this.level-1];t.drillUpButton&&t.drillUpButton.attr({text:this.getButtonText(e)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(t){let e=this.elementList;L(e,(i,o)=>{(t||!e[o].updated)&&((i=e[o]).button&&i.button.destroy(),i.separator&&i.separator.destroy(),delete i.button,delete i.separator,delete e[o])}),t&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){L(this.elementList,t=>{t.updated=!1})}updateListElements(){let t=this.elementList,e=this.options.buttonSpacing,i=this.list,o=this.options.rtl,s=o?-1:1,r=function(t,e){return s*t.getBBox().width+s*e},l=function(t,e,i){t.translate(e-t.getBBox().width,i)},n=this.group?r(this.group,e):e,a,h;for(let d=0,p=i.length;d{t.graphic=n=n&&n.destroy(),"function"==typeof o&&o()};Object.keys(i).length?n.animate(i,void 0,()=>e()):e()}}},{pie:{prototype:{pointClass:_}},scatter:{prototype:{pointClass:j}}}=G().seriesTypes,{extend:$,isNumber:K,pick:Y}=u();class Z extends j{constructor(){super(...arguments),this.groupedPointsAmount=0,this.shapeType="rect"}draw(t){z.draw(this,t)}getClassName(){let t=this.series,e=t.options,i=super.getClassName();return this.node.level<=t.nodeMap[t.rootNode].level&&this.node.children.length?i+=" highcharts-above-level":this.node.isGroup||this.node.isLeaf||t.nodeMap[t.rootNode].isGroup||Y(e.interactByLeaf,!e.allowTraversingTree)?this.node.isGroup||this.node.isLeaf||t.nodeMap[t.rootNode].isGroup||(i+=" highcharts-internal-node"):i+=" highcharts-internal-node-interactive",i}isValid(){return!!(this.id||K(this.value))}setState(t){super.setState.apply(this,arguments),this.graphic&&this.graphic.attr({zIndex:"hover"===t?1:0})}shouldDraw(){return K(this.plotY)&&null!==this.y}}$(Z.prototype,{setVisible:_.prototype.setVisible});let{isString:q}=u(),X={allowTraversingTree:!1,animationLimit:250,borderRadius:0,showInLegend:!1,marker:void 0,colorByPoint:!1,dataLabels:{defer:!1,enabled:!0,formatter:function(){let t=this&&this.point?this.point:{};return q(t.name)?t.name:""},inside:!0,padding:2,verticalAlign:"middle",style:{textOverflow:"ellipsis"}},tooltip:{headerFormat:"",pointFormat:"{point.name}: {point.value}
    ",clusterFormat:"+ {point.groupedPointsAmount} more...
    "},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1,levelIsConstant:!0,traverseUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,colorKey:"colorValue",opacity:.15,states:{hover:{borderColor:"#999999",brightness:G().seriesTypes.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}},legendSymbol:"rectangle",traverseToLeaf:!1,cluster:{className:void 0,color:void 0,enabled:!1,pixelWidth:void 0,pixelHeight:void 0,name:void 0,reductionFactor:void 0,minimumClusterSize:5,layoutAlgorithm:{distance:0,gridSize:0,kmeansThreshold:0},marker:{lineWidth:0,radius:0}}};(l||(l={})).recursive=function t(e,i,o){let s=i.call(o||this,e);!1!==s&&t(s,i,o)};let J=l,{extend:Q,isArray:tt,isNumber:te,isObject:ti,merge:to,pick:ts,relativeLength:tr}=u(),{parse:tl}=I(),{composed:tn,noop:ta}=u(),{column:th,scatter:td}=G().seriesTypes,{getColor:tp,getLevelOptions:tu,updateRootId:tc}={getColor:function(t,e){let i,o,s,r,l,n;let a=e.index,h=e.mapOptionsToLevel,d=e.parentColor,p=e.parentColorIndex,u=e.series,c=e.colors,g=e.siblings,v=u.points,m=u.chart.options.chart;return t&&(i=v[t.i],o=h[t.level]||{},i&&o.colorByPoint&&(r=i.index%(c?c.length:m.colorCount),s=c&&c[r]),u.chart.styledMode||(l=ts(i&&i.options.color,o&&o.color,s,d&&(t=>{let e=o&&o.colorVariation;return e&&"brightness"===e.key&&a&&g?I().parse(t).brighten(e.to*(a/g)).get():t})(d),u.color)),n=ts(i&&i.options.colorIndex,o&&o.colorIndex,r,p,e.colorIndex)),{color:l,colorIndex:n}},getLevelOptions:function(t){let e,i,o,s,r,l;let n={};if(ti(t))for(s=te(t.from)?t.from:1,l=t.levels,i={},e=ti(t.defaults)?t.defaults:{},tt(l)&&(i=l.reduce((t,i)=>{let o,r,l;return ti(i)&&te(i.level)&&(r=ts((l=to({},i)).levelIsConstant,e.levelIsConstant),delete l.levelIsConstant,delete l.level,ti(t[o=i.level+(r?0:s-1)])?to(!0,t[o],l):t[o]=l),t},{})),r=te(t.to)?t.to:1,o=0;o<=r;o++)n[o]=to({},e,ti(i[o])?i[o]:{});return n},getNodeWidth:function(t,e){let{chart:i,options:o}=t,{nodeDistance:s=0,nodeWidth:r=0}=o,{plotSizeX:l=1}=i;if("auto"===r){if("string"==typeof s&&/%$/.test(s))return l/(e+parseFloat(s)/100*(e-1));let t=Number(s);return(l+t)/(e||1)-t}return tr(r,l)},setTreeValues:function t(e,i){let o=i.before,s=i.idRoot,r=i.mapIdToNode[s],l=!1!==i.levelIsConstant,n=i.points[e.i],a=n&&n.options||{},h=[],d=0;e.levelDynamic=e.level-(l?0:r.level),e.name=ts(n&&n.name,""),e.visible=s===e.id||!0===i.visible,"function"==typeof o&&(e=o(e,i)),e.children.forEach((o,s)=>{let r=Q({},i);Q(r,{index:s,siblings:e.children.length,visible:e.visible}),o=t(o,r),h.push(o),o.visible&&(d+=o.val)});let p=ts(a.value,d);return e.visible=p>=0&&(d>0||e.visible),e.children=h,e.childrenTotal=d,e.isLeaf=e.visible&&!d,e.val=p,e},updateRootId:function(t){let e,i;return ti(t)&&(i=ti(t.options)?t.options:{},e=ts(t.rootNode,i.rootId,""),ti(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}},{addEvent:tg,correctFloat:tv,crisp:tm,defined:tb,error:tf,extend:ty,fireEvent:tx,isArray:tT,isObject:tw,isString:tL,merge:tB,pick:tA,pushUnique:tP,splat:tS,stableSort:tC}=u(),tO=!1;function tN(){let t;let e=this.xAxis,i=this.yAxis;e&&i&&(this.is("treemap")?(t={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,minPadding:0,max:100,maxPadding:0,startOnTick:!1,title:void 0,tickPositions:[]},ty(i.options,t),ty(e.options,t),tO=!0):tO&&(i.setOptions(i.userOptions),e.setOptions(e.userOptions),tO=!1))}class tR extends td{static compose(t){tP(tn,"TreemapSeries")&&tg(t,"afterBindAxes",tN)}algorithmCalcPoints(t,e,i,o){let s=i.plot,r=i.elArr.length-1,l,n,a,h,d=i.lW,p=i.lH,u,c=0;for(let t of(e?(d=i.nW,p=i.nH):u=i.elArr[r],i.elArr))(e||cn.lP.lR&&this.algorithmCalcPoints(t,!1,n,o,s),h===l&&this.algorithmCalcPoints(t,!0,n,o,s),++h;return o}alignDataLabel(t,e,i){th.prototype.alignDataLabel.apply(this,arguments),t.dataLabel&&t.dataLabel.attr({zIndex:(t.node.zIndex||0)+1})}applyTreeGrouping(){let t=this,e=t.parentList||{},{cluster:i}=t.options,o=i?.minimumClusterSize||5;if(i?.enabled){let s={},r=t=>{if(t?.point?.shapeArgs){let{width:e=0,height:o=0}=t.point.shapeArgs,{pixelWidth:r=0,pixelHeight:l=0}=i,n=tb(l),a=l?r*l:r*r;(e{r(t)})};for(let l in r(t.tree),s)s[l]&&s[l].length>o&&s[l].forEach(o=>{let s=e[l].indexOf(o.i);if(-1!==s){e[l].splice(s,1);let r=`highcharts-grouped-treemap-points-${o.parent||"root"}`,n=t.points.find(t=>t.id===r);if(!n){let o=t.pointClass,s=t.points.length;ty(n=new o(t,{className:i.className,color:i.color,id:r,index:s,isGroup:!0,value:0}),{formatPrefix:"cluster"}),t.points.push(n),e[l].push(s),e[r]=[]}let a=n.groupedPointsAmount+1,h=t.points[n.index].options.value||0,d=i.name||`+ ${a}`;t.points[n.index].groupedPointsAmount=a,t.points[n.index].options.value=h+(o.point.value||0),t.points[n.index].name=d,e[r].push(o.point.index)}});t.nodeMap={},t.nodeList=[],t.parentList=e;let l=t.buildTree("",-1,0,t.parentList);t.translate(l)}}calculateChildrenAreas(t,e){let i=this.options,o=this.mapOptionsToLevel[t.level+1],s=tA(o?.layoutAlgorithm&&this[o?.layoutAlgorithm]&&o.layoutAlgorithm,this.options.layoutAlgorithm),r=i.alternateStartingDirection,l=t.children.filter(e=>t.isGroup||!e.ignore);if(!s)return;let n=[];o&&o.layoutStartingDirection&&(e.direction="vertical"===o.layoutStartingDirection?0:1),n=this[s](e,l);let a=-1;for(let t of l){let i=n[++a];t.values=tB(i,{val:t.childrenTotal,direction:r?1-e.direction:e.direction}),t.pointValues=tB(i,{x:i.x/this.axisRatio,y:100-i.y-i.height,width:i.width/this.axisRatio}),t.children.length&&this.calculateChildrenAreas(t,t.values)}}createList(t){let e=this.chart,i=e.breadcrumbs,o=[];if(i){let i=0;o.push({level:i,levelOptions:e.series[0]});let s=t.target.nodeMap[t.newRootId],r=[];for(;s.parent||""===s.parent;)r.push(s),s=t.target.nodeMap[s.parent];for(let t of r.reverse())o.push({level:++i,levelOptions:t});o.length<=1&&(o.length=0)}return o}drawDataLabels(){let t,e;let i=this.mapOptionsToLevel,o=this.points.filter(function(t){return t.node.visible||tb(t.dataLabel)}),s=tS(this.options.dataLabels||{})[0]?.padding;for(let r of o){if(e=i[r.node.level],t={style:{}},(!r.node.isLeaf&&!r.node.isGroup||r.node.isGroup&&r.node.level<=this.nodeMap[this.rootNode].level)&&(t.enabled=!1),e&&e.dataLabels&&(t=tB(t,e.dataLabels),this.hasDataLabels=()=>!0),r.shapeArgs){let e={width:(r.shapeArgs.width||0)-2*(t.padding||s||0)+"px",lineClamp:Math.floor((r.shapeArgs.height||0)/16)};ty(t.style,e),r.dataLabel?.css(e)}r.dlOptions=tB(t,r.options.dataLabels)}super.drawDataLabels(o)}drawPoints(t=this.points){let e=this.chart,i=e.renderer,o=e.styledMode,s=this.options,r=o?{}:s.shadow,l=s.borderRadius,n=e.pointCount{let e=t.userOptions;tb(e.allowDrillToNode)&&!tb(e.allowTraversingTree)&&(e.allowTraversingTree=e.allowDrillToNode,delete e.allowDrillToNode),tb(e.drillUpButton)&&!tb(e.traverseUpButton)&&(e.traverseUpButton=e.drillUpButton,delete e.drillUpButton)});super.init(t,e),delete i.opacity,i.eventsToUnbind.push(s),i.options.allowTraversingTree&&(i.eventsToUnbind.push(tg(i,"click",i.onClickDrillToNode)),i.eventsToUnbind.push(tg(i,"setRootNode",function(t){let e=i.chart;e.breadcrumbs&&e.breadcrumbs.updateProperties(i.createList(t))})),i.eventsToUnbind.push(tg(i,"update",function(t,e){let i=this.chart.breadcrumbs;i&&t.options.breadcrumbs&&i.update(t.options.breadcrumbs)})),i.eventsToUnbind.push(tg(i,"destroy",function(t){let e=this.chart;e.breadcrumbs&&!t.keepEventsForUpdate&&(e.breadcrumbs.destroy(),e.breadcrumbs=void 0)}))),t.breadcrumbs||(t.breadcrumbs=new R(t,o)),i.eventsToUnbind.push(tg(t.breadcrumbs,"up",function(t){let e=this.level-t.newLevel;for(let t=0;ts?0:t.pointAttribs(e)["stroke-width"]||0;for(let t of e){let{pointValues:e,visible:s}=t.node;if(e&&s){let{height:s,width:l,x:n,y:a}=e,h=r(t),d=tm(i.toPixels(n,!0),h,!0),p=tm(i.toPixels(n+l,!0),h,!0),u=tm(o.toPixels(a,!0),h,!0),c=tm(o.toPixels(a+s,!0),h,!0),g={x:Math.min(d,p),y:Math.min(u,c),width:Math.abs(p-d),height:Math.abs(c-u)};t.plotX=g.x+g.width/2,t.plotY=g.y+g.height/2,t.shapeArgs=g}else delete t.plotX,delete t.plotY}}setRootNode(t,e,i){tx(this,"setRootNode",ty({newRootId:t,previousRootId:this.rootNode,redraw:tA(e,!0),series:this},i),function(t){let e=t.series;e.idPreviousRoot=t.previousRootId,e.rootNode=t.newRootId,e.isDirty=!0,t.redraw&&e.chart.redraw()})}setState(t){this.options.inactiveOtherPoints=!0,super.setState(t,!1),this.options.inactiveOtherPoints=!1}setTreeValues(t){let e=this.options,i=this.rootNode,o=this.nodeMap[i],s="boolean"!=typeof e.levelIsConstant||e.levelIsConstant,r=[],l=this.points[t.i],n=0;for(let e of t.children)e=this.setTreeValues(e),r.push(e),e.ignore||(n+=e.val);tC(r,(t,e)=>(t.sortIndex||0)-(e.sortIndex||0));let a=tA(l&&l.options.value,n);return l&&(l.value=a),l?.isGroup&&e.cluster?.reductionFactor&&(a/=e.cluster.reductionFactor),t.parentNode?.point?.isGroup&&this.rootNode!==t.parent&&(t.visible=!1),ty(t,{children:r,childrenTotal:n,ignore:!(tA(l&&l.visible,!0)&&a>0),isLeaf:t.visible&&!n,isGroup:l?.isGroup,levelDynamic:t.level-(s?0:o.level),name:tA(l&&l.name,""),sortIndex:tA(l&&l.sortIndex,-a),val:a}),t}sliceAndDice(t,e){return this.algorithmFill(!0,t,e)}squarified(t,e){return this.algorithmLowAspectRatio(!0,t,e)}strip(t,e){return this.algorithmLowAspectRatio(!1,t,e)}stripes(t,e){return this.algorithmFill(!1,t,e)}translate(t){let e=this,i=e.options,o=!t,s=tc(e),r,l,n,a;t||s.startsWith("highcharts-grouped-treemap-points-")||((this.points||[]).forEach(t=>{t.isGroup&&t.destroy()}),super.translate(),t=e.getTree()),e.tree=t=t||e.tree,r=e.nodeMap[s],""===s||r||(e.setRootNode("",!1),s=e.rootNode,r=e.nodeMap[s]),r.point?.isGroup||(e.mapOptionsToLevel=tu({from:r.level+1,levels:i.levels,to:t.height,defaults:{levelIsConstant:e.options.levelIsConstant,colorByPoint:i.colorByPoint}})),J.recursive(e.nodeMap[e.rootNode],t=>{let i=t.parent,o=!1;return t.visible=!0,(i||""===i)&&(o=e.nodeMap[i]),o}),J.recursive(e.nodeMap[e.rootNode].children,t=>{let e=!1;for(let i of t)i.visible=!0,i.children.length&&(e=(e||[]).concat(i.children));return e}),e.setTreeValues(t),e.axisRatio=e.xAxis.len/e.yAxis.len,e.nodeMap[""].pointValues=l={x:0,y:0,width:100,height:100},e.nodeMap[""].values=n=tB(l,{width:l.width*e.axisRatio,direction:"vertical"===i.layoutStartingDirection?0:1,val:t.val}),e.calculateChildrenAreas(t,n),e.colorAxis||i.colorByPoint||e.setColorRecursive(e.tree),i.allowTraversingTree&&r.pointValues&&(a=r.pointValues,e.xAxis.setExtremes(a.x,a.x+a.width,!1),e.yAxis.setExtremes(a.y,a.y+a.height,!1),e.xAxis.setScale(),e.yAxis.setScale()),e.setPointValues(),o&&e.applyTreeGrouping()}}tR.defaultOptions=tB(td.defaultOptions,X),ty(tR.prototype,{buildKDTree:ta,colorAttribs:V.seriesMembers.colorAttribs,colorKey:"colorValue",directTouch:!0,getExtremesFromAll:!0,getSymbol:ta,optionalAxis:"colorAxis",parallelArrays:["x","y","value","colorValue"],pointArrayMap:["value","colorValue"],pointClass:Z,NodeClass:class{constructor(){this.childrenTotal=0,this.visible=!1}init(t,e,i,o,s,r,l){return this.id=t,this.i=e,this.children=i,this.height=o,this.level=s,this.series=r,this.parent=l,this}},trackerGroups:["group","dataLabelsGroup"],utils:J}),V.compose(tR),G().registerSeriesType("treemap",tR);let tM=u();tM.Breadcrumbs=tM.Breadcrumbs||R,tM.Breadcrumbs.compose(tM.Chart,tM.defaultOptions),tR.compose(tM.Series);let tI=u();return d.default})()); \ No newline at end of file diff --git a/modules/treemap.src.js b/modules/treemap.src.js index dd57652e91..635d2929f7 100644 --- a/modules/treemap.src.js +++ b/modules/treemap.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/treemap * @requires highcharts * @@ -1463,6 +1463,7 @@ class TreemapPoint extends ScatterPoint { * * */ super(...arguments); + this.groupedPointsAmount = 0; this.shapeType = 'rect'; } /* * @@ -1481,11 +1482,15 @@ class TreemapPoint extends ScatterPoint { this.node.children.length) { className += ' highcharts-above-level'; } - else if (!this.node.isLeaf && + else if (!this.node.isGroup && + !this.node.isLeaf && + !series.nodeMap[series.rootNode].isGroup && !TreemapPoint_pick(options.interactByLeaf, !options.allowTraversingTree)) { className += ' highcharts-internal-node-interactive'; } - else if (!this.node.isLeaf) { + else if (!this.node.isGroup && + !this.node.isLeaf && + !series.nodeMap[series.rootNode].isGroup) { className += ' highcharts-internal-node'; } return className; @@ -1552,7 +1557,7 @@ const { isString: TreemapSeriesDefaults_isString } = (highcharts_commonjs_highch * Treemap * * @extends plotOptions.scatter - * @excluding cluster, connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker + * @excluding connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker * @product highcharts * @requires modules/treemap * @optionparent plotOptions.treemap @@ -1579,6 +1584,8 @@ const TreemapSeriesDefaults = { * * @sample {highcharts} highcharts/plotoptions/treemap-allowtraversingtree/ * Enabled + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-traversing/ + * Traversing to Grouped Points node * * @since 7.0.3 * @product highcharts @@ -1701,11 +1708,28 @@ const TreemapSeriesDefaults = { return name; }, inside: true, - verticalAlign: 'middle' + padding: 2, + verticalAlign: 'middle', + style: { + textOverflow: 'ellipsis' + } }, tooltip: { headerFormat: '', - pointFormat: '{point.name}: {point.value}
    ' + pointFormat: '{point.name}: {point.value}
    ', + /** + * The HTML of the grouped point's nodes in the tooltip. Works only for + * Treemap series grouping and analogously to + * [pointFormat](#tooltip.pointFormat). + * + * The grouped nodes point tooltip can be also formatted using + * `tooltip.formatter` callback function and `point.isGroupNode` flag. + * + * @type {string} + * @default '+ {point.groupedPointsAmount} more...' + * @apioption tooltip.clusterFormat + */ + clusterFormat: '+ {point.groupedPointsAmount} more...
    ' }, /** * Whether to ignore hidden points when the layout algorithm runs. @@ -1999,7 +2023,110 @@ const TreemapSeriesDefaults = { * * @product highcharts */ - traverseToLeaf: false + traverseToLeaf: false, + /** + * An option to optimize treemap series rendering by grouping smaller leaf + * nodes below a certain square area threshold in pixels. If the square area + * of a point becomes smaller than the specified threshold, determined by + * the `pixelWidth` and/or `pixelHeight` options, then this point is moved + * into one group point per series. + * + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-simple + * Simple demo of Treemap grouping + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-multiple-parents + * Treemap grouping with multiple parents + * @sample {highcharts} highcharts/plotoptions/treemap-grouping-advanced + * Advanced demo of Treemap grouping + * + * @since 12.1.0 + * + * @excluding allowOverlap, animation, dataLabels, drillToCluster, events, + * layoutAlgorithm, marker, states, zones + * + * @product highcharts + */ + cluster: { + /** + * An additional, individual class name for the grouped point's graphic + * representation. + * + * @type string + * @product highcharts + */ + className: void 0, + /** + * Individual color for the grouped point. By default the color is + * pulled from the parent color. + * + * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} + * @product highcharts + */ + color: void 0, + /** + * Enable or disable Treemap grouping. + * + * @type {boolean} + * @since 12.1.0 + * @product highcharts + */ + enabled: false, + /** + * The pixel threshold width of area, which is used in Treemap grouping. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + pixelWidth: void 0, + /** + * The pixel threshold height of area, which is used in Treemap + * grouping. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + pixelHeight: void 0, + /** + * The name of the point of grouped nodes shown in the tooltip, + * dataLabels, etc. By default it is set to '+ n', where n is number of + * grouped points. + * + * @type {string} + * @since 12.1.0 + * @product highcharts + */ + name: void 0, + /** + * A configuration property that specifies the factor by which the value + * and size of a grouped node are reduced. This can be particularly + * useful when a grouped node occupies a disproportionately large + * portion of the graph, ensuring better visual balance and readability. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + reductionFactor: void 0, + /** + * Defines the minimum number of child nodes required to create a group + * of small nodes. + * + * @type {number} + * @since 12.1.0 + * @product highcharts + */ + minimumClusterSize: 5, + layoutAlgorithm: { + distance: 0, + gridSize: 0, + kmeansThreshold: 0 + }, + marker: { + lineWidth: 0, + radius: 0 + } + } }; /** * A `treemap` series. If the [type](#series.treemap.type) option is @@ -2385,7 +2512,7 @@ const { column: ColumnSeries, scatter: ScatterSeries } = (highcharts_SeriesRegis const { getColor: TreemapSeries_getColor, getLevelOptions: TreemapSeries_getLevelOptions, updateRootId: TreemapSeries_updateRootId } = Series_TreeUtilities; -const { addEvent: TreemapSeries_addEvent, correctFloat, crisp, defined: TreemapSeries_defined, error, extend: TreemapSeries_extend, fireEvent: TreemapSeries_fireEvent, isArray: TreemapSeries_isArray, isObject: TreemapSeries_isObject, isString: TreemapSeries_isString, merge: TreemapSeries_merge, pick: TreemapSeries_pick, pushUnique: TreemapSeries_pushUnique, stableSort } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); +const { addEvent: TreemapSeries_addEvent, correctFloat, crisp, defined: TreemapSeries_defined, error, extend: TreemapSeries_extend, fireEvent: TreemapSeries_fireEvent, isArray: TreemapSeries_isArray, isObject: TreemapSeries_isObject, isString: TreemapSeries_isString, merge: TreemapSeries_merge, pick: TreemapSeries_pick, pushUnique: TreemapSeries_pushUnique, splat, stableSort } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); /* * * * Constants @@ -2542,7 +2669,9 @@ class TreemapSeries extends ScatterSeries { x: pX, y: pY, width: pW, - height: pH + height: pH, + direction: 0, + val: 0 }); if (directionChange) { direction = 1 - direction; @@ -2579,28 +2708,93 @@ class TreemapSeries extends ScatterSeries { * Over the alignment method by setting z index. * @private */ - alignDataLabel(point, dataLabel, labelOptions) { - const style = labelOptions.style; - // #8160: Prevent the label from exceeding the point's - // boundaries in treemaps by applying ellipsis overflow. - // The issue was happening when datalabel's text contained a - // long sequence of characters without a whitespace. - if (style && - !TreemapSeries_defined(style.textOverflow) && - dataLabel.text && - dataLabel.getBBox().width > (dataLabel.text.textWidth || 0)) { - dataLabel.css({ - textOverflow: 'ellipsis', - // Unit (px) is required when useHTML is true - width: style.width += 'px' - }); - } + alignDataLabel(point, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dataLabel, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + labelOptions) { ColumnSeries.prototype.alignDataLabel.apply(this, arguments); if (point.dataLabel) { // `point.node.zIndex` could be undefined (#6956) point.dataLabel.attr({ zIndex: (point.node.zIndex || 0) + 1 }); } } + applyTreeGrouping() { + const series = this, parentList = series.parentList || {}, { cluster } = series.options, minimumClusterSize = cluster?.minimumClusterSize || 5; + if (cluster?.enabled) { + const parentGroups = {}; + const checkIfHide = (node) => { + if (node?.point?.shapeArgs) { + const { width = 0, height = 0 } = node.point.shapeArgs, area = width * height; + const { pixelWidth = 0, pixelHeight = 0 } = cluster, compareHeight = TreemapSeries_defined(pixelHeight), thresholdArea = pixelHeight ? + pixelWidth * pixelHeight : + pixelWidth * pixelWidth; + if (width < pixelWidth || + height < (compareHeight ? pixelHeight : pixelWidth) || + area < thresholdArea) { + if (!node.isGroup && TreemapSeries_defined(node.parent)) { + if (!parentGroups[node.parent]) { + parentGroups[node.parent] = []; + } + parentGroups[node.parent].push(node); + } + } + } + node?.children.forEach((child) => { + checkIfHide(child); + }); + }; + checkIfHide(series.tree); + for (const parent in parentGroups) { + if (parentGroups[parent]) { + if (parentGroups[parent].length > minimumClusterSize) { + parentGroups[parent].forEach((node) => { + const index = parentList[parent].indexOf(node.i); + if (index !== -1) { + parentList[parent].splice(index, 1); + const id = `highcharts-grouped-treemap-points-${node.parent || 'root'}`; + let groupPoint = series.points + .find((p) => p.id === id); + if (!groupPoint) { + const PointClass = series.pointClass, pointIndex = series.points.length; + groupPoint = new PointClass(series, { + className: cluster.className, + color: cluster.color, + id, + index: pointIndex, + isGroup: true, + value: 0 + }); + TreemapSeries_extend(groupPoint, { + formatPrefix: 'cluster' + }); + series.points.push(groupPoint); + parentList[parent].push(pointIndex); + parentList[id] = []; + } + const amount = groupPoint.groupedPointsAmount + 1, val = series.points[groupPoint.index] + .options.value || 0, name = cluster.name || + `+ ${amount}`; + // Update the point directly in points array to + // prevent wrong instance update + series.points[groupPoint.index] + .groupedPointsAmount = amount; + series.points[groupPoint.index].options.value = + val + (node.point.value || 0); + series.points[groupPoint.index].name = name; + parentList[id].push(node.point.index); + } + }); + } + } + } + series.nodeMap = {}; + series.nodeList = []; + series.parentList = parentList; + const tree = series.buildTree('', -1, 0, series.parentList); + series.translate(tree); + } + } /** * Recursive function which calculates the area for all children of a * node. @@ -2615,10 +2809,14 @@ class TreemapSeries extends ScatterSeries { * The rectangular area of the parent. */ calculateChildrenAreas(parent, area) { - const series = this, options = series.options, mapOptionsToLevel = series.mapOptionsToLevel, level = mapOptionsToLevel[parent.level + 1], algorithm = TreemapSeries_pick((series[(level && level.layoutAlgorithm)] && - level.layoutAlgorithm), options.layoutAlgorithm), alternate = options.alternateStartingDirection, + const series = this, options = series.options, mapOptionsToLevel = series.mapOptionsToLevel, level = mapOptionsToLevel[parent.level + 1], algorithm = TreemapSeries_pick((level?.layoutAlgorithm && + series[level?.layoutAlgorithm] && + level.layoutAlgorithm), series.options.layoutAlgorithm), alternate = options.alternateStartingDirection, // Collect all children which should be included - children = parent.children.filter((n) => !n.ignore); + children = parent.children.filter((n) => parent.isGroup || !n.ignore); + if (!algorithm) { + return; + } let childrenValues = []; if (level && level.layoutStartingDirection) { area.direction = level.layoutStartingDirection === 'vertical' ? @@ -2695,15 +2893,18 @@ class TreemapSeries extends ScatterSeries { */ drawDataLabels() { const series = this, mapOptionsToLevel = series.mapOptionsToLevel, points = series.points.filter(function (n) { - return n.node.visible; - }); + return n.node.visible || TreemapSeries_defined(n.dataLabel); + }), padding = splat(series.options.dataLabels || {})[0]?.padding; let options, level; for (const point of points) { level = mapOptionsToLevel[point.node.level]; // Set options to new object to avoid problems with scope options = { style: {} }; // If not a leaf, then label should be disabled as default - if (!point.node.isLeaf) { + if (!point.node.isLeaf && + !point.node.isGroup || + (point.node.isGroup && + point.node.level <= series.nodeMap[series.rootNode].level)) { options.enabled = false; } // If options for level exists, include them as well @@ -2711,10 +2912,12 @@ class TreemapSeries extends ScatterSeries { options = TreemapSeries_merge(options, level.dataLabels); series.hasDataLabels = () => true; } - // Set dataLabel width to the width of the point shape. + // Set dataLabel width to the width of the point shape minus the + // padding if (point.shapeArgs) { const css = { - width: `${point.shapeArgs.width || 0}px`, + width: ((point.shapeArgs.width || 0) - + 2 * (options.padding || padding || 0)) + 'px', lineClamp: Math.floor((point.shapeArgs.height || 0) / 16) }; TreemapSeries_extend(options.style, css); @@ -2723,7 +2926,7 @@ class TreemapSeries extends ScatterSeries { // Merge custom options with point options point.dlOptions = TreemapSeries_merge(options, point.options.dataLabels); } - super.drawDataLabels(); + super.drawDataLabels(points); } /** * Override drawPoints @@ -2794,7 +2997,8 @@ class TreemapSeries extends ScatterSeries { */ drillToByGroup(point) { let drillId = false; - if (!point.node.isLeaf && + if ((!point.node.isLeaf || + point.node.isGroup) && (point.node.level - this.nodeMap[this.rootNode].level) === 1) { drillId = point.id; } @@ -2894,10 +3098,11 @@ class TreemapSeries extends ScatterSeries { getTree() { const series = this, allIds = this.data.map(function (d) { return d.id; - }), parentList = series.getListOfParents(this.data, allIds); + }); + series.parentList = series.getListOfParents(this.data, allIds); series.nodeMap = {}; series.nodeList = []; - return series.buildTree('', -1, 0, parentList); + return series.buildTree('', -1, 0, series.parentList || {}); } buildTree(id, index, level, list, parent) { const series = this, children = [], point = series.points[index]; @@ -3202,16 +3407,23 @@ class TreemapSeries extends ScatterSeries { // Sort the children stableSort(children, (a, b) => ((a.sortIndex || 0) - (b.sortIndex || 0))); // Set the values - const val = TreemapSeries_pick(point && point.options.value, childrenTotal); + let val = TreemapSeries_pick(point && point.options.value, childrenTotal); if (point) { point.value = val; } + if (point?.isGroup && options.cluster?.reductionFactor) { + val /= options.cluster.reductionFactor; + } + if (tree.parentNode?.point?.isGroup && series.rootNode !== tree.parent) { + tree.visible = false; + } TreemapSeries_extend(tree, { children: children, childrenTotal: childrenTotal, // Ignore this node if point is not visible ignore: !(TreemapSeries_pick(point && point.visible, true) && (val > 0)), isLeaf: tree.visible && !childrenTotal, + isGroup: point?.isGroup, levelDynamic: (tree.level - (levelIsConstant ? 0 : nodeRoot.level)), name: TreemapSeries_pick(point && point.name, ''), sortIndex: TreemapSeries_pick(point && point.sortIndex, -val), @@ -3231,30 +3443,41 @@ class TreemapSeries extends ScatterSeries { stripes(parent, children) { return this.algorithmFill(false, parent, children); } - translate() { - const series = this, options = series.options; + translate(tree) { + const series = this, options = series.options, applyGrouping = !tree; let // NOTE: updateRootId modifies series. rootId = TreemapSeries_updateRootId(series), rootNode, pointValues, seriesArea, val; - // Call prototype function - super.translate(); - // @todo Only if series.isDirtyData is true - const tree = series.tree = series.getTree(); + if (!tree && !rootId.startsWith('highcharts-grouped-treemap-points-')) { + // Group points are removed, but not destroyed during generatePoints + (this.points || []).forEach((point) => { + if (point.isGroup) { + point.destroy(); + } + }); + // Call prototype function + super.translate(); + // @todo Only if series.isDirtyData is true + tree = series.getTree(); + } + // Ensure `tree` and `series.tree` are synchronized + series.tree = tree = tree || series.tree; rootNode = series.nodeMap[rootId]; - if (rootId !== '' && - (!rootNode)) { + if (rootId !== '' && !rootNode) { series.setRootNode('', false); rootId = series.rootNode; rootNode = series.nodeMap[rootId]; } - series.mapOptionsToLevel = TreemapSeries_getLevelOptions({ - from: rootNode.level + 1, - levels: options.levels, - to: tree.height, - defaults: { - levelIsConstant: series.options.levelIsConstant, - colorByPoint: options.colorByPoint - } - }); + if (!rootNode.point?.isGroup) { + series.mapOptionsToLevel = TreemapSeries_getLevelOptions({ + from: rootNode.level + 1, + levels: options.levels, + to: tree.height, + defaults: { + levelIsConstant: series.options.levelIsConstant, + colorByPoint: options.colorByPoint + } + }); + } // Parents of the root node is by default visible Treemap_TreemapUtilities.recursive(series.nodeMap[series.rootNode], (node) => { const p = node.parent; @@ -3298,14 +3521,19 @@ class TreemapSeries extends ScatterSeries { } // Update axis extremes according to the root node. if (options.allowTraversingTree) { - val = rootNode.pointValues; - series.xAxis.setExtremes(val.x, val.x + val.width, false); - series.yAxis.setExtremes(val.y, val.y + val.height, false); - series.xAxis.setScale(); - series.yAxis.setScale(); + if (rootNode.pointValues) { + val = rootNode.pointValues; + series.xAxis.setExtremes(val.x, val.x + val.width, false); + series.yAxis.setExtremes(val.y, val.y + val.height, false); + series.xAxis.setScale(); + series.yAxis.setScale(); + } } // Assign values to points. series.setPointValues(); + if (applyGrouping) { + series.applyTreeGrouping(); + } } } /* * diff --git a/modules/variable-pie.js b/modules/variable-pie.js index 41b7a8cd91..99590928dc 100644 --- a/modules/variable-pie.js +++ b/modules/variable-pie.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/variable-pie * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Grzegorz Blachliński * * License: 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/variable-pie",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/variable-pie"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function r(t){var e=a[t];if(void 0!==e)return e.exports;var s=a[t]={exports:{}};return i[t](s,s.exports,r),s.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};r.d(s,{default:()=>y});var n=r(944),o=/*#__PURE__*/r.n(n),h=r(512),l=/*#__PURE__*/r.n(h);let{pie:p}=l().seriesTypes,{arrayMax:d,arrayMin:c,clamp:u,extend:g,fireEvent:f,merge:M,pick:x}=o();class m extends p{calculateExtremes(){let t,e;let i=this.chart,a=i.plotWidth,r=i.plotHeight,s=this.options,n=2*(s.slicedOffset||0),o=this.getColumn("z"),h=Math.min(a,r)-n,l={},p=this.center||this.getCenter();for(let t of["minPointSize","maxPointSize"]){let e=s[t],i=/%$/.test(e);e=parseInt(e,10),l[t]=i?h*e/100:2*e}this.minPxSize=p[3]+l.minPointSize,this.maxPxSize=u(p[2],p[3]+l.minPointSize,l.maxPointSize),o.length&&(t=x(s.zMin,c(o.filter(this.zValEval))),e=x(s.zMax,d(o.filter(this.zValEval))),this.getRadii(t,e,this.minPxSize,this.maxPxSize))}getRadii(t,e,i,a){let r,s,n;let o=this.getColumn("z"),h=[],l="radius"!==this.options.sizeBy,p=e-t;for(let d=0;d=e?n=a/2:(r=p>0?(s-t)/p:.5,l&&(r=Math.sqrt(r)),n=Math.ceil(i+r*(a-i))/2),h.push(n);this.radii=h}redraw(){this.center=null,super.redraw()}getDataLabelPosition(t,e){let{center:i,options:a}=this,r=t.angle||0,s=this.radii[t.index],n=i[0]+Math.cos(r)*s,o=i[1]+Math.sin(r)*s,h=Math.min((a.slicedOffset||0)+(a.borderWidth||0),e/5);return{distance:e,natural:{x:n+Math.cos(r)*e,y:o+Math.sin(r)*e},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:n+Math.cos(r)*h,y:o+Math.sin(r)*h},touchingSliceAt:{x:n,y:o}}}}translate(t){this.generatePoints();let e=this.options,i=e.slicedOffset,a=e.startAngle||0,r=Math.PI/180*(a-90),s=Math.PI/180*(x(e.endAngle,a+360)-90),n=s-r,o=this.points,h=e.ignoreHiddenPoint,l=0,p,d,c,u,g,M,m;this.startAngleRad=r,this.endAngleRad=s,this.calculateExtremes(),t||(this.center=t=this.getCenter());for(let e=0;e1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),M.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},u=Math.cos(c)*t[2]/2,g=Math.sin(c)*t[2]/2,M.tooltipPos=[t[0]+.7*u,t[1]+.7*g],M.half=c<-Math.PI/2||c>Math.PI/2?1:0,M.angle=c;f(this,"afterTranslate")}zValEval(t){return!("number"!=typeof t||isNaN(t))||null}}m.defaultOptions=M(p.defaultOptions,{minPointSize:"10%",maxPointSize:"100%",zMin:void 0,zMax:void 0,sizeBy:"area",tooltip:{pointFormat:' {series.name}
    Value: {point.y}
    Size: {point.z}
    '}}),g(m.prototype,{pointArrayMap:["y","z"],parallelArrays:["x","y","z"]}),l().registerSeriesType("variablepie",m);let y=o();return s.default})()); \ No newline at end of file + */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/variable-pie",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/variable-pie"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function r(t){var e=a[t];if(void 0!==e)return e.exports;var s=a[t]={exports:{}};return i[t](s,s.exports,r),s.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};r.d(s,{default:()=>y});var n=r(944),o=r.n(n),h=r(512),l=r.n(h);let{pie:p}=l().seriesTypes,{arrayMax:d,arrayMin:c,clamp:u,extend:g,fireEvent:f,merge:M,pick:x}=o();class m extends p{calculateExtremes(){let t,e;let i=this.chart,a=i.plotWidth,r=i.plotHeight,s=this.options,n=2*(s.slicedOffset||0),o=this.getColumn("z"),h=Math.min(a,r)-n,l={},p=this.center||this.getCenter();for(let t of["minPointSize","maxPointSize"]){let e=s[t],i=/%$/.test(e);e=parseInt(e,10),l[t]=i?h*e/100:2*e}this.minPxSize=p[3]+l.minPointSize,this.maxPxSize=u(p[2],p[3]+l.minPointSize,l.maxPointSize),o.length&&(t=x(s.zMin,c(o.filter(this.zValEval))),e=x(s.zMax,d(o.filter(this.zValEval))),this.getRadii(t,e,this.minPxSize,this.maxPxSize))}getRadii(t,e,i,a){let r,s,n;let o=this.getColumn("z"),h=[],l="radius"!==this.options.sizeBy,p=e-t;for(let d=0;d=e?n=a/2:(r=p>0?(s-t)/p:.5,l&&(r=Math.sqrt(r)),n=Math.ceil(i+r*(a-i))/2),h.push(n);this.radii=h}redraw(){this.center=null,super.redraw()}getDataLabelPosition(t,e){let{center:i,options:a}=this,r=t.angle||0,s=this.radii[t.index],n=i[0]+Math.cos(r)*s,o=i[1]+Math.sin(r)*s,h=Math.min((a.slicedOffset||0)+(a.borderWidth||0),e/5);return{distance:e,natural:{x:n+Math.cos(r)*e,y:o+Math.sin(r)*e},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:n+Math.cos(r)*h,y:o+Math.sin(r)*h},touchingSliceAt:{x:n,y:o}}}}translate(t){this.generatePoints();let e=this.options,i=e.slicedOffset,a=e.startAngle||0,r=Math.PI/180*(a-90),s=Math.PI/180*(x(e.endAngle,a+360)-90),n=s-r,o=this.points,h=e.ignoreHiddenPoint,l=0,p,d,c,u,g,M,m;this.startAngleRad=r,this.endAngleRad=s,this.calculateExtremes(),t||(this.center=t=this.getCenter());for(let e=0;e1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),M.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},u=Math.cos(c)*t[2]/2,g=Math.sin(c)*t[2]/2,M.tooltipPos=[t[0]+.7*u,t[1]+.7*g],M.half=c<-Math.PI/2||c>Math.PI/2?1:0,M.angle=c;f(this,"afterTranslate")}zValEval(t){return!("number"!=typeof t||isNaN(t))||null}}m.defaultOptions=M(p.defaultOptions,{minPointSize:"10%",maxPointSize:"100%",zMin:void 0,zMax:void 0,sizeBy:"area",tooltip:{pointFormat:' {series.name}
    Value: {point.y}
    Size: {point.z}
    '}}),g(m.prototype,{pointArrayMap:["y","z"],parallelArrays:["x","y","z"]}),l().registerSeriesType("variablepie",m);let y=o();return s.default})()); \ No newline at end of file diff --git a/modules/variable-pie.src.js b/modules/variable-pie.src.js index 8a720b3d1c..8426c8738a 100644 --- a/modules/variable-pie.src.js +++ b/modules/variable-pie.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/variable-pie * @requires highcharts * diff --git a/modules/variwide.js b/modules/variwide.js index 636a8c9f71..d6dd4d9fa7 100644 --- a/modules/variwide.js +++ b/modules/variwide.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/variwide * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,s){"object"==typeof exports&&"object"==typeof module?module.exports=s(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/variwide",["highcharts/highcharts"],function(t){return s(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/variwide"]=s(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=s(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,s)=>(()=>{"use strict";var i={512:t=>{t.exports=s},944:s=>{s.exports=t}},e={};function r(t){var s=e[t];if(void 0!==s)return s.exports;var o=e[t]={exports:{}};return i[t](o,o.exports,r),o.exports}r.n=t=>{var s=t&&t.__esModule?()=>t.default:()=>t;return r.d(s,{a:s}),s},r.d=(t,s)=>{for(var i in s)r.o(s,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},r.o=(t,s)=>Object.prototype.hasOwnProperty.call(t,s);var o={};r.d(o,{default:()=>S});var a=r(944),h=/*#__PURE__*/r.n(a),n=r(512),l=/*#__PURE__*/r.n(n);let{composed:p}=h(),{addEvent:c,pushUnique:d,wrap:x}=h();function f(t){this.variwide&&this.cross&&this.cross.attr("stroke-width",t.point&&t.point.crosshairWidth)}function u(){let t=this;this.variwide&&this.chart.labelCollectors.push(function(){return t.tickPositions.filter(s=>!!t.ticks[s].label).map((s,i)=>{let e=t.ticks[s].label;return e.labelrank=t.zData[i],e})})}function g(t){let s=this.axis,i=s.horiz?"x":"y";s.variwide&&(this[i+"Orig"]=t.pos[i],this.postTranslate(t.pos,i,this.pos))}function y(t,s,i){let e=this.axis,r=t[s]-e.pos;e.horiz||(r=e.len-r),r=e.series[0].postTranslate(i,r),e.horiz||(r=e.len-r),t[s]=e.pos+r}function v(t,s,i,e,r,o,a,h){let n=Array.prototype.slice.call(arguments,1),l=r?"x":"y";this.axis.variwide&&"number"==typeof this[l+"Orig"]&&(n[r?0:1]=this[l+"Orig"]);let p=t.apply(this,n);return this.axis.variwide&&this.axis.categories&&this.postTranslate(p,l,this.pos),p}let{column:{prototype:{pointClass:w}}}=l().seriesTypes,{isNumber:m}=h(),{column:b}=l().seriesTypes,{addEvent:A,crisp:T,extend:k,merge:P,pick:O}=h();class z extends b{processData(t){this.totalZ=0,this.relZ=[],l().seriesTypes.column.prototype.processData.call(this,t);let s=this.getColumn("z");(this.xAxis.reversed?s.slice().reverse():s).forEach(function(t,s){this.relZ[s]=this.totalZ,this.totalZ+=t},this),this.xAxis.categories&&(this.xAxis.variwide=!0,this.xAxis.zData=s)}postTranslate(t,s,i){let e=this.xAxis,r=this.relZ,o=e.reversed?r.length-t:t,a=e.reversed?-1:1,h=e.toPixels(e.reversed?(e.dataMax||0)+e.pointRange:e.dataMin||0),n=e.toPixels(e.reversed?e.dataMin||0:(e.dataMax||0)+e.pointRange),l=Math.abs(n-h),p=this.totalZ,c=this.chart.inverted?n-(this.chart.plotTop-a*e.minPixelPadding):h-this.chart.plotLeft-a*e.minPixelPadding,d=o/r.length*l,x=(o+a)/r.length*l,f=O(r[o],p)/p*l,u=O(r[o+a],p)/p*l;return i&&(i.crosshairWidth=u-f),c+f+(s-(c+d))*(u-f)/(x-d)}translate(){this.crispOption=this.options.crisp,this.options.crisp=!1,super.translate(),this.options.crisp=this.crispOption}correctStackLabels(){let t,s,i,e;let r=this.options,o=this.yAxis;for(let a of this.points)e=a.x,s=a.shapeArgs.width,(i=o.stacking.stacks[(this.negStacks&&a.y<(r.startFromThreshold?0:r.threshold)?"-":"")+this.stackKey])&&(t=i[e])&&!a.isNull&&t.setOffset(-(s/2)||0,s||0,void 0,void 0,a.plotX,this.xAxis)}}z.compose=function(t,s){if(d(p,"Variwide")){let i=s.prototype;c(t,"afterDrawCrosshair",f),c(t,"afterRender",u),c(s,"afterGetPosition",g),i.postTranslate=y,x(i,"getLabelPosition",v)}},z.defaultOptions=P(b.defaultOptions,{pointPadding:0,groupPadding:0}),A(z,"afterColumnTranslate",function(){let t=this.xAxis,s=this.chart.inverted,i=-1;for(let e of this.points){let r,o;++i;let a=e.shapeArgs||{},{x:h=0,width:n=0}=a,{plotX:l=0,tooltipPos:p,z:c=0}=e;t.variwide?(r=this.postTranslate(i,h,e),o=this.postTranslate(i,h+n)):(r=l,o=t.translate(e.x+c,!1,!1,!1,!0)),this.crispOption&&(r=T(r,this.borderWidth),o=T(o,this.borderWidth)),a.x=r,a.width=Math.max(o-r,1),e.plotX=(r+o)/2,p&&(s?p[1]=t.len-a.x-a.width/2:p[0]=a.x+a.width/2)}this.options.stacking&&this.correctStackLabels()},{order:2}),k(z.prototype,{irregularWidths:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],parallelArrays:["x","y","z"],pointClass:class extends w{isValid(){return m(this.y)&&m(this.z)}}}),l().registerSeriesType("variwide",z);let M=h();z.compose(M.Axis,M.Tick);let S=h();return o.default})()); \ No newline at end of file + */function(t,s){"object"==typeof exports&&"object"==typeof module?module.exports=s(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/variwide",["highcharts/highcharts"],function(t){return s(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/variwide"]=s(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=s(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,s)=>(()=>{"use strict";var i={512:t=>{t.exports=s},944:s=>{s.exports=t}},e={};function r(t){var s=e[t];if(void 0!==s)return s.exports;var o=e[t]={exports:{}};return i[t](o,o.exports,r),o.exports}r.n=t=>{var s=t&&t.__esModule?()=>t.default:()=>t;return r.d(s,{a:s}),s},r.d=(t,s)=>{for(var i in s)r.o(s,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},r.o=(t,s)=>Object.prototype.hasOwnProperty.call(t,s);var o={};r.d(o,{default:()=>S});var a=r(944),h=r.n(a),n=r(512),l=r.n(n);let{composed:p}=h(),{addEvent:c,pushUnique:d,wrap:x}=h();function f(t){this.variwide&&this.cross&&this.cross.attr("stroke-width",t.point&&t.point.crosshairWidth)}function u(){let t=this;this.variwide&&this.chart.labelCollectors.push(function(){return t.tickPositions.filter(s=>!!t.ticks[s].label).map((s,i)=>{let e=t.ticks[s].label;return e.labelrank=t.zData[i],e})})}function g(t){let s=this.axis,i=s.horiz?"x":"y";s.variwide&&(this[i+"Orig"]=t.pos[i],this.postTranslate(t.pos,i,this.pos))}function y(t,s,i){let e=this.axis,r=t[s]-e.pos;e.horiz||(r=e.len-r),r=e.series[0].postTranslate(i,r),e.horiz||(r=e.len-r),t[s]=e.pos+r}function v(t,s,i,e,r,o,a,h){let n=Array.prototype.slice.call(arguments,1),l=r?"x":"y";this.axis.variwide&&"number"==typeof this[l+"Orig"]&&(n[r?0:1]=this[l+"Orig"]);let p=t.apply(this,n);return this.axis.variwide&&this.axis.categories&&this.postTranslate(p,l,this.pos),p}let{column:{prototype:{pointClass:w}}}=l().seriesTypes,{isNumber:m}=h(),{column:b}=l().seriesTypes,{addEvent:A,crisp:T,extend:k,merge:P,pick:O}=h();class z extends b{processData(t){this.totalZ=0,this.relZ=[],l().seriesTypes.column.prototype.processData.call(this,t);let s=this.getColumn("z");(this.xAxis.reversed?s.slice().reverse():s).forEach(function(t,s){this.relZ[s]=this.totalZ,this.totalZ+=t},this),this.xAxis.categories&&(this.xAxis.variwide=!0,this.xAxis.zData=s)}postTranslate(t,s,i){let e=this.xAxis,r=this.relZ,o=e.reversed?r.length-t:t,a=e.reversed?-1:1,h=e.toPixels(e.reversed?(e.dataMax||0)+e.pointRange:e.dataMin||0),n=e.toPixels(e.reversed?e.dataMin||0:(e.dataMax||0)+e.pointRange),l=Math.abs(n-h),p=this.totalZ,c=this.chart.inverted?n-(this.chart.plotTop-a*e.minPixelPadding):h-this.chart.plotLeft-a*e.minPixelPadding,d=o/r.length*l,x=(o+a)/r.length*l,f=O(r[o],p)/p*l,u=O(r[o+a],p)/p*l;return i&&(i.crosshairWidth=u-f),c+f+(s-(c+d))*(u-f)/(x-d)}translate(){this.crispOption=this.options.crisp,this.options.crisp=!1,super.translate(),this.options.crisp=this.crispOption}correctStackLabels(){let t,s,i,e;let r=this.options,o=this.yAxis;for(let a of this.points)e=a.x,s=a.shapeArgs.width,(i=o.stacking.stacks[(this.negStacks&&a.y<(r.startFromThreshold?0:r.threshold)?"-":"")+this.stackKey])&&(t=i[e])&&!a.isNull&&t.setOffset(-(s/2)||0,s||0,void 0,void 0,a.plotX,this.xAxis)}}z.compose=function(t,s){if(d(p,"Variwide")){let i=s.prototype;c(t,"afterDrawCrosshair",f),c(t,"afterRender",u),c(s,"afterGetPosition",g),i.postTranslate=y,x(i,"getLabelPosition",v)}},z.defaultOptions=P(b.defaultOptions,{pointPadding:0,groupPadding:0}),A(z,"afterColumnTranslate",function(){let t=this.xAxis,s=this.chart.inverted,i=-1;for(let e of this.points){let r,o;++i;let a=e.shapeArgs||{},{x:h=0,width:n=0}=a,{plotX:l=0,tooltipPos:p,z:c=0}=e;t.variwide?(r=this.postTranslate(i,h,e),o=this.postTranslate(i,h+n)):(r=l,o=t.translate(e.x+c,!1,!1,!1,!0)),this.crispOption&&(r=T(r,this.borderWidth),o=T(o,this.borderWidth)),a.x=r,a.width=Math.max(o-r,1),e.plotX=(r+o)/2,p&&(s?p[1]=t.len-a.x-a.width/2:p[0]=a.x+a.width/2)}this.options.stacking&&this.correctStackLabels()},{order:2}),k(z.prototype,{irregularWidths:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],parallelArrays:["x","y","z"],pointClass:class extends w{isValid(){return m(this.y)&&m(this.z)}}}),l().registerSeriesType("variwide",z);let M=h();z.compose(M.Axis,M.Tick);let S=h();return o.default})()); \ No newline at end of file diff --git a/modules/variwide.src.js b/modules/variwide.src.js index 622331c500..ab0aa9cebb 100644 --- a/modules/variwide.src.js +++ b/modules/variwide.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/variwide * @requires highcharts * diff --git a/modules/vector.js b/modules/vector.js index f845fc90f3..d612201a76 100644 --- a/modules/vector.js +++ b/modules/vector.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/vector * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: 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/vector",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/vector"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var r={512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function o(t){var e=i[t];if(void 0!==e)return e.exports;var s=i[t]={exports:{}};return r[t](s,s.exports,o),s.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var r in e)o.o(e,r)&&!o.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};o.d(s,{default:()=>m});var n=o(944),a=/*#__PURE__*/o.n(n),h=o(512),p=/*#__PURE__*/o.n(h);let{animObject:l}=a(),{series:c,seriesTypes:{scatter:d}}=p(),{arrayMax:g,extend:u,merge:y,pick:f}=a();class b extends d{animate(t){t?this.markerGroup.attr({opacity:.01}):this.markerGroup.animate({opacity:1},l(this.options.animation))}arrow(t){let e=t.length/this.lengthMax*this.options.vectorLength/20,r={start:10*e,center:0,end:-10*e}[this.options.rotationOrigin]||0;return[["M",0,7*e+r],["L",-1.5*e,7*e+r],["L",0,10*e+r],["L",1.5*e,7*e+r],["L",0,7*e+r],["L",0,-10*e+r]]}drawPoints(){let t=this.chart;for(let e of this.points){let r=e.plotX,i=e.plotY;!1===this.options.clip||t.isInsidePlot(r,i,{inverted:t.inverted})?(e.graphic||(e.graphic=this.chart.renderer.path().add(this.markerGroup).addClass("highcharts-point highcharts-color-"+f(e.colorIndex,e.series.colorIndex))),e.graphic.attr({d:this.arrow(e),translateX:r,translateY:i,rotation:e.direction}),this.chart.styledMode||e.graphic.attr(this.pointAttribs(e))):e.graphic&&(e.graphic=e.graphic.destroy())}}pointAttribs(t,e){let r=this.options,i=t?.color||this.color,o=this.options.lineWidth;return e&&(i=r.states[e].color||i,o=(r.states[e].lineWidth||o)+(r.states[e].lineWidthPlus||0)),{stroke:i,"stroke-width":o}}translate(){c.prototype.translate.call(this),this.lengthMax=g(this.getColumn("length"))}}b.defaultOptions=y(d.defaultOptions,{lineWidth:2,marker:void 0,rotationOrigin:"center",states:{hover:{lineWidthPlus:1}},tooltip:{pointFormat:"[{point.x}, {point.y}]
    Length: {point.length}
    Direction: {point.direction}\xb0
    "},vectorLength:20}),u(b.prototype,{drawGraph:a().noop,getSymbol:a().noop,markerAttribs:a().noop,parallelArrays:["x","y","length","direction"],pointArrayMap:["y","length","direction"]}),p().registerSeriesType("vector",b);let m=a();return s.default})()); \ No newline at end of file + */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/vector",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/vector"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var r={512:t=>{t.exports=e},944:e=>{e.exports=t}},i={};function o(t){var e=i[t];if(void 0!==e)return e.exports;var s=i[t]={exports:{}};return r[t](s,s.exports,o),s.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var r in e)o.o(e,r)&&!o.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var s={};o.d(s,{default:()=>m});var n=o(944),a=o.n(n),h=o(512),p=o.n(h);let{animObject:l}=a(),{series:c,seriesTypes:{scatter:d}}=p(),{arrayMax:g,extend:u,merge:y,pick:f}=a();class b extends d{animate(t){t?this.markerGroup.attr({opacity:.01}):this.markerGroup.animate({opacity:1},l(this.options.animation))}arrow(t){let e=t.length/this.lengthMax*this.options.vectorLength/20,r={start:10*e,center:0,end:-10*e}[this.options.rotationOrigin]||0;return[["M",0,7*e+r],["L",-1.5*e,7*e+r],["L",0,10*e+r],["L",1.5*e,7*e+r],["L",0,7*e+r],["L",0,-10*e+r]]}drawPoints(){let t=this.chart;for(let e of this.points){let r=e.plotX,i=e.plotY;!1===this.options.clip||t.isInsidePlot(r,i,{inverted:t.inverted})?(e.graphic||(e.graphic=this.chart.renderer.path().add(this.markerGroup).addClass("highcharts-point highcharts-color-"+f(e.colorIndex,e.series.colorIndex))),e.graphic.attr({d:this.arrow(e),translateX:r,translateY:i,rotation:e.direction}),this.chart.styledMode||e.graphic.attr(this.pointAttribs(e))):e.graphic&&(e.graphic=e.graphic.destroy())}}pointAttribs(t,e){let r=this.options,i=t?.color||this.color,o=this.options.lineWidth;return e&&(i=r.states[e].color||i,o=(r.states[e].lineWidth||o)+(r.states[e].lineWidthPlus||0)),{stroke:i,"stroke-width":o}}translate(){c.prototype.translate.call(this),this.lengthMax=g(this.getColumn("length"))}}b.defaultOptions=y(d.defaultOptions,{lineWidth:2,marker:void 0,rotationOrigin:"center",states:{hover:{lineWidthPlus:1}},tooltip:{pointFormat:"[{point.x}, {point.y}]
    Length: {point.length}
    Direction: {point.direction}\xb0
    "},vectorLength:20}),u(b.prototype,{drawGraph:a().noop,getSymbol:a().noop,markerAttribs:a().noop,parallelArrays:["x","y","length","direction"],pointArrayMap:["y","length","direction"]}),p().registerSeriesType("vector",b);let m=a();return s.default})()); \ No newline at end of file diff --git a/modules/vector.src.js b/modules/vector.src.js index f2c5769674..9889897c8a 100644 --- a/modules/vector.src.js +++ b/modules/vector.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/vector * @requires highcharts * diff --git a/modules/venn.js b/modules/venn.js index faccba8925..3294d661c9 100644 --- a/modules/venn.js +++ b/modules/venn.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/venn * @requires highcharts * @@ -7,4 +7,4 @@ * Authors: Jon Arild Nygard * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Color,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/venn",["highcharts/highcharts"],function(e){return t(e,e.Color,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/venn"]=t(e._Highcharts,e._Highcharts.Color,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.Color,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t,r)=>(()=>{"use strict";var n,i,s={620:e=>{e.exports=t},512:e=>{e.exports=r},944:t=>{t.exports=e}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return s[e](r,r.exports,l),r.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};l.d(a,{default:()=>eo});var c=l(944),u=/*#__PURE__*/l.n(c),f=l(620),h=/*#__PURE__*/l.n(f);!function(e){e.getCenterOfPoints=function(e){let t=e.reduce((e,t)=>(e.x+=t.x,e.y+=t.y,e),{x:0,y:0});return{x:t.x/e.length,y:t.y/e.length}},e.getDistanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},e.getAngleBetweenPoints=function(e,t){return Math.atan2(t.x-e.x,t.y-e.y)},e.pointInPolygon=function({x:e,y:t},r){let n=r.length,i,s,o=!1;for(i=0,s=n-1;it!=c>t&&e<(a-n)*(t-l)/(c-l)+n&&(o=!o)}return o}}(n||(n={}));let p=n,{getAngleBetweenPoints:d,getCenterOfPoints:g,getDistanceBetweenPoints:y}=p;!function(e){function t(e,t){let r=Math.pow(10,t);return Math.round(e*r)/r}function r(e){if(e<=0)throw Error("radius of circle must be a positive number.");return Math.PI*e*e}function n(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function i(e,r){let n=y(e,r),i=e.r,s=r.r,o=[];if(nMath.abs(i-s)){let l=i*i,a=(l-s*s+n*n)/(2*n),c=Math.sqrt(l-a*a),u=e.x,f=r.x,h=e.y,p=r.y,d=u+a*(f-u)/n,g=h+a*(p-h)/n,y=-(c/n*(p-h)),x=-(c/n*(f-u));o=[{x:t(d+y,14),y:t(g-x,14)},{x:t(d-y,14),y:t(g+x,14)}]}return o}function s(e){return e.reduce((e,t,r,n)=>{let s=n.slice(r+1).reduce((e,n,s)=>{let o=[r,s+r+1];return e.concat(i(t,n).map(e=>(e.indexes=o,e)))},[]);return e.concat(s)},[])}function o(e,t){return y(e,t)<=t.r+1e-10}function l(e,t){return!t.some(function(t){return!o(e,t)})}function a(e){return s(e).filter(function(t){return l(t,e)})}e.round=t,e.getAreaOfCircle=r,e.getCircularSegmentArea=n,e.getOverlapBetweenCircles=function(e,i,s){let o=0;if(s1){let n=g(t),i=(t=t.map(function(e){return e.angle=d(n,e),e}).sort(function(e,t){return t.angle-e.angle}))[t.length-1],s=t.reduce(function(t,r){let{startPoint:n}=t,i=g([n,r]),s=r.indexes.filter(function(e){return n.indexes.indexOf(e)>-1}).reduce(function(t,s){let o=e[s],l=d(o,r),a=d(o,n),c=a-l+(a2*h&&(f=2*h),(!t||t.width>f)&&(t={r:h,largeArc:f>h?1:0,width:f,x:r.x,y:r.y}),t},null);if(s){let{r:e}=s;t.arcs.push(["A",e,e,0,s.largeArc,1,s.x,s.y]),t.startPoint=r}return t},{startPoint:i,arcs:[]}).arcs;0===s.length||1===s.length||(s.unshift(["M",i.x,i.y]),r={center:n,d:s})}return r}}(i||(i={}));let x=i,m={draw:function(e,t){let{animatableAttribs:r,onComplete:n,css:i,renderer:s}=t,o=e.series&&e.series.chart.hasRendered?void 0:e.series&&e.series.options.animation,l=e.graphic;if(t.attribs={...t.attribs,class:e.getClassName()},e.shouldDraw())l||(l="text"===t.shapeType?s.text():"image"===t.shapeType?s.image(t.imageUrl||"").attr(t.shapeArgs||{}):s[t.shapeType](t.shapeArgs||{}),e.graphic=l,l.add(t.group)),i&&l.css(i),l.attr(t.attribs).animate(r,!t.isNew&&o,n);else if(l){let t=()=>{e.graphic=l=l&&l.destroy(),"function"==typeof n&&n()};Object.keys(r).length?l.animate(r,void 0,()=>t()):t()}}};var b=l(512),v=/*#__PURE__*/l.n(b);let{scatter:{prototype:{pointClass:M}}}=v().seriesTypes,{isNumber:A}=u(),{getAreaOfCircle:C,getCircleCircleIntersection:O,getOverlapBetweenCircles:w,isPointInsideAllCircles:P,isPointInsideCircle:E,isPointOutsideAllCircles:L}=x,{getDistanceBetweenPoints:j}=p,{extend:S,isArray:_,isNumber:I,isObject:N,isString:T}=u();function V(e){let t={};return e.filter(e=>2===e.sets.length).forEach(e=>{e.sets.forEach((r,n,i)=>{N(t[r])||(t[r]={totalOverlap:0,overlapping:{}}),t[r]={totalOverlap:(t[r].totalOverlap||0)+e.value,overlapping:{...t[r].overlapping||{},[i[1-n]]:e.value}}})}),e.filter(D).forEach(e=>{let r=t[e.sets[0]];S(e,r)}),e}function H(e,t,r,n,i){let s=e(t),o=e(r),l=i||100,a=n||1e-10,c=r-t,u,f,h=1;if(t>=r)throw Error("a must be smaller than b.");if(s*o>0)throw Error("f(a) and f(b) must have opposite signs.");if(0===s)u=t;else if(0===o)u=r;else for(;h++<=l&&0!==f&&c>a;)c=(r-t)/2,s*(f=e(u=t+c))>0?t=u:r=u;return u}function B(e){let t=e.slice(0,-1),r=t.length,n=[],i=(e,t)=>(e.sum+=t[e.i],e);for(let e=0;er-w(e,t,n),0,n)}function D(e){return _(e.sets)&&1===e.sets.length}function k(e){let t={};return N(e)&&I(e.value)&&e.value>-1&&_(e.sets)&&e.sets.length>0&&!e.sets.some(function(e){let r=!1;return!t[e]&&T(e)?t[e]=!0:r=!0,r})}function U(e,t){return t.reduce(function(t,r){let n=0;if(r.sets.length>1){let t=r.value-function(e){let t=0;if(2===e.length){let r=e[0],n=e[1];t=w(r.r,n.r,j(r,n))}return t}(r.sets.map(function(t){return e[t]}));n=Math.round(t*t*1e11)/1e11}return t+n},0)}function F(e,t){return void 0!==t.totalOverlap&&void 0!==e.totalOverlap?t.totalOverlap-e.totalOverlap:NaN}let R={geometry:p,geometryCircles:x,addOverlapToSets:V,getCentroid:B,getDistanceBetweenCirclesByOverlap:X,getLabelWidth:function(e,t,r){let n=t.reduce((e,t)=>Math.min(t.r,e),1/0),i=r.filter(t=>!E(e,t)),s=function(r,n){return H(s=>{let o={x:e.x+n*s,y:e.y};return-(r-s)+(P(o,t)&&L(o,i)?0:Number.MAX_VALUE)},0,r)};return 2*Math.min(s(n,-1),s(n,1))},getMarginFromCircles:function(e,t,r){let n=t.reduce((t,r)=>{let n=r.r-j(e,r);return n<=t?n:t},Number.MAX_VALUE);return r.reduce((t,r)=>{let n=j(e,r)-r.r;return n<=t?n:t},n)},isSet:D,layoutGreedyVenn:function(e){let t=[],r={};e.filter(e=>1===e.sets.length).forEach(e=>{r[e.sets[0]]=e.circle={x:Number.MAX_VALUE,y:Number.MAX_VALUE,r:Math.sqrt(e.value/Math.PI)}});let n=(e,r)=>{let n=e.circle;n&&(n.x=r.x,n.y=r.y),t.push(e)};V(e);let i=e.filter(D).sort(F);n(i.shift(),{x:0,y:0});let s=e.filter(e=>2===e.sets.length);for(let e of i){let i=e.circle;if(!i)continue;let o=i.r,l=e.overlapping;n(e,t.reduce((e,n,a)=>{let c=n.circle;if(!c||!l)return e;let u=l[n.sets[0]],f=X(o,c.r,u),h=[{x:c.x+f,y:c.y},{x:c.x-f,y:c.y},{x:c.x,y:c.y+f},{x:c.x,y:c.y-f}];for(let e of t.slice(a+1)){let t=e.circle,r=l[e.sets[0]];if(!t)continue;let n=X(o,t.r,r);h=h.concat(O({x:c.x,y:c.y,r:f},{x:t.x,y:t.y,r:n}))}for(let t of h){i.x=t.x,i.y=t.y;let n=U(r,s);nt.map((t,i)=>e*t+r*n[i]),i=(t,r)=>(r.fx=e(r),t[t.length-1]=r,t),s=t=>{let r=t[0];return t.map(t=>{let i=n(.5,r,.5,t);return i.fx=e(i),i})},o=(t,r,i,s)=>{let o=n(i,t,s,r);return o.fx=e(o),o},l=(t=>{let r=t.length,n=Array(r+1);n[0]=t,n[0].fx=e(t);for(let i=0;i=l[l.length-2].fx){let r;l=n.fx>e.fx?(r=o(t,e,.5,.5)).fx0&&-1===e.indexOf(t.sets[0])&&e.push(t.sets[0]),e},[]).sort(),i=r.reduce(function(e,r){return r.sets&&k(r)&&!r.sets.some(function(e){return -1===n.indexOf(e)})&&(e[r.sets.sort().join(t)]={sets:r.sets,value:r.value||0}),e},{});return n.reduce(function(e,r,n,i){return i.slice(n+1).forEach(function(n){e.push(r+t+n)}),e},[]).forEach(function(e){if(!i[e]){let r={sets:e.split(t),value:0};i[e]=r}}),Object.keys(i).map(function(e){return i[e]})},sortByTotalOverlap:F},{animObject:W}=u(),{parse:q}=h(),{getAreaOfIntersectionBetweenCircles:Y,getCirclesIntersectionPolygon:G,isCircle1CompletelyOverlappingCircle2:z,isPointInsideAllCircles:J,isPointOutsideAllCircles:K}=x,{getCenterOfPoints:Q}=p,{scatter:Z}=v().seriesTypes,{addEvent:$,extend:ee,isArray:et,isNumber:er,isObject:en,merge:ei}=u();class es extends Z{static getLabelPosition(e,t){let r=e.reduce((r,n)=>{let i=n.r/2;return[{x:n.x,y:n.y},{x:n.x+i,y:n.y},{x:n.x-i,y:n.y},{x:n.x,y:n.y+i},{x:n.x,y:n.y-i}].reduce((r,n)=>{let i=R.getMarginFromCircles(n,e,t);return r.margin-R.getMarginFromCircles({x:r[0],y:r[1]},e,t),[r.x,r.y]);return J(r={x:n[0],y:n[1]},e)&&K(r,t)||(r=e.length>1?Q(G(e)):{x:e[0].x,y:e[0].y}),r}static getLabelValues(e,t){let r=e.sets,n=t.reduce((e,t)=>{let n=r.indexOf(t.sets[0])>-1;return t.circle&&e[n?"internal":"external"].push(t.circle),e},{internal:[],external:[]});n.external=n.external.filter(e=>n.internal.some(t=>!z(e,t)));let i=es.getLabelPosition(n.internal,n.external),s=R.getLabelWidth(i,n.internal,n.external);return{position:i,width:s}}static layout(e){let t={},r={};if(e.length>0){let n=R.layoutGreedyVenn(e),i=e.filter(R.isSet);for(let s of e){let e=s.sets,o=e.join(),l=R.isSet(s)?n[o]:Y(e.map(e=>n[e]));l&&(t[o]=l,r[o]=es.getLabelValues(s,i))}}return{mapOfIdToShape:t,mapOfIdToLabelValues:r}}static getScale(e,t,r){let n=r.bottom-r.top,i=r.right-r.left,s=(r.right+r.left)/2,o=(r.top+r.bottom)/2,l=Math.min(i>0?1/i*e:1,n>0?1/n*t:1);return{scale:l,centerX:e/2-s*l,centerY:t/2-o*l}}static updateFieldBoundaries(e,t){let r=t.x-t.r,n=t.x+t.r,i=t.y+t.r,s=t.y-t.r;return(!er(e.left)||e.left>r)&&(e.left=r),(!er(e.right)||e.rights)&&(e.top=s),(!er(e.bottom)||e.bottom{t&&t.graphic&&t.graphic.animate({opacity:1})},e.duration)}}}}drawPoints(){let e=this.chart,t=this.group,r=this.points||[],n=e.renderer;for(let i of r){let r={zIndex:et(i.sets)?i.sets.length:0},s=i.shapeArgs;e.styledMode||ee(r,this.pointAttribs(i,i.state)),m.draw(i,{isNew:!i.graphic,animatableAttribs:s,attribs:r,group:t,renderer:n,shapeType:s&&s.d?"path":"circle"})}}init(){Z.prototype.init.apply(this,arguments),delete this.opacity}pointAttribs(e,t){let r=this.options||{},n=e&&e.options||{},i=t&&r.states[t]||{},s=ei(r,{color:e&&e.color},n,i);return{fill:q(s.color).brighten(s.brightness).get(),opacity:s.opacity,stroke:s.borderColor,"stroke-width":s.borderWidth,dashstyle:s.borderDashStyle}}translate(){let e=this.chart;this.dataTable.modified=this.dataTable,this.generatePoints();let t=R.processVennData(this.options.data,es.splitter),{mapOfIdToShape:r,mapOfIdToLabelValues:n}=es.layout(t),i=Object.keys(r).filter(e=>{let t=r[e];return t&&er(t.r)}).reduce((e,t)=>es.updateFieldBoundaries(e,r[t]),{top:0,bottom:0,left:0,right:0}),s=es.getScale(e.plotWidth,e.plotHeight,i),o=s.scale,l=s.centerX,a=s.centerY;for(let e of this.points){let t=et(e.sets)?e.sets:[],i=t.join(),s=r[i],c=n[i]||{},u=e.options&&e.options.dataLabels,f,h=c.width,p=c.position;if(s){if(s.r)f={x:l+s.x*o,y:a+s.y*o,r:s.r*o};else if(s.d){let e=s.d;e.forEach(e=>{"M"===e[0]?(e[1]=l+e[1]*o,e[2]=a+e[2]*o):"A"===e[0]&&(e[1]=e[1]*o,e[2]=e[2]*o,e[6]=l+e[6]*o,e[7]=a+e[7]*o)}),f={d:e}}p?(p.x=l+p.x*o,p.y=a+p.y*o):p={},er(h)&&(h=Math.round(h*o))}e.shapeArgs=f,p&&f&&(e.plotX=p.x,e.plotY=p.y),h&&f&&(e.dlOptions=ei(!0,{style:{width:h}},en(u,!0)?u:void 0)),e.name=e.options.name||t.join("∩")}}}es.splitter="highcharts-split",es.defaultOptions=ei(Z.defaultOptions,{borderColor:"#cccccc",borderDashStyle:"solid",borderWidth:1,brighten:0,clip:!1,colorByPoint:!0,dataLabels:{enabled:!0,verticalAlign:"middle",formatter:function(){return this.point.name}},inactiveOtherPoints:!0,marker:!1,opacity:.75,showInLegend:!1,legendType:"point",states:{hover:{opacity:1,borderColor:"#333333"},select:{color:"#cccccc",borderColor:"#000000",animation:!1},inactive:{opacity:.075}},tooltip:{pointFormat:"{point.name}: {point.value}"},legendSymbol:"rectangle"}),ee(es.prototype,{axisTypes:[],directTouch:!0,isCartesian:!1,pointArrayMap:["value"],pointClass:class extends M{isValid(){return A(this.value)}shouldDraw(){return!!this.shapeArgs}},utils:R}),$(es,"afterSetOptions",function(e){let t=e.options.states||{};if(this.is("venn"))for(let e of Object.keys(t))t[e].halo=!1}),v().registerSeriesType("venn",es);let eo=u();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Color,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/venn",["highcharts/highcharts"],function(e){return t(e,e.Color,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/venn"]=t(e._Highcharts,e._Highcharts.Color,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.Color,e.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(e,t,r)=>(()=>{"use strict";var n,i,s={620:e=>{e.exports=t},512:e=>{e.exports=r},944:t=>{t.exports=e}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return s[e](r,r.exports,l),r.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};l.d(a,{default:()=>eo});var c=l(944),u=l.n(c),f=l(620),h=l.n(f);!function(e){e.getCenterOfPoints=function(e){let t=e.reduce((e,t)=>(e.x+=t.x,e.y+=t.y,e),{x:0,y:0});return{x:t.x/e.length,y:t.y/e.length}},e.getDistanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},e.getAngleBetweenPoints=function(e,t){return Math.atan2(t.x-e.x,t.y-e.y)},e.pointInPolygon=function({x:e,y:t},r){let n=r.length,i,s,o=!1;for(i=0,s=n-1;it!=c>t&&e<(a-n)*(t-l)/(c-l)+n&&(o=!o)}return o}}(n||(n={}));let p=n,{getAngleBetweenPoints:d,getCenterOfPoints:g,getDistanceBetweenPoints:y}=p;!function(e){function t(e,t){let r=Math.pow(10,t);return Math.round(e*r)/r}function r(e){if(e<=0)throw Error("radius of circle must be a positive number.");return Math.PI*e*e}function n(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function i(e,r){let n=y(e,r),i=e.r,s=r.r,o=[];if(nMath.abs(i-s)){let l=i*i,a=(l-s*s+n*n)/(2*n),c=Math.sqrt(l-a*a),u=e.x,f=r.x,h=e.y,p=r.y,d=u+a*(f-u)/n,g=h+a*(p-h)/n,y=-(c/n*(p-h)),x=-(c/n*(f-u));o=[{x:t(d+y,14),y:t(g-x,14)},{x:t(d-y,14),y:t(g+x,14)}]}return o}function s(e){return e.reduce((e,t,r,n)=>{let s=n.slice(r+1).reduce((e,n,s)=>{let o=[r,s+r+1];return e.concat(i(t,n).map(e=>(e.indexes=o,e)))},[]);return e.concat(s)},[])}function o(e,t){return y(e,t)<=t.r+1e-10}function l(e,t){return!t.some(function(t){return!o(e,t)})}function a(e){return s(e).filter(function(t){return l(t,e)})}e.round=t,e.getAreaOfCircle=r,e.getCircularSegmentArea=n,e.getOverlapBetweenCircles=function(e,i,s){let o=0;if(s1){let n=g(t),i=(t=t.map(function(e){return e.angle=d(n,e),e}).sort(function(e,t){return t.angle-e.angle}))[t.length-1],s=t.reduce(function(t,r){let{startPoint:n}=t,i=g([n,r]),s=r.indexes.filter(function(e){return n.indexes.indexOf(e)>-1}).reduce(function(t,s){let o=e[s],l=d(o,r),a=d(o,n),c=a-l+(a2*h&&(f=2*h),(!t||t.width>f)&&(t={r:h,largeArc:f>h?1:0,width:f,x:r.x,y:r.y}),t},null);if(s){let{r:e}=s;t.arcs.push(["A",e,e,0,s.largeArc,1,s.x,s.y]),t.startPoint=r}return t},{startPoint:i,arcs:[]}).arcs;0===s.length||1===s.length||(s.unshift(["M",i.x,i.y]),r={center:n,d:s})}return r}}(i||(i={}));let x=i,m={draw:function(e,t){let{animatableAttribs:r,onComplete:n,css:i,renderer:s}=t,o=e.series&&e.series.chart.hasRendered?void 0:e.series&&e.series.options.animation,l=e.graphic;if(t.attribs={...t.attribs,class:e.getClassName()},e.shouldDraw())l||(l="text"===t.shapeType?s.text():"image"===t.shapeType?s.image(t.imageUrl||"").attr(t.shapeArgs||{}):s[t.shapeType](t.shapeArgs||{}),e.graphic=l,l.add(t.group)),i&&l.css(i),l.attr(t.attribs).animate(r,!t.isNew&&o,n);else if(l){let t=()=>{e.graphic=l=l&&l.destroy(),"function"==typeof n&&n()};Object.keys(r).length?l.animate(r,void 0,()=>t()):t()}}};var b=l(512),v=l.n(b);let{scatter:{prototype:{pointClass:M}}}=v().seriesTypes,{isNumber:A}=u(),{getAreaOfCircle:C,getCircleCircleIntersection:O,getOverlapBetweenCircles:w,isPointInsideAllCircles:P,isPointInsideCircle:E,isPointOutsideAllCircles:L}=x,{getDistanceBetweenPoints:j}=p,{extend:S,isArray:_,isNumber:I,isObject:N,isString:T}=u();function V(e){let t={};return e.filter(e=>2===e.sets.length).forEach(e=>{e.sets.forEach((r,n,i)=>{N(t[r])||(t[r]={totalOverlap:0,overlapping:{}}),t[r]={totalOverlap:(t[r].totalOverlap||0)+e.value,overlapping:{...t[r].overlapping||{},[i[1-n]]:e.value}}})}),e.filter(D).forEach(e=>{let r=t[e.sets[0]];S(e,r)}),e}function H(e,t,r,n,i){let s=e(t),o=e(r),l=i||100,a=n||1e-10,c=r-t,u,f,h=1;if(t>=r)throw Error("a must be smaller than b.");if(s*o>0)throw Error("f(a) and f(b) must have opposite signs.");if(0===s)u=t;else if(0===o)u=r;else for(;h++<=l&&0!==f&&c>a;)c=(r-t)/2,s*(f=e(u=t+c))>0?t=u:r=u;return u}function B(e){let t=e.slice(0,-1),r=t.length,n=[],i=(e,t)=>(e.sum+=t[e.i],e);for(let e=0;er-w(e,t,n),0,n)}function D(e){return _(e.sets)&&1===e.sets.length}function k(e){let t={};return N(e)&&I(e.value)&&e.value>-1&&_(e.sets)&&e.sets.length>0&&!e.sets.some(function(e){let r=!1;return!t[e]&&T(e)?t[e]=!0:r=!0,r})}function U(e,t){return t.reduce(function(t,r){let n=0;if(r.sets.length>1){let t=r.value-function(e){let t=0;if(2===e.length){let r=e[0],n=e[1];t=w(r.r,n.r,j(r,n))}return t}(r.sets.map(function(t){return e[t]}));n=Math.round(t*t*1e11)/1e11}return t+n},0)}function F(e,t){return void 0!==t.totalOverlap&&void 0!==e.totalOverlap?t.totalOverlap-e.totalOverlap:NaN}let R={geometry:p,geometryCircles:x,addOverlapToSets:V,getCentroid:B,getDistanceBetweenCirclesByOverlap:X,getLabelWidth:function(e,t,r){let n=t.reduce((e,t)=>Math.min(t.r,e),1/0),i=r.filter(t=>!E(e,t)),s=function(r,n){return H(s=>{let o={x:e.x+n*s,y:e.y};return-(r-s)+(P(o,t)&&L(o,i)?0:Number.MAX_VALUE)},0,r)};return 2*Math.min(s(n,-1),s(n,1))},getMarginFromCircles:function(e,t,r){let n=t.reduce((t,r)=>{let n=r.r-j(e,r);return n<=t?n:t},Number.MAX_VALUE);return r.reduce((t,r)=>{let n=j(e,r)-r.r;return n<=t?n:t},n)},isSet:D,layoutGreedyVenn:function(e){let t=[],r={};e.filter(e=>1===e.sets.length).forEach(e=>{r[e.sets[0]]=e.circle={x:Number.MAX_VALUE,y:Number.MAX_VALUE,r:Math.sqrt(e.value/Math.PI)}});let n=(e,r)=>{let n=e.circle;n&&(n.x=r.x,n.y=r.y),t.push(e)};V(e);let i=e.filter(D).sort(F);n(i.shift(),{x:0,y:0});let s=e.filter(e=>2===e.sets.length);for(let e of i){let i=e.circle;if(!i)continue;let o=i.r,l=e.overlapping;n(e,t.reduce((e,n,a)=>{let c=n.circle;if(!c||!l)return e;let u=l[n.sets[0]],f=X(o,c.r,u),h=[{x:c.x+f,y:c.y},{x:c.x-f,y:c.y},{x:c.x,y:c.y+f},{x:c.x,y:c.y-f}];for(let e of t.slice(a+1)){let t=e.circle,r=l[e.sets[0]];if(!t)continue;let n=X(o,t.r,r);h=h.concat(O({x:c.x,y:c.y,r:f},{x:t.x,y:t.y,r:n}))}for(let t of h){i.x=t.x,i.y=t.y;let n=U(r,s);nt.map((t,i)=>e*t+r*n[i]),i=(t,r)=>(r.fx=e(r),t[t.length-1]=r,t),s=t=>{let r=t[0];return t.map(t=>{let i=n(.5,r,.5,t);return i.fx=e(i),i})},o=(t,r,i,s)=>{let o=n(i,t,s,r);return o.fx=e(o),o},l=(t=>{let r=t.length,n=Array(r+1);n[0]=t,n[0].fx=e(t);for(let i=0;i=l[l.length-2].fx){let r;l=n.fx>e.fx?(r=o(t,e,.5,.5)).fx0&&-1===e.indexOf(t.sets[0])&&e.push(t.sets[0]),e},[]).sort(),i=r.reduce(function(e,r){return r.sets&&k(r)&&!r.sets.some(function(e){return -1===n.indexOf(e)})&&(e[r.sets.sort().join(t)]={sets:r.sets,value:r.value||0}),e},{});return n.reduce(function(e,r,n,i){return i.slice(n+1).forEach(function(n){e.push(r+t+n)}),e},[]).forEach(function(e){if(!i[e]){let r={sets:e.split(t),value:0};i[e]=r}}),Object.keys(i).map(function(e){return i[e]})},sortByTotalOverlap:F},{animObject:W}=u(),{parse:q}=h(),{getAreaOfIntersectionBetweenCircles:Y,getCirclesIntersectionPolygon:G,isCircle1CompletelyOverlappingCircle2:z,isPointInsideAllCircles:J,isPointOutsideAllCircles:K}=x,{getCenterOfPoints:Q}=p,{scatter:Z}=v().seriesTypes,{addEvent:$,extend:ee,isArray:et,isNumber:er,isObject:en,merge:ei}=u();class es extends Z{static getLabelPosition(e,t){let r=e.reduce((r,n)=>{let i=n.r/2;return[{x:n.x,y:n.y},{x:n.x+i,y:n.y},{x:n.x-i,y:n.y},{x:n.x,y:n.y+i},{x:n.x,y:n.y-i}].reduce((r,n)=>{let i=R.getMarginFromCircles(n,e,t);return r.margin-R.getMarginFromCircles({x:r[0],y:r[1]},e,t),[r.x,r.y]);return J(r={x:n[0],y:n[1]},e)&&K(r,t)||(r=e.length>1?Q(G(e)):{x:e[0].x,y:e[0].y}),r}static getLabelValues(e,t){let r=e.sets,n=t.reduce((e,t)=>{let n=r.indexOf(t.sets[0])>-1;return t.circle&&e[n?"internal":"external"].push(t.circle),e},{internal:[],external:[]});n.external=n.external.filter(e=>n.internal.some(t=>!z(e,t)));let i=es.getLabelPosition(n.internal,n.external),s=R.getLabelWidth(i,n.internal,n.external);return{position:i,width:s}}static layout(e){let t={},r={};if(e.length>0){let n=R.layoutGreedyVenn(e),i=e.filter(R.isSet);for(let s of e){let e=s.sets,o=e.join(),l=R.isSet(s)?n[o]:Y(e.map(e=>n[e]));l&&(t[o]=l,r[o]=es.getLabelValues(s,i))}}return{mapOfIdToShape:t,mapOfIdToLabelValues:r}}static getScale(e,t,r){let n=r.bottom-r.top,i=r.right-r.left,s=(r.right+r.left)/2,o=(r.top+r.bottom)/2,l=Math.min(i>0?1/i*e:1,n>0?1/n*t:1);return{scale:l,centerX:e/2-s*l,centerY:t/2-o*l}}static updateFieldBoundaries(e,t){let r=t.x-t.r,n=t.x+t.r,i=t.y+t.r,s=t.y-t.r;return(!er(e.left)||e.left>r)&&(e.left=r),(!er(e.right)||e.rights)&&(e.top=s),(!er(e.bottom)||e.bottom{t&&t.graphic&&t.graphic.animate({opacity:1})},e.duration)}}}}drawPoints(){let e=this.chart,t=this.group,r=this.points||[],n=e.renderer;for(let i of r){let r={zIndex:et(i.sets)?i.sets.length:0},s=i.shapeArgs;e.styledMode||ee(r,this.pointAttribs(i,i.state)),m.draw(i,{isNew:!i.graphic,animatableAttribs:s,attribs:r,group:t,renderer:n,shapeType:s&&s.d?"path":"circle"})}}init(){Z.prototype.init.apply(this,arguments),delete this.opacity}pointAttribs(e,t){let r=this.options||{},n=e&&e.options||{},i=t&&r.states[t]||{},s=ei(r,{color:e&&e.color},n,i);return{fill:q(s.color).brighten(s.brightness).get(),opacity:s.opacity,stroke:s.borderColor,"stroke-width":s.borderWidth,dashstyle:s.borderDashStyle}}translate(){let e=this.chart;this.dataTable.modified=this.dataTable,this.generatePoints();let t=R.processVennData(this.options.data,es.splitter),{mapOfIdToShape:r,mapOfIdToLabelValues:n}=es.layout(t),i=Object.keys(r).filter(e=>{let t=r[e];return t&&er(t.r)}).reduce((e,t)=>es.updateFieldBoundaries(e,r[t]),{top:0,bottom:0,left:0,right:0}),s=es.getScale(e.plotWidth,e.plotHeight,i),o=s.scale,l=s.centerX,a=s.centerY;for(let e of this.points){let t=et(e.sets)?e.sets:[],i=t.join(),s=r[i],c=n[i]||{},u=e.options&&e.options.dataLabels,f,h=c.width,p=c.position;if(s){if(s.r)f={x:l+s.x*o,y:a+s.y*o,r:s.r*o};else if(s.d){let e=s.d;e.forEach(e=>{"M"===e[0]?(e[1]=l+e[1]*o,e[2]=a+e[2]*o):"A"===e[0]&&(e[1]=e[1]*o,e[2]=e[2]*o,e[6]=l+e[6]*o,e[7]=a+e[7]*o)}),f={d:e}}p?(p.x=l+p.x*o,p.y=a+p.y*o):p={},er(h)&&(h=Math.round(h*o))}e.shapeArgs=f,p&&f&&(e.plotX=p.x,e.plotY=p.y),h&&f&&(e.dlOptions=ei(!0,{style:{width:h}},en(u,!0)?u:void 0)),e.name=e.options.name||t.join("∩")}}}es.splitter="highcharts-split",es.defaultOptions=ei(Z.defaultOptions,{borderColor:"#cccccc",borderDashStyle:"solid",borderWidth:1,brighten:0,clip:!1,colorByPoint:!0,dataLabels:{enabled:!0,verticalAlign:"middle",formatter:function(){return this.point.name}},inactiveOtherPoints:!0,marker:!1,opacity:.75,showInLegend:!1,legendType:"point",states:{hover:{opacity:1,borderColor:"#333333"},select:{color:"#cccccc",borderColor:"#000000",animation:!1},inactive:{opacity:.075}},tooltip:{pointFormat:"{point.name}: {point.value}"},legendSymbol:"rectangle"}),ee(es.prototype,{axisTypes:[],directTouch:!0,isCartesian:!1,pointArrayMap:["value"],pointClass:class extends M{isValid(){return A(this.value)}shouldDraw(){return!!this.shapeArgs}},utils:R}),$(es,"afterSetOptions",function(e){let t=e.options.states||{};if(this.is("venn"))for(let e of Object.keys(t))t[e].halo=!1}),v().registerSeriesType("venn",es);let eo=u();return a.default})()); \ No newline at end of file diff --git a/modules/venn.src.js b/modules/venn.src.js index 58990f69da..f2b4621795 100644 --- a/modules/venn.src.js +++ b/modules/venn.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/venn * @requires highcharts * diff --git a/modules/windbarb.js b/modules/windbarb.js index a3575de24b..94e982dadc 100644 --- a/modules/windbarb.js +++ b/modules/windbarb.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/windbarb * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.dataGrouping.approximations,t._Highcharts.Series.types.column,t._Highcharts.Series,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/windbarb",["highcharts/highcharts"],function(t){return e(t,t.dataGrouping,["approximations"],t.Series,["types"],["column"],t.Series,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/windbarb"]=e(t._Highcharts,t._Highcharts.dataGrouping.approximations,t._Highcharts.Series.types.column,t._Highcharts.Series,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.dataGrouping.approximations,t.Highcharts.Series.types.column,t.Highcharts.Series,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,r,o,i)=>(()=>{"use strict";var s,a={448:t=>{t.exports=r},820:t=>{t.exports=o},512:t=>{t.exports=i},956:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function l(t){var e=n[t];if(void 0!==e)return e.exports;var r=n[t]={exports:{}};return a[t](r,r.exports,l),r.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var r in e)l.o(e,r)&&!l.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var p={};l.d(p,{default:()=>W});var h=l(944),c=/*#__PURE__*/l.n(h),u=l(956),d=/*#__PURE__*/l.n(u),f=l(448),g=/*#__PURE__*/l.n(f),x=l(820),y=/*#__PURE__*/l.n(x);let{composed:b}=c(),{prototype:m}=g(),{prototype:v}=y(),{defined:S,pushUnique:w,stableSort:L}=c();!function(t){function e(t){return v.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,t)}function r(){m.translate.apply(this);let t=this,e=t.options,r=t.chart,o=t.points,i=e.onSeries,s=i&&r.get(i),a=s&&s.options.step,n=s&&s.points,l=r.inverted,p=t.xAxis,h=t.yAxis,c=o.length-1,u,d,f=e.onKey||"y",g=n&&n.length,x=0,y,b,v,w,H;if(s&&s.visible&&g){for(x=(s.pointXOffset||0)+(s.barW||0)/2,w=s.currentDataGrouping,b=n[g-1].x+(w?w.totalRange:0),L(o,(t,e)=>t.x-e.x),f="plot"+f[0].toUpperCase()+f.substr(1);g--&&o[c];)if(y=n[g],(u=o[c]).y=y.y,y.x<=u.x&&void 0!==y[f]){if(u.x<=b&&(u.plotY=y[f],y.xMath.pow(1-i,3)*t[s]+3*(1-i)*(1-i)*i*r[s]+3*(1-i)*i*i*o[s]+i*i*i*e[s],s=0,a=1,n;for(let t=0;t<100;t++){let t=(s+a)/2,e=i(t,0);if(null===e)break;if(.25>Math.abs(e-u.plotX)){n=t;break}e{let i;e.plotX+=x,(void 0===e.plotY||l)&&(e.plotX>=0&&e.plotX<=p.len?l?(e.plotY=p.translate(e.x,0,1,0,1),e.plotX=S(e.y)?h.translate(e.y,0,0,0,1):0):e.plotY=(p.opposite?0:t.yAxis.len)+p.offset:e.shapeArgs={}),(d=o[r-1])&&d.plotX===e.plotX&&(void 0===d.stackIndex&&(d.stackIndex=0),i=d.stackIndex+1),e.stackIndex=i}),this.onSeries=s}t.compose=function(t){if(w(b,"OnSeries")){let o=t.prototype;o.getPlotBox=e,o.translate=r}return t},t.getPlotBox=e,t.translate=r}(s||(s={}));let H=s;var X=l(512),k=/*#__PURE__*/l.n(X);let{isNumber:G}=c();class M extends g().prototype.pointClass{isValid(){return G(this.value)&&this.value>=0}}let{animObject:O}=c(),{column:P}=k().seriesTypes,{extend:A,merge:Y,pick:_}=c();class I extends P{init(t,e){super.init(t,e)}pointAttribs(t,e){let r=this.options,o=t.color||this.color,i=this.options.lineWidth;return e&&(o=r.states[e].color||o,i=(r.states[e].lineWidth||i)+(r.states[e].lineWidthPlus||0)),{stroke:o,"stroke-width":i}}windArrow(t){let e=t.beaufortLevel,r=this.options.vectorLength/20,o=1.943844*t.value,i,s=-10;if(t.isNull)return[];if(0===e)return this.chart.renderer.symbols.circle(-10*r,-10*r,20*r,20*r);let a=[["M",0,7*r],["L",-1.5*r,7*r],["L",0,10*r],["L",1.5*r,7*r],["L",0,7*r],["L",0,-10*r]];if((i=(o-o%50)/50)>0)for(;i--;)a.push(-10===s?["L",0,s*r]:["M",0,s*r],["L",5*r,s*r+2],["L",0,s*r+4]),o-=50,s+=7;if((i=(o-o%10)/10)>0)for(;i--;)a.push(-10===s?["L",0,s*r]:["M",0,s*r],["L",7*r,s*r]),o-=10,s+=3;if((i=(o-o%5)/5)>0)for(;i--;)a.push(-10===s?["L",0,s*r]:["M",0,s*r],["L",4*r,s*r]),o-=5,s+=3;return a}drawPoints(){let t=this.chart,e=this.yAxis,r=t.inverted,o=this.options.vectorLength/2;for(let i of this.points){let s=i.plotX,a=i.plotY;!1===this.options.clip||t.isInsidePlot(s,0)?(i.graphic||(i.graphic=this.chart.renderer.path().add(this.markerGroup).addClass("highcharts-point highcharts-color-"+_(i.colorIndex,i.series.colorIndex))),i.graphic.attr({d:this.windArrow(i),translateX:s+this.options.xOffset,translateY:a+this.options.yOffset,rotation:i.direction}),this.chart.styledMode||i.graphic.attr(this.pointAttribs(i))):i.graphic&&(i.graphic=i.graphic.destroy()),i.tooltipPos=[s+this.options.xOffset+(r&&!this.onSeries?o:0),a+this.options.yOffset-(r?0:o+e.pos-t.plotTop)]}}animate(t){t?this.markerGroup.attr({opacity:.01}):this.markerGroup.animate({opacity:1},O(this.options.animation))}markerAttribs(){return{}}getExtremes(){return{}}shouldShowTooltip(t,e,r={}){return r.ignoreX=this.chart.inverted,r.ignoreY=!r.ignoreX,super.shouldShowTooltip(t,e,r)}}I.defaultOptions=Y(P.defaultOptions,{dataGrouping:{enabled:!0,approximation:"windbarb",groupPixelWidth:30},lineWidth:2,onSeries:null,states:{hover:{lineWidthPlus:0}},tooltip:{pointFormat:' {series.name}: {point.value} ({point.beaufort})
    '},vectorLength:20,colorKey:"value",yOffset:-20,xOffset:0}),H.compose(I),A(I.prototype,{beaufortFloor:[0,.3,1.6,3.4,5.5,8,10.8,13.9,17.2,20.8,24.5,28.5,32.7],beaufortName:["Calm","Light air","Light breeze","Gentle breeze","Moderate breeze","Fresh breeze","Strong breeze","Near gale","Gale","Strong gale","Storm","Violent storm","Hurricane"],invertible:!1,parallelArrays:["x","value","direction"],pointArrayMap:["value","direction"],pointClass:M,trackerGroups:["markerGroup"],translate:function(){let t=this.beaufortFloor,e=this.beaufortName;for(let r of(H.translate.call(this),this.points)){let o=0;for(;or.value);o++);r.beaufortLevel=o-1,r.beaufort=e[o-1]}}}),k().registerSeriesType("windbarb",I),d().windbarb||(d().windbarb=(t,e)=>{let r=0,o=0;for(let i=0,s=t.length;it+e,0)/t.length,Math.atan2(o,r)/c().deg2rad]});let W=c();return p.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.dataGrouping.approximations,t._Highcharts.Series.types.column,t._Highcharts.Series,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/windbarb",["highcharts/highcharts"],function(t){return e(t,t.dataGrouping,["approximations"],t.Series,["types"],["column"],t.Series,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/windbarb"]=e(t._Highcharts,t._Highcharts.dataGrouping.approximations,t._Highcharts.Series.types.column,t._Highcharts.Series,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.dataGrouping.approximations,t.Highcharts.Series.types.column,t.Highcharts.Series,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,r,o,i)=>(()=>{"use strict";var s,a={448:t=>{t.exports=r},820:t=>{t.exports=o},512:t=>{t.exports=i},956:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function l(t){var e=n[t];if(void 0!==e)return e.exports;var r=n[t]={exports:{}};return a[t](r,r.exports,l),r.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var r in e)l.o(e,r)&&!l.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var p={};l.d(p,{default:()=>W});var h=l(944),c=l.n(h),u=l(956),d=l.n(u),f=l(448),g=l.n(f),x=l(820),y=l.n(x);let{composed:b}=c(),{prototype:m}=g(),{prototype:v}=y(),{defined:S,pushUnique:w,stableSort:L}=c();!function(t){function e(t){return v.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,t)}function r(){m.translate.apply(this);let t=this,e=t.options,r=t.chart,o=t.points,i=e.onSeries,s=i&&r.get(i),a=s&&s.options.step,n=s&&s.points,l=r.inverted,p=t.xAxis,h=t.yAxis,c=o.length-1,u,d,f=e.onKey||"y",g=n&&n.length,x=0,y,b,v,w,H;if(s&&s.visible&&g){for(x=(s.pointXOffset||0)+(s.barW||0)/2,w=s.currentDataGrouping,b=n[g-1].x+(w?w.totalRange:0),L(o,(t,e)=>t.x-e.x),f="plot"+f[0].toUpperCase()+f.substr(1);g--&&o[c];)if(y=n[g],(u=o[c]).y=y.y,y.x<=u.x&&void 0!==y[f]){if(u.x<=b&&(u.plotY=y[f],y.xMath.pow(1-i,3)*t[s]+3*(1-i)*(1-i)*i*r[s]+3*(1-i)*i*i*o[s]+i*i*i*e[s],s=0,a=1,n;for(let t=0;t<100;t++){let t=(s+a)/2,e=i(t,0);if(null===e)break;if(.25>Math.abs(e-u.plotX)){n=t;break}e{let i;e.plotX+=x,(void 0===e.plotY||l)&&(e.plotX>=0&&e.plotX<=p.len?l?(e.plotY=p.translate(e.x,0,1,0,1),e.plotX=S(e.y)?h.translate(e.y,0,0,0,1):0):e.plotY=(p.opposite?0:t.yAxis.len)+p.offset:e.shapeArgs={}),(d=o[r-1])&&d.plotX===e.plotX&&(void 0===d.stackIndex&&(d.stackIndex=0),i=d.stackIndex+1),e.stackIndex=i}),this.onSeries=s}t.compose=function(t){if(w(b,"OnSeries")){let o=t.prototype;o.getPlotBox=e,o.translate=r}return t},t.getPlotBox=e,t.translate=r}(s||(s={}));let H=s;var X=l(512),k=l.n(X);let{isNumber:G}=c();class M extends g().prototype.pointClass{isValid(){return G(this.value)&&this.value>=0}}let{animObject:O}=c(),{column:P}=k().seriesTypes,{extend:A,merge:Y,pick:_}=c();class I extends P{init(t,e){super.init(t,e)}pointAttribs(t,e){let r=this.options,o=t.color||this.color,i=this.options.lineWidth;return e&&(o=r.states[e].color||o,i=(r.states[e].lineWidth||i)+(r.states[e].lineWidthPlus||0)),{stroke:o,"stroke-width":i}}windArrow(t){let e=t.beaufortLevel,r=this.options.vectorLength/20,o=1.943844*t.value,i,s=-10;if(t.isNull)return[];if(0===e)return this.chart.renderer.symbols.circle(-10*r,-10*r,20*r,20*r);let a=[["M",0,7*r],["L",-1.5*r,7*r],["L",0,10*r],["L",1.5*r,7*r],["L",0,7*r],["L",0,-10*r]];if((i=(o-o%50)/50)>0)for(;i--;)a.push(-10===s?["L",0,s*r]:["M",0,s*r],["L",5*r,s*r+2],["L",0,s*r+4]),o-=50,s+=7;if((i=(o-o%10)/10)>0)for(;i--;)a.push(-10===s?["L",0,s*r]:["M",0,s*r],["L",7*r,s*r]),o-=10,s+=3;if((i=(o-o%5)/5)>0)for(;i--;)a.push(-10===s?["L",0,s*r]:["M",0,s*r],["L",4*r,s*r]),o-=5,s+=3;return a}drawPoints(){let t=this.chart,e=this.yAxis,r=t.inverted,o=this.options.vectorLength/2;for(let i of this.points){let s=i.plotX,a=i.plotY;!1===this.options.clip||t.isInsidePlot(s,0)?(i.graphic||(i.graphic=this.chart.renderer.path().add(this.markerGroup).addClass("highcharts-point highcharts-color-"+_(i.colorIndex,i.series.colorIndex))),i.graphic.attr({d:this.windArrow(i),translateX:s+this.options.xOffset,translateY:a+this.options.yOffset,rotation:i.direction}),this.chart.styledMode||i.graphic.attr(this.pointAttribs(i))):i.graphic&&(i.graphic=i.graphic.destroy()),i.tooltipPos=[s+this.options.xOffset+(r&&!this.onSeries?o:0),a+this.options.yOffset-(r?0:o+e.pos-t.plotTop)]}}animate(t){t?this.markerGroup.attr({opacity:.01}):this.markerGroup.animate({opacity:1},O(this.options.animation))}markerAttribs(){return{}}getExtremes(){return{}}shouldShowTooltip(t,e,r={}){return r.ignoreX=this.chart.inverted,r.ignoreY=!r.ignoreX,super.shouldShowTooltip(t,e,r)}}I.defaultOptions=Y(P.defaultOptions,{dataGrouping:{enabled:!0,approximation:"windbarb",groupPixelWidth:30},lineWidth:2,onSeries:null,states:{hover:{lineWidthPlus:0}},tooltip:{pointFormat:' {series.name}: {point.value} ({point.beaufort})
    '},vectorLength:20,colorKey:"value",yOffset:-20,xOffset:0}),H.compose(I),A(I.prototype,{beaufortFloor:[0,.3,1.6,3.4,5.5,8,10.8,13.9,17.2,20.8,24.5,28.5,32.7],beaufortName:["Calm","Light air","Light breeze","Gentle breeze","Moderate breeze","Fresh breeze","Strong breeze","Near gale","Gale","Strong gale","Storm","Violent storm","Hurricane"],invertible:!1,parallelArrays:["x","value","direction"],pointArrayMap:["value","direction"],pointClass:M,trackerGroups:["markerGroup"],translate:function(){let t=this.beaufortFloor,e=this.beaufortName;for(let r of(H.translate.call(this),this.points)){let o=0;for(;or.value);o++);r.beaufortLevel=o-1,r.beaufort=e[o-1]}}}),k().registerSeriesType("windbarb",I),d().windbarb||(d().windbarb=(t,e)=>{let r=0,o=0;for(let i=0,s=t.length;it+e,0)/t.length,Math.atan2(o,r)/c().deg2rad]});let W=c();return p.default})()); \ No newline at end of file diff --git a/modules/windbarb.src.js b/modules/windbarb.src.js index 44cfa1146d..030d56d457 100644 --- a/modules/windbarb.src.js +++ b/modules/windbarb.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/windbarb * @requires highcharts * diff --git a/modules/wordcloud.js b/modules/wordcloud.js index aa8f354bbd..5d831e73da 100644 --- a/modules/wordcloud.js +++ b/modules/wordcloud.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/wordcloud * @requires highcharts * @@ -7,4 +7,4 @@ * Authors: Jon Arild Nygard * * License: 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/wordcloud",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/wordcloud"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return i[t](r,r.exports,n),r.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 i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};n.d(r,{default:()=>Z});var a=n(944),l=/*#__PURE__*/n.n(a);let s={draw:function(t,e){let{animatableAttribs:i,onComplete:o,css:n,renderer:r}=e,a=t.series&&t.series.chart.hasRendered?void 0:t.series&&t.series.options.animation,l=t.graphic;if(e.attribs={...e.attribs,class:t.getClassName()},t.shouldDraw())l||(l="text"===e.shapeType?r.text():"image"===e.shapeType?r.image(e.imageUrl||"").attr(e.shapeArgs||{}):r[e.shapeType](e.shapeArgs||{}),t.graphic=l,l.add(e.group)),n&&l.css(n),l.attr(e.attribs).animate(i,!e.isNew&&a,o);else if(l){let e=()=>{t.graphic=l=l&&l.destroy(),"function"==typeof o&&o()};Object.keys(i).length?l.animate(i,void 0,()=>e()):e()}}};var h=n(512),d=/*#__PURE__*/n.n(h);let{column:{prototype:{pointClass:p}}}=d().seriesTypes,{extend:u}=l();class g extends p{isValid(){return!0}}u(g.prototype,{weight:1});let{deg2rad:c}=l(),{extend:m,find:f,isNumber:x,isObject:y,merge:b}=l();function w(t,e){return!(e.left>t.right||e.rightt.bottom||e.bottom{let o=function(t,e){let i=e[0]-t[0],o=e[1]-t[1];return[[-o,i],[o,-i]]}(t,e)[0];return f(i,t=>t[0]===o[0]&&t[1]===o[1])||i.push(o),e}),t.axes=i),i}function S(t,e){let i=t.map(t=>{let i=t[0],o=t[1];return i*e[0]+o*e[1]});return{min:Math.min.apply(this,i),max:Math.max.apply(this,i)}}function F(t,e){let i=M(t),o=M(e);return!f(i.concat(o),i=>(function(t,e,i){let o=S(e,t),n=S(i,t);return!!(n.min>o.max||n.max=r-n&&(a={x:o-(r-i),y:-o}),r-=n,"boolean"==typeof a&&i>=r-n&&(a={x:-o,y:-o+(r-i)}),r-=n,"boolean"==typeof a&&(a=i>=r-n?{x:-o+(r-i),y:o}:{x:o,y:o-(r-i-n)}),a.x*=5,a.y*=5),a}function A(t,e){let i=Math.pow(10,x(e)?e:14);return Math.round(t*i)/i}function v(t,e){let i=t[0],o=t[1],n=-(c*e),r=Math.cos(n),a=Math.sin(n);return[A(i*r-o*a),A(i*a+o*r)]}function T(t,e,i){let o=v([t[0]-e[0],t[1]-e[1]],i);return[o[0]+e[0],o[1]+e[1]]}let{noop:H}=l(),{column:z}=d().seriesTypes,{extend:R,isArray:X,isNumber:B,isObject:C,merge:W}=l(),{archimedeanSpiral:_,extendPlayingField:N,getBoundingBoxFromPolygon:O,getPlayingField:D,getPolygon:j,getRandomPosition:Y,getRotation:E,getScale:L,getSpiral:U,intersectionTesting:V,isPolygonsColliding:q,rectangularSpiral:k,rotate2DToOrigin:I,rotate2DToPoint:G,squareSpiral:J,updateFieldBoundaries:K}={archimedeanSpiral:function(t,e){let i=e.field,o=i.width*i.width+i.height*i.height,n=.8*t,r=!1;return t<=1e4&&!(Math.min(Math.abs((r={x:n*Math.cos(n),y:n*Math.sin(n)}).x),Math.abs(r.y))i*(r=t.ratioY)?o:i)*n,s=a*r,h=b(t,{width:t.width+2*l,height:t.height+2*s})):h=t,h},getBoundingBoxFromPolygon:function(t){return t.reduce(function(t,e){let i=e[0],o=e[1];return t.left=Math.min(i,t.left),t.right=Math.max(i,t.right),t.bottom=Math.max(o,t.bottom),t.top=Math.min(o,t.top),t},{left:Number.MAX_VALUE,right:-Number.MAX_VALUE,bottom:-Number.MAX_VALUE,top:Number.MAX_VALUE})},getPlayingField:function(t,e,i){let o=i.reduce(function(t,e){let i=e.dimensions,o=Math.max(i.width,i.height);return t.maxHeight=Math.max(t.maxHeight,i.height),t.maxWidth=Math.max(t.maxWidth,i.width),t.area+=o*o,t},{maxHeight:0,maxWidth:0,area:0}),n=Math.max(o.maxHeight,o.maxWidth,.85*Math.sqrt(o.area)),r=t>e?t/e:1,a=e>t?e/t:1;return{width:n*r,height:n*a,ratioX:r,ratioY:a}},getPolygon:function(t,e,i,o,n){let r=[t,e],a=t-i/2,l=t+i/2,s=e-o/2,h=e+o/2;return[[a,s],[l,s],[l,h],[a,h]].map(function(t){return T(t,r,-n)})},getRandomPosition:function(t){return Math.round(t*(Math.random()+.5)/2)},getRotation:function(t,e,i,o){let n=!1,r;return x(t)&&x(e)&&x(i)&&x(o)&&t>0&&e>-1&&o>i&&(r=(o-i)/(t-1||1),n=i+e%t*r),n},getScale:function(t,e,i){let o=2*Math.max(Math.abs(i.top),Math.abs(i.bottom)),n=2*Math.max(Math.abs(i.left),Math.abs(i.right));return Math.min(n>0?1/n*t:1,o>0?1/o*e:1)},getSpiral:function(t,e){let i=[];for(let o=1;o<1e4;o++)i.push(t(o,e));return t=>t<=1e4&&i[t-1]},intersectionTesting:function(t,e){let i=e.placed,o=e.field,n=e.rectangle,r=e.polygon,a=e.spiral,l=t.rect=m({},n),s=1,h={x:0,y:0};for(t.polygon=r,t.rotation=e.rotation;!1!==h&&(function(t,e){let i=t.rect,o=t.polygon,n=t.lastCollidedWith,r=function(e){let n=w(i,e.rect);return n&&(t.rotation%90||e.rotation%90)&&(n=F(o,e.polygon)),n},a=!1;return!n||(a=r(n))||delete t.lastCollidedWith,a||(a=!!f(e,function(e){let i=r(e);return i&&(t.lastCollidedWith=e),i})),a}(t,i)||function(t,e){let i={left:-(e.width/2),right:e.width/2,top:-(e.height/2),bottom:e.height/2};return!(i.leftt.right&&i.topt.bottom)}(l,o));)y(h=a(s))&&(l.left=n.left+h.x,l.right=n.right+h.x,l.top=n.top+h.y,l.bottom=n.bottom+h.y,t.polygon=function(t,e,i){return i.map(function(i){return[i[0]+t,i[1]+e]})}(h.x,h.y,r)),s++;return h},isPolygonsColliding:F,isRectanglesIntersecting:w,rectangularSpiral:function(t,e){let i=P(t,e),o=e.field;return i&&(i.x*=o.ratioX,i.y*=o.ratioY),i},rotate2DToOrigin:v,rotate2DToPoint:T,squareSpiral:P,updateFieldBoundaries:function(t,e){return(!x(t.left)||t.left>e.left)&&(t.left=e.left),(!x(t.right)||t.righte.top)&&(t.top=e.top),(!x(t.bottom)||t.bottome.weight-t.weight),f=h.text().add(n),x;for(let t of(this.group.attr({scaleX:1,scaleY:1}),m)){let e=1/c*t.weight,i=R({fontSize:this.deriveFontSize(e,r.maxFontSize,r.minFontSize)+"px"},r.style);f.css(i).attr({x:0,y:0,text:t.name});let o=f.getBBox(!0);t.dimensions={height:o.height,width:o.width}}x=D(e.len,i.len,m);let y=U(this.spirals[r.spiral],{field:x});for(let e of m){let i=1/c*e.weight,o=R({fontSize:this.deriveFontSize(i,r.maxFontSize,r.minFontSize)+"px"},r.style),g=p(e,{data:m,field:x,placed:d,rotation:u}),f=R(this.pointAttribs(e,e.selected&&"select"),{align:"center","alignment-baseline":"middle","dominant-baseline":"middle",x:g.x,y:g.y,text:e.name,rotation:B(g.rotation)?g.rotation:void 0}),b=j(g.x,g.y,e.dimensions.width,e.dimensions.height,g.rotation),w=O(b),M=V(e,{rectangle:w,polygon:b,field:x,placed:d,spiral:y,rotation:g.rotation}),S;!M&&l&&(x=N(x,w),M=V(e,{rectangle:w,polygon:b,field:x,placed:d,spiral:y,rotation:g.rotation})),C(M)?(f.x=(f.x||0)+M.x,f.y=(f.y||0)+M.y,w.left+=M.x,w.right+=M.x,w.top+=M.y,w.bottom+=M.y,x=K(x,w),d.push(e),e.isNull=!1,e.isInside=!0):e.isNull=!0,a&&(S={x:f.x,y:f.y},t?(delete f.x,delete f.y):(f.x=0,f.y=0)),s.draw(e,{animatableAttribs:S,attribs:f,css:o,group:n,renderer:h,shapeArgs:void 0,shapeType:"text"})}f=f.destroy();let b=L(e.len,i.len,x);this.group.attr({scaleX:b,scaleY:b})}hasData(){return C(this)&&!0===this.visible&&X(this.points)&&this.points.length>0}getPlotBox(){let t=this.chart,e=t.inverted,i=this[e?"yAxis":"xAxis"],o=this[e?"xAxis":"yAxis"],n=i?i.len:t.plotWidth,r=o?o.len:t.plotHeight;return{translateX:(i?i.left:t.plotLeft)+n/2,translateY:(o?o.top:t.plotTop)+r/2,scaleX:1,scaleY:1}}}Q.defaultOptions=W(z.defaultOptions,{allowExtendPlayingField:!0,animation:{duration:500},borderWidth:0,clip:!1,colorByPoint:!0,cropThreshold:1/0,minFontSize:1,maxFontSize:25,placementStrategy:"center",rotation:{from:0,orientations:2,to:90},showInLegend:!1,spiral:"rectangular",style:{fontFamily:"sans-serif",fontWeight:"900",whiteSpace:"nowrap"},tooltip:{followPointer:!0,pointFormat:' {series.name}: {point.weight}
    '}}),R(Q.prototype,{animate:H,animateDrilldown:H,animateDrillupFrom:H,isCartesian:!1,pointClass:g,setClip:H,placementStrategy:{random:function(t,e){let i=e.field,o=e.rotation;return{x:Y(i.width)-i.width/2,y:Y(i.height)-i.height/2,rotation:E(o.orientations,t.index,o.from,o.to)}},center:function(t,e){let i=e.rotation;return{x:0,y:0,rotation:E(i.orientations,t.index,i.from,i.to)}}},pointArrayMap:["weight"],spirals:{archimedean:_,rectangular:k,square:J},utils:{extendPlayingField:N,getRotation:E,isPolygonsColliding:q,rotate2DToOrigin:I,rotate2DToPoint:G}}),d().registerSeriesType("wordcloud",Q);let Z=l();return r.default})()); \ No newline at end of file + */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/wordcloud",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/wordcloud"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return i[t](r,r.exports,n),r.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 i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};n.d(r,{default:()=>Z});var a=n(944),l=n.n(a);let s={draw:function(t,e){let{animatableAttribs:i,onComplete:o,css:n,renderer:r}=e,a=t.series&&t.series.chart.hasRendered?void 0:t.series&&t.series.options.animation,l=t.graphic;if(e.attribs={...e.attribs,class:t.getClassName()},t.shouldDraw())l||(l="text"===e.shapeType?r.text():"image"===e.shapeType?r.image(e.imageUrl||"").attr(e.shapeArgs||{}):r[e.shapeType](e.shapeArgs||{}),t.graphic=l,l.add(e.group)),n&&l.css(n),l.attr(e.attribs).animate(i,!e.isNew&&a,o);else if(l){let e=()=>{t.graphic=l=l&&l.destroy(),"function"==typeof o&&o()};Object.keys(i).length?l.animate(i,void 0,()=>e()):e()}}};var h=n(512),d=n.n(h);let{column:{prototype:{pointClass:p}}}=d().seriesTypes,{extend:u}=l();class g extends p{isValid(){return!0}}u(g.prototype,{weight:1});let{deg2rad:c}=l(),{extend:m,find:f,isNumber:x,isObject:y,merge:b}=l();function w(t,e){return!(e.left>t.right||e.rightt.bottom||e.bottom{let o=function(t,e){let i=e[0]-t[0],o=e[1]-t[1];return[[-o,i],[o,-i]]}(t,e)[0];return f(i,t=>t[0]===o[0]&&t[1]===o[1])||i.push(o),e}),t.axes=i),i}function S(t,e){let i=t.map(t=>{let i=t[0],o=t[1];return i*e[0]+o*e[1]});return{min:Math.min.apply(this,i),max:Math.max.apply(this,i)}}function F(t,e){let i=M(t),o=M(e);return!f(i.concat(o),i=>(function(t,e,i){let o=S(e,t),n=S(i,t);return!!(n.min>o.max||n.max=r-n&&(a={x:o-(r-i),y:-o}),r-=n,"boolean"==typeof a&&i>=r-n&&(a={x:-o,y:-o+(r-i)}),r-=n,"boolean"==typeof a&&(a=i>=r-n?{x:-o+(r-i),y:o}:{x:o,y:o-(r-i-n)}),a.x*=5,a.y*=5),a}function A(t,e){let i=Math.pow(10,x(e)?e:14);return Math.round(t*i)/i}function v(t,e){let i=t[0],o=t[1],n=-(c*e),r=Math.cos(n),a=Math.sin(n);return[A(i*r-o*a),A(i*a+o*r)]}function T(t,e,i){let o=v([t[0]-e[0],t[1]-e[1]],i);return[o[0]+e[0],o[1]+e[1]]}let{noop:H}=l(),{column:z}=d().seriesTypes,{extend:R,isArray:X,isNumber:B,isObject:C,merge:W}=l(),{archimedeanSpiral:_,extendPlayingField:N,getBoundingBoxFromPolygon:O,getPlayingField:D,getPolygon:j,getRandomPosition:Y,getRotation:E,getScale:L,getSpiral:U,intersectionTesting:V,isPolygonsColliding:q,rectangularSpiral:k,rotate2DToOrigin:I,rotate2DToPoint:G,squareSpiral:J,updateFieldBoundaries:K}={archimedeanSpiral:function(t,e){let i=e.field,o=i.width*i.width+i.height*i.height,n=.8*t,r=!1;return t<=1e4&&!(Math.min(Math.abs((r={x:n*Math.cos(n),y:n*Math.sin(n)}).x),Math.abs(r.y))i*(r=t.ratioY)?o:i)*n,s=a*r,h=b(t,{width:t.width+2*l,height:t.height+2*s})):h=t,h},getBoundingBoxFromPolygon:function(t){return t.reduce(function(t,e){let i=e[0],o=e[1];return t.left=Math.min(i,t.left),t.right=Math.max(i,t.right),t.bottom=Math.max(o,t.bottom),t.top=Math.min(o,t.top),t},{left:Number.MAX_VALUE,right:-Number.MAX_VALUE,bottom:-Number.MAX_VALUE,top:Number.MAX_VALUE})},getPlayingField:function(t,e,i){let o=i.reduce(function(t,e){let i=e.dimensions,o=Math.max(i.width,i.height);return t.maxHeight=Math.max(t.maxHeight,i.height),t.maxWidth=Math.max(t.maxWidth,i.width),t.area+=o*o,t},{maxHeight:0,maxWidth:0,area:0}),n=Math.max(o.maxHeight,o.maxWidth,.85*Math.sqrt(o.area)),r=t>e?t/e:1,a=e>t?e/t:1;return{width:n*r,height:n*a,ratioX:r,ratioY:a}},getPolygon:function(t,e,i,o,n){let r=[t,e],a=t-i/2,l=t+i/2,s=e-o/2,h=e+o/2;return[[a,s],[l,s],[l,h],[a,h]].map(function(t){return T(t,r,-n)})},getRandomPosition:function(t){return Math.round(t*(Math.random()+.5)/2)},getRotation:function(t,e,i,o){let n=!1,r;return x(t)&&x(e)&&x(i)&&x(o)&&t>0&&e>-1&&o>i&&(r=(o-i)/(t-1||1),n=i+e%t*r),n},getScale:function(t,e,i){let o=2*Math.max(Math.abs(i.top),Math.abs(i.bottom)),n=2*Math.max(Math.abs(i.left),Math.abs(i.right));return Math.min(n>0?1/n*t:1,o>0?1/o*e:1)},getSpiral:function(t,e){let i=[];for(let o=1;o<1e4;o++)i.push(t(o,e));return t=>t<=1e4&&i[t-1]},intersectionTesting:function(t,e){let i=e.placed,o=e.field,n=e.rectangle,r=e.polygon,a=e.spiral,l=t.rect=m({},n),s=1,h={x:0,y:0};for(t.polygon=r,t.rotation=e.rotation;!1!==h&&(function(t,e){let i=t.rect,o=t.polygon,n=t.lastCollidedWith,r=function(e){let n=w(i,e.rect);return n&&(t.rotation%90||e.rotation%90)&&(n=F(o,e.polygon)),n},a=!1;return!n||(a=r(n))||delete t.lastCollidedWith,a||(a=!!f(e,function(e){let i=r(e);return i&&(t.lastCollidedWith=e),i})),a}(t,i)||function(t,e){let i={left:-(e.width/2),right:e.width/2,top:-(e.height/2),bottom:e.height/2};return!(i.leftt.right&&i.topt.bottom)}(l,o));)y(h=a(s))&&(l.left=n.left+h.x,l.right=n.right+h.x,l.top=n.top+h.y,l.bottom=n.bottom+h.y,t.polygon=function(t,e,i){return i.map(function(i){return[i[0]+t,i[1]+e]})}(h.x,h.y,r)),s++;return h},isPolygonsColliding:F,isRectanglesIntersecting:w,rectangularSpiral:function(t,e){let i=P(t,e),o=e.field;return i&&(i.x*=o.ratioX,i.y*=o.ratioY),i},rotate2DToOrigin:v,rotate2DToPoint:T,squareSpiral:P,updateFieldBoundaries:function(t,e){return(!x(t.left)||t.left>e.left)&&(t.left=e.left),(!x(t.right)||t.righte.top)&&(t.top=e.top),(!x(t.bottom)||t.bottome.weight-t.weight),f=h.text().add(n),x;for(let t of(this.group.attr({scaleX:1,scaleY:1}),m)){let e=1/c*t.weight,i=R({fontSize:this.deriveFontSize(e,r.maxFontSize,r.minFontSize)+"px"},r.style);f.css(i).attr({x:0,y:0,text:t.name});let o=f.getBBox(!0);t.dimensions={height:o.height,width:o.width}}x=D(e.len,i.len,m);let y=U(this.spirals[r.spiral],{field:x});for(let e of m){let i=1/c*e.weight,o=R({fontSize:this.deriveFontSize(i,r.maxFontSize,r.minFontSize)+"px"},r.style),g=p(e,{data:m,field:x,placed:d,rotation:u}),f=R(this.pointAttribs(e,e.selected&&"select"),{align:"center","alignment-baseline":"middle","dominant-baseline":"middle",x:g.x,y:g.y,text:e.name,rotation:B(g.rotation)?g.rotation:void 0}),b=j(g.x,g.y,e.dimensions.width,e.dimensions.height,g.rotation),w=O(b),M=V(e,{rectangle:w,polygon:b,field:x,placed:d,spiral:y,rotation:g.rotation}),S;!M&&l&&(x=N(x,w),M=V(e,{rectangle:w,polygon:b,field:x,placed:d,spiral:y,rotation:g.rotation})),C(M)?(f.x=(f.x||0)+M.x,f.y=(f.y||0)+M.y,w.left+=M.x,w.right+=M.x,w.top+=M.y,w.bottom+=M.y,x=K(x,w),d.push(e),e.isNull=!1,e.isInside=!0):e.isNull=!0,a&&(S={x:f.x,y:f.y},t?(delete f.x,delete f.y):(f.x=0,f.y=0)),s.draw(e,{animatableAttribs:S,attribs:f,css:o,group:n,renderer:h,shapeArgs:void 0,shapeType:"text"})}f=f.destroy();let b=L(e.len,i.len,x);this.group.attr({scaleX:b,scaleY:b})}hasData(){return C(this)&&!0===this.visible&&X(this.points)&&this.points.length>0}getPlotBox(){let t=this.chart,e=t.inverted,i=this[e?"yAxis":"xAxis"],o=this[e?"xAxis":"yAxis"],n=i?i.len:t.plotWidth,r=o?o.len:t.plotHeight;return{translateX:(i?i.left:t.plotLeft)+n/2,translateY:(o?o.top:t.plotTop)+r/2,scaleX:1,scaleY:1}}}Q.defaultOptions=W(z.defaultOptions,{allowExtendPlayingField:!0,animation:{duration:500},borderWidth:0,clip:!1,colorByPoint:!0,cropThreshold:1/0,minFontSize:1,maxFontSize:25,placementStrategy:"center",rotation:{from:0,orientations:2,to:90},showInLegend:!1,spiral:"rectangular",style:{fontFamily:"sans-serif",fontWeight:"900",whiteSpace:"nowrap"},tooltip:{followPointer:!0,pointFormat:' {series.name}: {point.weight}
    '}}),R(Q.prototype,{animate:H,animateDrilldown:H,animateDrillupFrom:H,isCartesian:!1,pointClass:g,setClip:H,placementStrategy:{random:function(t,e){let i=e.field,o=e.rotation;return{x:Y(i.width)-i.width/2,y:Y(i.height)-i.height/2,rotation:E(o.orientations,t.index,o.from,o.to)}},center:function(t,e){let i=e.rotation;return{x:0,y:0,rotation:E(i.orientations,t.index,i.from,i.to)}}},pointArrayMap:["weight"],spirals:{archimedean:_,rectangular:k,square:J},utils:{extendPlayingField:N,getRotation:E,isPolygonsColliding:q,rotate2DToOrigin:I,rotate2DToPoint:G}}),d().registerSeriesType("wordcloud",Q);let Z=l();return r.default})()); \ No newline at end of file diff --git a/modules/wordcloud.src.js b/modules/wordcloud.src.js index 584be7a464..e3892a88e3 100644 --- a/modules/wordcloud.src.js +++ b/modules/wordcloud.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/wordcloud * @requires highcharts * diff --git a/modules/xrange.js b/modules/xrange.js index 00f90af8ff..7d9e91ad20 100644 --- a/modules/xrange.js +++ b/modules/xrange.js @@ -1,5 +1,5 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/xrange * @requires highcharts * @@ -8,4 +8,4 @@ * (c) 2010-2024 Torstein Honsi, Lars A. V. Cabrera * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/xrange",["highcharts/highcharts"],function(t){return e(t,t.Color,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/xrange"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s={620:t=>{t.exports=e},512:t=>{t.exports=i},944:e=>{e.exports=t}},o={};function r(t){var e=o[t];if(void 0!==e)return e.exports;var i=o[t]={exports:{}};return s[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};r.d(a,{default:()=>D});var l=r(944),n=/*#__PURE__*/r.n(l),h=r(620),p=/*#__PURE__*/r.n(h),d=r(512),c=/*#__PURE__*/r.n(d);let{correctFloat:g,isNumber:x,isObject:u}=n(),{column:{prototype:{pointClass:y}}}=c().seriesTypes,{extend:f}=n();class m extends y{static getColorByCategory(t,e){let i=t.options.colors||t.chart.options.colors,s=i?i.length:t.chart.options.chart.colorCount,o=e.y%s,r=i&&i[o];return{colorIndex:o,color:r}}resolveColor(){let t=this.series;if(t.options.colorByPoint&&!this.options.color){let e=m.getColorByCategory(t,this);t.chart.styledMode||(this.color=e.color),this.options.colorIndex||(this.colorIndex=e.colorIndex)}else this.color=this.options.color||t.color}constructor(t,e){super(t,e),this.y||(this.y=0)}applyOptions(t,e){return super.applyOptions(t,e),this.x2=this.series.chart.time.parse(this.x2),this.isNull=!this.isValid?.(),this}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}f(m.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]});let{composed:b,noop:A}=n(),{parse:C}=p(),{column:w}=c().seriesTypes,{addEvent:v,clamp:M,crisp:P,defined:R,extend:S,find:X,isNumber:H,isObject:B,merge:L,pick:O,pushUnique:_,relativeLength:F}=n();function I(){let t,e;if(this.isXAxis){for(let i of(t=O(this.dataMax,-Number.MAX_VALUE),this.series)){let s=i.dataTable.getColumn("x2",!0)||i.dataTable.getColumn("end",!0);if(s)for(let i of s)H(i)&&i>t&&(t=i,e=!0)}e&&(this.dataMax=t)}}class T extends w{static compose(t){_(b,"Series.XRange")&&v(t,"afterGetSeriesExtremes",I)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let t=()=>{for(let t of this.chart.series){let e=t.xAxis;t.xAxis=t.yAxis,t.yAxis=e}};t();let e=super.getColumnMetrics();return t(),e}cropData(t,e,i){let s=t.getColumn("x")||[],o=t.getColumn("x2");t.setColumn("x",o,void 0,{silent:!0});let r=super.cropData(t,e,i);return t.setColumn("x",s.slice(r.start,r.end),void 0,{silent:!0}),r}findPointIndex(t){let e;let{cropStart:i,points:s}=this,{id:o}=t;if(o){let t=X(s,t=>t.id===o);e=t?t.index:void 0}if(void 0===e){let i=X(s,e=>e.x===t.x&&e.x2===t.x2&&!e.touched);e=i?i.index:void 0}return this.cropped&&H(e)&&H(i)&&e>=i&&(e-=i),e}alignDataLabel(t){let e=t.plotX;t.plotX=O(t.dlBox&&t.dlBox.centerX,t.plotX),t.dataLabel&&t.shapeArgs?.width&&t.dataLabel.css({width:`${t.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),t.plotX=e}translatePoint(t){let e=this.xAxis,i=this.yAxis,s=this.columnMetrics,o=this.options,r=o.minPointLength||0,a=(t.shapeArgs&&t.shapeArgs.width||0)/2,l=this.pointXOffset=s.offset,n=O(t.x2,t.x+(t.len||0)),h=o.borderRadius,p=this.chart.plotTop,d=this.chart.plotLeft,c=t.plotX,g=e.translate(n,0,0,0,1),x=Math.abs(g-c),u=this.chart.inverted,y=O(o.borderWidth,1),f,m,b=s.offset,A=Math.round(s.width),C,w,v,S;r&&((f=r-x)<0&&(f=0),c-=f/2,g+=f/2),c=Math.max(c,-10),g=M(g,-10,e.len+10),R(t.options.pointWidth)&&(b-=(Math.ceil(t.options.pointWidth)-A)/2,A=Math.ceil(t.options.pointWidth)),o.pointPlacement&&H(t.plotY)&&i.categories&&(t.plotY=i.translate(t.y,0,1,0,1,o.pointPlacement));let X=P(Math.min(c,g),y),_=P(Math.max(c,g),y)-X,I=Math.min(F("object"==typeof h?h.radius:h||0,A),Math.min(_,A)/2),T={x:X,y:P((t.plotY||0)+b,y),width:_,height:A,r:I};t.shapeArgs=T,u?t.tooltipPos[1]+=l+a:t.tooltipPos[0]-=a+l-T.width/2,w=(C=T.x)+T.width,C<0||w>e.len?(C=M(C,0,e.len),v=(w=M(w,0,e.len))-C,t.dlBox=L(T,{x:C,width:w-C,centerX:v?v/2:null})):t.dlBox=null;let j=t.tooltipPos,D=u?1:0,N=u?0:1,V=this.columnMetrics?this.columnMetrics.offset:-s.width/2;u?j[D]+=T.width/2:j[D]=M(j[D]+(e.reversed?-1:0)*T.width,e.left-d,e.left+e.len-d-1),j[N]=M(j[N]+(u?-1:1)*V,i.top-p,i.top+i.len-p-1),(m=t.partialFill)&&(B(m)&&(m=m.amount),H(m)||(m=0),t.partShapeArgs=L(T),S=Math.max(Math.round(x*m+t.plotX-c),0),t.clipRectArgs={x:e.reversed?T.x+x-S:T.x,y:T.y,width:S,height:T.height}),t.key=t.category||t.name,t.yCategory=i.categories?.[t.y??-1]}translate(){for(let t of(super.translate.apply(this,arguments),this.points))this.translatePoint(t)}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeType,r=t.shapeArgs,a=t.partShapeArgs,l=t.clipRectArgs,n=t.state,h=i.states[n||"normal"]||{},p=void 0===n?"attr":e,d=this.pointAttribs(t,n),c=O(this.chart.options.chart.animation,h.animation),g=t.graphic,x=t.partialFill;if(t.isNull||!1===t.visible)g&&(t.graphic=g.destroy());else if(g?g.rect[e](r):(t.graphic=g=s.g("point").addClass(t.getClassName()).add(t.group||this.group),g.rect=s[o](L(r)).addClass(t.getClassName()).addClass("highcharts-partfill-original").add(g)),a&&(g.partRect?(g.partRect[e](L(a)),g.partialClipRect[e](L(l))):(g.partialClipRect=s.clipRect(l.x,l.y,l.width,l.height),g.partRect=s[o](a).addClass("highcharts-partfill-overlay").add(g).clip(g.partialClipRect))),!this.chart.styledMode&&(g.rect[e](d,c).shadow(i.shadow),a)){B(x)||(x={}),B(i.partialFill)&&(x=L(i.partialFill,x));let e=x.fill||C(d.fill).brighten(-.3).get()||C(t.color||this.color).brighten(-.3).get();d.fill=e,g.partRect[p](d,c).shadow(i.shadow)}}drawPoints(){let t=this.getAnimationVerb();for(let e of this.points)this.drawPoint(e,t)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(t){let e=t.shapeArgs,i=t.plotX,s=t.plotY;return e?void 0!==i&&void 0!==s&&s>=0&&s<=this.yAxis.len&&(e.x||0)+(e.width||0)>=0&&i<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}T.defaultOptions=L(w.defaultOptions,{colorByPoint:!0,dataLabels:{formatter:function(){let t=this.partialFill;if(u(t)&&(t=t.amount),x(t)&&t>0)return g(100*t)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{ucfirst point.x} - {point.x2}
    ',pointFormat:' {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}),S(T.prototype,{pointClass:m,pointArrayMap:["x2","y"],getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:c().series.prototype.animate,autoIncrement:A,buildKDTree:A}),c().registerSeriesType("xrange",T);let j=n();T.compose(j.Axis);let D=n();return a.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/xrange",["highcharts/highcharts"],function(t){return e(t,t.Color,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/xrange"]=e(t._Highcharts,t._Highcharts.Color,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Color,t.Highcharts.SeriesRegistry)}("undefined"==typeof window?this:window,(t,e,i)=>(()=>{"use strict";var s={620:t=>{t.exports=e},512:t=>{t.exports=i},944:e=>{e.exports=t}},o={};function r(t){var e=o[t];if(void 0!==e)return e.exports;var i=o[t]={exports:{}};return s[t](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};r.d(a,{default:()=>D});var l=r(944),n=r.n(l),h=r(620),p=r.n(h),d=r(512),c=r.n(d);let{correctFloat:g,isNumber:x,isObject:u}=n(),{column:{prototype:{pointClass:y}}}=c().seriesTypes,{extend:f}=n();class m extends y{static getColorByCategory(t,e){let i=t.options.colors||t.chart.options.colors,s=i?i.length:t.chart.options.chart.colorCount,o=e.y%s,r=i&&i[o];return{colorIndex:o,color:r}}resolveColor(){let t=this.series;if(t.options.colorByPoint&&!this.options.color){let e=m.getColorByCategory(t,this);t.chart.styledMode||(this.color=e.color),this.options.colorIndex||(this.colorIndex=e.colorIndex)}else this.color=this.options.color||t.color}constructor(t,e){super(t,e),this.y||(this.y=0)}applyOptions(t,e){return super.applyOptions(t,e),this.x2=this.series.chart.time.parse(this.x2),this.isNull=!this.isValid?.(),this}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}f(m.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]});let{composed:b,noop:A}=n(),{parse:C}=p(),{column:w}=c().seriesTypes,{addEvent:v,clamp:M,crisp:P,defined:R,extend:S,find:X,isNumber:H,isObject:B,merge:L,pick:O,pushUnique:_,relativeLength:F}=n();function I(){let t,e;if(this.isXAxis){for(let i of(t=O(this.dataMax,-Number.MAX_VALUE),this.series)){let s=i.dataTable.getColumn("x2",!0)||i.dataTable.getColumn("end",!0);if(s)for(let i of s)H(i)&&i>t&&(t=i,e=!0)}e&&(this.dataMax=t)}}class T extends w{static compose(t){_(b,"Series.XRange")&&v(t,"afterGetSeriesExtremes",I)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let t=()=>{for(let t of this.chart.series){let e=t.xAxis;t.xAxis=t.yAxis,t.yAxis=e}};t();let e=super.getColumnMetrics();return t(),e}cropData(t,e,i){let s=t.getColumn("x")||[],o=t.getColumn("x2");t.setColumn("x",o,void 0,{silent:!0});let r=super.cropData(t,e,i);return t.setColumn("x",s.slice(r.start,r.end),void 0,{silent:!0}),r}findPointIndex(t){let e;let{cropStart:i,points:s}=this,{id:o}=t;if(o){let t=X(s,t=>t.id===o);e=t?t.index:void 0}if(void 0===e){let i=X(s,e=>e.x===t.x&&e.x2===t.x2&&!e.touched);e=i?i.index:void 0}return this.cropped&&H(e)&&H(i)&&e>=i&&(e-=i),e}alignDataLabel(t){let e=t.plotX;t.plotX=O(t.dlBox&&t.dlBox.centerX,t.plotX),t.dataLabel&&t.shapeArgs?.width&&t.dataLabel.css({width:`${t.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),t.plotX=e}translatePoint(t){let e=this.xAxis,i=this.yAxis,s=this.columnMetrics,o=this.options,r=o.minPointLength||0,a=(t.shapeArgs&&t.shapeArgs.width||0)/2,l=this.pointXOffset=s.offset,n=O(t.x2,t.x+(t.len||0)),h=o.borderRadius,p=this.chart.plotTop,d=this.chart.plotLeft,c=t.plotX,g=e.translate(n,0,0,0,1),x=Math.abs(g-c),u=this.chart.inverted,y=O(o.borderWidth,1),f,m,b=s.offset,A=Math.round(s.width),C,w,v,S;r&&((f=r-x)<0&&(f=0),c-=f/2,g+=f/2),c=Math.max(c,-10),g=M(g,-10,e.len+10),R(t.options.pointWidth)&&(b-=(Math.ceil(t.options.pointWidth)-A)/2,A=Math.ceil(t.options.pointWidth)),o.pointPlacement&&H(t.plotY)&&i.categories&&(t.plotY=i.translate(t.y,0,1,0,1,o.pointPlacement));let X=P(Math.min(c,g),y),_=P(Math.max(c,g),y)-X,I=Math.min(F("object"==typeof h?h.radius:h||0,A),Math.min(_,A)/2),T={x:X,y:P((t.plotY||0)+b,y),width:_,height:A,r:I};t.shapeArgs=T,u?t.tooltipPos[1]+=l+a:t.tooltipPos[0]-=a+l-T.width/2,w=(C=T.x)+T.width,C<0||w>e.len?(C=M(C,0,e.len),v=(w=M(w,0,e.len))-C,t.dlBox=L(T,{x:C,width:w-C,centerX:v?v/2:null})):t.dlBox=null;let j=t.tooltipPos,D=u?1:0,N=u?0:1,V=this.columnMetrics?this.columnMetrics.offset:-s.width/2;u?j[D]+=T.width/2:j[D]=M(j[D]+(e.reversed?-1:0)*T.width,e.left-d,e.left+e.len-d-1),j[N]=M(j[N]+(u?-1:1)*V,i.top-p,i.top+i.len-p-1),(m=t.partialFill)&&(B(m)&&(m=m.amount),H(m)||(m=0),t.partShapeArgs=L(T),S=Math.max(Math.round(x*m+t.plotX-c),0),t.clipRectArgs={x:e.reversed?T.x+x-S:T.x,y:T.y,width:S,height:T.height}),t.key=t.category||t.name,t.yCategory=i.categories?.[t.y??-1]}translate(){for(let t of(super.translate.apply(this,arguments),this.points))this.translatePoint(t)}drawPoint(t,e){let i=this.options,s=this.chart.renderer,o=t.shapeType,r=t.shapeArgs,a=t.partShapeArgs,l=t.clipRectArgs,n=t.state,h=i.states[n||"normal"]||{},p=void 0===n?"attr":e,d=this.pointAttribs(t,n),c=O(this.chart.options.chart.animation,h.animation),g=t.graphic,x=t.partialFill;if(t.isNull||!1===t.visible)g&&(t.graphic=g.destroy());else if(g?g.rect[e](r):(t.graphic=g=s.g("point").addClass(t.getClassName()).add(t.group||this.group),g.rect=s[o](L(r)).addClass(t.getClassName()).addClass("highcharts-partfill-original").add(g)),a&&(g.partRect?(g.partRect[e](L(a)),g.partialClipRect[e](L(l))):(g.partialClipRect=s.clipRect(l.x,l.y,l.width,l.height),g.partRect=s[o](a).addClass("highcharts-partfill-overlay").add(g).clip(g.partialClipRect))),!this.chart.styledMode&&(g.rect[e](d,c).shadow(i.shadow),a)){B(x)||(x={}),B(i.partialFill)&&(x=L(i.partialFill,x));let e=x.fill||C(d.fill).brighten(-.3).get()||C(t.color||this.color).brighten(-.3).get();d.fill=e,g.partRect[p](d,c).shadow(i.shadow)}}drawPoints(){let t=this.getAnimationVerb();for(let e of this.points)this.drawPoint(e,t)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(t){let e=t.shapeArgs,i=t.plotX,s=t.plotY;return e?void 0!==i&&void 0!==s&&s>=0&&s<=this.yAxis.len&&(e.x||0)+(e.width||0)>=0&&i<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}T.defaultOptions=L(w.defaultOptions,{colorByPoint:!0,dataLabels:{formatter:function(){let t=this.partialFill;if(u(t)&&(t=t.amount),x(t)&&t>0)return g(100*t)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{ucfirst point.x} - {point.x2}
    ',pointFormat:' {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}),S(T.prototype,{pointClass:m,pointArrayMap:["x2","y"],getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:c().series.prototype.animate,autoIncrement:A,buildKDTree:A}),c().registerSeriesType("xrange",T);let j=n();T.compose(j.Axis);let D=n();return a.default})()); \ No newline at end of file diff --git a/modules/xrange.src.js b/modules/xrange.src.js index 3a66931938..d2ccd93669 100644 --- a/modules/xrange.src.js +++ b/modules/xrange.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/xrange * @requires highcharts * diff --git a/options/treegraph.d.ts b/options/treegraph.d.ts index 152df9ed90..7165018749 100644 --- a/options/treegraph.d.ts +++ b/options/treegraph.d.ts @@ -127,111 +127,600 @@ declare module "../highcharts" { defer?: number; } /** - * (Highcharts) Set options on specific levels. Takes precedence over series - * options, but not point options. + * (Highcharts) Styles for the label. The default `color` setting is + * `"contrast"`, which is a pseudo color that Highcharts picks up and + * applies the maximum contrast to the underlying point item, for example + * the bar in a bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the + * given width with the given color, which by default is the maximum + * contrast to the text. So a bright text color will result in a black text + * outline for maximum readability on a mixed background. In some cases, + * especially with grayscale text, the text outline doesn't work well, in + * which cases it can be disabled by setting it to `"none"`. When `useHTML` + * is true, the `textOutline` will not be picked up. In this, case, the same + * effect can be acheived through the `text-shadow` CSS property. + * + * For some series types, where each point has an extent, like for example + * tree maps, the data label may overflow the point. There are two + * strategies for handling overflow. By default, the text will wrap to + * multiple lines. The other strategy is to set `style.textOverflow` to + * `ellipsis`, which will keep the text on one line plus it will break + * inside long words. + */ + interface PlotTreegraphLevelsDataLabelsStyleOptions { + textOverflow?: string; + } + interface PlotTreegraphLinkOptions { + /** + * (Highcharts) The color of the links between nodes. + */ + color?: Highcharts.ColorString; + cursor?: string; + /** + * (Highcharts) The line width of the links connecting nodes, in pixels. + */ + lineWidth?: number; + /** + * (Highcharts) Radius for the rounded corners of the links between + * nodes. Works for `default` link type. + */ + radius?: number; + /** + * (Highcharts) Type of the link shape. + */ + type?: ('curved'|'default'|'straight'); + } + /** + * (Highcharts) Options for the _Series on point_ feature. Only `pie` and + * `sunburst` series are supported at this moment. */ - interface PlotTreegraphLevelsOptions { + interface PlotTreegraphOnPointOptions { /** - * (Highcharts) Can set a `borderColor` on all points which lies on the - * same level. + * (Highcharts) Options for the connector in the _Series on point_ + * feature. + * + * In styled mode, the connector can be styled with the + * `.highcharts-connector-seriesonpoint` class name. */ - borderColor?: Highcharts.ColorString; + connectorOptions?: (Highcharts.PlotTreegraphOnPointConnectorOptions|Highcharts.SVGAttributes); /** - * (Highcharts) Set the dash style of the border of all the point which - * lies on the level. See plotOptions.scatter.dashStyle for possible - * options. + * (Highcharts) The `id` of the point that we connect the series to. + * Only points with a given `plotX` and `plotY` values and map points + * are valid. */ - borderDashStyle?: Highcharts.DashStyleValue; + id?: string; + /** + * (Highcharts) Options allowing to set a position and an offset of the + * series in the _Series on point_ feature. + */ + position?: (object|Highcharts.PlotTreegraphOnPointPositionOptions); + } + /** + * (Highcharts) A treegraph series is a diagram, which shows a relation + * between ancestors and descendants with a clear parent - child relation. + * The best examples of the dataStructures, which best reflect this chart + * are e.g. genealogy tree or directory structure. + * + * TODO change back the demo path + * + * Configuration options for the series are given in three levels: + * + * 1. Options for all series in a chart are defined in the + * plotOptions.series object. + * + * 2. Options for all `treegraph` series are defined in + * plotOptions.treegraph. + * + * 3. Options for one single series are given in the series instance array. + * (see online documentation for example) + * + * **TypeScript:** + * + * - the type option must always be set. + * + * - when accessing an array of series, the combined set of all series types + * is represented by Highcharts.SeriesOptionsType . Narrowing down to the + * specific type can be done by checking the `type` property. (see online + * documentation for example) + */ + interface PlotTreegraphOptions { /** - * (Highcharts) Can set the borderWidth on all points which lies on the - * same level. + * (Highcharts) Accessibility options for a series. */ - borderWidth?: number; + accessibility?: Highcharts.SeriesAccessibilityOptionsObject; /** - * (Highcharts) Can set a color on all points which lies on the same - * level. + * (Highcharts) Allow this series' points to be selected by clicking on + * the graphic (columns, point markers, pie slices, map areas etc). + * + * The selected points can be handled by point select and unselect + * events, or collectively by the getSelectedPoints function. + * + * And alternative way of selecting points is through dragging. + */ + allowPointSelect?: boolean; + /** + * (Highcharts) Enable or disable the initial animation when a series is + * displayed. The animation can also be set as a configuration object. + * Please note that this option only applies to the initial animation of + * the series itself. For other animations, see chart.animation and the + * animation parameter under the API methods. The following properties + * are supported: + * + * - `defer`: The animation delay time in milliseconds. + * + * - `duration`: The duration of the animation in milliseconds. + * (Defaults to `1000`) + * + * - `easing`: Can be a string reference to an easing function set on + * the `Math` object or a function. See the _Custom easing function_ + * demo below. (Defaults to `easeInOutSine`) + * + * Due to poor performance, animation is disabled in old IE browsers for + * several chart types. + */ + animation?: (boolean|Highcharts.AnimationOptionsObject); + /** + * (Highcharts) For some series, there is a limit that shuts down + * animation by default when the total number of points in the chart is + * too high. For example, for a column chart and its derivatives, + * animation does not run if there is more than 250 points totally. To + * disable this cap, set `animationLimit` to `Infinity`. This option + * works if animation is fired on individual points, not on a group of + * points like e.g. during the initial animation. + */ + animationLimit?: number; + /** + * (Highcharts) Sets the color blending in the boost module. + */ + boostBlending?: Highcharts.OptionsBoostBlendingValue; + /** + * (Highcharts) Set the point threshold for when a series should enter + * boost mode. + * + * Setting it to e.g. 2000 will cause the series to enter boost mode + * when there are 2000 or more points in the series. + * + * To disable boosting on the series, set the `boostThreshold` to 0. + * Setting it to 1 will force boosting. + * + * Note that the cropThreshold also affects this setting. When zooming + * in on a series that has fewer points than the `cropThreshold`, all + * points are rendered although outside the visible plot area, and the + * `boostThreshold` won't take effect. + */ + boostThreshold?: number; + /** + * (Highcharts) An additional class name to apply to the series' + * graphical elements. This option does not replace default class names + * of the graphical element. Changes to the series' color will also be + * reflected in a chart's legend and tooltip. + */ + className?: string; + /** + * (Highcharts) Disable this option to allow series rendering in the + * whole plotting area. + * + * **Note:** Clipping should be always enabled when chart.zoomType is + * set + */ + clip?: boolean; + /** + * (Highcharts) Options applied to collapse Button. The collape button + * is the small button which indicates, that the node is collapsable. + */ + collapseButton?: Highcharts.PlotTreegraphCollapseButtonOptions; + /** + * (Highcharts) The main color of the series. In line type series it + * applies to the line and the point markers unless otherwise specified. + * In bar type series it applies to the bars unless a color is specified + * per point. The default value is pulled from the `options.colors` + * array. + * + * In styled mode, the color can be defined by the colorIndex option. + * Also, the series color can be set with the `.highcharts-series`, + * `.highcharts-color-{n}`, `.highcharts-{type}-series` or + * `.highcharts-series-{n}` class, or individual classes given by the + * `className` option. */ color?: (Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject); /** - * (Highcharts) A configuration object to define how the color of a - * child varies from the parent's color. The variation is distributed - * among the children of node. For example when setting brightness, the - * brightness change will range from the parent's original brightness on - * the first child, to the amount set in the `to` setting on the last - * node. This allows a gradient-like color scheme that sets children out - * from each other while highlighting the grouping on treemaps and - * sectors on sunburst charts. + * (Highcharts) When using automatic point colors pulled from the + * `options.colors` collection, this option determines whether the chart + * should receive one color per series or one color per point. */ - colorVariation?: Highcharts.PlotTreegraphLevelsColorVariationOptions; + colorByPoint?: boolean; /** - * (Highcharts) Can set the options of dataLabels on each point which - * lies on the level. plotOptions.treemap.dataLabels for possible - * values. + * (Highcharts) Styled mode only. A specific color index to use for the + * series, so its graphic representations are given the class name + * `highcharts-color-{n}`. + * + * Since v11, CSS variables on the form `--highcharts-color-{n}` make + * changing the color scheme very convenient. */ - dataLabels?: (Highcharts.PlotTreegraphLevelsDataLabelsOptions|Array); + colorIndex?: number; /** - * (Highcharts) Can set the layoutAlgorithm option on a specific level. + * (Highcharts) A series specific or series type specific color set to + * apply instead of the global colors when colorByPoint is true. */ - layoutAlgorithm?: Highcharts.OptionsLayoutAlgorithmValue; + colors?: Array<(Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject)>; /** - * (Highcharts) Can set the layoutStartingDirection option on a specific - * level. + * (Highcharts, Highstock, Gantt) When true, each point or column edge + * is rounded to its nearest pixel in order to render sharp on screen. + * In some cases, when there are a lot of densely packed columns, this + * leads to visible difference in column widths or distance between + * columns. In these cases, setting `crisp` to `false` may look better, + * even though each column is rendered blurry. */ - layoutStartingDirection?: Highcharts.OptionsLayoutStartingDirectionValue; + crisp?: boolean; /** - * (Highcharts) Decides which level takes effect from the options set in - * the levels object. + * (Highcharts) When the series contains less points than the crop + * threshold, all points are drawn, event if the points fall outside the + * visible plot area at the current zoom. The advantage of drawing all + * points (including markers and columns), is that animation is + * performed on updates. On the other hand, when the series contains + * more points than the crop threshold, the series data is cropped to + * only contain points that fall within the plot area. The advantage of + * cropping away invisible points is to increase performance on large + * series. */ - level?: number; - } - /** - * (Highcharts) Options for the connector in the _Series on point_ feature. - * - * In styled mode, the connector can be styled with the - * `.highcharts-connector-seriesonpoint` class name. - */ - interface PlotTreegraphOnPointConnectorOptions { + cropThreshold?: number; /** - * (Highcharts) A name for the dash style to use for the connector. + * (Highcharts) You can set the cursor to "pointer" if you have click + * events attached to the series, to signal to the user that the points + * and lines can be clicked. + * + * In styled mode, the series cursor can be set with the same classes as + * listed under series.color. */ - dashstyle?: string; + cursor?: (string|Highcharts.CursorValue); /** - * (Highcharts) Color of the connector line. By default it's the series' - * color. + * (Highcharts) A reserved subspace to store options and values for + * customized functionality. Here you can add additional data for your + * own event callbacks and formatter callbacks. */ - stroke?: string; + custom?: Highcharts.Dictionary; /** - * (Highcharts) Pixel width of the connector line. + * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels + * appearing on top of the nodes and links. For treegraph charts, data + * labels are visible for the nodes by default, but hidden for links. + * This is controlled by modifying the `nodeFormat`, and the `format` + * that applies to links and is an empty string by default. */ - width?: number; - } - /** - * (Highcharts) Options allowing to set a position and an offset of the - * series in the _Series on point_ feature. - */ - interface PlotTreegraphOnPointPositionOptions { + dataLabels?: (Highcharts.SeriesTreegraphDataLabelsOptionsObject|Array); + /** + * (Highcharts) A description of the series to add to the screen reader + * information about the series. + */ + description?: string; + /** + * (Highcharts) Enable or disable the mouse tracking for a specific + * series. This includes point tooltips and click events on graphs and + * points. For large datasets it improves performance. + */ + enableMouseTracking?: boolean; /** - * (Highcharts) Series center offset from the original x position. If - * defined, the connector line is drawn connecting original position - * with new position. + * (Highcharts) General event handlers for the series items. These event + * hooks can also be attached to the series at run time using the + * `Highcharts.addEvent` function. + */ + events?: Highcharts.SeriesEventsOptionsObject; + /** + * (Highcharts) Whether the treegraph series should fill the entire plot + * area in the X axis direction, even when there are collapsed points. + */ + fillSpace?: boolean; + /** + * (Highcharts) Determines whether the series should look for the + * nearest point in both dimensions or just the x-dimension when + * hovering the series. Defaults to `'xy'` for scatter series and `'x'` + * for most other series. If the data has duplicate x-values, it is + * recommended to set this to `'xy'` to allow hovering over all points. + * + * Applies only to series types using nearest neighbor search (not + * direct hover) for tooltip. */ - offsetX?: number; + findNearestPointBy?: Highcharts.OptionsFindNearestPointByValue; /** - * (Highcharts) Series center offset from the original y position. If - * defined, the connector line is drawn from original position to a new + * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the + * total chart width or only the zoomed area when zooming in on parts of + * the X axis. By default, the Y axis adjusts to the min and max of the + * visible data. Cartesian series only. + */ + getExtremesFromAll?: boolean; + /** + * (Highcharts) Highlight only the hovered point and fade the remaining + * points. + * + * Scatter-type series require enabling the 'inactive' marker state and + * adjusting opacity. Note that this approach could affect performance + * with large datasets. + */ + inactiveOtherPoints?: boolean; + /** + * (Highcharts) When set to `false` will prevent the series data from + * being included in any form of data export. + * + * Since version 6.0.0 until 7.1.0 the option was existing undocumented + * as `includeInCSVExport`. + */ + includeInDataExport?: boolean; + /** + * (Highcharts) An array specifying which option maps to which key in + * the data point array. This makes it convenient to work with + * unstructured data arrays from different sources. + */ + keys?: Array; + /** + * (Highcharts, Highstock, Gantt) Series labels are placed as close to + * the series as possible in a natural way, seeking to avoid other + * series. The goal of this feature is to make the chart more easily + * readable, like if a human designer placed the labels in the optimal * position. + * + * The series labels currently work with series types having a `graph` + * or an `area`. + */ + label?: Highcharts.SeriesLabelOptionsObject; + /** + * (Highcharts) What type of legend symbol to render for this series. + * Can be one of `areaMarker`, `lineMarker` or `rectangle`. + */ + legendSymbol?: Highcharts.OptionsLegendSymbolValue; + /** + * (Highcharts) Set options on specific levels. Takes precedence over + * series options, but not point options. + */ + levels?: Array; + link?: Highcharts.PlotTreegraphLinkOptions; + /** + * (Highcharts, Highstock, Gantt) The id of another series to link to. + * Additionally, the value can be ":previous" to link to the previous + * series. When two series are linked, only the first one appears in the + * legend. Toggling the visibility of this also toggles the linked + * series. + * + * If master series uses data sorting and linked series does not have + * its own sorting definition, the linked series will be sorted in the + * same order as the master one. + */ + linkedTo?: string; + /** + * (Highcharts) Options for the point markers of line and scatter-like + * series. Properties like `fillColor`, `lineColor` and `lineWidth` + * define the visual appearance of the markers. The `symbol` option + * defines the shape. Other series types, like column series, don't have + * markers, but have visual options on the series level instead. + * + * In styled mode, the markers can be styled with the + * `.highcharts-point`, `.highcharts-point-hover` and + * `.highcharts-point-select` class names. + */ + marker?: Highcharts.PointMarkerOptionsObject; + /** + * (Highcharts) The distance between nodes in a tree graph in the + * longitudinal direction. The longitudinal direction means the + * direction that the chart flows - in a horizontal chart the distance + * is horizontal, in an inverted chart (vertical), the distance is + * vertical. + * + * If a number is given, it denotes pixels. If a percentage string is + * given, the distance is a percentage of the rendered node width. A + * `nodeDistance` of `100%` will render equal widths for the nodes and + * the gaps between them. + * + * This option applies only when the `nodeWidth` option is `auto`, + * making the node width respond to the number of columns. + */ + nodeDistance?: (number|string); + /** + * (Highcharts) The pixel width of each node in a, or the height in case + * the chart is inverted. For tree graphs, the node width is only + * applied if the marker symbol is `rect`, otherwise the `marker` sizing + * options apply. + * + * Can be a number or a percentage string, or `auto`. If `auto`, the + * nodes are sized to fill up the plot area in the longitudinal + * direction, regardless of the number of levels. + */ + nodeWidth?: (number|string); + /** + * (Highcharts) Options for the _Series on point_ feature. Only `pie` + * and `sunburst` series are supported at this moment. + */ + onPoint?: (object|Highcharts.PlotTreegraphOnPointOptions); + /** + * (Highcharts) The opacity of a point in treemap. When a point has + * children, the visibility of the children is determined by the + * opacity. + */ + opacity?: number; + /** + * (Highcharts) Properties for each single point. + */ + point?: Highcharts.PlotSeriesPointOptions; + /** + * (Highcharts) Same as accessibility.point.descriptionFormat, but for + * an individual series. Overrides the chart wide configuration. + */ + pointDescriptionFormat?: Function; + /** + * (Highcharts) Same as accessibility.series.descriptionFormatter, but + * for an individual series. Overrides the chart wide configuration. + */ + pointDescriptionFormatter?: Function; + /** + * (Highcharts, Highstock, Gantt) If no x values are given for the + * points in a series, `pointInterval` defines the interval of the x + * values. For example, if a series contains one value every decade + * starting from year 0, set `pointInterval` to `10`. In true `datetime` + * axes, the `pointInterval` is set in milliseconds. + * + * It can be also be combined with `pointIntervalUnit` to draw irregular + * time intervals. + * + * If combined with `relativeXValue`, an x value can be set on each + * point, and the `pointInterval` is added x times to the `pointStart` + * setting. + * + * Please note that this options applies to the _series data_, not the + * interval of the axis ticks, which is independent. */ - offsetY?: number; + pointInterval?: number; /** - * (Highcharts) X position of the series center. By default, the series - * is displayed on the point that it is connected to. + * (Highcharts, Highstock, Gantt) On datetime series, this allows for + * setting the pointInterval to irregular time units, `day`, `month` and + * `year`. A day is usually the same as 24 hours, but + * `pointIntervalUnit` also takes the DST crossover into consideration + * when dealing with local time. Combine this option with + * `pointInterval` to draw weeks, quarters, 6 months, 10 years etc. + * + * Please note that this options applies to the _series data_, not the + * interval of the axis ticks, which is independent. + */ + pointIntervalUnit?: Highcharts.OptionsPointIntervalUnitValue; + /** + * (Highcharts, Highstock, Gantt) If no x values are given for the + * points in a series, `pointStart` defines on what value to start. For + * example, if a series contains one yearly value starting from 1945, + * set `pointStart` to 1945. + * + * The `pointStart` setting can be a number, or a datetime string that + * is parsed according to the `time.timezone` setting. + * + * If combined with `relativeXValue`, an x value can be set on each + * point. The x value from the point options is multiplied by + * `pointInterval` and added to `pointStart` to produce a modified x + * value. + */ + pointStart?: (number|string); + /** + * (Highcharts, Highstock) When true, X values in the data set are + * relative to the current `pointStart`, `pointInterval` and + * `pointIntervalUnit` settings. This allows compression of the data for + * datasets with irregular X values. + * + * The real X values are computed on the formula `f(x) = ax + b`, where + * `a` is the `pointInterval` (optionally with a time unit given by + * `pointIntervalUnit`), and `b` is the `pointStart`. + */ + relativeXValue?: boolean; + /** + * (Highcharts) Flips the positions of the nodes of a treegraph along + * the horizontal axis (vertical if chart is inverted). + */ + reversed?: boolean; + /** + * (Highcharts) Whether to select the series initially. If + * `showCheckbox` is true, the checkbox next to the series name in the + * legend will be checked for a selected series. + */ + selected?: boolean; + /** + * (Highcharts) If true, a checkbox is displayed next to the legend item + * to allow selecting the series. The state of the checkbox is + * determined by the `selected` option. + */ + showCheckbox?: boolean; + /** + * (Highcharts) Whether to display this series type or specific series + * item in the legend. + */ + showInLegend?: boolean; + /** + * (Highcharts) If set to `true`, the accessibility module will skip + * past the points in this series for keyboard navigation. + */ + skipKeyboardNavigation?: boolean; + /** + * (Highcharts, Highstock) When this is true, the series will not cause + * the Y axis to cross the zero plane (or threshold option) unless the + * data actually crosses the plane. + * + * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 + * will make the Y axis show negative values according to the + * `minPadding` option. If `softThreshold` is `true`, the Y axis starts + * at 0. + */ + softThreshold?: boolean; + /** + * (Highcharts) Sonification/audio chart options for a series. + */ + sonification?: Highcharts.SeriesSonificationOptions; + /** + * (Highcharts, Highstock) Whether to stack the values of each series on + * top of each other. Possible values are `undefined` to disable, + * `"normal"` to stack by value or `"percent"`. + * + * When stacking is enabled, data must be sorted in ascending X order. + * + * Some stacking options are related to specific series types. In the + * streamgraph series type, the stacking option is set to `"stream"`. + * The second one is `"overlap"`, which only applies to waterfall + * series. + */ + stacking?: Highcharts.OptionsStackingValue; + /** + * (Highcharts) A wrapper object for all the series options in specific + * states. + */ + states?: Highcharts.SeriesStatesOptionsObject; + /** + * (Highcharts, Highstock) Whether to apply steps to the line. Possible + * values are `left`, `center` and `right`. + */ + step?: Highcharts.OptionsStepValue; + /** + * (Highcharts, Highstock, Highmaps) Sticky tracking of mouse events. + * When true, the `mouseOut` event on a series isn't triggered until the + * mouse moves over another series, or out of the plot area. When false, + * the `mouseOut` event on a series is triggered when the mouse leaves + * the area around the series' graph or markers. This also implies the + * tooltip. When `stickyTracking` is false and `tooltip.shared` is + * false, the tooltip will be hidden when moving the mouse between + * series. + */ + stickyTracking?: boolean; + /** + * (Highcharts, Highstock, Highmaps) A configuration object for the + * tooltip rendering of each single series. Properties are inherited + * from tooltip. Overridable properties are `headerFormat`, + * `pointFormat`, `yDecimals`, `xDateFormat`, `yPrefix` and `ySuffix`. + * Unlike other series, in a scatter plot the series.name by default + * shows in the headerFormat and point.x and point.y in the pointFormat. + */ + tooltip?: Highcharts.SeriesTooltipOptionsObject; + /** + * (Highcharts) This option enables automatic traversing to the last + * child level upon node interaction. This feature simplifies navigation + * by immediately focusing on the deepest layer of the data structure + * without intermediate steps. + */ + traverseToLeaf?: boolean; + /** + * (Highcharts, Highstock, Gantt) When a series contains a `data` array + * that is longer than this, the Series class looks for data + * configurations of plain numbers or arrays of numbers. The first and + * last valid points are checked. If found, the rest of the data is + * assumed to be the same. This saves expensive data checking and + * indexing in long series, and makes data-heavy charts render faster. + * + * Set it to `0` disable. + * + * Note: + * + * - In boost mode turbo threshold is forced. Only array of numbers or + * two dimensional arrays are allowed. + * + * - In version 11.4.3 and earlier, if object configurations were passed + * beyond the turbo threshold, a warning was logged in the console and + * the data series didn't render. */ - x?: number; + turboThreshold?: number; /** - * (Highcharts) Y position of the series center. By default, the series - * is displayed on the point that it is connected to. + * (Highcharts) Set the initial visibility of the series. */ - y?: number; + visible?: boolean; } /** * (Highcharts) Enable or disable the initial animation when a series is diff --git a/options/treegraph.src.d.ts b/options/treegraph.src.d.ts index 01471c52a3..1e1c5ef3a5 100644 --- a/options/treegraph.src.d.ts +++ b/options/treegraph.src.d.ts @@ -127,111 +127,600 @@ declare module "../highcharts.src" { defer?: number; } /** - * (Highcharts) Set options on specific levels. Takes precedence over series - * options, but not point options. + * (Highcharts) Styles for the label. The default `color` setting is + * `"contrast"`, which is a pseudo color that Highcharts picks up and + * applies the maximum contrast to the underlying point item, for example + * the bar in a bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the + * given width with the given color, which by default is the maximum + * contrast to the text. So a bright text color will result in a black text + * outline for maximum readability on a mixed background. In some cases, + * especially with grayscale text, the text outline doesn't work well, in + * which cases it can be disabled by setting it to `"none"`. When `useHTML` + * is true, the `textOutline` will not be picked up. In this, case, the same + * effect can be acheived through the `text-shadow` CSS property. + * + * For some series types, where each point has an extent, like for example + * tree maps, the data label may overflow the point. There are two + * strategies for handling overflow. By default, the text will wrap to + * multiple lines. The other strategy is to set `style.textOverflow` to + * `ellipsis`, which will keep the text on one line plus it will break + * inside long words. + */ + interface PlotTreegraphLevelsDataLabelsStyleOptions { + textOverflow?: string; + } + interface PlotTreegraphLinkOptions { + /** + * (Highcharts) The color of the links between nodes. + */ + color?: Highcharts.ColorString; + cursor?: string; + /** + * (Highcharts) The line width of the links connecting nodes, in pixels. + */ + lineWidth?: number; + /** + * (Highcharts) Radius for the rounded corners of the links between + * nodes. Works for `default` link type. + */ + radius?: number; + /** + * (Highcharts) Type of the link shape. + */ + type?: ('curved'|'default'|'straight'); + } + /** + * (Highcharts) Options for the _Series on point_ feature. Only `pie` and + * `sunburst` series are supported at this moment. */ - interface PlotTreegraphLevelsOptions { + interface PlotTreegraphOnPointOptions { /** - * (Highcharts) Can set a `borderColor` on all points which lies on the - * same level. + * (Highcharts) Options for the connector in the _Series on point_ + * feature. + * + * In styled mode, the connector can be styled with the + * `.highcharts-connector-seriesonpoint` class name. */ - borderColor?: Highcharts.ColorString; + connectorOptions?: (Highcharts.PlotTreegraphOnPointConnectorOptions|Highcharts.SVGAttributes); /** - * (Highcharts) Set the dash style of the border of all the point which - * lies on the level. See plotOptions.scatter.dashStyle for possible - * options. + * (Highcharts) The `id` of the point that we connect the series to. + * Only points with a given `plotX` and `plotY` values and map points + * are valid. */ - borderDashStyle?: Highcharts.DashStyleValue; + id?: string; + /** + * (Highcharts) Options allowing to set a position and an offset of the + * series in the _Series on point_ feature. + */ + position?: (object|Highcharts.PlotTreegraphOnPointPositionOptions); + } + /** + * (Highcharts) A treegraph series is a diagram, which shows a relation + * between ancestors and descendants with a clear parent - child relation. + * The best examples of the dataStructures, which best reflect this chart + * are e.g. genealogy tree or directory structure. + * + * TODO change back the demo path + * + * Configuration options for the series are given in three levels: + * + * 1. Options for all series in a chart are defined in the + * plotOptions.series object. + * + * 2. Options for all `treegraph` series are defined in + * plotOptions.treegraph. + * + * 3. Options for one single series are given in the series instance array. + * (see online documentation for example) + * + * **TypeScript:** + * + * - the type option must always be set. + * + * - when accessing an array of series, the combined set of all series types + * is represented by Highcharts.SeriesOptionsType . Narrowing down to the + * specific type can be done by checking the `type` property. (see online + * documentation for example) + */ + interface PlotTreegraphOptions { /** - * (Highcharts) Can set the borderWidth on all points which lies on the - * same level. + * (Highcharts) Accessibility options for a series. */ - borderWidth?: number; + accessibility?: Highcharts.SeriesAccessibilityOptionsObject; /** - * (Highcharts) Can set a color on all points which lies on the same - * level. + * (Highcharts) Allow this series' points to be selected by clicking on + * the graphic (columns, point markers, pie slices, map areas etc). + * + * The selected points can be handled by point select and unselect + * events, or collectively by the getSelectedPoints function. + * + * And alternative way of selecting points is through dragging. + */ + allowPointSelect?: boolean; + /** + * (Highcharts) Enable or disable the initial animation when a series is + * displayed. The animation can also be set as a configuration object. + * Please note that this option only applies to the initial animation of + * the series itself. For other animations, see chart.animation and the + * animation parameter under the API methods. The following properties + * are supported: + * + * - `defer`: The animation delay time in milliseconds. + * + * - `duration`: The duration of the animation in milliseconds. + * (Defaults to `1000`) + * + * - `easing`: Can be a string reference to an easing function set on + * the `Math` object or a function. See the _Custom easing function_ + * demo below. (Defaults to `easeInOutSine`) + * + * Due to poor performance, animation is disabled in old IE browsers for + * several chart types. + */ + animation?: (boolean|Highcharts.AnimationOptionsObject); + /** + * (Highcharts) For some series, there is a limit that shuts down + * animation by default when the total number of points in the chart is + * too high. For example, for a column chart and its derivatives, + * animation does not run if there is more than 250 points totally. To + * disable this cap, set `animationLimit` to `Infinity`. This option + * works if animation is fired on individual points, not on a group of + * points like e.g. during the initial animation. + */ + animationLimit?: number; + /** + * (Highcharts) Sets the color blending in the boost module. + */ + boostBlending?: Highcharts.OptionsBoostBlendingValue; + /** + * (Highcharts) Set the point threshold for when a series should enter + * boost mode. + * + * Setting it to e.g. 2000 will cause the series to enter boost mode + * when there are 2000 or more points in the series. + * + * To disable boosting on the series, set the `boostThreshold` to 0. + * Setting it to 1 will force boosting. + * + * Note that the cropThreshold also affects this setting. When zooming + * in on a series that has fewer points than the `cropThreshold`, all + * points are rendered although outside the visible plot area, and the + * `boostThreshold` won't take effect. + */ + boostThreshold?: number; + /** + * (Highcharts) An additional class name to apply to the series' + * graphical elements. This option does not replace default class names + * of the graphical element. Changes to the series' color will also be + * reflected in a chart's legend and tooltip. + */ + className?: string; + /** + * (Highcharts) Disable this option to allow series rendering in the + * whole plotting area. + * + * **Note:** Clipping should be always enabled when chart.zoomType is + * set + */ + clip?: boolean; + /** + * (Highcharts) Options applied to collapse Button. The collape button + * is the small button which indicates, that the node is collapsable. + */ + collapseButton?: Highcharts.PlotTreegraphCollapseButtonOptions; + /** + * (Highcharts) The main color of the series. In line type series it + * applies to the line and the point markers unless otherwise specified. + * In bar type series it applies to the bars unless a color is specified + * per point. The default value is pulled from the `options.colors` + * array. + * + * In styled mode, the color can be defined by the colorIndex option. + * Also, the series color can be set with the `.highcharts-series`, + * `.highcharts-color-{n}`, `.highcharts-{type}-series` or + * `.highcharts-series-{n}` class, or individual classes given by the + * `className` option. */ color?: (Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject); /** - * (Highcharts) A configuration object to define how the color of a - * child varies from the parent's color. The variation is distributed - * among the children of node. For example when setting brightness, the - * brightness change will range from the parent's original brightness on - * the first child, to the amount set in the `to` setting on the last - * node. This allows a gradient-like color scheme that sets children out - * from each other while highlighting the grouping on treemaps and - * sectors on sunburst charts. + * (Highcharts) When using automatic point colors pulled from the + * `options.colors` collection, this option determines whether the chart + * should receive one color per series or one color per point. */ - colorVariation?: Highcharts.PlotTreegraphLevelsColorVariationOptions; + colorByPoint?: boolean; /** - * (Highcharts) Can set the options of dataLabels on each point which - * lies on the level. plotOptions.treemap.dataLabels for possible - * values. + * (Highcharts) Styled mode only. A specific color index to use for the + * series, so its graphic representations are given the class name + * `highcharts-color-{n}`. + * + * Since v11, CSS variables on the form `--highcharts-color-{n}` make + * changing the color scheme very convenient. */ - dataLabels?: (Highcharts.PlotTreegraphLevelsDataLabelsOptions|Array); + colorIndex?: number; /** - * (Highcharts) Can set the layoutAlgorithm option on a specific level. + * (Highcharts) A series specific or series type specific color set to + * apply instead of the global colors when colorByPoint is true. */ - layoutAlgorithm?: Highcharts.OptionsLayoutAlgorithmValue; + colors?: Array<(Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject)>; /** - * (Highcharts) Can set the layoutStartingDirection option on a specific - * level. + * (Highcharts, Highstock, Gantt) When true, each point or column edge + * is rounded to its nearest pixel in order to render sharp on screen. + * In some cases, when there are a lot of densely packed columns, this + * leads to visible difference in column widths or distance between + * columns. In these cases, setting `crisp` to `false` may look better, + * even though each column is rendered blurry. */ - layoutStartingDirection?: Highcharts.OptionsLayoutStartingDirectionValue; + crisp?: boolean; /** - * (Highcharts) Decides which level takes effect from the options set in - * the levels object. + * (Highcharts) When the series contains less points than the crop + * threshold, all points are drawn, event if the points fall outside the + * visible plot area at the current zoom. The advantage of drawing all + * points (including markers and columns), is that animation is + * performed on updates. On the other hand, when the series contains + * more points than the crop threshold, the series data is cropped to + * only contain points that fall within the plot area. The advantage of + * cropping away invisible points is to increase performance on large + * series. */ - level?: number; - } - /** - * (Highcharts) Options for the connector in the _Series on point_ feature. - * - * In styled mode, the connector can be styled with the - * `.highcharts-connector-seriesonpoint` class name. - */ - interface PlotTreegraphOnPointConnectorOptions { + cropThreshold?: number; /** - * (Highcharts) A name for the dash style to use for the connector. + * (Highcharts) You can set the cursor to "pointer" if you have click + * events attached to the series, to signal to the user that the points + * and lines can be clicked. + * + * In styled mode, the series cursor can be set with the same classes as + * listed under series.color. */ - dashstyle?: string; + cursor?: (string|Highcharts.CursorValue); /** - * (Highcharts) Color of the connector line. By default it's the series' - * color. + * (Highcharts) A reserved subspace to store options and values for + * customized functionality. Here you can add additional data for your + * own event callbacks and formatter callbacks. */ - stroke?: string; + custom?: Highcharts.Dictionary; /** - * (Highcharts) Pixel width of the connector line. + * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels + * appearing on top of the nodes and links. For treegraph charts, data + * labels are visible for the nodes by default, but hidden for links. + * This is controlled by modifying the `nodeFormat`, and the `format` + * that applies to links and is an empty string by default. */ - width?: number; - } - /** - * (Highcharts) Options allowing to set a position and an offset of the - * series in the _Series on point_ feature. - */ - interface PlotTreegraphOnPointPositionOptions { + dataLabels?: (Highcharts.SeriesTreegraphDataLabelsOptionsObject|Array); + /** + * (Highcharts) A description of the series to add to the screen reader + * information about the series. + */ + description?: string; + /** + * (Highcharts) Enable or disable the mouse tracking for a specific + * series. This includes point tooltips and click events on graphs and + * points. For large datasets it improves performance. + */ + enableMouseTracking?: boolean; /** - * (Highcharts) Series center offset from the original x position. If - * defined, the connector line is drawn connecting original position - * with new position. + * (Highcharts) General event handlers for the series items. These event + * hooks can also be attached to the series at run time using the + * `Highcharts.addEvent` function. + */ + events?: Highcharts.SeriesEventsOptionsObject; + /** + * (Highcharts) Whether the treegraph series should fill the entire plot + * area in the X axis direction, even when there are collapsed points. + */ + fillSpace?: boolean; + /** + * (Highcharts) Determines whether the series should look for the + * nearest point in both dimensions or just the x-dimension when + * hovering the series. Defaults to `'xy'` for scatter series and `'x'` + * for most other series. If the data has duplicate x-values, it is + * recommended to set this to `'xy'` to allow hovering over all points. + * + * Applies only to series types using nearest neighbor search (not + * direct hover) for tooltip. */ - offsetX?: number; + findNearestPointBy?: Highcharts.OptionsFindNearestPointByValue; /** - * (Highcharts) Series center offset from the original y position. If - * defined, the connector line is drawn from original position to a new + * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the + * total chart width or only the zoomed area when zooming in on parts of + * the X axis. By default, the Y axis adjusts to the min and max of the + * visible data. Cartesian series only. + */ + getExtremesFromAll?: boolean; + /** + * (Highcharts) Highlight only the hovered point and fade the remaining + * points. + * + * Scatter-type series require enabling the 'inactive' marker state and + * adjusting opacity. Note that this approach could affect performance + * with large datasets. + */ + inactiveOtherPoints?: boolean; + /** + * (Highcharts) When set to `false` will prevent the series data from + * being included in any form of data export. + * + * Since version 6.0.0 until 7.1.0 the option was existing undocumented + * as `includeInCSVExport`. + */ + includeInDataExport?: boolean; + /** + * (Highcharts) An array specifying which option maps to which key in + * the data point array. This makes it convenient to work with + * unstructured data arrays from different sources. + */ + keys?: Array; + /** + * (Highcharts, Highstock, Gantt) Series labels are placed as close to + * the series as possible in a natural way, seeking to avoid other + * series. The goal of this feature is to make the chart more easily + * readable, like if a human designer placed the labels in the optimal * position. + * + * The series labels currently work with series types having a `graph` + * or an `area`. + */ + label?: Highcharts.SeriesLabelOptionsObject; + /** + * (Highcharts) What type of legend symbol to render for this series. + * Can be one of `areaMarker`, `lineMarker` or `rectangle`. + */ + legendSymbol?: Highcharts.OptionsLegendSymbolValue; + /** + * (Highcharts) Set options on specific levels. Takes precedence over + * series options, but not point options. + */ + levels?: Array; + link?: Highcharts.PlotTreegraphLinkOptions; + /** + * (Highcharts, Highstock, Gantt) The id of another series to link to. + * Additionally, the value can be ":previous" to link to the previous + * series. When two series are linked, only the first one appears in the + * legend. Toggling the visibility of this also toggles the linked + * series. + * + * If master series uses data sorting and linked series does not have + * its own sorting definition, the linked series will be sorted in the + * same order as the master one. + */ + linkedTo?: string; + /** + * (Highcharts) Options for the point markers of line and scatter-like + * series. Properties like `fillColor`, `lineColor` and `lineWidth` + * define the visual appearance of the markers. The `symbol` option + * defines the shape. Other series types, like column series, don't have + * markers, but have visual options on the series level instead. + * + * In styled mode, the markers can be styled with the + * `.highcharts-point`, `.highcharts-point-hover` and + * `.highcharts-point-select` class names. + */ + marker?: Highcharts.PointMarkerOptionsObject; + /** + * (Highcharts) The distance between nodes in a tree graph in the + * longitudinal direction. The longitudinal direction means the + * direction that the chart flows - in a horizontal chart the distance + * is horizontal, in an inverted chart (vertical), the distance is + * vertical. + * + * If a number is given, it denotes pixels. If a percentage string is + * given, the distance is a percentage of the rendered node width. A + * `nodeDistance` of `100%` will render equal widths for the nodes and + * the gaps between them. + * + * This option applies only when the `nodeWidth` option is `auto`, + * making the node width respond to the number of columns. + */ + nodeDistance?: (number|string); + /** + * (Highcharts) The pixel width of each node in a, or the height in case + * the chart is inverted. For tree graphs, the node width is only + * applied if the marker symbol is `rect`, otherwise the `marker` sizing + * options apply. + * + * Can be a number or a percentage string, or `auto`. If `auto`, the + * nodes are sized to fill up the plot area in the longitudinal + * direction, regardless of the number of levels. + */ + nodeWidth?: (number|string); + /** + * (Highcharts) Options for the _Series on point_ feature. Only `pie` + * and `sunburst` series are supported at this moment. + */ + onPoint?: (object|Highcharts.PlotTreegraphOnPointOptions); + /** + * (Highcharts) The opacity of a point in treemap. When a point has + * children, the visibility of the children is determined by the + * opacity. + */ + opacity?: number; + /** + * (Highcharts) Properties for each single point. + */ + point?: Highcharts.PlotSeriesPointOptions; + /** + * (Highcharts) Same as accessibility.point.descriptionFormat, but for + * an individual series. Overrides the chart wide configuration. + */ + pointDescriptionFormat?: Function; + /** + * (Highcharts) Same as accessibility.series.descriptionFormatter, but + * for an individual series. Overrides the chart wide configuration. + */ + pointDescriptionFormatter?: Function; + /** + * (Highcharts, Highstock, Gantt) If no x values are given for the + * points in a series, `pointInterval` defines the interval of the x + * values. For example, if a series contains one value every decade + * starting from year 0, set `pointInterval` to `10`. In true `datetime` + * axes, the `pointInterval` is set in milliseconds. + * + * It can be also be combined with `pointIntervalUnit` to draw irregular + * time intervals. + * + * If combined with `relativeXValue`, an x value can be set on each + * point, and the `pointInterval` is added x times to the `pointStart` + * setting. + * + * Please note that this options applies to the _series data_, not the + * interval of the axis ticks, which is independent. */ - offsetY?: number; + pointInterval?: number; /** - * (Highcharts) X position of the series center. By default, the series - * is displayed on the point that it is connected to. + * (Highcharts, Highstock, Gantt) On datetime series, this allows for + * setting the pointInterval to irregular time units, `day`, `month` and + * `year`. A day is usually the same as 24 hours, but + * `pointIntervalUnit` also takes the DST crossover into consideration + * when dealing with local time. Combine this option with + * `pointInterval` to draw weeks, quarters, 6 months, 10 years etc. + * + * Please note that this options applies to the _series data_, not the + * interval of the axis ticks, which is independent. + */ + pointIntervalUnit?: Highcharts.OptionsPointIntervalUnitValue; + /** + * (Highcharts, Highstock, Gantt) If no x values are given for the + * points in a series, `pointStart` defines on what value to start. For + * example, if a series contains one yearly value starting from 1945, + * set `pointStart` to 1945. + * + * The `pointStart` setting can be a number, or a datetime string that + * is parsed according to the `time.timezone` setting. + * + * If combined with `relativeXValue`, an x value can be set on each + * point. The x value from the point options is multiplied by + * `pointInterval` and added to `pointStart` to produce a modified x + * value. + */ + pointStart?: (number|string); + /** + * (Highcharts, Highstock) When true, X values in the data set are + * relative to the current `pointStart`, `pointInterval` and + * `pointIntervalUnit` settings. This allows compression of the data for + * datasets with irregular X values. + * + * The real X values are computed on the formula `f(x) = ax + b`, where + * `a` is the `pointInterval` (optionally with a time unit given by + * `pointIntervalUnit`), and `b` is the `pointStart`. + */ + relativeXValue?: boolean; + /** + * (Highcharts) Flips the positions of the nodes of a treegraph along + * the horizontal axis (vertical if chart is inverted). + */ + reversed?: boolean; + /** + * (Highcharts) Whether to select the series initially. If + * `showCheckbox` is true, the checkbox next to the series name in the + * legend will be checked for a selected series. + */ + selected?: boolean; + /** + * (Highcharts) If true, a checkbox is displayed next to the legend item + * to allow selecting the series. The state of the checkbox is + * determined by the `selected` option. + */ + showCheckbox?: boolean; + /** + * (Highcharts) Whether to display this series type or specific series + * item in the legend. + */ + showInLegend?: boolean; + /** + * (Highcharts) If set to `true`, the accessibility module will skip + * past the points in this series for keyboard navigation. + */ + skipKeyboardNavigation?: boolean; + /** + * (Highcharts, Highstock) When this is true, the series will not cause + * the Y axis to cross the zero plane (or threshold option) unless the + * data actually crosses the plane. + * + * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 + * will make the Y axis show negative values according to the + * `minPadding` option. If `softThreshold` is `true`, the Y axis starts + * at 0. + */ + softThreshold?: boolean; + /** + * (Highcharts) Sonification/audio chart options for a series. + */ + sonification?: Highcharts.SeriesSonificationOptions; + /** + * (Highcharts, Highstock) Whether to stack the values of each series on + * top of each other. Possible values are `undefined` to disable, + * `"normal"` to stack by value or `"percent"`. + * + * When stacking is enabled, data must be sorted in ascending X order. + * + * Some stacking options are related to specific series types. In the + * streamgraph series type, the stacking option is set to `"stream"`. + * The second one is `"overlap"`, which only applies to waterfall + * series. + */ + stacking?: Highcharts.OptionsStackingValue; + /** + * (Highcharts) A wrapper object for all the series options in specific + * states. + */ + states?: Highcharts.SeriesStatesOptionsObject; + /** + * (Highcharts, Highstock) Whether to apply steps to the line. Possible + * values are `left`, `center` and `right`. + */ + step?: Highcharts.OptionsStepValue; + /** + * (Highcharts, Highstock, Highmaps) Sticky tracking of mouse events. + * When true, the `mouseOut` event on a series isn't triggered until the + * mouse moves over another series, or out of the plot area. When false, + * the `mouseOut` event on a series is triggered when the mouse leaves + * the area around the series' graph or markers. This also implies the + * tooltip. When `stickyTracking` is false and `tooltip.shared` is + * false, the tooltip will be hidden when moving the mouse between + * series. + */ + stickyTracking?: boolean; + /** + * (Highcharts, Highstock, Highmaps) A configuration object for the + * tooltip rendering of each single series. Properties are inherited + * from tooltip. Overridable properties are `headerFormat`, + * `pointFormat`, `yDecimals`, `xDateFormat`, `yPrefix` and `ySuffix`. + * Unlike other series, in a scatter plot the series.name by default + * shows in the headerFormat and point.x and point.y in the pointFormat. + */ + tooltip?: Highcharts.SeriesTooltipOptionsObject; + /** + * (Highcharts) This option enables automatic traversing to the last + * child level upon node interaction. This feature simplifies navigation + * by immediately focusing on the deepest layer of the data structure + * without intermediate steps. + */ + traverseToLeaf?: boolean; + /** + * (Highcharts, Highstock, Gantt) When a series contains a `data` array + * that is longer than this, the Series class looks for data + * configurations of plain numbers or arrays of numbers. The first and + * last valid points are checked. If found, the rest of the data is + * assumed to be the same. This saves expensive data checking and + * indexing in long series, and makes data-heavy charts render faster. + * + * Set it to `0` disable. + * + * Note: + * + * - In boost mode turbo threshold is forced. Only array of numbers or + * two dimensional arrays are allowed. + * + * - In version 11.4.3 and earlier, if object configurations were passed + * beyond the turbo threshold, a warning was logged in the console and + * the data series didn't render. */ - x?: number; + turboThreshold?: number; /** - * (Highcharts) Y position of the series center. By default, the series - * is displayed on the point that it is connected to. + * (Highcharts) Set the initial visibility of the series. */ - y?: number; + visible?: boolean; } /** * (Highcharts) Enable or disable the initial animation when a series is diff --git a/options/treemap.d.ts b/options/treemap.d.ts index db00d1802b..4245f6685b 100644 --- a/options/treemap.d.ts +++ b/options/treemap.d.ts @@ -6,224 +6,369 @@ import * as Highcharts from "../highcharts"; declare module "../highcharts" { /** - * (Highcharts) Point accessibility options for a series. + * (Highcharts) A collection of attributes for the buttons. The object takes + * SVG attributes like `fill`, `stroke`, `stroke-width`, as well as `style`, + * a collection of CSS properties for the text. + * + * The object can also be extended with states, so you can set + * presentational options for `hover`, `select` or `disabled` button states. */ - interface PlotTreemapAccessibilityPointOptions { + interface PlotTreemapBreadcrumbsButtonThemeOptions { + style?: Highcharts.PlotTreemapBreadcrumbsButtonThemeStyleOptions; + } + interface PlotTreemapBreadcrumbsEventsOptions { /** - * (Highcharts) Date format to use for points on datetime axes when - * describing them to screen reader users. + * (Highcharts) Fires when clicking on the breadcrumbs button. Two + * arguments are passed to the function. First breadcrumb button as an + * SVG element. Second is the breadcrumbs class, containing reference to + * the chart, series etc. (see online documentation for example) * - * Defaults to the same format as in tooltip. - * - * For an overview of the replacement codes, see dateFormat. + * Return false to stop default buttons click action. + */ + click?: Highcharts.BreadcrumbsClickCallbackFunction; + } + /** + * (Highcharts, Highmaps) Positioning for the button row. The breadcrumbs + * buttons will be aligned properly for the default chart layout (title, + * subtitle, legend, range selector) for the custom chart layout set the + * position properties. + */ + interface PlotTreemapBreadcrumbsPositionOptions { + /** + * (Highcharts, Highmaps) Horizontal alignment of the breadcrumbs + * buttons. */ - dateFormat?: string; + align?: Highcharts.AlignValue; /** - * (Highcharts) Formatter function to determine the date/time format - * used with points on datetime axes when describing them to screen - * reader users. Receives one argument, `point`, referring to the point - * to describe. Should return a date format string compatible with - * dateFormat. + * (Highcharts, Highmaps) Vertical alignment of the breadcrumbs buttons. */ - dateFormatter?: Highcharts.ScreenReaderFormatterCallbackFunction; + verticalAlign?: Highcharts.VerticalAlignValue; /** - * (Highcharts) Whether or not to describe points with the value `null` - * to assistive technology, such as screen readers. + * (Highcharts, Highmaps) The X offset of the breadcrumbs button group. */ - describeNull?: boolean; + x?: number; /** - * (Highcharts) A format string to use instead of the default for point - * descriptions. + * (Highcharts, Highmaps) The Y offset of the breadcrumbs button group. + * When `undefined`, and `floating` is `false`, the `y` position is + * adapted so that the breadcrumbs are rendered outside the target area. + */ + y?: (number|undefined); + } + /** + * (Highcharts) CSS styles for the breadcrumbs separator. + * + * In styled mode, the breadcrumbs separators are styled by the + * `.highcharts-separator` rule with its different states. + */ + interface PlotTreemapBreadcrumbsSeparatorStyleOptions { + color?: string; + fontSize?: number; + } + interface PlotTreemapClusterMarkerOptions { + lineWidth?: number; + radius?: number; + } + /** + * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial + * animation when a series is displayed for the `dataLabels`. The animation + * can also be set as a configuration object. Please note that this option + * only applies to the initial animation. + * + * For other animations, see chart.animation and the animation parameter + * under the API methods. The following properties are supported: + * + * - `defer`: The animation delay time in milliseconds. + */ + interface PlotTreemapDataLabelsAnimationOptions { + /** + * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in + * milliseconds. Set to `0` to render the data labels immediately. As + * `undefined` inherits defer time from the series.animation.defer. + */ + defer?: number; + } + /** + * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The + * default `color` setting is `"contrast"`, which is a pseudo color that + * Highcharts picks up and applies the maximum contrast to the underlying + * point item, for example the bar in a bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the + * given width with the given color, which by default is the maximum + * contrast to the text. So a bright text color will result in a black text + * outline for maximum readability on a mixed background. In some cases, + * especially with grayscale text, the text outline doesn't work well, in + * which cases it can be disabled by setting it to `"none"`. When `useHTML` + * is true, the `textOutline` will not be picked up. In this, case, the same + * effect can be acheived through the `text-shadow` CSS property. + * + * For some series types, where each point has an extent, like for example + * tree maps, the data label may overflow the point. There are two + * strategies for handling overflow. By default, the text will wrap to + * multiple lines. The other strategy is to set `style.textOverflow` to + * `ellipsis`, which will keep the text on one line plus it will break + * inside long words. + */ + interface PlotTreemapDataLabelsStyleOptions { + textOverflow?: string; + } + /** + * (Highcharts) A configuration object to define how the color of a child + * varies from the parent's color. The variation is distributed among the + * children of node. For example when setting brightness, the brightness + * change will range from the parent's original brightness on the first + * child, to the amount set in the `to` setting on the last node. This + * allows a gradient-like color scheme that sets children out from each + * other while highlighting the grouping on treemaps and sectors on sunburst + * charts. + */ + interface PlotTreemapLevelsColorVariationOptions { + /** + * (Highcharts) The key of a color variation. Currently supports + * `brightness` only. + */ + key?: "brightness"; + /** + * (Highcharts) The ending value of a color variation. The last sibling + * will receive this value. + */ + to?: number; + } + /** + * (Highcharts) Can set the options of dataLabels on each point which lies + * on the level. plotOptions.treemap.dataLabels for possible values. + */ + interface PlotTreemapLevelsDataLabelsOptions { + /** + * (Highcharts) The alignment of the data label compared to the point. + * If `right`, the right side of the label should be touching the point. + * For points with an extent, like columns, the alignments also dictates + * how to align it inside the box, as given with the inside option. Can + * be one of `left`, `center` or `right`. + */ + align?: (Highcharts.AlignValue|null); + /** + * (Highcharts) Alignment method for data labels. If set to `plotEdges`, + * the labels are aligned within the plot area in the direction of the + * y-axis. So in a regular column chart, the labels are aligned + * vertically according to the `verticalAlign` setting. In a bar chart, + * which is inverted, the labels are aligned horizontally according to + * the `align` setting. Applies to cartesian series only. + */ + alignTo?: string; + /** + * (Highcharts) Whether to allow data labels to overlap. To make the + * labels less sensitive for overlapping, the dataLabels.padding can be + * set to 0. + */ + allowOverlap?: boolean; + /** + * (Highcharts) Enable or disable the initial animation when a series is + * displayed for the `dataLabels`. The animation can also be set as a + * configuration object. Please note that this option only applies to + * the initial animation. * - * The context of the format string is the point instance. + * For other animations, see chart.animation and the animation parameter + * under the API methods. The following properties are supported: * - * As opposed to accessibility.point.valueDescriptionFormat, this option - * replaces the whole description. + * - `defer`: The animation delay time in milliseconds. */ - descriptionFormat?: string; + animation?: (boolean|Highcharts.PlotTreemapLevelsDataLabelsAnimationOptions|Partial); /** - * (Highcharts) Formatter function to use instead of the default for - * point descriptions. Same as - * `accessibility.point.descriptionFormatter`, but applies to a series - * instead of the whole chart. - * - * Note: Prefer using accessibility.point.valueDescriptionFormat instead - * if possible, as default functionality such as describing annotations - * will be preserved. + * (Highcharts) The background color or gradient for the data label. + * Setting it to `auto` will use the point's color. */ - descriptionFormatter?: Highcharts.ScreenReaderFormatterCallbackFunction; + backgroundColor?: (Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject); /** - * (Highcharts) Decimals to use for the values in the point - * descriptions. Uses tooltip.valueDecimals if not defined. + * (Highcharts) The border color for the data label. Setting it to + * `auto` will use the point's color. Defaults to `undefined`. */ - valueDecimals?: number; + borderColor?: (Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject); /** - * (Highcharts) Format to use for describing the values of data points - * to assistive technology - including screen readers. The point context - * is available as `{point}`. + * (Highcharts) The border radius in pixels for the data label. + */ + borderRadius?: number; + /** + * (Highcharts) The border width in pixels for the data label. + */ + borderWidth?: number; + /** + * (Highcharts) A class name for the data label. Particularly in styled + * mode, this can be used to give each series' or point's data label + * unique styling. In addition to this option, a default color class + * name is added so that we can give the labels a contrast text shadow. + */ + className?: string; + /** + * (Highcharts) This options is deprecated. Use style.color instead. * - * Other available context variables include `{index}`, `{value}`, and - * `{xDescription}`. + * The text color for the data labels. Defaults to `undefined`. For + * certain series types, like column or map, the data labels can be + * drawn inside the points. In this case the data label will be drawn + * with maximum contrast by default. Additionally, it will be given a + * `text-outline` style with the opposite color, to further increase the + * contrast. This can be overridden by setting the `text-outline` style + * to `none` in the `dataLabels.style` option. * - * Additionally, the series name, annotation info, and description added - * in `point.accessibility.description` is added by default if relevant. - * To override this, use the accessibility.point.descriptionFormatter - * option. + * @deprecated 10.3.0 */ - valueDescriptionFormat?: string; + color?: Highcharts.ColorType; /** - * (Highcharts) Prefix to add to the values in the point descriptions. - * Uses tooltip.valuePrefix if not defined. + * (Highcharts) Whether to hide data labels that are outside the plot + * area. By default, the data label is moved inside the plot area + * according to the overflow option. */ - valuePrefix?: string; + crop?: boolean; /** - * (Highcharts) Suffix to add to the values in the point descriptions. - * Uses tooltip.valueSuffix if not defined. + * (Highcharts, Highstock, Gantt) Whether to defer displaying the data + * labels until the initial series animation has finished. Setting to + * `false` renders the data label immediately. If set to `true` inherits + * the defer time set in plotOptions.series.animation. */ - valueSuffix?: string; - } - interface PlotTreemapBreadcrumbsButtonThemeStyleOptions { - color?: string; - } - /** - * (Highcharts) Options for the breadcrumbs, the navigation at the top - * leading the way up through the traversed levels. - */ - interface PlotTreemapBreadcrumbsOptions { + defer?: boolean; /** - * (Highcharts) The default padding for each button and separator in - * each direction. + * (Highcharts) Enable or disable the data labels. */ - buttonSpacing?: number; + enabled?: boolean; /** - * (Highcharts) A collection of attributes for the buttons. The object - * takes SVG attributes like `fill`, `stroke`, `stroke-width`, as well - * as `style`, a collection of CSS properties for the text. - * - * The object can also be extended with states, so you can set - * presentational options for `hover`, `select` or `disabled` button - * states. + * (Highcharts) A declarative filter to control of which data labels to + * display. The declarative filter is designed for use when callback + * functions are not available, like when the chart options require a + * pure JSON structure or for use with graphical editors. For + * programmatic control, use the `formatter` instead, and return + * `undefined` to disable a single data label. */ - buttonTheme?: (Highcharts.PlotTreemapBreadcrumbsButtonThemeOptions|Highcharts.SVGAttributes); - events?: Highcharts.PlotTreemapBreadcrumbsEventsOptions; + filter?: Highcharts.DataLabelsFilterOptionsObject; /** - * (Highcharts) When the breadcrumbs are floating, the plot area will - * not move to make space for it. By default, the chart will not make - * space for the buttons. This property won't work when positioned in - * the middle. + * (Highcharts) A format string for the data label. Available variables + * are the same as for `formatter`. */ - floating?: boolean; + format?: string; /** - * (Highcharts) A format string for the breadcrumbs button. Variables - * are enclosed by curly brackets. Available values are passed in the - * declared point options. + * (Highcharts) Callback JavaScript function to format the data label. + * Note that if a `format` is defined, the format takes precedence and + * the formatter is ignored. */ - format?: (string|undefined); + formatter?: Highcharts.DataLabelsFormatterCallbackFunction; /** - * (Highcharts) Callback function to format the breadcrumb text from - * scratch. + * (Highcharts) For points with an extent, like columns or map areas, + * whether to align the data label inside the box or to the actual value + * point. Defaults to `false` in most cases, `true` in stacked columns. */ - formatter?: Highcharts.BreadcrumbsFormatterCallbackFunction; + inside?: boolean; /** - * (Highcharts, Highmaps) Positioning for the button row. The - * breadcrumbs buttons will be aligned properly for the default chart - * layout (title, subtitle, legend, range selector) for the custom chart - * layout set the position properties. + * (Highcharts) Format for points with the value of null. Works + * analogously to format. `nullFormat` can be applied only to series + * which support displaying null points i.e `heatmap` or `tilemap`. Does + * not work with series that don't display null points, like `line`, + * `column`, `bar` or `pie`. */ - position?: (Highcharts.BreadcrumbsAlignOptions|Highcharts.PlotTreemapBreadcrumbsPositionOptions); + nullFormat?: (boolean|string); /** - * (Highcharts, Highmaps) What box to align the button to. Can be either - * `plotBox` or `spacingBox`. + * (Highcharts) Callback JavaScript function that defines formatting for + * points with the value of null. Works analogously to formatter. + * `nullFormatter` can be applied only to series which support + * displaying null points i.e `heatmap` or `tilemap`. Does not work with + * series that don't display null points, like `line`, `column`, `bar` + * or `pie`. */ - relativeTo?: Highcharts.ButtonRelativeToValue; + nullFormatter?: Highcharts.DataLabelsFormatterCallbackFunction; /** - * (Highcharts) Whether to reverse the order of buttons. This is common - * in Arabic and Hebrew. + * (Highcharts) How to handle data labels that flow outside the plot + * area. The default is `"justify"`, which aligns them inside the plot + * area. For columns and bars, this means it will be moved inside the + * bar. To display data labels outside the plot area, set `crop` to + * `false` and `overflow` to `"allow"`. */ - rtl?: boolean; + overflow?: Highcharts.DataLabelsOverflowValue; /** - * (Highcharts) Options object for Breadcrumbs separator. + * (Highcharts) When either the `borderWidth` or the `backgroundColor` + * is set, this is the padding within the box. */ - separator?: Highcharts.PlotTreemapBreadcrumbsSeparatorOptions; + padding?: number; /** - * (Highcharts) Show full path or only a single button. + * (Highcharts) Aligns data labels relative to points. If `center` + * alignment is not possible, it defaults to `right`. */ - showFullPath?: boolean; + position?: Highcharts.AlignValue; /** - * (Highcharts) CSS styles for all breadcrumbs. + * (Highcharts) Text rotation in degrees. Note that due to a more + * complex structure, backgrounds, borders and padding will be lost on a + * rotated data label. + */ + rotation?: number; + /** + * (Highcharts) The shadow of the box. Works best with `borderWidth` or + * `backgroundColor`. Since 2.3 the shadow can be an object + * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and + * `width`. + */ + shadow?: (boolean|Highcharts.ShadowOptionsObject); + /** + * (Highcharts) The name of a symbol to use for the border around the + * label. Symbols are predefined functions on the Renderer object. + */ + shape?: string; + /** + * (Highcharts) Styles for the label. The default `color` setting is + * `"contrast"`, which is a pseudo color that Highcharts picks up and + * applies the maximum contrast to the underlying point item, for + * example the bar in a bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the + * given width with the given color, which by default is the maximum + * contrast to the text. So a bright text color will result in a black + * text outline for maximum readability on a mixed background. In some + * cases, especially with grayscale text, the text outline doesn't work + * well, in which cases it can be disabled by setting it to `"none"`. + * When `useHTML` is true, the `textOutline` will not be picked up. In + * this, case, the same effect can be acheived through the `text-shadow` + * CSS property. + * + * For some series types, where each point has an extent, like for + * example tree maps, the data label may overflow the point. There are + * two strategies for handling overflow. By default, the text will wrap + * to multiple lines. The other strategy is to set `style.textOverflow` + * to `ellipsis`, which will keep the text on one line plus it will + * break inside long words. + */ + style?: (Highcharts.CSSObject|Highcharts.PlotTreemapLevelsDataLabelsStyleOptions); + /** + * (Highcharts) Options for a label text which should follow marker's + * shape. Border and background are disabled for a label that follows a + * path. * - * In styled mode, the breadcrumbs buttons are styled by the - * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its - * different states. + * **Note:** Only SVG-based renderer supports this option. Setting + * `useHTML` to true will disable this option. */ - style?: Highcharts.SVGAttributes; + textPath?: Highcharts.DataLabelsTextPathOptionsObject; /** - * (Highcharts) Whether to use HTML to render the breadcrumbs items - * texts. + * (Highcharts) Whether to use HTML to render the labels. */ useHTML?: boolean; /** - * (Highcharts) The z index of the breadcrumbs group. + * (Highcharts) The vertical alignment of a data label. Can be one of + * `top`, `middle` or `bottom`. The default value depends on the data, + * for instance in a column chart, the label is above positive values + * and below negative values. */ - zIndex?: number; - } - /** - * (Highcharts) Options object for Breadcrumbs separator. - */ - interface PlotTreemapBreadcrumbsSeparatorOptions { + verticalAlign?: string; /** - * (Highcharts) CSS styles for the breadcrumbs separator. - * - * In styled mode, the breadcrumbs separators are styled by the - * `.highcharts-separator` rule with its different states. + * (Highcharts) The x position offset of the label relative to the point + * in pixels. */ - style?: (Highcharts.CSSObject|Highcharts.PlotTreemapBreadcrumbsSeparatorStyleOptions); - text?: string; - } - /** - * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial - * animation when a series is displayed for the `dataLabels`. The animation - * can also be set as a configuration object. Please note that this option - * only applies to the initial animation. - * - * For other animations, see chart.animation and the animation parameter - * under the API methods. The following properties are supported: - * - * - `defer`: The animation delay time in milliseconds. - */ - interface PlotTreemapDataLabelsAnimationOptions { + x?: number; /** - * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in - * milliseconds. Set to `0` to render the data labels immediately. As - * `undefined` inherits defer time from the series.animation.defer. + * (Highcharts) The y position offset of the label relative to the point + * in pixels. */ - defer?: number; - } - /** - * (Highcharts, Highstock, Gantt) Styles for the series label. The color - * defaults to the series color, or a contrast color if `onArea`. - */ - interface PlotTreemapLabelStyleOptions { - fontSize?: (number|string); - } - /** - * (Highcharts) Enable or disable the initial animation when a series is - * displayed for the `dataLabels`. The animation can also be set as a - * configuration object. Please note that this option only applies to the - * initial animation. - * - * For other animations, see chart.animation and the animation parameter - * under the API methods. The following properties are supported: - * - * - `defer`: The animation delay time in milliseconds. - */ - interface PlotTreemapLevelsDataLabelsAnimationOptions { + y?: number; /** - * (Highcharts) The animation delay time in milliseconds. Set to `0` to - * render the data labels immediately. As `undefined` inherits defer - * time from the series.animation.defer. + * (Highcharts) The z index of the data labels. Use a `zIndex` of 6 to + * display it above the series, or use a `zIndex` of 2 to display it + * behind the series. */ - defer?: number; + zIndex?: number; } /** * (Highcharts) Set options on specific levels. Takes precedence over series @@ -433,6 +578,15 @@ declare module "../highcharts" { * set */ clip?: boolean; + /** + * (Highcharts) An option to optimize treemap series rendering by + * grouping smaller leaf nodes below a certain square area threshold in + * pixels. If the square area of a point becomes smaller than the + * specified threshold, determined by the `pixelWidth` and/or + * `pixelHeight` options, then this point is moved into one group point + * per series. + */ + cluster?: Highcharts.PlotTreemapClusterOptions; /** * (Highcharts) The main color of the series. In line type series it * applies to the line and the point markers unless otherwise specified. diff --git a/options/treemap.src.d.ts b/options/treemap.src.d.ts index cfac34d1d7..a7548c2c4b 100644 --- a/options/treemap.src.d.ts +++ b/options/treemap.src.d.ts @@ -6,224 +6,369 @@ import * as Highcharts from "../highcharts.src"; declare module "../highcharts.src" { /** - * (Highcharts) Point accessibility options for a series. + * (Highcharts) A collection of attributes for the buttons. The object takes + * SVG attributes like `fill`, `stroke`, `stroke-width`, as well as `style`, + * a collection of CSS properties for the text. + * + * The object can also be extended with states, so you can set + * presentational options for `hover`, `select` or `disabled` button states. */ - interface PlotTreemapAccessibilityPointOptions { + interface PlotTreemapBreadcrumbsButtonThemeOptions { + style?: Highcharts.PlotTreemapBreadcrumbsButtonThemeStyleOptions; + } + interface PlotTreemapBreadcrumbsEventsOptions { /** - * (Highcharts) Date format to use for points on datetime axes when - * describing them to screen reader users. + * (Highcharts) Fires when clicking on the breadcrumbs button. Two + * arguments are passed to the function. First breadcrumb button as an + * SVG element. Second is the breadcrumbs class, containing reference to + * the chart, series etc. (see online documentation for example) * - * Defaults to the same format as in tooltip. - * - * For an overview of the replacement codes, see dateFormat. + * Return false to stop default buttons click action. + */ + click?: Highcharts.BreadcrumbsClickCallbackFunction; + } + /** + * (Highcharts, Highmaps) Positioning for the button row. The breadcrumbs + * buttons will be aligned properly for the default chart layout (title, + * subtitle, legend, range selector) for the custom chart layout set the + * position properties. + */ + interface PlotTreemapBreadcrumbsPositionOptions { + /** + * (Highcharts, Highmaps) Horizontal alignment of the breadcrumbs + * buttons. */ - dateFormat?: string; + align?: Highcharts.AlignValue; /** - * (Highcharts) Formatter function to determine the date/time format - * used with points on datetime axes when describing them to screen - * reader users. Receives one argument, `point`, referring to the point - * to describe. Should return a date format string compatible with - * dateFormat. + * (Highcharts, Highmaps) Vertical alignment of the breadcrumbs buttons. */ - dateFormatter?: Highcharts.ScreenReaderFormatterCallbackFunction; + verticalAlign?: Highcharts.VerticalAlignValue; /** - * (Highcharts) Whether or not to describe points with the value `null` - * to assistive technology, such as screen readers. + * (Highcharts, Highmaps) The X offset of the breadcrumbs button group. */ - describeNull?: boolean; + x?: number; /** - * (Highcharts) A format string to use instead of the default for point - * descriptions. + * (Highcharts, Highmaps) The Y offset of the breadcrumbs button group. + * When `undefined`, and `floating` is `false`, the `y` position is + * adapted so that the breadcrumbs are rendered outside the target area. + */ + y?: (number|undefined); + } + /** + * (Highcharts) CSS styles for the breadcrumbs separator. + * + * In styled mode, the breadcrumbs separators are styled by the + * `.highcharts-separator` rule with its different states. + */ + interface PlotTreemapBreadcrumbsSeparatorStyleOptions { + color?: string; + fontSize?: number; + } + interface PlotTreemapClusterMarkerOptions { + lineWidth?: number; + radius?: number; + } + /** + * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial + * animation when a series is displayed for the `dataLabels`. The animation + * can also be set as a configuration object. Please note that this option + * only applies to the initial animation. + * + * For other animations, see chart.animation and the animation parameter + * under the API methods. The following properties are supported: + * + * - `defer`: The animation delay time in milliseconds. + */ + interface PlotTreemapDataLabelsAnimationOptions { + /** + * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in + * milliseconds. Set to `0` to render the data labels immediately. As + * `undefined` inherits defer time from the series.animation.defer. + */ + defer?: number; + } + /** + * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The + * default `color` setting is `"contrast"`, which is a pseudo color that + * Highcharts picks up and applies the maximum contrast to the underlying + * point item, for example the bar in a bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the + * given width with the given color, which by default is the maximum + * contrast to the text. So a bright text color will result in a black text + * outline for maximum readability on a mixed background. In some cases, + * especially with grayscale text, the text outline doesn't work well, in + * which cases it can be disabled by setting it to `"none"`. When `useHTML` + * is true, the `textOutline` will not be picked up. In this, case, the same + * effect can be acheived through the `text-shadow` CSS property. + * + * For some series types, where each point has an extent, like for example + * tree maps, the data label may overflow the point. There are two + * strategies for handling overflow. By default, the text will wrap to + * multiple lines. The other strategy is to set `style.textOverflow` to + * `ellipsis`, which will keep the text on one line plus it will break + * inside long words. + */ + interface PlotTreemapDataLabelsStyleOptions { + textOverflow?: string; + } + /** + * (Highcharts) A configuration object to define how the color of a child + * varies from the parent's color. The variation is distributed among the + * children of node. For example when setting brightness, the brightness + * change will range from the parent's original brightness on the first + * child, to the amount set in the `to` setting on the last node. This + * allows a gradient-like color scheme that sets children out from each + * other while highlighting the grouping on treemaps and sectors on sunburst + * charts. + */ + interface PlotTreemapLevelsColorVariationOptions { + /** + * (Highcharts) The key of a color variation. Currently supports + * `brightness` only. + */ + key?: "brightness"; + /** + * (Highcharts) The ending value of a color variation. The last sibling + * will receive this value. + */ + to?: number; + } + /** + * (Highcharts) Can set the options of dataLabels on each point which lies + * on the level. plotOptions.treemap.dataLabels for possible values. + */ + interface PlotTreemapLevelsDataLabelsOptions { + /** + * (Highcharts) The alignment of the data label compared to the point. + * If `right`, the right side of the label should be touching the point. + * For points with an extent, like columns, the alignments also dictates + * how to align it inside the box, as given with the inside option. Can + * be one of `left`, `center` or `right`. + */ + align?: (Highcharts.AlignValue|null); + /** + * (Highcharts) Alignment method for data labels. If set to `plotEdges`, + * the labels are aligned within the plot area in the direction of the + * y-axis. So in a regular column chart, the labels are aligned + * vertically according to the `verticalAlign` setting. In a bar chart, + * which is inverted, the labels are aligned horizontally according to + * the `align` setting. Applies to cartesian series only. + */ + alignTo?: string; + /** + * (Highcharts) Whether to allow data labels to overlap. To make the + * labels less sensitive for overlapping, the dataLabels.padding can be + * set to 0. + */ + allowOverlap?: boolean; + /** + * (Highcharts) Enable or disable the initial animation when a series is + * displayed for the `dataLabels`. The animation can also be set as a + * configuration object. Please note that this option only applies to + * the initial animation. * - * The context of the format string is the point instance. + * For other animations, see chart.animation and the animation parameter + * under the API methods. The following properties are supported: * - * As opposed to accessibility.point.valueDescriptionFormat, this option - * replaces the whole description. + * - `defer`: The animation delay time in milliseconds. */ - descriptionFormat?: string; + animation?: (boolean|Highcharts.PlotTreemapLevelsDataLabelsAnimationOptions|Partial); /** - * (Highcharts) Formatter function to use instead of the default for - * point descriptions. Same as - * `accessibility.point.descriptionFormatter`, but applies to a series - * instead of the whole chart. - * - * Note: Prefer using accessibility.point.valueDescriptionFormat instead - * if possible, as default functionality such as describing annotations - * will be preserved. + * (Highcharts) The background color or gradient for the data label. + * Setting it to `auto` will use the point's color. */ - descriptionFormatter?: Highcharts.ScreenReaderFormatterCallbackFunction; + backgroundColor?: (Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject); /** - * (Highcharts) Decimals to use for the values in the point - * descriptions. Uses tooltip.valueDecimals if not defined. + * (Highcharts) The border color for the data label. Setting it to + * `auto` will use the point's color. Defaults to `undefined`. */ - valueDecimals?: number; + borderColor?: (Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject); /** - * (Highcharts) Format to use for describing the values of data points - * to assistive technology - including screen readers. The point context - * is available as `{point}`. + * (Highcharts) The border radius in pixels for the data label. + */ + borderRadius?: number; + /** + * (Highcharts) The border width in pixels for the data label. + */ + borderWidth?: number; + /** + * (Highcharts) A class name for the data label. Particularly in styled + * mode, this can be used to give each series' or point's data label + * unique styling. In addition to this option, a default color class + * name is added so that we can give the labels a contrast text shadow. + */ + className?: string; + /** + * (Highcharts) This options is deprecated. Use style.color instead. * - * Other available context variables include `{index}`, `{value}`, and - * `{xDescription}`. + * The text color for the data labels. Defaults to `undefined`. For + * certain series types, like column or map, the data labels can be + * drawn inside the points. In this case the data label will be drawn + * with maximum contrast by default. Additionally, it will be given a + * `text-outline` style with the opposite color, to further increase the + * contrast. This can be overridden by setting the `text-outline` style + * to `none` in the `dataLabels.style` option. * - * Additionally, the series name, annotation info, and description added - * in `point.accessibility.description` is added by default if relevant. - * To override this, use the accessibility.point.descriptionFormatter - * option. + * @deprecated 10.3.0 */ - valueDescriptionFormat?: string; + color?: Highcharts.ColorType; /** - * (Highcharts) Prefix to add to the values in the point descriptions. - * Uses tooltip.valuePrefix if not defined. + * (Highcharts) Whether to hide data labels that are outside the plot + * area. By default, the data label is moved inside the plot area + * according to the overflow option. */ - valuePrefix?: string; + crop?: boolean; /** - * (Highcharts) Suffix to add to the values in the point descriptions. - * Uses tooltip.valueSuffix if not defined. + * (Highcharts, Highstock, Gantt) Whether to defer displaying the data + * labels until the initial series animation has finished. Setting to + * `false` renders the data label immediately. If set to `true` inherits + * the defer time set in plotOptions.series.animation. */ - valueSuffix?: string; - } - interface PlotTreemapBreadcrumbsButtonThemeStyleOptions { - color?: string; - } - /** - * (Highcharts) Options for the breadcrumbs, the navigation at the top - * leading the way up through the traversed levels. - */ - interface PlotTreemapBreadcrumbsOptions { + defer?: boolean; /** - * (Highcharts) The default padding for each button and separator in - * each direction. + * (Highcharts) Enable or disable the data labels. */ - buttonSpacing?: number; + enabled?: boolean; /** - * (Highcharts) A collection of attributes for the buttons. The object - * takes SVG attributes like `fill`, `stroke`, `stroke-width`, as well - * as `style`, a collection of CSS properties for the text. - * - * The object can also be extended with states, so you can set - * presentational options for `hover`, `select` or `disabled` button - * states. + * (Highcharts) A declarative filter to control of which data labels to + * display. The declarative filter is designed for use when callback + * functions are not available, like when the chart options require a + * pure JSON structure or for use with graphical editors. For + * programmatic control, use the `formatter` instead, and return + * `undefined` to disable a single data label. */ - buttonTheme?: (Highcharts.PlotTreemapBreadcrumbsButtonThemeOptions|Highcharts.SVGAttributes); - events?: Highcharts.PlotTreemapBreadcrumbsEventsOptions; + filter?: Highcharts.DataLabelsFilterOptionsObject; /** - * (Highcharts) When the breadcrumbs are floating, the plot area will - * not move to make space for it. By default, the chart will not make - * space for the buttons. This property won't work when positioned in - * the middle. + * (Highcharts) A format string for the data label. Available variables + * are the same as for `formatter`. */ - floating?: boolean; + format?: string; /** - * (Highcharts) A format string for the breadcrumbs button. Variables - * are enclosed by curly brackets. Available values are passed in the - * declared point options. + * (Highcharts) Callback JavaScript function to format the data label. + * Note that if a `format` is defined, the format takes precedence and + * the formatter is ignored. */ - format?: (string|undefined); + formatter?: Highcharts.DataLabelsFormatterCallbackFunction; /** - * (Highcharts) Callback function to format the breadcrumb text from - * scratch. + * (Highcharts) For points with an extent, like columns or map areas, + * whether to align the data label inside the box or to the actual value + * point. Defaults to `false` in most cases, `true` in stacked columns. */ - formatter?: Highcharts.BreadcrumbsFormatterCallbackFunction; + inside?: boolean; /** - * (Highcharts, Highmaps) Positioning for the button row. The - * breadcrumbs buttons will be aligned properly for the default chart - * layout (title, subtitle, legend, range selector) for the custom chart - * layout set the position properties. + * (Highcharts) Format for points with the value of null. Works + * analogously to format. `nullFormat` can be applied only to series + * which support displaying null points i.e `heatmap` or `tilemap`. Does + * not work with series that don't display null points, like `line`, + * `column`, `bar` or `pie`. */ - position?: (Highcharts.BreadcrumbsAlignOptions|Highcharts.PlotTreemapBreadcrumbsPositionOptions); + nullFormat?: (boolean|string); /** - * (Highcharts, Highmaps) What box to align the button to. Can be either - * `plotBox` or `spacingBox`. + * (Highcharts) Callback JavaScript function that defines formatting for + * points with the value of null. Works analogously to formatter. + * `nullFormatter` can be applied only to series which support + * displaying null points i.e `heatmap` or `tilemap`. Does not work with + * series that don't display null points, like `line`, `column`, `bar` + * or `pie`. */ - relativeTo?: Highcharts.ButtonRelativeToValue; + nullFormatter?: Highcharts.DataLabelsFormatterCallbackFunction; /** - * (Highcharts) Whether to reverse the order of buttons. This is common - * in Arabic and Hebrew. + * (Highcharts) How to handle data labels that flow outside the plot + * area. The default is `"justify"`, which aligns them inside the plot + * area. For columns and bars, this means it will be moved inside the + * bar. To display data labels outside the plot area, set `crop` to + * `false` and `overflow` to `"allow"`. */ - rtl?: boolean; + overflow?: Highcharts.DataLabelsOverflowValue; /** - * (Highcharts) Options object for Breadcrumbs separator. + * (Highcharts) When either the `borderWidth` or the `backgroundColor` + * is set, this is the padding within the box. */ - separator?: Highcharts.PlotTreemapBreadcrumbsSeparatorOptions; + padding?: number; /** - * (Highcharts) Show full path or only a single button. + * (Highcharts) Aligns data labels relative to points. If `center` + * alignment is not possible, it defaults to `right`. */ - showFullPath?: boolean; + position?: Highcharts.AlignValue; /** - * (Highcharts) CSS styles for all breadcrumbs. + * (Highcharts) Text rotation in degrees. Note that due to a more + * complex structure, backgrounds, borders and padding will be lost on a + * rotated data label. + */ + rotation?: number; + /** + * (Highcharts) The shadow of the box. Works best with `borderWidth` or + * `backgroundColor`. Since 2.3 the shadow can be an object + * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and + * `width`. + */ + shadow?: (boolean|Highcharts.ShadowOptionsObject); + /** + * (Highcharts) The name of a symbol to use for the border around the + * label. Symbols are predefined functions on the Renderer object. + */ + shape?: string; + /** + * (Highcharts) Styles for the label. The default `color` setting is + * `"contrast"`, which is a pseudo color that Highcharts picks up and + * applies the maximum contrast to the underlying point item, for + * example the bar in a bar chart. + * + * The `textOutline` is a pseudo property that applies an outline of the + * given width with the given color, which by default is the maximum + * contrast to the text. So a bright text color will result in a black + * text outline for maximum readability on a mixed background. In some + * cases, especially with grayscale text, the text outline doesn't work + * well, in which cases it can be disabled by setting it to `"none"`. + * When `useHTML` is true, the `textOutline` will not be picked up. In + * this, case, the same effect can be acheived through the `text-shadow` + * CSS property. + * + * For some series types, where each point has an extent, like for + * example tree maps, the data label may overflow the point. There are + * two strategies for handling overflow. By default, the text will wrap + * to multiple lines. The other strategy is to set `style.textOverflow` + * to `ellipsis`, which will keep the text on one line plus it will + * break inside long words. + */ + style?: (Highcharts.CSSObject|Highcharts.PlotTreemapLevelsDataLabelsStyleOptions); + /** + * (Highcharts) Options for a label text which should follow marker's + * shape. Border and background are disabled for a label that follows a + * path. * - * In styled mode, the breadcrumbs buttons are styled by the - * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its - * different states. + * **Note:** Only SVG-based renderer supports this option. Setting + * `useHTML` to true will disable this option. */ - style?: Highcharts.SVGAttributes; + textPath?: Highcharts.DataLabelsTextPathOptionsObject; /** - * (Highcharts) Whether to use HTML to render the breadcrumbs items - * texts. + * (Highcharts) Whether to use HTML to render the labels. */ useHTML?: boolean; /** - * (Highcharts) The z index of the breadcrumbs group. + * (Highcharts) The vertical alignment of a data label. Can be one of + * `top`, `middle` or `bottom`. The default value depends on the data, + * for instance in a column chart, the label is above positive values + * and below negative values. */ - zIndex?: number; - } - /** - * (Highcharts) Options object for Breadcrumbs separator. - */ - interface PlotTreemapBreadcrumbsSeparatorOptions { + verticalAlign?: string; /** - * (Highcharts) CSS styles for the breadcrumbs separator. - * - * In styled mode, the breadcrumbs separators are styled by the - * `.highcharts-separator` rule with its different states. + * (Highcharts) The x position offset of the label relative to the point + * in pixels. */ - style?: (Highcharts.CSSObject|Highcharts.PlotTreemapBreadcrumbsSeparatorStyleOptions); - text?: string; - } - /** - * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial - * animation when a series is displayed for the `dataLabels`. The animation - * can also be set as a configuration object. Please note that this option - * only applies to the initial animation. - * - * For other animations, see chart.animation and the animation parameter - * under the API methods. The following properties are supported: - * - * - `defer`: The animation delay time in milliseconds. - */ - interface PlotTreemapDataLabelsAnimationOptions { + x?: number; /** - * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in - * milliseconds. Set to `0` to render the data labels immediately. As - * `undefined` inherits defer time from the series.animation.defer. + * (Highcharts) The y position offset of the label relative to the point + * in pixels. */ - defer?: number; - } - /** - * (Highcharts, Highstock, Gantt) Styles for the series label. The color - * defaults to the series color, or a contrast color if `onArea`. - */ - interface PlotTreemapLabelStyleOptions { - fontSize?: (number|string); - } - /** - * (Highcharts) Enable or disable the initial animation when a series is - * displayed for the `dataLabels`. The animation can also be set as a - * configuration object. Please note that this option only applies to the - * initial animation. - * - * For other animations, see chart.animation and the animation parameter - * under the API methods. The following properties are supported: - * - * - `defer`: The animation delay time in milliseconds. - */ - interface PlotTreemapLevelsDataLabelsAnimationOptions { + y?: number; /** - * (Highcharts) The animation delay time in milliseconds. Set to `0` to - * render the data labels immediately. As `undefined` inherits defer - * time from the series.animation.defer. + * (Highcharts) The z index of the data labels. Use a `zIndex` of 6 to + * display it above the series, or use a `zIndex` of 2 to display it + * behind the series. */ - defer?: number; + zIndex?: number; } /** * (Highcharts) Set options on specific levels. Takes precedence over series @@ -433,6 +578,15 @@ declare module "../highcharts.src" { * set */ clip?: boolean; + /** + * (Highcharts) An option to optimize treemap series rendering by + * grouping smaller leaf nodes below a certain square area threshold in + * pixels. If the square area of a point becomes smaller than the + * specified threshold, determined by the `pixelWidth` and/or + * `pixelHeight` options, then this point is moved into one group point + * per series. + */ + cluster?: Highcharts.PlotTreemapClusterOptions; /** * (Highcharts) The main color of the series. In line type series it * applies to the line and the point markers unless otherwise specified. diff --git a/options/vbp.d.ts b/options/vbp.d.ts index 6ae6a0461a..9b35a7939f 100644 --- a/options/vbp.d.ts +++ b/options/vbp.d.ts @@ -102,7 +102,7 @@ declare module "../highcharts" { * as given with the inside option. Can be one of `left`, `center` or * `right`. */ - align?: (Highcharts.AlignValue|null); + align?: string; /** * (Highcharts, Highstock, Highmaps, Gantt) Alignment method for data * labels. If set to `plotEdges`, the labels are aligned within the plot diff --git a/options/vbp.src.d.ts b/options/vbp.src.d.ts index 8f7796a0ba..e122cbfcf2 100644 --- a/options/vbp.src.d.ts +++ b/options/vbp.src.d.ts @@ -102,7 +102,7 @@ declare module "../highcharts.src" { * as given with the inside option. Can be one of `left`, `center` or * `right`. */ - align?: (Highcharts.AlignValue|null); + align?: string; /** * (Highcharts, Highstock, Highmaps, Gantt) Alignment method for data * labels. If set to `plotEdges`, the labels are aligned within the plot diff --git a/package.json b/package.json index 6debacc7c5..6e3ae8811e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "highcharts", "description": "JavaScript charting framework", "homepage": "http://www.highcharts.com", - "version": "12.0.2", + "version": "12.1.0", "author": "Highsoft AS (http://www.highcharts.com/about)", "main": "highcharts.js", "repository": { diff --git a/standalone-navigator.js b/standalone-navigator.js index db4db9a1d8..c33e58f9ca 100644 --- a/standalone-navigator.js +++ b/standalone-navigator.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i;var s,o,r,a,n,h,l,d,c,p,g,u,f,m,x,y,b,v,k={};k.d=(t,e)=>{for(var i in e)k.o(e,i)&&!k.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},k.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var M={};k.d(M,{default:()=>dR}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.0.2",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(s||(s={}));let w=s,{charts:S,doc:A,win:T}=w;function C(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=B(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),j(s,function(e,i){t+=` - - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}V(w,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);T.console&&-1===C.messages.indexOf(a)&&console.warn(a)}),C.messages.push(a)}function O(t,e){return parseInt(t,e||10)}function P(t){return"string"==typeof t}function E(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function L(t,e){return!!t&&"object"==typeof t&&(!e||!E(t))}function D(t){return L(t)&&"number"==typeof t.nodeType}function I(t){let e=t&&t.constructor;return!!(L(t,!0)&&!D(t)&&e&&e.name&&"Object"!==e.name)}function B(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function z(t){return null!=t}function R(t,e,i){let s;let o=P(e)&&!z(i),r=(e,i)=>{z(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return P(e)?r(i,e):j(e,r),s}function N(t){return E(t)?t:[t]}function W(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function H(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(C||(C={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let Y=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let $=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();T.jQuery&&(T.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new w[P(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):S[R(this[0],"data-highcharts-chart")]});let Z={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;w.Point&&t instanceof w.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!w.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){U(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=N(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=T.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),H(s,"opacity"!==i)&&(o=O(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return G(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:j,offset:function(t){let e=A.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(T.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(T.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:H,pInt:O,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:U,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:N,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return P(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:$,useSerialIds:function(e){return t=H(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:q}=w,{defined:_,error:K,extend:J,isNumber:Q,isObject:tt,isString:te,merge:ti,objectEach:ts,pad:to,splat:tr,timeUnits:ta,ucfirst:tn}=Z,th=w.isSafari&&q.Intl&&!q.Intl.DateTimeFormat.prototype.formatRange,tl=t=>void 0===t.main,td=t=>["D","L","M","X","J","V","S"].indexOf(t),tc=class{constructor(t){this.options={},this.variableTimezone=!1,this.Date=q.Date,this.update(t)}update(t={}){let e=t.timezone??"UTC";this.dTLCache={},this.options=t=ti(!0,this.options,t);let{timezoneOffset:i,useUTC:s}=t;this.Date=t.Date||q.Date||Date,_(s)&&(e=s?"UTC":void 0),i&&i%60==0&&(e="Etc/GMT"+(i>0?"+":"")+i/60),this.variableTimezone="UTC"!==e&&e?.indexOf("Etc/GMT")!==0,this.timezone=e,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,td(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;te(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(K(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):K(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&J(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||th||(n-=36e5)}}return n}parse(t){if(!te(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(Q(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(Q(a))return a}return 0}dateFormat(t,e,i){let s=w.defaultOptions?.lang;if(!_(e)||isNaN(e))return s?.invalidDate||"";if(te(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(te(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,u=s?.months||this.months,f=s?.shortMonths||this.shortMonths;ts(J({a:g?g[c]:p[c].substr(0,3),A:p[c],d:to(a),e:to(a,2," "),w:c,b:f[r],B:u[r],m:to(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:to(n),k:n,I:to(n%12||12),l:n%12||12,M:to(h),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:to(l),L:to(d,3)},w.dateFormats),function(s,o){if(te(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(tt(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.options.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(J({timeZone:s},t),e)+r}return i?tn(t):t}resolveDTLFormat(t){return tt(t,!0)?tt(t,!0)&&tl(t)?{main:t}:t:{main:(t=tr(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,g,u]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),_(e)){if(f=h>=ta.second?0:n*Math.floor(f/n),h>=ta.second&&(u=h>=ta.minute?0:n*Math.floor(u/n)),h>=ta.minute&&(g=h>=ta.hour?0:n*Math.floor(g/n)),h>=ta.hour&&(p=h>=ta.day?0:n*Math.floor(p/n)),h>=ta.day&&(c=h>=ta.month?1:Math.max(1,n*Math.floor(c/n))),h>=ta.month&&(d=h>=ta.year?0:n*Math.floor(d/n)),h>=ta.year&&(l-=l%n),h===ta.week){n&&(e=o.makeTime(l,d,c,p,g,u,f));let t=td(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*ta.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=ta.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=J(t,{higherRanks:a,totalRange:h*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in ta){if(t===ta.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(ta[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:tp}=w,{fireEvent:tg,merge:tu}=Z,tf={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:tp?25:10,headerFormat:'{ucfirst point.key}
    ',pointFormat:' {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tf.chart.styledMode=!0,tf.chart.styledMode=!1;let tm=new tc(tf.time),tx={defaultOptions:tf,defaultTime:tm,getOptions:function(){return tf},setOptions:function(t){return tg(w,"setOptions",{options:t}),tu(!0,tf,t),t.time&&tm.update(tf.time),t.lang&&"locale"in t.lang&&tm.update({locale:t.lang.locale}),tf}},{isNumber:ty,merge:tb,pInt:tv,defined:tk}=Z;class tM{static parse(t){return t?new tM(t):tM.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=w.Color;if(r&&r!==tM)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tM(t[1]));else if("string"==typeof t)for(this.input=t=tM.names[t.toLowerCase()]||t,s=tM.parsers.length;s--&&!i;)(e=(o=tM.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tb(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&ty(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(ty(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tv(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!ty(i[0])||!ty(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3];return(o?"rgba(":"rgb(")+Math.round(s[0]+(i[0]-s[0])*(1-e))+","+Math.round(s[1]+(i[1]-s[1])*(1-e))+","+Math.round(s[2]+(i[2]-s[2])*(1-e))+(o?","+(s[3]+(i[3]-s[3])*(1-e)):"")+")"}}tM.names={white:"#ffffff",black:"#000000"},tM.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tv(t[1]),tv(t[2]),tv(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tv(t[1]),tv(t[2]),tv(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tv(t[1]+t[1],16),tv(t[2]+t[2],16),tv(t[3]+t[3],16),tk(t[4])?tv(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tv(t[1],16),tv(t[2],16),tv(t[3],16),tk(t[4])?tv(t[4],16)/255:1]}}],tM.None=new tM("");let{parse:tw}=tM,{win:tS}=w,{isNumber:tA,objectEach:tT}=Z;class tC{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tT(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,g=e&&e.slice();if(!g||h)return[r,r];function u(t,e){for(;t.length{let i=tR(t.options.animation);r=tD(e)&&tO(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tz(t,e.options.chart.animation,!0)},stop:tN},{SVG_NS:tH,win:tX}=w,{attr:tF,createElement:tG,css:tY,error:tj,isFunction:tU,isString:tV,objectEach:t$,splat:tZ}=Z,{trustedTypes:tq}=tX,t_=tq&&tU(tq.createPolicy)&&tq.createPolicy("highcharts",{createHTML:t=>t}),tK=t_?t_.createHTML(""):"";class tJ{static filterUserAttributes(t){return t$(t,(e,i)=>{let s=!0;-1===tJ.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tV(e)&&tJ.allowedReferences.some(t=>0===e.indexOf(t))),s||(tj(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tV(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=tJ.emptyHTML,e&&new tJ(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return tZ(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?w.doc.createTextNode(e.textContent):void 0,n=tJ.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==tJ.allowedTags.indexOf(r)||n){let s="svg"===r?tH:i.namespaceURI||tH,h=w.doc.createElementNS(s,r),l=e.attributes||{};t$(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),tF(h,n?l:tJ.filterUserAttributes(l)),e.style&&tY(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tj(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t_?t_.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tG("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=tJ.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}tJ.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],tJ.allowedReferences=["https://","http://","mailto:","/","../","./","#"],tJ.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],tJ.emptyHTML=tK,tJ.bypassHTMLFiltering=!1;let{defaultOptions:tQ,defaultTime:t0}=tx,{doc:t1}=w,{extend:t2,getNestedProperty:t3,isArray:t5,isNumber:t6,isObject:t9,pick:t4,ucfirst:t8}=Z,t7={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!t5(t)&&t.map((i,s)=>ee(e.body,t2(t9(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:t8,unless:t=>!t},et={};function ee(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,h=i?.options.lang||tQ.lang,l=i&&i.time||t0,d=i&&i.numberFormatter||ei,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:/^["'].+["']$/.test(t)?t.slice(1,-1):t3(t,e))},p,g,u=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),g&&g.isBlock||(g={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(g.isBlock?i:p)[1].split(" ")[0].replace("#","");t7[a]&&(g.isBlock&&a===g.fn&&u++,g.fn||(g.fn=a));let n="else"===p[1];if(g.isBlock&&g.fn&&(p[1]===`/${g.fn}`||n)){if(u)!n&&u--;else{let e=g.startInner,i=t.substr(e,p.index-e);void 0===g.body?(g.body=i,g.startInner=p.index+p[0].length):g.elseBody=i,g.find+=i+p[0],n||(r.push(g),g=void 0)}}else g.isBlock||r.push(g);if(s&&!g?.isBlock)break}return r.forEach(s=>{let o,r;let{body:p,elseBody:g,expression:u,fn:m}=s;if(m){let t=[s],a=[],n=u.length,h=0,l;for(r=0;r<=n;r++){let t=u.charAt(r);l||'"'!==t&&"'"!==t?l===t&&(l=""):l=t,l||" "!==t&&r!==n||(a.push(u.substr(h,r-h)),h=r+1)}for(r=t7[m].length;r--;)t.unshift(c(a[r+1]));o=t7[m].apply(e,t),s.isBlock&&"boolean"==typeof o&&(o=ee(o?p:g,e,i))}else{let t=u.split(":");if(o=c(t.shift()||""),t.length&&"number"==typeof o){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==o&&(o=d(o,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else o=l.dateFormat(e,o),f&&(o=`"${o}"`)}}t=t.replace(s.find,t4(o,""))}),f?ee(t,e,i):t}function ei(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||tQ.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):t6(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),t6(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,g=p?"en":this?.locale||h.locale||t1.body.closest("[lang]")?.lang,u=JSON.stringify(c)+g;return o=(et[u]??(et[u]=new Intl.NumberFormat(g,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let es={dateFormat:function(t,e,i){return t0.dateFormat(t,e,i)},format:ee,helpers:t7,numberFormat:ei};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,w.Renderer=s)}}(o||(o={}));let eo=o,{clamp:er,pick:ea,pushUnique:en,stableSort:eh}=Z;(r||(r={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,g,u=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(eh(e,(t,e)=>(e.rank||0)-(t.rank||0)),g=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?g:h-1;g&&x>r;)f=e[c=Math.floor(p)],en(l,c)&&(x-=f.size),p+=g,y&&p>=e.length&&(g/=2,p=g);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(eh(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:ea(t.align,.5)}));u;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=er(m-f.size*f.align,0,i-f.size);for(c=e.length,u=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),u=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),eh(o,a),o};let el=r,{animate:ed,animObject:ec,stop:ep}=tW,{deg2rad:eg,doc:eu,svg:ef,SVG_NS:em,win:ex,isFirefox:ey}=w,{addEvent:eb,attr:ev,createElement:ek,crisp:eM,css:ew,defined:eS,erase:eA,extend:eT,fireEvent:eC,getAlignFactor:eO,isArray:eP,isFunction:eE,isNumber:eL,isObject:eD,isString:eI,merge:eB,objectEach:ez,pick:eR,pInt:eN,pushUnique:eW,replaceNested:eH,syncTimeout:eX,uniqueKey:eF}=Z;class eG{_defaultGetter(t){let e=eR(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||eI(i)?i||"renderer":void 0;h&&(n&&eW(a,this),i=void 0);let l=eR(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eO(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eO(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=ec(eR(e,this.renderer.globalAnimation,!0)),o=s.defer;return eu.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eX(()=>{this.element&&ed(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),ez(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&w.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=eu.createElementNS(em,"tspan");ev(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=eu.createElementNS(em,"tspan");a.textContent="​",ev(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=eG.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(ez(t,function(e,i){l=!1,s||ep(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eF()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eT(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eM(i,e),n=eM(s,e);return eT(t,{x:a,y:n,width:eM(o,e)-a,height:eM(r,e)-n}),eS(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,g,u=[],f;eC(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eP(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eS(a.gradientUnits)&&(n=a,a=eB(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),ez(a,function(t,e){"id"!==e&&u.push(e,t)}),ez(l,function(t){u.push(t)}),h[u=u.join(",")])g=h[u].attr("id");else{a.id=g=eF();let t=h[u]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tM.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+g+")",i.setAttribute(e,f),i.gradient=u,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&ez(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eT(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eN(t.width)),eT(this.styles,t),o&&!ef&&this.renderer.forExport&&delete t.width;let r=ey&&t.fontSize||null;r&&(eL(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=eB(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),ew(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eN(s[e])*eR(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,ep(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,g=n.namespaceURI===this.SVG_NS,u=eR(e,this.rotation,0),f=h.styledMode?n&&eG.prototype.getStyle.call(n,"font-size"):l.fontSize;if(eS(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,u,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(g||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&ew(e,{display:t})},eE(o)&&o("none"),i=n.getBBox?eT({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eE(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,g&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),u&&(i=this.getRotatedBox(i,u));let t={bBox:i};eC(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eO(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*eg,g=(e-90)*eg,u=Math.cos(p),f=Math.sin(p),m=o*u,x=o*f,y=Math.cos(g),b=Math.sin(g),[[v,k],[M,w]]=[h,l].map(t=>[t-t*u,t*f]),S=i+d*(o-m)+v+w+c*y,A=S+m,T=A-r*y,C=T-m,O=s+c-d*x-k+M+c*b,P=O+x,E=P-r*b,L=E-x,D=Math.min(S,A,T,C),I=Math.min(O,P,E,L),B=Math.max(S,A,T,C)-D,z=Math.max(O,P,E,L)-I;return{x:D,y:I,width:B,height:z,polygon:[[S,O],[A,P],[T,E],[C,L]]}}getStyle(t){return ex.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=em,this.element="span"===e||"body"===e?ek(e):eu.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eC(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=eb(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(eI(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eB(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eD(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eN(t):""!==t&&(ev(i=eu.createElementNS(em,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;eG.symbolCustomAttribs.forEach(function(i){e[i]=eR(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||eu.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eH(eR(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];eS(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+eR(o,e.getAttribute("x"),0)+" "+eR(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eS(a)||eS(n))&&d.push("scale("+eR(a,1)+" "+eR(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,g;if(eS(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eS(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),g=(n=o.childNodes).length-1;g>=0&&!d;g--)c=!eS(l=(h=n[g]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!a&&!g?(o.insertBefore(r,n[g]),d=!0):(eN(l)<=t||c&&(!eS(t)||t>=0))&&(o.insertBefore(r,n[g+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}eG.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],eG.prototype.strokeSetter=eG.prototype.fillSetter,eG.prototype.yGetter=eG.prototype.xGetter,eG.prototype.matrixSetter=eG.prototype.rotationOriginXSetter=eG.prototype.rotationOriginYSetter=eG.prototype.rotationSetter=eG.prototype.scaleXSetter=eG.prototype.scaleYSetter=eG.prototype.translateXSetter=eG.prototype.translateYSetter=eG.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eY=eG,{defined:ej,extend:eU,getAlignFactor:eV,isNumber:e$,merge:eZ,pick:eq,removeEvent:e_}=Z;class eK extends eY{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=eK.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=eV(t);e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&e$(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=eZ(t),eK.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eY.prototype.css.call(this,t)}destroy(){e_(this.element,"mouseenter"),e_(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eY.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=eq(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:eq(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&ej(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){e$(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!e$(this.widthSetting)||!e$(this.heightSetting)||this.textAlign)&&ej(e.textStr)?e.getBBox(void 0,0):eK.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(eU(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text;if(!t.textPath){this.updateBoxSize();let e=this.baseline?0:this.baselineOffset,i=(this.paddingLeft??this.padding)+(ej(this.widthSetting)&&this.bBox?eV(this.textAlign)*(this.widthSetting-this.bBox.width):0);(i!==t.x||e!==t.y)&&(t.attr("x",i),t.hasBoxWidthChanged&&(this.bBox=t.getBBox(!0)),void 0!==e&&t.attr("y",e)),t.x=i,t.y=e}}widthSetter(t){this.widthSetting=e$(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=eq(this.paddingLeft,t),i=eq(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}eK.emptyBBox={width:0,height:0,x:0,y:0},eK.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:eJ,isNumber:eQ,pick:e0}=Z;function e1(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=e0(o.r,i),h=e0(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&h0)return l;if(t+n>i-a){if(h>e+a&&he+a&&h0){let i=hs&&na&&l.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return e1(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:e2,roundedRect:e3,square:e2,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:e6,SVG_NS:e9,win:e4}=w,{attr:e8,extend:e7,fireEvent:it,isString:ie,objectEach:ii,pick:is}=Z,io=(t,e)=>t.substring(0,e)+"…",ir=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=is(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new tJ(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(e6.createTextNode(this.unescapeEntities(s)));ie(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=e8(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),e8(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,io),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(e6.createTextNode(e),t);let s=e6.createElementNS(e9,"tspan");s.textContent="​",e8(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,io)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===e4.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===e4.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),e7(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),it(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,g=(e||i||"").length,u=g;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=g;)u=Math.ceil((p+g)/2),i&&(n=a(i,u)),h=f(u,n&&n.length-1),p===g?p=g+1:h>o?g=u-1:p=u;0===g?t.textContent="":e&&g===e.length-1||(t.textContent=n||a(e||i,u)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,io)}i&&i.splice(0,u),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return ii(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:ia}=tx,{charts:ih,deg2rad:il,doc:id,isFirefox:ic,isMS:ip,isWebKit:ig,noop:iu,SVG_NS:im,symbolSizes:ix,win:iy}=w,{addEvent:ib,attr:iv,createElement:ik,crisp:iM,css:iw,defined:iS,destroyObjectProperties:iA,extend:iT,isArray:iC,isNumber:iO,isObject:iP,isString:iE,merge:iL,pick:iD,pInt:iI,replaceNested:iB,uniqueKey:iz}=Z;class iR{constructor(t,e,i,s,o,r,a){let n,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iv(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iv(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(id.createTextNode("Created with Highcharts 12.0.2")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),ic&&t.getBoundingClientRect&&((n=function(){iw(t,{left:0,top:0}),h=t.getBoundingClientRect(),iw(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=ib(iy,"resize",n))}definition(t){return new tJ([t]).addToDOM(this.defs.element)}getReferenceURL(){if((ic||ig)&&id.getElementsByTagName("base").length){if(!iS(e)){let t=iz(),i=new tJ([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(id.body);iw(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=id.elementFromPoint(6,6);e="hitme"===(s&&s.id),id.body.removeChild(i)}if(e)return iB(iy.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iT({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iA(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iL({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ir(t).buildSVG()}getContrast(t){let e=tM.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,g=0;o=iL(ia.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let u=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[tJ.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iL(m[0],tJ.filterUserAttributes(p[e+5]||u[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),ib(d.element,ip?"mouseover":"mouseenter",function(){3!==g&&d.setState(1)}),ib(d.element,ip?"mouseout":"mouseleave",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iP(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iT({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==g&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iS(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iM(i[1],e)),iS(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iM(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iC(t)?e.d=t:iP(t)&&iT(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iP(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iP(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iP(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iT(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iv(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iD(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iO(e)&&(a.x=e),iO(i)&&(a.y=i),iO(s)&&(a.width=s),iO(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iy.Image;ib(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),g=!p&&(this.symbols[t]?t:"circle"),u=g&&this.symbols[g];if(u)"number"==typeof e&&(n=u.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iT(a,{symbolName:g||void 0,x:e,y:i,width:s,height:o}),r&&iT(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iD(r&&r.width,ix[h]&&ix[h].width),s.imgheight=iD(r&&r.height,ix[h]&&ix[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iv(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iS(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iS(s.imgwidth)&&iS(s.imgheight)?l(s):(s.attr({width:0,height:0}),ik("img",{onload:function(){let t=ih[d.chartIndex];0===this.width&&(iw(this,{position:"absolute",top:"-999em"}),id.body.appendChild(this)),ix[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iS(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iT(iR.prototype,{Element:eY,SVG_NS:im,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:e5,draw:iu}),eo.registerRendererType("svg",iR,!0);let{composed:iN}=w,{attr:iW,css:iH,createElement:iX,defined:iF,extend:iG,getAlignFactor:iY,isNumber:ij,pInt:iU,pushUnique:iV}=Z;function i$(t,e,i){let s=this.div?.style||i.style;eY.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let iZ=(t,e)=>{if(!t.div){let i=iW(t.element,"class"),s=t.css,o=iX("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=i$,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eY.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class iq extends eY{static compose(t){iV(iN,this.compose)&&(t.prototype.html=function(t,e,i){return new iq(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=iU(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),ij(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),iG(this.styles,t),iH(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:g=0}=this,{display:u="block",whiteSpace:f}=n;if(iH(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n=[i,h,t.innerHTML,l,this.textAlign].join(","),d=-(this.parentGroup?.padding*1)||0,c,m=!1;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iH(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iH(t,{width:e>s||i||r?l+"px":"auto",display:u,whiteSpace:f||"normal"}),this.oldTextWidth=l,m=!0)}this.hasBoxWidthChanged=m,n!==this.cTT&&(c=e.fontMetrics(t).b,iF(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,d,d),this.getSpanCorrection(!iF(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,c,iY(h)));let{xCorr:x=0,yCorr:y=0}=this,b={left:`${p+x}px`,top:`${g+y}px`,textAlign:h,transformOrigin:`${(s??p)-x-p-d}px ${(o??g)-y-g-d}px`};(r||a)&&(b.transform=`scale(${r??1},${a??1})`),iH(t,b),this.cTT=n,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){iH(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=iZ(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,tJ.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let i_=iq.prototype;i_.visibilitySetter=i_.opacitySetter=i$,i_.ySetter=i_.rotationSetter=i_.rotationOriginXSetter=i_.rotationOriginYSetter=i_.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(a||(a={}));let iK=a,{addEvent:iJ,isFunction:iQ,objectEach:i0,removeEvent:i1}=Z;(n||(n={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i0(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i1(t,i,t.eventOptions[i]),delete t.eventOptions[i]),iQ(e)&&(t.eventOptions[i]=e,iJ(t,i,e,{order:0})))})};let i2=n,{deg2rad:i3}=w,{clamp:i5,correctFloat:i6,defined:i9,destroyObjectProperties:i4,extend:i8,fireEvent:i7,getAlignFactor:st,isNumber:se,merge:si,objectEach:ss,pick:so}=Z,sr=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,i7(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=so(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,g=l.info,u=t.label,f,m,x,y=this.parameters.category||(o?so(o[n],a[n],n):n);r&&se(y)&&(y=i6(r.lin2log(y))),e.dateTime&&(g?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&g.higherRanks[n]||g.unitName])).main:se(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:g,value:y};i7(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),es.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),M=m&&m.list;M?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(l*i3))):(f=s-d*c,m=s+(1-d)*c,fn&&(g=n-t.x+g*d,u=-1),(g=Math.min(p,g))g||e.autoRotation&&(h.styles||{}).width)&&(x=g)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(i8({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):ss(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=so(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(i6(p)c)&&(i=0);let g=so(i,this.label&&this.label.newOpacity,1);i=so(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,g,t),this.isNew=!1,i7(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=so(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=g),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,h=t.y,l=so(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=so(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,g=!0;n&&se(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):g=!1,l&&s%l&&(g=!1),g&&se(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sa}=tW,{xAxis:sn,yAxis:sh}=iK,{defaultOptions:sl}=tx,{registerEventOptions:sd}=i2,{deg2rad:sc}=w,{arrayMax:sp,arrayMin:sg,clamp:su,correctFloat:sf,defined:sm,destroyObjectProperties:sx,erase:sy,error:sb,extend:sv,fireEvent:sk,getClosestDistance:sM,insertItem:sw,isArray:sS,isNumber:sA,isString:sT,merge:sC,normalizeTickInterval:sO,objectEach:sP,pick:sE,relativeLength:sL,removeEvent:sD,splat:sI,syncTimeout:sB}=Z,sz=(t,e)=>sO(e,void 0,void 0,sE(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sv(sl,{xAxis:sn,yAxis:sC(sn,sh)});class sR{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sk(this,"init",{userOptions:e}),this.opposite=sE(e.opposite,this.opposite),this.side=sE(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sk(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sE(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sS(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sm(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sE(r.crosshair,sI(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sw(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sm(this.reversed)&&(this.reversed=!0),this.labelRotation=sA(a.rotation)?a.rotation:void 0,sd(this,r),sk(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sC(e,sl[this.coll],t),sk(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sA(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sl.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sk(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sA(a)||a instanceof Date||(o=o.filter(sA),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sE(e.dataMin,a),a),e.dataMax=Math.max(sE(e.dataMax,n),n)));else{let t=i.applyExtremes();sA(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sE(e.dataMin,a),a)),sA(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sE(e.dataMax,n),n)),sm(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sk(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sA(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,g=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(g=(t=t*d+c-h)/p+n,l&&(g=a.lin2val(g))):(l&&(t=a.val2lin(t)),g=d*(t-n)*p+c+d*h+(sA(r)?p*r:0),a.isRadial||(g=sf(g))),g}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,g,u,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=su(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sk(this,"getPlotLinePath",b,function(t){g=f=(c=su(c=sE(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,u=m=h-c-d,sA(c)?e.horiz?(u=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),g=f=y(g,s,s+e.width)):(g=s,f=l-e.right+(i.scrollablePixelsX||0),u=m=y(u,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",g,u],["L",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=sf(Math.floor(e/t)*t),n=sf(Math.ceil(i/t)*t),h=[];if(sf(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=sf(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sE(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sA(s)&&sA(o)&&sA(r)&&s-o=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=sp(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sg(l))-ot-e),t=sM([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sS(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sm(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sE(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sA(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sE(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sT(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sk(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sA(t)&&sA(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sA(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:g,floor:u,linkedTo:f,softMax:m,softMin:x}=h,y=sA(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,M=0,w,S=sA(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,A,T,C,O;if(r||e||y||this.getTickAmount(),C=sE(this.userMin,d.parse(h.min)),O=sE(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,w=y.getExtremes(),this.min=sE(w.min,w.dataMin),this.max=sE(w.max,w.dataMax),this.type!==y.type&&sb(11,!0,i)):(l&&sm(c)&&sA(s)&&sA(o)&&(o>=c?(A=c,k=0):s<=c&&(T=c,v=0)),this.min=sE(C,A,o),this.max=sE(O,T,s)),sA(this.max)&&sA(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sE(o,this.min))&&sb(10,!0,i),this.min=sf(n.log2lin(this.min),16),this.max=sf(n.log2lin(this.max),16)),this.range&&sA(o)&&(this.userMin=this.min=C=Math.max(o,this.minFromRange()||0),this.userMax=O=this.max,this.range=void 0)),sk(this,"foundExtremes"),this.adjustForMinRange(),sA(this.min)&&sA(this.max)){if(!sA(this.userMin)&&sA(x)&&xthis.max&&(this.max=O=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(M=this.max-this.min)||(!sm(C)&&k&&(this.min-=M*k),sm(O)||!v||(this.max+=M*v)),!sA(this.userMin)&&sA(u)&&(this.min=Math.max(this.min,u)),!sA(this.userMax)&&sA(g)&&(this.max=Math.min(this.max,g)),l&&sA(o)&&sA(s)){let t=c||0;!sm(C)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sm(O)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sm(h.min)?this.max=this.min:sm(h.max)&&(this.min=this.max)),M=this.max-this.min}if(this.min!==this.max&&sA(this.min)&&sA(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sE(S,this.tickAmount?M/Math.max(this.tickAmount-1,1):void 0,e?1:M*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sk(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sk(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let P=sE(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sb(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sz(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sA(this.min)&&sA(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sk(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sk(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sA(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sA(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sA(this.threshold)){let t=su((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sm(t.tickInterval)||i||!(this.lenr.push(sf(r[r.length-1]+p)),f=()=>r.unshift(sf(r[0]-p));if(sA(n)&&(g=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(g=a-1-g)),t.hasData()&&sA(s)&&sA(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sA(g)&&sA(t.threshold)){for(;r[g]!==l||r.length!==a||r[0]>s||r[r.length-1]t.threshold?f():u();if(p>8*t.tickInterval)break;p*=2}n()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sk(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sk(this,"setExtremes",o=sv(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sL(sE(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sL(sE(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sL(sE(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sL(sE(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sf(t.lin2log(this.min)):this.min,max:t?sf(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sE(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sk(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=sf(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sf(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sA(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sc*i))))+Math.abs(i/360))u&&(u=i)}),this.maxLabelLength=u,this.autoRotation?u>h&&u>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=u>.5*t.chartHeight?.33*t.chartHeight:u,c||(g=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sv(a,{width:`${p}px`,lineClamp:g})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sm(this.min)&&sm(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sC(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sr(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sA(s.crossing),g=e.axisOffset,u=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,M;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sE(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sP(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sm(y=d.offset)?0:sE(d.margin,i?5:10))),t.renderLine(),t.offset=f*sE(s.offset,g[o]?g[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},M=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=M,k+=f*(i?sE(c.y,t.tickRotCorr.y+f*c.distance):sE(c.x,f*c.distance))),t.axisTitleMargin=sE(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&u){let e=this.tickSize("tick");g[o]=Math.max(g[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a&&a.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;u[h]=Math.max(u[h],i)}sk(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,g={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],u=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?g+l:u+(n?this.width:0)+h+l,y:e?u+d-(n?this.height:0)+h:g+d};return sk(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sr(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new sr(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,g=a.stackLabels,u=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sa(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sP(t,function(t){t.isActive=!1})}),sA(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sA(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sr(i,-1,null,!0)),d[-1].render(-1))),u&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sY(t=sj("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(l||(l={}));let sU=l,{erase:sV,extend:s$,isNumber:sZ}=Z;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!sZ(this.min)||!sZ(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),sq.compose(s9,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){s2(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),g=e.borderWidth,u=e.label,{label:f,svgElem:m}=this,x=[],y,b=sQ(c)&&sQ(d),v=sQ(p),k=!m,M={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},w=b?"bands":"lines";if(!t.chart.styledMode&&(v?(M.stroke=o||"#999999",M["stroke-width"]=s6(e.width,1),e.dashStyle&&(M.dashstyle=e.dashStyle)):b&&(M.fill=o||"#e6e9ff",g&&(M.stroke=e.borderColor,M["stroke-width"]=g))),l.zIndex=a,w+="-"+a,(y=t.plotLinesAndBandsGroups[w])||(t.plotLinesAndBandsGroups[w]=y=n.g("plot-"+w).attr(l).add()),m||(this.svgElem=m=n.path().attr(M).add(y)),sQ(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(sQ(c)&&sQ(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(s5(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),u&&(sQ(u.text)||sQ(u.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(u=s3({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},u),this.renderLabel(u,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(s3({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=sJ(h),c=sJ(l),p=sK(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:sK(l)-c}),(!n.alignValue||"left"===n.alignValue||sQ(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return sQ(t.formatter)?t.formatter.call(this):t.text}destroy(){s1(this.axis.plotLinesAndBands,this),delete this.axis,s0(this)}}let{animObject:s4}=tW,{format:s8}=es,{composed:s7,dateFormats:ot,doc:oe,isSafari:oi}=w,{distribute:os}=el,{addEvent:oo,clamp:or,css:oa,discardElement:on,extend:oh,fireEvent:ol,isArray:od,isNumber:oc,isObject:op,isString:og,merge:ou,pick:of,pushUnique:om,splat:ox,syncTimeout:oy}=Z;class ob{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||ox(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),on(this.container)),Z.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=ox(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+of(t.colorIndex,o.colorIndex),r&&r.className].filter(og).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=eo.getRendererType();this.container=a=w.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),oa(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&w.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=oe,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,g={},u=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v("y"),M=v("x"),w,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let A=!this.followPointer&&of(i.ttBelow,!d&&!n===S),T=function(t,e,i,o,a,n,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+u)}},C=function(t,e,i,o,r){if(re-s)return!1;re-o/2?g[t]=e-o-2:g[t]=r-i/2},O=function(t){[k,M]=[M,k],w=t},P=()=>{!1!==T.apply(0,k)?!1!==C.apply(0,M)||w||(O(!0),P()):w?g.x=g.y=0:(O(!0),P())};return(n&&!d||this.len>1)&&O(),P(),g}hide(t){let e=this;Z.clearTimeout(this.hideTimer),t=of(t,this.options.hideDelay),this.isHidden||(this.hideTimer=oy(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=of(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=s4(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=ox(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;Z.clearTimeout(this.hideTimer),this.allowShared=!(!od(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),g=p[0],u=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let f=og(h)?s8(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=of(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=g,r=u;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:or(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||"#666666"}),this.updatePosition({plotX:g,plotY:u,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ol(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:g,options:{positioner:u},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?oe.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,k=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:M,top:w}=f.getChartPosition(),S=h+x,A=0,T=a-l;function C(t,e,s,o,r=!0){let a,n;return s?(a=k?0:T,n=or(t-o/2,y.left,y.right-o-(i.outside?M:0))):(a=e-S,n=or(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}og(t)&&(t=[!1,t]);let O=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:g.padding,r:g.borderRadius};c||(t.fill=g.backgroundColor,t["stroke-width"]=g.borderWidth??1),o=v.label("",0,0,g[r?"headerShape":"shape"],void 0,void 0,g.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(g.style).attr({stroke:g.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(A=m.height,T+=A,k&&(S-=A));let{anchorX:M,anchorY:w}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+or(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=or(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof w){let e=m.height+1,s=u?u.call(i,x,e,r):C(M,w,l,x);t.push({align:u?0:void 0,anchorX:M,anchorY:w,boxWidth:x,point:r,rank:of(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!u&&O.some(t=>{let{outside:e}=i,s=(e?M:0)+t.anchorX;return ss})&&(O=O.map(t=>{let{x:e,y:i}=C(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return oh(t,{target:i,x:e})})),i.cleanSplit(),os(O,T);let P={left:M,right:M};O.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&M+eP.right&&(P.right=M+e))}),O.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(P.right-P.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:E,outside:L,renderer:D}=i;if(L&&E&&D){let{width:t,height:e,x:i,y:s}=b.getBBox();D.setSize(t+i,e+s,!1),E.style.left=P.left+"px",E.style.top=w+"px"}oi&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return ol(this,"headerFormatter",a,function(e){if(r&&!n&&oc(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(op(n)){let t=n;ot[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=s8(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,ou(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),g=(o.positioner||this.getPosition).call(this,h,n,t),u=w.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(g.x+=l-s,g.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(or(h+x,0,u.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(oa(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-g.x,m+=d-g.y),this.move(Math.round(g.x),Math.round(g.y||0),f,m)}}!function(t){t.compose=function(e){om(s7,"Core.Tooltip")&&oo(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(ob||(ob={}));let ov=ob,{animObject:ok}=tW,{defaultOptions:oM}=tx,{format:ow}=es,{addEvent:oS,crisp:oA,erase:oT,extend:oC,fireEvent:oO,getNestedProperty:oP,isArray:oE,isFunction:oL,isNumber:oD,isObject:oI,merge:oB,pick:oz,syncTimeout:oR,removeEvent:oN,uniqueKey:oW}=Z;class oH{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oC({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oC(this,t=oH.prototype.optionsToObject.call(this,t)),this.options=this.options?oC(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oH.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oD(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oD(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=ok(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oN(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oT(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oR(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oO(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oP(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oW()),this.resolveColor(),t.chart.pointCount++,oO(this,"afterInit")}isValid(){return(oD(this.x)||this.x instanceof Date)&&oD(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(oD(t)||null===t)r[s[0]]=t;else if(oE(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);h0?oH.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oD(i)&&oD(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oz(this.options.colorIndex,a),this.color=oz(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oI(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),ow(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oI(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oI(l.data[o],!0)||oI(t,!0)?r.options:oz(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oz(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oz(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oB(this.series.options.point,this.options),i=e.events?.[t];oL(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oS(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oN(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oM.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,g,u,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(g=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){u=i.pointAttribs(this,t),f=oz(d.options.chart.animation,o.animation);let e=u.opacity;i.options.inactiveOtherPoints&&oD(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(u,f)}g&&this.graphic.animate(g,oz(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),g&&(m?m[e?"animate":"attr"]({x:g.x,y:g.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,g.x,g.y,g.width,g.height,oB(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oz(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oC({fill:this.color||i.color,"fill-opacity":y.opacity},tJ.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oO(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oA(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oX=oH,{parse:oF}=tM,{charts:oG,composed:oY,isTouchDevice:oj}=w,{addEvent:oU,attr:oV,css:o$,extend:oZ,find:oq,fireEvent:o_,isNumber:oK,isObject:oJ,objectEach:oQ,offset:o0,pick:o1,pushUnique:o2,splat:o3}=Z;class o5{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!w.chartCount&&(o5.unbindDocumentMouseUp.forEach(t=>t.unbind()),o5.unbindDocumentMouseUp.length=0,o5.unbindDocumentTouchEnd&&(o5.unbindDocumentTouchEnd=o5.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),oQ(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return o_(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(s=t-n,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+n),a&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=oJ(o)?o.enabled:o,p=r&&t[`${r}Key`],g=t.chartX,u=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(gn+l&&(g=n+l),uh+d&&(u=h+d),this.hasDragged=Math.sqrt(Math.pow(i-g,2)+Math.pow(s-u,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(g,u);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oF("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return o_(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}oK(i.index)&&(this.selectionMarker=s.destroy())}i&&oK(i.index)&&(o$(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);oJ(r,!0)&&r.series&&(!oJ(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&oK(o.x)&&oK(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o0(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&o1(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};o_(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=oq(t.points,function(t){return t.x===c.x&&!t.isNull});oJ(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),o_(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=oV(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),o_(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o1(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return oZ(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(o_(i.series,"click",oZ(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(oZ(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&o_(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),w.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oG[o1(o5.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oG[o1(o5.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&o1(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(o_(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&o3(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&o3(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n&&n.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=oU(s.container.ownerDocument,"mousemove",t=>oG[o5.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o1((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=oq(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(oU(t,"mouseenter",this.onContainerMouseEnter.bind(this)),oU(t,"mouseleave",this.onContainerMouseLeave.bind(this))),o5.unbindDocumentMouseUp.some(t=>t.doc===e)||o5.unbindDocumentMouseUp.push({doc:e,unbind:oU(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(oU(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(oU(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),oU(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),o5.unbindDocumentTouchEnd||(o5.unbindDocumentTouchEnd=oU(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),oU(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oj)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o1(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(oU(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),oU(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||o$(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||o$(i,{"touch-action":o1(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=w.charts[o1(o5.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(o5.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o1(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o1(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}o5.unbindDocumentMouseUp=[],function(t){t.compose=function(e){o2(oY,"Core.Pointer")&&oU(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(o5||(o5={}));let o6=o5,{fireEvent:o9,isArray:o4,objectEach:o8,uniqueKey:o7}=Z,rt=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||o7(),this.modified=this,this.rowCount=0,this.versionTag=o7();let e=0;o8(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,o8(this.columns,e=>{o4(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;o8(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(o9(this,"afterSetColumns"),this.versionTag=o7())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;o8(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(o9(this,"afterSetRows"),this.versionTag=o7())}},{extend:re,merge:ri,pick:rs}=Z;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,g=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),u={},f,m=r.marker,x=0;if(o.styledMode||(u["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?u.dashstyle=r.dashStyle:"square"===r.linecap||(u["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(u).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),u["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,g],["L",n-x,g]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(rs(m.radius,d),d);0===l.indexOf("url")&&(m=ri(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,g-t,2*t,2*t,re({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rs(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(c||(c={}));let ro=c,{defaultOptions:rr}=tx,{extend:ra,extendClass:rn,merge:rh}=Z;!function(t){function e(e,i){let s=rr.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oX),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=w.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rr.plotOptions||{};if(s=s||"",n[i]=rh(n[s],o),delete t.seriesTypes[i],e(i,rn(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oX{}ra(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(p||(p={}));let rl=p,{animObject:rd,setAnimation:rc}=tW,{defaultOptions:rp}=tx,{registerEventOptions:rg}=i2,{svg:ru,win:rf}=w,{seriesTypes:rm}=rl,{arrayMax:rx,arrayMin:ry,clamp:rb,correctFloat:rv,crisp:rk,defined:rM,destroyObjectProperties:rw,diffObjects:rS,erase:rA,error:rT,extend:rC,find:rO,fireEvent:rP,getClosestDistance:rE,getNestedProperty:rL,insertItem:rD,isArray:rI,isNumber:rB,isString:rz,merge:rR,objectEach:rN,pick:rW,removeEvent:rH,syncTimeout:rX}=Z;class rF{constructor(){this.zoneAxis="y"}init(t,e){let i;rP(this,"init",{options:e}),this.dataTable??(this.dataTable=new rt);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rC(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rg(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rW(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rD(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rP(this,"afterInit")}is(t){return rm[t]&&this instanceof rm[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rP(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rW(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rD(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rT(18,!0,s)})}),rP(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rW(this.pointInterval,i.pointInterval,1),o&&rB(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rB(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rC(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rM(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rR(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rP(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=rp.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=n.userOptions;let g=rR(h,s.series,p,r);this.tooltipOptions=rR(rp.tooltip,rp.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rW(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||g.stickyTracking),null===h.marker&&delete g.marker,this.zoneAxis=g.zoneAxis||"y";let u=this.zones=(g.zones||[]).map(t=>({...t}));return(g.negativeColor||g.negativeFillColor)&&!g.zones&&(e={value:g[this.zoneAxis+"Threshold"]||g.threshold||0,className:"highcharts-negative"},a||(e.color=g.negativeColor,e.fillColor=g.negativeFillColor),u.push(e)),u.length&&rM(u[u.length-1].value)&&u.push(a?{}:{color:this.color,fillColor:this.fillColor}),rP(this,"afterSetOptions",{options:g}),g}getName(){return rW(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rM(o=rW("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||rp.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oX&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rO(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rB(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rB(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rM(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rB(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,a&&(c=l+1)):o[l]&&(o[l].touched=!0),(!n||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let g=this.getColumn("x");return null===this.xIncrement&&g.length&&(this.xIncrement=rx(g),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),g=this.pointValKey||"y",u=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rR(!0,t));let k=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(rI(t)&&(f||rB(t[0])));if(rB(i)&&rB(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[g]:i})}else if(o(i)&&o(s)){if(u){let e=i.length===u?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=u;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[g]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rL(i,t),o=rL(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,g,u,f,m=e.getColumn("x"),x=i,y=!1;return r&&(u=(g=r.getExtremes()).min,f=g.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]f?x=new rt:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,u,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rE([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rT(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rP(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a=e){h=Math.max(0,a-1);break}for(n=a;ni){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new rt({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],g=this.dataColumnKeys(),u,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,g=o||this.cropped||!i,u,f,m,x=0,y=0;for(i&&(x=(u=i.getExtremes()).min,y=u.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rB(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:ry(d),dataMax:rx(d)};return rP(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rN(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rP(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,g=this[this.specialGroup||"markerGroup"],u=this.xAxis,f=rW(p.enabled,!u||!!u.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(g),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=rW(o.radius,s&&s.radius);e&&(n=s.states[e],l=rW((h=o.states&&o.states[e])&&h.radius,n&&n.radius,l&&l+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rB(l)&&d&&(i.crisp&&(d[0]=rk(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,g=rW(o.lineWidth,i.lineWidth),u=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},g=rW((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,g+rW(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":g,fill:c,opacity:u=rW(l.opacity,h.opacity,u)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(rf.navigator.userAgent),n=o.data||[];for(rP(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rA(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rw(t,void 0,!0);Z.clearTimeout(o.animationTimeout),rN(o,function(t,e){t instanceof eY&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rA(r.series,o),r.orderItems("series"),rN(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:g=0}=d||{},u=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rb(d.toPixels(rW(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,g=0,f=r.len,y=a.len;c?(p=o,f=x):(g=o,y=x);let b=[["M",p,g],["L",f,g],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(u(v),t&&u(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rM(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rM(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rH(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rd(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rP(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rX(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rP(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rX(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i){let s=this,[o,r]=this.kdAxisArray,a=e?"distX":"dist",n=(s.options.findNearestPointBy||"").indexOf("y")>-1?2:1,h=!!s.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,n,l){let d=i.point,c=s.kdAxisArray[n%l],p,g,u=d;!function(t,e){let i=t[o],s=e[o],a=rM(i)&&rM(s)?i-s:null,n=t[r],l=e[r],d=rM(n)&&rM(l)?n-l:0,c=h&&e.marker?.radius||0;e.dist=Math.sqrt((a&&a*a||0)+d*d)-c,e.distX=rM(a)?Math.abs(a)-c:Number.MAX_VALUE}(e,d);let f=(e[c]||0)-(d[c]||0)+(h&&d.marker?.radius||0),m=f<0?"left":"right",x=f<0?"right":"left";return i[m]&&(u=(p=t(e,i[m],n+1,l))[a]=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(ru?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rP(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,g=n.data,u=this.getColumn("x");e=rW(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=u.length,this.requireSorting&&mm;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),g?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,g,...Object.values(d.getColumns())].filter(rM).forEach(t=>{t.shift()}),d.rowCount-=1,rP(d,"afterDeleteRows"))),!1!==o&&rP(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rM).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rP(n,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rc(i,o),e=rW(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rW(t,!0)&&r.redraw(e)}!1!==i?rP(o,"remove",null,a):a()}update(t,e){rP(this,"update",{options:t=rS(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=rm[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],g=t.type||o.type||s.options.chart.type,u=!(this.hasDerivedData||g&&g!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));g=g||r,u?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rC(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rR(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!u&&{data:i.options.data},t,h),u&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(rm[g]){if(f=g!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,rm[g].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rC(i,rm[g].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rT(17,!0,s,{missingModuleFor:g});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),u&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rP(this,"afterUpdate"),rW(e,!0)&&s.redraw(!!u&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rW(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rM(r)?i!==o:i!==rW(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rP(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rP(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rW(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=rW(a[t].opacity,l)),o&&!o.dashstyle&&rB(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rP(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rP(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){ro[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rF.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rF.types=rl.seriesTypes,rF.registerType=rl.registerSeriesType,rC(rF.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oX,requireSorting:!0,sorted:!0}),rl.series=rF;let rG=rF,{animObject:rY,setAnimation:rj}=tW,{registerEventOptions:rU}=i2,{composed:rV,marginNames:r$}=w,{distribute:rZ}=el,{format:rq}=es,{addEvent:r_,createElement:rK,css:rJ,defined:rQ,discardElement:r0,find:r1,fireEvent:r2,isNumber:r3,merge:r5,pick:r6,pushUnique:r9,relativeLength:r4,stableSort:r8,syncTimeout:r7}=Z;class at{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),rU(this,e),r_(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),r_(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=r6(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=r5(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=r6(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(r5(!0,this.options,t)),"events"in this.options&&rU(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,r6(e,!0)&&i.redraw(),r2(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof rG||t instanceof oX)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(r5(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,r2(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[rQ(e.translateY)?"animate":"attr"](o,void 0,()=>{r2(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r0(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,rJ(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?r6(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&r6(i.showInLegend,!rQ(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),r2(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!rQ(t[a])&&(i[r$[a]]=Math.max(i[r$[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+r6(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=r1(a?t.points:t.points.slice(0).reverse(),function(t){return r3(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),rZ(i,e.plotHeight)))t=o.item.legendItem||{},r3(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=r4(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),r8(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),r2(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=r5(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(r5(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=r6(l.animation,!0),c=l.arrowSize||12,p=this.pages,g=this.allItems,u=function(t){"number"==typeof t?k.attr({height:t}):k&&(e.clipRect=k.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,k=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-n,0),this.currentPage=r6(this.currentPage,1),this.fullHeight=t,g.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((g[e-1].legendItem||{}).pageIx=o-1),e===g.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),k||(k=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(k)),u(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(u(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&rj(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),r7(()=>{r2(this,"afterScroll",{currentPage:l})},rY(r6(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oX,n=t instanceof rG,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(r5(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),r2(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&r2(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=rK("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),r_(t.checkbox,"click",function(e){let i=e.target;r2(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){r9(rV,"Core.Legend")&&r_(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(at||(at={}));let ae=at,{animate:ai,animObject:as,setAnimation:ao}=tW,{defaultOptions:ar}=tx,{numberFormat:aa}=es,{registerEventOptions:an}=i2,{charts:ah,doc:al,marginNames:ad,svg:ac,win:ap}=w,{seriesTypes:ag}=rl,{addEvent:au,attr:af,createElement:am,css:ax,defined:ay,diffObjects:ab,discardElement:av,erase:ak,error:aM,extend:aw,find:aS,fireEvent:aA,getAlignFactor:aT,getStyle:aC,isArray:aO,isNumber:aP,isObject:aE,isString:aL,merge:aD,objectEach:aI,pick:aB,pInt:az,relativeLength:aR,removeEvent:aN,splat:aW,syncTimeout:aH,uniqueKey:aX}=Z;class aF{static chart(t,e,i){return new aF(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aL(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aB(t.zoomType,e.type),key:aB(t.zoomKey,e.key),pinchType:aB(t.pinchType,e.pinchType),singleTouch:aB(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aD(e.resetButton,t.resetZoomButton)}}init(t,e){aA(this,"init",{args:arguments},function(){let i=aD(ar,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=aw({},t),(this.renderTo=aL(o)?al.getElementById(o):o)||aM(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tc(aw(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||aa).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ah.length,ah.push(this),w.chartCount++,an(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aA(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=ag[i];s||aM(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aW(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aW(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(u.isInsidePlot=!1)}if(!i.ignoreY&&u.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+g:a+g;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(u.isInsidePlot=!1)}return aA(this,"afterIsInsidePlot",u),u.isInsidePlot}redraw(t){aA(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,g=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),ao(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),g=!0):r&&(r.labelFormatter||r.labelFormat)&&(g=!0)),t.isDirtyData&&aA(t,"updatedData")}),g&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){aA(t,"afterSetExtremes",aw(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aA(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aA(this,"redraw"),aA(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aS(this.axes,i)||aS(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aB(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aD(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(aw("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aD(o),n=i?.textPxLength||0;if(i&&r){aA(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,g="title"===t?c?-3:0:c?e[0]+2:0,u=Math.min(a.width/n,1),f=Math.max(p,u),m=aD({y:"bottom"===d?h:g+h},{align:"title"===t?up?this.chartWidth:a.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${a.x+n*f*aT(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,aA(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:aC(this.renderTo,"width",!0)||0,height:aC(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,aR(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(ax(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(al.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(al.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,al.body.appendChild(e)),("none"===aC(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),ax(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==al.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=aX(),r=this.renderTo,a=az(af(r,s));aP(a)&&ah[a]&&ah[a].hasRendered&&ah[a].destroy(),af(r,s,this.index),r.innerHTML=tJ.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;ax(r,{overflow:"hidden"}),this.styledMode||(t=aw({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=am("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||ax(l,{width:aB(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!ac?eo.getRendererType(i.renderer):iR;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),ao(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aA(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!ay(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!ay(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),aA(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),ad.forEach(function(i,o){ay(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return ab(this.userOptions,ar)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(Z.clearTimeout(e.reflowTimeout),e.reflowTimeout=aH(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=au(ap,"resize",e);au(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,ao(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?ai:ax)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aA(s,"resize"),setTimeout(()=>{s&&aA(s,"endResize")},as(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),aA(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){aA(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=aE(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aB(e[i+s],o[r])})}),ad.forEach(function(e,i){t[e]=aB(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,g=this.plotBox,u=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,M="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),M="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),k={fill:a||"none"},(b||m["stroke-width"])&&(k.stroke=t.borderColor,k["stroke-width"]=b),m.attr(k).shadow(t.shadow)),m[M]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),M="animate",x||(M="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[M](g),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(g)):this.plotBGImage=e.image(h,l,d,c,p).add())),u?u.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),M="animate",y||(M="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[M](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,aA(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=ag[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=ag[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aL(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aB(t.options.visible,s.options.visible,t.visible))}}),aA(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),aA(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sr(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aB(i.reserveSpace,!aP(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aD(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(ap.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(aA(e,"destroy"),e.renderer.forExport?ak(ah,e):ah[e.index]=void 0,w.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),aN(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=tJ.emptyHTML,aN(o),r&&av(o)),aI(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aO(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aA(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aA(this,"load"),aA(this,"render"),ay(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aA(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),ax(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:g,minPointOffset:u=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=aB(a[x],t.len),v=aB(s[x],t.len),k=10>Math.abs(b)?1:b/v,M=(s[y]||0)+v/2-t.pos,w=M-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(M<0||M>t.len))continue;let A=t.toValue(w,!0)+(r||t.isOrdinal?0:u*S),T=t.toValue(w+g/k,!0)-(r||t.isOrdinal?0:u*S||0),C=t.allExtremes;if(A>T&&([A,T]=[T,A]),1===k&&!o&&"yAxis"===t.coll&&!C){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);C??(C={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aP(t.dataMin)&&aP(t.dataMax)&&(C.dataMin=Math.min(t.dataMin,C.dataMin),C.dataMax=Math.max(t.dataMax,C.dataMax))}t.allExtremes=C}let{dataMin:O,dataMax:P,min:E,max:L}=aw(t.getExtremes(),C||{}),D=l.parse(f.min),I=l.parse(f.max),B=O??D,z=P??I,R=T-A,N=t.categories?0:Math.min(R,z-B),W=B-N*(ay(D)?0:f.minPadding),H=z+N*(ay(I)?0:f.maxPadding),X=t.allowZoomOutside||1===k||"zoom"!==n&&k>1,F=Math.min(D??W,W,X?E:W),G=Math.max(I??H,H,X?L:H);(!t.isOrdinal||t.options.overscroll||1!==k||o)&&(A=1&&(T=A+R)),T>G&&(T=G,k>=1&&(A=T-R)),(o||t.series.length&&(A!==E||T!==L)&&A>=F&&T<=G)&&(r?r[t.coll].push({axis:t,min:A,max:T}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:A,o?void 0:T,!1,!1,{move:w,trigger:n,scale:k}),!o&&(A>F||T{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}aw(aF.prototype,{callbacks:[],collectionsWithInit:{xAxis:[aF.prototype.addAxis,[!0]],yAxis:[aF.prototype.addAxis,[!1]],series:[aF.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let{stop:aG}=tW,{composed:aY}=w,{addEvent:aj,createElement:aU,css:aV,defined:a$,erase:aZ,merge:aq,pushUnique:a_}=Z;function aK(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new aQ(this)),t?.applyFixed()}function aJ(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class aQ{static compose(t,e,i){a_(aY,this.compose)&&(aj(t,"afterInit",aJ),aj(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),aj(e,"render",aK),aj(i,"show",aJ))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=aq(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),a$(s)&&(t.scrollablePlotBox=aq(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),a$(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=eo.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=aU("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=aU("div",{className:"highcharts-scrolling"},a,n),l=this.innerContainer=aU("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=aU("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),aV(t.renderTo,{overflow:"visible"}),aj(t,"afterShowResetZoom",r),aj(t,"afterApplyDrilldown",r),aj(t,"afterLayOutTitles",r),aj(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:g=0}=t,{scrollPositionX:u=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+g;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),aG(t.container),aV(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),aV(s,{width:`${r}px`,height:`${a}px`}),a$(i)||(s.scrollLeft=p*u,s.scrollTop=g*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,M=l+c-p,w=d+h-g,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",M,y],["L",r,y],["L",r,v],["L",M,v],["Z"]]:g&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,w],["L",b,a],["L",k,a],["L",k,w],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=aQ.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a_(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])aZ(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}aQ.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:a0}=es,{series:a1}=rl,{destroyObjectProperties:a2,fireEvent:a3,getAlignFactor:a5,isNumber:a6,pick:a9}=Z,a4=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){a2(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?a0(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:a9(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,a3(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:g}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===a9(l.overflow,"justify"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:g,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&a1.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*a5(l.textAlign||"center"),rotationOriginY:t.height/2}),a9(!i&&l.crop,!0)&&(s=a6(h.x)&&a6(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}a3(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*a5(i)-1),y:t.height/2*2*(1-a5(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:a9(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=a9(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||a6(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),g=i.inverted,u=this.isNegative;return g?{x:(u?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(u?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:a8}=tW,{series:{prototype:a7}}=rl,{addEvent:nt,correctFloat:ne,defined:ni,destroyObjectProperties:ns,fireEvent:no,isNumber:nr,objectEach:na,pick:nn}=Z;function nh(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nn(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function nl(){let t=this.stacking;if(t){let e=t.stacks;na(e,(t,i)=>{ns(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function nd(){this.stacking||(this.stacking=new nm(this))}function nc(t,e,i,s){return!ni(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function np(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function ng(t,e,i){let s=e.total?100/e.total:0;t[0]=ne(t[0]*s),t[1]=ne(t[1]*s),this.stackedYData[i]=t[1]}function nu(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?a7.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nf(t,e){let i,s,o,r,a,n,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],g=c.length,u=this.options,f=u.threshold||0,m=u.startFromThreshold?f:0,x=u.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,k=t.stacking,M=k.stacks,w=k.oldStacks;for(k.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&M[r]?.[e]?(r=M[r][e]).total=Math.max(r.total||0,S)+Math.abs(u):ne(S+Math.abs(u))):"group"===l?nr(g)&&S++:S=ne(S+u),"group"===l?o.cumulative=(S||1)-1:o.cumulative=ne(nn(o.cumulative,m)+u),o.total=S,null!==g&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class nm{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{na(t,t=>{t.cumulative=t.total})}))}resetStacks(){na(this.stacks,t=>{na(t,(e,i)=>{nr(e.touched)&&e.touched{na(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(g||(g={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(nt(t,"init",nd),nt(t,"destroy",nl),s.getStacks=nh,o.getStackIndicator=nc,o.modifyStacks=np,o.percentStacker=ng,o.setGroupedPoints=nu,o.setStackedPoints=nf)};let nx=g,{defined:ny,merge:nb,isObject:nv}=Z;class nk extends rG{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nb({filterUnits:"userSpaceOnUse"},nv(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,g=l.plotY,u=t[d-1],f=l.isNull||"number"!=typeof g;(l.leftCliff||u&&u.rightCliff)&&!i&&(n=!0),f&&!ny(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",u.plotX,g]]:2===h?[["L",(u.plotX+p)/2,u.plotY],["L",(u.plotX+p)/2,g]]:[["L",p,u.plotY]]).push(["L",p,g]):c=[["L",p,g]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nk.defaultOptions=nb(rG.defaultOptions,{legendSymbol:"lineMarker"}),rl.registerSeriesType("line",nk);let{seriesTypes:{line:nM}}=rl,{extend:nw,merge:nS,objectEach:nA,pick:nT}=Z;class nC extends nM{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nM.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,g=Math.round(n.getThreshold(r.threshold)),u=nT(r.connectNulls,"percent"===a),f=function(i,s,o){let r=t[i],u=a&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?u[0]:u[1])+m,y=u[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?g:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?g:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,g){let u=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[g+i]],u=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),a=2*h-o):op&&a>h?(a=Math.max(p,h),o=2*h-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;n_(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&nV(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(nY(s)){if(n$(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=nq(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,h=nq(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,g=t.dataMax,u=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),rG.prototype.translate.apply(t),t.points.forEach(function(s){let o=nq(s.yBottom,u),m=999+Math.abs(o),x=s.plotX||0,y=nF(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,M=d,w=x+c,S=f;h&&Math.abs(k)h?o-h:u-(b?h:0)),nY(s.options.pointWidth)&&(w-=Math.round(((M=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(w=t.adjustForMissingColumns(w,M,s,l)),s.barX=w,s.pointWidth=M,s.tooltipPos=e.inverted?[nF(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-w-S/2,k]:[r.left-e.plotLeft+w+S/2,nF(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(w,s.isNull?u:v,S,s.isNull?0:k)}),nU(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,g=nq(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=nZ(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&nH(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,g=nq(a.opacity,g));let u={fill:l,stroke:d,"stroke-width":p,opacity:g};return c&&(u.dashstyle=c),u}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=n1(h)&&n1(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===n7(i.overflow,a?"none":"justify"),g=this.visible&&!1!==t.visible&&n1(h)&&(t.series.forceDL||a&&!p||c||n7(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),u=t.pos();if(g&&u){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=n2({x:u[0],y:Math.round(u[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),n2(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(n4(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=n5(i.align)*(l.width-h.width),e.alignAttr.y+=n5(i.verticalAlign)*(l.height-h.height),e[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(n7(i.crop,!0)){let{x:t,y:i}=e.alignAttr;g=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:u[0],anchorY:u[1]})}o&&a&&(e.placed=!1),g||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(n9(l)&&l||n9(a)&&a||"#000000"),c=h(i),{animation:p,defer:g}=c[0],u=g?nQ(s,p,i):{defer:0,duration:0};n3(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(u),t.forEach(t=>{let a=t.dataLabels||[];he(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let l=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:g,style:u={}}=n,f,m,x,y={},b=a[h],v=!b,k;l&&(m=n1(f=n7(n[t.formatPrefix+"Format"],n.format))?n0(f,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(u.color=n7(n.color,u.color,n9(i.color)?i.color:void 0,"#000000"),"contrast"===u.color?("none"!==c&&(k=c),t.contrastColor=r.getContrast("auto"!==k&&k||t.color||i.color),u.color=k||!n1(g)&&n.inside||0>ht(g||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(u.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),n8(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&n1(m)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),l&&n1(m)&&(b?y.text=m:(b=r.label(m,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?u.width&&b.css({width:u.width,textOverflow:u.textOverflow,whiteSpace:u.whiteSpace}):b.css(u).shadow(n.shadow),n3(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[h]&&a[h]!==b&&a[h].destroy(),a[h]=b))});let h=a.length;for(;h--;)a[h]&&a[h].isActive?a[h].isActive=!1:(a[h]?.destroy(),a.splice(h,1));t.dataLabel=a[0],t.dataLabels=a})),n3(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,g=p?p.top-a.plotTop:0,{x:u=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===n&&u>=0?(e.align="left",e.inside=!0):u-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&("left"===n&&u<=0?(e.align="right",e.inside=!0):u+=a.plotWidth-m,x=!0),(m=i.y+l+g)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+g)>a.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=u,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(n6(t)&&!n6(e))i=t.map(function(t){return n4(t,e)});else if(n6(e)&&!n6(t))i=e.map(function(e){return n4(t,e)});else if(n6(t)||n6(e)){if(n6(t)&&n6(e))for(s=Math.max(t.length,e.length);s--;)i[s]=n4(t[s],e[s])}else i=n4(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return he(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=l,n.hasDataLabels=e)}}(u||(u={}));let hi=u,{composed:hs}=w,{series:ho}=rl,{merge:hr,pick:ha,pushUnique:hn}=Z;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,h=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=ha(t.below,t.plotY>ha(this.translatedThreshold,h)),c=ha(i.inside,!!this.options.stacking);if(l){if(s=hr(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}),hf(hx.prototype,{drawTracker:hp.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hu(hx,"afterTranslate",function(){this.applyJitter()}),rl.registerSeriesType("scatter",hx);let{deg2rad:hy}=w,{fireEvent:hb,isNumber:hv,pick:hk,relativeLength:hM}=Z;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let g=[hk(r?.[0],"50%"),hk(r?.[1],"50%"),hk(l&&l<0?void 0:t.size,"100%"),hk(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rG||(g[3]=0),c=0;c<4;++c)p=g[c],h=c<2||2===c&&/%$/.test(p),g[c]=hM(p,[s,o,a,g[2]][c])+(h?i:0);return g[3]>g[2]&&(g[3]=g[2]),hv(n)&&2*n0&&(g[3]=g[2]-2*n),hb(this,"afterGetCenter",{positions:g}),g},t.getStartAndEndRadians=function(t,e){let i=hv(t)?t:0,s=hv(e)&&e>i&&e-i<360?e:i+360;return{start:hy*(i+-90),end:hy*(s+-90)}}}(m||(m={}));let hw=m,{setAnimation:hS}=tW,{addEvent:hA,defined:hT,extend:hC,isNumber:hO,pick:hP,relativeLength:hE}=Z;class hL extends oX{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hA(this,"select",s),hA(this,"unselect",s)}isValid(){return hO(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hS(i,s.chart),e=hP(e,!0),this.sliced=this.options.sliced=t=hT(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hC(hL.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,g="left"===t.alignment,{x:u,y:f}=t,m=o.x;if(i.crookDistance){let t=hE(i.crookDistance,1);m=g?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",u,f]];return(g?m<=u&&m>=o.x:m>=u&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hD}=hw,{noop:hI}=w,{clamp:hB,extend:hz,fireEvent:hR,merge:hN,pick:hW}=Z;class hH extends rG{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hW(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:e5.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(hB((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||hN(!0,n,i),hN(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hR(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hD(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,g,u,f,m=0;for(t||(this.center=t=this.getCenter()),u=0;u1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,g=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*g],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}hR(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hH.defaultOptions=hN(rG.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hz(hH.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:nJ.prototype.drawTracker,getCenter:hw.getCenter,getSymbol:hI,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:nJ.prototype.pointAttribs,pointClass:hL,requireSorting:!1,searchPoint:hI,trackerGroups:["group","dataLabelsGroup"]}),rl.registerSeriesType("pie",hH);let{composed:hX,noop:hF}=w,{distribute:hG}=el,{series:hY}=rl,{arrayMax:hj,clamp:hU,defined:hV,pick:h$,pushUnique:hZ,relativeLength:hq}=Z;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,g=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*g,y:p+d*g},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,g,u,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),hY.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=hq(o?.distance||0,s);0===i&&d[t.half].push(t),!hV(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,g=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},g.push(t.distributeBox))})}),hG(g,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,M=0,w=y,S="inherit";if(x){if(g&&hV(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,w=p.radialDistributionY(i,l))),d.justify)M=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":M=p.alignToConnectors(e,a,s,r);break;case"plotEdges":M=p.alignToPlotEdges(l,a,s,r);break;default:M=p.radialDistributionX(t,i,w-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:M+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:w+(d.y||0)-v/2},x.computed.x=M,x.computed.y=w-k,h$(d.crop,!0)){let t;M-(u=l.getBBox().width)s-b&&0===a&&(t=Math.round(M+u-s+b),c[1]=Math.max(t,c[1])),w-f/2<0?c[0]=Math.max(Math.round(-w+f/2),c[0]):w+f/2>o&&(c[2]=Math.max(Math.round(w+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===hj(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;g=s.connector,a&&a.distance>0?(n=!g,g||(s.connector=g=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||g.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),g[n?"attr":"animate"]({d:e.getConnectorPath(s)}),g.attr({visibility:a.attribs?.visibility})):g&&(s.connector=g.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=hU(r,o,e[2]-Math.max(t[0],t[2])):(r=hU(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(y||(y={}));let{pointInPolygon:hK}=y,{addEvent:hJ,fireEvent:hQ,objectEach:h0,pick:h1}=Z;function h2(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(hK({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{h0(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=h1(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,h3(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let h6={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=h2,hJ(t,"render",h5))}},{defaultOptions:h9}=tx,{noop:h4}=w,{addEvent:h8,extend:h7,isObject:lt,merge:le,relativeLength:li}=Z,ls={radius:0,scope:"stack",where:void 0},lo=h4,lr=h4;function la(t,e,i,s,o={}){let r=lo(t,e,i,s,o),{innerR:a=0,r:n=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(li(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),g=Math.min(p,d/Math.PI*2*a),u=r.length-1;for(;u--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,g=n?a-i:a+i,u=g?Math.asin(i/g):0,f=n?u:-u,m=Math.cos(u)*g;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?g:p);return r}function ln(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=h9.plotOptions?.[this.type]?.borderRadius,o=lh(t.borderRadius,lt(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,g=o.where;!g&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(g="all"),g||(g="end");let u=Math.min(li(o.radius,n),n/2,"all"===g?h/2:1/0)||0;"end"===g&&(p&&(d-=u),c+=u),h7(a,{brBoxHeight:c,brBoxY:d,r:u})}}}}function lh(t,e){return lt(t)||(t={radius:t||0}),le(ls,e,t)}function ll(){let t=lh(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=li(t.radius,(i.r||0)-(i.innerR||0)))}}function ld(t,e,i,s,o={}){let r=lr(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,g=Math.max(c&&l,0),u=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],M=[t,e+c],w=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(g){let t=w(c,c-g);f[0]-=t,m[0]+=t,x[1]=M[1]=e+c-g}if(s=lf(i.minWidth,0)&&this.chartHeight>=lf(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=lm()),this.matchResponsiveRule(t,o)},this);let a=lu(...o.map(t=>lg((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lc(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lp(s,{matchResponsiveRule:e,setResponsive:i}),t}}(b||(b={}));let lx=b;w.AST=tJ,w.Axis=sR,w.Chart=aF,w.Color=tM,w.DataLabel=hi,w.DataTableCore=rt,w.Fx=tC,w.HTMLElement=iq,w.Legend=ae,w.LegendSymbol=ro,w.OverlappingDataLabels=w.OverlappingDataLabels||h6,w.PlotLineOrBand=s9,w.Point=oX,w.Pointer=o6,w.RendererRegistry=eo,w.Series=rG,w.SeriesRegistry=rl,w.StackItem=a4,w.SVGElement=eY,w.SVGRenderer=iR,w.Templating=es,w.Tick=sr,w.Time=tc,w.Tooltip=ov,w.animate=tW.animate,w.animObject=tW.animObject,w.chart=aF.chart,w.color=tM.parse,w.dateFormat=es.dateFormat,w.defaultOptions=tx.defaultOptions,w.distribute=el.distribute,w.format=es.format,w.getDeferredAnimation=tW.getDeferredAnimation,w.getOptions=tx.getOptions,w.numberFormat=es.numberFormat,w.seriesType=rl.seriesType,w.setAnimation=tW.setAnimation,w.setOptions=tx.setOptions,w.stop=tW.stop,w.time=tx.defaultTime,w.timers=tC.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;h8(t,"afterColumnTranslate",ln,{order:9}),h8(s,"afterTranslate",ll),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),lo=o.arc,lr=o.roundedRect,o.arc=la,o.roundedRect=ld}},optionsToObject:lh}).compose(w.Series,w.SVGElement,w.SVGRenderer),hh.compose(w.Series.types.column),hi.compose(w.Series),sF.compose(w.Axis),iq.compose(w.SVGRenderer),ae.compose(w.Chart),sU.compose(w.Axis),h6.compose(w.Chart),h_.compose(w.Series.types.pie),s9.compose(w.Chart,w.Axis),o6.compose(w.Chart),lx.compose(w.Chart),aQ.compose(w.Axis,w.Chart,w.Series),nx.compose(w.Axis,w.Chart,w.Series),ov.compose(w.Pointer),Z.extend(w,Z);let{isTouchDevice:ly}=w,{addEvent:lb,merge:lv,pick:lk}=Z,lM=[];function lw(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function lS(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:a}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+a):(o.left=lk(e.left,this.plotLeft+a),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+lk(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function lA(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this),lk(t.redraw,!0)&&this.redraw(t.animation))}function lT(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this))}function lC(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!ly&&"x"===this.zooming.type||ly&&"x"===this.zooming.pinchType))return!1}function lO(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function lP(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(lv(!0,this.options.navigator,e),lv(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let lE={compose:function(t,e){if(Z.pushUnique(lM,t)){let s=t.prototype;i=e,s.callbacks.push(lO),lb(t,"afterAddSeries",lw),lb(t,"afterSetChartSize",lS),lb(t,"afterUpdate",lA),lb(t,"beforeRender",lT),lb(t,"beforeShowResetZoom",lC),lb(t,"update",lP)}}},{isTouchDevice:lL}=w,{addEvent:lD,correctFloat:lI,defined:lB,isNumber:lz,pick:lR}=Z;function lN(){this.navigatorAxis||(this.navigatorAxis=new lH(this))}function lW(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,a=i.zooming.pinchType,n=s.rangeSelector,h=i.zooming.type;if(this.isXAxis&&(o?.enabled||n?.enabled)){if("y"===h&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===h||lL&&"xy"===a)&&this.options.range){let e=r.previousZoom;lB(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class lH{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),lD(t,"init",lN),lD(t,"setExtremes",lW))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,a=lR(i,o.translate(t,!0,!o.horiz)),n=lR(s,o.translate(e,!0,!o.horiz));return lB(i)||(a=lI(a+r)),lB(s)||(n=lI(n-r)),lz(a)&&lz(n)||(a=n=void 0),{min:a,max:n}}}let{parse:lX}=tM,{seriesTypes:lF}=rl,lG={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:lX("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===lF.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{relativeLength:lY}=Z,lj={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,a=lY(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...e5.rect(-r-1,.5,2*r+1,s,{r:a})]}},{defined:lU}=Z,{setOptions:lV}=tx,{composed:l$}=w,{getRendererType:lZ}=eo,{setFixedRange:lq}={setFixedRange:function(t){let e=this.xAxis[0];lU(e.dataMax)&&lU(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{addEvent:l_,extend:lK,pushUnique:lJ}=Z;function lQ(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let l0={compose:function(t,e,i){lH.compose(e),lJ(l$,"Navigator")&&(t.prototype.setFixedRange=lq,lK(lZ().prototype.symbols,lj),l_(i,"afterUpdate",lQ),lV({navigator:lG}))}},{composed:l1}=w,{addEvent:l2,defined:l3,pick:l5,pushUnique:l6}=Z;!function(t){let e;function i(t){let e=l5(t.options&&t.options.min,t.min),i=l5(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:l3(t.dataMin)?Math.min(e,t.min,t.dataMin,l5(t.threshold,1/0)):e,scrollMax:l3(t.dataMax)?Math.max(i,t.max,t.dataMax,l5(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),l2(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:a,scrollMin:n,scrollMax:h}=i(t),l=h-n;if(l3(r)&&l3(a)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=n+l*this.to,o=n+l*this.from):(s=n+l*(1-this.from),o=n+l*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),a=this.scrollbar,n=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(a&&h){if(this.horiz)this.opposite||(h[1]+=n),a.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let e;this.opposite&&(h[0]+=n),e=a.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,a.position(e,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=a.size+(a.options.margin||0),isNaN(o)||isNaN(r)||!l3(this.min)||!l3(this.max)||this.dataMin===this.dataMax)a.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),a.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?a.setRange(e,s):a.setRange(1-s,1-e)}}t.compose=function(t,i){l6(l1,"Axis.Scrollbar")&&(e=i,l2(t,"afterGetOffset",s),l2(t,"afterInit",o),l2(t,"afterRender",r))}}(v||(v={}));let l9=v,l4={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:l8}=tx,{addEvent:l7,correctFloat:dt,crisp:de,defined:di,destroyObjectProperties:ds,fireEvent:dr,merge:da,pick:dn,removeEvent:dh}=Z;class dl{static compose(t){l9.compose(t,dl)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,ds(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let a=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||a.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),a.attr(a.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},a.strokeWidth()));let n=e.path(dl.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=da(l4,l8.scrollbar,e),this.options.margin=dn(this.options.margin,10),this.chart=i,this.size=dn(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&dr(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&dr(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:a}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=h,this.yOffset=l,a?(this.width=this.yOffset=i=l=this.size,this.xOffset=h=0,this.yOffset=l=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:i,height:s}),this.scrollbarButtons[1][n]({translateX:a?0:i-h,translateY:a?s-l:0})}removeEvents(){this._events.forEach(function(t){dh.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-de(0,r),y:-de(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(dl.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-de(0,this.scrollbarStrokeWidth),-de(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,a=o.minWidth,n=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!di(n))return;let l=n*Math.min(e,1);i=Math.ceil(n*(t=Math.max(t,0))),this.calculatedWidth=s=dt(l-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return dn(this.options.liveRedraw,w.svg&&!w.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!di(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),dr(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,da(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=dt(1-dt(e-t)),e=1),t<0&&(e=dt(e-t),t=0),this.from=t,this.to=e}}dl.defaultOptions=l4,l8.scrollbar=da(!0,dl.defaultOptions,l8.scrollbar);let{defaultOptions:dd}=tx,{isTouchDevice:dc}=w,{prototype:{symbols:dp}}=iR,{addEvent:dg,clamp:du,correctFloat:df,defined:dm,destroyObjectProperties:dx,erase:dy,extend:db,find:dv,fireEvent:dk,isArray:dM,isNumber:dw,merge:dS,pick:dA,removeEvent:dT,splat:dC}=Z;function dO(t,...e){let i=[].filter.call(e,dw);if(i.length)return Math[t].apply(0,i)}class dP{static compose(t,e,i){lE.compose(t,dP),l0.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),a=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,p=d-a,g=d+c,u=this.left,f,m;i?(f=d+e+n,e=d+t+n,m=[["M",u+c,d-h-n],["L",u+c,f],["L",u,f],["M",u,e],["L",u+c,e],["L",u+c,d+l+h]],o&&m.push(["M",u+c,f-a],["L",u+c,e+a])):(u-=h,t+=u+h-n,e+=u+h-n,m=[["M",u,p],["L",t,p],["L",t,g],["M",e,g],["L",e,p],["L",u+l+2*h,p]],o&&m.push(["M",t-a,p],["L",e+a,p])),this.outline[s]({d:m})}drawMasks(t,e,i,s){let o,r,a,n;let h=this.left,l=this.top,d=this.height;i?(a=[h,h,h],n=[l,l+t,l+e],r=[d,d,d],o=[t,e-t,this.size-e]):(a=[h,h+t,h+e],n=[l,l,l],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:a[e],y:n[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,a={cursor:o?"ns-resize":"ew-resize"},n=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let h=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(n));s.styledMode||(h.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&h.css(a))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(n)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:h}=i;[0,1].forEach(e=>{let l=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===l){if(!t.handles[e].isImg&&t.handles[e].symbolName!==l){let i=dp[l].call(dp,-h/2-1,0,h,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=l}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(l,-h/2-1,0,h,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(n),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(o+h)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-h/2-1,y:0}).css(a)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(dS(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),dm(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{dT(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(dg(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,a=r.pointRange||0,n=r.navigatorAxis.fake?o.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,g=this.scrollButtonSize,u,f,m,x=this.scrollbarHeight,y,b;if(this.hasDragged&&!dm(i))return;if(this.isDirty&&this.renderElements(),t=df(t-a/2),e=df(e+a/2),!dw(t)||!dw(e)){if(!l)return;i=0,s=dA(r.width,n.width)}this.left=dA(r.left,o.plotLeft+g+(d?o.plotWidth:0));let v=this.size=y=dA(r.len,(d?o.plotHeight:o.plotWidth)-2*g);u=d?x:y+2*g,i=dA(i,r.toPixels(t,!0)),s=dA(s,r.toPixels(e,!0)),dw(i)&&Math.abs(i)!==1/0||(i=0,s=u);let k=r.toValue(i,!0),M=r.toValue(s,!0),w=Math.abs(df(M-k));wp&&(this.grabbedLeft?i=r.toPixels(M-p-a,!0):this.grabbedRight&&(s=r.toPixels(k+p+a,!0))),this.zoomedMax=du(Math.max(i,s),0,v),this.zoomedMin=du(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let S=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),b=l&&!this.hasDragged?"animate":"attr",this.drawMasks(S,v,d,b),this.drawOutline(S,v,d,b),this.navigatorOptions.handles.enabled&&(this.drawHandle(S,0,d,b),this.drawHandle(v,1,d,b))),this.scrollbar&&(d?(m=this.top-g,f=this.left-x+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),x=y+2*g):(m=this.top+(h?this.height:-x),f=this.left-g),this.scrollbar.position(f,m,u,x),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,this.isDirty=!1,dk(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(dg(e.renderTo,"mousemove",o),dg(i.ownerDocument,"mouseup",r),dg(e.renderTo,"touchmove",o),dg(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(dg(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(dg(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,a=this.range,n=this.left,h=t.chartX,l,d,c,p;i.inverted&&(h=t.chartY,n=this.top),1===e?(this.grabbedCenter=h,this.fixedWidth=a,this.dragOffset=h-o):(p=h-n-a/2,0===e?p=Math.max(0,p):2===e&&p+a>=r&&(p=r-a,this.reversedExtremes?(p-=a,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=a,dm((c=s.navigatorAxis.toFixedRange(p,p+a,d,l)).min)&&dk(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,a=i.inverted,n=e.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=i.pointer?.normalize(t)||t).chartX,a&&(n=e.top,h=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,h-n,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,h-n)):e.grabbedCenter&&(e.hasDragged=!0,hs+r-o&&(h=s+r-o),e.render(0,0,h-r,h-r+o)),e.hasDragged&&e.scrollbar&&dA(e.scrollbar.options.liveRedraw,!dc&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,a;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),dm((a=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&dk(this,"setRange",{min:Math.min(a.min,a.max),max:Math.max(a.min,a.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&dw(this.zoomedMin)&&dw(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){dT(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&dT(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,a=s&&i.height||0,n=r&&o.height||0,h=o.buttonsEnabled&&n||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=a,this.scrollbarHeight=n,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,p=t.yAxis.length,g=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let e=this.getXAxisOffsets();l.xAxis=new sR(t,dS({breaks:g.options.breaks,ordinal:g.options.ordinal,overscroll:g.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:g.options.ordinal?0:g.options.minPadding,maxPadding:g.options.ordinal?0:g.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:a}:{offsets:e,height:a}),"xAxis"),l.yAxis=new sR(t,dS(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:dA(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:a}:{height:a}),"yAxis"),d||i.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=dg(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*h,a=dO("min",s.options.min,o.dataMin),n=dO("max",s.options.max,o.dataMax)-a;return i?e*n/r+a:r*(e-a)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=lH.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=dS(t.options.scrollbar,{vertical:t.inverted});!dw(e.margin)&&l.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new dl(t.renderer,e,t),dg(l.scrollbar,"changed",function(t){let e=l.size,i=e*this.to,s=e*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=dA(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,a=i.options;return t&&null===i.dataMin||(e={dataMin:dA(s.parse(r?.min),dO("min",s.parse(a.min),i.dataMin,o.dataMin,o.min)),dataMax:dA(s.parse(r?.max),dO("max",s.parse(a.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?dv(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},a=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(dT(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),n,h,l=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=db({color:t.color,visible:t.visible},dM(l)?dd.navigator.series:l);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(n=t.options||{}).navigatorOptions||{},p.dataLabels=dC(p.dataLabels),(h=dS(n,r,p,d)).pointRange=dA(p.pointRange,d.pointRange,dd.plotOptions[h.type||"line"].pointRange);let g=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!g,h.data=g||n.data?.slice(0),c&&c.options?c.update(h,e):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,a.push(t.navigatorSeries))}),(l.data&&!(o&&o.length)||dM(l))&&(i.hasNavigatorData=!1,(l=dC(l)).forEach((t,e)=>{r.name="Navigator "+(a.length+1),(h=dS(dd.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,h.data&&(i.hasNavigatorData=!0,a.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(dg(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(dg(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(dg(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(dg(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(dg(i,"remove",function(){e&&dy(e,i),this.navigatorSeries&&t.series&&(dy(t.series,this.navigatorSeries),dm(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,a=s.dataMin,n=s.dataMax,h=r-o,l=i.stickToMin,d=i.stickToMax,c=dA(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],g=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(e=a)+h),d&&(t=n+c,l||(e=Math.max(a,t-h,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),g&&(l||d)&&dw(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=dA(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,a=s.options.range;return!!(dw(o)&&dw(r))&&(a&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{dx(t)}),this.navigatorEnabled=!1}}let dE={chart:{height:70,margin:[0,5,0,5]},exporting:{enabled:!1},legend:{enabled:!1},navigator:{enabled:!1},plotOptions:{series:{states:{hover:{enabled:!1}},marker:{enabled:!1}}},scrollbar:{enabled:!1},title:{text:""},tooltip:{enabled:!1},xAxis:{visible:!1},yAxis:{height:0,visible:!1}},{merge:dL,addEvent:dD,fireEvent:dI,pick:dB}=Z;class dz{static navigator(t,e){let i=new dz(t,e);return w.navigators?w.navigators.push(i):w.navigators=[i],i}constructor(t,e){this.boundAxes=[],this.userOptions=e,this.chartOptions=dL(w.getOptions(),dE,{navigator:e}),this.chartOptions.chart&&e.height&&(this.chartOptions.chart.height=e.height);let i=new aF(t,this.chartOptions);i.options=dL(i.options,{navigator:{enabled:!0},scrollbar:{enabled:!0}}),this.chartOptions.navigator&&this.chartOptions.scrollbar&&(this.chartOptions.navigator.enabled=!0,this.chartOptions.scrollbar.enabled=!0),this.navigator=new dP(i),i.navigator=this.navigator,this.initNavigator()}bind(t,e=!0){let i=this,s=t instanceof aF?t.xAxis[0]:t;if(!(s instanceof sR))return;let{min:o,max:r}=this.navigator.xAxis,a=[];if(e){let t=dD(s,"setExtremes",t=>{("pan"===t.trigger||"zoom"===t.trigger||"mouseWheelZoom"===t.trigger)&&i.setRange(t.min,t.max,!0,"pan"!==t.trigger,{trigger:s})});a.push(t)}let n=dD(this.navigator,"setRange",t=>{s.setExtremes(t.min,t.max,t.redraw,t.animation)});a.push(n);let h=this.boundAxes.filter(function(t){return t.axis===s})[0];h||(h={axis:s,callbacks:[]},this.boundAxes.push(h)),h.callbacks=a,s.series.forEach(t=>{t.options.showInNavigator&&i.addSeries(t.options)}),s.setExtremes(o,r),dD(s,"destroy",t=>{t.keepEvents||this.unbind(s)})}unbind(t){if(!t){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0;return}let e=t instanceof sR?t:t.xAxis[0];for(let t=this.boundAxes.length-1;t>=0;t--)this.boundAxes[t].axis===e&&(this.boundAxes[t].callbacks.forEach(t=>t()),this.boundAxes.splice(t,1))}destroy(){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0,this.navigator.destroy(),this.navigator.chart.destroy()}update(t,e){this.chartOptions=dL(this.chartOptions,t.height&&{chart:{height:t.height}},{navigator:t}),this.navigator.chart.update(this.chartOptions,e)}redraw(){this.navigator.chart.redraw()}addSeries(t){this.navigator.chart.addSeries(dL(t,{showInNavigator:dB(t.showInNavigator,!0)})),this.navigator.setBaseSeries()}initNavigator(){let t=this.navigator;t.top=1,t.xAxis.setScale(),t.yAxis.setScale(),t.xAxis.render(),t.yAxis.render(),t.series?.forEach(t=>{t.translate(),t.render(),t.redraw()});let{min:e,max:i}=this.getInitialExtremes();t.chart.xAxis[0].userMin=e,t.chart.xAxis[0].userMax=i,t.render(e,i)}getRange(){let{min:t,max:e}=this.navigator.chart.xAxis[0].getExtremes(),{userMin:i,userMax:s,min:o,max:r}=this.navigator.xAxis.getExtremes();return{min:dB(t,o),max:dB(e,r),dataMin:o,dataMax:r,userMin:i,userMax:s}}setRange(t,e,i,s,o){dI(this.navigator,"setRange",{min:t,max:e,redraw:i,animation:s,eventArguments:dL(o,{trigger:"navigator"})})}getInitialExtremes(){let{min:t,max:e}=this.navigator.xAxis.getExtremes();return{min:t,max:e}}}w.StandaloneNavigator=w.StandaloneNavigator||dz,w.navigator=w.StandaloneNavigator.navigator,l0.compose(w.Chart,w.Axis,w.Series);let dR=w;return M.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?(t._Highcharts=e(),module.exports=t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/highcharts",[],e):"object"==typeof exports?(t._Highcharts=e(),exports.highcharts=t._Highcharts):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=e())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let t,e,i;var s,o,r,a,n,h,l,d,c,p,g,u,f,m,x,y,b,v,k={};k.d=(t,e)=>{for(var i in e)k.o(e,i)&&!k.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},k.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var M={};k.d(M,{default:()=>dW}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.1.0",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=t.doc&&t.doc.createElementNS&&!!t.doc.createElementNS(t.SVG_NS,"svg").createSVGRect,t.userAgent=t.win.navigator&&t.win.navigator.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(s||(s={}));let w=s,{charts:S,doc:A,win:T}=w;function C(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=B(t),a=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(a+="?"),j(s,function(e,i){t+=` + - ${i}: ${e}`,r&&(a+=encodeURI(i)+"="+encodeURI(e))}),a+=t}V(w,"displayError",{chart:i,code:t,message:a,params:s},function(){if(e)throw Error(a);T.console&&-1===C.messages.indexOf(a)&&console.warn(a)}),C.messages.push(a)}function O(t,e){return parseInt(t,e||10)}function P(t){return"string"==typeof t}function E(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function L(t,e){return!!t&&"object"==typeof t&&(!e||!E(t))}function D(t){return L(t)&&"number"==typeof t.nodeType}function I(t){let e=t&&t.constructor;return!!(L(t,!0)&&!D(t)&&e&&e.name&&"Object"!==e.name)}function B(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function z(t){return null!=t}function R(t,e,i){let s;let o=P(e)&&!z(i),r=(e,i)=>{z(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return P(e)?r(i,e):j(e,r),s}function N(t){return E(t)?t:[t]}function W(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function H(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(C||(C={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let Y=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),s.forEach(e=>{!1===e.fn.call(t,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(t,i)}let $=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();T.jQuery&&(T.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new w[P(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):S[R(this[0],"data-highcharts-chart")]});let Z={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;w.Point&&t instanceof w.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let a=t.addEventListener;a&&a.call(t,e,i,!!w.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let n={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(n),r[e].sort((t,e)=>t.order-e.order),function(){U(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[h]){i=N(i),r[h]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1})[t]||0,getClosestDistance:function(t,e){let i,s,o,r;let a=!e;return t.forEach(t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!a?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=T.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),H(s,"opacity"!==i)&&(o=O(o))),o},insertItem:function(t,e){let i;let s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(n<=(e[r]+(e[r+1]||e[r]))/2)));r++);return G(a*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:j,offset:function(t){let e=A.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(T.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(T.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:H,pInt:O,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:U,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:N,stableSort:function(t,e){let i,s;let o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return P(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:$,useSerialIds:function(e){return t=H(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{win:q}=w,{defined:_,error:K,extend:J,isNumber:Q,isObject:tt,isString:te,merge:ti,objectEach:ts,pad:to,splat:tr,timeUnits:ta,ucfirst:tn}=Z,th=w.isSafari&&q.Intl&&!q.Intl.DateTimeFormat.prototype.formatRange,tl=t=>void 0===t.main,td=t=>["D","L","M","X","J","V","S"].indexOf(t),tc=class{constructor(t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=q.Date,this.update(t)}update(t={}){this.dTLCache={},this.options=t=ti(!0,this.options,t);let{timezoneOffset:e,useUTC:i}=t;this.Date=t.Date||q.Date||Date;let s=t.timezone;_(i)&&(s=i?"UTC":void 0),e&&e%60==0&&(s="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==s&&s?.indexOf("Etc/GMT")!==0,this.timezone=s,["months","shortMonths","weekdays","shortWeekdays"].forEach(t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(t=>this.dateFormat(s,(e?31:1)*24*36e5*t))})}toParts(t){let[e,i,s,o,r,a,n]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, |\/|:)/g);return[o,+s-1,i,r,a,n,Math.floor(Number(t)||0)%1e3,td(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale){let s=JSON.stringify(t)+i;te(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(K(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):K(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==t.indexOf(s)&&J(e,i[s])}),e}makeTime(t,e,i=1,s=0,o,r,a){let n=this.Date.UTC(t,e,i,s,o||0,r||0,a||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(n);if(n+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(n);t!==e?n+=e-t:t-36e5!==this.getTimezoneOffset(n-36e5)||th||(n-=36e5)}}return n}parse(t){if(!te(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(t);e||i||(t+="Z");let s=Date.parse(t);if(Q(s))return s+(!e||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),a=-(36e5*(s+r/60));if(Q(a))return a}return 0}dateFormat(t,e,i){let s=w.defaultOptions?.lang;if(!_(e)||isNaN(e))return s?.invalidDate||"";if(te(t=t??"%Y-%m-%d %H:%M:%S")){let i;let s=/%\[([a-zA-Z]+)\]/g;for(;i=s.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e))}if(te(t)&&-1!==t.indexOf("%")){let i=this,[o,r,a,n,h,l,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,g=s?.shortWeekdays||this.shortWeekdays,u=s?.months||this.months,f=s?.shortMonths||this.shortMonths;ts(J({a:g?g[c]:p[c].substr(0,3),A:p[c],d:to(a),e:to(a,2," "),w:c,b:f[r],B:u[r],m:to(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:to(n),k:n,I:to(n%12||12),l:n%12||12,M:to(h),p:n<12?"AM":"PM",P:n<12?"am":"pm",S:to(l),L:to(d,3)},w.dateFormats),function(s,o){if(te(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)})}else if(tt(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(J({timeZone:s},t),e)+r}return i?tn(t):t}resolveDTLFormat(t){return tt(t,!0)?tt(t,!0)&&tl(t)?{main:t}:t:{main:(t=tr(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,s){let o=this,r=[],a={},{count:n=1,unitRange:h}=t,[l,d,c,p,g,u]=o.toParts(e),f=(e||0)%1e3,m;if(s??(s=1),_(e)){if(f=h>=ta.second?0:n*Math.floor(f/n),h>=ta.second&&(u=h>=ta.minute?0:n*Math.floor(u/n)),h>=ta.minute&&(g=h>=ta.hour?0:n*Math.floor(g/n)),h>=ta.hour&&(p=h>=ta.day?0:n*Math.floor(p/n)),h>=ta.day&&(c=h>=ta.month?1:Math.max(1,n*Math.floor(c/n))),h>=ta.month&&(d=h>=ta.year?0:n*Math.floor(d/n)),h>=ta.year&&(l-=l%n),h===ta.week){n&&(e=o.makeTime(l,d,c,p,g,u,f));let t=td(this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"));c+=-t+s+(t4*ta.month||o.getTimezoneOffset(e)!==o.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=o.makeTime(l,d,c,p+x*n):t+=h*n,x++;r.push(t),h<=ta.hour&&r.length<1e4&&r.forEach(t=>{t%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",t)&&(a[t]="day")})}return r.info=J(t,{higherRanks:a,totalRange:h*n}),r}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",a={millisecond:15,second:12,minute:9,hour:6,day:3},n="millisecond",h=n;for(n in ta){if(t===ta.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){n="week";break}if(ta[n]>t){n=h;break}if(a[n]&&o.substr(a[n])!==r.substr(a[n]))break;"week"!==n&&(h=n)}return this.resolveDTLFormat(s[n]).main}},{isTouchDevice:tp}=w,{fireEvent:tg,merge:tu}=Z,tf={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{locale:void 0,loading:"Loading...",months:void 0,shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"Week from %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:tp?25:10,headerFormat:'{ucfirst point.key}
    ',pointFormat:' {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};tf.chart.styledMode=!0,tf.chart.styledMode=!1;let tm=new tc(tf.time),tx={defaultOptions:tf,defaultTime:tm,getOptions:function(){return tf},setOptions:function(t){return tg(w,"setOptions",{options:t}),tu(!0,tf,t),t.time&&tm.update(tf.time),t.lang&&"locale"in t.lang&&tm.update({locale:t.lang.locale}),tf}},{isNumber:ty,merge:tb,pInt:tv,defined:tk}=Z;class tM{static parse(t){return t?new tM(t):tM.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=w.Color;if(r&&r!==tM)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map(t=>new tM(t[1]));else if("string"==typeof t)for(this.input=t=tM.names[t.toLowerCase()]||t,s=tM.parsers.length;s--&&!i;)(e=(o=tM.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if("object"==typeof e&&void 0!==this.stops){let i=tb(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return i&&ty(i[0])?"rgb"!==t&&(t||1!==i[3])?"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":"rgb("+i[0]+","+i[1]+","+i[2]+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(ty(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=tv(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!ty(i[0])||!ty(s[0]))return t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),a=s.slice(0,3).map(r).map(Math.round);return o&&a.push(r(s[3],3)),(o?"rgba(":"rgb(")+a.join(",")+")"}}tM.names={white:"#ffffff",black:"#000000"},tM.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[tv(t[1]),tv(t[2]),tv(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[tv(t[1]),tv(t[2]),tv(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[tv(t[1]+t[1],16),tv(t[2]+t[2],16),tv(t[3]+t[3],16),tk(t[4])?tv(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[tv(t[1],16),tv(t[2],16),tv(t[3],16),tk(t[4])?tv(t[4],16)/255:1]}}],tM.None=new tM("");let{parse:tw}=tM,{win:tS}=w,{isNumber:tA,objectEach:tT}=Z;class tC{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,o=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=n+this.startTime?(this.now=this.end,this.pos=1,this.update(),h[this.prop]=!0,i=!0,tT(h,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,o=t.endX,r=i.slice(),a=t.isArea,n=a?2:1,h=e&&i.length>e.length&&i.hasStackedCliffs,l,d,c,p,g=e&&e.slice();if(!g||h)return[r,r];function u(t,e){for(;t.length{let i=tR(t.options.animation);r=tD(e)&&tO(e.defer)?s.defer:Math.max(r,i.duration+i.defer),a=Math.min(s.duration,i.duration)}),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-a),duration:Math.min(r,a)}},setAnimation:function(t,e){e.renderer.globalAnimation=tz(t,e.options.chart.animation,!0)},stop:tN},{SVG_NS:tH,win:tX}=w,{attr:tF,createElement:tG,css:tY,error:tj,isFunction:tU,isString:tV,objectEach:t$,splat:tZ}=Z,{trustedTypes:tq}=tX,t_=tq&&tU(tq.createPolicy)&&tq.createPolicy("highcharts",{createHTML:t=>t}),tK=t_?t_.createHTML(""):"";class tJ{static filterUserAttributes(t){return t$(t,(e,i)=>{let s=!0;-1===tJ.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=tV(e)&&tJ.allowedReferences.some(t=>0===e.indexOf(t))),s||(tj(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),tV(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(":")),t},{})}static setElementHTML(t,e){t.innerHTML=tJ.emptyHTML,e&&new tJ(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return tZ(e).forEach(function(e){let o;let r=e.tagName,a=e.textContent?w.doc.createTextNode(e.textContent):void 0,n=tJ.bypassHTMLFiltering;if(r){if("#text"===r)o=a;else if(-1!==tJ.allowedTags.indexOf(r)||n){let s="svg"===r?tH:i.namespaceURI||tH,h=w.doc.createElementNS(s,r),l=e.attributes||{};t$(e,function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(l[e]=t)}),tF(h,n?l:tJ.filterUserAttributes(l)),e.style&&tY(h,e.style),a&&h.appendChild(a),t(e.children||[],h),o=h}else tj(33,!1,void 0,{"Invalid tagName in config":r})}o&&i.appendChild(o),s=o}),s}(this.nodes,t)}parseMarkup(t){let e;let i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=new DOMParser().parseFromString(t_?t_.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=tG("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,e=>{"data-style"===e.name?o.style=tJ.parseStyle(e.value):t[e.name]=e.value}),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}tJ.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],tJ.allowedReferences=["https://","http://","mailto:","/","../","./","#"],tJ.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],tJ.emptyHTML=tK,tJ.bypassHTMLFiltering=!1;let{defaultOptions:tQ,defaultTime:t0}=tx,{doc:t1}=w,{extend:t2,getNestedProperty:t3,isArray:t5,isNumber:t6,isObject:t9,isString:t4,pick:t8,ucfirst:t7}=Z,et={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!t5(t)&&t.map((i,s)=>es(e.body,t2(t9(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1}))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:t7,unless:t=>!t},ee={},ei=t=>/^["'].+["']$/.test(t);function es(t="",e,i){let s=/\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu,o=/\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu,r=[],a=/f$/,n=/\.(\d)/,h=i?.options.lang||tQ.lang,l=i&&i.time||t0,d=i&&i.numberFormatter||eo,c=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:ei(t)?t.slice(1,-1):t3(t,e))},p,g,u=0,f;for(;null!==(p=s.exec(t));){let i=p,s=o.exec(p[1]);s&&(p=s,f=!0),g&&g.isBlock||(g={ctx:e,expression:p[1],find:p[0],isBlock:"#"===p[1].charAt(0),start:p.index,startInner:p.index+p[0].length,length:p[0].length});let a=(g.isBlock?i:p)[1].split(" ")[0].replace("#","");et[a]&&(g.isBlock&&a===g.fn&&u++,g.fn||(g.fn=a));let n="else"===p[1];if(g.isBlock&&g.fn&&(p[1]===`/${g.fn}`||n)){if(u)!n&&u--;else{let e=g.startInner,i=t.substr(e,p.index-e);void 0===g.body?(g.body=i,g.startInner=p.index+p[0].length):g.elseBody=i,g.find+=i+p[0],n||(r.push(g),g=void 0)}}else g.isBlock||r.push(g);if(s&&!g?.isBlock)break}return r.forEach(s=>{let r,p;let{body:g,elseBody:u,expression:f,fn:m}=s;if(m){let t=[s],o=[],a=f.length,n=0,h;for(p=0;p<=a;p++){let t=f.charAt(p);h||'"'!==t&&"'"!==t?h===t&&(h=""):h=t,h||" "!==t&&p!==a||(o.push(f.substr(n,p-n)),n=p+1)}for(p=et[m].length;p--;)t.unshift(c(o[p+1]));r=et[m].apply(e,t),s.isBlock&&"boolean"==typeof r&&(r=es(r?g:u,e,i))}else{let t=ei(f)?[f]:f.split(":");if(r=c(t.shift()||""),t.length&&"number"==typeof r){let e=t.join(":");if(a.test(e)){let t=parseInt((e.match(n)||["","-1"])[1],10);null!==r&&(r=d(r,t,h.decimalPoint,e.indexOf(",")>-1?h.thousandsSep:""))}else r=l.dateFormat(e,r)}o.lastIndex=0,o.test(s.find)&&t4(r)&&(r=`"${r}"`)}t=t.replace(s.find,t8(r,""))}),f?es(t,e,i):t}function eo(t,e,i,s){e=+e;let o,r,[a,n]=(t=+t||0).toString().split("e").map(Number),h=this?.options?.lang||tQ.lang,l=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=h.decimalPoint),s??(s=h.thousandsSep),-1===e?e=Math.min(l,20):t6(e)?e&&n<0&&((r=e+n)>=0?(a=+a.toExponential(r).split("e")[0],e=r):(a=Math.floor(a),t=e<20?+(a*Math.pow(10,n)).toFixed(e):0,n=0)):e=2,n&&(e??(e=2),t=a),t6(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,g=p?"en":this?.locale||h.locale||t1.body.closest("[lang]")?.lang,u=JSON.stringify(c)+g;return o=(ee[u]??(ee[u]=new Intl.NumberFormat(g,c))).format(t),p&&(o=o.replace(/\,/g,s??",").replace(".",i??".")),(e||0!=+o)&&(!(n<0)||d)||(o="0"),n&&0!=+o&&(o+="e"+(n<0?"":"+")+n),o}let er={dateFormat:function(t,e,i){return t0.dateFormat(t,e,i)},format:es,helpers:et,numberFormat:eo};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,w.Renderer=s)}}(o||(o={}));let ea=o,{clamp:en,pick:eh,pushUnique:el,stableSort:ed}=Z;(r||(r={})).distribute=function t(e,i,s){let o=e,r=o.reducedLen||i,a=(t,e)=>t.target-e.target,n=[],h=e.length,l=[],d=n.push,c,p,g,u=!0,f,m,x=0,y;for(c=h;c--;)x+=e[c].size;if(x>r){for(ed(e,(t,e)=>(e.rank||0)-(t.rank||0)),g=(y=e[0].rank===e[e.length-1].rank)?h/2:-1,p=y?g:h-1;g&&x>r;)f=e[c=Math.floor(p)],el(l,c)&&(x-=f.size),p+=g,y&&p>=e.length&&(g/=2,p=g);l.sort((t,e)=>e-t).forEach(t=>d.apply(n,e.splice(t,1)))}for(ed(e,a),e=e.map(t=>({size:t.size,targets:[t.target],align:eh(t.align,.5)}));u;){for(c=e.length;c--;)f=e[c],m=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=en(m-f.size*f.align,0,i-f.size);for(c=e.length,u=!1;c--;)c>0&&e[c-1].pos+e[c-1].size>e[c].pos&&(e[c-1].size+=e[c].size,e[c-1].targets=e[c-1].targets.concat(e[c].targets),e[c-1].align=.5,e[c-1].pos+e[c-1].size>i&&(e[c-1].pos=i-e[c-1].size),e.splice(c,1),u=!0)}return d.apply(o,n),c=0,e.some(e=>{let r=0;return(e.targets||[]).some(()=>(o[c].pos=e.pos+r,void 0!==s&&Math.abs(o[c].pos-o[c].target)>s)?(o.slice(0,c+1).forEach(t=>delete t.pos),o.reducedLen=(o.reducedLen||i)-.1*i,o.reducedLen>.1*i&&t(o,i,s),!0):(r+=o[c].size,c++,!1))}),ed(o,a),o};let ec=r,{animate:ep,animObject:eg,stop:eu}=tW,{deg2rad:ef,doc:em,svg:ex,SVG_NS:ey,win:eb,isFirefox:ev}=w,{addEvent:ek,attr:eM,createElement:ew,crisp:eS,css:eA,defined:eT,erase:eC,extend:eO,fireEvent:eP,getAlignFactor:eE,isArray:eL,isFunction:eD,isNumber:eI,isObject:eB,isString:ez,merge:eR,objectEach:eN,pick:eW,pInt:eH,pushUnique:eX,replaceNested:eF,syncTimeout:eG,uniqueKey:eY}=Z;class ej{_defaultGetter(t){let e=eW(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o={"text-align":t?.align},r=this.renderer,a=r.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let h=!i||ez(i)?i||"renderer":void 0;h&&(n&&eX(a,this),i=void 0);let l=eW(i,r[h],r),d=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*eE(t.align),c=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*eE(t.verticalAlign);return o[e?"translateX":"x"]=Math.round(d),o[e?"translateY":"y"]=Math.round(c),s&&(this[this.placed?"animate":"attr"](o),this.placed=!0),this.alignAttr=o,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=eg(eW(e,this.renderer.globalAnimation,!0)),o=s.defer;return em.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),eG(()=>{this.element&&ep(this,t,s)},o)):(this.attr(t,void 0,i||s.complete),eN(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.split(" "),s=i[i.length-1],o=i[0];if(o&&"none"!==o&&w.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=em.createElementNS(ey,"tspan");eM(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let r=0;[].forEach.call(i.querySelectorAll("text tspan"),t=>{r+=Number(t.getAttribute("dy"))});let a=em.createElementNS(ey,"tspan");a.textContent="​",eM(a,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(a),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:o}=this,r=ej.symbolCustomAttribs,a,n,h=this,l;return"string"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,o):(eN(t,function(e,i){l=!1,s||eu(this,i),this.symbolName&&-1!==r.indexOf(i)&&(n||(this.symbolAttr(t),n=!0),l=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),l||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,o)},this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=eY()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);eO(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,a=eS(i,e),n=eS(s,e);return eO(t,{x:a,y:n,width:eS(o,e)-a,height:eS(r,e)-n}),eT(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s=this.renderer,o,r,a,n,h,l,d,c,p,g,u=[],f;eP(this.renderer,"complexColor",{args:arguments},function(){if(t.radialGradient?r="radialGradient":t.linearGradient&&(r="linearGradient"),r){if(a=t[r],h=s.gradients,l=t.stops,p=i.radialReference,eL(a)&&(t[r]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===r&&p&&!eT(a.gradientUnits)&&(n=a,a=eR(a,s.getRadialAttr(p,n),{gradientUnits:"userSpaceOnUse"})),eN(a,function(t,e){"id"!==e&&u.push(e,t)}),eN(l,function(t){u.push(t)}),h[u=u.join(",")])g=h[u].attr("id");else{a.id=g=eY();let t=h[u]=s.createElement(r).attr(a).add(s.defs);t.radAttr=n,t.stops=[],l.forEach(function(e){0===e[1].indexOf("rgba")?(d=(o=tM.parse(e[1])).get("rgb"),c=o.get("a")):(d=e[1],c=1);let i=s.createElement("stop").attr({offset:e[0],"stop-color":d,"stop-opacity":c}).add(t);t.stops.push(i)})}f="url("+s.url+"#"+g+")",i.setAttribute(e,f),i.gradient=u,t.toString=function(){return f}}})}css(t){let e=this.styles,i={},s=this.element,o,r=!e;if(e&&eN(t,function(t,s){e&&e[s]!==t&&(i[s]=t,r=!0)}),r){e&&(t=eO(e,i)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===s.nodeName.toLowerCase()&&t.width&&(o=this.textWidth=eH(t.width)),eO(this.styles,t),o&&!ex&&this.renderer.forExport&&delete t.width;let r=ev&&t.fontSize||null;r&&(eI(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let a=eR(t);s.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach(t=>a&&delete a[t]),a.color&&(a.fill=a.color)),eA(s,a)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=s.length;e--;)s[e]=""+eH(s[e])*eW(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,o="SPAN"===e.nodeName&&t.parentGroup||void 0,r,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,eu(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").indexOf(e.element.id)>-1&&t.removeAttribute("clip-path")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+" ":"")+e.join(" "):(e||"").toString(),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r;let{alignValue:a,element:n,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,g=n.namespaceURI===this.SVG_NS,u=eW(e,this.rotation,0),f=h.styledMode?n&&ej.prototype.getStyle.call(n,"font-size"):l.fontSize;if(eT(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",h.rootFontSize,f,u,this.textWidth,a,l.lineClamp,l.textOverflow,l.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(g||h.forExport){try{o=this.fakeTS&&function(t){let e=n.querySelector(".highcharts-text-outline");e&&eA(e,{display:t})},eD(o)&&o("none"),i=n.getBBox?eO({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0},eD(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,g&&(i.height=s=({"11px,17":14,"13px,20":16})[`${f||""},${Math.round(s)}`]||s),u&&(i=this.getRotatedBox(i,u));let t={bBox:i};eP(this,"afterGetBBox",t),i=t.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:a,translateY:n,rotationOriginX:h=0,rotationOriginY:l=0}=this,d=eE(a),c=Number(this.element.getAttribute("y")||0)-(n?0:s),p=e*ef,g=(e-90)*ef,u=Math.cos(p),f=Math.sin(p),m=o*u,x=o*f,y=Math.cos(g),b=Math.sin(g),[[v,k],[M,w]]=[h,l].map(t=>[t-t*u,t*f]),S=i+d*(o-m)+v+w+c*y,A=S+m,T=A-r*y,C=T-m,O=s+c-d*x-k+M+c*b,P=O+x,E=P-r*b,L=E-x,D=Math.min(S,A,T,C),I=Math.min(O,P,E,L),B=Math.max(S,A,T,C)-D,z=Math.max(O,P,E,L)-I;return{x:D,y:I,width:B,height:z,polygon:[[S,O],[A,P],[T,E],[C,L]]}}getStyle(t){return eb.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return -1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=ey,this.element="span"===e||"body"===e?ew(e):em.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},eP(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=ek(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(ez(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=eR(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},eB(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t=this.getStyle("stroke-width"),e=0,i;return/px$/.test(t)?e=eH(t):""!==t&&(eM(i=em.createElementNS(ey,"rect"),{width:t,"stroke-width":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;ej.symbolCustomAttribs.forEach(function(i){e[i]=eW(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||em.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=eF(eW(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:o,rotationOriginY:r,scaleX:a,scaleY:n,translateX:h=0,translateY:l=0}=this,d=["translate("+h+","+l+")"];eT(i)&&d.push("matrix("+i.join(",")+")"),s&&(d.push("rotate("+s+" "+eW(o,e.getAttribute("x"),0)+" "+eW(r,e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:s,rotationOriginX:(o||0)-this.padding,rotationOriginY:(r||0)-this.padding})),(eT(a)||eT(n))&&d.push("scale("+eW(a,1)+" "+eW(n,1)+")"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,o=(s||i).element||i.box,r=this.element,a=o===i.box,n,h,l,d=!1,c,p=this.added,g;if(eT(t)?(r.setAttribute("data-z-index",t),t=+t,this[e]===t&&(p=!1)):eT(this[e])&&r.removeAttribute("data-z-index"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),g=(n=o.childNodes).length-1;g>=0&&!d;g--)c=!eT(l=(h=n[g]).getAttribute("data-z-index")),h!==r&&(t<0&&c&&!a&&!g?(o.insertBefore(r,n[g]),d=!0):(eH(l)<=t||c&&(!eT(t)||t>=0))&&(o.insertBefore(r,n[g+1]),d=!0));d||(o.insertBefore(r,n[a?3:0]),d=!0)}return d}}ej.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],ej.prototype.strokeSetter=ej.prototype.fillSetter,ej.prototype.yGetter=ej.prototype.xGetter,ej.prototype.matrixSetter=ej.prototype.rotationOriginXSetter=ej.prototype.rotationOriginYSetter=ej.prototype.rotationSetter=ej.prototype.scaleXSetter=ej.prototype.scaleYSetter=ej.prototype.translateXSetter=ej.prototype.translateYSetter=ej.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let eU=ej,{defined:eV,extend:e$,getAlignFactor:eZ,isNumber:eq,merge:e_,pick:eK,removeEvent:eJ}=Z;class eQ extends eU{constructor(t,e,i,s,o,r,a,n,h,l){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=a,this.baseline=h,this.className=l,this.addClass("button"===l?"highcharts-no-tooltip":"highcharts-label"),l&&this.addClass("highcharts-"+l),this.text=t.text(void 0,0,0,n).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=eQ.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=eZ(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&eq(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=e_(t),eQ.textProps.forEach(i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])}),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return eU.prototype.css.call(this,t)}destroy(){eJ(this.element,"mouseenter"),eJ(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),eU.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:a=0}=this,n=eK(this.paddingLeft,i),h=e??(this.rotation||0),l={width:a,height:s,x:o+this.bBox.x-n,y:r+this.bBox.y-i+this.baselineOffset};return h&&(l=this.getRotatedBox(l,h)),l}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:eK(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&eV(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){eq(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,i={},s=this.padding,o=this.bBox=(!eq(this.widthSetting)||!eq(this.heightSetting)||this.textAlign)&&eV(e.textStr)?e.getBBox(void 0,0):eQ.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}t=this.getCrispAdjust(),i.x=t,i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(e$(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+eZ(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=eq(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=eK(this.paddingLeft,t),i=eK(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}eQ.emptyBBox={width:0,height:0,x:0,y:0},eQ.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:e0,isNumber:e1,pick:e2}=Z;function e3(t,e,i,s,o){let r=[];if(o){let a=o.start||0,n=e2(o.r,i),h=e2(o.r,s||i),l=2e-4/(o.borderRadius?1:Math.max(n,1)),d=Math.abs((o.end||0)-a-2*Math.PI)0&&h0)return l;if(t+n>i-a){if(h>e+a&&he+a&&h0){let i=hs&&na&&l.splice(1,1,["L",n-6,e],["L",n,e-6],["L",n+6,e],["L",i-r,e]);return l},circle:function(t,e,i,s){return e3(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:e5,roundedRect:e6,square:e5,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:e4,SVG_NS:e8,win:e7}=w,{attr:it,extend:ie,fireEvent:ii,isString:is,objectEach:io,pick:ir}=Z,ia=(t,e)=>t.substring(0,e)+"…",ih=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&"ellipsis"===e.textOverflow),this.lineClamp=e?.lineClamp,this.noWrap=!!(e&&"nowrap"===e.whiteSpace)}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=ir(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,a=!t.added&&i.box,n=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(n!==t.textCache){t.textCache=n,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){a&&a.appendChild(e);let i=new tJ(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),a&&a.removeChild(e)}}else e.appendChild(e4.createTextNode(this.unescapeEntities(s)));is(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=it(e.element,"x");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\s\u200B]*$/.test(t.textContent||" "))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),it(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",a=r.replace(/([^\^])-/g,"$1- ").split(" "),n=!this.noWrap&&(a.length>1||e.element.childNodes.length>1),h=this.getLineHeight(o),l=Math.max(0,s-.8*h),d=0,c=e.actualWidth;if(n){let r=[],n=[];for(;o.firstChild&&o.firstChild!==t;)n.push(o.firstChild),o.removeChild(o.firstChild);for(;a.length;)if(a.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=a.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,a,0===d&&c||0,s,l,(t,e)=>a.slice(0,e).join(" ").replace(/- /g,"-")),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){a.length&&(this.truncate(t,t.textContent||"",void 0,0,s,l,ia),t.textContent=t.textContent?.replace("…","")+"…");break}n.forEach(e=>{o.insertBefore(e,t)}),r.forEach(e=>{o.insertBefore(e4.createTextNode(e),t);let s=e4.createElementNS(e8,"tspan");s.textContent="​",it(s,{dy:h,x:i}),o.insertBefore(s,t)})}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,l,ia)},r=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===e7.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))})};r(e.element)}getLineHeight(t){let e=t.nodeType===e7.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:a={},tagName:n}=i,h=this.renderer.styledMode;if("b"===n||"strong"===n?h?o.class="highcharts-strong":a.fontWeight="bold":("i"===n||"em"===n)&&(h?o.class="highcharts-emphasized":a.fontStyle="italic"),a&&a.color&&(a.fill=a.color),"br"===n){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===n&&r&&r.some(t=>"#text"===t.tagName)&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==n&&"a"!==n&&(i.tagName="tspan"),ie(i,{attributes:o,style:a}),r&&r.filter(t=>"#text"!==t.tagName).forEach(e)};t.forEach(e),ii(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,a){let n,h;let l=this.svgElement,{rotation:d}=l,c=[],p=i&&!s?1:0,g=(e||i||"").length,u=g;i||(o=r);let f=function(e,o){let r=o||e,a=t.parentNode;if(a&&void 0===c[r]&&a.getSubStringLength)try{c[r]=s+a.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(l.rotation=0,s+(h=f(t.textContent.length))>o){for(;p<=g;)u=Math.ceil((p+g)/2),i&&(n=a(i,u)),h=f(u,n&&n.length-1),p===g?p=g+1:h>o?g=u-1:p=u;0===g?t.textContent="":e&&g===e.length-1||(t.textContent=n||a(e||i,u)),this.ellipsis&&h>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,ia)}i&&i.splice(0,u),l.actualWidth=h,l.rotation=d}unescapeEntities(t,e){return io(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))}),t}},{defaultOptions:il}=tx,{charts:id,deg2rad:ic,doc:ip,isFirefox:ig,isMS:iu,isWebKit:im,noop:ix,SVG_NS:iy,symbolSizes:ib,win:iv}=w,{addEvent:ik,attr:iM,createElement:iw,crisp:iS,css:iA,defined:iT,destroyObjectProperties:iC,extend:iO,isArray:iP,isNumber:iE,isObject:iL,isString:iD,merge:iI,pick:iB,pInt:iz,replaceNested:iR,uniqueKey:iN}=Z;class iW{constructor(t,e,i,s,o,r,a){let n,h;let l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=l.element;a||l.css(this.getStyle(s||{})),t.appendChild(d),iM(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&iM(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(ip.createTextNode("Created with Highcharts 12.1.0")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=a,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle("font-size"),this.setSize(e,i,!1),ig&&t.getBoundingClientRect&&((n=function(){iA(t,{left:0,top:0}),h=t.getBoundingClientRect(),iA(t,{left:Math.ceil(h.left)-h.left+"px",top:Math.ceil(h.top)-h.top+"px"})})(),this.unSubPixelFix=ik(iv,"resize",n))}definition(t){return new tJ([t]).addToDOM(this.defs.element)}getReferenceURL(){if((ig||im)&&ip.getElementsByTagName("base").length){if(!iT(e)){let t=iN(),i=new tJ([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(ip.body);iA(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=ip.elementFromPoint(6,6);e="hitme"===(s&&s.id),ip.body.removeChild(i)}if(e)return iR(iv.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=iO({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),iC(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=iI({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new ih(t).buildSVG()}getContrast(t){let e=tM.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),i=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}button(t,e,i,s,o={},r,a,n,h,l){let d=this.label(t,e,i,h,void 0,void 0,l,void 0,"button"),c=this.styledMode,p=arguments,g=0;o=iI(il.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let u=o.states||{},f=o.style||{};delete o.states,delete o.style;let m=[tJ.filterUserAttributes(o)],x=[f];return c||["hover","select","disabled"].forEach((t,e)=>{m.push(iI(m[0],tJ.filterUserAttributes(p[e+5]||u[t]||{}))),x.push(m[e+1].style),delete m[e+1].style}),ik(d.element,iu?"mouseover":"mouseenter",function(){3!==g&&d.setState(1)}),ik(d.element,iu?"mouseout":"mouseleave",function(){3!==g&&d.setState(g)}),d.setState=(t=0)=>{if(1!==t&&(d.state=g=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(m[t]);let e=x[t];iL(e)&&d.css(e)}},d.attr(m[0]),!c&&(d.css(iO({cursor:"default"},f)),l&&d.text.css({pointerEvents:"none"})),d.on("touchstart",t=>t.stopPropagation()).on("click",function(t){3!==g&&s.call(d,t)})}crispLine(t,e){let[i,s]=t;return iT(i[1])&&i[1]===s[1]&&(i[1]=s[1]=iS(i[1],e)),iT(i[2])&&i[2]===s[2]&&(i[2]=s[2]=iS(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return iP(t)?e.d=t:iL(t)&&iO(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=iL(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let a;iL(t)?(e=(a=t).y,i=a.r,s=a.innerR,o=a.start,r=a.end,t=a.x):a={innerR:s,start:o,end:r};let n=this.symbol("arc",t,e,i,i,a);return n.r=i,n}rect(t,e,i,s,o,r){let a=iL(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},n=this.createElement("rect");return this.styledMode||(void 0!==r&&(a["stroke-width"]=r,iO(a,n.crisp(a))),a.fill="none"),n.rSetter=function(t,e,i){n.r=t,iM(i,{rx:t,ry:t})},n.rGetter=function(){return n.r||0},n.attr(a)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:iB(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let a={preserveAspectRatio:"none"};iE(e)&&(a.x=e),iE(i)&&(a.y=i),iE(s)&&(a.width=s),iE(o)&&(a.height=o);let n=this.createElement("image").attr(a),h=function(e){n.attr({href:t}),r.call(n,e)};if(r){n.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new iv.Image;ik(e,"load",h),e.src=t,e.complete&&h({})}else n.attr({href:t});return n}symbol(t,e,i,s,o,r){let a,n,h,l;let d=this,c=/^url\((.*?)\)$/,p=c.test(t),g=!p&&(this.symbols[t]?t:"circle"),u=g&&this.symbols[g];if(u)"number"==typeof e&&(n=u.call(this.symbols,e||0,i||0,s||0,o||0,r)),a=this.path(n),d.styledMode||a.attr("fill","none"),iO(a,{symbolName:g||void 0,x:e,y:i,width:s,height:o}),r&&iO(a,r);else if(p){h=t.match(c)[1];let s=a=this.image(h);s.imgwidth=iB(r&&r.width,ib[h]&&ib[h].width),s.imgheight=iB(r&&r.height,ib[h]&&ib[h].height),l=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:a,imgwidth:n,imgheight:h}=this,l="width"===e?n:h,d=1;r&&"within"===r.backgroundSize&&o&&a&&n&&h?(d=Math.min(o/n,a/h),iM(s,{width:Math.round(n*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&n&&h&&this.translate(((o||0)-n*d)/2,((a||0)-h*d)/2)}}),iT(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,iT(s.imgwidth)&&iT(s.imgheight)?l(s):(s.attr({width:0,height:0}),iw("img",{onload:function(){let t=id[d.chartIndex];0===this.width&&(iA(this,{position:"absolute",top:"-999em"}),ip.body.appendChild(this)),ib[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return a}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),iT(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i=0,r;it.align())}}iO(iW.prototype,{Element:eU,SVG_NS:iy,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:e9,draw:ix}),ea.registerRendererType("svg",iW,!0);let{composed:iH}=w,{attr:iX,css:iF,createElement:iG,defined:iY,extend:ij,getAlignFactor:iU,isNumber:iV,pInt:i$,pushUnique:iZ}=Z;function iq(t,e,i){let s=this.div?.style||i.style;eU.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let i_=(t,e)=>{if(!t.div){let i=iX(t.element,"class"),s=t.css,o=iG("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=iq,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return eU.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class iK extends eU{static compose(t){iZ(iH,this.compose)&&(t.prototype.html=function(t,e,i){return new iK(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}})}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=i$(o)||void 0,e=!0),t?.textOverflow==="ellipsis"&&(t.overflow="hidden"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),iV(Number(t?.fontSize))&&(t.fontSize=t.fontSize+"px"),ij(this.styles,t),iF(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:o,scaleX:r,scaleY:a,styles:n,textAlign:h="left",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:g=0}=this,{display:u="block",whiteSpace:f}=n;if(iF(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),"SPAN"===t.tagName){let n;let d=[i,h,t.innerHTML,l,this.textAlign].join(","),c=-(this.parentGroup?.padding*1)||0;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(iF(t,{width:"",whiteSpace:f||"nowrap"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(iF(t,{width:e>s||i||r?l+"px":"auto",display:u,whiteSpace:f||"normal"}),this.oldTextWidth=l)}d!==this.cTT&&(n=e.fontMetrics(t).b,iY(i)&&(i!==(this.oldRotation||0)||h!==this.oldAlign)&&this.setSpanRotation(i,c,c),this.getSpanCorrection(!iY(i)&&!this.textWidth&&this.textPxLength||t.offsetWidth,n,iU(h)));let{xCorr:m=0,yCorr:x=0}=this,y={left:`${p+m}px`,top:`${g+x}px`,textAlign:h,transformOrigin:`${(s??p)-m-p-c}px ${(o??g)-x-g-c}px`};(r||a)&&(y.transform=`scale(${r??1},${a??1})`),iF(t,y),this.cTT=d,this.oldRotation=i,this.oldAlign=h}}setSpanRotation(t,e,i){iF(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let o=t;for(;o;)s.push(o),o=o.parentGroup;for(let t of s.reverse())e=i_(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,tJ.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let iJ=iK.prototype;iJ.visibilitySetter=iJ.opacitySetter=iq,iJ.ySetter=iJ.rotationSetter=iJ.rotationOriginXSetter=iJ.rotationOriginYSetter=iJ.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(a||(a={}));let iQ=a,{addEvent:i0,isFunction:i1,objectEach:i2,removeEvent:i3}=Z;(n||(n={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},i2(e.events,function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(i3(t,i,t.eventOptions[i]),delete t.eventOptions[i]),i1(e)&&(t.eventOptions[i]=e,i0(t,i,e,{order:0})))})};let i5=n,{deg2rad:i6}=w,{clamp:i9,correctFloat:i4,defined:i8,destroyObjectProperties:i7,extend:st,fireEvent:se,getAlignFactor:si,isNumber:ss,merge:so,objectEach:sr,pick:sa}=Z,sn=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,se(this,"init"),i||s||this.addLabel()}addLabel(){let t=this,e=t.axis,i=e.options,s=e.chart,o=e.categories,r=e.logarithmic,a=e.names,n=t.pos,h=sa(t.options&&t.options.labels,i.labels),l=e.tickPositions,d=n===l[0],c=n===l[l.length-1],p=(!h.step||1===h.step)&&1===e.tickInterval,g=l.info,u=t.label,f,m,x,y=this.parameters.category||(o?sa(o[n],a[n],n):n);r&&ss(y)&&(y=i4(r.lin2log(y))),e.dateTime&&(g?f=(m=s.time.resolveDTLFormat(i.dateTimeLabelFormats[!i.grid&&g.higherRanks[n]||g.unitName])).main:ss(y)&&(f=e.dateTime.getXDateFormat(y,i.dateTimeLabelFormats||{}))),t.isFirst=d,t.isLast=c;let b={axis:e,chart:s,dateTimeLabelFormat:f,isFirst:d,isLast:c,pos:n,tick:t,tickPositionInfo:g,value:y};se(this,"labelFormat",b);let v=t=>h.formatter?h.formatter.call(t,t):h.format?(t.text=e.defaultLabelFormatter.call(t),er.format(h.format,t,s)):e.defaultLabelFormatter.call(t),k=v.call(b,b),M=m&&m.list;M?t.shortenLabel=function(){for(x=0;x0&&s+d*c>n&&(x=Math.round((o-s)/Math.cos(l*i6))):(f=s-d*c,m=s+(1-d)*c,fn&&(g=n-t.x+g*d,u=-1),(g=Math.min(p,g))g||e.autoRotation&&(h.styles||{}).width)&&(x=g)),x&&h&&(this.shortenLabel?this.shortenLabel():h.css(st({},{width:Math.floor(x)+"px",lineClamp:e.isRadial?0:1})))}moveLabel(t,e){let i=this,s=i.label,o=i.axis,r=!1,a;s&&s.textStr===t?(i.movedLabel=s,r=!0,delete i.label):sr(o.ticks,function(e){r||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,r=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!r&&(i.labelPos||s)&&(a=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,a),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,a=sa(this.tickmarkOffset,s.tickmarkOffset),n=this.getPosition(o,r,a,e),h=n.x,l=n.y,d=s.pos,c=d+s.len,p=o?h:l;!s.chart.polar&&this.isNew&&(i4(p)c)&&(i=0);let g=sa(i,this.label&&this.label.newOpacity,1);i=sa(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(n,i),this.renderLabel(n,e,g,t),this.isNew=!1,se(this,"afterRender")}renderGridLine(t,e){let i=this.axis,s=i.options,o={},r=this.pos,a=this.type,n=sa(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;"minor"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(i.chart.styledMode||(o.stroke=p,o["stroke-width"]=c||0,o.dashstyle=g),a||(o.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:r+n,lineWidth:l.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&l[t||this.isNew?"attr":"animate"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,a=i.tickSize(r?r+"Tick":"tick"),n=t.x,h=t.y,l=sa(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;a&&(i.opposite&&(a[0]=-a[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":l})),c[p?"attr":"animate"]({d:this.getMarkPath(n,h,a[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,a=o.options,n=this.label,h=a.labels,l=h.step,d=sa(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,g=!0;n&&ss(c)&&(n.xy=t=this.getLabelPosition(c,p,n,r,h,d,s,l),(!this.isFirst||this.isLast||a.showFirstLabel)&&(!this.isLast||this.isFirst||a.showLastLabel)?!r||h.step||h.rotation||e||0===i||this.handleOverflow(t):g=!1,l&&s%l&&(g=!1),g&&ss(t.y)?(t.opacity=i,n[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(n.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:sh}=tW,{xAxis:sl,yAxis:sd}=iQ,{defaultOptions:sc}=tx,{registerEventOptions:sp}=i5,{deg2rad:sg}=w,{arrayMax:su,arrayMin:sf,clamp:sm,correctFloat:sx,defined:sy,destroyObjectProperties:sb,erase:sv,error:sk,extend:sM,fireEvent:sw,getClosestDistance:sS,insertItem:sA,isArray:sT,isNumber:sC,isString:sO,merge:sP,normalizeTickInterval:sE,objectEach:sL,pick:sD,relativeLength:sI,removeEvent:sB,splat:sz,syncTimeout:sR}=Z,sN=(t,e)=>sE(e,void 0,void 0,sD(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);sM(sc,{xAxis:sl,yAxis:sP(sl,sd)});class sW{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,sw(this,"init",{userOptions:e}),this.opposite=sD(e.opposite,this.opposite),this.side=sD(e.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let r=this.options,a=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),sw(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=sD(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=sT(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=sy(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let n=sD(r.crosshair,sz(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===n?{}:n,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),sA(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!sy(this.reversed)&&(this.reversed=!0),this.labelRotation=sC(a.rotation)?a.rotation:void 0,sp(this,r),sw(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=sP(e,sc[this.coll],t),sw(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=sC(this.value)?this.value:NaN,s=t.chart.time,o=t.categories,r=this.dateTimeLabelFormat,a=sc.lang,n=a.numericSymbols,h=a.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=n&&n.length,c,p;if(o)p=`${this.value}`;else if(r)p=s.dateFormat(r,i,!0);else if(d&&n&&l>=1e3)for(;d--&&void 0===p;)l>=(c=Math.pow(h,d+1))&&10*i%c==0&&null!==n[d]&&0!==i&&(p=e(i/c,-1)+n[d]);return void 0===p&&(p=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,"")),p}getSeriesExtremes(){let t;let e=this;sw(this,"getSeriesExtremes",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,o,r=s.threshold,a,n;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(r||0)&&(r=void 0),e.isXAxis)(o=i.getColumn("x")).length&&(o=e.logarithmic?o.filter(t=>t>0):o,a=(t=i.getXExtremes(o)).min,n=t.max,sC(a)||a instanceof Date||(o=o.filter(sC),a=(t=i.getXExtremes(o)).min,n=t.max),o.length&&(e.dataMin=Math.min(sD(e.dataMin,a),a),e.dataMax=Math.max(sD(e.dataMax,n),n)));else{let t=i.applyExtremes();sC(t.dataMin)&&(a=t.dataMin,e.dataMin=Math.min(sD(e.dataMin,a),a)),sC(t.dataMax)&&(n=t.dataMax,e.dataMax=Math.max(sD(e.dataMax,n),n)),sy(r)&&(e.threshold=r),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),sw(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let a=this.linkedParent||this,n=s&&a.old?a.old.min:a.min;if(!sC(n))return NaN;let h=a.minPixelPadding,l=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,d=1,c=0,p=s&&a.old?a.old.transA:a.transA,g=0;return p||(p=a.transA),i&&(d*=-1,c=a.len),a.reversed&&(d*=-1,c-=d*(a.sector||a.len)),e?(g=(t=t*d+c-h)/p+n,l&&(g=a.lin2val(g))):(l&&(t=a.val2lin(t)),g=d*(t-n)*p+c+d*h+(sC(r)?p*r:0),a.isRadial||(g=sx(g))),g}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,o=e.top,r=t.old,a=t.value,n=t.lineWidth,h=r&&i.oldChartHeight||i.chartHeight,l=r&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,g,u,f,m,x;function y(t,e,i){return"pass"!==p&&(ti)&&(p?t=sm(t,e,i):x=!0),t}let b={value:a,lineWidth:n,old:r,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return sw(this,"getPlotLinePath",b,function(t){g=f=(c=sm(c=sD(c,e.translate(a,void 0,void 0,r)),-1e9,1e9))+d,u=m=h-c-d,sC(c)?e.horiz?(u=o,m=h-e.bottom+(e.options.isInternal?0:i.scrollablePixelsY||0),g=f=y(g,s,s+e.width)):(g=s,f=l-e.right+(i.scrollablePixelsX||0),u=m=y(u,o,o+e.height)):(x=!0,p=!1),t.path=x&&!p?void 0:i.renderer.crispLine([["M",g,u],["L",f,m]],n||1)}),b.path}getLinearTickPositions(t,e,i){let s,o,r;let a=sx(Math.floor(e/t)*t),n=sx(Math.ceil(i/t)*t),h=[];if(sx(a+t)===a&&(r=20),this.single)return[e];for(s=a;s<=n&&(h.push(s),(s=sx(s+t,r))!==o);)o=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?sD(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,o=(this.min||0)-s,r=(this.max||0)+s,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:r-o,n=[],h;if(a&&a/i{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e}))||0),this.dataMax-this.dataMin)),sC(s)&&sC(o)&&sC(r)&&s-o=r,a=(r-s+o)/2,h=[o-a,i.parse(t.min)??o-a],n&&(h[2]=e?e.log2lin(this.dataMin):this.dataMin),l=[(o=su(h))+r,i.parse(t.max)??o+r],n&&(l[2]=e?e.log2lin(this.dataMax):this.dataMax),(s=sf(l))-ot-e),t=sS([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=sT(this.options.categories),i=e?this.categories:this.names,s=t.options.x,o;return t.series.requireSorting=!1,sy(s)||(s=this.uniqueNames&&i?e?i.indexOf(t.name):sD(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(o=i.length):sC(s)&&(o=s),void 0!==o?(this.names[o]=t.name,this.names.keys[t.name]=o):t.x&&(o=t.x),o}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)}),e.dataTable.setColumn("x",i)}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,o=t.isXAxis,r=t.axisPointRange||0,a,n=0,h=0,l,d=t.transA;(o||s||r)&&(a=t.getClosest(),i?(n=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:o?sD(e.options.pointRange,a,0):t.axisPointRange||0,l=e.options.pointPlacement;if(r=Math.max(r,i),!t.single||s){let t=e.is("xrange")?!o:o;n=Math.max(n,t&&sO(l)?0:i/2),h=Math.max(h,t&&"on"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&a?t.ordinal.slope/a:1,t.minPointOffset=n*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(r,t.single&&s?1:e),o&&a&&(t.closestPointRange=a)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*n,sw(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return sC(t)&&sC(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:o,dateTime:r,isXAxis:a,logarithmic:n,options:h,softThreshold:l}=this,d=i.time,c=sC(this.threshold)?this.threshold:void 0,p=this.minRange||0,{ceiling:g,floor:u,linkedTo:f,softMax:m,softMin:x}=h,y=sC(f)&&i[this.coll]?.[f],b=h.tickPixelInterval,v=h.maxPadding,k=h.minPadding,M=0,w,S=sC(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,A,T,C,O;if(r||e||y||this.getTickAmount(),C=sD(this.userMin,d.parse(h.min)),O=sD(this.userMax,d.parse(h.max)),y?(this.linkedParent=y,w=y.getExtremes(),this.min=sD(w.min,w.dataMin),this.max=sD(w.max,w.dataMax),this.type!==y.type&&sk(11,!0,i)):(l&&sy(c)&&sC(s)&&sC(o)&&(o>=c?(A=c,k=0):s<=c&&(T=c,v=0)),this.min=sD(C,A,o),this.max=sD(O,T,s)),sC(this.max)&&sC(this.min)&&(n&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,sD(o,this.min))&&sk(10,!0,i),this.min=sx(n.log2lin(this.min),16),this.max=sx(n.log2lin(this.max),16)),this.range&&sC(o)&&(this.userMin=this.min=C=Math.max(o,this.minFromRange()||0),this.userMax=O=this.max,this.range=void 0)),sw(this,"foundExtremes"),this.adjustForMinRange(),sC(this.min)&&sC(this.max)){if(!sC(this.userMin)&&sC(x)&&xthis.max&&(this.max=O=m),e||this.axisPointRange||this.stacking?.usePercentage||y||!(M=this.max-this.min)||(!sy(C)&&k&&(this.min-=M*k),sy(O)||!v||(this.max+=M*v)),!sC(this.userMin)&&sC(u)&&(this.min=Math.max(this.min,u)),!sC(this.userMax)&&sC(g)&&(this.max=Math.min(this.max,g)),l&&sC(o)&&sC(s)){let t=c||0;!sy(C)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-p):t:!sy(O)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+p):t)}!i.polar&&this.min>this.max&&(sy(h.min)?this.max=this.min:sy(h.max)&&(this.min=this.max)),M=this.max-this.min}if(this.min!==this.max&&sC(this.min)&&sC(this.max)?y&&!S&&b===y.options.tickPixelInterval?this.tickInterval=S=y.tickInterval:this.tickInterval=sD(S,this.tickAmount?M/Math.max(this.tickAmount-1,1):void 0,e?1:M*b/Math.max(this.len,b)):this.tickInterval=1,a&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),sw(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),sw(this,"initialAxisTranslation"),this.pointRange&&!S&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let P=sD(h.minTickInterval,r&&!this.series.some(t=>!t.sorted)?this.closestPointRange:0);!S&&this.tickIntervalMath.max(2*this.len,200))n=[this.min,this.max],sk(19,!1,this.chart);else if(this.dateTime)n=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)n=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(n=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&n.length>this.tickAmount)this.tickInterval=sN(this,e*=1.1);else break}n.length>this.len&&(n=[n[0],n[n.length-1]])[0]===n[1]&&(n.length=1),i&&(this.tickPositions=n,(h=i.apply(this,[this.min,this.max]))&&(n=h))}this.tickPositions=n,this.minorTickInterval="auto"===s&&this.tickInterval?this.tickInterval/t.minorTicksPerMajor:s,this.paddedTicks=n.slice(0),this.trimTicks(n,r,a),!this.isLinked&&sC(this.min)&&sC(this.max)&&(this.single&&n.length<2&&!this.categories&&!this.series.some(t=>t.is("heatmap")&&"between"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),sw(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(sw(this,"trimTicks"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach(function(i){let{series:a}=i;a.length&&a.some(t=>t.visible)&&i!==e&&o(i)===r&&(t=!0,s.push(i))})}if(t&&a){s.forEach(t=>{let i=t.getThresholdAlignment(e);sC(i)&&n.push(i)});let t=n.length>1?n.reduce((t,e)=>t+=e,0)/n.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!sC(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),sC(this.threshold)){let t=sm((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;sy(t.tickInterval)||i||!(this.lenr.push(sx(r[r.length-1]+p)),f=()=>r.unshift(sx(r[0]-p));if(sC(n)&&(g=n<.5?Math.ceil(n*(a-1)):Math.floor(n*(a-1)),o.reversed&&(g=a-1-g)),t.hasData()&&sC(s)&&sC(i)){let n=()=>{t.transA*=(h-1)/(a-1),t.min=o.startOnTick?r[0]:Math.min(s,r[0]),t.max=o.endOnTick?r[r.length-1]:Math.max(i,r[r.length-1])};if(sC(g)&&sC(t.threshold)){for(;r[g]!==l||r.length!==a||r[0]>s||r[r.length-1]t.threshold?f():u();if(p>8*t.tickInterval)break;p*=2}n()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let o=this.len!==(this.old&&this.old.len);o||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,sw(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach(t=>{delete t.kdTree}),t=r.time.parse(t),e=r.time.parse(e),sw(this,"setExtremes",o=sM(o,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(sI(sD(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(sI(sD(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),a=this.top=Math.round(sI(sD(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),n=this.left=Math.round(sI(sD(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-a,this.right=t.chartWidth-o-n,this.len=Math.max(s?o:r,0),this.pos=s?n:a}getExtremes(){let t=this.logarithmic;return{min:t?sx(t.lin2log(this.min)):this.min,max:t?sx(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")}),i.align}tickSize(t){let e=this.options,i=sD(e["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),s=e["tick"===t?"tickLength":"minorTickLength"],o;i&&s&&("inside"===e[t+"Position"]&&(s=-s),o=[s,i]);let r={tickSize:o};return sw(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/s),r=t.rotation,a=sx(.8*this.labelMetrics().h),n=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(o||1);return(i=i>1?Math.ceil(i):1)*s>n&&t!==1/0&&o!==1/0&&n&&(i=Math.ceil(n/s)),sx(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(sC(r)?p=[r]:o=-90&&i<=90)&&(e=(t=h(Math.abs(a/Math.sin(sg*i))))+Math.abs(i/360))u&&(u=i)}),this.maxLabelLength=u,this.autoRotation?u>h&&u>d.h?l.rotation=this.labelRotation:this.labelRotation=0:n&&(p=h),l.rotation&&(p=u>.5*t.chartHeight?.33*t.chartHeight:u,c||(g=1)),this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,o=r.width,a={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!o&&"nowrap"!==r.whiteSpace&&(p<(i.textPxLength||0)||"SPAN"===i.element.tagName)?i.css(sM(a,{width:`${p}px`,lineClamp:g})):!i.styles.width||a.width||o||i.css({width:"auto"}),e.rotation=l.rotation)},this),this.tickRotCorr=e.rotCorr(d.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(t){return t.hasData()})||this.options.showEmpty&&sy(this.min)&&sy(this.max)}addTitle(t){let e;let i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,a=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),a||this.axisTitle.css(sP(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),a||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new sn(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,a)=>o.g(e).attr({zIndex:a}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:o,ticks:r,tickPositions:a,coll:n}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][o]:o,l=t.hasData(),d=s.title,c=s.labels,p=sC(s.crossing),g=e.axisOffset,u=e.clipOffset,f=[-1,1,1,-1][o],m,x=0,y,b=0,v=0,k,M;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(a.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===o||2===o||({1:"left",3:"right"})[o]===t.labelAlign,sD(c.reserveSpace,!p&&null,"center"===t.labelAlign||null,t.reserveSpaceDefault)&&a.forEach(function(t){v=Math.max(r[t].getLabelSize(),v)}),t.staggerLines&&(v*=t.staggerLines),t.labelOffset=v*(t.opposite?-1:1)):sL(r,function(t,e){t.destroy(),delete r[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?"height":"width"],b=sy(y=d.offset)?0:sD(d.margin,i?5:10))),t.renderLine(),t.offset=f*sD(s.offset,g[o]?g[o]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},M=0===o?-t.labelMetrics().h:2===o?t.tickRotCorr.y:0,k=Math.abs(v)+b,v&&(k-=M,k+=f*(i?sD(c.y,t.tickRotCorr.y+f*c.distance):sD(c.x,f*c.distance))),t.axisTitleMargin=sD(y,k),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(r,a)),"colorAxis"!==n&&u){let e=this.tickSize("tick");g[o]=Math.max(g[o],(t.axisTitleMargin||0)+x+f*t.offset,k,a&&a.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;u[h]=Math.max(u[h],i)}sw(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,a=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?a:this.top],["L",o?e.chartWidth-this.right:r,o?a:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,a=e?i:s,n=this.opposite,h=this.offset,l=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,g={low:a+(e?0:o),middle:a+o/2,high:a+(e?o:0)}[r.align],u=(e?s+this.height:i)+(e?1:-1)*(n?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?g+l:u+(n?this.width:0)+h+l,y:e?u+d-(n?this.height:0)+h:g+d};return sw(this,"afterGetTitlePosition",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new sn(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(o[t]||(o[t]=new sn(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e;let i=this,s=i.chart,o=i.logarithmic,r=s.renderer,a=i.options,n=i.isLinked,h=i.tickPositions,l=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,g=a.stackLabels,u=a.alternateGridColor,f=a.crossing,m=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=sh(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach(function(t){sL(t,function(t){t.isActive=!1})}),sC(f)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(f,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||n){let r=i.chart.hasRendered&&i.old&&sC(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,r)}),h.length&&(h.forEach(function(t,e){i.renderTick(t,e,r)}),m&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new sn(i,-1,null,!0)),d[-1].render(-1))),u&&h.forEach(function(r,a){e=void 0!==h[a+1]?h[a+1]+m:i.max-m,a%2==0&&r=.5)t=Math.round(t),n=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,a,h,l,d,c;let p=Math.floor(e);for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!s||d<=i)&&void 0!==d&&n.push(d),d>i&&(c=!0),d=l}else{let h=this.lin2log(e),l=this.lin2log(i),d=s?o.getMinorTickInterval():a.tickInterval,c=a.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=sU(t=sV("auto"===d?null:d,this.minorAutoInterval,(l-h)*c/(p||1))),n=o.getLinearTickPositions(t,h,l).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),n}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(l||(l={}));let s$=l,{erase:sZ,extend:sq,isNumber:s_}=Z;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],r=this.horiz,a=!s_(this.min)||!s_(this.max)||tthis.max&&e>this.max,n=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),h,l=1,d;if(n&&s)for(a&&(d=n.toString()===s.toString(),l=0),h=0;h{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t})}),sK.compose(s8,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){s5(this,"render");let{axis:t,options:e}=this,{horiz:i,logarithmic:s}=t,{color:o,events:r,zIndex:a=0}=e,{renderer:n,time:h}=t.chart,l={},d=h.parse(e.to),c=h.parse(e.from),p=h.parse(e.value),g=e.borderWidth,u=e.label,{label:f,svgElem:m}=this,x=[],y,b=s1(c)&&s1(d),v=s1(p),k=!m,M={class:"highcharts-plot-"+(b?"band ":"line ")+(e.className||"")},w=b?"bands":"lines";if(!t.chart.styledMode&&(v?(M.stroke=o||"#999999",M["stroke-width"]=s4(e.width,1),e.dashStyle&&(M.dashstyle=e.dashStyle)):b&&(M.fill=o||"#e6e9ff",g&&(M.stroke=e.borderColor,M["stroke-width"]=g))),l.zIndex=a,w+="-"+a,(y=t.plotLinesAndBandsGroups[w])||(t.plotLinesAndBandsGroups[w]=y=n.g("plot-"+w).attr(l).add()),m||(this.svgElem=m=n.path().attr(M).add(y)),s1(p))x=t.getPlotLinePath({value:s?.log2lin(p)??p,lineWidth:m.strokeWidth(),acrossPanes:e.acrossPanes});else{if(!(s1(c)&&s1(d)))return;x=t.getPlotBandPath(s?.log2lin(c)??c,s?.log2lin(d)??d,e)}return!this.eventsAdded&&r&&(s9(r,(t,e)=>{m?.on(e,t=>{r[e].apply(this,[t])})}),this.eventsAdded=!0),(k||!m.d)&&x?.length?m.attr({d:x}):m&&(x?(m.show(),m.animate({d:x})):m.d&&(m.hide(),f&&(this.label=f=f.destroy()))),u&&(s1(u.text)||s1(u.formatter))&&x?.length&&t.width>0&&t.height>0&&!x.isFlat?(u=s6({align:i&&b?"center":void 0,x:i?!b&&4:10,verticalAlign:!i&&b?"middle":void 0,y:i?b?16:10:b?6:-4,rotation:i&&!b?90:0,...b?{inside:!0}:{}},u),this.renderLabel(u,x,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,a=t.inside,n=this.label;n||(this.label=n=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||n.css(s6({fontSize:"0.8em",textOverflow:i&&!a?"":"ellipsis"},t.style)),n.add());let h=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],l=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=s0(h),c=s0(l),p=sQ(h)-d;n.align(t,!1,{x:d,y:c,width:p,height:sQ(l)-c}),(!n.alignValue||"left"===n.alignValue||s1(a))&&n.css({width:(t.style?.width||(i&&a?p:90===n.rotation?o.height-(n.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(n.alignAttr.x-o.left)))+"px"}),n.show(!0)}getLabelText(t){return s1(t.formatter)?t.formatter.call(this):t.text}destroy(){s3(this.axis.plotLinesAndBands,this),delete this.axis,s2(this)}}let{animObject:s7}=tW,{format:ot}=er,{composed:oe,dateFormats:oi,doc:os,isSafari:oo}=w,{distribute:or}=ec,{addEvent:oa,clamp:on,css:oh,discardElement:ol,extend:od,fireEvent:oc,isArray:op,isNumber:og,isObject:ou,isString:of,merge:om,pick:ox,pushUnique:oy,splat:ob,syncTimeout:ov}=Z;class ok{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||ob(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),ol(this.container)),Z.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:o}=this,r=s.inverted,a=s.plotTop,n=s.plotLeft;if((t=ob(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-n,e.chartY-a];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])}),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-n,o-a]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+ox(t.colorIndex,o.colorIndex),r&&r.className].filter(of).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,a=this.container,n=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=ea.getRendererType();this.container=a=w.doc.createElement("div"),a.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),oh(a,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)}),this.renderer=n=new i(a,0,0,e,void 0,void 0,n.styledMode)}if(r?this.label=n.g("tooltip"):(this.label=n.label("",t,e,o.shape,void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,a&&(a.style[s?"top":"left"]=`${o}px`)}})}this.label.attr({zIndex:8}).shadow(o.shadow).add()}return a&&!a.parentElement&&w.doc.body.appendChild(a),this.label}getPlayingField(){let{body:t,documentElement:e}=os,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:o,outside:r,pointer:a}=this,{inverted:n,plotLeft:h,plotTop:l,polar:d}=o,{plotX:c=0,plotY:p=0}=i,g={},u=n&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=a.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let a="x"===i;return[i,a?m:f,a?t:e].concat(r?[a?y(t):b(e),a?x.left-s+y(c+h):x.top-s+b(p+l),0,a?m:f]:[a?t:e,a?c+h:p+l,a?h:l,a?h+o.plotWidth:l+o.plotHeight])},k=v("y"),M=v("x"),w,S=!!i.negative;!d&&o.hoverSeries?.yAxis?.reversed&&(S=!S);let A=!this.followPointer&&ox(i.ttBelow,!d&&!n===S),T=function(t,e,i,o,a,n,h){let l=r?"y"===t?b(s):y(s):s,d=(i-o)/2,c=oe?m:m+u)}},C=function(t,e,i,o,r){if(re-s)return!1;re-o/2?g[t]=e-o-2:g[t]=r-i/2},O=function(t){[k,M]=[M,k],w=t},P=()=>{!1!==T.apply(0,k)?!1!==C.apply(0,M)||w||(O(!0),P()):w?g.x=g.y=0:(O(!0),P())};return(n&&!d||this.len>1)&&O(),P(),g}hide(t){let e=this;Z.clearTimeout(this.hideTimer),t=ox(t,this.options.hideDelay),this.isHidden||(this.hideTimer=ov(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=ox(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,"highcharts-tooltip")))}move(t,e,i,s){let o=this,r=s7(!o.isHidden&&o.options.animation),a=o.followPointer||(o.len||0)>1,n={x:t,y:e};a||(n.anchorX=i,n.anchorY=s),r.step=()=>o.drawTracker(),o.getLabel().animate(n,r)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,a=ob(t),n=a[0],h=s.format,l=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!n.series)return;Z.clearTimeout(this.hideTimer),this.allowShared=!(!op(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&n.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),g=p[0],u=p[1];r&&this.allowShared&&(o.applyInactiveState(a),a.forEach(t=>t.setState("hover")),n.points=a),this.len=a.length;let f=of(h)?ot(h,n,i):l.call(n,this);n.points=void 0;let m=n.series;if(this.distance=ox(m.tooltipOptions.distance,16),!1===f)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(f,a);else{let t=g,r=u;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),i.polar||!1===m.options.clip||a.some(e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))){let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(n),text:f&&f.join?f.join(""):f}),this.outside&&t.attr({x:on(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||n.color||m.color||"#666666"}),this.updatePosition({plotX:g,plotY:u,negative:n.negative,ttBelow:n.ttBelow,h:p[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}oc(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:a,plotLeft:n,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:d,styledMode:c},distance:p,options:g,options:{positioner:u},pointer:f}=i,{scrollLeft:m=0,scrollTop:x=0}=s.scrollablePlotArea?.scrollingContainer||{},y=i.outside&&"number"!=typeof d?os.documentElement.getBoundingClientRect():{left:m,right:m+o,top:x,bottom:x+r},b=i.getLabel(),v=this.renderer||s.renderer,k=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:M,top:w}=f.getChartPosition(),S=h+x,A=0,T=a-l;function C(t,e,s,o,r=!0){let a,n;return s?(a=k?0:T,n=on(t-o/2,y.left,y.right-o-(i.outside?M:0))):(a=e-S,n=on(n=r?t-o-p:t+p,r?n:y.left,y.right)),{x:n,y:a}}of(t)&&(t=[!1,t]);let O=t.slice(0,e.length+1).reduce(function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:a,series:{}},l=r.isHeader,d=l?i:r.series,f=d.tt=function(t,e,s){let o=t,{isHeader:r,series:a}=e;if(!o){let t={padding:g.padding,r:g.borderRadius};c||(t.fill=g.backgroundColor,t["stroke-width"]=g.borderWidth??1),o=v.label("",0,0,g[r?"headerShape":"shape"],void 0,void 0,g.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(b)}return o.isActive=!0,o.attr({text:s}),c||o.css(g.style).attr({stroke:g.borderColor||e.color||a.color||"#333333"}),o}(d.tt,r,s.toString()),m=f.getBBox(),x=m.width+f.strokeWidth();l&&(A=m.height,T+=A,k&&(S-=A));let{anchorX:M,anchorY:w}=function(t){let e,i;let{isHeader:s,plotX:o=0,plotY:r=0,series:l}=t;if(s)e=Math.max(n+o,n),i=h+a/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+on(o,-p,t.len+p),l.shouldShowTooltip(0,s.pos-h+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=on(e,y.left-p,y.right+p),anchorY:i}}(r);if("number"==typeof w){let e=m.height+1,s=u?u.call(i,x,e,r):C(M,w,l,x);t.push({align:u?0:void 0,anchorX:M,anchorY:w,boxWidth:x,point:r,rank:ox(s.rank,l?1:0),size:e,target:s.y,tt:f,x:s.x})}else f.isActive=!1}return t},[]);!u&&O.some(t=>{let{outside:e}=i,s=(e?M:0)+t.anchorX;return ss})&&(O=O.map(t=>{let{x:e,y:i}=C(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return od(t,{target:i,x:e})})),i.cleanSplit(),or(O,T);let P={left:M,right:M};O.forEach(function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&M+eP.right&&(P.right=M+e))}),O.forEach(function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:a}}=t,n={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+S,anchorX:s,anchorY:o};if(i.outside&&e0&&(a||(n.x=e+t,n.anchorX=s+t),a&&(n.x=(P.right-P.left)/2,n.anchorX=s+t))}t.tt.attr(n)});let{container:E,outside:L,renderer:D}=i;if(L&&E&&D){let{width:t,height:e,x:i,y:s}=b.getBBox();D.setSize(t+i,e+s,!1),E.style.left=P.left+"px",E.style.top=w+"px"}oo&&b.attr({opacity:1===b.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o&&o.dateTime,a={isFooter:e,point:t},n=s.xDateFormat||"",h=s[e?"footerFormat":"headerFormat"];return oc(this,"headerFormatter",a,function(e){if(r&&!n&&og(t.key)&&(n=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&n){if(ou(n)){let t=n;oi[0]=e=>i.chart.time.dateFormat(t,e),n="%0"}(t.tooltipDateKeys||["key"]).forEach(t=>{h=h.replace(RegExp("point\\."+t+"([ \\)}])",""),`(point.${t}:${n})$1`)})}i.chart.styledMode&&(h=this.styledModeFormat(h)),e.text=ot(h,t,this.chart)}),a.text||""}update(t){this.destroy(),this.init(this.chart,om(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:o,pointer:r,renderer:a}=this,{height:n=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=r.getChartPosition(),g=(o.positioner||this.getPosition).call(this,h,n,t),u=w.doc,f=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;a&&i&&(o.positioner&&(g.x+=l-s,g.y+=d-s),x=(o.borderWidth||0)+2*s+2,a.setSize(on(h+x,0,u.documentElement.clientWidth)-1,n+x,!1),(1!==c||1!==p)&&(oh(i,{transform:`scale(${c}, ${p})`}),f*=c,m*=p),f+=l-g.x,m+=d-g.y),this.move(Math.round(g.x),Math.round(g.y||0),f,m)}}!function(t){t.compose=function(e){oy(oe,"Core.Tooltip")&&oa(e,"afterInit",function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))})}}(ok||(ok={}));let oM=ok,{animObject:ow}=tW,{defaultOptions:oS}=tx,{format:oA}=er,{addEvent:oT,crisp:oC,erase:oO,extend:oP,fireEvent:oE,getNestedProperty:oL,isArray:oD,isFunction:oI,isNumber:oB,isObject:oz,merge:oR,pick:oN,syncTimeout:oW,removeEvent:oH,uniqueKey:oX}=Z;class oF{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(oP({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return oP(this,t=oF.prototype.optionsToObject.call(this,t)),this.options=this.options?oP(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=oF.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():oB(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),oB(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=ow(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(oH(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),oO(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),oW(a,r.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),oE(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i;let s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach(function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)}),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?oL(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||"y",s,o=0;for(s=e[0];this[i]>=s.value;)s=e[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=oX()),this.resolveColor(),t.chart.pointCount++,oE(this,"afterInit")}isValid(){return(oB(this.x)||this.x instanceof Date)&&oB(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||["y"],o=s.length,r={},a,n=0,h=0;if(oB(t)||null===t)r[s[0]]=t;else if(oD(t))for(!i&&t.length>o&&("string"==(a=typeof t[0])?e.xAxis?.dateTime?r.x=e.chart.time.parse(t[0]):r.name=t[0]:"number"===a&&(r.x=t[0]),n++);h0?oF.prototype.setNestedProperty(r,t[n],s[h]):r[s[h]]=t[n]),n++,h++;else"object"==typeof t&&(r=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return r}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:a}=s,n=0,h=0;if(oB(i)&&oB(e))return t&&(n=r?r.pos:o.plotLeft,h=a?a.pos:o.plotTop),o.inverted&&r&&a?[a.len-e+h,r.len-i+n]:[i+n,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,o,r=e.colorCount,a;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(o=t.options.colors||t.chart.options.colors)[t.colorCounter],r=o.length),a=t.colorCounter,t.colorCounter++,t.colorCounter===r&&(t.colorCounter=0)):(i||(s=t.color),a=t.colorIndex),this.colorIndex=oN(this.options.colorIndex,a),this.color=oN(this.options.color,s)}setNestedProperty(t,e,i){return i.split(".").reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:oz(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:a=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach(e=>{e="{point."+e,(r||a)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+a)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")}),oA(t,this,e)}update(t,e,i,s){let o;let r=this,a=r.series,n=r.graphic,h=a.chart,l=a.options;function d(){r.applyOptions(t);let s=n&&r.hasMockGraphic,d=null===r.y?!s:s;n&&d&&(r.graphic=n.destroy(),delete r.hasMockGraphic),oz(t,!0)&&(n&&n.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=n.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of a.dataColumnKeys())c[t]=r[t];a.dataTable.setRow(c,o),l.data[o]=oz(l.data[o],!0)||oz(t,!0)?r.options:oN(t,l.data[o]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(h.isDirtyBox=!0),"point"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=oN(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=oN(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=oR(this.series.options.point,this.options),i=e.events?.[t];oI(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=oT(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(oH(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(t,e){let i=this.series,s=this.state,o=i.options.states[t||"normal"]||{},r=oS.plotOptions[i.type].marker&&i.options.marker,a=r&&!1===r.enabled,n=r&&r.states&&r.states[t||"normal"]||{},h=!1===n.enabled,l=this.marker||{},d=i.chart,c=r&&i.markerAttribs,p=i.halo,g,u,f,m=i.stateMarkerGraphic,x;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===o.enabled||t&&(h||a&&!1===n.enabled)||t&&l.states&&l.states[t]&&!1===l.states[t].enabled)return;if(this.state=t,c&&(g=i.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(s&&this.graphic.removeClass("highcharts-point-"+s),t&&this.graphic.addClass("highcharts-point-"+t),!d.styledMode){u=i.pointAttribs(this,t),f=oN(d.options.chart.animation,o.animation);let e=u.opacity;i.options.inactiveOtherPoints&&oB(e)&&(this.dataLabels||[]).forEach(function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},f),t.connector&&t.connector.animate({opacity:e},f))}),this.graphic.animate(u,f)}g&&this.graphic.animate(g,oN(d.options.chart.animation,n.animation,r.animation)),m&&m.hide()}else t&&n&&(x=l.symbol||i.symbol,m&&m.currentSymbol!==x&&(m=m.destroy()),g&&(m?m[e?"animate":"attr"]({x:g.x,y:g.y}):x&&(i.stateMarkerGraphic=m=d.renderer.symbol(x,g.x,g.y,g.width,g.height,oR(r,n)).add(i.markerGroup),m.currentSymbol=x)),!d.styledMode&&m&&"inactive"!==this.state&&m.attr(i.pointAttribs(this,t))),m&&(m[t&&this.isInside?"show":"hide"](),m.element.point=this,m.addClass(this.getClassName(),!0));let y=o.halo,b=this.graphic||m,v=b&&b.visibility||"inherit";y&&y.size&&b&&"hidden"!==v&&!this.isCluster?(p||(i.halo=p=d.renderer.path().add(b.parentGroup)),p.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),p.attr({class:"highcharts-halo highcharts-color-"+oN(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),p.point=this,d.styledMode||p.attr(oP({fill:this.color||i.color,"fill-opacity":y.opacity},tJ.filterUserAttributes(y.attributes||{})))):p?.point?.haloPath&&!p.point.destroyed&&p.animate({d:p.point.haloPath(0)},null,p.hide),oE(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(oC(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let oG=oF,{parse:oY}=tM,{charts:oj,composed:oU,isTouchDevice:oV}=w,{addEvent:o$,attr:oZ,css:oq,extend:o_,find:oK,fireEvent:oJ,isNumber:oQ,isObject:o0,objectEach:o1,offset:o2,pick:o3,pushUnique:o5,splat:o6}=Z;class o9{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!w.chartCount&&(o9.unbindDocumentMouseUp.forEach(t=>t.unbind()),o9.unbindDocumentMouseUp.length=0,o9.unbindDocumentTouchEnd&&(o9.unbindDocumentTouchEnd=o9.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),o1(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return oJ(this,"getSelectionMarkerAttrs",i,i=>{let s;let{chart:o,zoomHor:r,zoomVert:a}=this,{mouseDownX:n=0,mouseDownY:h=0}=o,l=i.attrs;l.x=o.plotLeft,l.y=o.plotTop,l.width=r?1:o.plotWidth,l.height=a?1:o.plotHeight,r&&(s=t-n,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+n),a&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:r,selectionMarkerFill:a}=e.options.chart,n=e.plotLeft,h=e.plotTop,l=e.plotWidth,d=e.plotHeight,c=o0(o)?o.enabled:o,p=r&&t[`${r}Key`],g=t.chartX,u=t.chartY,f,m=this.selectionMarker;if((!m||!m.touch)&&(gn+l&&(g=n+l),uh+d&&(u=h+d),this.hasDragged=Math.sqrt(Math.pow(i-g,2)+Math.pow(s-u,2)),this.hasDragged>10)){f=e.isInsidePlot(i-n,s-h,{visiblePlotOnly:!0});let{shapeType:r,attrs:l}=this.getSelectionMarkerAttrs(g,u);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&f&&!p&&!m&&(this.selectionMarker=m=e.renderer[r](),m.attr({class:"highcharts-selection-marker",zIndex:7}).add(),e.styledMode||m.attr({fill:a||oY("#334eff").setOpacity(.25).get()})),m&&m.attr(l),f&&!m&&c&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return oJ(this,"getSelectionBox",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}oQ(i.index)&&(this.selectionMarker=s.destroy())}i&&oQ(i.index)&&(oq(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);o0(r,!0)&&r.series&&(!o0(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,a=t.plotY||0;return t.isNode&&o&&oQ(o.x)&&oQ(o.y)&&(r=o.x,a=o.y),e?{chartX:s.len+s.pos-a,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:a+s.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=o2(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let a=[],n=function(t){return t.visible&&!(!o&&t.directTouch)&&o3(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};oJ(this,"beforeGetHoverData",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||n)(t));let c=s&&t||!r?t:this.findNearestKDPoint(l,o,r);return h=c&&c.series,c&&(o&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):n(t)&&!t.noSharedTooltip})).forEach(function(t){let e=oK(t.points,function(t){return t.x===c.x&&!t.isNull});o0(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),a.push(e))}):a.push(c)),oJ(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=oZ(i,"class")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf("highcharts-container"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),oJ(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):o3(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return o_(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(oJ(i.series,"click",o_(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(o_(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&oJ(e,"click",s)))}onContainerMouseDown(t){let e=(1&(t.buttons||t.button))==1;t=this.normalize(t),w.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=oj[o3(o9.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){oj[o3(o9.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],t=>e.normalize(t)),a=r.length,n=1===a&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===a&&o3(h?.options.followTouchMove,!0);a>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!n&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):o&&(oJ(i,"touchpan",{originalEvent:t,touches:r},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(r),from:e(o),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,a=i.tooltip,n=a&&a.shared?r:o;t&&n&&o6(n).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?a&&n&&o6(n).length&&(a.refresh(n),a.shared&&r?r.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):o&&(o.setState(o.state,!0),i.axes.forEach(function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),r&&r.forEach(function(t){t.setState()}),s&&s.onMouseOut(),a&&a.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!r&&r.shared,n=e||s.hoverPoint,h=n&&n.series||s.hoverSeries,l=(!t||"touchmove"!==t.type)&&(!!e||h&&h.directTouch&&this.isDirectTouch),d=this.getHoverData(n,h,o,l,a,t);n=d.hoverPoint,h=d.hoverSeries;let c=d.hoverPoints,p=h&&h.tooltipOptions.followPointer&&!h.tooltipOptions.split,g=a&&h&&!h.noSharedTooltip;if(n&&(i||n!==s.hoverPoint||r&&r.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===c.indexOf(t)&&t.setState()}),s.hoverSeries!==h&&h.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach(function(t){t.setState("hover")}),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!n.series)return;s.hoverPoints=c,s.hoverPoint=n,n.firePointEvent("mouseOver",void 0,()=>{r&&n&&r.refresh(g?c:n,t)})}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=o$(s.container.ownerDocument,"mousemove",t=>oj[o9.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let o=o3((e.crosshair||{}).snap,!0);!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=oK(c,t=>t.series&&t.series[e.coll]===e)),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(o$(t,"mouseenter",this.onContainerMouseEnter.bind(this)),o$(t,"mouseleave",this.onContainerMouseLeave.bind(this))),o9.unbindDocumentMouseUp.some(t=>t.doc===e)||o9.unbindDocumentMouseUp.push({doc:e,unbind:o$(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(o$(i,"scroll",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(o$(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),o$(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),o9.unbindDocumentTouchEnd||(o9.unbindDocumentTouchEnd=o$(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),o$(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!oV)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=o3(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&s?(t.push(o$(i,"pointerdown",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),o$(i,"pointermove",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||oq(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||oq(i,{"touch-action":o3(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=w.charts[o3(o9.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&(t={...s,...t}),i.pointer?.onContainerMouseLeave(t||s)}i&&i.mouseIsDown||(o9.hoverChartIndex=e.index)}touch(t,e){let i;let{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),o3(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||"",o,r;/touch/.test(t.type)&&(s=o3(e.zooming.pinchType,s)),this.zoomX=o=/x/.test(s),this.zoomY=r=/y/.test(s),this.zoomHor=o&&!i||r&&i,this.zoomVert=r&&!i||o&&i,this.hasZoom=o||r}}o9.unbindDocumentMouseUp=[],function(t){t.compose=function(e){o5(oU,"Core.Pointer")&&o$(e,"beforeRender",function(){this.pointer=new t(this,this.options)})}}(o9||(o9={}));let o4=o9,{fireEvent:o8,isArray:o7,objectEach:rt,uniqueKey:re}=Z,ri=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||re(),this.modified=this,this.rowCount=0,this.versionTag=re();let e=0;rt(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rt(this.columns,e=>{o7(e)&&(e.length=t)})}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rt(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(o8(this,"afterSetColumns"),this.versionTag=re())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rt(t,(t,a)=>{let n=o[a]||s?.addColumns!==!1&&Array(r);n&&(i?n.splice(e,0,t):n[e]=t,o[a]=n)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(o8(this,"afterSetRows"),this.versionTag=re())}},{extend:rs,merge:ro,pick:rr}=Z;!function(t){function e(t,e,i){let s=this.legendItem=this.legendItem||{},{chart:o,options:r}=this,{baseline:a=0,symbolWidth:n,symbolHeight:h}=t,l=this.symbol||"circle",d=h/2,c=o.renderer,p=s.group,g=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),u={},f,m=r.marker,x=0;if(o.styledMode||(u["stroke-width"]=Math.min(r.lineWidth||0,24),r.dashStyle?u.dashstyle=r.dashStyle:"square"===r.linecap||(u["stroke-linecap"]="round")),s.line=c.path().addClass("highcharts-graph").attr(u).add(p),i&&(s.area=c.path().addClass("highcharts-area").add(p)),u["stroke-linecap"]&&(x=Math.min(s.line.strokeWidth(),n)/2),n){let t=[["M",x,g],["L",n-x,g]];s.line.attr({d:t}),s.area?.attr({d:[...t,["L",n-x,a],["L",x,a]]})}if(m&&!1!==m.enabled&&n){let t=Math.min(rr(m.radius,d),d);0===l.indexOf("url")&&(m=ro(m,{width:h,height:h}),t=0),s.symbol=f=c.symbol(l,n/2-t,g-t,2*t,2*t,rs({context:"legend"},m)).addClass("highcharts-point").add(p),f.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,a=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,rr(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(c||(c={}));let ra=c,{defaultOptions:rn}=tx,{extend:rh,extendClass:rl,merge:rd}=Z;!function(t){function e(e,i){let s=rn.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=oG),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=w.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,a){let n=rn.plotOptions||{};if(s=s||"",n[i]=rd(n[s],o),delete t.seriesTypes[i],e(i,rl(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,a){class e extends oG{}rh(e.prototype,a),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(p||(p={}));let rc=p,{animObject:rp,setAnimation:rg}=tW,{defaultOptions:ru}=tx,{registerEventOptions:rf}=i5,{svg:rm,win:rx}=w,{seriesTypes:ry}=rc,{arrayMax:rb,arrayMin:rv,clamp:rk,correctFloat:rM,crisp:rw,defined:rS,destroyObjectProperties:rA,diffObjects:rT,erase:rC,error:rO,extend:rP,find:rE,fireEvent:rL,getClosestDistance:rD,getNestedProperty:rI,insertItem:rB,isArray:rz,isNumber:rR,isString:rN,merge:rW,objectEach:rH,pick:rX,removeEvent:rF,syncTimeout:rG}=Z;class rY{constructor(){this.zoneAxis="y"}init(t,e){let i;rL(this,"init",{options:e}),this.dataTable??(this.dataTable=new ri);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),rP(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),rf(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=rX(i&&i._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",rB(this,s)),o.dataSorting&&o.dataSorting.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),rL(this,"afterInit")}is(t){return ry[t]&&this instanceof ry[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;rL(this,"bindAxes",null,function(){(e.axisTypes||[]).forEach(function(o){(s[o]||[]).forEach(function(s){t=s.options,(rX(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(rB(e,s.series),e[o]=s,s.isDirty=!0)}),e[o]||e.optionalAxis===o||rO(18,!0,s)})}),rL(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e;let i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,a=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=rX(this.pointInterval,i.pointInterval,1),o&&rR(t)&&(e*=t),s){let t=r.toParts(a);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-a}return o&&rR(t)?a+e:(this.xIncrement=a+e,a)}setDataSortingOptions(){let t=this.options;rP(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),rS(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=rW(t),a=i.styledMode,n={plotOptions:s,userOptions:r};rL(this,"setOptions",n);let h=n.plotOptions[this.type],l=o.plotOptions||{},d=l.series||{},c=ru.plotOptions[this.type]||{},p=l[this.type]||{};this.userOptions=n.userOptions;let g=rW(h,s.series,p,r);this.tooltipOptions=rW(ru.tooltip,ru.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=rX(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||g.stickyTracking),null===h.marker&&delete g.marker,this.zoneAxis=g.zoneAxis||"y";let u=this.zones=(g.zones||[]).map(t=>({...t}));return(g.negativeColor||g.negativeFillColor)&&!g.zones&&(e={value:g[this.zoneAxis+"Threshold"]||g.threshold||0,className:"highcharts-negative"},a||(e.color=g.negativeColor,e.fillColor=g.negativeFillColor),u.push(e)),u.length&&rS(u[u.length-1].value)&&u.push(a?{}:{color:this.color,fillColor:this.fillColor}),rL(this,"afterSetOptions",{options:g}),g}getName(){return rX(this.options.name,"Series "+(this.index+1))}getCyclic(t,e,i){let s,o;let r=this.chart,a=`${t}Index`,n=`${t}Counter`,h=i?.length||r.options.chart.colorCount;!e&&(rS(o=rX("color"===t?this.options.colorIndex:void 0,this[a]))?s=o:(r.series.length||(r[n]=0),s=r[n]%h,r[n]+=1),i&&(e=i[s])),void 0!==s&&(this[a]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||ru.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o;let r=t.id,a=t.x,n=this.points,h=this.options.dataSorting;if(r){let t=this.chart.get(r);t instanceof oG&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(h&&h.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=rE(n,e)))return}return i&&void 0!==(o=i&&i.index)&&(s=!0),void 0===o&&rR(a)&&(o=this.getColumn("x").indexOf(a,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!s&&rR(o)&&n[o]&&n[o].touched&&(o=void 0),o}updateData(t,e){let i=this.options,s=i.dataSorting,o=this.points,r=[],a=this.requireSorting,n=t.length===o.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=rS(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||rR(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?r.push(t):o[l]&&t!==i.data[l]?(o[l].update(t,!1,null,!1),o[l].touched=!0,a&&(c=l+1)):o[l]&&(o[l].touched=!0),(!n||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):r.push(t)},this),h)for(l=o.length;l--;)(d=o[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!n||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===o[e].y||o[e].destroyed||o[e].update(t,!1,null,!1)}),r.length=0);if(o.forEach(function(t){t&&(t.touched=!1)}),!p)return!1;r.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this);let g=this.getColumn("x");return null===this.xIncrement&&g.length&&(this.xIncrement=rb(g),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o=this.points,r=o&&o.length||0,a=this.options,n=this.chart,h=a.dataSorting,l=this.xAxis,d=a.turboThreshold,c=this.dataTable,p=this.dataColumnKeys(),g=this.pointValKey||"y",u=(this.pointArrayMap||[]).length,f=a.keys,m,x,y=0,b=1,v;n.options.chart.allowMutatingData||(a.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,v=rW(!0,t));let k=(t=v||t||[]).length;if(h&&h.enabled&&(t=this.sortData(t)),n.options.chart.allowMutatingData&&!1!==s&&k&&r&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(x=this.updateData(t,i)),!x){this.xIncrement=null,this.colorCounter=0;let e=d&&k>d;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,k-1,-1),o=t=>!!(rz(t)&&(f||rR(t[0])));if(rR(i)&&rR(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);c.setColumns({x:e,[g]:i})}else if(o(i)&&o(s)){if(u){let e=i.length===u?1:0,s=Array(p.length).fill(0).map(()=>[]);for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=u;t++)s[t]?.push(i[t-e])}c.setColumns(p.reduce((t,e,i)=>(t[e]=s[i],t),{}))}else{f&&(y=f.indexOf("x"),b=f.indexOf("y"),y=y>=0?y:0,b=b>=0?b:1),1===i.length&&(b=0);let e=[],s=[];if(y===b)for(let i of t)e.push(this.autoIncrement()),s.push(i[b]);else for(let i of t)e.push(i[y]),s.push(i[b]);c.setColumns({x:e,[g]:s})}}else e=!1}if(!e){let e=p.reduce((t,e)=>(t[e]=[],t),{});for(m=0;m{let s=rI(i,t),o=rI(i,e);return os?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,o=i.data;i.dataSorting&&i.dataSorting.enabled||!o||(o.forEach(function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)}),e.setData(o,!1))}),t}getProcessedData(t){let e=this,{dataTable:i,isCartesian:s,options:o,xAxis:r}=e,a=o.cropThreshold,n=t||e.getExtremesFromAll,h=r?.logarithmic,l=i.rowCount,d,c,p=0,g,u,f,m=e.getColumn("x"),x=i,y=!1;return r&&(u=(g=r.getExtremes()).min,f=g.max,y=!!(r.categories&&!r.names.length),s&&e.sorted&&!n&&(!a||l>a||e.forceCrop)&&(m[l-1]f?x=new ri:e.getColumn(e.pointValKey||"y").length&&(m[0]f)&&(x=(d=this.cropData(i,u,f)).modified,p=d.start,c=!0))),m=x.getColumn("x")||[],{modified:x,cropped:c,cropStart:p,closestPointRange:rD([h?m.map(h.log2lin):m],()=>e.requireSorting&&!y&&rO(15,!1,e.chart))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,rL(this,"afterProcessData")}cropData(t,e,i){let s=t.getColumn("x",!0)||[],o=s.length,r={},a,n,h=0,l=o;for(a=0;a=e){h=Math.max(0,a-1);break}for(n=a;ni){l=n+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(r[e]=i.slice(h,l))}return{modified:new ri({columns:r}),start:h,end:l}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.dataTable.modified,s=this.getColumn("x",!0),o=this.pointClass,r=i.rowCount,a=this.cropStart||0,n=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?a:0,c=this.xAxis?.categories,p=this.pointArrayMap||["y"],g=this.dataColumnKeys(),u,f,m,x,y=this.data,b;if(!y&&!n){let t=[];t.length=e?.length||0,y=this.data=t}for(h&&n&&(this.options.keys=!1),x=0;xr.getColumn(t,!0)||[])||[],l=this.getColumn("x",!0),d=[],c=this.requireSorting&&!this.is("column")?1:0,p=!!s&&s.positiveValuesOnly,g=o||this.cropped||!i,u,f,m,x=0,y=0;for(i&&(x=(u=i.getExtremes()).min,y=u.max),m=0;m=x&&(l[m-c]||f)<=y)for(let t of h){let e=t[m];rR(e)&&(e>0||!p)&&d.push(e)}let b={activeYData:d,dataMin:rv(d),dataMax:rb(d)};return rL(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&h?.element&&h.attr(o?"height":"width",t+99)}),n.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),rH(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,rL(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,a,n;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,g=this[this.specialGroup||"markerGroup"],u=this.xAxis,f=rX(p.enabled,!u||!!u.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,n.x,n.y,n.width,n.height,a?r:p).add(g),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(n),s){let t=this.pointAttribs(i,l||!i.selected?void 0:"select");l?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,o=t.marker||{},r=o.symbol||s.symbol,a={},n,h,l=rX(o.radius,s&&s.radius);e&&(n=s.states[e],l=rX((h=o.states&&o.states[e])&&h.radius,n&&n.radius,l&&l+(n&&n.radiusPlus||0))),t.hasImage=r&&0===r.indexOf("url"),t.hasImage&&(l=0);let d=t.pos();return rR(l)&&d&&(i.crisp&&(d[0]=rw(d[0],t.hasImage?0:"rect"===r?s?.lineWidth||0:1)),a.x=d[0]-l,a.y=d[1]-l),l&&(a.width=a.height=2*l),a}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,o=s&&s.marker||{},r=s&&s.color,a=t&&t.color,n=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,g=rX(o.lineWidth,i.lineWidth),u=1;return d=r||n||a||d,c=o.fillColor||i.fillColor||d,p=o.lineColor||i.lineColor||d,e=e||"normal",h=i.states[e]||{},g=rX((l=o.states&&o.states[e]||{}).lineWidth,h.lineWidth,g+rX(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,"stroke-width":g,fill:c,opacity:u=rX(l.opacity,h.opacity,u)}}destroy(t){let e,i,s;let o=this,r=o.chart,a=/AppleWebKit\/533/.test(rx.navigator.userAgent),n=o.data||[];for(rL(o,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(o.axisTypes||[]).forEach(function(t){(s=o[t])&&s.series&&(rC(s.series,o),s.isDirty=s.forceRedraw=!0)}),o.legendItem&&o.chart.legend.destroyItem(o),e=n.length;e--;)(i=n[e])&&i.destroy&&i.destroy();for(let t of o.zones)rA(t,void 0,!0);Z.clearTimeout(o.animationTimeout),rH(o,function(t,e){t instanceof eU&&!t.survive&&t[a&&"group"===e?"hide":"destroy"]()}),r.hoverSeries===o&&(r.hoverSeries=void 0),rC(r.series,o),r.orderItems("series"),rH(o,function(e,i){t&&"hcEvents"===i||delete o[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:a,zoneAxis:n}=this,{inverted:h,renderer:l}=e,d=this[`${n}Axis`],{isXAxis:c,len:p=0,minPointOffset:g=0}=d||{},u=(i?.strokeWidth()||0)/2+1,f=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=rk(d.toPixels(rX(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===n&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:n,simpleClip:d}=e,p=0,g=0,f=r.len,y=a.len;c?(p=o,f=x):(g=o,y=x);let b=[["M",p,g],["L",f,g],["L",f,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...m,b[3],b[4]];m=s.reverse(),x=o,h&&(u(v),t&&u(b)),n?(n.animate({d:v}),d?.animate({d:b})):(n=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(n),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],a=!r,n={visibility:i,zIndex:s||.1};return rS(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(n.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(rS(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(n)[a?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:o?90:0,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||rF(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=rp(i.animation),r=t.visible?"inherit":"hidden",a=i.zIndex,n=e.seriesGroup,h=t.finishedAnimating?0:o.duration;rL(this,"render"),t.plotGroup("group","series",r,a,n),t.markerGroup=t.plotGroup("markerGroup","markers",r,a,n),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&o.defer&&(h+=o.defer),t.animationTimeout=rG(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,rL(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,rG(function(){e.kdTree=function t(i,s,o){let r,a;let n=i?.length;if(n)return r=e.kdAxisArray[s%o],i.sort((t,e)=>(t[r]||0)-(e[r]||0)),{point:i[a=Math.floor(n/2)],left:t(i.slice(0,a),s+1,o),right:t(i.slice(a+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type==="touchstart"?0:1)}searchKDTree(t,e,i,s,o){let r=this,[a,n]=this.kdAxisArray,h=e?"distX":"dist",l=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>[(t[i]||0)<(e[i]||0)?t:e,!1]),p=o||((t,e)=>t=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,a=o.renderer,n=o.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(rm?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=a.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:l,fill:i?l:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*n)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",t=>{r?.onTrackerMouseOut(t)}),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",h))})),rL(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,a;let n=this.options,{chart:h,data:l,dataTable:d,xAxis:c}=this,p=c&&c.hasNames&&c.names,g=n.data,u=this.getColumn("x");e=rX(e,!0);let f={series:this};this.pointClass.prototype.applyOptions.apply(f,[t]);let m=f.x;if(a=u.length,this.requireSorting&&mm;)a--;d.setRow(f,a,!0,{addColumns:!1}),p&&f.name&&(p[m]=f.name),g?.splice(a,0,t),(r||this.processedData)&&(this.data.splice(a,0,null),this.processData()),"point"===n.legendType&&this.generatePoints(),i&&(l[0]&&l[0].remove?l[0].remove(!1):([l,g,...Object.values(d.getColumns())].filter(rS).forEach(t=>{t.shift()}),d.rowCount-=1,rL(d,"afterDeleteRows"))),!1!==o&&rL(this,"addPoint",{point:f}),this.isDirty=!0,this.isDirtyData=!0,e&&h.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:a,dataTable:n}=s,h=r[t],l=function(){[a?.length===r.length?a:void 0,r,s.options.data,...Object.values(n.getColumns())].filter(rS).forEach(e=>{e.splice(t,1)}),n.rowCount-=1,rL(n,"afterDeleteRows"),h?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};rg(i,o),e=rX(e,!0),h?h.firePointEvent("remove",null,l):l()}remove(t,e,i,s){let o=this,r=o.chart;function a(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),rX(t,!0)&&r.redraw(e)}!1!==i?rL(o,"remove",null,a):a()}update(t,e){rL(this,"update",{options:t=rT(t,this.userOptions)});let i=this,s=i.chart,o=i.userOptions,r=i.initialType||i.type,a=s.options.plotOptions,n=ry[r].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],g=t.type||o.type||s.options.chart.type,u=!(this.hasDerivedData||g&&g!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(t=>i.hasOptionChanged(t)));g=g||r,u?(p.push("data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==t.visible&&p.push("area","graph"),i.parallelArrays.forEach(function(t){p.push(t+"Data")}),t.data&&(t.dataSorting&&rP(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=rW(o,{index:void 0===o.index?i.index:o.index,pointStart:a?.series?.pointStart??o.pointStart??i.getColumn("x")[0]},!u&&{data:i.options.data},t,h),u&&t.data&&(t.data=i.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(ry[g]){if(f=g!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,ry[g].prototype);else{let t=Object.hasOwnProperty.call(i,"hcEvents")&&i.hcEvents;for(c in n)i[c]=void 0;rP(i,ry[g].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else rO(17,!0,s,{missingModuleFor:g});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),u&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,o)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=r,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),rL(this,"afterUpdate"),rX(e,!0)&&s.redraw(!!u&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=rX(s?.[this.type]?.[t],s?.series?.[t]);return o&&!rS(r)?i!==o:i!==rX(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&rL(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&rL(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState("",!0)})}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,a=s.states,n=rX(a[t||"normal"]&&a[t||"normal"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))}),i.state=t,!i.chart.styledMode)){if(a[t]&&!1===a[t].enabled)return;if(t&&(h=a[t].lineWidth||h+(a[t].lineWidthPlus||0),l=rX(a[t].opacity,l)),o&&!o.dashstyle&&rR(h))for(let t of[o,...this.zones.map(t=>t.graph)])t?.animate({"stroke-width":h},n);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},n)})}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let a=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(t=>{i[t]?.[a]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),o&&(s.isDirtyBox=!0),rL(i,a),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),rL(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){ra[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}rY.defaultOptions={lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},rY.types=rc.seriesTypes,rY.registerType=rc.registerSeriesType,rP(rY.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:oG,requireSorting:!0,sorted:!0}),rc.series=rY;let rj=rY,{animObject:rU,setAnimation:rV}=tW,{registerEventOptions:r$}=i5,{composed:rZ,marginNames:rq}=w,{distribute:r_}=ec,{format:rK}=er,{addEvent:rJ,createElement:rQ,css:r0,defined:r1,discardElement:r2,find:r3,fireEvent:r5,isNumber:r6,merge:r9,pick:r4,pushUnique:r8,relativeLength:r7,stableSort:at,syncTimeout:ae}=Z;class ai{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),r$(this,e),rJ(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),rJ(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=r4(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=r9(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=r4(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(r9(!0,this.options,t)),"events"in this.options&&r$(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,r4(e,!0)&&i.redraw(),r5(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:a,symbol:n}=t.legendItem||{};if((t instanceof rj||t instanceof oG)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(r9(e?this.itemStyle:i)),a?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:h||t.color,"fill-opacity":h?1:l??.75}))}t.color=i,r5(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,a=!o.rtl,n=t.checkbox;if(e&&e.element){let o={translateX:a?i:this.legendWidth-i-2*r-4,translateY:s};e[r1(e.translateY)?"animate":"attr"](o,void 0,()=>{r5(this,"afterPositionItem",{item:t})})}n&&(n.x=i,n.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&r2(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(o){let r;let a=o.checkbox;a&&(r=t+s+a.y+(this.scrollOffset||0)+3,r0(a,{left:e.translateX+o.checkboxOffset+a.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*k?v.height:k))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,a=this.itemMarginTop,n=s?r4(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=a+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=a+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=a+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:n):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&r4(i.showInLegend,!r1(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||("point"===i.legendType?e.data:e)))}),r5(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(r,a){r.test(o)&&!r1(t[a])&&(i[rq[a]]=Math.max(i[rq[a]],i.legend[(a+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][a]*s[a%2?"x":"y"]+r4(s.margin,12)+e[a]+(i.titleOffset[a]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach(function(t){let o,r,a=s,n,h;t.yAxis&&(t.xAxis.options.reversed&&(a=!a),t.points&&(o=r3(a?t.points:t.points.slice(0).reverse(),function(t){return r6(t.plotY)})),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(h-.3*r):h+t.yAxis.height,i.push({target:n,size:r,item:t}))},this),r_(i,e.plotHeight)))t=o.item.legendItem||{},r6(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,o=this.getAllItems(),r,a,n,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=r7(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),at(o,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&o.reverse(),this.allItems=o,this.display=r=!!o.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,o.forEach(this.renderItem,this),o.forEach(this.layoutItem,this),a=(this.widthOption||this.offsetWidth)+s,n=this.lastItemY+this.lastLineHeight+this.titleHeight,n=this.handleOverflow(n)+s,d||(this.box=d=e.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),a>0&&n>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:a,height:n},d.strokeWidth())),h[r?"show":"hide"](),t.styledMode&&"none"===h.getStyle("display")&&(a=n=0),this.legendWidth=a,this.legendHeight=n,r&&this.align(),this.proximate||this.positionItems(),r5(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=r9(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(r9(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,o=this.options,r=o.y,a="top"===o.verticalAlign,n=this.padding,h=o.maxHeight,l=o.navigation,d=r4(l.animation,!0),c=l.arrowSize||12,p=this.pages,g=this.allItems,u=function(t){"number"==typeof t?k.attr({height:t}):k&&(e.clipRect=k.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?"rect("+n+"px,9999px,"+(n+t)+"px,0)":"auto")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr("fill","rgba(0,0,0,0.0001)"),e[t]},m,x,y,b=i.spacingBox.height+(a?-r:r)-n,v=this.nav,k=this.clipRect;return"horizontal"!==o.layout||"middle"===o.verticalAlign||o.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-n,0),this.currentPage=r4(this.currentPage,1),this.fullHeight=t,g.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),o=p.length;(!o||i-p[o-1]>m&&(x||i)!==p[o-1])&&(p.push(x||i),o++),y.pageIx=o-1,x&&((g[e-1].legendItem||{}).pageIx=o-1),e===g.length-1&&i+s-p[o-1]>m&&i>p[o-1]&&(p.push(i),y.pageIx=o),i!==x&&(x=i)}),k||(k=e.clipRect=s.clipRect(0,n-2,9999,0),e.contentGroup.clip(k)),u(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,c,c).add(v),f("upTracker").on("click",function(){e.scroll(-1,d)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol("triangle-down",0,0,c,c).add(v),f("downTracker").on("click",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(u(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,a=this.options.navigation,n=this.pager,h=this.padding,l=this.currentPage+t;l>o&&(l=o),l>0&&(void 0!==e&&rV(e,i),this.nav.attr({translateX:h,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),n.attr({text:l+"/"+o}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:l===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:1===l?a.inactiveColor:a.activeColor}),this.upTracker.css({cursor:1===l?"default":"pointer"}),this.down.attr({fill:l===o?a.inactiveColor:a.activeColor}),this.downTracker.css({cursor:l===o?"default":"pointer"})),this.scrollOffset=-s[l-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=l,this.positionCheckboxes(),ae(()=>{r5(this,"afterScroll",{currentPage:l})},rU(r4(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,a=t instanceof oG,n=t instanceof rj,h="highcharts-legend-"+(a?"point":"series")+"-active",l=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!a)})})};for(let i of d)i&&i.on("mouseover",function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(h),l||e.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||e.css(r9(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(h),t.setState()}).on("click",function(e){let i=function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")};r.removeClass(h),r5(s,"itemClick",{browserEvent:e,legendItem:t},i),a?t.firePointEvent("legendItemClick",{browserEvent:e}):n&&r5(t,"legendItemClick",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=rQ("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),rJ(t.checkbox,"click",function(e){let i=e.target;r5(t.series||t,"checkboxClick",{checked:i.checked,item:t},function(){t.select()})})}}!function(t){t.compose=function(e){r8(rZ,"Core.Legend")&&rJ(e,"beforeMargins",function(){this.legend=new t(this,this.options.legend)})}}(ai||(ai={}));let as=ai,{animate:ao,animObject:ar,setAnimation:aa}=tW,{defaultOptions:an}=tx,{numberFormat:ah}=er,{registerEventOptions:al}=i5,{charts:ad,doc:ac,marginNames:ap,svg:ag,win:au}=w,{seriesTypes:af}=rc,{addEvent:am,attr:ax,createElement:ay,css:ab,defined:av,diffObjects:ak,discardElement:aM,erase:aw,error:aS,extend:aA,find:aT,fireEvent:aC,getAlignFactor:aO,getStyle:aP,isArray:aE,isNumber:aL,isObject:aD,isString:aI,merge:aB,objectEach:az,pick:aR,pInt:aN,relativeLength:aW,removeEvent:aH,splat:aX,syncTimeout:aF,uniqueKey:aG}=Z;class aY{static chart(t,e,i){return new aY(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(aI(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:aR(t.zoomType,e.type),key:aR(t.zoomKey,e.key),pinchType:aR(t.pinchType,e.pinchType),singleTouch:aR(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:aB(e.resetButton,t.resetZoomButton)}}init(t,e){aC(this,"init",{args:arguments},function(){let i=aB(an,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=aA({},t),(this.renderTo=aI(o)?ac.getElementById(o):o)||aS(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new tc(aA(i.time||{},{locale:this.locale})),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||ah).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=ad.length,ad.push(this),w.chartCount++,al(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),aC(this,"afterInit"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=af[i];s||aS(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=aX(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?aX(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(h+r,t.pos)&&e<=Math.min(h+r+c.width,t.pos+t.len)||(u.isInsidePlot=!1)}if(!i.ignoreY&&u.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:a,len:1/0},e=i.paneCoordinates?t.pos+g:a+g;e>=Math.max(l+a,t.pos)&&e<=Math.min(l+a+c.height,t.pos+t.len)||(u.isInsidePlot=!1)}return aC(this,"afterIsInsidePlot",u),u.isInsidePlot}redraw(t){aC(this,"beforeRedraw");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,o=this.legend,r=this.userOptions.legend,a=this.renderer,n=a.isHidden(),h=[],l,d,c,p=this.isDirtyBox,g=this.isDirtyLegend,u;for(a.rootFontSize=a.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),aa(!!this.hasRendered&&t,this),n&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((u=i[c]).options.stacking||u.options.centerInCategory)&&(d=!0,u.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(u=i[c]).options.stacking&&(u.isDirty=!0);i.forEach(function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),g=!0):r&&(r.labelFormatter||r.labelFormat)&&(g=!0)),t.isDirtyData&&aC(t,"updatedData")}),g&&o&&o.options.enabled&&(o.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){aC(t,"afterSetExtremes",aA(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),aC(this,"predraw"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),a.draw(),aC(this,"redraw"),aC(this,"render"),n&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=aT(this.axes,i)||aT(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{aR(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(t=>t.selected)}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=aB(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(aA("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach(t=>{let i=this[t],r=this.options[t],a=aB(o),n=i?.textPxLength||0;if(i&&r){aC(this,"layOutTitle",{alignTo:a,key:t,textPxLength:n});let o=s.fontMetrics(i),h=o.b,l=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,g="title"===t?c?-3:0:c?e[0]+2:0,u=Math.min(a.width/n,1),f=Math.max(p,u),m=aB({y:"bottom"===d?h:g+h},{align:"title"===t?up?this.chartWidth:a.width)/f;i.alignValue!==m.align&&(i.placed=!1);let y=Math.round(i.css({width:`${x}px`}).getBBox(r.useHTML).height);if(m.height=y,i.align(m,!1,a).attr({align:m.align,scaleX:f,scaleY:f,"transform-origin":`${a.x+n*f*aO(m.align)} ${l}`}),!r.floating){let t=y*(y<1.2*l?1:f);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}},this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&i.caption?.verticalAlign==="bottom"&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,aC(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}}),e={width:aP(this.renderTo,"width",!0)||0,height:aP(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach(([t,e])=>{t.style.display=e}),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,aW(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(ab(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(ac.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(ac.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,ac.body.appendChild(e)),("none"===aP(e,"display",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:"block",overflow:"hidden"},e!==this.renderTo&&(i.height=0),ab(e,i),e.offsetWidth||e.style.setProperty("display","block","important")),(e=e.parentNode)!==ac.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t;let e=this.options,i=e.chart,s="data-highcharts-chart",o=aG(),r=this.renderTo,a=aN(ax(r,s));aL(a)&&ad[a]&&ad[a].hasRendered&&ad[a].destroy(),ax(r,s,this.index),r.innerHTML=tJ.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let n=this.chartHeight,h=this.chartWidth;ab(r,{overflow:"hidden"}),this.styledMode||(t=aA({position:"relative",overflow:"hidden",width:h+"px",height:n+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let l=ay("div",{id:o},t,r);this.container=l,this.getChartSize(),h===this.chartWidth||(h=this.chartWidth,this.styledMode||ab(l,{width:aR(i.style?.width,h+"px")})),this.containerBox=this.getContainerBox(),this._cursor=l.style.cursor;let d=i.renderer||!ag?ea.getRendererType(i.renderer):iW;if(this.renderer=new d(l,h,n,void 0,i.forExport,e.exporting&&e.exporting.allowHTML,this.styledMode),aa(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,aC(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!av(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!av(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),aC(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?o(t.axes):i&&i.length&&o(i),ap.forEach(function(i,o){av(s[o])||(t[i]+=e[o])}),t.setChartSize()}getOptions(){return ak(this.userOptions,an)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(Z.clearTimeout(e.reflowTimeout),e.reflowTimeout=aF(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=am(au,"resize",e);am(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,aa(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:a,chartHeight:n,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||a!==s.oldChartWidth||n!==s.oldChartHeight)&&(s.styledMode||(r?ao:ab)(s.container,{width:`${a+h}px`,height:`${n+l}px`},r),s.setChartSize(!0),o.setSize(a,n,r),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,aC(s,"resize"),setTimeout(()=>{s&&aC(s,"endResize")},ar(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o;let{chartHeight:r,chartWidth:a,inverted:n,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[n?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(a-e-this.marginRight)),this.plotHeight=o=Math.max(0,Math.round(r-i-this.marginBottom)),this.plotSizeX=n?o:s,this.plotSizeY=n?s:o,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:a-h[3]-h[1],height:r-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),aC(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){aC(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;["margin","spacing"].forEach(function(i){let s=e[i],o=aD(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach(function(s,r){t[i][r]=aR(e[i+s],o[r])})}),ap.forEach(function(e,i){t[e]=aR(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,o=this.styledMode,r=this.plotBGImage,a=t.backgroundColor,n=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,g=this.plotBox,u=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,k,M="animate";m||(this.chartBackground=m=e.rect().addClass("highcharts-background").add(),M="attr"),o?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),k={fill:a||"none"},(b||m["stroke-width"])&&(k.stroke=t.borderColor,k["stroke-width"]=b),m.attr(k).shadow(t.shadow)),m[M]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),M="animate",x||(M="attr",this.plotBackground=x=e.rect().addClass("highcharts-plot-background").add()),x[M](g),!o&&(x.attr({fill:n||"none"}).shadow(t.plotShadow),h&&(r?(h!==r.attr("href")&&r.attr("href",h),r.animate(g)):this.plotBGImage=e.image(h,l,d,c,p).add())),u?u.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),M="animate",y||(M="attr",this.plotBorder=y=e.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),o||y.attr({stroke:t.plotBorderColor,"stroke-width":t.plotBorderWidth||0,fill:"none"}),y[M](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,aC(this,"afterDrawChartBox")}propFromSeries(){let t,e,i;let s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach(function(a){for(e=af[o.type],i=o[a]||e&&e.prototype[a],t=r&&r.length;!i&&t--;)(e=af[r[t].type])&&e.prototype[a]&&(i=!0);s[a]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(aI(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=aR(t.options.visible,s.options.visible,t.visible))}}),aC(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,o=t=>{t.forEach(t=>{t.visible&&t.render()})},r=0,a=!0,n,h=0;for(let e of(this.setTitle(),aC(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&"colorAxis"!==e.coll&&!this.polar){r=t.tickLength,e.createGroups();let s=new sn(e,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&aR(i.reserveSpace,!aL(t.crossing))&&(r=o.getBBox().height+i.distance+Math.max(t.offset||0,0)),r){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-r,0);(a||n||s>1)&&h(h?1:1.1),n=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?o(t):e&&e.length&&o(e),this.seriesGroup||(this.seriesGroup=i.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=aB(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){i.href&&(au.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,o=e.container,r=o&&o.parentNode;for(aC(e,"destroy"),e.renderer.forExport?aw(ad,e):ad[e.index]=void 0,w.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),aH(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),o&&(o.innerHTML=tJ.emptyHTML,aH(o),r&&aM(o)),az(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=aE(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),aC(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),aC(this,"load"),aC(this,"render"),av(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e&&e.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[({x:"xAxis",xy:"axes",y:"yAxis"})[o]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),a=i.options.chart;a?.panning&&(a.panning=s),aC(this,"pan",{originalEvent:t},()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),ab(i.container,{cursor:"move"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:o,selection:r,to:a={},trigger:n}=t,{inverted:h,time:l}=this,d=!1,c,p;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:g,minPointOffset:u=0,options:f,reversed:m}=t,x=e?"width":"height",y=e?"x":"y",b=aR(a[x],t.len),v=aR(s[x],t.len),k=10>Math.abs(b)?1:b/v,M=(s[y]||0)+v/2-t.pos,w=M-((a[y]??t.pos)+b/2-t.pos)/k,S=m&&!h||!m&&h?-1:1;if(!o&&(M<0||M>t.len))continue;let A=t.toValue(w,!0)+(r||t.isOrdinal?0:u*S),T=t.toValue(w+g/k,!0)-(r||t.isOrdinal?0:u*S||0),C=t.allExtremes;if(A>T&&([A,T]=[T,A]),1===k&&!o&&"yAxis"===t.coll&&!C){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);C??(C={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),aL(t.dataMin)&&aL(t.dataMax)&&(C.dataMin=Math.min(t.dataMin,C.dataMin),C.dataMax=Math.max(t.dataMax,C.dataMax))}t.allExtremes=C}let{dataMin:O,dataMax:P,min:E,max:L}=aA(t.getExtremes(),C||{}),D=l.parse(f.min),I=l.parse(f.max),B=O??D,z=P??I,R=T-A,N=t.categories?0:Math.min(R,z-B),W=B-N*(av(D)?0:f.minPadding),H=z+N*(av(I)?0:f.maxPadding),X=t.allowZoomOutside||1===k||"zoom"!==n&&k>1,F=Math.min(D??W,W,X?E:W),G=Math.max(I??H,H,X?L:H);(!t.isOrdinal||t.options.overscroll||1!==k||o)&&(A=1&&(T=A+R)),T>G&&(T=G,k>=1&&(A=T-R)),(o||t.series.length&&(A!==E||T!==L)&&A>=F&&T<=G)&&(r?r[t.coll].push({axis:t,min:A,max:T}):(t.isPanning="zoom"!==n,t.isPanning&&(p=!0),t.setExtremes(o?void 0:A,o?void 0:T,!1,!1,{move:w,trigger:n,scale:k}),!o&&(A>F||T{delete t.selection,t.trigger="zoom",this.transform(t)}):(!c||p||this.resetZoomButton?!c&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===n&&(this.options.chart.animation??this.pointCount<100)))),d}}aA(aY.prototype,{callbacks:[],collectionsWithInit:{xAxis:[aY.prototype.addAxis,[!0]],yAxis:[aY.prototype.addAxis,[!1]],series:[aY.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let{stop:aj}=tW,{composed:aU}=w,{addEvent:aV,createElement:a$,css:aZ,defined:aq,erase:a_,merge:aK,pushUnique:aJ}=Z;function aQ(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new a1(this)),t?.applyFixed()}function a0(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class a1{static compose(t,e,i){aJ(aU,this.compose)&&(aV(t,"afterInit",a0),aV(e,"afterSetChartSize",t=>this.afterSetSize(t.target,t)),aV(e,"render",aQ),aV(i,"show",a0))}static afterSetSize(t,e){let i,s,o;let{minWidth:r,minHeight:a}=t.options.chart.scrollablePlotArea||{},{clipBox:n,plotBox:h,inverted:l,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=aK(t.plotBox),h.width=t.plotWidth+=i,n[l?"height":"width"]+=i,o=!0)):a&&(t.scrollablePixelsY=s=Math.max(0,a-t.chartHeight),aq(s)&&(t.scrollablePlotBox=aK(t.plotBox),h.height=t.plotHeight+=s,n[l?"width":"height"]+=s,o=!1)),aq(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let i=t.options.chart,s=ea.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(a.overflowX="auto"),t.scrollablePixelsY&&(a.overflowY="auto"),this.chart=t;let n=this.parentDiv=a$("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),h=this.scrollingContainer=a$("div",{className:"highcharts-scrolling"},a,n),l=this.innerContainer=a$("div",{className:"highcharts-inner-container"},void 0,h),d=this.fixedDiv=a$("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),h.parentNode.insertBefore(d,h),aZ(t.renderTo,{overflow:"visible"}),aV(t,"afterShowResetZoom",r),aV(t,"afterApplyDrilldown",r),aV(t,"afterLayOutTitles",r),aV(h,"scroll",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),l.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:a,container:n,plotHeight:h,plotLeft:l,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:g=0}=t,{scrollPositionX:u=0,scrollPositionY:f=0}=t.options.chart.scrollablePlotArea||{},m=r+p,x=a+g;e.setSize(r,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),aj(t.container),aZ(n,{width:`${m}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:m,height:x,viewBox:[0,0,m,x].join(" ")}),t.chartBackground?.attr({width:m,height:x}),aZ(s,{width:`${r}px`,height:`${a}px`}),aq(i)||(s.scrollLeft=p*u,s.scrollTop=g*f);let y=d-o[0]-1,b=l-o[3]-1,v=d+h+o[2]+1,k=l+c+o[1]+1,M=l+c-p,w=d+h-g,S=[["M",0,0]];p?S=[["M",0,y],["L",l-1,y],["L",l-1,v],["L",0,v],["Z"],["M",M,y],["L",r,y],["L",r,v],["L",M,v],["Z"]]:g&&(S=[["M",b,0],["L",b,d-1],["L",k,d-1],["L",k,0],["Z"],["M",b,w],["L",b,a],["L",k,a],["L",k,w],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,a=a1.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i?t=".highcharts-xaxis":o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),t&&!(this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t))for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])aJ(a,e);else for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])a_(a,e);for(let t of a)[].forEach.call(e.querySelectorAll(t),t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"})}}a1.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:a2}=er,{series:a3}=rc,{destroyObjectProperties:a5,fireEvent:a6,getAlignFactor:a9,isNumber:a4,pick:a8}=Z,a7=class{constructor(t,e,i,s,o){let r=t.chart.inverted,a=t.reversed;this.axis=t;let n=this.isNegative=!!i!=!!a;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?n?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":n?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?n?"right":"left":"center")}destroy(){a5(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?a2(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:a8(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,a6(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:a,axis:n,label:h,options:l,textAlign:d}=this,c=n.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:g}=a;if(h&&p){let t=h.getBBox(void 0,0),e=h.padding,i="justify"===a8(l.overflow,"justify"),s;a.x=l.x||0,a.y=l.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:t,verticalAlign:g,textAlign:d});p.x-=o,p.y-=r,h.align(a,!1,p),(s=c.isInsidePlot(h.alignAttr.x+a.x+o,h.alignAttr.y+a.y+r))||(i=!1),i&&a3.prototype.justifyDataLabel.call(n,h,a,h.alignAttr,t,p),h.attr({x:h.alignAttr.x,y:h.alignAttr.y,rotation:l.rotation,rotationOriginX:t.width*a9(l.textAlign||"center"),rotationOriginY:t.height/2}),a8(!i&&l.crop,!0)&&(s=a4(h.x)&&a4(h.y)&&c.isInsidePlot(h.x-e+(h.width||0),h.y)&&c.isInsidePlot(h.x+e,h.y)),h[s?"show":"hide"]()}a6(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*a9(i)-1),y:t.height/2*2*(1-a9(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:a,boxBottom:n}=t,h=e.stacking.usePercentage?100:a8(s,this.total,0),l=e.toPixels(h),d=t.xAxis||i.xAxis[0],c=a8(o,d.translate(this.x))+r,p=Math.abs(l-e.toPixels(n||a4(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),g=i.inverted,u=this.isNegative;return g?{x:(u?l:l-p)-i.plotLeft,y:d.height-c-a+d.top-i.plotTop,width:p,height:a}:{x:c+d.transB-i.plotLeft,y:(u?l-p:l)-i.plotTop,width:a,height:p}}},{getDeferredAnimation:nt}=tW,{series:{prototype:ne}}=rc,{addEvent:ni,correctFloat:ns,defined:no,destroyObjectProperties:nr,fireEvent:na,isNumber:nn,objectEach:nh,pick:nl}=Z;function nd(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,nl(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))})}function nc(){let t=this.stacking;if(t){let e=t.stacks;nh(e,(t,i)=>{nr(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function np(){this.stacking||(this.stacking=new ny(this))}function ng(t,e,i,s){return!no(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function nu(){let t;let e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),a=e.options.stacking,n=e[a+"Stacker"];n&&[s,"-"+s].forEach(i=>{let s=r.length,a,h,l;for(;s--;)a=r[s],t=e.getStackIndicator(t,a,e.index,i),h=o[i]?.[a],(l=h?.points[t.key||""])&&n.call(e,l,h,s)})}function nf(t,e,i){let s=e.total?100/e.total:0;t[0]=ns(t[0]*s),t[1]=ns(t[1]*s),this.stackedYData[i]=t[1]}function nm(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?ne.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function nx(t,e){let i,s,o,r,a,n,h;let l=e||this.options.stacking;if(!l||!this.reserveSpace()||(({group:"xAxis"})[l]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],g=c.length,u=this.options,f=u.threshold||0,m=u.startFromThreshold?f:0,x=u.stack,y=e?`${this.type},${l}`:this.stackKey||"",b="-"+y,v=this.negStacks,k=t.stacking,M=k.stacks,w=k.oldStacks;for(k.stacksTouched+=1,h=0;h0&&!1===this.singleStacks&&(o.points[n][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[n],delete o.points[this.index]);let S=o.total||0;"percent"===l?(r=s?y:b,S=v&&M[r]?.[e]?(r=M[r][e]).total=Math.max(r.total||0,S)+Math.abs(u):ns(S+Math.abs(u))):"group"===l?nn(g)&&S++:S=ns(S+u),"group"===l?o.cumulative=(S||1)-1:o.cumulative=ns(nl(o.cumulative,m)+u),o.total=S,null!==g&&(o.points[n].push(o.cumulative),p[h]=o.cumulative,o.hasValidPoints=!0)}"percent"===l&&(k.usePercentage=!0),"group"!==l&&(this.stackedYData=p),k.oldStacks={}}class ny{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,a=s.length;for(this.resetStacks(),this.usePercentage=!1,e=a;e--;)t=s[r?e:a-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{nh(t,t=>{t.cumulative=t.total})}))}resetStacks(){nh(this.stacks,t=>{nh(t,(e,i)=>{nn(e.touched)&&e.touched{nh(t,t=>{t.render(r)})}),r.animate({opacity:1},o)}}(g||(g={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(ni(t,"init",np),ni(t,"destroy",nc),s.getStacks=nd,o.getStackIndicator=ng,o.modifyStacks=nu,o.percentStacker=nf,o.setGroupedPoints=nm,o.setStackedPoints=nx)};let nb=g,{defined:nv,merge:nk,isObject:nM}=Z;class nw extends rj{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,o)=>{let r,a=s.graph,n=a?"animate":"attr",h=s.dashStyle||t.dashStyle;a?(a.endX=this.preventGraphAnimation?null:e.xMap,a.animate({d:e})):e.length&&(s.graph=a=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),a&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},h?r.dashstyle=h:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),a[n](r).shadow(t.shadow&&nk({filterUnits:"userSpaceOnUse"},nM(t.shadow)?t.shadow:{}))),a&&(a.startX=e.xMap,a.isArea=e.isArea)})}getGraphPath(t,e,i){let s=this,o=s.options,r=[],a=[],n,h=o.step,l=(t=t||s.points).reversed;return l&&t.reverse(),(h=({right:1,center:2})[h]||h&&3)&&l&&(h=4-h),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(l,d){let c;let p=l.plotX,g=l.plotY,u=t[d-1],f=l.isNull||"number"!=typeof g;(l.leftCliff||u&&u.rightCliff)&&!i&&(n=!0),f&&!nv(e)&&d>0?n=!o.connectNulls:f&&!e?n=!0:(0===d||n?c=[["M",l.plotX,l.plotY]]:s.getPointSpline?c=[s.getPointSpline(t,l,d)]:h?(c=1===h?[["L",u.plotX,g]]:2===h?[["L",(u.plotX+p)/2,u.plotY],["L",(u.plotX+p)/2,g]]:[["L",p,u.plotY]]).push(["L",p,g]):c=[["L",p,g]],a.push(l.x),h&&(a.push(l.x),2===h&&a.push(l.x)),r.push.apply(r,c),n=!1)}),r.xMap=a,s.graphPath=r,r}}nw.defaultOptions=nk(rj.defaultOptions,{legendSymbol:"lineMarker"}),rc.registerSeriesType("line",nw);let{seriesTypes:{line:nS}}=rc,{extend:nA,merge:nT,objectEach:nC,pick:nO}=Z;class nP extends nS{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let o={},r=i.fillColor||e.fillColor,a=i.area,n=a?"animate":"attr";a?(a.endX=this.preventGraphAnimation?null:t.xMap,a.animate({d:t})):(o.zIndex=0,(a=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,a.css({pointerEvents:this.stickyTracking?"none":"auto"})),a[n](o),a.startX=t.xMap,a.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,s;let o=nS.prototype.getGraphPath,r=this.options,a=r.stacking,n=this.yAxis,h=[],l=[],d=this.index,c=n.stacking.stacks[this.stackKey],p=r.threshold,g=Math.round(n.getThreshold(r.threshold)),u=nO(r.connectNulls,"percent"===a),f=function(i,s,o){let r=t[i],u=a&&c[r.x].points[d],f=r[o+"Null"]||0,m=r[o+"Cliff"]||0,x,y,b=!0;m||f?(x=(f?u[0]:u[1])+m,y=u[0]+m,b=!!f):!a&&t[s]&&t[s].isNull&&(x=y=p),void 0!==x&&(l.push({plotX:e,plotY:null===x?g:n.getThreshold(x),isNull:b,isCliff:!0}),h.push({plotX:e,plotY:null===y?g:n.getThreshold(y),doCurve:!1}))};t=t||this.points,a&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&a&&l.some(t=>t.isCliff)&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=m.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,a=r.stacking.stacks[this.stackKey],n={},h=r.series,l=h.length,d=r.options.reversedStacks?1:-1,c=h.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,g){let u=0,f,m;if(n[t]&&!n[t].isNull)i.push(n[t]),[-1,1].forEach(function(i){let o=1===i?"rightNull":"leftNull",r=a[s[g+i]],u=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>h?(o=Math.max(i,h),a=2*h-o):op&&a>h?(a=Math.max(p,h),o=2*h-a):a1){let o=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),r=0,a=0;nJ(this.xAxis.stacking?.stacks,t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],n={};if(e&&nZ(s)){let t=this.index,i=Object.keys(e).filter(t=>!t.match(",")&&e[t]&&e[t].length>1).map(parseFloat).filter(t=>-1!==o.indexOf(t)).filter(e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(nU(s)){if(nq(n[s]))return t===e&&(t=n[s]),!1;n[s]=e}return!0}).sort((t,e)=>e-t);r=i.indexOf(t),a=i.length}}),r=this.xAxis.reversed?a-1-r:r;let n=(a-1)*s.paddedWidth+e;t=(i.plotX||0)+n/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=nK(i.borderWidth,s?0:1),r=t.xAxis,a=t.yAxis,n=i.threshold,h=nK(i.minPointLength,5),l=t.getColumnMetrics(),d=l.width,c=t.pointXOffset=l.offset,p=t.dataMin,g=t.dataMax,u=t.translatedThreshold=a.getThreshold(n),f=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(f=Math.ceil(f)),rj.prototype.translate.apply(t),t.points.forEach(function(s){let o=nK(s.yBottom,u),m=999+Math.abs(o),x=s.plotX||0,y=nY(s.plotY,-m,a.len+m),b,v=Math.min(y,o),k=Math.max(y,o)-v,M=d,w=x+c,S=f;h&&Math.abs(k)h?o-h:u-(b?h:0)),nU(s.options.pointWidth)&&(w-=Math.round(((M=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(w=t.adjustForMissingColumns(w,M,s,l)),s.barX=w,s.pointWidth=M,s.tooltipPos=e.inverted?[nY(a.len+a.pos-e.plotLeft-y,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),r.len+r.pos-e.plotTop-w-S/2,k]:[r.left-e.plotLeft+w+S/2,nY(y+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),k],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(w,s.isNull?u:v,S,s.isNull?0:k)}),n$(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},o=s.stroke||"borderColor",r=s["stroke-width"]||"borderWidth",a,n,h,l=t&&t.color||this.color,d=t&&t[o]||i[o]||l,c=t&&t.options.dashStyle||i.dashStyle,p=t&&t[r]||i[r]||this[r]||0,g=nK(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(n=t.getZone(),l=t.options.color||n&&(n.color||t.nonZonedColor)||this.color,n&&(d=n.borderColor||d,c=n.dashStyle||c,p=n.borderWidth||p)),e&&t&&(h=(a=n_(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,l=a.color||void 0!==h&&nF(l).brighten(a.brightness).get()||l,d=a[o]||d,p=a[r]||p,c=a.dashStyle||c,g=nK(a.opacity,g));let u={fill:l,stroke:d,"stroke-width":p,opacity:g};return c&&(u.dashstyle=c),u}drawPoints(t=this.points){let e;let i=this,s=this.chart,o=i.options,r=s.renderer,a=o.animationLimit||250;t.forEach(function(t){let n=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:a}=this,n=this.isCartesian&&r.inverted,h=t.plotX,l=t.plotY,d=i.rotation||0,c=n3(h)&&n3(l)&&r.isInsidePlot(h,Math.round(l),{inverted:n,paneCoordinates:!0,series:this}),p=0===d&&"justify"===he(i.overflow,a?"none":"justify"),g=this.visible&&!1!==t.visible&&n3(h)&&(t.series.forceDL||a&&!p||c||he(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(h,n?s.x+1:s.y+s.height-1,{inverted:n,paneCoordinates:!0,series:this})),u=t.pos();if(g&&u){var f;let h=e.getBBox(),l=e.getBBox(void 0,0);if(s=n5({x:u[0],y:Math.round(u[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[n?"x":"y"]=0,s[n?"width":"height"]=this.yAxis?.len||0),n5(i,{width:h.width,height:h.height}),f=s,a&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,f),e.align(n7(i,{width:l.width,height:l.height}),!1,s,!1),e.alignAttr.x+=n9(i.align)*(l.width-h.width),e.alignAttr.y+=n9(i.verticalAlign)*(l.height-h.height),e.attr({"text-align":e.alignAttr["text-align"]||"center"})[e.placed?"animate":"attr"]({x:e.alignAttr.x+(h.width-l.width)/2,y:e.alignAttr.y+(h.height-l.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,h,s,o);else if(he(i.crop,!0)){let{x:t,y:i}=e.alignAttr;g=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+h.width-1,i+h.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:u[0],anchorY:u[1]})}o&&a&&(e.placed=!1),g||a&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:a,plotBackgroundColor:l}=s.options.chart,d=r.getContrast(n8(l)&&l||n8(a)&&a||"#000000"),c=h(i),{animation:p,defer:g}=c[0],u=g?n1(s,p,i):{defer:0,duration:0};n6(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(u),t.forEach(t=>{let a=t.dataLabels||[];hs(n(c,t.dlOptions||t.options?.dataLabels)).forEach((n,h)=>{let l=n.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o}return!0}(t,n),{backgroundColor:c,borderColor:p,distance:g,style:u={}}=n,f,m,x,y={},b=a[h],v=!b,k;l&&(m=n3(f=he(n[t.formatPrefix+"Format"],n.format))?n2(f,t,s):(n[t.formatPrefix+"Formatter"]||n.formatter).call(t,n),x=n.rotation,!s.styledMode&&(u.color=he(n.color,u.color,n8(i.color)?i.color:void 0,"#000000"),"contrast"===u.color?("none"!==c&&(k=c),t.contrastColor=r.getContrast("auto"!==k&&k||t.color||i.color),u.color=k||!n3(g)&&n.inside||0>hi(g||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(u.cursor=o.cursor)),y={r:n.borderRadius||0,rotation:x,padding:n.padding,zIndex:1},s.styledMode||(y.fill="auto"===c?t.color:c,y.stroke="auto"===p?t.color:p,y["stroke-width"]=n.borderWidth),ht(y,(t,e)=>{void 0===t&&delete y[e]})),!b||l&&n3(m)&&!!b.div==!!n.useHTML&&(b.rotation&&n.rotation||b.rotation===n.rotation)||(b=void 0,v=!0),l&&n3(m)&&(b?y.text=m:(b=r.label(m,0,0,n.shape,void 0,void 0,n.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(n.className||"")+(n.useHTML?" highcharts-tracker":"")),b&&(b.options=n,b.attr(y),s.styledMode?u.width&&b.css({width:u.width,textOverflow:u.textOverflow,whiteSpace:u.whiteSpace}):b.css(u).shadow(n.shadow),n6(b,"beforeAddingDataLabel",{labelOptions:n,point:t}),b.added||b.add(e),i.alignDataLabel(t,b,n,void 0,v),b.isActive=!0,a[h]&&a[h]!==b&&a[h].destroy(),a[h]=b))});let h=a.length;for(;h--;)a[h]&&a[h].isActive?a[h].isActive=!1:(a[h]?.destroy(),a.splice(h,1));t.dataLabel=a[0],t.dataLabels=a})),n6(this,"afterDrawDataLabels")}function a(t,e,i,s,o,r){let a=this.chart,n=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=a.inverted?this.yAxis:this.xAxis,c=d?d.left-a.plotLeft:0,p=a.inverted?this.xAxis:this.yAxis,g=p?p.top-a.plotTop:0,{x:u=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&("right"===n&&u>=0?(e.align="left",e.inside=!0):u-=m,x=!0),(m=(i.x||0)+s.width-l+c)>a.plotWidth&&("left"===n&&u<=0?(e.align="right",e.inside=!0):u+=a.plotWidth-m,x=!0),(m=i.y+l+g)<0&&("bottom"===h&&f>=0?(e.verticalAlign="top",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+g)>a.plotHeight&&("top"===h&&f<=0?(e.verticalAlign="bottom",e.inside=!0):f+=a.plotHeight-m,x=!0),x&&(e.x=u,e.y=f,t.placed=!r,t.align(e,void 0,o)),x}function n(t,e){let i=[],s;if(n4(t)&&!n4(e))i=t.map(function(t){return n7(t,e)});else if(n4(e)&&!n4(t))i=e.map(function(e){return n7(t,e)});else if(n4(t)||n4(e)){if(n4(t)&&n4(e))for(s=Math.max(t.length,e.length);s--;)i[s]=n7(t[s],e[s])}else i=n7(t,e);return i}function h(t){let e=t.chart.options.plotOptions;return hs(n(n(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function l(t,e,i,s,o){let r=this.chart,a=r.inverted,n=this.xAxis,h=n.reversed,l=((a?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=a?o.x:h?-l-c:n.width-l+c,e.startYPos=a?h?this.yAxis.height-l+c:-l-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let n=t.prototype;n.initDataLabels||(n.initDataLabels=o,n.initDataLabelsGroup=s,n.alignDataLabel=i,n.drawDataLabels=r,n.justifyDataLabel=a,n.setDataLabelStartPos=l,n.hasDataLabels=e)}}(u||(u={}));let ho=u,{composed:hr}=w,{series:ha}=rc,{merge:hn,pick:hh,pushUnique:hl}=Z;!function(t){function e(t,e,i,s,o){let r=this.chart.inverted,a=t.series,n=(a.xAxis?a.xAxis.len:this.chart.plotSizeX)||0,h=(a.yAxis?a.yAxis.len:this.chart.plotSizeY)||0,l=t.dlBox||t.shapeArgs,d=hh(t.below,t.plotY>hh(this.translatedThreshold,h)),c=hh(i.inside,!!this.options.stacking);if(l){if(s=hn(l),!("allow"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}),hx(hb.prototype,{drawTracker:hu.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),hm(hb,"afterTranslate",function(){this.applyJitter()}),rc.registerSeriesType("scatter",hb);let{deg2rad:hv}=w,{fireEvent:hk,isNumber:hM,pick:hw,relativeLength:hS}=Z;!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,o=e.plotHeight-2*i,r=t.center,a=Math.min(s,o),n=t.thickness,h,l=t.size,d=t.innerSize||0,c,p;"string"==typeof l&&(l=parseFloat(l)),"string"==typeof d&&(d=parseFloat(d));let g=[hw(r?.[0],"50%"),hw(r?.[1],"50%"),hw(l&&l<0?void 0:t.size,"100%"),hw(d&&d<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof rj||(g[3]=0),c=0;c<4;++c)p=g[c],h=c<2||2===c&&/%$/.test(p),g[c]=hS(p,[s,o,a,g[2]][c])+(h?i:0);return g[3]>g[2]&&(g[3]=g[2]),hM(n)&&2*n0&&(g[3]=g[2]-2*n),hk(this,"afterGetCenter",{positions:g}),g},t.getStartAndEndRadians=function(t,e){let i=hM(t)?t:0,s=hM(e)&&e>i&&e-i<360?e:i+360;return{start:hv*(i+-90),end:hv*(s+-90)}}}(m||(m={}));let hA=m,{setAnimation:hT}=tW,{addEvent:hC,defined:hO,extend:hP,isNumber:hE,pick:hL,relativeLength:hD}=Z;class hI extends oG{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name="Slice");let s=t=>{this.slice("select"===t.type)};hC(this,"select",s),hC(this,"unselect",s)}isValid(){return hE(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;hT(i,s.chart),e=hL(e,!0),this.sliced=this.options.sliced=t=hO(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}hP(hI.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:a}=this,[n,h,l]=a.center,d=l/2,{plotLeft:c,plotWidth:p}=a.chart,g="left"===t.alignment,{x:u,y:f}=t,m=o.x;if(i.crookDistance){let t=hD(i.crookDistance,1);m=g?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(h-f)*Math.tan(s-Math.PI/2);let x=[["M",u,f]];return(g?m<=u&&m>=o.x:m>=u&&m<=o.x)&&x.push(["L",m,f]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:hB}=hA,{noop:hz}=w,{clamp:hR,extend:hN,fireEvent:hW,merge:hH,pick:hX}=Z;class hF extends rj{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:hX(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:e9.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,a=s.dataLabelPosition,n=a?.distance||0,h=Math.asin(hR((t-o[1])/(r+n),-1,1));return o[0]+Math.cos(h)*(r+n)*(e?-1:1)+(n>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s;let o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach(function(a){let n={};e=a.graphic,!a.isNull&&e?(s=a.shapeArgs,t=a.getTranslate(),r.styledMode||(i=o.pointAttribs(a,a.selected&&"select")),a.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),a.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||hH(!0,n,i),hH(!0,n,s,t),e.animate(n)),e.attr({visibility:a.visible?"inherit":"hidden"}),e.addClass(a.getClassName(),!0)):e&&(a.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){hW(this,"translate"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=hB(e.startAngle,e.endAngle),o=this.startAngleRad=s.start,r=(this.endAngleRad=s.end)-o,a=this.points,n=e.ignoreHiddenPoint,h=a.length,l,d,c,p,g,u,f,m=0;for(t||(this.center=t=this.getCenter()),u=0;u1.5*Math.PI?c-=2*Math.PI:c<-Math.PI/2&&(c+=2*Math.PI),f.slicedTranslation={translateX:Math.round(Math.cos(c)*i),translateY:Math.round(Math.sin(c)*i)},p=Math.cos(c)*t[2]/2,g=Math.sin(c)*t[2]/2,f.tooltipPos=[t[0]+.7*p,t[1]+.7*g],f.half=c<-Math.PI/2||c>Math.PI/2?1:0,f.angle=c}hW(this,"afterTranslate")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,o,r=0;for(s=0;s0&&(o.visible||!i)?o.y/r*100:0,o.total=r}}hF.defaultOptions=hH(rj.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}),hN(hF.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:n0.prototype.drawTracker,getCenter:hA.getCenter,getSymbol:hz,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:n0.prototype.pointAttribs,pointClass:hI,requireSorting:!1,searchPoint:hz,trackerGroups:["group","dataLabelsGroup"]}),rc.registerSeriesType("pie",hF);let{composed:hG,noop:hY}=w,{distribute:hj}=ec,{series:hU}=rc,{arrayMax:hV,clamp:h$,defined:hZ,pick:hq,pushUnique:h_,relativeLength:hK}=Z;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o=0,r;return t.forEach(function(t){(r=t.dataLabel.getBBox().width)>o&&(o=r)}),e?o+s:i-o-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:a,options:n}=this,h=a[2]/2,l=Math.cos(r),d=Math.sin(r),c=a[0]+l*h,p=a[1]+d*h,g=Math.min((n.slicedOffset||0)+(n.borderWidth||0),e/5);return{natural:{x:c+l*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+l*g,y:p+d*g},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,o=i.plotHeight,r=i.plotLeft,a=Math.round(i.chartWidth/3),n=t.center,h=n[2]/2,l=n[1],d=[[],[]],c=[0,0,0,0],p=t.dataLabelPositioners,g,u,f,m=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)})}),hU.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=n[2]/2,o=e.options,r=hK(o?.distance||0,s);0===i&&d[t.half].push(t),!hZ(o?.style?.width)&&e.getBBox().width>a&&(e.css({width:Math.round(.7*a)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),m=Math.max(m,r)})}),d.forEach((e,a)=>{let d=e.length,g=[],x,y,b=0,v;d&&(t.sortByAngle(e,a-.5),m>0&&(x=Math.max(0,l-h-m),y=Math.min(l+h+m,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,l-h-s.distance),s.bottom=Math.min(l+h+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},g.push(t.distributeBox))})}),hj(g,v=y+b-x,v/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(l=>{let d=l.options||{},m=i.distributeBox,x=l.dataLabelPosition,y=x?.natural.y||0,b=d.connectorPadding||0,v=l.lineHeight||21,k=(v-l.getBBox().height)/2,M=0,w=y,S="inherit";if(x){if(g&&hZ(m)&&x.distance>0&&(void 0===m.pos?S="hidden":(f=m.size,w=p.radialDistributionY(i,l))),d.justify)M=p.justify(i,l,h,n);else switch(d.alignTo){case"connectors":M=p.alignToConnectors(e,a,s,r);break;case"plotEdges":M=p.alignToPlotEdges(l,a,s,r);break;default:M=p.radialDistributionX(t,i,w-k,y,l)}if(x.attribs={visibility:S,align:x.alignment},x.posAttribs={x:M+(d.x||0)+(({left:b,right:-b})[x.alignment]||0),y:w+(d.y||0)-v/2},x.computed.x=M,x.computed.y=w-k,hq(d.crop,!0)){let t;M-(u=l.getBBox().width)s-b&&0===a&&(t=Math.round(M+u-s+b),c[1]=Math.max(t,c[1])),w-f/2<0?c[0]=Math.max(Math.round(-w+f/2),c[0]):w+f/2>o&&(c[2]=Math.max(Math.round(w+f/2-o),c[2])),x.sideOverflow=t}}})}))}),(0===hV(c)||this.verifyDataLabelOverflow(c))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:o,connectorWidth:r=1}=s.options||{},a=s.dataLabelPosition;if(r){let n;g=s.connector,a&&a.distance>0?(n=!g,g||(s.connector=g=i.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(t.dataLabelsGroup)),i.styledMode||g.attr({"stroke-width":r,stroke:o||e.color||"#666666"}),g[n?"attr":"animate"]({d:e.getConnectorPath(s)}),g.attr({visibility:a.attribs?.visibility})):g&&(s.connector=g.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:(t.options?.style||{}).textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,a=null!==i.size;return!a&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=h$(r,o,e[2]-Math.max(t[0],t[2])):(r=h$(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s=i.length,o,r,a=!1;for(o=0,r=s-1;oe!=l>e&&t<(h-s)*(e-n)/(l-n)+s&&(a=!a)}return a}}(y||(y={}));let{pointInPolygon:hQ}=y,{addEvent:h0,fireEvent:h1,objectEach:h2,pick:h3}=Z;function h5(t){let e=t.length,i=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),s=(t,e)=>{for(let i of t)if(hQ({x:i[0],y:i[1]},e))return!0;return!1},o,r,a,n,h,l=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let o=0;o{h2(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let o=i.options||{};i.labelrank=h3(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,h6(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let h4={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=h5,h0(t,"render",h9))}},{defaultOptions:h8}=tx,{noop:h7}=w,{addEvent:lt,extend:le,isObject:li,merge:ls,relativeLength:lo}=Z,lr={radius:0,scope:"stack",where:void 0},la=h7,ln=h7;function lh(t,e,i,s,o={}){let r=la(t,e,i,s,o),{innerR:a=0,r:n=i,start:h=0,end:l=0}=o;if(o.open||!o.borderRadius)return r;let d=l-h,c=Math.sin(d/2),p=Math.max(Math.min(lo(o.borderRadius||0,n-a),(n-a)/2,n*c/(1+c)),0),g=Math.min(p,d/Math.PI*2*a),u=r.length-1;for(;u--;)!function(t,e,i){let s,o,r;let a=t[e],n=t[e+1];if("Z"===n[0]&&(n=t[0]),("M"===a[0]||"L"===a[0])&&"A"===n[0]?(s=a,o=n,r=!0):"A"===a[0]&&("M"===n[0]||"L"===n[0])&&(s=n,o=a),s&&o&&o.params){let a=o[1],n=o[5],h=o.params,{start:l,end:d,cx:c,cy:p}=h,g=n?a-i:a+i,u=g?Math.asin(i/g):0,f=n?u:-u,m=Math.cos(u)*g;r?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,["A",i,i,0,0,1,c+a*Math.cos(h.start),p+a*Math.sin(h.start)])):(h.end=d-f,o[6]=c+a*Math.cos(h.end),o[7]=p+a*Math.sin(h.end),t.splice(e+1,0,["A",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),o[4]=Math.abs(h.end-h.start)1?g:p);return r}function ll(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=h8.plotOptions?.[this.type]?.borderRadius,o=ld(t.borderRadius,li(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:a}=s;if("roundedRect"===s.shapeType&&a){let{width:n=0,height:h=0,y:l=0}=a,d=l,c=h;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),a=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=a.y,c=a.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,g=o.where;!g&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(g="all"),g||(g="end");let u=Math.min(lo(o.radius,n),n/2,"all"===g?h/2:1/0)||0;"end"===g&&(p&&(d-=u),c+=u),le(a,{brBoxHeight:c,brBoxY:d,r:u})}}}}function ld(t,e){return li(t)||(t={radius:t||0}),ls(lr,e,t)}function lc(){let t=ld(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=lo(t.radius,(i.r||0)-(i.innerR||0)))}}function lp(t,e,i,s,o={}){let r=ln(t,e,i,s,o),{r:a=0,brBoxHeight:n=s,brBoxY:h=e}=o,l=e-h,d=h+n-(e+s),c=l-a>-.1?0:a,p=d-a>-.1?0:a,g=Math.max(c&&l,0),u=Math.max(p&&d,0),f=[t+c,e],m=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],k=[t,e+s-p],M=[t,e+c],w=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(g){let t=w(c,c-g);f[0]-=t,m[0]+=t,x[1]=M[1]=e+c-g}if(s=lx(i.minWidth,0)&&this.chartHeight>=lx(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i=this.options.responsive,s=this.currentResponsive,o=[],r;!e&&i&&i.rules&&i.rules.forEach(t=>{void 0===t._id&&(t._id=ly()),this.matchResponsiveRule(t,o)},this);let a=lm(...o.map(t=>lf((i||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));a.isResponsiveOptions=!0,o=o.toString()||void 0;let n=s&&s.ruleIds;o===n||(s&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(s.undoOptions,t,!0),this.updatingResponsive=!1),o?((r=lg(a,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:o,mergedOptions:a,undoOptions:r},this.updatingResponsive||this.update(a,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||lu(s,{matchResponsiveRule:e,setResponsive:i}),t}}(b||(b={}));let lb=b;w.AST=tJ,w.Axis=sW,w.Chart=aY,w.Color=tM,w.DataLabel=ho,w.DataTableCore=ri,w.Fx=tC,w.HTMLElement=iK,w.Legend=as,w.LegendSymbol=ra,w.OverlappingDataLabels=w.OverlappingDataLabels||h4,w.PlotLineOrBand=s8,w.Point=oG,w.Pointer=o4,w.RendererRegistry=ea,w.Series=rj,w.SeriesRegistry=rc,w.StackItem=a7,w.SVGElement=eU,w.SVGRenderer=iW,w.Templating=er,w.Tick=sn,w.Time=tc,w.Tooltip=oM,w.animate=tW.animate,w.animObject=tW.animObject,w.chart=aY.chart,w.color=tM.parse,w.dateFormat=er.dateFormat,w.defaultOptions=tx.defaultOptions,w.distribute=ec.distribute,w.format=er.format,w.getDeferredAnimation=tW.getDeferredAnimation,w.getOptions=tx.getOptions,w.numberFormat=er.numberFormat,w.seriesType=rc.seriesType,w.setAnimation=tW.setAnimation,w.setOptions=tx.setOptions,w.stop=tW.stop,w.time=tx.defaultTime,w.timers=tC.timers,({compose:function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;lt(t,"afterColumnTranslate",ll,{order:9}),lt(s,"afterTranslate",lc),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),la=o.arc,ln=o.roundedRect,o.arc=lh,o.roundedRect=lp}},optionsToObject:ld}).compose(w.Series,w.SVGElement,w.SVGRenderer),hd.compose(w.Series.types.column),ho.compose(w.Series),sY.compose(w.Axis),iK.compose(w.SVGRenderer),as.compose(w.Chart),s$.compose(w.Axis),h4.compose(w.Chart),hJ.compose(w.Series.types.pie),s8.compose(w.Chart,w.Axis),o4.compose(w.Chart),lb.compose(w.Chart),a1.compose(w.Axis,w.Chart,w.Series),nb.compose(w.Axis,w.Chart,w.Series),oM.compose(w.Pointer),Z.extend(w,Z);let{isTouchDevice:lv}=w,{addEvent:lk,merge:lM,pick:lw}=Z,lS=[];function lA(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function lT(){let t,e,i;let s=this.legend,o=this.navigator;if(o){t=s&&s.options,e=o.xAxis,i=o.yAxis;let{scrollbarHeight:r,scrollButtonSize:a}=o;this.inverted?(o.left=o.opposite?this.chartWidth-r-o.height:this.spacing[3]+r,o.top=this.plotTop+a):(o.left=lw(e.left,this.plotLeft+a),o.top=o.navigatorOptions.top||this.chartHeight-o.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+lw(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),e&&i&&(this.inverted?e.options.left=i.options.left=o.left:e.options.top=i.options.top=o.top,e.setAxisSize(),i.setAxisSize())}}function lC(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this),lw(t.redraw,!0)&&this.redraw(t.animation))}function lO(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new i(this))}function lP(){let t=this.options,e=t.navigator,i=t.rangeSelector;if((e&&e.enabled||i&&i.enabled)&&(!lv&&"x"===this.zooming.type||lv&&"x"===this.zooming.pinchType))return!1}function lE(t){let e=t.navigator;if(e&&t.xAxis[0]){let i=t.xAxis[0].getExtremes();e.render(i.min,i.max)}}function lL(t){let e=t.options.navigator||{},i=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||i.enabled)&&(lM(!0,this.options.navigator,e),lM(!0,this.options.scrollbar,i),delete t.options.navigator,delete t.options.scrollbar)}let lD={compose:function(t,e){if(Z.pushUnique(lS,t)){let s=t.prototype;i=e,s.callbacks.push(lE),lk(t,"afterAddSeries",lA),lk(t,"afterSetChartSize",lT),lk(t,"afterUpdate",lC),lk(t,"beforeRender",lO),lk(t,"beforeShowResetZoom",lP),lk(t,"update",lL)}}},{isTouchDevice:lI}=w,{addEvent:lB,correctFloat:lz,defined:lR,isNumber:lN,pick:lW}=Z;function lH(){this.navigatorAxis||(this.navigatorAxis=new lF(this))}function lX(t){let e;let i=this.chart,s=i.options,o=s.navigator,r=this.navigatorAxis,a=i.zooming.pinchType,n=s.rangeSelector,h=i.zooming.type;if(this.isXAxis&&(o?.enabled||n?.enabled)){if("y"===h&&"zoom"===t.trigger)e=!1;else if(("zoom"===t.trigger&&"xy"===h||lI&&"xy"===a)&&this.options.range){let e=r.previousZoom;lR(t.min)?r.previousZoom=[this.min,this.max]:e&&(t.min=e[0],t.max=e[1],r.previousZoom=void 0)}}void 0!==e&&t.preventDefault()}class lF{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),lB(t,"init",lH),lB(t,"setExtremes",lX))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,e,i,s){let o=this.axis,r=(o.pointRange||0)/2,a=lW(i,o.translate(t,!0,!o.horiz)),n=lW(s,o.translate(e,!0,!o.horiz));return lR(i)||(a=lz(a+r)),lR(s)||(n=lz(n-r)),lN(a)&&lN(n)||(a=n=void 0),{min:a,max:n}}}let{parse:lG}=tM,{seriesTypes:lY}=rc,lj={height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:lG("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===lY.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}},{relativeLength:lU}=Z,lV={"navigator-handle":function(t,e,i,s,o={}){let r=o.width?o.width/2:i,a=lU(o.borderRadius||0,Math.min(2*r,s));return[["M",-1.5,(s=o.height||s)/2-3.5],["L",-1.5,s/2+4.5],["M",.5,s/2-3.5],["L",.5,s/2+4.5],...e9.rect(-r-1,.5,2*r+1,s,{r:a})]}},{defined:l$}=Z,{setOptions:lZ}=tx,{composed:lq}=w,{getRendererType:l_}=ea,{setFixedRange:lK}={setFixedRange:function(t){let e=this.xAxis[0];l$(e.dataMax)&&l$(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}},{addEvent:lJ,extend:lQ,pushUnique:l0}=Z;function l1(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}let l2={compose:function(t,e,i){lF.compose(e),l0(lq,"Navigator")&&(t.prototype.setFixedRange=lK,lQ(l_().prototype.symbols,lV),lJ(i,"afterUpdate",l1),lZ({navigator:lj}))}},{composed:l3}=w,{addEvent:l5,defined:l6,pick:l9,pushUnique:l4}=Z;!function(t){let e;function i(t){let e=l9(t.options&&t.options.min,t.min),i=l9(t.options&&t.options.max,t.max);return{axisMin:e,axisMax:i,scrollMin:l6(t.dataMin)?Math.min(e,t.min,t.dataMin,l9(t.threshold,1/0)):e,scrollMax:l6(t.dataMax)?Math.max(i,t.max,t.dataMax,l9(t.threshold,-1/0)):i}}function s(){let t=this.scrollbar,e=t&&!t.options.opposite,i=this.horiz?2:e?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+(t.options.margin||0))}function o(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new e(t.chart.renderer,t.options.scrollbar,t.chart),l5(t.scrollbar,"changed",function(e){let s,o;let{axisMin:r,axisMax:a,scrollMin:n,scrollMax:h}=i(t),l=h-n;if(l6(r)&&l6(a)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=n+l*this.to,o=n+l*this.from):(s=n+l*(1-this.from),o=n+l*(1-this.to)),this.shouldUpdateExtremes(e.DOMType)){let i="mousemove"!==e.DOMType&&"touchmove"!==e.DOMType&&void 0;t.setExtremes(o,s,!0,i,e)}else this.setRange(this.from,this.to)}}))}function r(){let t,e,s;let{scrollMin:o,scrollMax:r}=i(this),a=this.scrollbar,n=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,l=this.options.margin||0;if(a&&h){if(this.horiz)this.opposite||(h[1]+=n),a.position(this.left,this.top+this.height+2+h[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(h[1]+=l),t=1;else{let e;this.opposite&&(h[0]+=n),e=a.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:l):this.opposite?0:l,a.position(e,this.top,this.width,this.height),this.opposite&&(h[0]+=l),t=0}if(h[t]+=a.size+(a.options.margin||0),isNaN(o)||isNaN(r)||!l6(this.min)||!l6(this.max)||this.dataMin===this.dataMax)a.setRange(0,1);else if(this.min===this.max){let t=this.pointRange/(this.dataMax+1);e=t*this.min,s=t*(this.max+1),a.setRange(e,s)}else e=(this.min-o)/(r-o),s=(this.max-o)/(r-o),this.horiz&&!this.reversed||!this.horiz&&this.reversed?a.setRange(e,s):a.setRange(1-s,1-e)}}t.compose=function(t,i){l4(l3,"Axis.Scrollbar")&&(e=i,l5(t,"afterGetOffset",s),l5(t,"afterInit",o),l5(t,"afterRender",r))}}(v||(v={}));let l8=v,l7={height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1},{defaultOptions:dt}=tx,{addEvent:de,correctFloat:di,crisp:ds,defined:dr,destroyObjectProperties:da,fireEvent:dn,merge:dh,pick:dl,removeEvent:dd}=Z;class dc{static compose(t){l8.compose(t,dc)}static swapXY(t,e){return e&&t.forEach(t=>{let e;let i=t.length;for(let s=0;sthis.calculatedWidth?e.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-i),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-i)}}destroy(){let t=this,e=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){t[e]&&t[e].destroy&&(t[e]=t[e].destroy())}),e&&t===e.scrollbar&&(e.scrollbar=null,da(e.scrollbarButtons))}drawScrollbarButton(t){let e=this.renderer,i=this.scrollbarButtons,s=this.options,o=this.size,r=e.g().add(this.group);if(i.push(r),s.buttonsEnabled){let a=e.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||a.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),a.attr(a.crisp({x:-.5,y:-.5,width:o,height:o,r:s.buttonBorderRadius},a.strokeWidth()));let n=e.path(dc.swapXY([["M",o/2+(t?-1:1),o/2-3],["L",o/2+(t?-1:1),o/2+3],["L",o/2+(t?2:-2),o/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,e,i){this.scrollbarButtons=[],this.renderer=t,this.userOptions=e,this.options=dh(l7,dt.scrollbar,e),this.options.margin=dl(this.options.margin,10),this.chart=i,this.size=dl(this.options.size,this.options.height),e.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let e=this.chart.pointer?.normalize(t)||t,i=this.cursorToScrollbarPosition(e);this.chartX=i.chartX,this.chartY=i.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let e;let i=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",o=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(e=this.cursorToScrollbarPosition(i)[s]-this[s],this.hasDragged=!0,this.updatePosition(o[0]+e,o[1]+e),this.hasDragged&&dn(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&dn(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,e,i,s){let{buttonsEnabled:o,margin:r=0,vertical:a}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=e+this.trackBorderWidth,this.width=i,this.height=s,this.xOffset=h,this.yOffset=l,a?(this.width=this.yOffset=i=l=this.size,this.xOffset=h=0,this.yOffset=l=o?this.size:0,this.barWidth=s-(o?2*i:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=o?this.size:0,this.barWidth=i-(o?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:i,height:s}),this.scrollbarButtons[1][n]({translateX:a?0:i-h,translateY:a?s-l:0})}removeEvents(){this._events.forEach(function(t){dd.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,e=this.options,i=this.size,s=this.chart.styledMode,o=t.g("scrollbar").attr({zIndex:e.zIndex}).hide().add();this.group=o,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:e.trackBorderRadius||0,height:i,width:i}).add(o),s||this.track.attr({fill:e.trackBackgroundColor,stroke:e.trackBorderColor,"stroke-width":e.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-ds(0,r),y:-ds(0,r)}),this.scrollbarGroup=t.g().add(o),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:i-r,width:i-r,r:e.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(dc.swapXY([["M",-3,i/4],["L",-3,2*i/3],["M",0,i/4],["L",0,2*i/3],["M",3,i/4],["L",3,2*i/3]],e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:e.barBackgroundColor,stroke:e.barBorderColor,"stroke-width":e.barBorderWidth}),this.scrollbarRifles.attr({stroke:e.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-ds(0,this.scrollbarStrokeWidth),-ds(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,e){let i,s;let o=this.options,r=o.vertical,a=o.minWidth,n=this.barWidth,h=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!dr(n))return;let l=n*Math.min(e,1);i=Math.ceil(n*(t=Math.max(t,0))),this.calculatedWidth=s=di(l-i),s=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return dl(this.options.liveRedraw,w.svg&&!w.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!dr(t)}trackClick(t){let e=this.chart.pointer?.normalize(t)||t,i=this.to-this.from,s=this.y+this.scrollbarTop,o=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>s||!this.options.vertical&&e.chartX>o?this.updatePosition(this.from+i,this.to+i):this.updatePosition(this.from-i,this.to-i),dn(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,dh(!0,this.options,t),this.chart)}updatePosition(t,e){e>1&&(t=di(1-di(e-t)),e=1),t<0&&(e=di(e-t),t=0),this.from=t,this.to=e}}dc.defaultOptions=l7,dt.scrollbar=dh(!0,dc.defaultOptions,dt.scrollbar);let{defaultOptions:dp}=tx,{isTouchDevice:dg}=w,{prototype:{symbols:du}}=iW,{addEvent:df,clamp:dm,correctFloat:dx,defined:dy,destroyObjectProperties:db,erase:dv,extend:dk,find:dM,fireEvent:dw,isArray:dS,isNumber:dA,merge:dT,pick:dC,removeEvent:dO,splat:dP}=Z;function dE(t,...e){let i=[].filter.call(e,dA);if(i.length)return Math[t].apply(0,i)}class dL{static compose(t,e,i){lD.compose(t,dL),l2.compose(t,e,i)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,e,i,s){let o=this.navigatorOptions.handles.height;this.handles[e][s](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-o)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-o/2-1)})}drawOutline(t,e,i,s){let o=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),a=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,p=d-a,g=d+c,u=this.left,f,m;i?(f=d+e+n,e=d+t+n,m=[["M",u+c,d-h-n],["L",u+c,f],["L",u,f],["M",u,e],["L",u+c,e],["L",u+c,d+l+h]],o&&m.push(["M",u+c,f-a],["L",u+c,e+a])):(u-=h,t+=u+h-n,e+=u+h-n,m=[["M",u,p],["L",t,p],["L",t,g],["M",e,g],["L",e,p],["L",u+l+2*h,p]],o&&m.push(["M",t-a,p],["L",e+a,p])),this.outline[s]({d:m})}drawMasks(t,e,i,s){let o,r,a,n;let h=this.left,l=this.top,d=this.height;i?(a=[h,h,h],n=[l,l+t,l+e],r=[d,d,d],o=[t,e-t,this.size-e]):(a=[h,h+t,h+e],n=[l,l,l],r=[t,e-t,this.size-e],o=[d,d,d]),this.shades.forEach((t,e)=>{t[s]({x:a[e],y:n[e],width:r[e],height:o[e]})})}renderElements(){let t=this,e=t.navigatorOptions,i=e.maskInside,s=t.chart,o=s.inverted,r=s.renderer,a={cursor:o?"ns-resize":"ew-resize"},n=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!i,i,!i].forEach((i,o)=>{let h=t.shades[o]??(t.shades[o]=r.rect().addClass("highcharts-navigator-mask"+(1===o?"-inside":"-outside")).add(n));s.styledMode||(h.attr({fill:i?e.maskFill:"rgba(0,0,0,0)"}),1===o&&h.css(a))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(n)),s.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles?.enabled){let i=e.handles,{height:o,width:h}=i;[0,1].forEach(e=>{let l=i.symbols[e];if(t.handles[e]&&t.handles[e].symbolUrl===l){if(!t.handles[e].isImg&&t.handles[e].symbolName!==l){let i=du[l].call(du,-h/2-1,0,h,o);t.handles[e].attr({d:i}),t.handles[e].symbolName=l}}else t.handles[e]?.destroy(),t.handles[e]=r.symbol(l,-h/2-1,0,h,o,i),t.handles[e].attr({zIndex:7-e}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][e]).add(n),t.addMouseEvents();s.inverted&&t.handles[e].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(o+h)/2}),s.styledMode||t.handles[e].attr({fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.lineWidth,width:i.width,height:i.height,x:-h/2-1,y:0}).css(a)})}}update(t,e=!1){let i=this.chart,s=i.options.chart.inverted!==i.scrollbar?.options.vertical;if(dT(!0,i.options.navigator,t),this.navigatorOptions=i.options.navigator||{},this.setOpposite(),dy(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(i);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{dO(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(df(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let e=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:e,[i.inverted?"width":"height"]:this.height,[i.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[i.inverted?"width":"height"]:this.height},!1)}e&&i.redraw()}render(t,e,i,s){let o=this.chart,r=this.xAxis,a=r.pointRange||0,n=r.navigatorAxis.fake?o.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=o.inverted,c=o.xAxis[0].minRange,p=o.xAxis[0].options.maxRange,g=this.scrollButtonSize,u,f,m,x=this.scrollbarHeight,y,b;if(this.hasDragged&&!dy(i))return;if(this.isDirty&&this.renderElements(),t=dx(t-a/2),e=dx(e+a/2),!dA(t)||!dA(e)){if(!l)return;i=0,s=dC(r.width,n.width)}this.left=dC(r.left,o.plotLeft+g+(d?o.plotWidth:0));let v=this.size=y=dC(r.len,(d?o.plotHeight:o.plotWidth)-2*g);u=d?x:y+2*g,i=dC(i,r.toPixels(t,!0)),s=dC(s,r.toPixels(e,!0)),dA(i)&&Math.abs(i)!==1/0||(i=0,s=u);let k=r.toValue(i,!0),M=r.toValue(s,!0),w=Math.abs(dx(M-k));wp&&(this.grabbedLeft?i=r.toPixels(M-p-a,!0):this.grabbedRight&&(s=r.toPixels(k+p+a,!0))),this.zoomedMax=dm(Math.max(i,s),0,v),this.zoomedMin=dm(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(i,s),0,v),this.range=this.zoomedMax-this.zoomedMin,v=Math.round(this.zoomedMax);let S=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),b=l&&!this.hasDragged?"animate":"attr",this.drawMasks(S,v,d,b),this.drawOutline(S,v,d,b),this.navigatorOptions.handles.enabled&&(this.drawHandle(S,0,d,b),this.drawHandle(v,1,d,b))),this.scrollbar&&(d?(m=this.top-g,f=this.left-x+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),x=y+2*g):(m=this.top+(h?this.height:-x),f=this.left-g),this.scrollbar.position(f,m,u,x),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,this.isDirty=!1,dw(this,"afterRender")}addMouseEvents(){let t=this,e=t.chart,i=e.container,s=[],o,r;t.mouseMoveHandler=o=function(e){t.onMouseMove(e)},t.mouseUpHandler=r=function(e){t.onMouseUp(e)},(s=t.getPartsEvents("mousedown")).push(df(e.renderTo,"mousemove",o),df(i.ownerDocument,"mouseup",r),df(e.renderTo,"touchmove",o),df(i.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(df(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let e=this,i=[];return["shades","handles"].forEach(function(s){e[s].forEach(function(o,r){i.push(df(o.element,t,function(t){e[s+"Mousedown"](t,r)}))})}),i}shadesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=this.xAxis,o=this.zoomedMin,r=this.size,a=this.range,n=this.left,h=t.chartX,l,d,c,p;i.inverted&&(h=t.chartY,n=this.top),1===e?(this.grabbedCenter=h,this.fixedWidth=a,this.dragOffset=h-o):(p=h-n-a/2,0===e?p=Math.max(0,p):2===e&&p+a>=r&&(p=r-a,this.reversedExtremes?(p-=a,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),p!==o&&(this.fixedWidth=a,dy((c=s.navigatorAxis.toFixedRange(p,p+a,d,l)).min)&&dw(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,e){t=this.chart.pointer?.normalize(t)||t;let i=this.chart,s=i.xAxis[0],o=this.reversedExtremes;0===e?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=o?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=o?s.max:s.min),i.setFixedRange(void 0)}onMouseMove(t){let e=this,i=e.chart,s=e.navigatorSize,o=e.range,r=e.dragOffset,a=i.inverted,n=e.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=i.pointer?.normalize(t)||t).chartX,a&&(n=e.top,h=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,h-n,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,h-n)):e.grabbedCenter&&(e.hasDragged=!0,hs+r-o&&(h=s+r-o),e.render(0,0,h-r,h-r+o)),e.hasDragged&&e.scrollbar&&dC(e.scrollbar.options.liveRedraw,!dg&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){let e,i,s,o,r,a;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,p=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?o=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(o=this.reversedExtremes?s.dataMax:s.dataMin),dy((a=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,o,r)).min)&&dw(this,"setRange",{min:Math.min(a.min,a.max),max:Math.max(a.min,a.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&dA(this.zoomedMin)&&dA(this.zoomedMax)&&(i=Math.round(this.zoomedMin),e=Math.round(this.zoomedMax),this.shades&&this.drawMasks(i,e,c,p),this.outline&&this.drawOutline(i,e,c,p),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(i,0,c,p),this.drawHandle(e,1,c,p)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){dO(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&dO(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(t){let e=t.options,i=e.navigator||{},s=i.enabled,o=e.scrollbar||{},r=o.enabled,a=s&&i.height||0,n=r&&o.height||0,h=o.buttonsEnabled&&n||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=a,this.scrollbarHeight=n,this.scrollButtonSize=h,this.scrollbarEnabled=r,this.navigatorEnabled=s,this.navigatorOptions=i,this.scrollbarOptions=o,this.setOpposite();let l=this,d=l.baseSeries,c=t.xAxis.length,p=t.yAxis.length,g=d&&d[0]&&d[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,l.navigatorEnabled){let e=this.getXAxisOffsets();l.xAxis=new sW(t,dT({breaks:g.options.breaks,ordinal:g.options.ordinal,overscroll:g.options.overscroll},i.xAxis,{type:"datetime",yAxis:i.yAxis?.id,index:c,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:g.options.ordinal?0:g.options.minPadding,maxPadding:g.options.ordinal?0:g.options.maxPadding,zoomEnabled:!1},t.inverted?{offsets:e,width:a}:{offsets:e,height:a}),"xAxis"),l.yAxis=new sW(t,dT(i.yAxis,{alignTicks:!1,offset:0,index:p,isInternal:!0,reversed:dC(i.yAxis&&i.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:a}:{height:a}),"yAxis"),d||i.series.data?l.updateNavigatorSeries(!1):0===t.series.length&&(l.unbindRedraw=df(t,"beforeRedraw",function(){t.series.length>0&&!l.series&&(l.setBaseSeries(),l.unbindRedraw())})),l.reversedExtremes=t.inverted&&!l.xAxis.reversed||!t.inverted&&l.xAxis.reversed,l.renderElements(),l.addMouseEvents()}else l.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(e,i){let s=t.xAxis[0],o=s.getExtremes(),r=s.len-2*h,a=dE("min",s.options.min,o.dataMin),n=dE("max",s.options.max,o.dataMax)-a;return i?e*n/r+a:r*(e-a)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},l.xAxis.navigatorAxis.axis=l.xAxis,l.xAxis.navigatorAxis.toFixedRange=lF.prototype.toFixedRange.bind(l.xAxis.navigatorAxis);if(t.options.scrollbar.enabled){let e=dT(t.options.scrollbar,{vertical:t.inverted});!dA(e.margin)&&l.navigatorEnabled&&(e.margin=t.inverted?-3:3),t.scrollbar=l.scrollbar=new dc(t.renderer,e,t),df(l.scrollbar,"changed",function(t){let e=l.size,i=e*this.to,s=e*this.from;l.hasDragged=l.scrollbar.hasDragged,l.render(0,0,s,i),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){l.onMouseUp(t)})})}l.addBaseSeriesEvents(),l.addChartEvents()}setOpposite(){let t=this.navigatorOptions,e=this.navigatorEnabled,i=this.chart;this.opposite=dC(t.opposite,!!(!e&&i.inverted))}getUnionExtremes(t){let e;let i=this.chart.xAxis[0],s=this.chart.time,o=this.xAxis,r=o.options,a=i.options;return t&&null===i.dataMin||(e={dataMin:dC(s.parse(r?.min),dE("min",s.parse(a.min),i.dataMin,o.dataMin,o.min)),dataMax:dC(s.parse(r?.max),dE("max",s.parse(a.max),i.dataMax,o.dataMax,o.max))}),e}setBaseSeries(t,e){let i=this.chart,s=this.baseSeries=[];t=t||i.options&&i.options.navigator.baseSeries||(i.series.length?dM(i.series,t=>!t.options.isInternal).index:0),(i.series||[]).forEach((e,i)=>{!e.options.isInternal&&(e.options.showInNavigator||(i===t||e.options.id===t)&&!1!==e.options.showInNavigator)&&s.push(e)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){let i=this,s=i.chart,o=i.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},a=i.series=(i.series||[]).filter(t=>{let e=t.baseSeries;return!(0>o.indexOf(e))||(e&&(dO(e,"updatedData",i.updatedDataHandler),delete e.navigatorSeries),t.chart&&t.destroy(),!1)}),n,h,l=i.navigatorOptions.series,d;o&&o.length&&o.forEach(t=>{let c=t.navigatorSeries,p=dk({color:t.color,visible:t.visible},dS(l)?dp.navigator.series:l);if(c&&!1===i.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+o.length,d=(n=t.options||{}).navigatorOptions||{},p.dataLabels=dP(p.dataLabels),(h=dT(n,r,p,d)).pointRange=dC(p.pointRange,d.pointRange,dp.plotOptions[h.type||"line"].pointRange);let g=d.data||p.data;i.hasNavigatorData=i.hasNavigatorData||!!g,h.data=g||n.data?.slice(0),c&&c.options?c.update(h,e):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,a.push(t.navigatorSeries))}),(l.data&&!(o&&o.length)||dS(l))&&(i.hasNavigatorData=!1,(l=dP(l)).forEach((t,e)=>{r.name="Navigator "+(a.length+1),(h=dT(dp.navigator.series,{color:s.series[e]&&!s.series[e].options.isInternal&&s.series[e].color||s.options.colors[e]||s.options.colors[0]},r,t)).data=t.data,h.data&&(i.hasNavigatorData=!0,a.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(df(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(i=>{i.eventsToUnbind.push(df(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(df(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(df(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(df(i,"remove",function(){e&&dv(e,i),this.navigatorSeries&&t.series&&(dv(t.series,this.navigatorSeries),dy(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,e){return Math.min(t,e.getColumn("x")[0]??t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){let t,e;let i=this.chart.navigator,s=this.getExtremes(),o=s.min,r=s.max,a=s.dataMin,n=s.dataMax,h=r-o,l=i.stickToMin,d=i.stickToMax,c=dC(this.ordinal?.convertOverscroll(this.options.overscroll),0),p=i.series&&i.series[0],g=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(e=a)+h),d&&(t=n+c,l||(e=Math.max(a,t-h,i.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),g&&(l||d)&&dA(e)&&(this.min=this.userMin=e,this.max=this.userMax=t)),i.stickToMin=i.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,e=this.navigatorSeries,i=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=dC(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,i),t.stickToMin=t.shouldStickToMin(this,t),e&&!t.hasNavigatorData&&(e.options.pointStart=this.getColumn("x")[0],e.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,e){let i=e.getBaseSeriesMin(t.getColumn("x")[0]),s=t.xAxis,o=s.max,r=s.min,a=s.options.range;return!!(dA(o)&&dA(r))&&(a&&o-i>0?o-i{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{db(t)}),this.navigatorEnabled=!1}}let dD={chart:{height:70,margin:[0,5,0,5]},exporting:{enabled:!1},legend:{enabled:!1},navigator:{enabled:!1},plotOptions:{series:{states:{hover:{enabled:!1}},marker:{enabled:!1}}},scrollbar:{enabled:!1},title:{text:""},tooltip:{enabled:!1},xAxis:{visible:!1},yAxis:{height:0,visible:!1}},{merge:dI,addEvent:dB,fireEvent:dz,pick:dR}=Z;class dN{static navigator(t,e){let i=new dN(t,e);return w.navigators?w.navigators.push(i):w.navigators=[i],i}constructor(t,e){this.boundAxes=[],this.userOptions=e,this.chartOptions=dI(w.getOptions(),dD,{navigator:e}),this.chartOptions.chart&&e.height&&(this.chartOptions.chart.height=e.height);let i=new aY(t,this.chartOptions);i.options=dI(i.options,{navigator:{enabled:!0},scrollbar:{enabled:!0}}),this.chartOptions.navigator&&this.chartOptions.scrollbar&&(this.chartOptions.navigator.enabled=!0,this.chartOptions.scrollbar.enabled=!0),this.navigator=new dL(i),i.navigator=this.navigator,this.initNavigator()}bind(t,e=!0){let i=this,s=t instanceof aY?t.xAxis[0]:t;if(!(s instanceof sW))return;let{min:o,max:r}=this.navigator.xAxis,a=[];if(e){let t=dB(s,"setExtremes",t=>{("pan"===t.trigger||"zoom"===t.trigger||"mouseWheelZoom"===t.trigger)&&i.setRange(t.min,t.max,!0,"pan"!==t.trigger,{trigger:s})});a.push(t)}let n=dB(this.navigator,"setRange",t=>{s.setExtremes(t.min,t.max,t.redraw,t.animation)});a.push(n);let h=this.boundAxes.filter(function(t){return t.axis===s})[0];h||(h={axis:s,callbacks:[]},this.boundAxes.push(h)),h.callbacks=a,s.series.forEach(t=>{t.options.showInNavigator&&i.addSeries(t.options)}),s.setExtremes(o,r),dB(s,"destroy",t=>{t.keepEvents||this.unbind(s)})}unbind(t){if(!t){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0;return}let e=t instanceof sW?t:t.xAxis[0];for(let t=this.boundAxes.length-1;t>=0;t--)this.boundAxes[t].axis===e&&(this.boundAxes[t].callbacks.forEach(t=>t()),this.boundAxes.splice(t,1))}destroy(){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0,this.navigator.destroy(),this.navigator.chart.destroy()}update(t,e){this.chartOptions=dI(this.chartOptions,t.height&&{chart:{height:t.height}},{navigator:t}),this.navigator.chart.update(this.chartOptions,e)}redraw(){this.navigator.chart.redraw()}addSeries(t){this.navigator.chart.addSeries(dI(t,{showInNavigator:dR(t.showInNavigator,!0)})),this.navigator.setBaseSeries()}initNavigator(){let t=this.navigator;t.top=1,t.xAxis.setScale(),t.yAxis.setScale(),t.xAxis.render(),t.yAxis.render(),t.series?.forEach(t=>{t.translate(),t.render(),t.redraw()});let{min:e,max:i}=this.getInitialExtremes();t.chart.xAxis[0].userMin=e,t.chart.xAxis[0].userMax=i,t.render(e,i)}getRange(){let{min:t,max:e}=this.navigator.chart.xAxis[0].getExtremes(),{userMin:i,userMax:s,min:o,max:r}=this.navigator.xAxis.getExtremes();return{min:dR(t,o),max:dR(e,r),dataMin:o,dataMax:r,userMin:i,userMax:s}}setRange(t,e,i,s,o){dz(this.navigator,"setRange",{min:t,max:e,redraw:i,animation:s,eventArguments:dI(o,{trigger:"navigator"})})}getInitialExtremes(){let{min:t,max:e}=this.navigator.xAxis.getExtremes();return{min:t,max:e}}}w.StandaloneNavigator=w.StandaloneNavigator||dN,w.navigator=w.StandaloneNavigator.navigator,l2.compose(w.Chart,w.Axis,w.Series);let dW=w;return M.default})()); \ No newline at end of file diff --git a/standalone-navigator.src.js b/standalone-navigator.src.js index 0469d8a984..2e22d2c6d4 100644 --- a/standalone-navigator.src.js +++ b/standalone-navigator.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/highcharts * * (c) 2009-2024 Torstein Honsi @@ -74,7 +74,7 @@ var Globals; * Constants * * */ - Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.0.2', Globals.win = (typeof window !== 'undefined' ? + Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.1.0', Globals.win = (typeof window !== 'undefined' ? window : {}), // eslint-disable-line node/no-unsupported-features/es-builtins Globals.doc = Globals.win.document, Globals.svg = (Globals.doc && @@ -1275,7 +1275,7 @@ function getNestedProperty(path, parent) { } return thisProp ?? parent; } - const child = parent[pathElement]; + const child = parent[pathElement.replace(/[\\'"]/g, '')]; // Filter on the child if (!defined(child) || typeof child === 'function' || @@ -3582,7 +3582,9 @@ class Time { * Properties * * */ - this.options = {}; + this.options = { + timezone: 'UTC' + }; this.variableTimezone = false; this.Date = Time_win.Date; this.update(options); @@ -3604,12 +3606,13 @@ class Time { * */ update(options = {}) { - let timezone = options.timezone ?? 'UTC'; this.dTLCache = {}; this.options = options = Time_merge(true, this.options, options); const { timezoneOffset, useUTC } = options; // Allow using a different Date class this.Date = options.Date || Time_win.Date || Date; + // Assign the time zone. Handle the legacy, deprecated `useUTC` option. + let timezone = options.timezone; if (Time_defined(useUTC)) { timezone = useUTC ? 'UTC' : void 0; } @@ -4052,7 +4055,7 @@ class Time { } else if (Time_isObject(format)) { const tzHours = (this.getTimezoneOffset(timestamp) || 0) / - (60000 * 60), timeZone = this.options.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; + (60000 * 60), timeZone = this.timezone || ('Etc/GMT' + (tzHours >= 0 ? '+' : '') + tzHours), { prefix = '', suffix = '' } = format; format = prefix + this.dateTimeFormat(Time_extend({ timeZone }, format), timestamp) + suffix; } // Optionally sentence-case the string and return @@ -7460,18 +7463,11 @@ class Color { } // Check for has alpha, because rgba colors perform worse due to // lack of support in WebKit. - const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1); - return (hasAlpha ? 'rgba(' : 'rgb(') + - Math.round(toRgba[0] + (fromRgba[0] - toRgba[0]) * (1 - pos)) + - ',' + - Math.round(toRgba[1] + (fromRgba[1] - toRgba[1]) * (1 - pos)) + - ',' + - Math.round(toRgba[2] + (fromRgba[2] - toRgba[2]) * (1 - pos)) + - (hasAlpha ? - (',' + - (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))) : - '') + - ')'; + const hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1), channel = (to, i) => to + (fromRgba[i] - to) * (1 - pos), rgba = toRgba.slice(0, 3).map(channel).map(Math.round); + if (hasAlpha) { + rgba.push(channel(toRgba[3], 3)); + } + return (hasAlpha ? 'rgba(' : 'rgb(') + rgba.join(',') + ')'; } } /* * @@ -8840,7 +8836,7 @@ const { defaultOptions: Templating_defaultOptions, defaultTime: Templating_defau const { doc: Templating_doc } = Core_Globals; -const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; +const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, isString: Templating_isString, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities; const helpers = { // Built-in helpers add: (a, b) => a + b, @@ -8875,6 +8871,8 @@ const numberFormatCache = {}; * Functions * * */ +// Internal convenience function +const isQuotedString = (str) => /^["'].+["']$/.test(str); /** * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a * human readable date string. The format is a subset of the formats for PHP's @@ -8952,11 +8950,11 @@ function dateFormat(format, timestamp, upperCaseFirst) { * The formatted string. */ function format(str = '', ctx, chart) { - const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@"'’= #\(\)]+)\}/gu, + const regex = /\{([\p{L}\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/gu, // The sub expression regex is the same as the top expression regex, // but except parens and block helpers (#), and surrounded by parens // instead of curly brackets. - subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; + subRegex = /\(([\p{L}\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/gu, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = chart?.options.lang || Templating_defaultOptions.lang, time = chart && chart.time || Templating_defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat; /* * Get a literal or variable value inside a template expression. May be * extended with other types like string or null if needed, but keep it @@ -8974,7 +8972,7 @@ function format(str = '', ctx, chart) { if ((n = Number(key)).toString() === key) { return n; } - if (/^["'].+["']$/.test(key)) { + if (isQuotedString(key)) { return key.slice(1, -1); } // Variables and constants @@ -9087,7 +9085,8 @@ function format(str = '', ctx, chart) { // Simple variable replacement } else { - const valueAndFormat = expression.split(':'); + const valueAndFormat = isQuotedString(expression) ? + [expression] : expression.split(':'); replacement = resolveProperty(valueAndFormat.shift() || ''); // Format the replacement if (valueAndFormat.length && typeof replacement === 'number') { @@ -9100,13 +9099,14 @@ function format(str = '', ctx, chart) { } else { replacement = time.dateFormat(segment, replacement); - // Use string literal in order to be preserved in the outer - // expression - if (hasSub) { - replacement = `"${replacement}"`; - } } } + // Use string literal in order to be preserved in the outer + // expression + subRegex.lastIndex = 0; + if (subRegex.test(match.find) && Templating_isString(replacement)) { + replacement = `"${replacement}"`; + } } str = str.replace(match.find, Templating_pick(replacement, '')); }); @@ -9691,7 +9691,9 @@ class SVGElement { * @return {Highcharts.SVGElement} Returns the SVGElement for chaining. */ align(alignOptions, alignByTranslate, alignTo, redraw = true) { - const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); + const attribs = { + 'text-align': alignOptions?.align + }, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions); // First call on instanciate if (alignOptions) { this.alignOptions = alignOptions; @@ -11431,6 +11433,7 @@ class SVGLabel extends SVG_SVGElement { * */ alignSetter(value) { const alignFactor = SVGLabel_getAlignFactor(value); + this.textAlign = value; if (alignFactor !== this.alignFactor) { this.alignFactor = alignFactor; // Bounding box exists, means we're dynamically changing @@ -11606,6 +11609,7 @@ class SVGLabel extends SVG_SVGElement { } 'text-alignSetter'(value) { this.textAlign = value; + this.updateTextPadding(); } textSetter(text) { if (typeof text !== 'undefined') { @@ -11675,24 +11679,19 @@ class SVGLabel extends SVG_SVGElement { * is changed. */ updateTextPadding() { - const text = this.text; + const text = this.text, textAlign = text.styles.textAlign || this.textAlign; if (!text.textPath) { this.updateBoxSize(); // Determine y based on the baseline const textY = this.baseline ? 0 : this.baselineOffset, textX = (this.paddingLeft ?? this.padding) + // Compensate for alignment - ((SVGLabel_defined(this.widthSetting) && this.bBox) ? - SVGLabel_getAlignFactor(this.textAlign) * - (this.widthSetting - this.bBox.width) : - 0); + SVGLabel_getAlignFactor(textAlign) * (this.widthSetting ?? this.bBox.width); // Update if anything changed if (textX !== text.x || textY !== text.y) { - text.attr('x', textX); - // #8159 - prevent misplaced data labels in treemap - // (useHTML: true) - if (text.hasBoxWidthChanged) { - this.bBox = text.getBBox(true); - } + text.attr({ + align: textAlign, + x: textX + }); if (typeof textY !== 'undefined') { text.attr('y', textY); } @@ -12637,7 +12636,7 @@ class SVGRenderer { this.url = this.getReferenceURL(); // Add description const desc = this.createElement('desc').add(); - desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.0.2')); + desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.1.0')); this.defs = this.createElement('defs').add(); this.allowHTML = allowHTML; this.forExport = forExport; @@ -14604,7 +14603,7 @@ class HTMLElement extends SVG_SVGElement { textWidth, this.textAlign ].join(','), parentPadding = (this.parentGroup?.padding * -1) || 0; - let baseline, hasBoxWidthChanged = false; + let baseline; // Update textWidth. Use the memoized textPxLength if possible, to // avoid the getTextPxLength function using elem.offsetWidth. // Calling offsetWidth affects rendering time as it forces layout @@ -14627,10 +14626,8 @@ class HTMLElement extends SVG_SVGElement { whiteSpace: whiteSpace || 'normal' // #3331 }); this.oldTextWidth = textWidth; - hasBoxWidthChanged = true; // #8159 } } - this.hasBoxWidthChanged = hasBoxWidthChanged; // #8159 // Do the calculations and DOM access only if properties changed if (currentTextTransform !== this.cTT) { baseline = renderer.fontMetrics(element).b; @@ -33086,9 +33083,14 @@ class Series { * @private * @function Highcharts.Series#searchKDTree */ - searchKDTree(point, compareX, e) { + searchKDTree(point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator) { const series = this, [kdX, kdY] = this.kdAxisArray, kdComparer = compareX ? 'distX' : 'dist', kdDimensions = (series.options.findNearestPointBy || '') - .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble; + .indexOf('y') > -1 ? 2 : 1, useRadius = !!series.isBubble, pointEvaluator = suppliedPointEvaluator || ((p1, p2, comparisonProp) => [ + (p1[comparisonProp] || 0) < (p2[comparisonProp] || 0) ? + p1 : + p2, + false + ]), bSideCheckEvaluator = suppliedBSideCheckEvaluator || ((a, b) => a < b); /** * Set the one and two dimensional distance on the point object. * @private @@ -33103,28 +33105,21 @@ class Series { */ function doSearch(search, tree, depth, dimensions) { const point = tree.point, axis = series.kdAxisArray[depth % dimensions]; - let nPoint1, nPoint2, ret = point; + let ret = point, flip = false; setDistance(search, point); // Pick side based on distance to splitting point const tdist = (search[axis] || 0) - (point[axis] || 0) + (useRadius ? (point.marker?.radius || 0) : 0), sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left'; // End of tree if (tree[sideA]) { - nPoint1 = doSearch(search, tree[sideA], depth + 1, dimensions); - ret = (nPoint1[kdComparer] < - ret[kdComparer] ? - nPoint1 : - point); + [ret, flip] = pointEvaluator(point, doSearch(search, tree[sideA], depth + 1, dimensions), kdComparer); } if (tree[sideB]) { + const sqrtTDist = Math.sqrt(tdist * tdist), retDist = ret[kdComparer]; // Compare distance to current best to splitting point to decide - // whether to check side B or not - if (Math.sqrt(tdist * tdist) < ret[kdComparer]) { - nPoint2 = doSearch(search, tree[sideB], depth + 1, dimensions); - ret = (nPoint2[kdComparer] < - ret[kdComparer] ? - nPoint2 : - ret); + // whether to check side B or no + if (bSideCheckEvaluator(sqrtTDist, retDist, flip)) { + ret = pointEvaluator(ret, doSearch(search, tree[sideB], depth + 1, dimensions), kdComparer)[0]; } } return ret; @@ -42632,7 +42627,9 @@ var DataLabel; (unrotatedbBox.width - bBox.width); dataLabel.alignAttr.y += DataLabel_getAlignFactor(options.verticalAlign) * (unrotatedbBox.height - bBox.height); - dataLabel[dataLabel.placed ? 'animate' : 'attr']({ + dataLabel.attr({ + 'text-align': dataLabel.alignAttr['text-align'] || 'center' + })[dataLabel.placed ? 'animate' : 'attr']({ x: dataLabel.alignAttr.x + (bBox.width - unrotatedbBox.width) / 2, y: dataLabel.alignAttr.y + @@ -50721,7 +50718,7 @@ class StandaloneNavigator { ;// ./code/es-modules/masters/modules/navigator.src.js /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/modules/navigator * @requires highcharts * diff --git a/themes/avocado.js b/themes/avocado.js index 9d2387e9b8..4587abc70e 100644 --- a/themes/avocado.js +++ b/themes/avocado.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/avocado * @requires highcharts * * (c) 2009-2024 Highsoft AS * * License: www.highcharts.com/license - */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/avocado",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/avocado"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,t={944:e=>{e.exports=o}},r={};function n(o){var e=r[o];if(void 0!==e)return e.exports;var i=r[o]={exports:{}};return t[o](i,i.exports,n),i.exports}n.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return n.d(e,{a:e}),e},n.d=(o,e)=>{for(var t in e)n.o(e,t)&&!n.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},n.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};n.d(i,{default:()=>c});var a=n(944),s=/*#__PURE__*/n.n(a);let{setOptions:p}=s();!function(o){o.options={colors:["#F3E796","#95C471","#35729E","#251735"],colorAxis:{maxColor:"#05426E",minColor:"#F3E796"},plotOptions:{map:{nullColor:"#FCFEFE"}},navigator:{maskFill:"rgba(170, 205, 170, 0.5)",series:{color:"#95C471",lineColor:"#35729E"}}},o.apply=function(){p(o.options)}}(e||(e={}));let l=e;s().theme=l.options,l.apply();let c=s();return i.default})()); \ No newline at end of file + */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/avocado",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/avocado"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,t={944:e=>{e.exports=o}},r={};function n(o){var e=r[o];if(void 0!==e)return e.exports;var i=r[o]={exports:{}};return t[o](i,i.exports,n),i.exports}n.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return n.d(e,{a:e}),e},n.d=(o,e)=>{for(var t in e)n.o(e,t)&&!n.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},n.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};n.d(i,{default:()=>c});var a=n(944),s=n.n(a);let{setOptions:p}=s();!function(o){o.options={colors:["#F3E796","#95C471","#35729E","#251735"],colorAxis:{maxColor:"#05426E",minColor:"#F3E796"},plotOptions:{map:{nullColor:"#FCFEFE"}},navigator:{maskFill:"rgba(170, 205, 170, 0.5)",series:{color:"#95C471",lineColor:"#35729E"}}},o.apply=function(){p(o.options)}}(e||(e={}));let l=e;s().theme=l.options,l.apply();let c=s();return i.default})()); \ No newline at end of file diff --git a/themes/avocado.src.js b/themes/avocado.src.js index 4837f059ed..5df1e1dd7d 100644 --- a/themes/avocado.src.js +++ b/themes/avocado.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/avocado * @requires highcharts * diff --git a/themes/brand-dark.js b/themes/brand-dark.js index c808c3773a..21d24a66d3 100644 --- a/themes/brand-dark.js +++ b/themes/brand-dark.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/brand-dark * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/brand-dark",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/brand-dark"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,t={944:e=>{e.exports=o}},r={};function l(o){var e=r[o];if(void 0!==e)return e.exports;var f=r[o]={exports:{}};return t[o](f,f.exports,l),f.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var t in e)l.o(e,t)&&!l.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var f={};l.d(f,{default:()=>d});var i=l(944),n=/*#__PURE__*/l.n(i);let{setOptions:s}=n(),{createElement:a}=n();!function(o){o.options={colors:["#8087E8","#A3EDBA","#F19E53","#6699A1","#E1D369","#87B4E7","#DA6D85","#BBBAC5"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#1f1836"],[1,"#45445d"]]},style:{fontFamily:"IBM Plex Sans, sans-serif"}},title:{style:{fontSize:"22px",fontWeight:"500",color:"#fff"}},subtitle:{style:{fontSize:"16px",fontWeight:"400",color:"#fff"}},credits:{style:{color:"#f0f0f0"}},caption:{style:{color:"#f0f0f0"}},tooltip:{borderWidth:0,backgroundColor:"#f0f0f0",shadow:!0},legend:{backgroundColor:"transparent",itemStyle:{fontWeight:"400",fontSize:"12px",color:"#fff"},itemHoverStyle:{fontWeight:"700",color:"#fff"}},plotOptions:{series:{dataLabels:{color:"#46465C",style:{fontSize:"13px"}},marker:{lineColor:"#333"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:null,upColor:"#DA6D85",upLineColor:"#DA6D85"},errorbar:{color:"white"},dumbbell:{lowColor:"#f0f0f0"},map:{borderColor:"#909090",nullColor:"#78758C"}},drilldown:{activeAxisLabelStyle:{color:"#F0F0F3"},activeDataLabelStyle:{color:"#F0F0F3"},drillUpButton:{theme:{fill:"#fff"}}},xAxis:{gridLineColor:"#707073",labels:{style:{color:"#fff",fontSize:"12px"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:"#fff"}}},yAxis:{gridLineColor:"#707073",labels:{style:{color:"#fff",fontSize:"12px"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",tickWidth:1,title:{style:{color:"#fff",fontWeight:"300"}}},colorAxis:{gridLineColor:"#45445d",labels:{style:{color:"#fff",fontSize:"12px"}},minColor:"#342f95",maxColor:"#2caffe",tickColor:"#45445d"},mapNavigation:{enabled:!0,buttonOptions:{theme:{fill:"#46465C","stroke-width":1,stroke:"#BBBAC5",r:2,style:{color:"#fff"},states:{hover:{fill:"#000","stroke-width":1,stroke:"#f0f0f0",style:{color:"#fff"}},select:{fill:"#000","stroke-width":1,stroke:"#f0f0f0",style:{color:"#fff"}}}}}},rangeSelector:{buttonTheme:{fill:"#46465C",stroke:"#BBBAC5","stroke-width":1,style:{color:"#fff"},states:{hover:{fill:"#1f1836",style:{color:"#fff"},"stroke-width":1,stroke:"white"},select:{fill:"#1f1836",style:{color:"#fff"},"stroke-width":1,stroke:"white"}}},inputBoxBorderColor:"#BBBAC5",inputStyle:{backgroundColor:"#2F2B38",color:"#fff"},labelStyle:{color:"#fff"}},navigator:{handles:{backgroundColor:"#BBBAC5",borderColor:"#2F2B38"},outlineColor:"#CCC",maskFill:"rgba(255,255,255,0.1)",series:{color:"#A3EDBA",lineColor:"#A3EDBA"},xAxis:{gridLineColor:"#505053"}},scrollbar:{barBackgroundColor:"#BBBAC5",barBorderColor:"#808083",buttonArrowColor:"#2F2B38",buttonBackgroundColor:"#BBBAC5",buttonBorderColor:"#2F2B38",rifleColor:"#2F2B38",trackBackgroundColor:"#78758C",trackBorderColor:"#2F2B38"}},o.apply=function(){a("link",{href:"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@200;300;400;600;700",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),s(o.options)}}(e||(e={}));let c=e;n().theme=c.options,c.apply();let d=n();return f.default})()); \ No newline at end of file + */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/brand-dark",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/brand-dark"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,t={944:e=>{e.exports=o}},r={};function l(o){var e=r[o];if(void 0!==e)return e.exports;var f=r[o]={exports:{}};return t[o](f,f.exports,l),f.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var t in e)l.o(e,t)&&!l.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var f={};l.d(f,{default:()=>d});var i=l(944),n=l.n(i);let{setOptions:s}=n(),{createElement:a}=n();!function(o){o.options={colors:["#8087E8","#A3EDBA","#F19E53","#6699A1","#E1D369","#87B4E7","#DA6D85","#BBBAC5"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#1f1836"],[1,"#45445d"]]},style:{fontFamily:"IBM Plex Sans, sans-serif"}},title:{style:{fontSize:"22px",fontWeight:"500",color:"#fff"}},subtitle:{style:{fontSize:"16px",fontWeight:"400",color:"#fff"}},credits:{style:{color:"#f0f0f0"}},caption:{style:{color:"#f0f0f0"}},tooltip:{borderWidth:0,backgroundColor:"#f0f0f0",shadow:!0},legend:{backgroundColor:"transparent",itemStyle:{fontWeight:"400",fontSize:"12px",color:"#fff"},itemHoverStyle:{fontWeight:"700",color:"#fff"}},plotOptions:{series:{dataLabels:{color:"#46465C",style:{fontSize:"13px"}},marker:{lineColor:"#333"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:null,upColor:"#DA6D85",upLineColor:"#DA6D85"},errorbar:{color:"white"},dumbbell:{lowColor:"#f0f0f0"},map:{borderColor:"#909090",nullColor:"#78758C"}},drilldown:{activeAxisLabelStyle:{color:"#F0F0F3"},activeDataLabelStyle:{color:"#F0F0F3"},drillUpButton:{theme:{fill:"#fff"}}},xAxis:{gridLineColor:"#707073",labels:{style:{color:"#fff",fontSize:"12px"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:"#fff"}}},yAxis:{gridLineColor:"#707073",labels:{style:{color:"#fff",fontSize:"12px"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",tickWidth:1,title:{style:{color:"#fff",fontWeight:"300"}}},colorAxis:{gridLineColor:"#45445d",labels:{style:{color:"#fff",fontSize:"12px"}},minColor:"#342f95",maxColor:"#2caffe",tickColor:"#45445d"},mapNavigation:{enabled:!0,buttonOptions:{theme:{fill:"#46465C","stroke-width":1,stroke:"#BBBAC5",r:2,style:{color:"#fff"},states:{hover:{fill:"#000","stroke-width":1,stroke:"#f0f0f0",style:{color:"#fff"}},select:{fill:"#000","stroke-width":1,stroke:"#f0f0f0",style:{color:"#fff"}}}}}},rangeSelector:{buttonTheme:{fill:"#46465C",stroke:"#BBBAC5","stroke-width":1,style:{color:"#fff"},states:{hover:{fill:"#1f1836",style:{color:"#fff"},"stroke-width":1,stroke:"white"},select:{fill:"#1f1836",style:{color:"#fff"},"stroke-width":1,stroke:"white"}}},inputBoxBorderColor:"#BBBAC5",inputStyle:{backgroundColor:"#2F2B38",color:"#fff"},labelStyle:{color:"#fff"}},navigator:{handles:{backgroundColor:"#BBBAC5",borderColor:"#2F2B38"},outlineColor:"#CCC",maskFill:"rgba(255,255,255,0.1)",series:{color:"#A3EDBA",lineColor:"#A3EDBA"},xAxis:{gridLineColor:"#505053"}},scrollbar:{barBackgroundColor:"#BBBAC5",barBorderColor:"#808083",buttonArrowColor:"#2F2B38",buttonBackgroundColor:"#BBBAC5",buttonBorderColor:"#2F2B38",rifleColor:"#2F2B38",trackBackgroundColor:"#78758C",trackBorderColor:"#2F2B38"}},o.apply=function(){a("link",{href:"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@200;300;400;600;700",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),s(o.options)}}(e||(e={}));let c=e;n().theme=c.options,c.apply();let d=n();return f.default})()); \ No newline at end of file diff --git a/themes/brand-dark.src.js b/themes/brand-dark.src.js index 68033ba274..a99698a923 100644 --- a/themes/brand-dark.src.js +++ b/themes/brand-dark.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/brand-dark * @requires highcharts * diff --git a/themes/brand-light.js b/themes/brand-light.js index b17a47b238..73b4c408fc 100644 --- a/themes/brand-light.js +++ b/themes/brand-light.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/brand-light * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/brand-light",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/brand-light"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,t={944:e=>{e.exports=o}},r={};function l(o){var e=r[o];if(void 0!==e)return e.exports;var i=r[o]={exports:{}};return t[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var t in e)l.o(e,t)&&!l.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>d});var n=l(944),s=/*#__PURE__*/l.n(n);let{setOptions:c}=s(),{createElement:f}=s();!function(o){o.options={colors:["#8087E8","#A3EDBA","#F19E53","#6699A1","#E1D369","#87B4E7","#DA6D85","#BBBAC5"],chart:{backgroundColor:"#f0f0f0",style:{fontFamily:"IBM Plex Sans, sans-serif"}},title:{style:{fontSize:"22px",fontWeight:"500",color:"#2F2B38"}},subtitle:{style:{fontSize:"16px",fontWeight:"400",color:"#2F2B38"}},tooltip:{borderWidth:0,backgroundColor:"#46465C",style:{color:"#f0f0f0"},shadow:!0},legend:{backgroundColor:"#f0f0f0",borderColor:"#BBBAC5",borderWidth:1,borderRadius:2,itemStyle:{fontWeight:"400",fontSize:"12px",color:"#2F2B38"},itemHoverStyle:{fontWeight:"700",color:"#46465C"}},navigation:{buttonOptions:{symbolStroke:"#2F2B38",theme:{fill:"#fff",states:{hover:{stroke:"#46465C",fill:"#fff"},select:{stroke:"#46465C",fill:"#fff"}}}}},credits:{style:{color:"#46465C"}},drilldown:{activeAxisLabelStyle:{color:"#2F2B38"},activeDataLabelStyle:{color:"#2F2B38"},drillUpButton:{theme:{fill:"#2F2B38",style:{color:"#fff"}}}},xAxis:{gridLineColor:"#ccc",labels:{style:{color:"#46465C",fontSize:"12px"}},lineColor:"#ccc",minorGridLineColor:"#ebebeb",tickColor:"#ccc",title:{style:{color:"#2F2B38"}}},yAxis:{gridLineColor:"#ccc",labels:{style:{color:"#46465C",fontSize:"12px"}},lineColor:"#ccc",minorGridLineColor:"#ebebeb",tickColor:"#ccc",tickWidth:1,title:{style:{color:"#2F2B38",fontWeight:"300"}}},rangeSelector:{buttonTheme:{fill:"#fff",style:{color:"#46465C",stroke:"transparent"},states:{hover:{fill:"#fff",style:{color:"#46465C"},"stroke-width":1,stroke:"#46465C"},select:{fill:"#fff",style:{color:"#46465C"},"stroke-width":1,stroke:"#46465C"}}},inputBoxBorderColor:"#BBBAC5",inputStyle:{backgroundColor:"#fff",color:"#46465C"},labelStyle:{color:"#46465C"}},scrollbar:{barBackgroundColor:"#BBBAC5",barBorderColor:"#808083",buttonArrowColor:"#fff",buttonBackgroundColor:"#BBBAC5",buttonBorderColor:"#46465C",rifleColor:"#FFF",trackBackgroundColor:"#dedede",trackBorderColor:"#BBBAC5"},plotOptions:{series:{borderWidth:1,borderColor:"#BBBAC5",dataLabels:{color:"#46465C",style:{fontSize:"13px"}},marker:{lineColor:"#46465C"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:null,upColor:"#DA6D85",upLineColor:"#DA6D85"},errorbar:{color:"white"},map:{borderColor:"rgba(200, 200, 200, 0.3)",nullColor:"rgba(200, 200, 200, 0.3)"}}},o.apply=function(){f("link",{href:"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@200;300;400;600;700",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),c(o.options)}}(e||(e={}));let a=e;s().theme=a.options,a.apply();let d=s();return i.default})()); \ No newline at end of file + */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/brand-light",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/brand-light"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,t={944:e=>{e.exports=o}},r={};function l(o){var e=r[o];if(void 0!==e)return e.exports;var i=r[o]={exports:{}};return t[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var t in e)l.o(e,t)&&!l.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>d});var n=l(944),s=l.n(n);let{setOptions:c}=s(),{createElement:f}=s();!function(o){o.options={colors:["#8087E8","#A3EDBA","#F19E53","#6699A1","#E1D369","#87B4E7","#DA6D85","#BBBAC5"],chart:{backgroundColor:"#f0f0f0",style:{fontFamily:"IBM Plex Sans, sans-serif"}},title:{style:{fontSize:"22px",fontWeight:"500",color:"#2F2B38"}},subtitle:{style:{fontSize:"16px",fontWeight:"400",color:"#2F2B38"}},tooltip:{borderWidth:0,backgroundColor:"#46465C",style:{color:"#f0f0f0"},shadow:!0},legend:{backgroundColor:"#f0f0f0",borderColor:"#BBBAC5",borderWidth:1,borderRadius:2,itemStyle:{fontWeight:"400",fontSize:"12px",color:"#2F2B38"},itemHoverStyle:{fontWeight:"700",color:"#46465C"}},navigation:{buttonOptions:{symbolStroke:"#2F2B38",theme:{fill:"#fff",states:{hover:{stroke:"#46465C",fill:"#fff"},select:{stroke:"#46465C",fill:"#fff"}}}}},credits:{style:{color:"#46465C"}},drilldown:{activeAxisLabelStyle:{color:"#2F2B38"},activeDataLabelStyle:{color:"#2F2B38"},drillUpButton:{theme:{fill:"#2F2B38",style:{color:"#fff"}}}},xAxis:{gridLineColor:"#ccc",labels:{style:{color:"#46465C",fontSize:"12px"}},lineColor:"#ccc",minorGridLineColor:"#ebebeb",tickColor:"#ccc",title:{style:{color:"#2F2B38"}}},yAxis:{gridLineColor:"#ccc",labels:{style:{color:"#46465C",fontSize:"12px"}},lineColor:"#ccc",minorGridLineColor:"#ebebeb",tickColor:"#ccc",tickWidth:1,title:{style:{color:"#2F2B38",fontWeight:"300"}}},rangeSelector:{buttonTheme:{fill:"#fff",style:{color:"#46465C",stroke:"transparent"},states:{hover:{fill:"#fff",style:{color:"#46465C"},"stroke-width":1,stroke:"#46465C"},select:{fill:"#fff",style:{color:"#46465C"},"stroke-width":1,stroke:"#46465C"}}},inputBoxBorderColor:"#BBBAC5",inputStyle:{backgroundColor:"#fff",color:"#46465C"},labelStyle:{color:"#46465C"}},scrollbar:{barBackgroundColor:"#BBBAC5",barBorderColor:"#808083",buttonArrowColor:"#fff",buttonBackgroundColor:"#BBBAC5",buttonBorderColor:"#46465C",rifleColor:"#FFF",trackBackgroundColor:"#dedede",trackBorderColor:"#BBBAC5"},plotOptions:{series:{borderWidth:1,borderColor:"#BBBAC5",dataLabels:{color:"#46465C",style:{fontSize:"13px"}},marker:{lineColor:"#46465C"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:null,upColor:"#DA6D85",upLineColor:"#DA6D85"},errorbar:{color:"white"},map:{borderColor:"rgba(200, 200, 200, 0.3)",nullColor:"rgba(200, 200, 200, 0.3)"}}},o.apply=function(){f("link",{href:"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@200;300;400;600;700",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),c(o.options)}}(e||(e={}));let a=e;s().theme=a.options,a.apply();let d=s();return i.default})()); \ No newline at end of file diff --git a/themes/brand-light.src.js b/themes/brand-light.src.js index a464840670..1c4262647d 100644 --- a/themes/brand-light.src.js +++ b/themes/brand-light.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/brand-light * @requires highcharts * diff --git a/themes/dark-blue.js b/themes/dark-blue.js index e4bf3cb1e1..5d2cd03a98 100644 --- a/themes/dark-blue.js +++ b/themes/dark-blue.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/dark-blue * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/dark-blue",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/dark-blue"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var i=t[o]={exports:{}};return r[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>c});var n=l(944),a=/*#__PURE__*/l.n(n);let{setOptions:s}=a();!function(o){o.options={colors:["#DDDF0D","#55BF3B","#DF5353","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgb(48, 48, 96)"],[1,"rgb(0, 0, 0)"]]},borderColor:"#000000",borderWidth:2,className:"dark-container",plotBackgroundColor:"rgba(255, 255, 255, .1)",plotBorderColor:"#CCCCCC",plotBorderWidth:1},title:{style:{color:"#C0C0C0",font:'bold 16px "Trebuchet MS", Verdana, sans-serif'}},subtitle:{style:{color:"#666666",font:'bold 12px "Trebuchet MS", Verdana, sans-serif'}},xAxis:{gridLineColor:"#333333",gridLineWidth:1,labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},yAxis:{gridLineColor:"#333333",labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",tickWidth:1,title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.75)",style:{color:"#F0F0F0"}},plotOptions:{line:{dataLabels:{color:"#CCC"},marker:{lineColor:"#333"}},spline:{marker:{lineColor:"#333"}},scatter:{marker:{lineColor:"#333"}},candlestick:{lineColor:"white"}},legend:{backgroundColor:"rgba(0, 0, 0, 0.5)",itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"#A0A0A0"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#444"},title:{style:{color:"#C0C0C0"}}},credits:{style:{color:"#666"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#606060"],[.6,"#333333"]]},stroke:"#000000"}}},rangeSelector:{buttonTheme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},stroke:"#000000",style:{color:"#CCC",fontWeight:"bold"},states:{hover:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#BBB"],[.6,"#888"]]},stroke:"#000000",style:{color:"white"}},select:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.1,"#000"],[.3,"#333"]]},stroke:"#000000",style:{color:"yellow"}}}},inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(16, 16, 16, 0.5)",series:{color:"#7798BF",lineColor:"#A6C7ED"}},scrollbar:{barBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},barBorderColor:"#CCC",buttonArrowColor:"#CCC",buttonBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},buttonBorderColor:"#CCC",rifleColor:"#FFF",trackBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#000"],[1,"#333"]]},trackBorderColor:"#666"}},o.apply=function(){s(o.options)}}(e||(e={}));let d=e;a().theme=d.options,d.apply();let c=a();return i.default})()); \ No newline at end of file + */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/dark-blue",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/dark-blue"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var i=t[o]={exports:{}};return r[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>c});var n=l(944),a=l.n(n);let{setOptions:s}=a();!function(o){o.options={colors:["#DDDF0D","#55BF3B","#DF5353","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgb(48, 48, 96)"],[1,"rgb(0, 0, 0)"]]},borderColor:"#000000",borderWidth:2,className:"dark-container",plotBackgroundColor:"rgba(255, 255, 255, .1)",plotBorderColor:"#CCCCCC",plotBorderWidth:1},title:{style:{color:"#C0C0C0",font:'bold 16px "Trebuchet MS", Verdana, sans-serif'}},subtitle:{style:{color:"#666666",font:'bold 12px "Trebuchet MS", Verdana, sans-serif'}},xAxis:{gridLineColor:"#333333",gridLineWidth:1,labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},yAxis:{gridLineColor:"#333333",labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",tickWidth:1,title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.75)",style:{color:"#F0F0F0"}},plotOptions:{line:{dataLabels:{color:"#CCC"},marker:{lineColor:"#333"}},spline:{marker:{lineColor:"#333"}},scatter:{marker:{lineColor:"#333"}},candlestick:{lineColor:"white"}},legend:{backgroundColor:"rgba(0, 0, 0, 0.5)",itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"#A0A0A0"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#444"},title:{style:{color:"#C0C0C0"}}},credits:{style:{color:"#666"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#606060"],[.6,"#333333"]]},stroke:"#000000"}}},rangeSelector:{buttonTheme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},stroke:"#000000",style:{color:"#CCC",fontWeight:"bold"},states:{hover:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#BBB"],[.6,"#888"]]},stroke:"#000000",style:{color:"white"}},select:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.1,"#000"],[.3,"#333"]]},stroke:"#000000",style:{color:"yellow"}}}},inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(16, 16, 16, 0.5)",series:{color:"#7798BF",lineColor:"#A6C7ED"}},scrollbar:{barBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},barBorderColor:"#CCC",buttonArrowColor:"#CCC",buttonBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},buttonBorderColor:"#CCC",rifleColor:"#FFF",trackBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#000"],[1,"#333"]]},trackBorderColor:"#666"}},o.apply=function(){s(o.options)}}(e||(e={}));let d=e;a().theme=d.options,d.apply();let c=a();return i.default})()); \ No newline at end of file diff --git a/themes/dark-blue.src.js b/themes/dark-blue.src.js index 72c219431c..655ba79c7e 100644 --- a/themes/dark-blue.src.js +++ b/themes/dark-blue.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/dark-blue * @requires highcharts * diff --git a/themes/dark-green.js b/themes/dark-green.js index 1564519c49..6b6984ca73 100644 --- a/themes/dark-green.js +++ b/themes/dark-green.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/dark-green * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/dark-green",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/dark-green"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var i=t[o]={exports:{}};return r[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>c});var n=l(944),a=/*#__PURE__*/l.n(n);let{setOptions:s}=a();!function(o){o.options={colors:["#DDDF0D","#55BF3B","#DF5353","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgb(48, 96, 48)"],[1,"rgb(0, 0, 0)"]]},borderColor:"#000000",borderWidth:2,className:"dark-container",plotBackgroundColor:"rgba(255, 255, 255, .1)",plotBorderColor:"#CCCCCC",plotBorderWidth:1},title:{style:{color:"#C0C0C0",font:'bold 16px "Trebuchet MS", Verdana, sans-serif'}},subtitle:{style:{color:"#666666",font:'bold 12px "Trebuchet MS", Verdana, sans-serif'}},xAxis:{gridLineColor:"#333333",gridLineWidth:1,labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},yAxis:{gridLineColor:"#333333",labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",tickWidth:1,title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.75)",style:{color:"#F0F0F0"}},plotOptions:{line:{dataLabels:{color:"#CCC"},marker:{lineColor:"#333"}},spline:{marker:{lineColor:"#333"}},scatter:{marker:{lineColor:"#333"}},candlestick:{lineColor:"white"}},legend:{backgroundColor:"rgba(0, 0, 0, 0.5)",itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"#A0A0A0"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#444"},title:{style:{color:"#C0C0C0"}}},credits:{style:{color:"#666"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#606060"],[.6,"#333333"]]},stroke:"#000000"}}},rangeSelector:{buttonTheme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},stroke:"#000000",style:{color:"#CCC",fontWeight:"bold"},states:{hover:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#BBB"],[.6,"#888"]]},stroke:"#000000",style:{color:"white"}},select:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.1,"#000"],[.3,"#333"]]},stroke:"#000000",style:{color:"yellow"}}}},inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(16, 16, 16, 0.5)",series:{color:"#7798BF",lineColor:"#A6C7ED"}},scrollbar:{barBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},barBorderColor:"#CCC",buttonArrowColor:"#CCC",buttonBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},buttonBorderColor:"#CCC",rifleColor:"#FFF",trackBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#000"],[1,"#333"]]},trackBorderColor:"#666"}},o.apply=function(){s(o.options)}}(e||(e={}));let d=e;a().theme=d.options,d.apply();let c=a();return i.default})()); \ No newline at end of file + */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/dark-green",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/dark-green"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var i=t[o]={exports:{}};return r[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>c});var n=l(944),a=l.n(n);let{setOptions:s}=a();!function(o){o.options={colors:["#DDDF0D","#55BF3B","#DF5353","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgb(48, 96, 48)"],[1,"rgb(0, 0, 0)"]]},borderColor:"#000000",borderWidth:2,className:"dark-container",plotBackgroundColor:"rgba(255, 255, 255, .1)",plotBorderColor:"#CCCCCC",plotBorderWidth:1},title:{style:{color:"#C0C0C0",font:'bold 16px "Trebuchet MS", Verdana, sans-serif'}},subtitle:{style:{color:"#666666",font:'bold 12px "Trebuchet MS", Verdana, sans-serif'}},xAxis:{gridLineColor:"#333333",gridLineWidth:1,labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},yAxis:{gridLineColor:"#333333",labels:{style:{color:"#A0A0A0"}},lineColor:"#A0A0A0",tickColor:"#A0A0A0",tickWidth:1,title:{style:{color:"#CCC",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.75)",style:{color:"#F0F0F0"}},plotOptions:{line:{dataLabels:{color:"#CCC"},marker:{lineColor:"#333"}},spline:{marker:{lineColor:"#333"}},scatter:{marker:{lineColor:"#333"}},candlestick:{lineColor:"white"}},legend:{backgroundColor:"rgba(0, 0, 0, 0.5)",itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"#A0A0A0"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#444"},title:{style:{color:"#C0C0C0"}}},credits:{style:{color:"#666"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#606060"],[.6,"#333333"]]},stroke:"#000000"}}},rangeSelector:{buttonTheme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},stroke:"#000000",style:{color:"#CCC",fontWeight:"bold"},states:{hover:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#BBB"],[.6,"#888"]]},stroke:"#000000",style:{color:"white"}},select:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.1,"#000"],[.3,"#333"]]},stroke:"#000000",style:{color:"yellow"}}}},inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(16, 16, 16, 0.5)",series:{color:"#7798BF",lineColor:"#A6C7ED"}},scrollbar:{barBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},barBorderColor:"#CCC",buttonArrowColor:"#CCC",buttonBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},buttonBorderColor:"#CCC",rifleColor:"#FFF",trackBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#000"],[1,"#333"]]},trackBorderColor:"#666"}},o.apply=function(){s(o.options)}}(e||(e={}));let d=e;a().theme=d.options,d.apply();let c=a();return i.default})()); \ No newline at end of file diff --git a/themes/dark-green.src.js b/themes/dark-green.src.js index 7853e757da..03d2122c71 100644 --- a/themes/dark-green.src.js +++ b/themes/dark-green.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/dark-green * @requires highcharts * diff --git a/themes/dark-unica.js b/themes/dark-unica.js index 1f66f5bfb6..f27194cc0b 100644 --- a/themes/dark-unica.js +++ b/themes/dark-unica.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/dark-unica * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/dark-unica",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/dark-unica"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var i=t[o]={exports:{}};return r[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>p});var a=l(944),n=/*#__PURE__*/l.n(a);let{setOptions:s}=n(),{createElement:c}=n();!function(o){o.options={colors:["#2b908f","#90ee7e","#f45b5b","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"#2a2a2b"],[1,"#3e3e40"]]},style:{fontFamily:"'Unica One', sans-serif"},plotBorderColor:"#606063"},title:{style:{color:"#E0E0E3",textTransform:"uppercase",fontSize:"20px"}},subtitle:{style:{color:"#E0E0E3",textTransform:"uppercase"}},xAxis:{gridLineColor:"#707073",labels:{style:{color:"#E0E0E3"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:"#A0A0A3"}}},yAxis:{gridLineColor:"#707073",labels:{style:{color:"#E0E0E3"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",tickWidth:1,title:{style:{color:"#A0A0A3"}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.85)",style:{color:"#F0F0F0"}},plotOptions:{series:{dataLabels:{color:"#F0F0F3",style:{fontSize:"13px"}},marker:{lineColor:"#333"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:"white"},errorbar:{color:"white"}},legend:{backgroundColor:"rgba(0, 0, 0, 0.5)",itemStyle:{color:"#E0E0E3"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#606063"},title:{style:{color:"#C0C0C0"}}},credits:{style:{color:"#666"}},drilldown:{activeAxisLabelStyle:{color:"#F0F0F3"},activeDataLabelStyle:{color:"#F0F0F3"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:"#505053"}}},rangeSelector:{buttonTheme:{fill:"#505053",stroke:"#000000",style:{color:"#CCC"},states:{hover:{fill:"#707073",stroke:"#000000",style:{color:"white"}},select:{fill:"#000003",stroke:"#000000",style:{color:"white"}}}},inputBoxBorderColor:"#505053",inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(255,255,255,0.1)",series:{color:"#7798BF",lineColor:"#A6C7ED"},xAxis:{gridLineColor:"#505053"}},scrollbar:{barBackgroundColor:"#808083",barBorderColor:"#808083",buttonArrowColor:"#CCC",buttonBackgroundColor:"#606063",buttonBorderColor:"#606063",rifleColor:"#FFF",trackBackgroundColor:"#404043",trackBorderColor:"#404043"}},o.apply=function(){c("link",{href:"https://fonts.googleapis.com/css?family=Unica+One",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),s(o.options)}}(e||(e={}));let d=e;n().theme=d.options,d.apply();let p=n();return i.default})()); \ No newline at end of file + */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/dark-unica",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/dark-unica"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var i=t[o]={exports:{}};return r[o](i,i.exports,l),i.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var i={};l.d(i,{default:()=>p});var a=l(944),n=l.n(a);let{setOptions:s}=n(),{createElement:c}=n();!function(o){o.options={colors:["#2b908f","#90ee7e","#f45b5b","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"#2a2a2b"],[1,"#3e3e40"]]},style:{fontFamily:"'Unica One', sans-serif"},plotBorderColor:"#606063"},title:{style:{color:"#E0E0E3",textTransform:"uppercase",fontSize:"20px"}},subtitle:{style:{color:"#E0E0E3",textTransform:"uppercase"}},xAxis:{gridLineColor:"#707073",labels:{style:{color:"#E0E0E3"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:"#A0A0A3"}}},yAxis:{gridLineColor:"#707073",labels:{style:{color:"#E0E0E3"}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",tickWidth:1,title:{style:{color:"#A0A0A3"}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.85)",style:{color:"#F0F0F0"}},plotOptions:{series:{dataLabels:{color:"#F0F0F3",style:{fontSize:"13px"}},marker:{lineColor:"#333"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:"white"},errorbar:{color:"white"}},legend:{backgroundColor:"rgba(0, 0, 0, 0.5)",itemStyle:{color:"#E0E0E3"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#606063"},title:{style:{color:"#C0C0C0"}}},credits:{style:{color:"#666"}},drilldown:{activeAxisLabelStyle:{color:"#F0F0F3"},activeDataLabelStyle:{color:"#F0F0F3"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:"#505053"}}},rangeSelector:{buttonTheme:{fill:"#505053",stroke:"#000000",style:{color:"#CCC"},states:{hover:{fill:"#707073",stroke:"#000000",style:{color:"white"}},select:{fill:"#000003",stroke:"#000000",style:{color:"white"}}}},inputBoxBorderColor:"#505053",inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(255,255,255,0.1)",series:{color:"#7798BF",lineColor:"#A6C7ED"},xAxis:{gridLineColor:"#505053"}},scrollbar:{barBackgroundColor:"#808083",barBorderColor:"#808083",buttonArrowColor:"#CCC",buttonBackgroundColor:"#606063",buttonBorderColor:"#606063",rifleColor:"#FFF",trackBackgroundColor:"#404043",trackBorderColor:"#404043"}},o.apply=function(){c("link",{href:"https://fonts.googleapis.com/css?family=Unica+One",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),s(o.options)}}(e||(e={}));let d=e;n().theme=d.options,d.apply();let p=n();return i.default})()); \ No newline at end of file diff --git a/themes/dark-unica.src.js b/themes/dark-unica.src.js index 4bd4c8ed93..c041107971 100644 --- a/themes/dark-unica.src.js +++ b/themes/dark-unica.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/dark-unica * @requires highcharts * diff --git a/themes/gray.js b/themes/gray.js index 1ec1f48f89..7666b46934 100644 --- a/themes/gray.js +++ b/themes/gray.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/gray * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/gray",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/gray"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var a=t[o]={exports:{}};return r[o](a,a.exports,l),a.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var a={};l.d(a,{default:()=>c});var i=l(944),n=/*#__PURE__*/l.n(i);let{setOptions:s}=n();!function(o){o.options={colors:["#DDDF0D","#7798BF","#55BF3B","#DF5353","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"rgb(96, 96, 96)"],[1,"rgb(16, 16, 16)"]]},borderWidth:0,borderRadius:0,plotBackgroundColor:null,plotShadow:!1,plotBorderWidth:0},title:{style:{color:"#FFF",font:"16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},subtitle:{style:{color:"#DDD",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},xAxis:{gridLineWidth:0,lineColor:"#999",tickColor:"#999",labels:{style:{color:"#999",fontWeight:"bold"}},title:{style:{color:"#AAA",font:"bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},yAxis:{alternateGridColor:null,minorTickInterval:null,gridLineColor:"rgba(255, 255, 255, .1)",minorGridLineColor:"rgba(255,255,255,0.07)",lineWidth:0,tickWidth:0,labels:{style:{color:"#999",fontWeight:"bold"}},title:{style:{color:"#AAA",font:"bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},legend:{backgroundColor:"rgba(48, 48, 48, 0.8)",itemStyle:{color:"#CCC"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#333"},title:{style:{color:"#E0E0E0"}}},tooltip:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"rgba(96, 96, 96, .8)"],[1,"rgba(16, 16, 16, .8)"]]},borderWidth:0,style:{color:"#FFF"}},plotOptions:{series:{dataLabels:{color:"#444"},nullColor:"#444444"},line:{dataLabels:{color:"#CCC"},marker:{lineColor:"#333"}},spline:{marker:{lineColor:"#333"}},scatter:{marker:{lineColor:"#333"}},candlestick:{lineColor:"white"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#606060"],[.6,"#333333"]]},stroke:"#000000"}}},rangeSelector:{buttonTheme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},stroke:"#000000",style:{color:"#CCC",fontWeight:"bold"},states:{hover:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#BBB"],[.6,"#888"]]},stroke:"#000000",style:{color:"white"}},select:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.1,"#000"],[.3,"#333"]]},stroke:"#000000",style:{color:"yellow"}}}},inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(16, 16, 16, 0.5)",series:{color:"#7798BF",lineColor:"#A6C7ED"}},scrollbar:{barBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},barBorderColor:"#CCC",buttonArrowColor:"#CCC",buttonBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},buttonBorderColor:"#CCC",rifleColor:"#FFF",trackBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#000"],[1,"#333"]]},trackBorderColor:"#666"}},o.apply=function(){s(o.options)}}(e||(e={}));let d=e;n().theme=d.options,d.apply();let c=n();return a.default})()); \ No newline at end of file + */function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/gray",["highcharts/highcharts"],function(o){return e(o)}):"object"==typeof exports?exports["highcharts/themes/gray"]=e(o._Highcharts):o.Highcharts=e(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var e,r={944:e=>{e.exports=o}},t={};function l(o){var e=t[o];if(void 0!==e)return e.exports;var a=t[o]={exports:{}};return r[o](a,a.exports,l),a.exports}l.n=o=>{var e=o&&o.__esModule?()=>o.default:()=>o;return l.d(e,{a:e}),e},l.d=(o,e)=>{for(var r in e)l.o(e,r)&&!l.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:e[r]})},l.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var a={};l.d(a,{default:()=>c});var i=l(944),n=l.n(i);let{setOptions:s}=n();!function(o){o.options={colors:["#DDDF0D","#7798BF","#55BF3B","#DF5353","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"rgb(96, 96, 96)"],[1,"rgb(16, 16, 16)"]]},borderWidth:0,borderRadius:0,plotBackgroundColor:null,plotShadow:!1,plotBorderWidth:0},title:{style:{color:"#FFF",font:"16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},subtitle:{style:{color:"#DDD",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},xAxis:{gridLineWidth:0,lineColor:"#999",tickColor:"#999",labels:{style:{color:"#999",fontWeight:"bold"}},title:{style:{color:"#AAA",font:"bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},yAxis:{alternateGridColor:null,minorTickInterval:null,gridLineColor:"rgba(255, 255, 255, .1)",minorGridLineColor:"rgba(255,255,255,0.07)",lineWidth:0,tickWidth:0,labels:{style:{color:"#999",fontWeight:"bold"}},title:{style:{color:"#AAA",font:"bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},legend:{backgroundColor:"rgba(48, 48, 48, 0.8)",itemStyle:{color:"#CCC"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#333"},title:{style:{color:"#E0E0E0"}}},tooltip:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"rgba(96, 96, 96, .8)"],[1,"rgba(16, 16, 16, .8)"]]},borderWidth:0,style:{color:"#FFF"}},plotOptions:{series:{dataLabels:{color:"#444"},nullColor:"#444444"},line:{dataLabels:{color:"#CCC"},marker:{lineColor:"#333"}},spline:{marker:{lineColor:"#333"}},scatter:{marker:{lineColor:"#333"}},candlestick:{lineColor:"white"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#606060"],[.6,"#333333"]]},stroke:"#000000"}}},rangeSelector:{buttonTheme:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},stroke:"#000000",style:{color:"#CCC",fontWeight:"bold"},states:{hover:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#BBB"],[.6,"#888"]]},stroke:"#000000",style:{color:"white"}},select:{fill:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.1,"#000"],[.3,"#333"]]},stroke:"#000000",style:{color:"yellow"}}}},inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(16, 16, 16, 0.5)",series:{color:"#7798BF",lineColor:"#A6C7ED"}},scrollbar:{barBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},barBorderColor:"#CCC",buttonArrowColor:"#CCC",buttonBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[.4,"#888"],[.6,"#555"]]},buttonBorderColor:"#CCC",rifleColor:"#FFF",trackBackgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#000"],[1,"#333"]]},trackBorderColor:"#666"}},o.apply=function(){s(o.options)}}(e||(e={}));let d=e;n().theme=d.options,d.apply();let c=n();return a.default})()); \ No newline at end of file diff --git a/themes/gray.src.js b/themes/gray.src.js index 42abb8af7b..4849e8cb1d 100644 --- a/themes/gray.src.js +++ b/themes/gray.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/gray * @requires highcharts * diff --git a/themes/grid-light.js b/themes/grid-light.js index bc6694d1f7..4db85db6fc 100644 --- a/themes/grid-light.js +++ b/themes/grid-light.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/grid-light * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/grid-light",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/grid-light"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={exports:{}};return o[e](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};i.d(s,{default:()=>f});var n=i(944),a=/*#__PURE__*/i.n(n);let{setOptions:l}=a(),{createElement:p}=a();!function(e){e.options={colors:["#7cb5ec","#f7a35c","#90ee7e","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:null,style:{fontFamily:"Dosis, sans-serif"}},title:{style:{fontSize:"16px",fontWeight:"bold",textTransform:"uppercase"}},tooltip:{borderWidth:0,backgroundColor:"rgba(219,219,216,0.8)",shadow:!1},legend:{backgroundColor:"#F0F0EA",itemStyle:{fontWeight:"bold",fontSize:"13px"}},xAxis:{gridLineWidth:1,labels:{style:{fontSize:"12px"}}},yAxis:{minorTickInterval:"auto",title:{style:{textTransform:"uppercase"}},labels:{style:{fontSize:"12px"}}},plotOptions:{candlestick:{lineColor:"#404048"}}},e.apply=function(){p("link",{href:"https://fonts.googleapis.com/css?family=Dosis:400,600",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),l(e.options)}}(t||(t={}));let c=t;a().theme=c.options,c.apply();let f=a();return s.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/grid-light",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/grid-light"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={exports:{}};return o[e](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};i.d(s,{default:()=>f});var n=i(944),a=i.n(n);let{setOptions:l}=a(),{createElement:p}=a();!function(e){e.options={colors:["#7cb5ec","#f7a35c","#90ee7e","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:null,style:{fontFamily:"Dosis, sans-serif"}},title:{style:{fontSize:"16px",fontWeight:"bold",textTransform:"uppercase"}},tooltip:{borderWidth:0,backgroundColor:"rgba(219,219,216,0.8)",shadow:!1},legend:{backgroundColor:"#F0F0EA",itemStyle:{fontWeight:"bold",fontSize:"13px"}},xAxis:{gridLineWidth:1,labels:{style:{fontSize:"12px"}}},yAxis:{minorTickInterval:"auto",title:{style:{textTransform:"uppercase"}},labels:{style:{fontSize:"12px"}}},plotOptions:{candlestick:{lineColor:"#404048"}}},e.apply=function(){p("link",{href:"https://fonts.googleapis.com/css?family=Dosis:400,600",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),l(e.options)}}(t||(t={}));let c=t;a().theme=c.options,c.apply();let f=a();return s.default})()); \ No newline at end of file diff --git a/themes/grid-light.src.js b/themes/grid-light.src.js index 6a96dae161..df8f2cf062 100644 --- a/themes/grid-light.src.js +++ b/themes/grid-light.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/grid-light * @requires highcharts * diff --git a/themes/grid.js b/themes/grid.js index 68d0eeb747..36055fb68b 100644 --- a/themes/grid.js +++ b/themes/grid.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/grid * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/grid",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/grid"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var n=r[e]={exports:{}};return o[e](n,n.exports,i),n.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>c});var s=i(944),a=/*#__PURE__*/i.n(s);let{setOptions:l}=a();!function(e){e.options={colors:["#058DC7","#50B432","#ED561B","#DDDF00","#24CBE5","#64E572","#FF9655","#FFF263","#6AF9C4"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgb(255, 255, 255)"],[1,"rgb(240, 240, 255)"]]},borderWidth:2,plotBackgroundColor:"rgba(255, 255, 255, .9)",plotShadow:!0,plotBorderWidth:1},title:{style:{color:"#000",font:'bold 16px "Trebuchet MS", Verdana, sans-serif'}},subtitle:{style:{color:"#666666",font:'bold 12px "Trebuchet MS", Verdana, sans-serif'}},xAxis:{gridLineWidth:1,lineColor:"#000",tickColor:"#000",labels:{style:{color:"#000",font:"11px Trebuchet MS, Verdana, sans-serif"}},title:{style:{color:"#333",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},yAxis:{minorTickInterval:"auto",lineColor:"#000",lineWidth:1,tickWidth:1,tickColor:"#000",labels:{style:{color:"#000",font:"11px Trebuchet MS, Verdana, sans-serif"}},title:{style:{color:"#333",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},legend:{itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"black"},itemHoverStyle:{color:"#039"},itemHiddenStyle:{color:"gray"}},navigation:{buttonOptions:{theme:{stroke:"#CCCCCC"}}}},e.apply=function(){l(e.options)}}(t||(t={}));let d=t;a().theme=d.options,d.apply();let c=a();return n.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/grid",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/grid"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var n=r[e]={exports:{}};return o[e](n,n.exports,i),n.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};i.d(n,{default:()=>c});var s=i(944),a=i.n(s);let{setOptions:l}=a();!function(e){e.options={colors:["#058DC7","#50B432","#ED561B","#DDDF00","#24CBE5","#64E572","#FF9655","#FFF263","#6AF9C4"],chart:{backgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgb(255, 255, 255)"],[1,"rgb(240, 240, 255)"]]},borderWidth:2,plotBackgroundColor:"rgba(255, 255, 255, .9)",plotShadow:!0,plotBorderWidth:1},title:{style:{color:"#000",font:'bold 16px "Trebuchet MS", Verdana, sans-serif'}},subtitle:{style:{color:"#666666",font:'bold 12px "Trebuchet MS", Verdana, sans-serif'}},xAxis:{gridLineWidth:1,lineColor:"#000",tickColor:"#000",labels:{style:{color:"#000",font:"11px Trebuchet MS, Verdana, sans-serif"}},title:{style:{color:"#333",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},yAxis:{minorTickInterval:"auto",lineColor:"#000",lineWidth:1,tickWidth:1,tickColor:"#000",labels:{style:{color:"#000",font:"11px Trebuchet MS, Verdana, sans-serif"}},title:{style:{color:"#333",fontWeight:"bold",fontSize:"12px",fontFamily:"Trebuchet MS, Verdana, sans-serif"}}},legend:{itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"black"},itemHoverStyle:{color:"#039"},itemHiddenStyle:{color:"gray"}},navigation:{buttonOptions:{theme:{stroke:"#CCCCCC"}}}},e.apply=function(){l(e.options)}}(t||(t={}));let d=t;a().theme=d.options,d.apply();let c=a();return n.default})()); \ No newline at end of file diff --git a/themes/grid.src.js b/themes/grid.src.js index cb3b329e21..f0396a6372 100644 --- a/themes/grid.src.js +++ b/themes/grid.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/grid * @requires highcharts * diff --git a/themes/high-contrast-dark.js b/themes/high-contrast-dark.js index 72e0300913..b48efa034a 100644 --- a/themes/high-contrast-dark.js +++ b/themes/high-contrast-dark.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/high-contrast-dark * @requires highcharts * * (c) 2009-2024 Highsoft AS * * License: www.highcharts.com/license - */function(o,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/high-contrast-dark",["highcharts/highcharts"],function(o){return r(o)}):"object"==typeof exports?exports["highcharts/themes/high-contrast-dark"]=r(o._Highcharts):o.Highcharts=r(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var r,e={944:r=>{r.exports=o}},t={};function l(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,l),i.exports}l.n=o=>{var r=o&&o.__esModule?()=>o.default:()=>o;return l.d(r,{a:r}),r},l.d=(o,r)=>{for(var e in r)l.o(r,e)&&!l.o(o,e)&&Object.defineProperty(o,e,{enumerable:!0,get:r[e]})},l.o=(o,r)=>Object.prototype.hasOwnProperty.call(o,r);var i={};l.d(i,{default:()=>d});var n=l(944),a=/*#__PURE__*/l.n(n);let{setOptions:s}=a();!function(o){let r="#F0F0F3";o.options={colors:["#67B9EE","#CEEDA5","#9F6AE1","#FEA26E","#6BA48F","#EA3535","#8D96B7","#ECCA15","#20AA09","#E0C3E4"],chart:{backgroundColor:"#1f1f20",plotBorderColor:"#606063"},title:{style:{color:r}},subtitle:{style:{color:r}},xAxis:{gridLineColor:"#707073",labels:{style:{color:r}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:r}}},yAxis:{gridLineColor:"#707073",labels:{style:{color:r}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:r}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.85)",style:{color:r}},plotOptions:{series:{dataLabels:{color:r},marker:{lineColor:"#333"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:"white"},errorbar:{color:"white"},map:{nullColor:"#353535"}},legend:{backgroundColor:"transparent",itemStyle:{color:r},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#606063"},title:{style:{color:"#D0D0D0"}}},credits:{style:{color:r}},drilldown:{activeAxisLabelStyle:{color:r},activeDataLabelStyle:{color:r}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:"#505053"}}},rangeSelector:{buttonTheme:{fill:"#505053",stroke:"#000000",style:{color:"#eee"},states:{hover:{fill:"#707073",stroke:"#000000",style:{color:r}},select:{fill:"#303030",stroke:"#101010",style:{color:r}}}},inputBoxBorderColor:"#505053",inputStyle:{backgroundColor:"#333",color:r},labelStyle:{color:r}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(180,180,255,0.2)",series:{color:"#7798BF",lineColor:"#A6C7ED"},xAxis:{gridLineColor:"#505053"}},scrollbar:{barBackgroundColor:"#808083",barBorderColor:"#808083",buttonArrowColor:"#CCC",buttonBackgroundColor:"#606063",buttonBorderColor:"#606063",rifleColor:"#FFF",trackBackgroundColor:"#404043",trackBorderColor:"#404043"}},o.apply=function(){s(o.options)}}(r||(r={}));let c=r;a().theme=c.options,c.apply();let d=a();return i.default})()); \ No newline at end of file + */function(o,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(o._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/high-contrast-dark",["highcharts/highcharts"],function(o){return r(o)}):"object"==typeof exports?exports["highcharts/themes/high-contrast-dark"]=r(o._Highcharts):o.Highcharts=r(o.Highcharts)}("undefined"==typeof window?this:window,o=>(()=>{"use strict";var r,e={944:r=>{r.exports=o}},t={};function l(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,l),i.exports}l.n=o=>{var r=o&&o.__esModule?()=>o.default:()=>o;return l.d(r,{a:r}),r},l.d=(o,r)=>{for(var e in r)l.o(r,e)&&!l.o(o,e)&&Object.defineProperty(o,e,{enumerable:!0,get:r[e]})},l.o=(o,r)=>Object.prototype.hasOwnProperty.call(o,r);var i={};l.d(i,{default:()=>d});var n=l(944),a=l.n(n);let{setOptions:s}=a();!function(o){let r="#F0F0F3";o.options={colors:["#67B9EE","#CEEDA5","#9F6AE1","#FEA26E","#6BA48F","#EA3535","#8D96B7","#ECCA15","#20AA09","#E0C3E4"],chart:{backgroundColor:"#1f1f20",plotBorderColor:"#606063"},title:{style:{color:r}},subtitle:{style:{color:r}},xAxis:{gridLineColor:"#707073",labels:{style:{color:r}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:r}}},yAxis:{gridLineColor:"#707073",labels:{style:{color:r}},lineColor:"#707073",minorGridLineColor:"#505053",tickColor:"#707073",title:{style:{color:r}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.85)",style:{color:r}},plotOptions:{series:{dataLabels:{color:r},marker:{lineColor:"#333"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:"white"},errorbar:{color:"white"},map:{nullColor:"#353535"}},legend:{backgroundColor:"transparent",itemStyle:{color:r},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#606063"},title:{style:{color:"#D0D0D0"}}},credits:{style:{color:r}},drilldown:{activeAxisLabelStyle:{color:r},activeDataLabelStyle:{color:r}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:"#505053"}}},rangeSelector:{buttonTheme:{fill:"#505053",stroke:"#000000",style:{color:"#eee"},states:{hover:{fill:"#707073",stroke:"#000000",style:{color:r}},select:{fill:"#303030",stroke:"#101010",style:{color:r}}}},inputBoxBorderColor:"#505053",inputStyle:{backgroundColor:"#333",color:r},labelStyle:{color:r}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(180,180,255,0.2)",series:{color:"#7798BF",lineColor:"#A6C7ED"},xAxis:{gridLineColor:"#505053"}},scrollbar:{barBackgroundColor:"#808083",barBorderColor:"#808083",buttonArrowColor:"#CCC",buttonBackgroundColor:"#606063",buttonBorderColor:"#606063",rifleColor:"#FFF",trackBackgroundColor:"#404043",trackBorderColor:"#404043"}},o.apply=function(){s(o.options)}}(r||(r={}));let c=r;a().theme=c.options,c.apply();let d=a();return i.default})()); \ No newline at end of file diff --git a/themes/high-contrast-dark.src.js b/themes/high-contrast-dark.src.js index bea2b9d5e5..eb88528b40 100644 --- a/themes/high-contrast-dark.src.js +++ b/themes/high-contrast-dark.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/high-contrast-dark * @requires highcharts * diff --git a/themes/high-contrast-light.js b/themes/high-contrast-light.js index 2d8704919f..b2c33ad798 100644 --- a/themes/high-contrast-light.js +++ b/themes/high-contrast-light.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/high-contrast-light * @requires highcharts * * (c) 2009-2024 Highsoft AS * * License: www.highcharts.com/license - */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/high-contrast-light",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/themes/high-contrast-light"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e,o={944:e=>{e.exports=t}},r={};function i(t){var e=r[t];if(void 0!==e)return e.exports;var n=r[t]={exports:{}};return o[t](n,n.exports,i),n.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>f});var s=i(944),h=/*#__PURE__*/i.n(s);let{setOptions:a}=h();!function(t){t.options={colors:["#265FB5","#222","#698F01","#F4693E","#4C0684","#0FA388","#B7104A","#AF9023","#1A704C","#B02FDD"],credits:{style:{color:"#767676"}},navigator:{series:{color:"#5f98cf",lineColor:"#5f98cf"}}},t.apply=function(){a(t.options)}}(e||(e={}));let c=e;h().theme=c.options,c.apply();let f=h();return n.default})()); \ No newline at end of file + */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/high-contrast-light",["highcharts/highcharts"],function(t){return e(t)}):"object"==typeof exports?exports["highcharts/themes/high-contrast-light"]=e(t._Highcharts):t.Highcharts=e(t.Highcharts)}("undefined"==typeof window?this:window,t=>(()=>{"use strict";var e,o={944:e=>{e.exports=t}},r={};function i(t){var e=r[t];if(void 0!==e)return e.exports;var n=r[t]={exports:{}};return o[t](n,n.exports,i),n.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>f});var s=i(944),h=i.n(s);let{setOptions:a}=h();!function(t){t.options={colors:["#265FB5","#222","#698F01","#F4693E","#4C0684","#0FA388","#B7104A","#AF9023","#1A704C","#B02FDD"],credits:{style:{color:"#767676"}},navigator:{series:{color:"#5f98cf",lineColor:"#5f98cf"}}},t.apply=function(){a(t.options)}}(e||(e={}));let c=e;h().theme=c.options,c.apply();let f=h();return n.default})()); \ No newline at end of file diff --git a/themes/high-contrast-light.src.js b/themes/high-contrast-light.src.js index 3832484dc1..871f0a9368 100644 --- a/themes/high-contrast-light.src.js +++ b/themes/high-contrast-light.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/high-contrast-light * @requires highcharts * diff --git a/themes/sand-signika.js b/themes/sand-signika.js index a02ecb7f83..1b0c8f694a 100644 --- a/themes/sand-signika.js +++ b/themes/sand-signika.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/sand-signika * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/sand-signika",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/sand-signika"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={exports:{}};return o[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>p});var a=s(944),n=/*#__PURE__*/s.n(a);let{setOptions:l}=n(),{addEvent:c,createElement:h}=n();!function(e){e.options={colors:["#f45b5b","#8085e9","#8d4654","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:null,style:{fontFamily:"Signika, serif"}},title:{style:{color:"black",fontSize:"16px",fontWeight:"bold"}},subtitle:{style:{color:"black"}},tooltip:{borderWidth:0},legend:{backgroundColor:"#E0E0E8",itemStyle:{fontWeight:"bold",fontSize:"13px"}},xAxis:{labels:{style:{color:"#6e6e70"}}},yAxis:{labels:{style:{color:"#6e6e70"}}},plotOptions:{series:{shadow:!0},candlestick:{lineColor:"#404048"},map:{shadow:!1}},navigator:{xAxis:{gridLineColor:"#D0D0D8"}},rangeSelector:{buttonTheme:{fill:"white",stroke:"#C0C0C8","stroke-width":1,states:{select:{fill:"#D0D0D8"}}}},scrollbar:{trackBorderColor:"#C0C0C8"}},e.apply=function(){h("link",{href:"https://fonts.googleapis.com/css?family=Signika:400,700",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),c(n().Chart,"afterGetContainer",function(){this.container.style.background="url(https://www.highcharts.com/samples/graphics/sand.png)"}),l(e.options)}}(t||(t={}));let d=t;n().theme=d.options,d.apply();let p=n();return i.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/sand-signika",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/sand-signika"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={exports:{}};return o[e](i,i.exports,s),i.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};s.d(i,{default:()=>p});var a=s(944),n=s.n(a);let{setOptions:l}=n(),{addEvent:c,createElement:h}=n();!function(e){e.options={colors:["#f45b5b","#8085e9","#8d4654","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:null,style:{fontFamily:"Signika, serif"}},title:{style:{color:"black",fontSize:"16px",fontWeight:"bold"}},subtitle:{style:{color:"black"}},tooltip:{borderWidth:0},legend:{backgroundColor:"#E0E0E8",itemStyle:{fontWeight:"bold",fontSize:"13px"}},xAxis:{labels:{style:{color:"#6e6e70"}}},yAxis:{labels:{style:{color:"#6e6e70"}}},plotOptions:{series:{shadow:!0},candlestick:{lineColor:"#404048"},map:{shadow:!1}},navigator:{xAxis:{gridLineColor:"#D0D0D8"}},rangeSelector:{buttonTheme:{fill:"white",stroke:"#C0C0C8","stroke-width":1,states:{select:{fill:"#D0D0D8"}}}},scrollbar:{trackBorderColor:"#C0C0C8"}},e.apply=function(){h("link",{href:"https://fonts.googleapis.com/css?family=Signika:400,700",rel:"stylesheet",type:"text/css"},null,document.getElementsByTagName("head")[0]),c(n().Chart,"afterGetContainer",function(){this.container.style.background="url(https://www.highcharts.com/samples/graphics/sand.png)"}),l(e.options)}}(t||(t={}));let d=t;n().theme=d.options,d.apply();let p=n();return i.default})()); \ No newline at end of file diff --git a/themes/sand-signika.src.js b/themes/sand-signika.src.js index fa8bc46866..1a154167a2 100644 --- a/themes/sand-signika.src.js +++ b/themes/sand-signika.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/sand-signika * @requires highcharts * diff --git a/themes/skies.js b/themes/skies.js index 4912b9f463..306b6751ce 100644 --- a/themes/skies.js +++ b/themes/skies.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/skies * @requires highcharts * * (c) 2009-2024 Torstein Honsi * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/skies",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/skies"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return o[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>d});var s=i(944),n=/*#__PURE__*/i.n(s);let{setOptions:l}=n();!function(e){e.options={colors:["#514F78","#42A07B","#9B5E4A","#72727F","#1F949A","#82914E","#86777F","#42A07B"],chart:{className:"skies",borderWidth:0,plotShadow:!0,plotBackgroundImage:"https://www.highcharts.com/samples/graphics/skies.jpg",plotBackgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgba(255, 255, 255, 1)"],[1,"rgba(255, 255, 255, 0)"]]},plotBorderWidth:1},title:{style:{color:"#3E576F",font:"16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},subtitle:{style:{color:"#6D869F",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},xAxis:{gridLineWidth:0,lineColor:"#C0D0E0",tickColor:"#C0D0E0",labels:{style:{color:"#666",fontWeight:"bold"}},title:{style:{color:"#666",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},yAxis:{alternateGridColor:"rgba(255, 255, 255, .5)",lineColor:"#C0D0E0",tickColor:"#C0D0E0",tickWidth:1,labels:{style:{color:"#666",fontWeight:"bold"}},title:{style:{color:"#666",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},legend:{itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"#3E576F"},itemHoverStyle:{color:"black"},itemHiddenStyle:{color:"silver"}}},e.apply=function(){l(e.options)}}(t||(t={}));let c=t;n().theme=c.options,c.apply();let d=n();return a.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/skies",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/skies"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return o[e](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var a={};i.d(a,{default:()=>d});var s=i(944),n=i.n(s);let{setOptions:l}=n();!function(e){e.options={colors:["#514F78","#42A07B","#9B5E4A","#72727F","#1F949A","#82914E","#86777F","#42A07B"],chart:{className:"skies",borderWidth:0,plotShadow:!0,plotBackgroundImage:"https://www.highcharts.com/samples/graphics/skies.jpg",plotBackgroundColor:{linearGradient:{x1:0,y1:0,x2:1,y2:1},stops:[[0,"rgba(255, 255, 255, 1)"],[1,"rgba(255, 255, 255, 0)"]]},plotBorderWidth:1},title:{style:{color:"#3E576F",font:"16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},subtitle:{style:{color:"#6D869F",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}},xAxis:{gridLineWidth:0,lineColor:"#C0D0E0",tickColor:"#C0D0E0",labels:{style:{color:"#666",fontWeight:"bold"}},title:{style:{color:"#666",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},yAxis:{alternateGridColor:"rgba(255, 255, 255, .5)",lineColor:"#C0D0E0",tickColor:"#C0D0E0",tickWidth:1,labels:{style:{color:"#666",fontWeight:"bold"}},title:{style:{color:"#666",font:"12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif"}}},legend:{itemStyle:{font:"9pt Trebuchet MS, Verdana, sans-serif",color:"#3E576F"},itemHoverStyle:{color:"black"},itemHiddenStyle:{color:"silver"}}},e.apply=function(){l(e.options)}}(t||(t={}));let c=t;n().theme=c.options,c.apply();let d=n();return a.default})()); \ No newline at end of file diff --git a/themes/skies.src.js b/themes/skies.src.js index 93a1ea2d87..a832657135 100644 --- a/themes/skies.src.js +++ b/themes/skies.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/skies * @requires highcharts * diff --git a/themes/sunset.js b/themes/sunset.js index 80f2c41bb3..0b534aeaea 100644 --- a/themes/sunset.js +++ b/themes/sunset.js @@ -1,9 +1,9 @@ !/** - * Highcharts JS v12.0.2 (2024-12-04) + * Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/sunset * @requires highcharts * * (c) 2009-2024 Highsoft AS * * License: www.highcharts.com/license - */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/sunset",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/sunset"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function n(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={exports:{}};return o[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};n.d(s,{default:()=>h});var i=n(944),a=/*#__PURE__*/n.n(i);let{setOptions:p}=a();!function(e){e.options={colors:["#FDD089","#FF7F79","#A0446E","#251535"],colorAxis:{maxColor:"#60042E",minColor:"#FDD089"},plotOptions:{map:{nullColor:"#fefefc"}},navigator:{series:{color:"#FF7F79",lineColor:"#A0446E"}}},e.apply=function(){p(e.options)}}(t||(t={}));let c=t;a().theme=c.options,c.apply();let h=a();return s.default})()); \ No newline at end of file + */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts):"function"==typeof define&&define.amd?define("highcharts/themes/sunset",["highcharts/highcharts"],function(e){return t(e)}):"object"==typeof exports?exports["highcharts/themes/sunset"]=t(e._Highcharts):e.Highcharts=t(e.Highcharts)}("undefined"==typeof window?this:window,e=>(()=>{"use strict";var t,o={944:t=>{t.exports=e}},r={};function n(e){var t=r[e];if(void 0!==t)return t.exports;var s=r[e]={exports:{}};return o[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};n.d(s,{default:()=>h});var i=n(944),a=n.n(i);let{setOptions:p}=a();!function(e){e.options={colors:["#FDD089","#FF7F79","#A0446E","#251535"],colorAxis:{maxColor:"#60042E",minColor:"#FDD089"},plotOptions:{map:{nullColor:"#fefefc"}},navigator:{series:{color:"#FF7F79",lineColor:"#A0446E"}}},e.apply=function(){p(e.options)}}(t||(t={}));let c=t;a().theme=c.options,c.apply();let h=a();return s.default})()); \ No newline at end of file diff --git a/themes/sunset.src.js b/themes/sunset.src.js index 189c532876..b70039724d 100644 --- a/themes/sunset.src.js +++ b/themes/sunset.src.js @@ -1,5 +1,5 @@ /** - * @license Highcharts JS v12.0.2 (2024-12-04) + * @license Highcharts JS v12.1.0 (2024-12-17) * @module highcharts/themes/sunset * @requires highcharts *