highcharts 12.0.2 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/es-modules/Accessibility/Options/A11yDefaults.js +2 -0
- package/es-modules/Core/Color/Color.js +5 -12
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +1 -3
- package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +8 -11
- package/es-modules/Core/Series/DataLabel.js +3 -1
- package/es-modules/Core/Series/Series.js +13 -15
- package/es-modules/Core/Templating.js +14 -10
- package/es-modules/Core/Time.js +6 -3
- package/es-modules/Core/Utilities.js +1 -1
- package/es-modules/Data/Converters/CSVConverter.js +1 -0
- package/es-modules/Data/Converters/DataConverter.js +31 -0
- package/es-modules/Data/Converters/GoogleSheetsConverter.js +1 -0
- package/es-modules/Data/Converters/HTMLTableConverter.js +1 -0
- package/es-modules/Data/Converters/JSONConverter.js +1 -0
- package/es-modules/Extensions/Boost/BoostSeries.js +13 -7
- package/es-modules/Extensions/DragPanes/AxisResizer.js +1 -1
- package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +7 -2
- package/es-modules/Series/Bubble/BubbleSeries.js +24 -0
- package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +3 -1
- package/es-modules/Series/Timeline/TimelineSeriesDefaults.js +3 -1
- package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +3 -1
- package/es-modules/Series/Treemap/TreemapPoint.js +7 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +154 -53
- package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +126 -4
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +1 -0
- package/es-modules/Stock/RangeSelector/RangeSelector.js +68 -72
- package/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +10 -4
- package/es-modules/masters/indicators/indicators-all.src.js +4 -0
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +1 -1
- package/highcharts-gantt.js +5 -5
- package/highcharts-gantt.src.js +140 -141
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.js +25 -1
- package/highcharts.d.ts +281 -762
- package/highcharts.js +3 -3
- package/highcharts.src.d.ts +281 -762
- package/highcharts.src.js +57 -60
- package/highmaps.js +5 -5
- package/highmaps.src.js +84 -63
- package/highstock.js +5 -5
- package/highstock.src.js +140 -141
- package/indicators/acceleration-bands.js +2 -2
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +2 -2
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +2 -2
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +2 -2
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +2 -2
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +1 -1
- package/indicators/atr.js +2 -2
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +2 -2
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +2 -2
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +2 -2
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +2 -2
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +2 -2
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +2 -2
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +2 -2
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +2 -2
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +2 -2
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +6 -1
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +1 -1
- package/indicators/keltner-channels.js +2 -2
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +2 -2
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +2 -2
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +2 -2
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +2 -2
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +2 -2
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +2 -2
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +2 -2
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +2 -2
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +2 -2
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +2 -2
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +2 -2
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +2 -2
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +2 -2
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +2 -2
- package/indicators/rsi.src.js +1 -1
- package/indicators/slow-stochastic.js +2 -2
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +2 -2
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +2 -2
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +2 -2
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +2 -2
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +2 -2
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +2 -2
- package/indicators/volume-by-price.src.js +2 -1
- package/indicators/vwap.js +2 -2
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +2 -2
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +2 -2
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +2 -2
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +3 -1
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.js +4 -4
- package/modules/annotations.js +2 -2
- package/modules/annotations.src.js +3 -3
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +1 -1
- package/modules/arrow-symbols.js +2 -2
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +14 -11
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +14 -11
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +1 -1
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +1 -1
- package/modules/current-date-indicator.js +2 -2
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +1 -1
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +36 -1
- package/modules/data.js +2 -2
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +1 -1
- package/modules/debugger.js +2 -2
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +2 -2
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +2 -2
- package/modules/drag-panes.src.js +2 -2
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +1 -1
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +1 -1
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +1 -1
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +1 -1
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +1 -1
- package/modules/full-screen.js +2 -2
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.js +6 -6
- package/modules/gantt.src.js +82 -80
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.js +1 -1
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +3 -3
- package/modules/heatmap.src.js +2 -2
- package/modules/heikinashi.js +2 -2
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +2 -2
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/hollowcandlestick.js +2 -2
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +2 -2
- package/modules/lollipop.src.js +1 -1
- package/modules/map.js +4 -4
- package/modules/map.src.js +26 -2
- package/modules/marker-clusters.js +2 -2
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +1 -1
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +1 -1
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +1 -1
- package/modules/no-data-to-display.js +2 -2
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +2 -2
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +4 -2
- package/modules/overlapping-datalabels.js +2 -2
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +1 -1
- package/modules/pareto.js +2 -2
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +1 -1
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +1 -1
- package/modules/pointandfigure.js +2 -2
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.js +2 -2
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.js +2 -2
- package/modules/renko.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +1 -1
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +8 -3
- package/modules/series-on-point.js +2 -2
- package/modules/series-on-point.src.js +1 -1
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +1 -1
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +1 -1
- package/modules/static-scale.js +2 -2
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +2 -2
- package/modules/stock-tools.src.js +3 -3
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +82 -80
- package/modules/streamgraph.js +2 -2
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +290 -62
- package/modules/textpath.js +2 -2
- package/modules/textpath.src.js +1 -1
- package/modules/tiledwebmap.js +3 -3
- package/modules/tiledwebmap.src.js +1 -1
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +4 -2
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +4 -2
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +1 -1
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +288 -60
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +1 -1
- package/modules/vector.js +2 -2
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +2 -2
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +2 -2
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +2 -2
- package/modules/xrange.src.js +1 -1
- package/options/treegraph.d.ts +559 -70
- package/options/treegraph.src.d.ts +559 -70
- package/options/treemap.d.ts +314 -160
- package/options/treemap.src.d.ts +314 -160
- package/options/vbp.d.ts +1 -1
- package/options/vbp.src.d.ts +1 -1
- package/package.json +1 -1
- package/standalone-navigator.js +3 -3
- package/standalone-navigator.src.js +58 -61
- package/themes/avocado.js +2 -2
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +2 -2
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.js +2 -2
- package/themes/brand-light.src.js +1 -1
- package/themes/dark-blue.js +2 -2
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +2 -2
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +2 -2
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.js +2 -2
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +2 -2
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +2 -2
- package/themes/grid.src.js +1 -1
- package/themes/high-contrast-dark.js +2 -2
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +2 -2
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.js +2 -2
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +2 -2
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +2 -2
- package/themes/sunset.src.js +1 -1
package/modules/stock.src.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v12.0
|
|
2
|
+
* @license Highcharts JS v12.1.0 (2024-12-17)
|
|
3
3
|
* @module highcharts/modules/broken-axis
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -6347,8 +6347,11 @@ const rangeSelector = {
|
|
|
6347
6347
|
* The alignment of the input box. Allowed properties are `left`,
|
|
6348
6348
|
* `center`, `right`.
|
|
6349
6349
|
*
|
|
6350
|
-
* @sample {highstock} stock/rangeselector/input-button-
|
|
6351
|
-
*
|
|
6350
|
+
* @sample {highstock} stock/rangeselector/input-button-opposite-alignment/
|
|
6351
|
+
* Opposite alignment
|
|
6352
|
+
*
|
|
6353
|
+
* @sample {highstock} stock/rangeselector/input-button-same-alignment/
|
|
6354
|
+
* Same alignment for buttons and input
|
|
6352
6355
|
*
|
|
6353
6356
|
* @type {Highcharts.AlignValue}
|
|
6354
6357
|
* @since 6.0.0
|
|
@@ -6388,8 +6391,11 @@ const rangeSelector = {
|
|
|
6388
6391
|
* The alignment of the input box. Allowed properties are `left`,
|
|
6389
6392
|
* `center`, `right`.
|
|
6390
6393
|
*
|
|
6391
|
-
* @sample {highstock} stock/rangeselector/input-button-
|
|
6392
|
-
*
|
|
6394
|
+
* @sample {highstock} stock/rangeselector/input-button-opposite-alignment/
|
|
6395
|
+
* Opposite alignment
|
|
6396
|
+
*
|
|
6397
|
+
* @sample {highstock} stock/rangeselector/input-button-same-alignment/
|
|
6398
|
+
* Same alignment for buttons and input
|
|
6393
6399
|
*
|
|
6394
6400
|
* @type {Highcharts.AlignValue}
|
|
6395
6401
|
* @since 6.0.0
|
|
@@ -6756,6 +6762,7 @@ const { addEvent: RangeSelector_addEvent, createElement, css: RangeSelector_css,
|
|
|
6756
6762
|
* @function preferredInputType
|
|
6757
6763
|
*/
|
|
6758
6764
|
function preferredInputType(format) {
|
|
6765
|
+
const hasTimeKey = (char) => new RegExp(`%[[a-zA-Z]*${char}`).test(format);
|
|
6759
6766
|
const ms = RangeSelector_isString(format) ?
|
|
6760
6767
|
format.indexOf('%L') !== -1 :
|
|
6761
6768
|
// Implemented but not typed as of 2024
|
|
@@ -6765,11 +6772,10 @@ function preferredInputType(format) {
|
|
|
6765
6772
|
}
|
|
6766
6773
|
const date = RangeSelector_isString(format) ?
|
|
6767
6774
|
['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y']
|
|
6768
|
-
.some(
|
|
6775
|
+
.some(hasTimeKey) :
|
|
6769
6776
|
format.dateStyle || format.day || format.month || format.year;
|
|
6770
6777
|
const time = RangeSelector_isString(format) ?
|
|
6771
|
-
['H', 'k', 'I', 'l', 'M', 'S']
|
|
6772
|
-
.some((char) => format.indexOf('%' + char) !== -1) :
|
|
6778
|
+
['H', 'k', 'I', 'l', 'M', 'S'].some(hasTimeKey) :
|
|
6773
6779
|
format.timeStyle || format.hour || format.minute || format.second;
|
|
6774
6780
|
if (date && time) {
|
|
6775
6781
|
return 'datetime-local';
|
|
@@ -6816,6 +6822,16 @@ class RangeSelector {
|
|
|
6816
6822
|
this.isDirty = false;
|
|
6817
6823
|
this.buttonOptions = RangeSelector.prototype.defaultButtons;
|
|
6818
6824
|
this.initialButtonGroupWidth = 0;
|
|
6825
|
+
this.maxButtonWidth = () => {
|
|
6826
|
+
let buttonWidth = 0;
|
|
6827
|
+
this.buttons.forEach((button) => {
|
|
6828
|
+
const bBox = button.getBBox();
|
|
6829
|
+
if (bBox.width > buttonWidth) {
|
|
6830
|
+
buttonWidth = bBox.width;
|
|
6831
|
+
}
|
|
6832
|
+
});
|
|
6833
|
+
return buttonWidth;
|
|
6834
|
+
};
|
|
6819
6835
|
this.init(chart);
|
|
6820
6836
|
}
|
|
6821
6837
|
/* *
|
|
@@ -7109,9 +7125,15 @@ class RangeSelector {
|
|
|
7109
7125
|
if (selectedIndex !== null) {
|
|
7110
7126
|
buttonStates[selectedIndex] = 2;
|
|
7111
7127
|
rangeSelector.setSelected(selectedIndex);
|
|
7128
|
+
if (this.dropdown) {
|
|
7129
|
+
this.dropdown.selectedIndex = selectedIndex + 1;
|
|
7130
|
+
}
|
|
7112
7131
|
}
|
|
7113
7132
|
else {
|
|
7114
7133
|
rangeSelector.setSelected();
|
|
7134
|
+
if (this.dropdown) {
|
|
7135
|
+
this.dropdown.selectedIndex = -1;
|
|
7136
|
+
}
|
|
7115
7137
|
if (dropdownLabel) {
|
|
7116
7138
|
dropdownLabel.setState(0);
|
|
7117
7139
|
dropdownLabel.attr({
|
|
@@ -7730,11 +7752,11 @@ class RangeSelector {
|
|
|
7730
7752
|
const { buttonPosition, inputPosition, verticalAlign } = options;
|
|
7731
7753
|
// Get the X offset required to avoid overlapping with the exporting
|
|
7732
7754
|
// button. This is used both by the buttonGroup and the inputGroup.
|
|
7733
|
-
const getXOffsetForExportButton = (group, position) => {
|
|
7755
|
+
const getXOffsetForExportButton = (group, position, rightAligned) => {
|
|
7734
7756
|
if (navButtonOptions &&
|
|
7735
7757
|
this.titleCollision(chart) &&
|
|
7736
7758
|
verticalAlign === 'top' &&
|
|
7737
|
-
|
|
7759
|
+
rightAligned && ((position.y -
|
|
7738
7760
|
group.getBBox().height - 12) <
|
|
7739
7761
|
((navButtonOptions.y || 0) +
|
|
7740
7762
|
(navButtonOptions.height || 0) +
|
|
@@ -7763,7 +7785,8 @@ class RangeSelector {
|
|
|
7763
7785
|
}
|
|
7764
7786
|
plotLeft -= chart.spacing[3];
|
|
7765
7787
|
// Detect collision between button group and exporting
|
|
7766
|
-
const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition
|
|
7788
|
+
const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition, buttonPosition.align === 'right' ||
|
|
7789
|
+
inputPosition.align === 'right');
|
|
7767
7790
|
this.alignButtonGroup(xOffsetForExportButton);
|
|
7768
7791
|
if (this.buttonGroup?.translateY) {
|
|
7769
7792
|
this.dropdownLabel
|
|
@@ -7775,7 +7798,8 @@ class RangeSelector {
|
|
|
7775
7798
|
let xOffsetForExportButton = 0;
|
|
7776
7799
|
if (options.inputEnabled && inputGroup) {
|
|
7777
7800
|
// Detect collision between the input group and exporting button
|
|
7778
|
-
xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition
|
|
7801
|
+
xOffsetForExportButton = getXOffsetForExportButton(inputGroup, inputPosition, buttonPosition.align === 'right' ||
|
|
7802
|
+
inputPosition.align === 'right');
|
|
7779
7803
|
if (inputPosition.align === 'left') {
|
|
7780
7804
|
translateX = plotLeft;
|
|
7781
7805
|
}
|
|
@@ -7928,16 +7952,35 @@ class RangeSelector {
|
|
|
7928
7952
|
* @param {number} [width]
|
|
7929
7953
|
*/
|
|
7930
7954
|
alignButtonGroup(xOffsetForExportButton, width) {
|
|
7931
|
-
const { chart, options, buttonGroup } = this;
|
|
7955
|
+
const { chart, options, buttonGroup, dropdown, dropdownLabel } = this;
|
|
7932
7956
|
const { buttonPosition } = options;
|
|
7933
7957
|
const plotLeft = chart.plotLeft - chart.spacing[3];
|
|
7934
7958
|
let translateX = buttonPosition.x - chart.spacing[3];
|
|
7959
|
+
let dropdownTranslateX = chart.plotLeft;
|
|
7935
7960
|
if (buttonPosition.align === 'right') {
|
|
7936
7961
|
translateX += xOffsetForExportButton - plotLeft; // #13014
|
|
7962
|
+
if (this.hasVisibleDropdown) {
|
|
7963
|
+
dropdownTranslateX = chart.chartWidth +
|
|
7964
|
+
xOffsetForExportButton -
|
|
7965
|
+
this.maxButtonWidth() - 20;
|
|
7966
|
+
}
|
|
7937
7967
|
}
|
|
7938
7968
|
else if (buttonPosition.align === 'center') {
|
|
7939
7969
|
translateX -= plotLeft / 2;
|
|
7970
|
+
if (this.hasVisibleDropdown) {
|
|
7971
|
+
dropdownTranslateX = chart.chartWidth / 2 -
|
|
7972
|
+
this.maxButtonWidth();
|
|
7973
|
+
}
|
|
7940
7974
|
}
|
|
7975
|
+
if (dropdown) {
|
|
7976
|
+
RangeSelector_css(dropdown, {
|
|
7977
|
+
left: dropdownTranslateX + 'px',
|
|
7978
|
+
top: buttonGroup?.translateY + 'px'
|
|
7979
|
+
});
|
|
7980
|
+
}
|
|
7981
|
+
dropdownLabel?.attr({
|
|
7982
|
+
x: dropdownTranslateX
|
|
7983
|
+
});
|
|
7941
7984
|
if (buttonGroup) {
|
|
7942
7985
|
// Align button group
|
|
7943
7986
|
buttonGroup.align({
|
|
@@ -7991,36 +8034,6 @@ class RangeSelector {
|
|
|
7991
8034
|
handleCollision(xOffsetForExportButton) {
|
|
7992
8035
|
const { chart, buttonGroup, inputGroup } = this;
|
|
7993
8036
|
const { buttonPosition, dropdown, inputPosition } = this.options;
|
|
7994
|
-
const maxButtonWidth = () => {
|
|
7995
|
-
let buttonWidth = 0;
|
|
7996
|
-
this.buttons.forEach((button) => {
|
|
7997
|
-
const bBox = button.getBBox();
|
|
7998
|
-
if (bBox.width > buttonWidth) {
|
|
7999
|
-
buttonWidth = bBox.width;
|
|
8000
|
-
}
|
|
8001
|
-
});
|
|
8002
|
-
return buttonWidth;
|
|
8003
|
-
};
|
|
8004
|
-
const groupsOverlap = (buttonGroupWidth) => {
|
|
8005
|
-
if (inputGroup?.alignOptions && buttonGroup) {
|
|
8006
|
-
const inputGroupX = (inputGroup.alignAttr.translateX +
|
|
8007
|
-
inputGroup.alignOptions.x -
|
|
8008
|
-
xOffsetForExportButton +
|
|
8009
|
-
// `getBBox` for detecing left margin
|
|
8010
|
-
inputGroup.getBBox().x +
|
|
8011
|
-
// 2px padding to not overlap input and label
|
|
8012
|
-
2);
|
|
8013
|
-
const inputGroupWidth = inputGroup.alignOptions.width || 0;
|
|
8014
|
-
const buttonGroupX = buttonGroup.alignAttr.translateX +
|
|
8015
|
-
buttonGroup.getBBox().x;
|
|
8016
|
-
return (buttonGroupX + buttonGroupWidth > inputGroupX) &&
|
|
8017
|
-
(inputGroupX + inputGroupWidth > buttonGroupX) &&
|
|
8018
|
-
(buttonPosition.y <
|
|
8019
|
-
(inputPosition.y +
|
|
8020
|
-
inputGroup.getBBox().height));
|
|
8021
|
-
}
|
|
8022
|
-
return false;
|
|
8023
|
-
};
|
|
8024
8037
|
const moveInputsDown = () => {
|
|
8025
8038
|
if (inputGroup && buttonGroup) {
|
|
8026
8039
|
inputGroup.attr({
|
|
@@ -8032,47 +8045,43 @@ class RangeSelector {
|
|
|
8032
8045
|
});
|
|
8033
8046
|
}
|
|
8034
8047
|
};
|
|
8035
|
-
if (buttonGroup) {
|
|
8036
|
-
if (dropdown === 'always') {
|
|
8037
|
-
this.collapseButtons();
|
|
8038
|
-
if (groupsOverlap(maxButtonWidth())) {
|
|
8039
|
-
// Move the inputs down if there is still a collision
|
|
8040
|
-
// after collapsing the buttons
|
|
8041
|
-
moveInputsDown();
|
|
8042
|
-
}
|
|
8043
|
-
return;
|
|
8044
|
-
}
|
|
8045
|
-
if (dropdown === 'never') {
|
|
8046
|
-
this.expandButtons();
|
|
8047
|
-
}
|
|
8048
|
-
}
|
|
8049
8048
|
// Detect collision
|
|
8050
8049
|
if (inputGroup && buttonGroup) {
|
|
8051
|
-
if (
|
|
8052
|
-
|
|
8053
|
-
|
|
8050
|
+
if (inputPosition.align === buttonPosition.align) {
|
|
8051
|
+
moveInputsDown();
|
|
8052
|
+
if (this.initialButtonGroupWidth >
|
|
8053
|
+
chart.plotWidth + xOffsetForExportButton - 20) {
|
|
8054
|
+
this.collapseButtons();
|
|
8055
|
+
}
|
|
8056
|
+
else {
|
|
8057
|
+
this.expandButtons();
|
|
8058
|
+
}
|
|
8059
|
+
}
|
|
8060
|
+
else if (this.initialButtonGroupWidth -
|
|
8061
|
+
xOffsetForExportButton +
|
|
8062
|
+
inputGroup.getBBox().width >
|
|
8063
|
+
chart.plotWidth) {
|
|
8054
8064
|
if (dropdown === 'responsive') {
|
|
8055
8065
|
this.collapseButtons();
|
|
8056
|
-
if (groupsOverlap(maxButtonWidth())) {
|
|
8057
|
-
moveInputsDown();
|
|
8058
|
-
}
|
|
8059
8066
|
}
|
|
8060
8067
|
else {
|
|
8061
8068
|
moveInputsDown();
|
|
8062
8069
|
}
|
|
8063
8070
|
}
|
|
8064
|
-
else
|
|
8071
|
+
else {
|
|
8065
8072
|
this.expandButtons();
|
|
8066
8073
|
}
|
|
8067
8074
|
}
|
|
8068
|
-
|
|
8069
|
-
|
|
8075
|
+
// Forced states
|
|
8076
|
+
if (buttonGroup) {
|
|
8077
|
+
if (dropdown === 'always') {
|
|
8070
8078
|
this.collapseButtons();
|
|
8071
8079
|
}
|
|
8072
|
-
|
|
8080
|
+
if (dropdown === 'never') {
|
|
8073
8081
|
this.expandButtons();
|
|
8074
8082
|
}
|
|
8075
8083
|
}
|
|
8084
|
+
this.alignButtonGroup(xOffsetForExportButton);
|
|
8076
8085
|
}
|
|
8077
8086
|
/**
|
|
8078
8087
|
* Collapse the buttons and show the select element.
|
|
@@ -8115,17 +8124,10 @@ class RangeSelector {
|
|
|
8115
8124
|
* @function Highcharts.RangeSelector#showDropdown
|
|
8116
8125
|
*/
|
|
8117
8126
|
showDropdown() {
|
|
8118
|
-
const { buttonGroup,
|
|
8127
|
+
const { buttonGroup, dropdownLabel, dropdown } = this;
|
|
8119
8128
|
if (buttonGroup && dropdown) {
|
|
8120
|
-
|
|
8121
|
-
|
|
8122
|
-
.attr({ x: left, y: top })
|
|
8123
|
-
.show();
|
|
8124
|
-
RangeSelector_css(dropdown, {
|
|
8125
|
-
left: left + 'px',
|
|
8126
|
-
top: top + 'px',
|
|
8127
|
-
visibility: 'inherit'
|
|
8128
|
-
});
|
|
8129
|
+
dropdownLabel.show();
|
|
8130
|
+
RangeSelector_css(dropdown, { visibility: 'inherit' });
|
|
8129
8131
|
this.hasVisibleDropdown = true;
|
|
8130
8132
|
}
|
|
8131
8133
|
}
|
|
@@ -13346,7 +13348,7 @@ const DataGroupingComposition = {
|
|
|
13346
13348
|
|
|
13347
13349
|
;// ./code/es-modules/masters/modules/datagrouping.src.js
|
|
13348
13350
|
/**
|
|
13349
|
-
* @license Highstock JS v12.0
|
|
13351
|
+
* @license Highstock JS v12.1.0 (2024-12-17)
|
|
13350
13352
|
* @module highcharts/modules/datagrouping
|
|
13351
13353
|
* @requires highcharts
|
|
13352
13354
|
*
|
|
@@ -13668,7 +13670,7 @@ const MouseWheelZoomComposition = {
|
|
|
13668
13670
|
|
|
13669
13671
|
;// ./code/es-modules/masters/modules/mouse-wheel-zoom.src.js
|
|
13670
13672
|
/**
|
|
13671
|
-
* @license Highcharts JS v12.0
|
|
13673
|
+
* @license Highcharts JS v12.1.0 (2024-12-17)
|
|
13672
13674
|
* @module highcharts/modules/mouse-wheel-zoom
|
|
13673
13675
|
* @requires highcharts
|
|
13674
13676
|
*
|
|
@@ -13688,7 +13690,7 @@ mouse_wheel_zoom_src_G.MouseWheelZoom.compose(mouse_wheel_zoom_src_G.Chart);
|
|
|
13688
13690
|
|
|
13689
13691
|
;// ./code/es-modules/masters/modules/stock.src.js
|
|
13690
13692
|
/**
|
|
13691
|
-
* @license Highstock JS v12.0
|
|
13693
|
+
* @license Highstock JS v12.1.0 (2024-12-17)
|
|
13692
13694
|
* @module highcharts/modules/stock
|
|
13693
13695
|
* @requires highcharts
|
|
13694
13696
|
*
|
package/modules/streamgraph.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v12.0
|
|
2
|
+
* Highcharts JS v12.1.0 (2024-12-17)
|
|
3
3
|
* @module highcharts/modules/streamgraph
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
* (c) 2010-2024 Torstein Honsi
|
|
9
9
|
*
|
|
10
10
|
* License: www.highcharts.com/license
|
|
11
|
-
*/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
|
|
11
|
+
*/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})());
|
package/modules/sunburst.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v12.0
|
|
2
|
+
* Highcharts JS v12.1.0 (2024-12-17)
|
|
3
3
|
* @module highcharts/modules/sunburst
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* Authors: Jon Arild Nygard
|
|
8
8
|
*
|
|
9
9
|
* License: www.highcharts.com/license
|
|
10
|
-
*/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<p;++d){let u,c;let g=d===p-1;t[(h=i[d]).level]?(u=(n=t[h.level]).button,n.separator||g?n.separator&&g&&(n.separator.destroy(),delete n.separator):(a+=r*e,n.separator=this.renderSeparator(a,e),s&&l(n.separator,a,e),a+=o(n.separator,e)),t[h.level].updated=!0):(u=this.renderButton(h,a,e),s&&l(u,a,e),a+=o(u,e),g||(c=this.renderSeparator(a,e),s&&l(c,a,e),a+=o(c,e)),t[h.level]={button:u,separator:c,updated:!0}),u&&u.setState(g?2:0)}}}N.defaultOptions=v.options;var D=p(620),H=/*#__PURE__*/p.n(D),E=p(512),k=/*#__PURE__*/p.n(E),U=p(28),W=/*#__PURE__*/p.n(U);let{column:{prototype:z}}=k().seriesTypes,{addEvent:G,defined:V}=g();!function(t){function e(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(W())(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 V(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:z.pointAttribs},t.compose=function(t){return G(t.prototype.pointClass,"afterSetState",e),t}}(l||(l={}));let F=l,_=class{constructor(t,e,i,s){this.height=t,this.width=e,this.plot=s,this.direction=i,this.startDirection=i,this.total=0,this.nW=0,this.lW=0,this.nH=0,this.lH=0,this.elArr=[],this.lP={total:0,lH:0,nH:0,lW:0,nW:0,nR:0,lR:0,aspectRatio:function(t,e){return Math.max(t/e,e/t)}}}addElement(t){this.lP.total=this.elArr[this.elArr.length-1],this.total=this.total+t,0===this.direction?(this.lW=this.nW,this.lP.lH=this.lP.total/this.lW,this.lP.lR=this.lP.aspectRatio(this.lW,this.lP.lH),this.nW=this.total/this.height,this.lP.nH=this.lP.total/this.nW,this.lP.nR=this.lP.aspectRatio(this.nW,this.lP.nH)):(this.lH=this.nH,this.lP.lW=this.lP.total/this.lH,this.lP.lR=this.lP.aspectRatio(this.lP.lW,this.lH),this.nH=this.total/this.width,this.lP.nW=this.lP.total/this.nH,this.lP.nR=this.lP.aspectRatio(this.lP.nW,this.nH)),this.elArr.push(t)}reset(){this.nW=0,this.lW=0,this.elArr=[],this.total=0}},j=class{constructor(){this.childrenTotal=0,this.visible=!1}init(t,e,i,s,r,o,l){return this.id=t,this.i=e,this.children=i,this.height=s,this.level=r,this.series=o,this.parent=l,this}},Y={draw:function(t,e){let{animatableAttribs:i,onComplete:s,css:r,renderer:o}=e,l=t.series&&t.series.chart.hasRendered?void 0:t.series&&t.series.options.animation,a=t.graphic;if(e.attribs={...e.attribs,class:t.getClassName()},t.shouldDraw())a||(a="text"===e.shapeType?o.text():"image"===e.shapeType?o.image(e.imageUrl||"").attr(e.shapeArgs||{}):o[e.shapeType](e.shapeArgs||{}),t.graphic=a,a.add(e.group)),r&&a.css(r),a.attr(e.attribs).animate(i,!e.isNew&&l,s);else if(a){let e=()=>{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:"<b>{point.name}</b>: {point.value}<br/>"},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||c<o)&&(0===i.direction?(l=r.x,a=r.y,h=t/(n=d)):(l=r.x,a=r.y,n=t/(h=p)),s.push({x:l,y:a,width:n,height:ty(h)}),0===i.direction?r.y=r.y+h:r.x=r.x+n),c+=1;i.reset(),0===i.direction?i.width=i.width-d:i.height=i.height-p,r.y=r.parent.y+(r.parent.height-i.height),r.x=r.parent.x+(r.parent.width-i.width),t&&(i.direction=1-i.direction),e||i.addElement(u)}algorithmFill(t,e,i){let s=[],r,o=e.direction,l=e.x,a=e.y,n=e.width,h=e.height,d,p,u,c;for(let g of i)r=e.width*e.height*(g.val/e.val),d=l,p=a,0===o?(n-=u=r/(c=h),l+=u):(h-=c=r/(u=n),a+=c),s.push({x:d,y:p,width:u,height:c}),t&&(o=1-o);return s}algorithmLowAspectRatio(t,e,i){let s=[],r={x:e.x,y:e.y,parent:e},o=e.direction,l=i.length-1,a=new _(e.height,e.width,o,r),n,h=0;for(let o of i)n=e.width*e.height*(o.val/e.val),a.addElement(n),a.lP.nR>a.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<r.animationLimit,n=r.allowTraversingTree;for(let e of t){let t=e.node.levelDynamic,h={},d={},p={},u="level-group-"+e.node.level,c=!!e.graphic,g=a&&c,v=e.shapeArgs;e.shouldDraw()&&(e.isInside=!0,l&&(d.r=l),tO(!0,g?h:d,c?v:{},s?{}:this.pointAttribs(e,e.selected?"select":void 0)),this.colorAttribs&&s&&tL(p,this.colorAttribs(e)),this[u]||(this[u]=i.g(u).attr({zIndex:1e3-(t||0)}).add(this.group),this[u].survive=!0)),e.draw({animatableAttribs:h,attribs:d,css:p,group:this[u],imageUrl:e.imageUrl,renderer:i,shadow:o,shapeArgs:v,shapeType:e.shapeType}),n&&e.graphic&&(e.drillId=r.interactByLeaf?this.drillToByLeaf(e):this.drillToByGroup(e))}}drillToByGroup(t){let e=!1;return t.node.isLeaf||t.node.level-this.nodeMap[this.rootNode].level!=1||(e=t.id),e}drillToByLeaf(t){let{traverseToLeaf:e}=t.series.options,i=!1,s;if(t.node.parent!==this.rootNode&&t.node.isLeaf){if(e)i=t.id;else for(s=t.node;!i;)void 0!==s.parent&&(s=this.nodeMap[s.parent]),s.parent===this.rootNode&&(i=s.id)}return i}drillToNode(t,e){tT(32,!1,void 0,{"treemap.drillToNode":"use treemap.setRootNode"}),this.setRootNode(t,e)}drillUp(){let t=this.nodeMap[this.rootNode];t&&tS(t.parent)&&this.setRootNode(t.parent,!0,{trigger:"traverseUpButton"})}getExtremes(){let{dataMin:t,dataMax:e}=super.getExtremes(this.colorValueData);return this.valueMin=t,this.valueMax=e,super.getExtremes()}getListOfParents(t,e){let i=tA(t)?t:[],s=tA(e)?e:[],r=i.reduce(function(t,e,i){let s=tB(e.parent,"");return void 0===t[s]&&(t[s]=[]),t[s].push(i),t},{"":[]});for(let t of Object.keys(r)){let e=r[t];if(""!==t&&-1===s.indexOf(t)){for(let t of e)r[""].push(t);delete r[t]}}return r}getTree(){let t=this.data.map(function(t){return t.id}),e=this.getListOfParents(this.data,t);return this.nodeMap={},this.nodeList=[],this.buildTree("",-1,0,e)}buildTree(t,e,i,s,r){let o=[],l=this.points[e],a=0,n;for(let e of s[t]||[])a=Math.max((n=this.buildTree(this.points[e].id,e,i+1,s,t)).height+1,a),o.push(n);let h=new this.NodeClass().init(t,e,o,a,i,this,r);for(let t of o)t.parentNode=h;return this.nodeMap[h.id]=h,this.nodeList.push(h),l&&(l.node=h,h.point=l),h}hasData(){return!!this.dataTable.rowCount}init(t,e){let i=this,s=tO(e.drillUpButton,e.breadcrumbs),r=tm(i,"setOptions",t=>{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;t<e;t++)i.drillUp()}))}onClickDrillToNode(t){let e=t.point,i=e&&e.drillId;tS(i)&&(e.setState(""),this.setRootNode(i,!0,{trigger:"click"}))}pointAttribs(t,e){let i;let s=tR(this.mapOptionsToLevel)?this.mapOptionsToLevel:{},r=t&&s[t.node.level]||{},o=this.options,l=e&&o.states&&o.states[e]||{},a=t&&t.getClassName()||"",n={stroke:t&&t.borderColor||r.borderColor||l.borderColor||o.borderColor,"stroke-width":tB(t&&t.borderWidth,r.borderWidth,l.borderWidth,o.borderWidth),dashstyle:t&&t.borderDashStyle||r.borderDashStyle||l.borderDashStyle||o.borderDashStyle,fill:t&&t.color||this.color};return -1!==a.indexOf("highcharts-above-level")?(n.fill="none",n["stroke-width"]=0):-1!==a.indexOf("highcharts-internal-node-interactive")?(i=tB(l.opacity,o.opacity),n.fill=td(n.fill).setOpacity(i).get(),n.cursor="pointer"):-1!==a.indexOf("highcharts-internal-node")?n.fill="none":e&&(n.fill=td(n.fill).brighten(l.brightness).get()),n}setColorRecursive(t,e,i,s,r){let o=this&&this.chart,l=o&&o.options&&o.options.colors;if(t){let o=tv(t,{colors:l,index:s,mapOptionsToLevel:this.mapOptionsToLevel,parentColor:e,parentColorIndex:i,series:this,siblings:r}),a=this.points[t.i];a&&(a.color=o.color,a.colorIndex=o.colorIndex);let n=-1;for(let e of t.children||[])this.setColorRecursive(e,o.color,o.colorIndex,++n,t.children.length)}}setPointValues(){let t=this,{points:e,xAxis:i,yAxis:s}=t,r=t.chart.styledMode,o=e=>r?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*a<c[2]&&a>0&&(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>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),a=i.innerHTML.replace(l,"").split(/<tspan class="highcharts-br"[^>]*>/),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;s<n;s++){let r=a[s].length;for(let o=0;o<r;o+=5)try{let r=e+o+s,[l,a]=h(r,i.getStartPositionOfChar(r));0===o?(t.push(a),t.push(l)):(0===s&&t.unshift(a),s===n-1&&t.push(l))}catch(t){break}e+=r-1;try{let r=e+s,o=i.getEndPositionOfChar(r),[l,a]=h(r,o);t.unshift(a),t.unshift(l)}catch(t){break}}t.length&&t.push(t[0].slice()),e.polygon=t}return e}function t7(t){let e=t.labelOptions,i=t.point,s=e[i.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(i.getDataLabelPath?.(this)||i.graphic,s),i.dataLabelPath&&!s.enabled&&(i.dataLabelPath=i.dataLabelPath.destroy()))}let{getCenter:et,getStartAndEndRadians:ee}=tV,{noop:ei}=g(),{column:es,treemap:er}=k().seriesTypes,{getColor:eo,getLevelOptions:el,setTreeValues:ea,updateRootId:en}=th,{defined:eh,error:ed,extend:ep,fireEvent:eu,isNumber:ec,isObject:eg,isString:ev,merge:ef,splat:eb}=g();({compose:function(t){t2(t,"afterGetBBox",t4),t2(t,"beforeAddingDataLabel",t7);let e=t.prototype;e.setTextPath||(e.setTextPath=t8)}}).compose(W());let em=180/Math.PI,ey=function(t,e,i,s){return{x:t+Math.cos(i)*s,y:e+Math.sin(i)*s}};function ex(t,e){let i=e.mapIdToNode,s=t.parent,r=s?i[s]:void 0,o=e.series,l=o.chart,a=o.points[t.i],n=eo(t,{colors:o.options.colors||l&&l.options.colors,colorIndex:o.colorIndex,index:e.index,mapOptionsToLevel:e.mapOptionsToLevel,parentColor:r&&r.color,parentColorIndex:r&&r.colorIndex,series:e.series,siblings:e.siblings});return t.color=n.color,t.colorIndex=n.colorIndex,a&&(a.color=t.color,a.colorIndex=t.colorIndex,t.sliced=t.id!==e.idRoot&&a.sliced),t}class eP extends er{alignDataLabel(t,e,i){if(!i.textPath||!i.textPath.enabled)return super.alignDataLabel.apply(this,arguments)}animate(t){let e;let i=this.chart,s=[i.plotWidth/2,i.plotHeight/2],r=i.plotLeft,o=i.plotTop,l=this.group;t?(e={translateX:s[0]+r,translateY:s[1]+o,scaleX:.001,scaleY:.001,rotation:10,opacity:.01},l.attr(e)):(e={translateX:r,translateY:o,scaleX:1,scaleY:1,rotation:0,opacity:1},l.animate(e,this.options.animation))}drawPoints(){let t=this,e=t.mapOptionsToLevel,i=t.shapeRoot,s=t.group,r=t.hasRendered,o=t.rootNode,l=t.idPreviousRoot,a=t.nodeMap,n=a[l],h=n&&n.shapeArgs,d=t.points,p=t.startAndEndRadians,u=t.chart,c=u&&u.options&&u.options.chart||{},g="boolean"!=typeof c.animation||c.animation,v=t.center,f={x:v[0],y:v[1]},b=v[3]/2,m=t.chart.renderer,y=!!(g&&r&&o!==l&&t.dataLabelsGroup),x,P=!1,T=!1;for(let n of(y&&(t.dataLabelsGroup.attr({opacity:0}),x=function(){P=!0,t.dataLabelsGroup&&t.dataLabelsGroup.animate({opacity:1,visibility:"inherit"})}),d)){let d,c;let v=n.node,y=e[v.level],P=n.shapeExisting||{},L=v.shapeArgs||{},w=!!(v.visible&&v.shapeArgs);L.borderRadius=t.options.borderRadius,d=r&&g?function(t,e){let i=e.point,s=e.radians,r=e.innerR,o=e.idRoot,l=e.idPreviousRoot,a=e.shapeExisting,n=e.shapeRoot,h=e.shapePreviousRoot,d=e.visible,p={},u={end:t.end,start:t.start,innerR:t.innerR,r:t.r,x:t.x,y:t.y};return d?!i.graphic&&h&&((p=o===i.id?{start:s.start,end:s.end}:h.end<=t.start?{start:s.end,end:s.end}:{start:s.start,end:s.start}).innerR=p.r=r):i.graphic&&(l===i.id?u={innerR:r,r:r}:n&&(u=n.end<=a.start?{innerR:r,r:r,start:s.end,end:s.end}:{innerR:r,r:r,start:s.start,end:s.start})),{from:p,to:u}}(L,{center:f,point:n,radians:p,innerR:b,idRoot:o,idPreviousRoot:l,shapeExisting:P,shapeRoot:i,shapePreviousRoot:h,visible:w}):{to:L,from:{}},ep(n,{shapeExisting:L,tooltipPos:[L.plotX,L.plotY],drillId:function(t,e,i){let s;return t.node.isLeaf||(s=e===t.id?i[e].parent:t.id),s}(n,o,a),name:""+(n.name||n.id||n.index),plotX:L.plotX,plotY:L.plotY,value:v.val,isInside:w,isNull:!w}),n.dlOptions=function(t){let e=t.point,i=eg(t.shapeArgs)?t.shapeArgs:{},s=eg(t.optionsPoint)?t.optionsPoint.dataLabels:{},r=ef({style:{}},eb(eg(t.level)?t.level.dataLabels:{})[0],s),{innerArcLength:o=0,outerArcLength:l=0}=e,a,n,h=r.rotationMode;return ec(r.rotation)||(("auto"===h||"circular"===h)&&(r.useHTML&&"circular"===h&&(h="auto"),o<1&&l>i.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})());
|
|
10
|
+
*/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<p;++d){let u,c;let g=d===p-1;t[(h=i[d]).level]?(u=(n=t[h.level]).button,n.separator||g?n.separator&&g&&(n.separator.destroy(),delete n.separator):(a+=o*e,n.separator=this.renderSeparator(a,e),s&&l(n.separator,a,e),a+=r(n.separator,e)),t[h.level].updated=!0):(u=this.renderButton(h,a,e),s&&l(u,a,e),a+=r(u,e),g||(c=this.renderSeparator(a,e),s&&l(c,a,e),a+=r(c,e)),t[h.level]={button:u,separator:c,updated:!0}),u&&u.setState(g?2:0)}}}N.defaultOptions=v.options;var D=p(620),H=p.n(D),E=p(512),G=p.n(E),k=p(28),z=p.n(k);let{column:{prototype:W}}=G().seriesTypes,{addEvent:U,defined:V}=g();!function(t){function e(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(z())(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 V(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:W.pointAttribs},t.compose=function(t){return U(t.prototype.pointClass,"afterSetState",e),t}}(l||(l={}));let F=l,_=class{constructor(t,e,i,s){this.height=t,this.width=e,this.plot=s,this.direction=i,this.startDirection=i,this.total=0,this.nW=0,this.lW=0,this.nH=0,this.lH=0,this.elArr=[],this.lP={total:0,lH:0,nH:0,lW:0,nW:0,nR:0,lR:0,aspectRatio:function(t,e){return Math.max(t/e,e/t)}}}addElement(t){this.lP.total=this.elArr[this.elArr.length-1],this.total=this.total+t,0===this.direction?(this.lW=this.nW,this.lP.lH=this.lP.total/this.lW,this.lP.lR=this.lP.aspectRatio(this.lW,this.lP.lH),this.nW=this.total/this.height,this.lP.nH=this.lP.total/this.nW,this.lP.nR=this.lP.aspectRatio(this.nW,this.lP.nH)):(this.lH=this.nH,this.lP.lW=this.lP.total/this.lH,this.lP.lR=this.lP.aspectRatio(this.lP.lW,this.lH),this.nH=this.total/this.width,this.lP.nW=this.lP.total/this.nH,this.lP.nR=this.lP.aspectRatio(this.lP.nW,this.nH)),this.elArr.push(t)}reset(){this.nW=0,this.lW=0,this.elArr=[],this.total=0}},j=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}},Y={draw:function(t,e){let{animatableAttribs:i,onComplete:s,css:o,renderer:r}=e,l=t.series&&t.series.chart.hasRendered?void 0:t.series&&t.series.options.animation,a=t.graphic;if(e.attribs={...e.attribs,class:t.getClassName()},t.shouldDraw())a||(a="text"===e.shapeType?r.text():"image"===e.shapeType?r.image(e.imageUrl||"").attr(e.shapeArgs||{}):r[e.shapeType](e.shapeArgs||{}),t.graphic=a,a.add(e.group)),o&&a.css(o),a.attr(e.attribs).animate(i,!e.isNew&&l,s);else if(a){let e=()=>{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:"<b>{point.name}</b>: {point.value}<br/>",clusterFormat:"+ {point.groupedPointsAmount} more...<br/>"},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||c<r)&&(0===i.direction?(l=o.x,a=o.y,h=t/(n=d)):(l=o.x,a=o.y,n=t/(h=p)),s.push({x:l,y:a,width:n,height:ty(h)}),0===i.direction?o.y=o.y+h:o.x=o.x+n),c+=1;i.reset(),0===i.direction?i.width=i.width-d:i.height=i.height-p,o.y=o.parent.y+(o.parent.height-i.height),o.x=o.parent.x+(o.parent.width-i.width),t&&(i.direction=1-i.direction),e||i.addElement(u)}algorithmFill(t,e,i){let s=[],o,r=e.direction,l=e.x,a=e.y,n=e.width,h=e.height,d,p,u,c;for(let g of i)o=e.width*e.height*(g.val/e.val),d=l,p=a,0===r?(n-=u=o/(c=h),l+=u):(h-=c=o/(u=n),a+=c),s.push({x:d,y:p,width:u,height:c,direction:0,val:0}),t&&(r=1-r);return s}algorithmLowAspectRatio(t,e,i){let s=[],o={x:e.x,y:e.y,parent:e},r=e.direction,l=i.length-1,a=new _(e.height,e.width,r,o),n,h=0;for(let r of i)n=e.width*e.height*(r.val/e.val),a.addElement(n),a.lP.nR>a.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||s<(a?l:r)||e*s<n)&&!t.isGroup&&tP(t.parent)&&(o[t.parent]||(o[t.parent]=[]),o[t.parent].push(t))}t?.children.forEach(t=>{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<o.animationLimit,n=o.allowTraversingTree;for(let e of t){let t=e.node.levelDynamic,h={},d={},p={},u="level-group-"+e.node.level,c=!!e.graphic,g=a&&c,v=e.shapeArgs;e.shouldDraw()&&(e.isInside=!0,l&&(d.r=l),tC(!0,g?h:d,c?v:{},s?{}:this.pointAttribs(e,e.selected?"select":void 0)),this.colorAttribs&&s&&tT(p,this.colorAttribs(e)),this[u]||(this[u]=i.g(u).attr({zIndex:1e3-(t||0)}).add(this.group),this[u].survive=!0)),e.draw({animatableAttribs:h,attribs:d,css:p,group:this[u],imageUrl:e.imageUrl,renderer:i,shadow:r,shapeArgs:v,shapeType:e.shapeType}),n&&e.graphic&&(e.drillId=o.interactByLeaf?this.drillToByLeaf(e):this.drillToByGroup(e))}}drillToByGroup(t){let e=!1;return(!t.node.isLeaf||t.node.isGroup)&&t.node.level-this.nodeMap[this.rootNode].level==1&&(e=t.id),e}drillToByLeaf(t){let{traverseToLeaf:e}=t.series.options,i=!1,s;if(t.node.parent!==this.rootNode&&t.node.isLeaf){if(e)i=t.id;else for(s=t.node;!i;)void 0!==s.parent&&(s=this.nodeMap[s.parent]),s.parent===this.rootNode&&(i=s.id)}return i}drillToNode(t,e){tL(32,!1,void 0,{"treemap.drillToNode":"use treemap.setRootNode"}),this.setRootNode(t,e)}drillUp(){let t=this.nodeMap[this.rootNode];t&&tS(t.parent)&&this.setRootNode(t.parent,!0,{trigger:"traverseUpButton"})}getExtremes(){let{dataMin:t,dataMax:e}=super.getExtremes(this.colorValueData);return this.valueMin=t,this.valueMax=e,super.getExtremes()}getListOfParents(t,e){let i=tA(t)?t:[],s=tA(e)?e:[],o=i.reduce(function(t,e,i){let s=tO(e.parent,"");return void 0===t[s]&&(t[s]=[]),t[s].push(i),t},{"":[]});for(let t of Object.keys(o)){let e=o[t];if(""!==t&&-1===s.indexOf(t)){for(let t of e)o[""].push(t);delete o[t]}}return o}getTree(){let t=this.data.map(function(t){return t.id});return this.parentList=this.getListOfParents(this.data,t),this.nodeMap={},this.nodeList=[],this.buildTree("",-1,0,this.parentList||{})}buildTree(t,e,i,s,o){let r=[],l=this.points[e],a=0,n;for(let e of s[t]||[])a=Math.max((n=this.buildTree(this.points[e].id,e,i+1,s,t)).height+1,a),r.push(n);let h=new this.NodeClass().init(t,e,r,a,i,this,o);for(let t of r)t.parentNode=h;return this.nodeMap[h.id]=h,this.nodeList.push(h),l&&(l.node=h,h.point=l),h}hasData(){return!!this.dataTable.rowCount}init(t,e){let i=this,s=tC(e.drillUpButton,e.breadcrumbs),o=tm(i,"setOptions",t=>{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;t<e;t++)i.drillUp()}))}onClickDrillToNode(t){let e=t.point,i=e&&e.drillId;tS(i)&&(e.setState(""),this.setRootNode(i,!0,{trigger:"click"}))}pointAttribs(t,e){let i;let s=tR(this.mapOptionsToLevel)?this.mapOptionsToLevel:{},o=t&&s[t.node.level]||{},r=this.options,l=e&&r.states&&r.states[e]||{},a=t&&t.getClassName()||"",n={stroke:t&&t.borderColor||o.borderColor||l.borderColor||r.borderColor,"stroke-width":tO(t&&t.borderWidth,o.borderWidth,l.borderWidth,r.borderWidth),dashstyle:t&&t.borderDashStyle||o.borderDashStyle||l.borderDashStyle||r.borderDashStyle,fill:t&&t.color||this.color};return -1!==a.indexOf("highcharts-above-level")?(n.fill="none",n["stroke-width"]=0):-1!==a.indexOf("highcharts-internal-node-interactive")?(i=tO(l.opacity,r.opacity),n.fill=td(n.fill).setOpacity(i).get(),n.cursor="pointer"):-1!==a.indexOf("highcharts-internal-node")?n.fill="none":e&&(n.fill=td(n.fill).brighten(l.brightness).get()),n}setColorRecursive(t,e,i,s,o){let r=this&&this.chart,l=r&&r.options&&r.options.colors;if(t){let r=tv(t,{colors:l,index:s,mapOptionsToLevel:this.mapOptionsToLevel,parentColor:e,parentColorIndex:i,series:this,siblings:o}),a=this.points[t.i];a&&(a.color=r.color,a.colorIndex=r.colorIndex);let n=-1;for(let e of t.children||[])this.setColorRecursive(e,r.color,r.colorIndex,++n,t.children.length)}}setPointValues(){let t=this,{points:e,xAxis:i,yAxis:s}=t,o=t.chart.styledMode,r=e=>o?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*a<c[2]&&a>0&&(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>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),a=i.innerHTML.replace(l,"").split(/<tspan class="highcharts-br"[^>]*>/),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;s<n;s++){let o=a[s].length;for(let r=0;r<o;r+=5)try{let o=e+r+s,[l,a]=h(o,i.getStartPositionOfChar(o));0===r?(t.push(a),t.push(l)):(0===s&&t.unshift(a),s===n-1&&t.push(l))}catch(t){break}e+=o-1;try{let o=e+s,r=i.getEndPositionOfChar(o),[l,a]=h(o,r);t.unshift(a),t.unshift(l)}catch(t){break}}t.length&&t.push(t[0].slice()),e.polygon=t}return e}function et(t){let e=t.labelOptions,i=t.point,s=e[i.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(i.getDataLabelPath?.(this)||i.graphic,s),i.dataLabelPath&&!s.enabled&&(i.dataLabelPath=i.dataLabelPath.destroy()))}let{getCenter:ee,getStartAndEndRadians:ei}=tF,{noop:es}=g(),{column:eo,treemap:er}=G().seriesTypes,{getColor:el,getLevelOptions:ea,setTreeValues:en,updateRootId:eh}=th,{defined:ed,error:ep,extend:eu,fireEvent:ec,isNumber:eg,isObject:ev,isString:ef,merge:eb,splat:em}=g();({compose:function(t){t5(t,"afterGetBBox",t7),t5(t,"beforeAddingDataLabel",et);let e=t.prototype;e.setTextPath||(e.setTextPath=t4)}}).compose(z());let ey=180/Math.PI,ex=function(t,e,i,s){return{x:t+Math.cos(i)*s,y:e+Math.sin(i)*s}};function eP(t,e){let i=e.mapIdToNode,s=t.parent,o=s?i[s]:void 0,r=e.series,l=r.chart,a=r.points[t.i],n=el(t,{colors:r.options.colors||l&&l.options.colors,colorIndex:r.colorIndex,index:e.index,mapOptionsToLevel:e.mapOptionsToLevel,parentColor:o&&o.color,parentColorIndex:o&&o.colorIndex,series:e.series,siblings:e.siblings});return t.color=n.color,t.colorIndex=n.colorIndex,a&&(a.color=t.color,a.colorIndex=t.colorIndex,t.sliced=t.id!==e.idRoot&&a.sliced),t}class eL extends er{alignDataLabel(t,e,i){if(!i.textPath||!i.textPath.enabled)return super.alignDataLabel.apply(this,arguments)}animate(t){let e;let i=this.chart,s=[i.plotWidth/2,i.plotHeight/2],o=i.plotLeft,r=i.plotTop,l=this.group;t?(e={translateX:s[0]+o,translateY:s[1]+r,scaleX:.001,scaleY:.001,rotation:10,opacity:.01},l.attr(e)):(e={translateX:o,translateY:r,scaleX:1,scaleY:1,rotation:0,opacity:1},l.animate(e,this.options.animation))}drawPoints(){let t=this,e=t.mapOptionsToLevel,i=t.shapeRoot,s=t.group,o=t.hasRendered,r=t.rootNode,l=t.idPreviousRoot,a=t.nodeMap,n=a[l],h=n&&n.shapeArgs,d=t.points,p=t.startAndEndRadians,u=t.chart,c=u&&u.options&&u.options.chart||{},g="boolean"!=typeof c.animation||c.animation,v=t.center,f={x:v[0],y:v[1]},b=v[3]/2,m=t.chart.renderer,y=!!(g&&o&&r!==l&&t.dataLabelsGroup),x,P=!1,L=!1;for(let n of(y&&(t.dataLabelsGroup.attr({opacity:0}),x=function(){P=!0,t.dataLabelsGroup&&t.dataLabelsGroup.animate({opacity:1,visibility:"inherit"})}),d)){let d,c;let v=n.node,y=e[v.level],P=n.shapeExisting||{},T=v.shapeArgs||{},w=!!(v.visible&&v.shapeArgs);T.borderRadius=t.options.borderRadius,d=o&&g?function(t,e){let i=e.point,s=e.radians,o=e.innerR,r=e.idRoot,l=e.idPreviousRoot,a=e.shapeExisting,n=e.shapeRoot,h=e.shapePreviousRoot,d=e.visible,p={},u={end:t.end,start:t.start,innerR:t.innerR,r:t.r,x:t.x,y:t.y};return d?!i.graphic&&h&&((p=r===i.id?{start:s.start,end:s.end}:h.end<=t.start?{start:s.end,end:s.end}:{start:s.start,end:s.start}).innerR=p.r=o):i.graphic&&(l===i.id?u={innerR:o,r:o}:n&&(u=n.end<=a.start?{innerR:o,r:o,start:s.end,end:s.end}:{innerR:o,r:o,start:s.start,end:s.start})),{from:p,to:u}}(T,{center:f,point:n,radians:p,innerR:b,idRoot:r,idPreviousRoot:l,shapeExisting:P,shapeRoot:i,shapePreviousRoot:h,visible:w}):{to:T,from:{}},eu(n,{shapeExisting:T,tooltipPos:[T.plotX,T.plotY],drillId:function(t,e,i){let s;return t.node.isLeaf||(s=e===t.id?i[e].parent:t.id),s}(n,r,a),name:""+(n.name||n.id||n.index),plotX:T.plotX,plotY:T.plotY,value:v.val,isInside:w,isNull:!w}),n.dlOptions=function(t){let e=t.point,i=ev(t.shapeArgs)?t.shapeArgs:{},s=ev(t.optionsPoint)?t.optionsPoint.dataLabels:{},o=eb({style:{}},em(ev(t.level)?t.level.dataLabels:{})[0],s),{innerArcLength:r=0,outerArcLength:l=0}=e,a,n,h=o.rotationMode;return eg(o.rotation)||(("auto"===h||"circular"===h)&&(o.useHTML&&"circular"===h&&(h="auto"),r<1&&l>i.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})());
|