highcharts 7.1.1 → 7.1.2
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/css/annotations/popup.css +3 -3
- package/css/annotations/popup.scss +1 -1
- package/css/stocktools/gui.css +5 -5
- package/css/stocktools/gui.scss +1 -1
- package/es-modules/annotations/ControlPoint.js +1 -1
- package/es-modules/annotations/MockPoint.js +45 -12
- package/es-modules/annotations/annotations.src.js +203 -166
- package/es-modules/annotations/controllable/ControllableCircle.js +2 -10
- package/es-modules/annotations/controllable/ControllableImage.js +2 -10
- package/es-modules/annotations/controllable/ControllableLabel.js +54 -9
- package/es-modules/annotations/controllable/ControllableRect.js +2 -10
- package/es-modules/annotations/controllable/controllableMixin.js +32 -4
- package/es-modules/annotations/controllable/markerMixin.js +1 -0
- package/es-modules/annotations/eventEmitterMixin.js +1 -0
- package/es-modules/annotations/navigationBindings.js +15 -11
- package/es-modules/annotations/popup.js +59 -81
- package/es-modules/annotations/types/CrookedLine.js +19 -7
- package/es-modules/annotations/types/ElliottWave.js +7 -6
- package/es-modules/annotations/types/Fibonacci.js +14 -14
- package/es-modules/annotations/types/InfinityLine.js +4 -4
- package/es-modules/annotations/types/Measure.js +41 -41
- package/es-modules/annotations/types/Pitchfork.js +5 -4
- package/es-modules/annotations/types/VerticalLine.js +6 -5
- package/es-modules/error-messages.js +6 -1
- package/es-modules/indicators/indicators.src.js +5 -3
- package/es-modules/mixins/nodes.js +16 -8
- package/es-modules/modules/accessibility/AccessibilityComponent.js +4 -4
- package/es-modules/modules/accessibility/KeyboardNavigation.js +17 -4
- package/es-modules/modules/accessibility/components/RangeSelectorComponent.js +3 -2
- package/es-modules/modules/accessibility/components/SeriesComponent.js +110 -2
- package/es-modules/modules/accessibility/components/ZoomComponent.js +1 -1
- package/es-modules/modules/accessibility/options.js +2 -1
- package/es-modules/modules/bellcurve.src.js +27 -29
- package/es-modules/modules/boost/boost-init.js +14 -0
- package/es-modules/modules/boost/boost-overrides.js +13 -3
- package/es-modules/modules/boost/wgl-renderer.js +30 -15
- package/es-modules/modules/boost/wgl-shader.js +33 -16
- package/es-modules/modules/boost/wgl-vbuffer.js +8 -4
- package/es-modules/modules/broken-axis.src.js +1 -1
- package/es-modules/modules/bullet.src.js +68 -68
- package/es-modules/modules/cylinder.src.js +3 -1
- package/es-modules/modules/data.src.js +9 -5
- package/es-modules/modules/draggable-points.src.js +1 -1
- package/es-modules/modules/drilldown.src.js +1 -1
- package/es-modules/modules/export-data.src.js +7 -8
- package/es-modules/modules/exporting.src.js +9 -1
- package/es-modules/modules/full-screen.src.js +1 -1
- package/es-modules/modules/funnel3d.src.js +10 -3
- package/es-modules/modules/histogram.src.js +162 -164
- package/es-modules/modules/item-series.src.js +10 -10
- package/es-modules/modules/networkgraph/layouts.js +16 -12
- package/es-modules/modules/networkgraph/networkgraph.src.js +147 -51
- package/es-modules/modules/offline-exporting.src.js +15 -2
- package/es-modules/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/modules/organization.src.js +65 -20
- package/es-modules/modules/pareto.src.js +52 -51
- package/es-modules/modules/pattern-fill.src.js +1 -1
- package/es-modules/modules/price-indicator.src.js +1 -1
- package/es-modules/modules/pyramid3d.src.js +1 -1
- package/es-modules/modules/sankey.src.js +22 -10
- package/es-modules/modules/series-label.src.js +16 -8
- package/es-modules/modules/solid-gauge.src.js +128 -79
- package/es-modules/modules/static-scale.src.js +8 -1
- package/es-modules/modules/stock-tools-gui.js +1 -1
- package/es-modules/modules/streamgraph.src.js +11 -11
- package/es-modules/modules/sunburst.src.js +23 -2
- package/es-modules/modules/tilemap.src.js +58 -57
- package/es-modules/modules/timeline.src.js +17 -12
- package/es-modules/modules/treemap.src.js +6 -6
- package/es-modules/modules/variwide.src.js +39 -39
- package/es-modules/modules/vector.src.js +108 -107
- package/es-modules/modules/venn.src.js +4 -2
- package/es-modules/modules/windbarb.src.js +43 -43
- package/es-modules/modules/wordcloud.src.js +1 -0
- package/es-modules/modules/xrange.src.js +112 -104
- package/es-modules/parts/AreaSeries.js +4 -1
- package/es-modules/parts/Axis.js +809 -1870
- package/es-modules/parts/Chart.js +254 -743
- package/es-modules/parts/Color.js +160 -113
- package/es-modules/parts/ColumnSeries.js +9 -3
- package/es-modules/parts/DataLabels.js +31 -2
- package/es-modules/parts/Dynamics.js +73 -26
- package/es-modules/parts/FlagsSeries.js +6 -4
- package/es-modules/parts/Globals.js +20 -36
- package/es-modules/parts/Html.js +116 -235
- package/es-modules/parts/Interaction.js +17 -7
- package/es-modules/parts/Legend.js +277 -632
- package/es-modules/parts/MSPointer.js +62 -106
- package/es-modules/parts/Options.js +128 -367
- package/es-modules/parts/OrdinalAxis.js +12 -0
- package/es-modules/parts/PieSeries.js +61 -44
- package/es-modules/parts/PlotLineOrBand.js +38 -3
- package/es-modules/parts/Point.js +117 -227
- package/es-modules/parts/Pointer.js +273 -558
- package/es-modules/parts/RangeSelector.js +5 -3
- package/es-modules/parts/Responsive.js +8 -4
- package/es-modules/parts/ScrollablePlotArea.js +215 -81
- package/es-modules/parts/Scrollbar.js +38 -23
- package/es-modules/parts/Series.js +151 -47
- package/es-modules/parts/Stacking.js +8 -3
- package/es-modules/parts/StockChart.js +42 -29
- package/es-modules/parts/SvgRenderer.js +1080 -2100
- package/es-modules/parts/Tick.js +11 -4
- package/es-modules/parts/Time.js +179 -363
- package/es-modules/parts/Tooltip.js +23 -12
- package/es-modules/parts/TouchPointer.js +69 -187
- package/es-modules/parts/Utilities.js +593 -846
- package/es-modules/parts-3d/Axis.js +2 -2
- package/es-modules/parts-3d/Column.js +18 -8
- package/es-modules/parts-gantt/GanttSeries.js +17 -21
- package/es-modules/parts-gantt/GridAxis.js +183 -101
- package/es-modules/parts-gantt/PathfinderAlgorithms.js +2 -2
- package/es-modules/parts-gantt/TreeGrid.js +53 -36
- package/es-modules/parts-map/ColorAxis.js +35 -14
- package/es-modules/parts-map/MapBubbleSeries.js +2 -1
- package/es-modules/parts-map/MapSeries.js +29 -18
- package/es-modules/parts-more/AreaRangeSeries.js +13 -12
- package/es-modules/parts-more/ColumnRangeSeries.js +8 -2
- package/es-modules/parts-more/GaugeSeries.js +9 -9
- package/es-modules/parts-more/PackedBubbleSeries.js +152 -115
- package/es-modules/parts-more/RadialAxis.js +102 -8
- package/es-modules/parts-more/WaterfallSeries.js +148 -35
- package/highcharts-3d.js +68 -67
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +21 -11
- package/highcharts-gantt.d.ts +5 -3
- package/highcharts-gantt.js +618 -610
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.d.ts +5 -3
- package/highcharts-gantt.src.js +5185 -8892
- package/highcharts-more.js +144 -140
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +449 -194
- package/highcharts.d.ts +3943 -5236
- package/highcharts.js +454 -449
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +3943 -5236
- package/highcharts.src.js +4767 -8601
- package/highmaps.d.ts +5 -3
- package/highmaps.js +498 -494
- package/highmaps.js.map +1 -1
- package/highmaps.src.d.ts +5 -3
- package/highmaps.src.js +4547 -8507
- package/highstock.d.ts +5 -3
- package/highstock.js +597 -590
- package/highstock.js.map +1 -1
- package/highstock.src.d.ts +5 -3
- package/highstock.src.js +4871 -8661
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +1 -1
- package/indicators/aroon.src.js +1 -1
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -1
- package/indicators/ema.src.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +105 -105
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +6 -4
- package/indicators/indicators.js +9 -9
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +6 -4
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +92 -89
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +138 -15
- package/modules/annotations-advanced.js +128 -127
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +514 -396
- package/modules/annotations.d.ts +36 -0
- package/modules/annotations.js +81 -81
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.d.ts +36 -0
- package/modules/annotations.src.js +418 -315
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +1 -1
- package/modules/boost-canvas.src.js +1 -1
- package/modules/boost.js +63 -63
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +99 -39
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.src.js +2 -2
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +69 -69
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +4 -2
- package/modules/data.js +4 -4
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +10 -6
- package/modules/datagrouping.js +1 -1
- package/modules/datagrouping.src.js +1 -1
- package/modules/debugger.js +4 -4
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +7 -2
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +2 -2
- package/modules/drilldown.js +1 -1
- package/modules/drilldown.src.js +2 -2
- package/modules/export-data.js +2 -2
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +8 -9
- package/modules/exporting.js +25 -25
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +11 -3
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +2 -2
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +11 -4
- package/modules/gantt.js +166 -164
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +422 -295
- package/modules/grid-axis.js +18 -16
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +184 -102
- package/modules/heatmap.js +22 -22
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +36 -15
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +186 -183
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +11 -11
- package/modules/map-parser.js +1 -1
- package/modules/map-parser.src.js +1 -1
- package/modules/map.js +83 -83
- package/modules/map.js.map +1 -1
- package/modules/map.src.js +67 -34
- package/modules/networkgraph.js +10 -9
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +180 -72
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +15 -15
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +17 -4
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +2 -2
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +2 -2
- package/modules/organization.js +1 -1
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +66 -21
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +1 -1
- package/modules/parallel-coordinates.src.js +1 -1
- package/modules/pareto.js +1 -1
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +53 -52
- package/modules/pathfinder.js +3 -3
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +3 -3
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +2 -2
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +2 -2
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +2 -2
- package/modules/sankey.js +14 -14
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +39 -19
- package/modules/series-label.js +16 -16
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +17 -9
- package/modules/solid-gauge.js +5 -5
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +129 -80
- package/modules/sonification.js +1 -1
- package/modules/sonification.src.js +1 -1
- package/modules/static-scale.js +4 -4
- package/modules/static-scale.js.map +1 -1
- package/modules/static-scale.src.js +9 -2
- package/modules/stock-tools.js +2 -2
- package/modules/stock-tools.src.js +3 -3
- package/modules/stock.js +146 -145
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +105 -61
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +12 -12
- package/modules/sunburst.js +40 -40
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +30 -9
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +59 -58
- package/modules/timeline.js +12 -11
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +18 -13
- package/modules/treegrid.js +45 -43
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +238 -139
- package/modules/treemap.js +1 -1
- package/modules/treemap.src.js +7 -7
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.src.js +40 -40
- package/modules/vector.js +1 -1
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +109 -108
- package/modules/venn.js +23 -23
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +5 -3
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +44 -44
- package/modules/wordcloud.js +10 -10
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +2 -1
- package/modules/xrange.js +12 -12
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +113 -105
- package/package.json +1 -1
- package/themes/avocado.js +21 -37
- package/themes/avocado.src.js +1 -1
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +21 -37
- package/themes/sunset.src.js +1 -1
- package/.DS_Store +0 -0
- package/es-modules/.DS_Store +0 -0
- package/es-modules/modules/annotations-legacy.src.js +0 -1977
- package/js/.DS_Store +0 -0
package/es-modules/parts/Html.js
CHANGED
|
@@ -1,32 +1,20 @@
|
|
|
1
1
|
/* *
|
|
2
|
-
* (c) 2010-2019 Torstein Honsi
|
|
3
2
|
*
|
|
4
|
-
*
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
* (c) 2010-2019 Torstein Honsi
|
|
4
|
+
*
|
|
5
|
+
* License: www.highcharts.com/license
|
|
6
|
+
*
|
|
7
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
8
|
+
*
|
|
9
|
+
* */
|
|
7
10
|
'use strict';
|
|
8
|
-
|
|
9
11
|
import H from './Globals.js';
|
|
10
12
|
import './Utilities.js';
|
|
11
13
|
import './SvgRenderer.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
createElement = H.createElement,
|
|
15
|
-
css = H.css,
|
|
16
|
-
defined = H.defined,
|
|
17
|
-
extend = H.extend,
|
|
18
|
-
isFirefox = H.isFirefox,
|
|
19
|
-
isMS = H.isMS,
|
|
20
|
-
isWebKit = H.isWebKit,
|
|
21
|
-
pick = H.pick,
|
|
22
|
-
pInt = H.pInt,
|
|
23
|
-
SVGElement = H.SVGElement,
|
|
24
|
-
SVGRenderer = H.SVGRenderer,
|
|
25
|
-
win = H.win;
|
|
26
|
-
|
|
14
|
+
var attr = H.attr, createElement = H.createElement, css = H.css, defined = H.defined, extend = H.extend, isFirefox = H.isFirefox, isMS = H.isMS, isWebKit = H.isWebKit, pick = H.pick, pInt = H.pInt, SVGElement = H.SVGElement, SVGRenderer = H.SVGRenderer, win = H.win;
|
|
15
|
+
/* eslint-disable valid-jsdoc */
|
|
27
16
|
// Extend SvgElement for useHTML option.
|
|
28
17
|
extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
29
|
-
|
|
30
18
|
/**
|
|
31
19
|
* Apply CSS to HTML elements. This is used in text within SVG rendering and
|
|
32
20
|
* by the VML renderer
|
|
@@ -39,42 +27,29 @@ extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
|
39
27
|
* @return {Highcharts.SVGElement}
|
|
40
28
|
*/
|
|
41
29
|
htmlCss: function (styles) {
|
|
42
|
-
var wrapper = this,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
styles &&
|
|
49
|
-
'width' in styles
|
|
50
|
-
),
|
|
51
|
-
textWidth = pick(
|
|
52
|
-
isSettingWidth && styles.width,
|
|
53
|
-
undefined
|
|
54
|
-
),
|
|
55
|
-
doTransform;
|
|
56
|
-
|
|
30
|
+
var wrapper = this, element = wrapper.element,
|
|
31
|
+
// When setting or unsetting the width style, we need to update
|
|
32
|
+
// transform (#8809)
|
|
33
|
+
isSettingWidth = (element.tagName === 'SPAN' &&
|
|
34
|
+
styles &&
|
|
35
|
+
'width' in styles), textWidth = pick(isSettingWidth && styles.width, undefined), doTransform;
|
|
57
36
|
if (isSettingWidth) {
|
|
58
37
|
delete styles.width;
|
|
59
38
|
wrapper.textWidth = textWidth;
|
|
60
39
|
doTransform = true;
|
|
61
40
|
}
|
|
62
|
-
|
|
63
41
|
if (styles && styles.textOverflow === 'ellipsis') {
|
|
64
42
|
styles.whiteSpace = 'nowrap';
|
|
65
43
|
styles.overflow = 'hidden';
|
|
66
44
|
}
|
|
67
45
|
wrapper.styles = extend(wrapper.styles, styles);
|
|
68
46
|
css(wrapper.element, styles);
|
|
69
|
-
|
|
70
47
|
// Now that all styles are applied, to the transform
|
|
71
48
|
if (doTransform) {
|
|
72
49
|
wrapper.htmlUpdateTransform();
|
|
73
50
|
}
|
|
74
|
-
|
|
75
51
|
return wrapper;
|
|
76
52
|
},
|
|
77
|
-
|
|
78
53
|
/**
|
|
79
54
|
* VML and useHTML method for calculating the bounding box based on offsets.
|
|
80
55
|
*
|
|
@@ -89,9 +64,7 @@ extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
|
89
64
|
* A hash containing values for x, y, width and height.
|
|
90
65
|
*/
|
|
91
66
|
htmlGetBBox: function () {
|
|
92
|
-
var wrapper = this,
|
|
93
|
-
element = wrapper.element;
|
|
94
|
-
|
|
67
|
+
var wrapper = this, element = wrapper.element;
|
|
95
68
|
return {
|
|
96
69
|
x: element.offsetLeft,
|
|
97
70
|
y: element.offsetTop,
|
|
@@ -99,13 +72,13 @@ extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
|
99
72
|
height: element.offsetHeight
|
|
100
73
|
};
|
|
101
74
|
},
|
|
102
|
-
|
|
103
75
|
/**
|
|
104
76
|
* VML override private method to update elements based on internal
|
|
105
77
|
* properties based on SVG transform.
|
|
106
78
|
*
|
|
107
79
|
* @private
|
|
108
80
|
* @function Highcharts.SVGElement#htmlUpdateTransform
|
|
81
|
+
* @return {void}
|
|
109
82
|
*/
|
|
110
83
|
htmlUpdateTransform: function () {
|
|
111
84
|
// aligning non added elements is expensive
|
|
@@ -113,19 +86,13 @@ extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
|
113
86
|
this.alignOnAdd = true;
|
|
114
87
|
return;
|
|
115
88
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
y = wrapper.y || 0,
|
|
124
|
-
align = wrapper.textAlign || 'left',
|
|
125
|
-
alignCorrection = { left: 0, center: 0.5, right: 1 }[align],
|
|
126
|
-
styles = wrapper.styles,
|
|
127
|
-
whiteSpace = styles && styles.whiteSpace;
|
|
128
|
-
|
|
89
|
+
var wrapper = this, renderer = wrapper.renderer, elem = wrapper.element, translateX = wrapper.translateX || 0, translateY = wrapper.translateY || 0, x = wrapper.x || 0, y = wrapper.y || 0, align = wrapper.textAlign || 'left', alignCorrection = {
|
|
90
|
+
left: 0, center: 0.5, right: 1
|
|
91
|
+
}[align], styles = wrapper.styles, whiteSpace = styles && styles.whiteSpace;
|
|
92
|
+
/**
|
|
93
|
+
* @private
|
|
94
|
+
* @return {number}
|
|
95
|
+
*/
|
|
129
96
|
function getTextPxLength() {
|
|
130
97
|
// Reset multiline/ellipsis in order to read width (#4928,
|
|
131
98
|
// #5417)
|
|
@@ -135,13 +102,11 @@ extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
|
135
102
|
});
|
|
136
103
|
return elem.offsetWidth;
|
|
137
104
|
}
|
|
138
|
-
|
|
139
105
|
// apply translate
|
|
140
106
|
css(elem, {
|
|
141
107
|
marginLeft: translateX,
|
|
142
108
|
marginTop: translateY
|
|
143
109
|
});
|
|
144
|
-
|
|
145
110
|
if (!renderer.styledMode && wrapper.shadows) { // used in labels/tooltip
|
|
146
111
|
wrapper.shadows.forEach(function (shadow) {
|
|
147
112
|
css(shadow, {
|
|
@@ -150,43 +115,31 @@ extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
|
150
115
|
});
|
|
151
116
|
});
|
|
152
117
|
}
|
|
153
|
-
|
|
154
118
|
// apply inversion
|
|
155
119
|
if (wrapper.inverted) { // wrapper is a group
|
|
156
120
|
[].forEach.call(elem.childNodes, function (child) {
|
|
157
121
|
renderer.invertChild(child, elem);
|
|
158
122
|
});
|
|
159
123
|
}
|
|
160
|
-
|
|
161
124
|
if (elem.tagName === 'SPAN') {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
elem.innerHTML,
|
|
170
|
-
wrapper.textWidth,
|
|
171
|
-
wrapper.textAlign
|
|
172
|
-
].join(',');
|
|
173
|
-
|
|
125
|
+
var rotation = wrapper.rotation, baseline, textWidth = wrapper.textWidth && pInt(wrapper.textWidth), currentTextTransform = [
|
|
126
|
+
rotation,
|
|
127
|
+
align,
|
|
128
|
+
elem.innerHTML,
|
|
129
|
+
wrapper.textWidth,
|
|
130
|
+
wrapper.textAlign
|
|
131
|
+
].join(',');
|
|
174
132
|
// Update textWidth. Use the memoized textPxLength if possible, to
|
|
175
133
|
// avoid the getTextPxLength function using elem.offsetWidth.
|
|
176
134
|
// Calling offsetWidth affects rendering time as it forces layout
|
|
177
135
|
// (#7656).
|
|
178
|
-
if (
|
|
179
|
-
textWidth
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
// text-overflow is ellipsis (#9537)
|
|
186
|
-
/[ \-]/.test(elem.textContent || elem.innerText) ||
|
|
187
|
-
elem.style.textOverflow === 'ellipsis'
|
|
188
|
-
)
|
|
189
|
-
) { // #983, #1254
|
|
136
|
+
if (textWidth !== wrapper.oldTextWidth &&
|
|
137
|
+
((textWidth > wrapper.oldTextWidth) ||
|
|
138
|
+
(wrapper.textPxLength || getTextPxLength()) > textWidth) && (
|
|
139
|
+
// Only set the width if the text is able to word-wrap, or
|
|
140
|
+
// text-overflow is ellipsis (#9537)
|
|
141
|
+
/[ \-]/.test(elem.textContent || elem.innerText) ||
|
|
142
|
+
elem.style.textOverflow === 'ellipsis')) { // #983, #1254
|
|
190
143
|
css(elem, {
|
|
191
144
|
width: textWidth + 'px',
|
|
192
145
|
display: 'block',
|
|
@@ -194,102 +147,73 @@ extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
|
|
|
194
147
|
});
|
|
195
148
|
wrapper.oldTextWidth = textWidth;
|
|
196
149
|
wrapper.hasBoxWidthChanged = true; // #8159
|
|
197
|
-
}
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
198
152
|
wrapper.hasBoxWidthChanged = false; // #8159
|
|
199
153
|
}
|
|
200
|
-
|
|
201
154
|
// Do the calculations and DOM access only if properties changed
|
|
202
155
|
if (currentTextTransform !== wrapper.cTT) {
|
|
203
156
|
baseline = renderer.fontMetrics(elem.style.fontSize, elem).b;
|
|
204
|
-
|
|
205
157
|
// Renderer specific handling of span rotation, but only if we
|
|
206
158
|
// have something to update.
|
|
207
|
-
if (
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
(align !== wrapper.oldAlign)
|
|
212
|
-
)
|
|
213
|
-
) {
|
|
214
|
-
wrapper.setSpanRotation(
|
|
215
|
-
rotation,
|
|
216
|
-
alignCorrection,
|
|
217
|
-
baseline
|
|
218
|
-
);
|
|
159
|
+
if (defined(rotation) &&
|
|
160
|
+
((rotation !== (wrapper.oldRotation || 0)) ||
|
|
161
|
+
(align !== wrapper.oldAlign))) {
|
|
162
|
+
wrapper.setSpanRotation(rotation, alignCorrection, baseline);
|
|
219
163
|
}
|
|
220
|
-
|
|
221
164
|
wrapper.getSpanCorrection(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
elem.offsetWidth
|
|
227
|
-
),
|
|
228
|
-
baseline,
|
|
229
|
-
alignCorrection,
|
|
230
|
-
rotation,
|
|
231
|
-
align
|
|
232
|
-
);
|
|
165
|
+
// Avoid elem.offsetWidth if we can, it affects rendering
|
|
166
|
+
// time heavily (#7656)
|
|
167
|
+
((!defined(rotation) && wrapper.textPxLength) || // #7920
|
|
168
|
+
elem.offsetWidth), baseline, alignCorrection, rotation, align);
|
|
233
169
|
}
|
|
234
|
-
|
|
235
170
|
// apply position with correction
|
|
236
171
|
css(elem, {
|
|
237
172
|
left: (x + (wrapper.xCorr || 0)) + 'px',
|
|
238
173
|
top: (y + (wrapper.yCorr || 0)) + 'px'
|
|
239
174
|
});
|
|
240
|
-
|
|
241
175
|
// record current text transform
|
|
242
176
|
wrapper.cTT = currentTextTransform;
|
|
243
177
|
wrapper.oldRotation = rotation;
|
|
244
178
|
wrapper.oldAlign = align;
|
|
245
179
|
}
|
|
246
180
|
},
|
|
247
|
-
|
|
248
181
|
/**
|
|
249
182
|
* Set the rotation of an individual HTML span.
|
|
250
183
|
*
|
|
251
184
|
* @private
|
|
252
185
|
* @function Highcharts.SVGElement#setSpanRotation
|
|
253
|
-
*
|
|
254
186
|
* @param {number} rotation
|
|
255
|
-
*
|
|
256
187
|
* @param {number} alignCorrection
|
|
257
|
-
*
|
|
258
188
|
* @param {number} baseline
|
|
189
|
+
* @return {void}
|
|
259
190
|
*/
|
|
260
191
|
setSpanRotation: function (rotation, alignCorrection, baseline) {
|
|
261
|
-
var rotationStyle = {},
|
|
262
|
-
cssTransformKey = this.renderer.getTransformKey();
|
|
263
|
-
|
|
192
|
+
var rotationStyle = {}, cssTransformKey = this.renderer.getTransformKey();
|
|
264
193
|
rotationStyle[cssTransformKey] = rotationStyle.transform =
|
|
265
194
|
'rotate(' + rotation + 'deg)';
|
|
266
195
|
rotationStyle[cssTransformKey + (isFirefox ? 'Origin' : '-origin')] =
|
|
267
|
-
|
|
268
|
-
|
|
196
|
+
rotationStyle.transformOrigin =
|
|
197
|
+
(alignCorrection * 100) + '% ' + baseline + 'px';
|
|
269
198
|
css(this.element, rotationStyle);
|
|
270
199
|
},
|
|
271
|
-
|
|
272
200
|
/**
|
|
273
201
|
* Get the correction in X and Y positioning as the element is rotated.
|
|
274
202
|
*
|
|
275
203
|
* @private
|
|
276
204
|
* @function Highcharts.SVGElement#getSpanCorrection
|
|
277
|
-
*
|
|
278
205
|
* @param {number} width
|
|
279
|
-
*
|
|
280
206
|
* @param {number} baseline
|
|
281
|
-
*
|
|
282
207
|
* @param {number} alignCorrection
|
|
208
|
+
* @return {void}
|
|
283
209
|
*/
|
|
284
210
|
getSpanCorrection: function (width, baseline, alignCorrection) {
|
|
285
211
|
this.xCorr = -width * alignCorrection;
|
|
286
212
|
this.yCorr = -baseline;
|
|
287
213
|
}
|
|
288
214
|
});
|
|
289
|
-
|
|
290
215
|
// Extend SvgRenderer for useHTML option.
|
|
291
216
|
extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
|
|
292
|
-
|
|
293
217
|
/**
|
|
294
218
|
* @private
|
|
295
219
|
* @function Highcharts.SVGRenderer#getTransformKey
|
|
@@ -307,7 +231,6 @@ extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
|
|
|
307
231
|
'-o-transform' :
|
|
308
232
|
'';
|
|
309
233
|
},
|
|
310
|
-
|
|
311
234
|
/**
|
|
312
235
|
* Create HTML text node. This is used by the VML renderer as well as the
|
|
313
236
|
* SVG renderer through the useHTML option.
|
|
@@ -327,34 +250,23 @@ extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
|
|
|
327
250
|
* @return {Highcharts.HTMLDOMElement}
|
|
328
251
|
*/
|
|
329
252
|
html: function (str, x, y) {
|
|
330
|
-
var wrapper = this.createElement('span'),
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
value,
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
.call(this, value, key, elem);
|
|
348
|
-
if (styleObject) {
|
|
349
|
-
styleObject[key] = value;
|
|
350
|
-
}
|
|
351
|
-
};
|
|
352
|
-
});
|
|
353
|
-
gWrapper.addedSetters = true;
|
|
354
|
-
},
|
|
355
|
-
chart = H.charts[renderer.chartIndex],
|
|
356
|
-
styledMode = chart && chart.styledMode;
|
|
357
|
-
|
|
253
|
+
var wrapper = this.createElement('span'), element = wrapper.element, renderer = wrapper.renderer, isSVG = renderer.isSVG, addSetters = function (gWrapper, style) {
|
|
254
|
+
// These properties are set as attributes on the SVG group, and
|
|
255
|
+
// as identical CSS properties on the div. (#3542)
|
|
256
|
+
['opacity', 'visibility'].forEach(function (prop) {
|
|
257
|
+
gWrapper[prop + 'Setter'] = function (value, key, elem) {
|
|
258
|
+
var styleObject = gWrapper.div ?
|
|
259
|
+
gWrapper.div.style :
|
|
260
|
+
style;
|
|
261
|
+
SVGElement.prototype[prop + 'Setter']
|
|
262
|
+
.call(this, value, key, elem);
|
|
263
|
+
if (styleObject) {
|
|
264
|
+
styleObject[key] = value;
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
});
|
|
268
|
+
gWrapper.addedSetters = true;
|
|
269
|
+
}, chart = H.charts[renderer.chartIndex], styledMode = chart && chart.styledMode;
|
|
358
270
|
// Text setter
|
|
359
271
|
wrapper.textSetter = function (value) {
|
|
360
272
|
if (value !== element.innerHTML) {
|
|
@@ -365,26 +277,23 @@ extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
|
|
|
365
277
|
element.innerHTML = pick(value, '');
|
|
366
278
|
wrapper.doTransform = true;
|
|
367
279
|
};
|
|
368
|
-
|
|
369
280
|
// Add setters for the element itself (#4938)
|
|
370
281
|
if (isSVG) { // #4938, only for HTML within SVG
|
|
371
282
|
addSetters(wrapper, wrapper.element.style);
|
|
372
283
|
}
|
|
373
|
-
|
|
374
284
|
// Various setters which rely on update transform
|
|
375
285
|
wrapper.xSetter =
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
286
|
+
wrapper.ySetter =
|
|
287
|
+
wrapper.alignSetter =
|
|
288
|
+
wrapper.rotationSetter =
|
|
289
|
+
function (value, key) {
|
|
290
|
+
if (key === 'align') {
|
|
291
|
+
// Do not overwrite the SVGElement.align method. Same as VML.
|
|
292
|
+
key = 'textAlign';
|
|
293
|
+
}
|
|
294
|
+
wrapper[key] = value;
|
|
295
|
+
wrapper.doTransform = true;
|
|
296
|
+
};
|
|
388
297
|
// Runs at the end of .attr()
|
|
389
298
|
wrapper.afterSetters = function () {
|
|
390
299
|
// Update transform. Do this outside the loop to prevent redundant
|
|
@@ -394,105 +303,86 @@ extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
|
|
|
394
303
|
this.doTransform = false;
|
|
395
304
|
}
|
|
396
305
|
};
|
|
397
|
-
|
|
398
306
|
// Set the default attributes
|
|
399
307
|
wrapper
|
|
400
308
|
.attr({
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
309
|
+
text: str,
|
|
310
|
+
x: Math.round(x),
|
|
311
|
+
y: Math.round(y)
|
|
312
|
+
})
|
|
405
313
|
.css({
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
314
|
+
position: 'absolute'
|
|
315
|
+
});
|
|
409
316
|
if (!styledMode) {
|
|
410
317
|
wrapper.css({
|
|
411
318
|
fontFamily: this.style.fontFamily,
|
|
412
319
|
fontSize: this.style.fontSize
|
|
413
320
|
});
|
|
414
321
|
}
|
|
415
|
-
|
|
416
322
|
// Keep the whiteSpace style outside the wrapper.styles collection
|
|
417
323
|
element.style.whiteSpace = 'nowrap';
|
|
418
|
-
|
|
419
324
|
// Use the HTML specific .css method
|
|
420
325
|
wrapper.css = wrapper.htmlCss;
|
|
421
|
-
|
|
422
326
|
// This is specific for HTML within SVG
|
|
423
327
|
if (isSVG) {
|
|
424
328
|
wrapper.add = function (svgGroupWrapper) {
|
|
425
|
-
|
|
426
|
-
var htmlGroup,
|
|
427
|
-
container = renderer.box.parentNode,
|
|
428
|
-
parentGroup,
|
|
429
|
-
parents = [];
|
|
430
|
-
|
|
329
|
+
var htmlGroup, container = renderer.box.parentNode, parentGroup, parents = [];
|
|
431
330
|
this.parentGroup = svgGroupWrapper;
|
|
432
|
-
|
|
433
331
|
// Create a mock group to hold the HTML elements
|
|
434
332
|
if (svgGroupWrapper) {
|
|
435
333
|
htmlGroup = svgGroupWrapper.div;
|
|
436
334
|
if (!htmlGroup) {
|
|
437
|
-
|
|
438
335
|
// Read the parent chain into an array and read from top
|
|
439
336
|
// down
|
|
440
337
|
parentGroup = svgGroupWrapper;
|
|
441
338
|
while (parentGroup) {
|
|
442
|
-
|
|
443
339
|
parents.push(parentGroup);
|
|
444
|
-
|
|
445
340
|
// Move up to the next parent group
|
|
446
341
|
parentGroup = parentGroup.parentGroup;
|
|
447
342
|
}
|
|
448
|
-
|
|
449
343
|
// Ensure dynamically updating position when any parent
|
|
450
344
|
// is translated
|
|
451
345
|
parents.reverse().forEach(function (parentGroup) {
|
|
452
|
-
var htmlGroupStyle,
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
346
|
+
var htmlGroupStyle, cls = attr(parentGroup.element, 'class');
|
|
347
|
+
/**
|
|
348
|
+
* Common translate setter for X and Y on the HTML
|
|
349
|
+
* group. Reverted the fix for #6957 du to
|
|
350
|
+
* positioning problems and offline export (#7254,
|
|
351
|
+
* #7280, #7529)
|
|
352
|
+
* @private
|
|
353
|
+
* @param {*} value
|
|
354
|
+
* @param {string} key
|
|
355
|
+
* @return {void}
|
|
356
|
+
*/
|
|
459
357
|
function translateSetter(value, key) {
|
|
460
358
|
parentGroup[key] = value;
|
|
461
|
-
|
|
462
359
|
if (key === 'translateX') {
|
|
463
360
|
htmlGroupStyle.left = value + 'px';
|
|
464
|
-
}
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
465
363
|
htmlGroupStyle.top = value + 'px';
|
|
466
364
|
}
|
|
467
|
-
|
|
468
365
|
parentGroup.doTransform = true;
|
|
469
366
|
}
|
|
470
|
-
|
|
471
367
|
if (cls) {
|
|
472
368
|
cls = { className: cls };
|
|
473
369
|
} // else null
|
|
474
|
-
|
|
475
370
|
// Create a HTML div and append it to the parent div
|
|
476
371
|
// to emulate the SVG group structure
|
|
477
372
|
htmlGroup =
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
// the top group is appended to container
|
|
491
|
-
}, htmlGroup || container);
|
|
492
|
-
|
|
373
|
+
parentGroup.div =
|
|
374
|
+
parentGroup.div || createElement('div', cls, {
|
|
375
|
+
position: 'absolute',
|
|
376
|
+
left: (parentGroup.translateX || 0) + 'px',
|
|
377
|
+
top: (parentGroup.translateY || 0) + 'px',
|
|
378
|
+
display: parentGroup.display,
|
|
379
|
+
opacity: parentGroup.opacity,
|
|
380
|
+
pointerEvents: (parentGroup.styles &&
|
|
381
|
+
parentGroup.styles.pointerEvents) // #5595
|
|
382
|
+
// the top group is appended to container
|
|
383
|
+
}, htmlGroup || container);
|
|
493
384
|
// Shortcut
|
|
494
385
|
htmlGroupStyle = htmlGroup.style;
|
|
495
|
-
|
|
496
386
|
// Set listeners to update the HTML div's position
|
|
497
387
|
// whenever the SVG group position is changed.
|
|
498
388
|
extend(parentGroup, {
|
|
@@ -500,19 +390,13 @@ extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
|
|
|
500
390
|
// the related group
|
|
501
391
|
classSetter: (function (htmlGroup) {
|
|
502
392
|
return function (value) {
|
|
503
|
-
this.element.setAttribute(
|
|
504
|
-
'class',
|
|
505
|
-
value
|
|
506
|
-
);
|
|
393
|
+
this.element.setAttribute('class', value);
|
|
507
394
|
htmlGroup.className = value;
|
|
508
395
|
};
|
|
509
396
|
}(htmlGroup)),
|
|
510
397
|
on: function () {
|
|
511
398
|
if (parents[0].div) { // #6418
|
|
512
|
-
wrapper.on.apply(
|
|
513
|
-
{ element: parents[0].div },
|
|
514
|
-
arguments
|
|
515
|
-
);
|
|
399
|
+
wrapper.on.apply({ element: parents[0].div }, arguments);
|
|
516
400
|
}
|
|
517
401
|
return parentGroup;
|
|
518
402
|
},
|
|
@@ -523,20 +407,17 @@ extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
|
|
|
523
407
|
addSetters(parentGroup);
|
|
524
408
|
}
|
|
525
409
|
});
|
|
526
|
-
|
|
527
410
|
}
|
|
528
|
-
}
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
529
413
|
htmlGroup = container;
|
|
530
414
|
}
|
|
531
|
-
|
|
532
415
|
htmlGroup.appendChild(element);
|
|
533
|
-
|
|
534
416
|
// Shared with VML:
|
|
535
417
|
wrapper.added = true;
|
|
536
418
|
if (wrapper.alignOnAdd) {
|
|
537
419
|
wrapper.htmlUpdateTransform();
|
|
538
420
|
}
|
|
539
|
-
|
|
540
421
|
return wrapper;
|
|
541
422
|
};
|
|
542
423
|
}
|
|
@@ -24,6 +24,7 @@ var addEvent = H.addEvent,
|
|
|
24
24
|
fireEvent = H.fireEvent,
|
|
25
25
|
hasTouch = H.hasTouch,
|
|
26
26
|
isObject = H.isObject,
|
|
27
|
+
isArray = H.isArray,
|
|
27
28
|
Legend = H.Legend,
|
|
28
29
|
merge = H.merge,
|
|
29
30
|
pick = H.pick,
|
|
@@ -61,20 +62,27 @@ TrackerMixin = H.TrackerMixin = {
|
|
|
61
62
|
pointer.isDirectTouch = true;
|
|
62
63
|
point.onMouseOver(e);
|
|
63
64
|
}
|
|
64
|
-
}
|
|
65
|
+
},
|
|
66
|
+
dataLabels;
|
|
65
67
|
|
|
66
68
|
// Add reference to the point
|
|
67
69
|
series.points.forEach(function (point) {
|
|
70
|
+
dataLabels = (
|
|
71
|
+
isArray(point.dataLabels) ?
|
|
72
|
+
point.dataLabels :
|
|
73
|
+
(point.dataLabel ? [point.dataLabel] : [])
|
|
74
|
+
);
|
|
75
|
+
|
|
68
76
|
if (point.graphic) {
|
|
69
77
|
point.graphic.element.point = point;
|
|
70
78
|
}
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
79
|
+
dataLabels.forEach(function (dataLabel) {
|
|
80
|
+
if (dataLabel.div) {
|
|
81
|
+
dataLabel.div.point = point;
|
|
74
82
|
} else {
|
|
75
|
-
|
|
83
|
+
dataLabel.element.point = point;
|
|
76
84
|
}
|
|
77
|
-
}
|
|
85
|
+
});
|
|
78
86
|
});
|
|
79
87
|
|
|
80
88
|
// Add the event listeners, we need to do this only once
|
|
@@ -791,7 +799,9 @@ extend(Point.prototype, /** @lends Highcharts.Point.prototype */ {
|
|
|
791
799
|
point.events = events;
|
|
792
800
|
|
|
793
801
|
H.objectEach(events, function (event, eventType) {
|
|
794
|
-
|
|
802
|
+
if (H.isFunction(event)) {
|
|
803
|
+
addEvent(point, eventType, event);
|
|
804
|
+
}
|
|
795
805
|
});
|
|
796
806
|
this.hasImportedEvents = true;
|
|
797
807
|
|