highcharts 9.3.2 → 10.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/css/highcharts.css +19 -2
- package/css/highcharts.scss +17 -2
- package/css/themes/dark-unica.css +19 -2
- package/css/themes/grid-light.css +19 -2
- package/css/themes/sand-signika.css +19 -2
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Accessibility.js +1 -1
- package/es-modules/Accessibility/Components/ContainerComponent.js +8 -9
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +14 -9
- package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
- package/es-modules/Accessibility/Components/MenuComponent.js +15 -5
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +84 -33
- package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
- package/es-modules/Accessibility/FocusBorder.js +6 -5
- package/es-modules/Accessibility/HighContrastMode.js +2 -2
- package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
- package/es-modules/Accessibility/Options/LangOptions.js +36 -31
- package/es-modules/Accessibility/Options/Options.js +66 -3
- package/es-modules/Accessibility/ProxyElement.js +14 -6
- package/es-modules/Accessibility/ProxyProvider.js +10 -2
- package/es-modules/Accessibility/Utils/ChartUtilities.js +9 -4
- package/es-modules/Core/Axis/Axis.js +180 -73
- package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
- package/es-modules/Core/Axis/GridAxis.js +15 -11
- package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
- package/es-modules/Core/Axis/OrdinalAxis.js +3 -2
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
- package/es-modules/Core/Axis/StackingAxis.js +0 -1
- package/es-modules/Core/Axis/Tick.js +2 -2
- package/es-modules/Core/Axis/TreeGridTick.js +11 -0
- package/es-modules/Core/Chart/Chart.js +21 -3
- package/es-modules/Core/Chart/Chart3D.js +1 -11
- package/es-modules/Core/Chart/ChartDefaults.js +43 -11
- package/es-modules/Core/Chart/MapChart.js +1 -6
- package/es-modules/Core/Chart/StockChart.js +1 -1
- package/es-modules/Core/DefaultOptions.js +8 -4
- package/es-modules/Core/Geometry/PolygonClip.js +84 -0
- package/es-modules/Core/Globals.js +4 -18
- package/es-modules/Core/HttpUtilities.js +13 -8
- package/es-modules/Core/Legend/Legend.js +11 -9
- package/es-modules/Core/Navigator.js +10 -7
- package/es-modules/Core/Pointer.js +15 -11
- package/es-modules/Core/Renderer/HTML/AST.js +68 -8
- package/es-modules/Core/Renderer/SVG/SVGElement.js +47 -63
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +31 -28
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
- package/es-modules/Core/Scrollbar.js +9 -5
- package/es-modules/Core/Series/DataLabel.js +65 -36
- package/es-modules/Core/Series/Point.js +2 -2
- package/es-modules/Core/Series/Series.js +52 -22
- package/es-modules/Core/Series/SeriesDefaults.js +4 -1
- package/es-modules/Core/Tooltip.js +14 -31
- package/es-modules/Core/Utilities.js +29 -29
- package/es-modules/Extensions/Annotations/Annotations.js +9 -2
- package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
- package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +9 -1
- package/es-modules/Extensions/Annotations/Popup.js +1 -1
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
- package/es-modules/Extensions/Boost/BoostInit.js +6 -1
- package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
- package/es-modules/Extensions/Boost/Boostables.js +1 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
- package/es-modules/Extensions/Boost/WGLShader.js +4 -3
- package/es-modules/Extensions/Breadcrumbs.js +873 -0
- package/es-modules/Extensions/Data.js +26 -14
- package/es-modules/Extensions/DataGrouping.js +8 -3
- package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
- package/es-modules/Extensions/DraggablePoints.js +9 -7
- package/es-modules/Extensions/Drilldown.js +150 -95
- package/es-modules/Extensions/ExportData.js +1 -2
- package/es-modules/Extensions/Exporting/Exporting.js +31 -20
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
- package/es-modules/Extensions/FullScreen.js +121 -54
- package/es-modules/Extensions/GeoJSON.js +151 -125
- package/es-modules/Extensions/MarkerClusters.js +34 -20
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +1 -1
- package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
- package/es-modules/Extensions/Polar.js +4 -1
- package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
- package/es-modules/Extensions/Stacking.js +4 -3
- package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
- package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
- package/es-modules/Maps/MapNavigation.js +50 -13
- package/es-modules/Maps/MapPointer.js +16 -0
- package/es-modules/Maps/MapUtilities.js +56 -0
- package/es-modules/Maps/MapView.js +611 -136
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
- package/es-modules/Maps/Projection.js +169 -77
- package/es-modules/Maps/Projections/EqualEarth.js +15 -6
- package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
- package/es-modules/Maps/Projections/Miller.js +23 -10
- package/es-modules/Maps/Projections/Orthographic.js +21 -10
- package/es-modules/Maps/Projections/WebMercator.js +25 -13
- package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +589 -0
- package/es-modules/Series/CenteredUtilities.js +6 -1
- package/es-modules/Series/Column/ColumnSeries.js +4 -3
- package/es-modules/Series/DataModifyComposition.js +1 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
- package/es-modules/Series/DrawPointComposition.js +7 -4
- package/es-modules/Series/Flags/FlagsSeries.js +7 -12
- package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
- package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -20
- package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
- package/es-modules/Series/Map/MapPoint.js +24 -1
- package/es-modules/Series/Map/MapSeries.js +206 -169
- package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +58 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
- package/es-modules/Series/MapPoint/MapPointSeries.js +40 -14
- package/es-modules/Series/NodesComposition.js +60 -13
- package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
- package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
- package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
- package/es-modules/Series/Pie/PieDataLabel.js +3 -1
- package/es-modules/Series/Pie/PiePoint.js +12 -5
- package/es-modules/Series/Pie/PieSeries.js +12 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
- package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
- package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
- package/es-modules/Series/Sankey/SankeySeries.js +13 -128
- package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstSeries.js +14 -3
- package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +4 -4
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
- package/es-modules/Stock/StockToolsBindings.js +31 -24
- package/es-modules/Stock/StockToolsGui.js +1 -1
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +1 -1
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +14 -0
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +2 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +5 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/masters/modules/oldie.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +5 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +99 -98
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +51 -21
- package/highcharts-gantt.js +808 -800
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +781 -426
- package/highcharts-more.js +195 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +18 -4
- package/highcharts.d.ts +3224 -542
- package/highcharts.js +592 -584
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +3224 -542
- package/highcharts.src.js +732 -400
- package/highmaps.js +760 -728
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +3840 -2189
- package/highstock.js +793 -786
- package/highstock.js.map +1 -1
- package/highstock.src.js +783 -432
- package/indicators/acceleration-bands.js +12 -11
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +11 -2
- package/indicators/accumulation-distribution.js +5 -5
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +11 -2
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +11 -2
- package/indicators/apo.js +5 -5
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +11 -2
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +11 -2
- package/indicators/aroon.js +11 -11
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +11 -2
- package/indicators/atr.js +5 -5
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +11 -2
- package/indicators/bollinger-bands.js +12 -12
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +11 -2
- package/indicators/cci.js +5 -5
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +11 -2
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +11 -2
- package/indicators/cmf.js +6 -6
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +11 -2
- package/indicators/cmo.js +5 -5
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +11 -2
- package/indicators/dema.js +5 -5
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +11 -2
- package/indicators/disparity-index.js +6 -6
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +11 -2
- package/indicators/dmi.js +12 -12
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +11 -2
- package/indicators/dpo.js +5 -5
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +11 -2
- package/indicators/ema.js +2 -1
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +10 -1
- package/indicators/ichimoku-kinko-hyo.js +16 -16
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +11 -2
- package/indicators/indicators-all.js +195 -194
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +21 -5
- package/indicators/indicators.js +13 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +21 -5
- package/indicators/keltner-channels.js +12 -11
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +11 -2
- package/indicators/klinger.js +13 -13
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +11 -2
- package/indicators/macd.js +12 -11
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +11 -2
- package/indicators/mfi.js +6 -6
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +11 -2
- package/indicators/momentum.js +5 -5
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +11 -2
- package/indicators/natr.js +5 -4
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +11 -2
- package/indicators/obv.js +5 -5
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -2
- package/indicators/pivot-points.js +11 -11
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +11 -2
- package/indicators/ppo.js +5 -5
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +11 -2
- package/indicators/price-channel.js +11 -11
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +11 -2
- package/indicators/price-envelopes.js +8 -8
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +11 -2
- package/indicators/psar.js +7 -6
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +11 -2
- package/indicators/regressions.js +12 -12
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +11 -2
- package/indicators/roc.js +5 -5
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +11 -2
- package/indicators/rsi.js +6 -5
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +11 -2
- package/indicators/slow-stochastic.js +5 -5
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +11 -2
- package/indicators/stochastic.js +12 -12
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +11 -2
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +11 -2
- package/indicators/tema.js +6 -6
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +11 -2
- package/indicators/trendline.js +5 -5
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +11 -2
- package/indicators/trix.js +4 -4
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +11 -2
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +11 -2
- package/indicators/vwap.js +5 -5
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +11 -2
- package/indicators/williams-r.js +6 -5
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -2
- package/indicators/wma.js +5 -5
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +11 -2
- package/indicators/zigzag.js +6 -6
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +11 -2
- package/lib/jspdf.js +299 -184
- package/lib/jspdf.src.js +25266 -18067
- package/lib/svg2pdf.js +35 -31
- package/lib/svg2pdf.src.js +5721 -4179
- package/modules/accessibility.js +245 -240
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +510 -283
- package/modules/annotations-advanced.js +144 -144
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +37 -11
- package/modules/annotations.js +79 -79
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +32 -8
- package/modules/arc-diagram.js +25 -0
- package/modules/arc-diagram.js.map +1 -0
- package/modules/arc-diagram.src.js +778 -0
- package/modules/arrow-symbols.js +4 -3
- package/modules/arrow-symbols.js.map +1 -1
- package/modules/arrow-symbols.src.js +11 -2
- package/modules/boost-canvas.js +15 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +11 -2
- package/modules/boost.js +80 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +71 -43
- package/modules/broken-axis.js +13 -13
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +11 -2
- package/modules/bullet.js +9 -9
- package/modules/bullet.js.map +1 -1
- package/modules/bullet.src.js +11 -2
- package/modules/coloraxis.js +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +33 -7
- package/modules/current-date-indicator.js +5 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +11 -2
- package/modules/cylinder.js +11 -11
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +11 -2
- package/modules/data.js +34 -33
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +59 -32
- package/modules/datagrouping.js +21 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +19 -5
- package/modules/debugger.js +8 -7
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +15 -2
- package/modules/dependency-wheel.js +12 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +14 -5
- package/modules/dotplot.js +6 -6
- package/modules/dotplot.js.map +1 -1
- package/modules/dotplot.src.js +11 -2
- package/modules/drag-panes.js +10 -10
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +11 -2
- package/modules/draggable-points.js +35 -34
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +20 -9
- package/modules/drilldown.d.ts +19 -0
- package/modules/drilldown.js +36 -25
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +19 -0
- package/modules/drilldown.src.js +1091 -106
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +11 -2
- package/modules/export-data.js +21 -20
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +12 -4
- package/modules/exporting.js +39 -39
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +227 -92
- package/modules/full-screen.js +8 -7
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +135 -58
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +11 -2
- package/modules/funnel3d.js +21 -21
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +11 -2
- package/modules/gantt.js +216 -215
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +60 -28
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +27 -13
- package/modules/heatmap.js +40 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +46 -27
- package/modules/heikinashi.js +8 -8
- package/modules/heikinashi.js.map +1 -1
- package/modules/heikinashi.src.js +11 -2
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +11 -2
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +11 -2
- package/modules/item-series.js +12 -12
- package/modules/item-series.js.map +1 -1
- package/modules/item-series.src.js +11 -2
- package/modules/lollipop.js +7 -7
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +12 -3
- package/modules/map.d.ts +80 -43
- package/modules/map.js +169 -144
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +80 -43
- package/modules/map.src.js +8024 -6696
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +47 -23
- package/modules/networkgraph.d.ts +5 -0
- package/modules/networkgraph.js +49 -48
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +5 -0
- package/modules/networkgraph.src.js +77 -15
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +11 -2
- package/modules/offline-exporting.js +20 -18
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +126 -25
- package/modules/oldie-polyfills.js +7 -7
- package/modules/oldie-polyfills.js.map +1 -1
- package/modules/oldie-polyfills.src.js +11 -2
- package/modules/oldie.js +30 -30
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +12 -3
- package/modules/organization.js +16 -14
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +166 -32
- package/modules/overlapping-datalabels.js +3 -2
- package/modules/overlapping-datalabels.js.map +1 -1
- package/modules/overlapping-datalabels.src.js +11 -2
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +11 -2
- package/modules/pareto.js +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +11 -2
- package/modules/pathfinder.js +31 -31
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +11 -2
- package/modules/pattern-fill.js +14 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +11 -2
- package/modules/price-indicator.js +5 -5
- package/modules/price-indicator.js.map +1 -1
- package/modules/price-indicator.src.js +11 -2
- package/modules/pyramid3d.js +4 -4
- package/modules/pyramid3d.js.map +1 -1
- package/modules/pyramid3d.src.js +11 -2
- package/modules/sankey.d.ts +5 -0
- package/modules/sankey.js +32 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +5 -0
- package/modules/sankey.src.js +341 -157
- package/modules/series-label.js +18 -17
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +11 -2
- package/modules/solid-gauge.js +10 -10
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +11 -2
- package/modules/sonification.js +59 -59
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +11 -2
- package/modules/static-scale.js +5 -4
- package/modules/static-scale.js.map +1 -1
- package/modules/static-scale.src.js +11 -2
- package/modules/stock-tools.js +145 -145
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +64 -32
- package/modules/stock.js +204 -204
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +62 -34
- package/modules/streamgraph.js +5 -4
- package/modules/streamgraph.js.map +1 -1
- package/modules/streamgraph.src.js +11 -2
- package/modules/sunburst.d.ts +3 -0
- package/modules/sunburst.js +73 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.d.ts +3 -0
- package/modules/sunburst.src.js +1048 -97
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +11 -2
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +11 -2
- package/modules/treegrid.js +57 -56
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +38 -13
- package/modules/treemap.d.ts +3 -0
- package/modules/treemap.js +53 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.d.ts +3 -0
- package/modules/treemap.src.js +1037 -95
- package/modules/variable-pie.js +9 -9
- package/modules/variable-pie.js.map +1 -1
- package/modules/variable-pie.src.js +11 -2
- package/modules/variwide.js +12 -12
- package/modules/variwide.js.map +1 -1
- package/modules/variwide.src.js +11 -2
- package/modules/vector.js +8 -7
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +11 -2
- package/modules/venn.js +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +18 -6
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +11 -2
- package/modules/wordcloud.js +24 -23
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +22 -10
- package/modules/xrange.js +16 -16
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +11 -2
- package/package.json +1 -1
- package/themes/avocado.js +4 -3
- package/themes/avocado.js.map +1 -1
- package/themes/avocado.src.js +11 -2
- package/themes/brand-dark.js +9 -8
- package/themes/brand-dark.js.map +1 -1
- package/themes/brand-dark.src.js +11 -2
- package/themes/brand-light.js +8 -8
- package/themes/brand-light.js.map +1 -1
- package/themes/brand-light.src.js +11 -2
- package/themes/dark-blue.js +9 -8
- package/themes/dark-blue.js.map +1 -1
- package/themes/dark-blue.src.js +11 -2
- package/themes/dark-green.js +9 -8
- package/themes/dark-green.js.map +1 -1
- package/themes/dark-green.src.js +11 -2
- package/themes/dark-unica.js +8 -7
- package/themes/dark-unica.js.map +1 -1
- package/themes/dark-unica.src.js +11 -2
- package/themes/gray.js +9 -8
- package/themes/gray.js.map +1 -1
- package/themes/gray.src.js +11 -2
- package/themes/grid-light.js +5 -4
- package/themes/grid-light.js.map +1 -1
- package/themes/grid-light.src.js +11 -2
- package/themes/grid.js +5 -5
- package/themes/grid.js.map +1 -1
- package/themes/grid.src.js +11 -2
- package/themes/high-contrast-dark.js +7 -7
- package/themes/high-contrast-dark.js.map +1 -1
- package/themes/high-contrast-dark.src.js +21 -12
- package/themes/high-contrast-light.js +3 -3
- package/themes/high-contrast-light.js.map +1 -1
- package/themes/high-contrast-light.src.js +21 -12
- package/themes/sand-signika.js +5 -5
- package/themes/sand-signika.js.map +1 -1
- package/themes/sand-signika.src.js +11 -2
- package/themes/skies.js +5 -5
- package/themes/skies.js.map +1 -1
- package/themes/skies.src.js +11 -2
- package/themes/sunset.js +3 -3
- package/themes/sunset.js.map +1 -1
- package/themes/sunset.src.js +11 -2
- package/es-modules/Maps/ProjectionDefinition.js +0 -9
|
@@ -19,6 +19,8 @@ import Point from '../Core/Series/Point.js';
|
|
|
19
19
|
import SeriesRegistry from '../Core/Series/SeriesRegistry.js';
|
|
20
20
|
var seriesTypes = SeriesRegistry.seriesTypes;
|
|
21
21
|
import U from '../Core/Utilities.js';
|
|
22
|
+
import D from '../Core/DefaultOptions.js';
|
|
23
|
+
var getOptions = D.getOptions;
|
|
22
24
|
var addEvent = U.addEvent, defined = U.defined, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, merge = U.merge, objectEach = U.objectEach, pick = U.pick, splat = U.splat;
|
|
23
25
|
/**
|
|
24
26
|
* Callback function to modify the CSV before parsing it by the data module.
|
|
@@ -609,6 +611,10 @@ var Data = /** @class */ (function () {
|
|
|
609
611
|
this.firstRowAsNames = pick(options.firstRowAsNames, this.firstRowAsNames, true);
|
|
610
612
|
this.decimalRegex = (decimalPoint &&
|
|
611
613
|
new RegExp('^(-?[0-9]+)' + decimalPoint + '([0-9]+)$'));
|
|
614
|
+
// Always stop old polling when we have new options
|
|
615
|
+
if (this.liveDataTimeout !== void 0) {
|
|
616
|
+
clearTimeout(this.liveDataTimeout);
|
|
617
|
+
}
|
|
612
618
|
// This is a two-dimensional array holding the raw, trimmed string
|
|
613
619
|
// values with the same organisation as the columns array. It makes it
|
|
614
620
|
// possible for example to revert from interpreted timestamps to
|
|
@@ -617,11 +623,7 @@ var Data = /** @class */ (function () {
|
|
|
617
623
|
// No need to parse or interpret anything
|
|
618
624
|
if (this.columns.length) {
|
|
619
625
|
this.dataFound();
|
|
620
|
-
hasData =
|
|
621
|
-
}
|
|
622
|
-
if (this.hasURLOption(options)) {
|
|
623
|
-
clearTimeout(this.liveDataTimeout);
|
|
624
|
-
hasData = false;
|
|
626
|
+
hasData = !this.hasURLOption(options);
|
|
625
627
|
}
|
|
626
628
|
if (!hasData) {
|
|
627
629
|
// Fetch live data
|
|
@@ -1357,7 +1359,7 @@ var Data = /** @class */ (function () {
|
|
|
1357
1359
|
success: function (json) {
|
|
1358
1360
|
fn(json);
|
|
1359
1361
|
if (options.enablePolling) {
|
|
1360
|
-
setTimeout(function () {
|
|
1362
|
+
data.liveDataTimeout = setTimeout(function () {
|
|
1361
1363
|
fetchSheet(fn);
|
|
1362
1364
|
}, refreshRate);
|
|
1363
1365
|
}
|
|
@@ -1451,9 +1453,10 @@ var Data = /** @class */ (function () {
|
|
|
1451
1453
|
* Column index
|
|
1452
1454
|
*/
|
|
1453
1455
|
Data.prototype.parseColumn = function (column, col) {
|
|
1454
|
-
var rawColumns = this.rawColumns, columns = this.columns,
|
|
1456
|
+
var rawColumns = this.rawColumns, columns = this.columns, firstRowAsNames = this.firstRowAsNames, isXColumn = this.valueCount.xColumns.indexOf(col) !== -1, backup = [], chartOptions = this.chartOptions, columnTypes = this.options.columnTypes || [], columnType = columnTypes[col], forceCategory = isXColumn && ((chartOptions &&
|
|
1455
1457
|
chartOptions.xAxis &&
|
|
1456
|
-
splat(chartOptions.xAxis)[0].type === 'category') || columnType === 'string');
|
|
1458
|
+
splat(chartOptions.xAxis)[0].type === 'category') || columnType === 'string'), columnHasName = defined(column.name);
|
|
1459
|
+
var row = column.length, val, floatVal, trimVal, trimInsideVal, dateVal, diff, descending;
|
|
1457
1460
|
if (!rawColumns[col]) {
|
|
1458
1461
|
rawColumns[col] = [];
|
|
1459
1462
|
}
|
|
@@ -1468,7 +1471,8 @@ var Data = /** @class */ (function () {
|
|
|
1468
1471
|
}
|
|
1469
1472
|
// Disable number or date parsing by setting the X axis type to
|
|
1470
1473
|
// category
|
|
1471
|
-
if (forceCategory ||
|
|
1474
|
+
if (forceCategory ||
|
|
1475
|
+
(row === 0 && firstRowAsNames && !columnHasName)) {
|
|
1472
1476
|
column[row] = '' + trimVal;
|
|
1473
1477
|
}
|
|
1474
1478
|
else if (+trimInsideVal === floatVal) { // is numeric
|
|
@@ -1815,7 +1819,7 @@ var Data = /** @class */ (function () {
|
|
|
1815
1819
|
* @param {boolean} [redraw=true]
|
|
1816
1820
|
*/
|
|
1817
1821
|
Data.prototype.update = function (options, redraw) {
|
|
1818
|
-
var chart = this.chart;
|
|
1822
|
+
var chart = this.chart, chartOptions = chart.options;
|
|
1819
1823
|
if (options) {
|
|
1820
1824
|
// Set the complete handler
|
|
1821
1825
|
options.afterComplete = function (dataOptions) {
|
|
@@ -1834,8 +1838,13 @@ var Data = /** @class */ (function () {
|
|
|
1834
1838
|
}
|
|
1835
1839
|
};
|
|
1836
1840
|
// Apply it
|
|
1837
|
-
merge(true,
|
|
1838
|
-
|
|
1841
|
+
merge(true, chartOptions.data, options);
|
|
1842
|
+
// Reset columns if fetching spreadsheet, to force a re-fetch
|
|
1843
|
+
if (chartOptions.data && chartOptions.data.googleSpreadsheetKey &&
|
|
1844
|
+
!options.columns) {
|
|
1845
|
+
delete chartOptions.data.columns;
|
|
1846
|
+
}
|
|
1847
|
+
this.init(chartOptions.data);
|
|
1839
1848
|
}
|
|
1840
1849
|
};
|
|
1841
1850
|
return Data;
|
|
@@ -1855,7 +1864,9 @@ G.data = function (dataOptions, chartOptions, chart) {
|
|
|
1855
1864
|
addEvent(Chart, 'init', function (e) {
|
|
1856
1865
|
var chart = this, // eslint-disable-line no-invalid-this
|
|
1857
1866
|
userOptions = (e.args[0] || {}), callback = e.args[1];
|
|
1858
|
-
|
|
1867
|
+
var defaultDataOptions = getOptions().data;
|
|
1868
|
+
if ((defaultDataOptions || userOptions && userOptions.data) &&
|
|
1869
|
+
!chart.hasDataDef) {
|
|
1859
1870
|
chart.hasDataDef = true;
|
|
1860
1871
|
/**
|
|
1861
1872
|
* The data parser for this chart.
|
|
@@ -1863,7 +1874,8 @@ addEvent(Chart, 'init', function (e) {
|
|
|
1863
1874
|
* @name Highcharts.Chart#data
|
|
1864
1875
|
* @type {Highcharts.Data|undefined}
|
|
1865
1876
|
*/
|
|
1866
|
-
|
|
1877
|
+
var dataOptions = merge(defaultDataOptions, userOptions.data);
|
|
1878
|
+
chart.data = new G.Data(extend(dataOptions, {
|
|
1867
1879
|
afterComplete: function (dataOptions) {
|
|
1868
1880
|
var i, series;
|
|
1869
1881
|
// Merge series configs
|
|
@@ -652,9 +652,11 @@ seriesProto.generatePoints = function () {
|
|
|
652
652
|
*/
|
|
653
653
|
Axis.prototype.applyGrouping = function (e) {
|
|
654
654
|
var axis = this, series = axis.series;
|
|
655
|
+
// Reset the groupPixelWidth for all series, #17141.
|
|
655
656
|
series.forEach(function (series) {
|
|
656
|
-
// Reset the groupPixelWidth, then calculate if needed.
|
|
657
657
|
series.groupPixelWidth = void 0; // #2110
|
|
658
|
+
});
|
|
659
|
+
series.forEach(function (series) {
|
|
658
660
|
series.groupPixelWidth = (axis.getGroupPixelWidth &&
|
|
659
661
|
axis.getGroupPixelWidth());
|
|
660
662
|
if (series.groupPixelWidth) {
|
|
@@ -735,8 +737,11 @@ Axis.prototype.setDataGrouping = function (dataGrouping, redraw) {
|
|
|
735
737
|
}
|
|
736
738
|
else {
|
|
737
739
|
this.chart.options.series.forEach(function (seriesOptions) {
|
|
738
|
-
|
|
739
|
-
|
|
740
|
+
// Merging dataGrouping options with already defined options #16759
|
|
741
|
+
seriesOptions.dataGrouping = typeof dataGrouping === 'boolean' ?
|
|
742
|
+
dataGrouping :
|
|
743
|
+
merge(dataGrouping, seriesOptions.dataGrouping);
|
|
744
|
+
});
|
|
740
745
|
}
|
|
741
746
|
// Clear ordinal slope, so we won't accidentaly use the old one (#7827)
|
|
742
747
|
if (axis.ordinal) {
|
|
@@ -101,6 +101,10 @@ var errorMessages = {
|
|
|
101
101
|
"32": {
|
|
102
102
|
"title": "Deprecated function or property",
|
|
103
103
|
"text": "<h1>Deprecated function or property</h1><p>This error occurs when using a deprecated function or property. Consult the <a href=\"https://api.highcharts.com/\">API documentation</a> for alternatives, if no replacement is mentioned by the error itself.</p>"
|
|
104
|
+
},
|
|
105
|
+
"33": {
|
|
106
|
+
"title": "Invalid attribute or tagName",
|
|
107
|
+
"text": "<h1>Invalid attribute or tagName</h1><p>This error occurs if HTML in the chart configuration contains unknown tag names or attributes. Unknown tag names or attributes are those not present in the _allow lists_.</p><p>To fix the error, consider</p><ul><li>Is your tag name or attribute spelled correctly? For example, <code>lineargradient</code></li></ul><p> would be blocked as it is a misspelling for <code>linearGradient</code>.</p><ul><li>Is it allowed in Highcharts? For example, <code>onclick</code> attributes are blocked as</li></ul><p> they pose a real security threat.</p><p>This error occurs because attributes and tag names are sanitized of potentially harmful content from the chart configuration before being added to the DOM. Consult the <a href=\"https://www.highcharts.com/docs/chart-concepts/security\">security documentation</a> for more information.</p>"
|
|
104
108
|
}
|
|
105
109
|
};
|
|
106
110
|
export default errorMessages;
|
|
@@ -811,11 +811,11 @@ var defaultGuideBoxOptions = {
|
|
|
811
811
|
}
|
|
812
812
|
};
|
|
813
813
|
/**
|
|
814
|
-
* Options for the drag handles.
|
|
814
|
+
* Options for the drag handles available in column series.
|
|
815
815
|
*
|
|
816
816
|
* @declare Highcharts.DragDropHandleOptionsObject
|
|
817
817
|
* @since 6.2.0
|
|
818
|
-
* @optionparent plotOptions.
|
|
818
|
+
* @optionparent plotOptions.column.dragDrop.dragHandle
|
|
819
819
|
*
|
|
820
820
|
* @private
|
|
821
821
|
*/
|
|
@@ -827,7 +827,7 @@ var defaultDragHandleOptions = {
|
|
|
827
827
|
*
|
|
828
828
|
* @type {Function}
|
|
829
829
|
* @since 6.2.0
|
|
830
|
-
* @apioption plotOptions.
|
|
830
|
+
* @apioption plotOptions.column.dragDrop.dragHandle.pathFormatter
|
|
831
831
|
*/
|
|
832
832
|
// pathFormatter: null,
|
|
833
833
|
/**
|
|
@@ -837,7 +837,7 @@ var defaultDragHandleOptions = {
|
|
|
837
837
|
*
|
|
838
838
|
* @type {string}
|
|
839
839
|
* @since 6.2.0
|
|
840
|
-
* @apioption plotOptions.
|
|
840
|
+
* @apioption plotOptions.column.dragDrop.dragHandle.cursor
|
|
841
841
|
*/
|
|
842
842
|
// cursor: null,
|
|
843
843
|
/**
|
|
@@ -1757,13 +1757,15 @@ Point.prototype.showDragHandles = function () {
|
|
|
1757
1757
|
// Find position and path of handle
|
|
1758
1758
|
pos = positioner(point);
|
|
1759
1759
|
handleAttrs.d = path = pathFormatter(point);
|
|
1760
|
-
|
|
1760
|
+
// Correct left edge value depending on the xAxis' type, #16596
|
|
1761
|
+
var minEdge = point.series.xAxis.categories ? -0.5 : 0;
|
|
1762
|
+
if (!path || pos.x < minEdge || pos.y < 0) {
|
|
1761
1763
|
return;
|
|
1762
1764
|
}
|
|
1763
1765
|
// If cursor is not set explicitly, use axis direction
|
|
1764
1766
|
handleAttrs.cursor = handleOptions.cursor ||
|
|
1765
|
-
(val.axis === 'x') !== !!chart.inverted ?
|
|
1766
|
-
|
|
1767
|
+
((val.axis === 'x') !== !!chart.inverted ?
|
|
1768
|
+
'ew-resize' : 'ns-resize');
|
|
1767
1769
|
// Create and add the handle element if it doesn't exist
|
|
1768
1770
|
handle = chart.dragHandles[val.optionName];
|
|
1769
1771
|
if (!handle) {
|
|
@@ -29,6 +29,7 @@ var seriesTypes = SeriesRegistry.seriesTypes;
|
|
|
29
29
|
import SVGRenderer from '../Core/Renderer/SVG/SVGRenderer.js';
|
|
30
30
|
import Tick from '../Core/Axis/Tick.js';
|
|
31
31
|
import U from '../Core/Utilities.js';
|
|
32
|
+
import Breadcrumbs from './Breadcrumbs.js';
|
|
32
33
|
var addEvent = U.addEvent, removeEvent = U.removeEvent, extend = U.extend, fireEvent = U.fireEvent, merge = U.merge, objectEach = U.objectEach, pick = U.pick, syncTimeout = U.syncTimeout;
|
|
33
34
|
/**
|
|
34
35
|
* Gets fired when a drilldown point is clicked, before the new series is added.
|
|
@@ -151,18 +152,20 @@ extend(defaultOptions.lang,
|
|
|
151
152
|
* @optionparent lang
|
|
152
153
|
*/
|
|
153
154
|
{
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
155
|
+
/**
|
|
156
|
+
* The text for the button that appears when drilling down, linking back
|
|
157
|
+
* to the parent series. The parent series' name is inserted for
|
|
158
|
+
* `{series.name}`.
|
|
159
|
+
*
|
|
160
|
+
* @since 3.0.8
|
|
161
|
+
* @product highcharts highmaps
|
|
162
|
+
* @requires modules/drilldown
|
|
163
|
+
* @apioption lang.drillUpText
|
|
164
|
+
*
|
|
165
|
+
* @deprecated
|
|
166
|
+
*
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
166
169
|
});
|
|
167
170
|
/**
|
|
168
171
|
* Options for drill down, the concept of inspecting increasingly high
|
|
@@ -194,6 +197,15 @@ defaultOptions.drilldown = {
|
|
|
194
197
|
* @product highcharts
|
|
195
198
|
* @apioption drilldown.allowPointDrilldown
|
|
196
199
|
*/
|
|
200
|
+
/**
|
|
201
|
+
* Options for the breadcrumbs, the navigation at the top leading the way
|
|
202
|
+
* up through the drilldown levels.
|
|
203
|
+
*
|
|
204
|
+
* @since 10.0.0
|
|
205
|
+
* @product highcharts
|
|
206
|
+
* @extends navigation.breadcrumbs
|
|
207
|
+
* @optionparent drilldown.breadcrumbs
|
|
208
|
+
*/
|
|
197
209
|
/**
|
|
198
210
|
* An array of series configurations for the drill down. Each series
|
|
199
211
|
* configuration uses the same syntax as the [series](#series) option set.
|
|
@@ -280,17 +292,23 @@ defaultOptions.drilldown = {
|
|
|
280
292
|
duration: 500
|
|
281
293
|
},
|
|
282
294
|
/**
|
|
295
|
+
*
|
|
283
296
|
* Options for the drill up button that appears when drilling down on a
|
|
284
297
|
* series. The text for the button is defined in
|
|
285
298
|
* [lang.drillUpText](#lang.drillUpText).
|
|
286
299
|
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
300
|
+
* This option is deprecated since 9.3.2, use `drilldown.breadcrumbs`
|
|
301
|
+
* instead.
|
|
302
|
+
*
|
|
303
|
+
* @sample highcharts/breadcrumbs/single-button
|
|
304
|
+
* Breadcrumbs set up like a legacy button
|
|
305
|
+
* @sample {highcharts} highcharts/drilldown/drillupbutton/ Drill up button
|
|
306
|
+
* @sample {highmaps} highcharts/drilldown/drillupbutton/ Drill up button
|
|
291
307
|
*
|
|
292
308
|
* @since 3.0.8
|
|
293
309
|
* @product highcharts highmaps
|
|
310
|
+
*
|
|
311
|
+
* @deprecated
|
|
294
312
|
*/
|
|
295
313
|
drillUpButton: {
|
|
296
314
|
/**
|
|
@@ -576,44 +594,50 @@ Chart.prototype.applyDrilldown = function () {
|
|
|
576
594
|
delete this.resetZoomButton;
|
|
577
595
|
}
|
|
578
596
|
this.pointer.reset();
|
|
579
|
-
this.redraw();
|
|
580
|
-
this.showDrillUpButton();
|
|
581
597
|
fireEvent(this, 'afterDrilldown');
|
|
598
|
+
this.redraw();
|
|
599
|
+
fireEvent(this, 'afterApplyDrilldown');
|
|
582
600
|
};
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
601
|
+
/**
|
|
602
|
+
* This method creates an array of arrays containing a level number
|
|
603
|
+
* with the corresponding series/point.
|
|
604
|
+
*
|
|
605
|
+
* @requires modules/breadcrumbs
|
|
606
|
+
*
|
|
607
|
+
* @private
|
|
608
|
+
* @param {Highcharts.Chart} chart
|
|
609
|
+
* Highcharts Chart object.
|
|
610
|
+
* @return {Array<Breadcrumbs.BreadcrumbOptions>}
|
|
611
|
+
* List for Highcharts Breadcrumbs.
|
|
612
|
+
*/
|
|
613
|
+
var createBreadcrumbsList = function (chart) {
|
|
614
|
+
var list = [], drilldownLevels = chart.drilldownLevels;
|
|
615
|
+
// The list is based on drilldown levels from the chart object
|
|
616
|
+
if (drilldownLevels && drilldownLevels.length) {
|
|
617
|
+
// Add the initial series as the first element.
|
|
618
|
+
if (!list[0]) {
|
|
619
|
+
list.push({
|
|
620
|
+
level: 0,
|
|
621
|
+
levelOptions: drilldownLevels[0].seriesOptions
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
drilldownLevels.forEach(function (level, i) {
|
|
625
|
+
var lastBreadcrumb = list[list.length - 1];
|
|
626
|
+
// If level is already added to breadcrumbs list,
|
|
627
|
+
// don't add it again- drilling categories
|
|
628
|
+
// + 1 because of the wrong levels numeration
|
|
629
|
+
// in drilldownLevels array.
|
|
630
|
+
if (level.levelNumber + 1 > lastBreadcrumb.level) {
|
|
631
|
+
list.push({
|
|
632
|
+
level: level.levelNumber + 1,
|
|
633
|
+
levelOptions: merge({
|
|
634
|
+
name: level.lowerSeries.name
|
|
635
|
+
}, level.pointOptions)
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
});
|
|
616
639
|
}
|
|
640
|
+
return list;
|
|
617
641
|
};
|
|
618
642
|
/**
|
|
619
643
|
* When the chart is drilled down to a child series, calling `chart.drillUp()`
|
|
@@ -630,6 +654,7 @@ Chart.prototype.drillUp = function () {
|
|
|
630
654
|
if (!this.drilldownLevels || this.drilldownLevels.length === 0) {
|
|
631
655
|
return;
|
|
632
656
|
}
|
|
657
|
+
fireEvent(this, 'beforeDrillUp');
|
|
633
658
|
var chart = this, drilldownLevels = chart.drilldownLevels, levelNumber = drilldownLevels[drilldownLevels.length - 1].levelNumber, i = drilldownLevels.length, chartSeries = chart.series, seriesI, level, oldSeries, newSeries, oldExtremes, addSeries = function (seriesOptions) {
|
|
634
659
|
var addedSeries;
|
|
635
660
|
chartSeries.forEach(function (series) {
|
|
@@ -646,6 +671,7 @@ Chart.prototype.drillUp = function () {
|
|
|
646
671
|
newSeries = addedSeries;
|
|
647
672
|
}
|
|
648
673
|
};
|
|
674
|
+
var drilldownLevelsNumber = chart.drilldownLevels.length;
|
|
649
675
|
while (i--) {
|
|
650
676
|
level = drilldownLevels[i];
|
|
651
677
|
if (level.levelNumber === levelNumber) {
|
|
@@ -665,12 +691,19 @@ Chart.prototype.drillUp = function () {
|
|
|
665
691
|
}
|
|
666
692
|
}
|
|
667
693
|
oldSeries.xData = []; // Overcome problems with minRange (#2898)
|
|
694
|
+
// Reset the names to start new series from the beginning.
|
|
695
|
+
// Do it once to preserve names when multiple
|
|
696
|
+
// series are added for the same axis, #16135.
|
|
697
|
+
if (oldSeries.xAxis &&
|
|
698
|
+
oldSeries.xAxis.names &&
|
|
699
|
+
(drilldownLevelsNumber === 0 || i === drilldownLevelsNumber)) {
|
|
700
|
+
oldSeries.xAxis.names.length = 0;
|
|
701
|
+
}
|
|
668
702
|
level.levelSeriesOptions.forEach(addSeries);
|
|
669
703
|
fireEvent(chart, 'drillup', {
|
|
670
704
|
seriesOptions: level.seriesPurgedOptions ||
|
|
671
705
|
level.seriesOptions
|
|
672
706
|
});
|
|
673
|
-
this.resetZoomButton && this.resetZoomButton.destroy(); // #8095
|
|
674
707
|
if (newSeries.type === oldSeries.type) {
|
|
675
708
|
newSeries.drilldownLevel = level;
|
|
676
709
|
newSeries.options.animation =
|
|
@@ -691,30 +724,48 @@ Chart.prototype.drillUp = function () {
|
|
|
691
724
|
// it to the chart and show it.
|
|
692
725
|
if (level.resetZoomButton) {
|
|
693
726
|
chart.resetZoomButton = level.resetZoomButton;
|
|
694
|
-
chart.resetZoomButton.show();
|
|
695
727
|
}
|
|
696
728
|
}
|
|
697
729
|
}
|
|
730
|
+
fireEvent(chart, 'afterDrillUp');
|
|
698
731
|
this.redraw();
|
|
699
|
-
if (this.
|
|
700
|
-
this.
|
|
701
|
-
}
|
|
702
|
-
else {
|
|
703
|
-
this.drillUpButton.attr({
|
|
704
|
-
text: this.getDrilldownBackText()
|
|
705
|
-
})
|
|
706
|
-
.align();
|
|
707
|
-
}
|
|
708
|
-
this.ddDupes.length = []; // #3315
|
|
732
|
+
if (this.ddDupes) {
|
|
733
|
+
this.ddDupes.length = 0; // #3315
|
|
734
|
+
} // #8324
|
|
709
735
|
// Fire a once-off event after all series have been drilled up (#5158)
|
|
710
736
|
fireEvent(chart, 'drillupall');
|
|
711
737
|
};
|
|
738
|
+
/**
|
|
739
|
+
* A function to fade in a group. First, the element is being hidden,
|
|
740
|
+
* then, using `opactiy`, is faded in. Used for example by `dataLabelsGroup`
|
|
741
|
+
* where simple SVGElement.fadeIn() is not enough, because of other features
|
|
742
|
+
* (e.g. InactiveState) using `opacity` to fadeIn/fadeOut.
|
|
743
|
+
*
|
|
744
|
+
* @requires module:modules/drilldown
|
|
745
|
+
*
|
|
746
|
+
* @param {undefined|SVGElement} [group]
|
|
747
|
+
* The SVG element to be faded in.
|
|
748
|
+
*/
|
|
749
|
+
function fadeInGroup(group) {
|
|
750
|
+
var animationOptions = animObject(this.chart.options.drilldown.animation);
|
|
751
|
+
if (group) {
|
|
752
|
+
group.hide();
|
|
753
|
+
syncTimeout(function () {
|
|
754
|
+
// Make sure neither the group, or the chart, were destroyed
|
|
755
|
+
if (group && group.added) {
|
|
756
|
+
group.fadeIn();
|
|
757
|
+
}
|
|
758
|
+
}, Math.max(animationOptions.duration - 50, 0));
|
|
759
|
+
}
|
|
760
|
+
}
|
|
712
761
|
/* eslint-disable no-invalid-this */
|
|
713
762
|
// Add update function to be called internally from Chart.update
|
|
714
763
|
// (#7600, #12855)
|
|
715
764
|
addEvent(Chart, 'afterInit', function () {
|
|
716
765
|
var chart = this;
|
|
717
766
|
chart.drilldown = {
|
|
767
|
+
chart: chart,
|
|
768
|
+
fadeInGroup: fadeInGroup,
|
|
718
769
|
update: function (options, redraw) {
|
|
719
770
|
merge(true, chart.options.drilldown, options);
|
|
720
771
|
if (pick(redraw, true)) {
|
|
@@ -723,22 +774,6 @@ addEvent(Chart, 'afterInit', function () {
|
|
|
723
774
|
}
|
|
724
775
|
};
|
|
725
776
|
});
|
|
726
|
-
// Shift the drillUpButton to make the space for resetZoomButton, #8095.
|
|
727
|
-
addEvent(Chart, 'afterShowResetZoom', function () {
|
|
728
|
-
var chart = this, bbox = chart.resetZoomButton && chart.resetZoomButton.getBBox(), buttonOptions = (chart.options.drilldown &&
|
|
729
|
-
chart.options.drilldown.drillUpButton);
|
|
730
|
-
if (this.drillUpButton &&
|
|
731
|
-
bbox &&
|
|
732
|
-
buttonOptions &&
|
|
733
|
-
buttonOptions.position &&
|
|
734
|
-
buttonOptions.position.x) {
|
|
735
|
-
this.drillUpButton.align({
|
|
736
|
-
x: buttonOptions.position.x - bbox.width - 10,
|
|
737
|
-
y: buttonOptions.position.y,
|
|
738
|
-
align: buttonOptions.position.align
|
|
739
|
-
}, false, buttonOptions.relativeTo || 'plotBox');
|
|
740
|
-
}
|
|
741
|
-
});
|
|
742
777
|
addEvent(Chart, 'render', function () {
|
|
743
778
|
(this.xAxis || []).forEach(function (axis) {
|
|
744
779
|
axis.ddPoints = {};
|
|
@@ -769,6 +804,31 @@ addEvent(Chart, 'render', function () {
|
|
|
769
804
|
objectEach(axis.ticks, Tick.prototype.drillable);
|
|
770
805
|
});
|
|
771
806
|
});
|
|
807
|
+
addEvent(H.Breadcrumbs, 'up', function (e) {
|
|
808
|
+
var chart = this.chart, drillUpsNumber = this.getLevel() - e.newLevel;
|
|
809
|
+
for (var i = 0; i < drillUpsNumber; i++) {
|
|
810
|
+
chart.drillUp();
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
addEvent(Chart, 'afterDrilldown', function () {
|
|
814
|
+
var chart = this, drilldownOptions = chart.options.drilldown, breadcrumbsOptions = drilldownOptions && drilldownOptions.breadcrumbs;
|
|
815
|
+
if (!chart.breadcrumbs) {
|
|
816
|
+
chart.breadcrumbs = new Breadcrumbs(chart, breadcrumbsOptions);
|
|
817
|
+
}
|
|
818
|
+
chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
|
|
819
|
+
});
|
|
820
|
+
addEvent(Chart, 'afterDrillUp', function () {
|
|
821
|
+
var chart = this;
|
|
822
|
+
chart.breadcrumbs &&
|
|
823
|
+
chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
|
|
824
|
+
});
|
|
825
|
+
addEvent(Chart, 'update', function (e) {
|
|
826
|
+
var breadcrumbs = this.breadcrumbs, breadcrumbOptions = e.options.drilldown &&
|
|
827
|
+
e.options.drilldown.breadcrumbs;
|
|
828
|
+
if (breadcrumbs && breadcrumbOptions) {
|
|
829
|
+
breadcrumbs.update(e.options.drilldown.breadcrumbs);
|
|
830
|
+
}
|
|
831
|
+
});
|
|
772
832
|
/**
|
|
773
833
|
* When drilling up, keep the upper series invisible until the lower series has
|
|
774
834
|
* moved into place.
|
|
@@ -854,10 +914,10 @@ ColumnSeries.prototype.animateDrilldown = function (init) {
|
|
|
854
914
|
.attr(animateFrom)
|
|
855
915
|
.animate(extend(point.shapeArgs, { fill: point.color || series.color }), animationOptions);
|
|
856
916
|
}
|
|
857
|
-
if (point.dataLabel) {
|
|
858
|
-
point.dataLabel.fadeIn(animationOptions);
|
|
859
|
-
}
|
|
860
917
|
});
|
|
918
|
+
if (chart.drilldown) {
|
|
919
|
+
chart.drilldown.fadeInGroup(this.dataLabelsGroup);
|
|
920
|
+
}
|
|
861
921
|
// Reset to prototype
|
|
862
922
|
delete this.animate;
|
|
863
923
|
}
|
|
@@ -935,6 +995,9 @@ if (PieSeries) {
|
|
|
935
995
|
}))[animationOptions ? 'animate' : 'attr'](animateTo, animationOptions);
|
|
936
996
|
}
|
|
937
997
|
});
|
|
998
|
+
if (this.chart.drilldown) {
|
|
999
|
+
this.chart.drilldown.fadeInGroup(this.dataLabelsGroup);
|
|
1000
|
+
}
|
|
938
1001
|
// Reset to prototype
|
|
939
1002
|
delete this.animate;
|
|
940
1003
|
}
|
|
@@ -1150,21 +1213,13 @@ addEvent(Point, 'afterSetState', function () {
|
|
|
1150
1213
|
applyCursorCSS(this.series.halo, 'auto', false, styledMode);
|
|
1151
1214
|
}
|
|
1152
1215
|
});
|
|
1153
|
-
// After zooming out, shift the drillUpButton to the previous position, #8095.
|
|
1154
|
-
addEvent(Chart, 'selection', function (event) {
|
|
1155
|
-
if (event.resetSelection === true && this.drillUpButton) {
|
|
1156
|
-
var buttonOptions = (this.options.drilldown && this.options.drilldown.drillUpButton);
|
|
1157
|
-
if (buttonOptions && buttonOptions.position) {
|
|
1158
|
-
this.drillUpButton.align({
|
|
1159
|
-
x: buttonOptions.position.x,
|
|
1160
|
-
y: buttonOptions.position.y,
|
|
1161
|
-
align: buttonOptions.position.align
|
|
1162
|
-
}, false, buttonOptions.relativeTo || 'plotBox');
|
|
1163
|
-
}
|
|
1164
|
-
}
|
|
1165
|
-
});
|
|
1166
1216
|
addEvent(Chart, 'drillup', function () {
|
|
1167
1217
|
if (this.resetZoomButton) {
|
|
1168
1218
|
this.resetZoomButton = this.resetZoomButton.destroy();
|
|
1169
1219
|
}
|
|
1170
1220
|
});
|
|
1221
|
+
addEvent(Chart, 'drillupall', function () {
|
|
1222
|
+
if (this.resetZoomButton) {
|
|
1223
|
+
this.showResetZoom();
|
|
1224
|
+
}
|
|
1225
|
+
});
|
|
@@ -295,8 +295,7 @@ addEvent(Chart, 'render', function () {
|
|
|
295
295
|
if (this.options &&
|
|
296
296
|
this.options.exporting &&
|
|
297
297
|
this.options.exporting.showTable &&
|
|
298
|
-
!this.options.chart.forExport
|
|
299
|
-
!this.dataTableDiv) {
|
|
298
|
+
!this.options.chart.forExport) {
|
|
300
299
|
this.viewData();
|
|
301
300
|
}
|
|
302
301
|
});
|