highcharts 10.2.0 → 10.2.1
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 +10 -20
- package/css/themes/dark-unica.css +10 -20
- package/css/themes/grid-light.css +10 -20
- package/css/themes/sand-signika.css +10 -20
- package/es-modules/Accessibility/Accessibility.js +6 -0
- package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
- package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
- package/es-modules/Core/Axis/Axis.js +3 -0
- package/es-modules/Core/Axis/Axis3D.js +1 -1
- package/es-modules/Core/Axis/AxisDefaults.js +1 -1
- package/es-modules/Core/Axis/BrokenAxis.js +1 -1
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
- package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
- package/es-modules/Core/Axis/RadialAxis.js +1 -1
- package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
- package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
- package/es-modules/Core/Axis/ZAxis.js +73 -70
- package/es-modules/Core/Chart/Chart.js +16 -2
- package/es-modules/Core/Chart/Chart3D.js +2 -2
- package/es-modules/Core/Chart/ChartDefaults.js +151 -2
- package/es-modules/Core/Chart/StockChart.js +5 -3
- package/es-modules/Core/DefaultOptions.js +2 -1
- package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
- package/es-modules/Core/Globals.js +2 -1
- package/es-modules/{Extensions → Core}/Math3D.js +48 -43
- package/es-modules/Core/Navigator.js +24 -7
- package/es-modules/Core/Pointer.js +7 -9
- package/es-modules/Core/Renderer/HTML/AST.js +4 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
- package/es-modules/Core/Scrollbar.js +3 -1
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/Point.js +2 -2
- package/es-modules/Core/Series/Series.js +36 -31
- package/es-modules/Core/Series/Series3D.js +1 -1
- package/es-modules/Core/Series/SeriesDefaults.js +8 -3
- package/es-modules/Core/Series/SeriesRegistry.js +6 -29
- package/es-modules/Core/Tooltip.js +14 -3
- package/es-modules/Core/Utilities.js +1 -3
- package/es-modules/Data/DataConverter.js +5 -0
- package/es-modules/Data/DataPromise.js +1 -1
- package/es-modules/Data/DataSeriesComposition.js +288 -0
- package/es-modules/Data/DataSeriesConverter.js +1 -1
- package/es-modules/Data/DataTable.js +2 -2
- package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
- package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
- package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
- package/es-modules/Data/Modifiers/SortModifier.js +1 -1
- package/es-modules/Data/Parsers/DataParser.js +1 -1
- package/es-modules/Data/Stores/DataStore.js +1 -1
- package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
- package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
- package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
- package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
- package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
- package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
- package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
- package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
- package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
- package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
- package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
- package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
- package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
- package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
- package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
- package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
- package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
- package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
- package/es-modules/Extensions/Boost/Boost.js +320 -15
- package/es-modules/Extensions/Boost/BoostChart.js +245 -0
- package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
- package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
- package/es-modules/Extensions/Boost/Boostables.js +13 -2
- package/es-modules/Extensions/Boost/NamedColors.js +15 -6
- package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
- package/es-modules/Extensions/Boost/WGLShader.js +370 -376
- package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
- package/es-modules/Extensions/BoostCanvas.js +62 -46
- package/es-modules/Extensions/Breadcrumbs.js +4 -0
- package/es-modules/Extensions/DataGrouping.js +65 -27
- package/es-modules/Extensions/Debugger/Debugger.js +60 -22
- package/es-modules/Extensions/DraggablePoints.js +4 -3
- package/es-modules/Extensions/Drilldown.js +7 -8
- package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
- package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
- package/es-modules/Extensions/Exporting/Exporting.js +5 -1
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
- package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
- package/es-modules/Extensions/MarkerClusters.js +2 -0
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +1 -1
- package/es-modules/Extensions/ParallelCoordinates.js +11 -7
- package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
- package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
- package/es-modules/Maps/MapPointer.js +1 -1
- package/es-modules/Maps/MapView.js +2 -1
- package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
- package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
- package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
- package/es-modules/Series/Column/ColumnSeries.js +2 -0
- package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
- package/es-modules/Series/DragNodesComposition.js +166 -0
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
- package/es-modules/Series/Gantt/GanttSeries.js +1 -1
- package/es-modules/Series/GraphLayoutComposition.js +130 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
- package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
- package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
- package/es-modules/Series/Map/MapSeries.js +6 -1
- package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
- package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
- package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
- package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
- package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
- package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
- package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
- package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
- package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
- package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
- package/es-modules/Series/Pie/PieSeries.js +3 -1
- package/es-modules/Series/PolarComposition.js +12 -12
- package/es-modules/Series/Sankey/SankeySeries.js +13 -1
- package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
- package/es-modules/Series/SeriesOnPointComposition.js +5 -1
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
- package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
- package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
- package/es-modules/Series/Vector/VectorSeries.js +2 -4
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
- package/es-modules/Series/XRange/XRangePoint.js +54 -45
- package/es-modules/Series/XRange/XRangeSeries.js +121 -273
- package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
- package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
- package/es-modules/Stock/StockToolbar.js +568 -0
- package/es-modules/Stock/StockTools.js +256 -0
- package/es-modules/Stock/StockToolsBindings.js +114 -629
- package/es-modules/Stock/StockToolsDefaults.js +1190 -0
- package/es-modules/Stock/StockToolsGui.js +150 -1771
- package/es-modules/Stock/StockToolsUtilities.js +423 -0
- package/es-modules/masters/highcharts-3d.src.js +5 -4
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +4 -3
- package/es-modules/masters/highcharts.src.js +5 -2
- 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 +5 -7
- 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 +5 -5
- 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 +6 -4
- package/es-modules/masters/modules/annotations.src.js +6 -4
- package/es-modules/masters/modules/arc-diagram.src.js +1 -1
- 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 +6 -2
- 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 +5 -3
- 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 +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +5 -2
- package/es-modules/masters/modules/exporting.src.js +1 -2
- package/es-modules/masters/modules/full-screen.src.js +6 -2
- 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 +3 -2
- 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 +2 -2
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +5 -2
- 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/series-on-point.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 +10 -3
- 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 +2 -2
- package/es-modules/masters/modules/treemap.src.js +1 -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 +5 -2
- 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 +98 -99
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +232 -211
- package/highcharts-gantt.js +808 -809
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +2308 -2136
- package/highcharts-more.d.ts +5 -8
- package/highcharts-more.js +201 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +5 -8
- package/highcharts-more.src.js +3671 -3275
- package/highcharts.d.ts +1400 -885
- package/highcharts.js +593 -595
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +1400 -885
- package/highcharts.src.js +847 -716
- package/highmaps.js +762 -763
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +1288 -1129
- package/highstock.js +796 -798
- package/highstock.js.map +1 -1
- package/highstock.src.js +953 -762
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +11 -3
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +6 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +23 -14
- package/indicators/apo.js +1 -1
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +6 -1
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +7 -3
- package/indicators/aroon.js +1 -1
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +16 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +17 -4
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +6 -2
- package/indicators/cci.js +1 -1
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +17 -4
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +13 -5
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +21 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +16 -2
- package/indicators/dema.js +1 -1
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +26 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +6 -1
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +20 -9
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +35 -16
- package/indicators/indicators-all.js +199 -199
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +754 -162
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +12 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +26 -1
- package/indicators/klinger.js +12 -12
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +13 -4
- package/indicators/macd.js +1 -1
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +22 -13
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +24 -11
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +31 -3
- package/indicators/natr.js +1 -1
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +17 -3
- package/indicators/obv.js +1 -1
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +32 -19
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +15 -5
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +14 -9
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +26 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +17 -4
- package/indicators/regressions.js +12 -11
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +50 -15
- package/indicators/roc.js +1 -1
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +16 -3
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +21 -3
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +26 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +16 -1
- package/indicators/supertrend.js +7 -7
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +18 -6
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +15 -5
- package/indicators/trix.js +1 -1
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +26 -1
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +38 -10
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +12 -2
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +31 -3
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +12 -2
- package/modules/accessibility.js +183 -182
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +559 -554
- package/modules/annotations-advanced.d.ts +1 -1
- package/modules/annotations-advanced.js +193 -192
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +1 -1
- package/modules/annotations-advanced.src.js +9263 -8654
- package/modules/annotations.d.ts +1 -1
- package/modules/annotations.js +128 -126
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.d.ts +1 -1
- package/modules/annotations.src.js +6699 -6063
- package/modules/arc-diagram.js +1 -1
- package/modules/arc-diagram.src.js +1 -1
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.d.ts +19 -0
- package/modules/boost-canvas.js +81 -16
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.d.ts +19 -0
- package/modules/boost-canvas.src.js +3334 -50
- package/modules/boost.d.ts +8 -26
- package/modules/boost.js +84 -77
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.d.ts +8 -26
- package/modules/boost.src.js +2423 -1888
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +2 -2
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +1 -1
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +5 -1
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +9 -9
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +2 -2
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.d.ts +22 -0
- package/modules/datagrouping.js +4 -4
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.d.ts +22 -0
- package/modules/datagrouping.src.js +66 -28
- package/modules/debugger.js +6 -5
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +81 -40
- package/modules/dependency-wheel.js +12 -12
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +41 -14
- 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 +5 -5
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +5 -4
- package/modules/drilldown.d.ts +0 -10
- package/modules/drilldown.js +29 -29
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +0 -10
- package/modules/drilldown.src.js +12 -9
- package/modules/dumbbell.js +1 -1
- package/modules/dumbbell.src.js +1 -1
- package/modules/export-data.js +25 -24
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +607 -499
- package/modules/exporting.js +38 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +559 -507
- package/modules/full-screen.js +8 -8
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +76 -26
- 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 +2 -2
- package/modules/gantt.js +217 -216
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +1481 -1440
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +1 -1
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +10 -2
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +6 -6
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +37 -22
- package/modules/map.d.ts +3 -3
- package/modules/map.js +171 -171
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +3 -3
- package/modules/map.src.js +442 -414
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +3 -1
- package/modules/networkgraph.js +55 -50
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +2259 -1938
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +2 -2
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +2 -2
- package/modules/organization.js +15 -15
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +10 -2
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +13 -8
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +1 -1
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/sankey.js +1 -1
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +14 -2
- package/modules/series-label.js +5 -5
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +3 -3
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.js.map +1 -1
- package/modules/series-on-point.src.js +6 -2
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.d.ts +2 -2
- package/modules/sonification.js +1 -1
- package/modules/sonification.src.d.ts +2 -2
- package/modules/sonification.src.js +2 -2
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.d.ts +1 -23
- package/modules/stock-tools.js +109 -179
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.d.ts +1 -23
- package/modules/stock-tools.src.js +2605 -6335
- package/modules/stock.d.ts +8 -0
- package/modules/stock.js +105 -105
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +8 -0
- package/modules/stock.src.js +105 -45
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +72 -72
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +38 -12
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +1 -1
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +3 -1
- package/modules/treegrid.js +57 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +1022 -1014
- package/modules/treemap.js +1 -1
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +8 -4
- 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 +1 -1
- package/modules/vector.js +2 -2
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +3 -5
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +5 -5
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +3 -3
- package/modules/xrange.js +17 -17
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +411 -397
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +1 -1
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.js +1 -1
- package/themes/brand-light.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/high-contrast-dark.js +1 -1
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +1 -1
- package/themes/high-contrast-light.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 +1 -1
- package/themes/sunset.src.js +1 -1
- package/es-modules/Core/Axis/StackingAxis.js +0 -215
- package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
- package/es-modules/Core/Axis/TreeGridTick.js +0 -317
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
- package/es-modules/Extensions/Annotations/Popup.js +0 -1123
- package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
- package/es-modules/Extensions/Boost/BoostInit.js +0 -324
- package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
- package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
- package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
- package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
- package/es-modules/Extensions/Stacking.js +0 -517
- package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
- package/es-modules/Series/Networkgraph/Integrations.js +0 -348
- package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
- package/es-modules/Series/XRange/XRangeComposition.js +0 -49
|
@@ -9,1185 +9,108 @@
|
|
|
9
9
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
10
|
*
|
|
11
11
|
* */
|
|
12
|
-
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
import
|
|
16
|
-
|
|
12
|
+
'use strict';
|
|
13
|
+
import O from '../Core/DefaultOptions.js';
|
|
14
|
+
var setOptions = O.setOptions;
|
|
15
|
+
import StockToolsDefaults from './StockToolsDefaults.js';
|
|
16
|
+
import Toolbar from './StockToolbar.js';
|
|
17
17
|
import U from '../Core/Utilities.js';
|
|
18
|
-
var addEvent = U.addEvent,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
navigation: {
|
|
101
|
-
popup: {
|
|
102
|
-
// Annotations:
|
|
103
|
-
circle: 'Circle',
|
|
104
|
-
ellipse: 'Ellipse',
|
|
105
|
-
rectangle: 'Rectangle',
|
|
106
|
-
label: 'Label',
|
|
107
|
-
segment: 'Segment',
|
|
108
|
-
arrowSegment: 'Arrow segment',
|
|
109
|
-
ray: 'Ray',
|
|
110
|
-
arrowRay: 'Arrow ray',
|
|
111
|
-
line: 'Line',
|
|
112
|
-
arrowInfinityLine: 'Arrow line',
|
|
113
|
-
horizontalLine: 'Horizontal line',
|
|
114
|
-
verticalLine: 'Vertical line',
|
|
115
|
-
crooked3: 'Crooked 3 line',
|
|
116
|
-
crooked5: 'Crooked 5 line',
|
|
117
|
-
elliott3: 'Elliott 3 line',
|
|
118
|
-
elliott5: 'Elliott 5 line',
|
|
119
|
-
verticalCounter: 'Vertical counter',
|
|
120
|
-
verticalLabel: 'Vertical label',
|
|
121
|
-
verticalArrow: 'Vertical arrow',
|
|
122
|
-
fibonacci: 'Fibonacci',
|
|
123
|
-
fibonacciTimeZones: 'Fibonacci Time Zones',
|
|
124
|
-
pitchfork: 'Pitchfork',
|
|
125
|
-
parallelChannel: 'Parallel channel',
|
|
126
|
-
infinityLine: 'Infinity line',
|
|
127
|
-
measure: 'Measure',
|
|
128
|
-
measureXY: 'Measure XY',
|
|
129
|
-
measureX: 'Measure X',
|
|
130
|
-
measureY: 'Measure Y',
|
|
131
|
-
timeCycles: 'Time Cycles',
|
|
132
|
-
// Flags:
|
|
133
|
-
flags: 'Flags',
|
|
134
|
-
// GUI elements:
|
|
135
|
-
addButton: 'add',
|
|
136
|
-
saveButton: 'save',
|
|
137
|
-
editButton: 'edit',
|
|
138
|
-
removeButton: 'remove',
|
|
139
|
-
series: 'Series',
|
|
140
|
-
volume: 'Volume',
|
|
141
|
-
connector: 'Connector',
|
|
142
|
-
// Field names:
|
|
143
|
-
innerBackground: 'Inner background',
|
|
144
|
-
outerBackground: 'Outer background',
|
|
145
|
-
crosshairX: 'Crosshair X',
|
|
146
|
-
crosshairY: 'Crosshair Y',
|
|
147
|
-
tunnel: 'Tunnel',
|
|
148
|
-
background: 'Background',
|
|
149
|
-
// Indicators' searchbox (#16019):
|
|
150
|
-
noFilterMatch: 'No match',
|
|
151
|
-
// Indicators' params (#15170):
|
|
152
|
-
searchIndicators: 'Search Indicators',
|
|
153
|
-
clearFilter: '\u2715 clear filter',
|
|
154
|
-
index: 'Index',
|
|
155
|
-
period: 'Period',
|
|
156
|
-
periods: 'Periods',
|
|
157
|
-
standardDeviation: 'Standard deviation',
|
|
158
|
-
periodTenkan: 'Tenkan period',
|
|
159
|
-
periodSenkouSpanB: 'Senkou Span B period',
|
|
160
|
-
periodATR: 'ATR period',
|
|
161
|
-
multiplierATR: 'ATR multiplier',
|
|
162
|
-
shortPeriod: 'Short period',
|
|
163
|
-
longPeriod: 'Long period',
|
|
164
|
-
signalPeriod: 'Signal period',
|
|
165
|
-
decimals: 'Decimals',
|
|
166
|
-
algorithm: 'Algorithm',
|
|
167
|
-
topBand: 'Top band',
|
|
168
|
-
bottomBand: 'Bottom band',
|
|
169
|
-
initialAccelerationFactor: 'Initial acceleration factor',
|
|
170
|
-
maxAccelerationFactor: 'Max acceleration factor',
|
|
171
|
-
increment: 'Increment',
|
|
172
|
-
multiplier: 'Multiplier',
|
|
173
|
-
ranges: 'Ranges',
|
|
174
|
-
highIndex: 'High index',
|
|
175
|
-
lowIndex: 'Low index',
|
|
176
|
-
deviation: 'Deviation',
|
|
177
|
-
xAxisUnit: 'x-axis unit',
|
|
178
|
-
factor: 'Factor',
|
|
179
|
-
fastAvgPeriod: 'Fast average period',
|
|
180
|
-
slowAvgPeriod: 'Slow average period',
|
|
181
|
-
average: 'Average',
|
|
182
|
-
/**
|
|
183
|
-
* Configure the aliases for indicator names.
|
|
184
|
-
*
|
|
185
|
-
* @product highstock
|
|
186
|
-
* @since 9.3.0
|
|
187
|
-
*/
|
|
188
|
-
indicatorAliases: {
|
|
189
|
-
// Overlays
|
|
190
|
-
/**
|
|
191
|
-
* Acceleration Bands alias.
|
|
192
|
-
*
|
|
193
|
-
* @default ['Acceleration Bands']
|
|
194
|
-
* @type {Array<string>}
|
|
195
|
-
*/
|
|
196
|
-
abands: ['Acceleration Bands'],
|
|
197
|
-
/**
|
|
198
|
-
* Bollinger Bands alias.
|
|
199
|
-
*
|
|
200
|
-
* @default ['Bollinger Bands']
|
|
201
|
-
* @type {Array<string>}
|
|
202
|
-
*/
|
|
203
|
-
bb: ['Bollinger Bands'],
|
|
204
|
-
/**
|
|
205
|
-
* Double Exponential Moving Average alias.
|
|
206
|
-
*
|
|
207
|
-
* @default ['Double Exponential Moving Average']
|
|
208
|
-
* @type {Array<string>}
|
|
209
|
-
*/
|
|
210
|
-
dema: ['Double Exponential Moving Average'],
|
|
211
|
-
/**
|
|
212
|
-
* Exponential Moving Average alias.
|
|
213
|
-
*
|
|
214
|
-
* @default ['Exponential Moving Average']
|
|
215
|
-
* @type {Array<string>}
|
|
216
|
-
*/
|
|
217
|
-
ema: ['Exponential Moving Average'],
|
|
218
|
-
/**
|
|
219
|
-
* Ichimoku Kinko Hyo alias.
|
|
220
|
-
*
|
|
221
|
-
* @default ['Ichimoku Kinko Hyo']
|
|
222
|
-
* @type {Array<string>}
|
|
223
|
-
*/
|
|
224
|
-
ikh: ['Ichimoku Kinko Hyo'],
|
|
225
|
-
/**
|
|
226
|
-
* Keltner Channels alias.
|
|
227
|
-
*
|
|
228
|
-
* @default ['Keltner Channels']
|
|
229
|
-
* @type {Array<string>}
|
|
230
|
-
*/
|
|
231
|
-
keltnerchannels: ['Keltner Channels'],
|
|
232
|
-
/**
|
|
233
|
-
* Linear Regression alias.
|
|
234
|
-
*
|
|
235
|
-
* @default ['Linear Regression']
|
|
236
|
-
* @type {Array<string>}
|
|
237
|
-
*/
|
|
238
|
-
linearRegression: ['Linear Regression'],
|
|
239
|
-
/**
|
|
240
|
-
* Pivot Points alias.
|
|
241
|
-
*
|
|
242
|
-
* @default ['Pivot Points']
|
|
243
|
-
* @type {Array<string>}
|
|
244
|
-
*/
|
|
245
|
-
pivotpoints: ['Pivot Points'],
|
|
246
|
-
/**
|
|
247
|
-
* Price Channel alias.
|
|
248
|
-
*
|
|
249
|
-
* @default ['Price Channel']
|
|
250
|
-
* @type {Array<string>}
|
|
251
|
-
*/
|
|
252
|
-
pc: ['Price Channel'],
|
|
253
|
-
/**
|
|
254
|
-
* Price Envelopes alias.
|
|
255
|
-
*
|
|
256
|
-
* @default ['Price Envelopes']
|
|
257
|
-
* @type {Array<string>}
|
|
258
|
-
*/
|
|
259
|
-
priceenvelopes: ['Price Envelopes'],
|
|
260
|
-
/**
|
|
261
|
-
* Parabolic SAR alias.
|
|
262
|
-
*
|
|
263
|
-
* @default ['Parabolic SAR']
|
|
264
|
-
* @type {Array<string>}
|
|
265
|
-
*/
|
|
266
|
-
psar: ['Parabolic SAR'],
|
|
267
|
-
/**
|
|
268
|
-
* Simple Moving Average alias.
|
|
269
|
-
*
|
|
270
|
-
* @default ['Simple Moving Average']
|
|
271
|
-
* @type {Array<string>}
|
|
272
|
-
*/
|
|
273
|
-
sma: ['Simple Moving Average'],
|
|
274
|
-
/**
|
|
275
|
-
* Super Trend alias.
|
|
276
|
-
*
|
|
277
|
-
* @default ['Super Trend']
|
|
278
|
-
* @type {Array<string>}
|
|
279
|
-
*/
|
|
280
|
-
supertrend: ['Super Trend'],
|
|
281
|
-
/**
|
|
282
|
-
* Triple Exponential Moving Average alias.
|
|
283
|
-
*
|
|
284
|
-
* @default ['Triple Exponential Moving Average']
|
|
285
|
-
* @type {Array<string>}
|
|
286
|
-
*/
|
|
287
|
-
tema: ['Triple Exponential Moving Average'],
|
|
288
|
-
/**
|
|
289
|
-
* Volume by Price alias.
|
|
290
|
-
*
|
|
291
|
-
* @default ['Volume by Price']
|
|
292
|
-
* @type {Array<string>}
|
|
293
|
-
*/
|
|
294
|
-
vbp: ['Volume by Price'],
|
|
295
|
-
/**
|
|
296
|
-
* Volume Weighted Moving Average alias.
|
|
297
|
-
*
|
|
298
|
-
* @default ['Volume Weighted Moving Average']
|
|
299
|
-
* @type {Array<string>}
|
|
300
|
-
*/
|
|
301
|
-
vwap: ['Volume Weighted Moving Average'],
|
|
302
|
-
/**
|
|
303
|
-
* Weighted Moving Average alias.
|
|
304
|
-
*
|
|
305
|
-
* @default ['Weighted Moving Average']
|
|
306
|
-
* @type {Array<string>}
|
|
307
|
-
*/
|
|
308
|
-
wma: ['Weighted Moving Average'],
|
|
309
|
-
/**
|
|
310
|
-
* Zig Zagalias.
|
|
311
|
-
*
|
|
312
|
-
* @default ['Zig Zag']
|
|
313
|
-
* @type {Array<string>}
|
|
314
|
-
*/
|
|
315
|
-
zigzag: ['Zig Zag'],
|
|
316
|
-
// Oscilators
|
|
317
|
-
/**
|
|
318
|
-
* Absolute price indicator alias.
|
|
319
|
-
*
|
|
320
|
-
* @default ['Absolute price indicator']
|
|
321
|
-
* @type {Array<string>}
|
|
322
|
-
*/
|
|
323
|
-
apo: ['Absolute price indicator'],
|
|
324
|
-
/**
|
|
325
|
-
* Accumulation/Distribution alias.
|
|
326
|
-
*
|
|
327
|
-
* @default ['Accumulation/Distribution’]
|
|
328
|
-
* @type {Array<string>}
|
|
329
|
-
*/
|
|
330
|
-
ad: ['Accumulation/Distribution'],
|
|
331
|
-
/**
|
|
332
|
-
* Aroon alias.
|
|
333
|
-
*
|
|
334
|
-
* @default ['Aroon']
|
|
335
|
-
* @type {Array<string>}
|
|
336
|
-
*/
|
|
337
|
-
aroon: ['Aroon'],
|
|
338
|
-
/**
|
|
339
|
-
* Aroon oscillator alias.
|
|
340
|
-
*
|
|
341
|
-
* @default ['Aroon oscillator']
|
|
342
|
-
* @type {Array<string>}
|
|
343
|
-
*/
|
|
344
|
-
aroonoscillator: ['Aroon oscillator'],
|
|
345
|
-
/**
|
|
346
|
-
* Average True Range alias.
|
|
347
|
-
*
|
|
348
|
-
* @default ['Average True Range’]
|
|
349
|
-
* @type {Array<string>}
|
|
350
|
-
*/
|
|
351
|
-
atr: ['Average True Range'],
|
|
352
|
-
/**
|
|
353
|
-
* Awesome oscillator alias.
|
|
354
|
-
*
|
|
355
|
-
* @default ['Awesome oscillator’]
|
|
356
|
-
* @type {Array<string>}
|
|
357
|
-
*/
|
|
358
|
-
ao: ['Awesome oscillator'],
|
|
359
|
-
/**
|
|
360
|
-
* Commodity Channel Index alias.
|
|
361
|
-
*
|
|
362
|
-
* @default ['Commodity Channel Index’]
|
|
363
|
-
* @type {Array<string>}
|
|
364
|
-
*/
|
|
365
|
-
cci: ['Commodity Channel Index'],
|
|
366
|
-
/**
|
|
367
|
-
* Chaikin alias.
|
|
368
|
-
*
|
|
369
|
-
* @default ['Chaikin’]
|
|
370
|
-
* @type {Array<string>}
|
|
371
|
-
*/
|
|
372
|
-
chaikin: ['Chaikin'],
|
|
373
|
-
/**
|
|
374
|
-
* Chaikin Money Flow alias.
|
|
375
|
-
*
|
|
376
|
-
* @default ['Chaikin Money Flow’]
|
|
377
|
-
* @type {Array<string>}
|
|
378
|
-
*/
|
|
379
|
-
cmf: ['Chaikin Money Flow'],
|
|
380
|
-
/**
|
|
381
|
-
* Chande Momentum Oscillator alias.
|
|
382
|
-
*
|
|
383
|
-
* @default ['Chande Momentum Oscillator’]
|
|
384
|
-
* @type {Array<string>}
|
|
385
|
-
*/
|
|
386
|
-
cmo: ['Chande Momentum Oscillator'],
|
|
387
|
-
/**
|
|
388
|
-
* Disparity Index alias.
|
|
389
|
-
*
|
|
390
|
-
* @default ['Disparity Index’]
|
|
391
|
-
* @type {Array<string>}
|
|
392
|
-
*/
|
|
393
|
-
disparityindex: ['Disparity Index'],
|
|
394
|
-
/**
|
|
395
|
-
* Directional Movement Index alias.
|
|
396
|
-
*
|
|
397
|
-
* @default ['Directional Movement Index’]
|
|
398
|
-
* @type {Array<string>}
|
|
399
|
-
*/
|
|
400
|
-
dmi: ['Directional Movement Index'],
|
|
401
|
-
/**
|
|
402
|
-
* Detrended price oscillator alias.
|
|
403
|
-
*
|
|
404
|
-
* @default ['Detrended price oscillator’]
|
|
405
|
-
* @type {Array<string>}
|
|
406
|
-
*/
|
|
407
|
-
dpo: ['Detrended price oscillator'],
|
|
408
|
-
/**
|
|
409
|
-
* Klinger Oscillator alias.
|
|
410
|
-
*
|
|
411
|
-
* @default [‘Klinger Oscillator’]
|
|
412
|
-
* @type {Array<string>}
|
|
413
|
-
*/
|
|
414
|
-
klinger: ['Klinger Oscillator'],
|
|
415
|
-
/**
|
|
416
|
-
* Linear Regression Angle alias.
|
|
417
|
-
*
|
|
418
|
-
* @default [‘Linear Regression Angle’]
|
|
419
|
-
* @type {Array<string>}
|
|
420
|
-
*/
|
|
421
|
-
linearRegressionAngle: ['Linear Regression Angle'],
|
|
422
|
-
/**
|
|
423
|
-
* Linear Regression Intercept alias.
|
|
424
|
-
*
|
|
425
|
-
* @default [‘Linear Regression Intercept’]
|
|
426
|
-
* @type {Array<string>}
|
|
427
|
-
*/
|
|
428
|
-
linearRegressionIntercept: ['Linear Regression Intercept'],
|
|
429
|
-
/**
|
|
430
|
-
* Linear Regression Slope alias.
|
|
431
|
-
*
|
|
432
|
-
* @default [‘Linear Regression Slope’]
|
|
433
|
-
* @type {Array<string>}
|
|
434
|
-
*/
|
|
435
|
-
linearRegressionSlope: ['Linear Regression Slope'],
|
|
436
|
-
/**
|
|
437
|
-
* Moving Average Convergence Divergence alias.
|
|
438
|
-
*
|
|
439
|
-
* @default ['Moving Average Convergence Divergence’]
|
|
440
|
-
* @type {Array<string>}
|
|
441
|
-
*/
|
|
442
|
-
macd: ['Moving Average Convergence Divergence'],
|
|
443
|
-
/**
|
|
444
|
-
* Money Flow Index alias.
|
|
445
|
-
*
|
|
446
|
-
* @default ['Money Flow Index’]
|
|
447
|
-
* @type {Array<string>}
|
|
448
|
-
*/
|
|
449
|
-
mfi: ['Money Flow Index'],
|
|
450
|
-
/**
|
|
451
|
-
* Momentum alias.
|
|
452
|
-
*
|
|
453
|
-
* @default [‘Momentum’]
|
|
454
|
-
* @type {Array<string>}
|
|
455
|
-
*/
|
|
456
|
-
momentum: ['Momentum'],
|
|
457
|
-
/**
|
|
458
|
-
* Normalized Average True Range alias.
|
|
459
|
-
*
|
|
460
|
-
* @default ['Normalized Average True Range’]
|
|
461
|
-
* @type {Array<string>}
|
|
462
|
-
*/
|
|
463
|
-
natr: ['Normalized Average True Range'],
|
|
464
|
-
/**
|
|
465
|
-
* On-Balance Volume alias.
|
|
466
|
-
*
|
|
467
|
-
* @default ['On-Balance Volume’]
|
|
468
|
-
* @type {Array<string>}
|
|
469
|
-
*/
|
|
470
|
-
obv: ['On-Balance Volume'],
|
|
471
|
-
/**
|
|
472
|
-
* Percentage Price oscillator alias.
|
|
473
|
-
*
|
|
474
|
-
* @default ['Percentage Price oscillator’]
|
|
475
|
-
* @type {Array<string>}
|
|
476
|
-
*/
|
|
477
|
-
ppo: ['Percentage Price oscillator'],
|
|
478
|
-
/**
|
|
479
|
-
* Rate of Change alias.
|
|
480
|
-
*
|
|
481
|
-
* @default ['Rate of Change’]
|
|
482
|
-
* @type {Array<string>}
|
|
483
|
-
*/
|
|
484
|
-
roc: ['Rate of Change'],
|
|
485
|
-
/**
|
|
486
|
-
* Relative Strength Index alias.
|
|
487
|
-
*
|
|
488
|
-
* @default ['Relative Strength Index’]
|
|
489
|
-
* @type {Array<string>}
|
|
490
|
-
*/
|
|
491
|
-
rsi: ['Relative Strength Index'],
|
|
492
|
-
/**
|
|
493
|
-
* Slow Stochastic alias.
|
|
494
|
-
*
|
|
495
|
-
* @default [‘Slow Stochastic’]
|
|
496
|
-
* @type {Array<string>}
|
|
497
|
-
*/
|
|
498
|
-
slowstochastic: ['Slow Stochastic'],
|
|
499
|
-
/**
|
|
500
|
-
* Stochastic alias.
|
|
501
|
-
*
|
|
502
|
-
* @default [‘Stochastic’]
|
|
503
|
-
* @type {Array<string>}
|
|
504
|
-
*/
|
|
505
|
-
stochastic: ['Stochastic'],
|
|
506
|
-
/**
|
|
507
|
-
* TRIX alias.
|
|
508
|
-
*
|
|
509
|
-
* @default [‘TRIX’]
|
|
510
|
-
* @type {Array<string>}
|
|
511
|
-
*/
|
|
512
|
-
trix: ['TRIX'],
|
|
513
|
-
/**
|
|
514
|
-
* Williams %R alias.
|
|
515
|
-
*
|
|
516
|
-
* @default [‘Williams %R’]
|
|
517
|
-
* @type {Array<string>}
|
|
518
|
-
*/
|
|
519
|
-
williamsr: ['Williams %R']
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
},
|
|
524
|
-
/**
|
|
525
|
-
* Configure the stockTools gui strings in the chart. Requires the
|
|
526
|
-
* [stockTools module]() to be loaded. For a description of the module
|
|
527
|
-
* and information on its features, see [Highcharts StockTools]().
|
|
528
|
-
*
|
|
529
|
-
* @product highstock
|
|
530
|
-
*
|
|
531
|
-
* @sample stock/demo/stock-tools-gui Stock Tools GUI
|
|
532
|
-
*
|
|
533
|
-
* @sample stock/demo/stock-tools-custom-gui Stock Tools customized GUI
|
|
534
|
-
*
|
|
535
|
-
* @since 7.0.0
|
|
536
|
-
* @optionparent stockTools
|
|
537
|
-
*/
|
|
538
|
-
stockTools: {
|
|
539
|
-
/**
|
|
540
|
-
* Definitions of buttons in Stock Tools GUI.
|
|
541
|
-
*/
|
|
542
|
-
gui: {
|
|
543
|
-
/**
|
|
544
|
-
* Path where Highcharts will look for icons. Change this to use
|
|
545
|
-
* icons from a different server.
|
|
546
|
-
*
|
|
547
|
-
* Since 7.1.3 use [iconsURL](#navigation.iconsURL) for popup and
|
|
548
|
-
* stock tools.
|
|
549
|
-
*
|
|
550
|
-
* @deprecated
|
|
551
|
-
* @apioption stockTools.gui.iconsURL
|
|
552
|
-
*
|
|
553
|
-
*/
|
|
554
|
-
/**
|
|
555
|
-
* Enable or disable the stockTools gui.
|
|
556
|
-
*/
|
|
557
|
-
enabled: true,
|
|
558
|
-
/**
|
|
559
|
-
* A CSS class name to apply to the stocktools' div,
|
|
560
|
-
* allowing unique CSS styling for each chart.
|
|
561
|
-
*/
|
|
562
|
-
className: 'highcharts-bindings-wrapper',
|
|
563
|
-
/**
|
|
564
|
-
* A CSS class name to apply to the container of buttons,
|
|
565
|
-
* allowing unique CSS styling for each chart.
|
|
566
|
-
*/
|
|
567
|
-
toolbarClassName: 'stocktools-toolbar',
|
|
568
|
-
/**
|
|
569
|
-
* A collection of strings pointing to config options for the
|
|
570
|
-
* toolbar items. Each name refers to a unique key from the
|
|
571
|
-
* definitions object.
|
|
572
|
-
*
|
|
573
|
-
* @type {Array<string>}
|
|
574
|
-
* @default [
|
|
575
|
-
* 'indicators',
|
|
576
|
-
* 'separator',
|
|
577
|
-
* 'simpleShapes',
|
|
578
|
-
* 'lines',
|
|
579
|
-
* 'crookedLines',
|
|
580
|
-
* 'measure',
|
|
581
|
-
* 'advanced',
|
|
582
|
-
* 'toggleAnnotations',
|
|
583
|
-
* 'separator',
|
|
584
|
-
* 'verticalLabels',
|
|
585
|
-
* 'flags',
|
|
586
|
-
* 'separator',
|
|
587
|
-
* 'zoomChange',
|
|
588
|
-
* 'fullScreen',
|
|
589
|
-
* 'typeChange',
|
|
590
|
-
* 'separator',
|
|
591
|
-
* 'currentPriceIndicator',
|
|
592
|
-
* 'saveChart'
|
|
593
|
-
* ]
|
|
594
|
-
*/
|
|
595
|
-
buttons: [
|
|
596
|
-
'indicators',
|
|
597
|
-
'separator',
|
|
598
|
-
'simpleShapes',
|
|
599
|
-
'lines',
|
|
600
|
-
'crookedLines',
|
|
601
|
-
'measure',
|
|
602
|
-
'advanced',
|
|
603
|
-
'toggleAnnotations',
|
|
604
|
-
'separator',
|
|
605
|
-
'verticalLabels',
|
|
606
|
-
'flags',
|
|
607
|
-
'separator',
|
|
608
|
-
'zoomChange',
|
|
609
|
-
'fullScreen',
|
|
610
|
-
'typeChange',
|
|
611
|
-
'separator',
|
|
612
|
-
'currentPriceIndicator',
|
|
613
|
-
'saveChart'
|
|
614
|
-
],
|
|
615
|
-
/**
|
|
616
|
-
* An options object of the buttons definitions. Each name refers to
|
|
617
|
-
* unique key from buttons array.
|
|
618
|
-
*/
|
|
619
|
-
definitions: {
|
|
620
|
-
separator: {
|
|
621
|
-
/**
|
|
622
|
-
* A predefined background symbol for the button.
|
|
623
|
-
*/
|
|
624
|
-
symbol: 'separator.svg'
|
|
625
|
-
},
|
|
626
|
-
simpleShapes: {
|
|
627
|
-
/**
|
|
628
|
-
* A collection of strings pointing to config options for
|
|
629
|
-
* the items.
|
|
630
|
-
*
|
|
631
|
-
* @type {Array}
|
|
632
|
-
* @default [
|
|
633
|
-
* 'label',
|
|
634
|
-
* 'circle',
|
|
635
|
-
* 'ellipse',
|
|
636
|
-
* 'rectangle'
|
|
637
|
-
* ]
|
|
638
|
-
*
|
|
639
|
-
*/
|
|
640
|
-
items: [
|
|
641
|
-
'label',
|
|
642
|
-
'circle',
|
|
643
|
-
'ellipse',
|
|
644
|
-
'rectangle'
|
|
645
|
-
],
|
|
646
|
-
circle: {
|
|
647
|
-
/**
|
|
648
|
-
* A predefined background symbol for the button.
|
|
649
|
-
*
|
|
650
|
-
* @type {string}
|
|
651
|
-
*
|
|
652
|
-
*/
|
|
653
|
-
symbol: 'circle.svg'
|
|
654
|
-
},
|
|
655
|
-
ellipse: {
|
|
656
|
-
/**
|
|
657
|
-
* A predefined background symbol for the button.
|
|
658
|
-
*
|
|
659
|
-
* @type {string}
|
|
660
|
-
*
|
|
661
|
-
*/
|
|
662
|
-
symbol: 'ellipse.svg'
|
|
663
|
-
},
|
|
664
|
-
rectangle: {
|
|
665
|
-
/**
|
|
666
|
-
* A predefined background symbol for the button.
|
|
667
|
-
*
|
|
668
|
-
* @type {string}
|
|
669
|
-
*
|
|
670
|
-
*/
|
|
671
|
-
symbol: 'rectangle.svg'
|
|
672
|
-
},
|
|
673
|
-
label: {
|
|
674
|
-
/**
|
|
675
|
-
* A predefined background symbol for the button.
|
|
676
|
-
*
|
|
677
|
-
* @type {string}
|
|
678
|
-
*
|
|
679
|
-
*/
|
|
680
|
-
symbol: 'label.svg'
|
|
681
|
-
}
|
|
682
|
-
},
|
|
683
|
-
flags: {
|
|
684
|
-
/**
|
|
685
|
-
* A collection of strings pointing to config options for
|
|
686
|
-
* the items.
|
|
687
|
-
*
|
|
688
|
-
* @type {Array}
|
|
689
|
-
* @default [
|
|
690
|
-
* 'flagCirclepin',
|
|
691
|
-
* 'flagDiamondpin',
|
|
692
|
-
* 'flagSquarepin',
|
|
693
|
-
* 'flagSimplepin'
|
|
694
|
-
* ]
|
|
695
|
-
*
|
|
696
|
-
*/
|
|
697
|
-
items: [
|
|
698
|
-
'flagCirclepin',
|
|
699
|
-
'flagDiamondpin',
|
|
700
|
-
'flagSquarepin',
|
|
701
|
-
'flagSimplepin'
|
|
702
|
-
],
|
|
703
|
-
flagSimplepin: {
|
|
704
|
-
/**
|
|
705
|
-
* A predefined background symbol for the button.
|
|
706
|
-
*
|
|
707
|
-
* @type {string}
|
|
708
|
-
*
|
|
709
|
-
*/
|
|
710
|
-
symbol: 'flag-basic.svg'
|
|
711
|
-
},
|
|
712
|
-
flagDiamondpin: {
|
|
713
|
-
/**
|
|
714
|
-
* A predefined background symbol for the button.
|
|
715
|
-
*
|
|
716
|
-
* @type {string}
|
|
717
|
-
*
|
|
718
|
-
*/
|
|
719
|
-
symbol: 'flag-diamond.svg'
|
|
720
|
-
},
|
|
721
|
-
flagSquarepin: {
|
|
722
|
-
/**
|
|
723
|
-
* A predefined background symbol for the button.
|
|
724
|
-
*
|
|
725
|
-
* @type {string}
|
|
726
|
-
*/
|
|
727
|
-
symbol: 'flag-trapeze.svg'
|
|
728
|
-
},
|
|
729
|
-
flagCirclepin: {
|
|
730
|
-
/**
|
|
731
|
-
* A predefined background symbol for the button.
|
|
732
|
-
*
|
|
733
|
-
* @type {string}
|
|
734
|
-
*/
|
|
735
|
-
symbol: 'flag-elipse.svg'
|
|
736
|
-
}
|
|
737
|
-
},
|
|
738
|
-
lines: {
|
|
739
|
-
/**
|
|
740
|
-
* A collection of strings pointing to config options for
|
|
741
|
-
* the items.
|
|
742
|
-
*
|
|
743
|
-
* @type {Array}
|
|
744
|
-
* @default [
|
|
745
|
-
* 'segment',
|
|
746
|
-
* 'arrowSegment',
|
|
747
|
-
* 'ray',
|
|
748
|
-
* 'arrowRay',
|
|
749
|
-
* 'line',
|
|
750
|
-
* 'arrowInfinityLine',
|
|
751
|
-
* 'horizontalLine',
|
|
752
|
-
* 'verticalLine'
|
|
753
|
-
* ]
|
|
754
|
-
*/
|
|
755
|
-
items: [
|
|
756
|
-
'segment',
|
|
757
|
-
'arrowSegment',
|
|
758
|
-
'ray',
|
|
759
|
-
'arrowRay',
|
|
760
|
-
'line',
|
|
761
|
-
'arrowInfinityLine',
|
|
762
|
-
'horizontalLine',
|
|
763
|
-
'verticalLine'
|
|
764
|
-
],
|
|
765
|
-
segment: {
|
|
766
|
-
/**
|
|
767
|
-
* A predefined background symbol for the button.
|
|
768
|
-
*
|
|
769
|
-
* @type {string}
|
|
770
|
-
*/
|
|
771
|
-
symbol: 'segment.svg'
|
|
772
|
-
},
|
|
773
|
-
arrowSegment: {
|
|
774
|
-
/**
|
|
775
|
-
* A predefined background symbol for the button.
|
|
776
|
-
*
|
|
777
|
-
* @type {string}
|
|
778
|
-
*/
|
|
779
|
-
symbol: 'arrow-segment.svg'
|
|
780
|
-
},
|
|
781
|
-
ray: {
|
|
782
|
-
/**
|
|
783
|
-
* A predefined background symbol for the button.
|
|
784
|
-
*
|
|
785
|
-
* @type {string}
|
|
786
|
-
*/
|
|
787
|
-
symbol: 'ray.svg'
|
|
788
|
-
},
|
|
789
|
-
arrowRay: {
|
|
790
|
-
/**
|
|
791
|
-
* A predefined background symbol for the button.
|
|
792
|
-
*
|
|
793
|
-
* @type {string}
|
|
794
|
-
*/
|
|
795
|
-
symbol: 'arrow-ray.svg'
|
|
796
|
-
},
|
|
797
|
-
line: {
|
|
798
|
-
/**
|
|
799
|
-
* A predefined background symbol for the button.
|
|
800
|
-
*
|
|
801
|
-
* @type {string}
|
|
802
|
-
*/
|
|
803
|
-
symbol: 'line.svg'
|
|
804
|
-
},
|
|
805
|
-
arrowInfinityLine: {
|
|
806
|
-
/**
|
|
807
|
-
* A predefined background symbol for the button.
|
|
808
|
-
*
|
|
809
|
-
* @type {string}
|
|
810
|
-
*/
|
|
811
|
-
symbol: 'arrow-line.svg'
|
|
812
|
-
},
|
|
813
|
-
verticalLine: {
|
|
814
|
-
/**
|
|
815
|
-
* A predefined background symbol for the button.
|
|
816
|
-
*
|
|
817
|
-
* @type {string}
|
|
818
|
-
*/
|
|
819
|
-
symbol: 'vertical-line.svg'
|
|
820
|
-
},
|
|
821
|
-
horizontalLine: {
|
|
822
|
-
/**
|
|
823
|
-
* A predefined background symbol for the button.
|
|
824
|
-
*
|
|
825
|
-
* @type {string}
|
|
826
|
-
*/
|
|
827
|
-
symbol: 'horizontal-line.svg'
|
|
828
|
-
}
|
|
829
|
-
},
|
|
830
|
-
crookedLines: {
|
|
831
|
-
/**
|
|
832
|
-
* A collection of strings pointing to config options for
|
|
833
|
-
* the items.
|
|
834
|
-
*
|
|
835
|
-
* @type {Array}
|
|
836
|
-
* @default [
|
|
837
|
-
* 'elliott3',
|
|
838
|
-
* 'elliott5',
|
|
839
|
-
* 'crooked3',
|
|
840
|
-
* 'crooked5'
|
|
841
|
-
* ]
|
|
842
|
-
*
|
|
843
|
-
*/
|
|
844
|
-
items: [
|
|
845
|
-
'elliott3',
|
|
846
|
-
'elliott5',
|
|
847
|
-
'crooked3',
|
|
848
|
-
'crooked5'
|
|
849
|
-
],
|
|
850
|
-
crooked3: {
|
|
851
|
-
/**
|
|
852
|
-
* A predefined background symbol for the button.
|
|
853
|
-
*
|
|
854
|
-
* @type {string}
|
|
855
|
-
*/
|
|
856
|
-
symbol: 'crooked-3.svg'
|
|
857
|
-
},
|
|
858
|
-
crooked5: {
|
|
859
|
-
/**
|
|
860
|
-
* A predefined background symbol for the button.
|
|
861
|
-
*
|
|
862
|
-
* @type {string}
|
|
863
|
-
*/
|
|
864
|
-
symbol: 'crooked-5.svg'
|
|
865
|
-
},
|
|
866
|
-
elliott3: {
|
|
867
|
-
/**
|
|
868
|
-
* A predefined background symbol for the button.
|
|
869
|
-
*
|
|
870
|
-
* @type {string}
|
|
871
|
-
*/
|
|
872
|
-
symbol: 'elliott-3.svg'
|
|
873
|
-
},
|
|
874
|
-
elliott5: {
|
|
875
|
-
/**
|
|
876
|
-
* A predefined background symbol for the button.
|
|
877
|
-
*
|
|
878
|
-
* @type {string}
|
|
879
|
-
*/
|
|
880
|
-
symbol: 'elliott-5.svg'
|
|
881
|
-
}
|
|
882
|
-
},
|
|
883
|
-
verticalLabels: {
|
|
884
|
-
/**
|
|
885
|
-
* A collection of strings pointing to config options for
|
|
886
|
-
* the items.
|
|
887
|
-
*
|
|
888
|
-
* @type {Array}
|
|
889
|
-
* @default [
|
|
890
|
-
* 'verticalCounter',
|
|
891
|
-
* 'verticalLabel',
|
|
892
|
-
* 'verticalArrow'
|
|
893
|
-
* ]
|
|
894
|
-
*/
|
|
895
|
-
items: [
|
|
896
|
-
'verticalCounter',
|
|
897
|
-
'verticalLabel',
|
|
898
|
-
'verticalArrow'
|
|
899
|
-
],
|
|
900
|
-
verticalCounter: {
|
|
901
|
-
/**
|
|
902
|
-
* A predefined background symbol for the button.
|
|
903
|
-
*
|
|
904
|
-
* @type {string}
|
|
905
|
-
*/
|
|
906
|
-
symbol: 'vertical-counter.svg'
|
|
907
|
-
},
|
|
908
|
-
verticalLabel: {
|
|
909
|
-
/**
|
|
910
|
-
* A predefined background symbol for the button.
|
|
911
|
-
*
|
|
912
|
-
* @type {string}
|
|
913
|
-
*/
|
|
914
|
-
symbol: 'vertical-label.svg'
|
|
915
|
-
},
|
|
916
|
-
verticalArrow: {
|
|
917
|
-
/**
|
|
918
|
-
* A predefined background symbol for the button.
|
|
919
|
-
*
|
|
920
|
-
* @type {string}
|
|
921
|
-
*/
|
|
922
|
-
symbol: 'vertical-arrow.svg'
|
|
923
|
-
}
|
|
924
|
-
},
|
|
925
|
-
advanced: {
|
|
926
|
-
/**
|
|
927
|
-
* A collection of strings pointing to config options for
|
|
928
|
-
* the items.
|
|
929
|
-
*
|
|
930
|
-
* @type {Array}
|
|
931
|
-
* @default [
|
|
932
|
-
* 'fibonacci',
|
|
933
|
-
* 'fibonacciTimeZones',
|
|
934
|
-
* 'pitchfork',
|
|
935
|
-
* 'parallelChannel',
|
|
936
|
-
* 'timeCycles'
|
|
937
|
-
* ]
|
|
938
|
-
*/
|
|
939
|
-
items: [
|
|
940
|
-
'fibonacci',
|
|
941
|
-
'fibonacciTimeZones',
|
|
942
|
-
'pitchfork',
|
|
943
|
-
'parallelChannel',
|
|
944
|
-
'timeCycles'
|
|
945
|
-
],
|
|
946
|
-
pitchfork: {
|
|
947
|
-
/**
|
|
948
|
-
* A predefined background symbol for the button.
|
|
949
|
-
*
|
|
950
|
-
* @type {string}
|
|
951
|
-
*/
|
|
952
|
-
symbol: 'pitchfork.svg'
|
|
953
|
-
},
|
|
954
|
-
fibonacci: {
|
|
955
|
-
/**
|
|
956
|
-
* A predefined background symbol for the button.
|
|
957
|
-
*
|
|
958
|
-
* @type {string}
|
|
959
|
-
*/
|
|
960
|
-
symbol: 'fibonacci.svg'
|
|
961
|
-
},
|
|
962
|
-
fibonacciTimeZones: {
|
|
963
|
-
/**
|
|
964
|
-
* A predefined background symbol for the button.
|
|
965
|
-
*
|
|
966
|
-
* @type {string}
|
|
967
|
-
*/
|
|
968
|
-
symbol: 'fibonacci-timezone.svg'
|
|
969
|
-
},
|
|
970
|
-
parallelChannel: {
|
|
971
|
-
/**
|
|
972
|
-
* A predefined background symbol for the button.
|
|
973
|
-
*
|
|
974
|
-
* @type {string}
|
|
975
|
-
*/
|
|
976
|
-
symbol: 'parallel-channel.svg'
|
|
977
|
-
},
|
|
978
|
-
timeCycles: {
|
|
979
|
-
/**
|
|
980
|
-
* A predefined backgroud symbol for the button.
|
|
981
|
-
*
|
|
982
|
-
* @type {string}
|
|
983
|
-
*/
|
|
984
|
-
symbol: 'time-cycles.svg'
|
|
985
|
-
}
|
|
986
|
-
},
|
|
987
|
-
measure: {
|
|
988
|
-
/**
|
|
989
|
-
* A collection of strings pointing to config options for
|
|
990
|
-
* the items.
|
|
991
|
-
*
|
|
992
|
-
* @type {Array}
|
|
993
|
-
* @default [
|
|
994
|
-
* 'measureXY',
|
|
995
|
-
* 'measureX',
|
|
996
|
-
* 'measureY'
|
|
997
|
-
* ]
|
|
998
|
-
*/
|
|
999
|
-
items: [
|
|
1000
|
-
'measureXY',
|
|
1001
|
-
'measureX',
|
|
1002
|
-
'measureY'
|
|
1003
|
-
],
|
|
1004
|
-
measureX: {
|
|
1005
|
-
/**
|
|
1006
|
-
* A predefined background symbol for the button.
|
|
1007
|
-
*
|
|
1008
|
-
* @type {string}
|
|
1009
|
-
*/
|
|
1010
|
-
symbol: 'measure-x.svg'
|
|
1011
|
-
},
|
|
1012
|
-
measureY: {
|
|
1013
|
-
/**
|
|
1014
|
-
* A predefined background symbol for the button.
|
|
1015
|
-
*
|
|
1016
|
-
* @type {string}
|
|
1017
|
-
*/
|
|
1018
|
-
symbol: 'measure-y.svg'
|
|
1019
|
-
},
|
|
1020
|
-
measureXY: {
|
|
1021
|
-
/**
|
|
1022
|
-
* A predefined background symbol for the button.
|
|
1023
|
-
*
|
|
1024
|
-
* @type {string}
|
|
1025
|
-
*/
|
|
1026
|
-
symbol: 'measure-xy.svg'
|
|
1027
|
-
}
|
|
1028
|
-
},
|
|
1029
|
-
toggleAnnotations: {
|
|
1030
|
-
/**
|
|
1031
|
-
* A predefined background symbol for the button.
|
|
1032
|
-
*
|
|
1033
|
-
* @type {string}
|
|
1034
|
-
*/
|
|
1035
|
-
symbol: 'annotations-visible.svg'
|
|
1036
|
-
},
|
|
1037
|
-
currentPriceIndicator: {
|
|
1038
|
-
/**
|
|
1039
|
-
* A predefined background symbol for the button.
|
|
1040
|
-
*
|
|
1041
|
-
* @type {string}
|
|
1042
|
-
*/
|
|
1043
|
-
symbol: 'current-price-show.svg'
|
|
1044
|
-
},
|
|
1045
|
-
indicators: {
|
|
1046
|
-
/**
|
|
1047
|
-
* A predefined background symbol for the button.
|
|
1048
|
-
*
|
|
1049
|
-
* @type {string}
|
|
1050
|
-
*/
|
|
1051
|
-
symbol: 'indicators.svg'
|
|
1052
|
-
},
|
|
1053
|
-
zoomChange: {
|
|
1054
|
-
/**
|
|
1055
|
-
* A collection of strings pointing to config options for
|
|
1056
|
-
* the items.
|
|
1057
|
-
*
|
|
1058
|
-
* @type {Array}
|
|
1059
|
-
* @default [
|
|
1060
|
-
* 'zoomX',
|
|
1061
|
-
* 'zoomY',
|
|
1062
|
-
* 'zoomXY'
|
|
1063
|
-
* ]
|
|
1064
|
-
*/
|
|
1065
|
-
items: [
|
|
1066
|
-
'zoomX',
|
|
1067
|
-
'zoomY',
|
|
1068
|
-
'zoomXY'
|
|
1069
|
-
],
|
|
1070
|
-
zoomX: {
|
|
1071
|
-
/**
|
|
1072
|
-
* A predefined background symbol for the button.
|
|
1073
|
-
*
|
|
1074
|
-
* @type {string}
|
|
1075
|
-
*/
|
|
1076
|
-
symbol: 'zoom-x.svg'
|
|
1077
|
-
},
|
|
1078
|
-
zoomY: {
|
|
1079
|
-
/**
|
|
1080
|
-
* A predefined background symbol for the button.
|
|
1081
|
-
*
|
|
1082
|
-
* @type {string}
|
|
1083
|
-
*/
|
|
1084
|
-
symbol: 'zoom-y.svg'
|
|
1085
|
-
},
|
|
1086
|
-
zoomXY: {
|
|
1087
|
-
/**
|
|
1088
|
-
* A predefined background symbol for the button.
|
|
1089
|
-
*
|
|
1090
|
-
* @type {string}
|
|
1091
|
-
*/
|
|
1092
|
-
symbol: 'zoom-xy.svg'
|
|
1093
|
-
}
|
|
1094
|
-
},
|
|
1095
|
-
typeChange: {
|
|
1096
|
-
/**
|
|
1097
|
-
* A collection of strings pointing to config options for
|
|
1098
|
-
* the items.
|
|
1099
|
-
*
|
|
1100
|
-
* @type {Array}
|
|
1101
|
-
* @default [
|
|
1102
|
-
* 'typeOHLC',
|
|
1103
|
-
* 'typeLine',
|
|
1104
|
-
* 'typeCandlestick'
|
|
1105
|
-
* 'typeHollowCandlestick'
|
|
1106
|
-
* ]
|
|
1107
|
-
*/
|
|
1108
|
-
items: [
|
|
1109
|
-
'typeOHLC',
|
|
1110
|
-
'typeLine',
|
|
1111
|
-
'typeCandlestick',
|
|
1112
|
-
'typeHollowCandlestick',
|
|
1113
|
-
'typeHLC',
|
|
1114
|
-
'typeHeikinAshi'
|
|
1115
|
-
],
|
|
1116
|
-
typeOHLC: {
|
|
1117
|
-
/**
|
|
1118
|
-
* A predefined background symbol for the button.
|
|
1119
|
-
*
|
|
1120
|
-
* @type {string}
|
|
1121
|
-
*/
|
|
1122
|
-
symbol: 'series-ohlc.svg'
|
|
1123
|
-
},
|
|
1124
|
-
typeLine: {
|
|
1125
|
-
/**
|
|
1126
|
-
* A predefined background symbol for the button.
|
|
1127
|
-
*
|
|
1128
|
-
* @type {string}
|
|
1129
|
-
*/
|
|
1130
|
-
symbol: 'series-line.svg'
|
|
1131
|
-
},
|
|
1132
|
-
typeCandlestick: {
|
|
1133
|
-
/**
|
|
1134
|
-
* A predefined background symbol for the button.
|
|
1135
|
-
*
|
|
1136
|
-
* @type {string}
|
|
1137
|
-
*/
|
|
1138
|
-
symbol: 'series-candlestick.svg'
|
|
1139
|
-
},
|
|
1140
|
-
typeHLC: {
|
|
1141
|
-
/**
|
|
1142
|
-
* A predefined background symbol for the button.
|
|
1143
|
-
*
|
|
1144
|
-
* @type {string}
|
|
1145
|
-
*/
|
|
1146
|
-
symbol: 'series-hlc.svg'
|
|
1147
|
-
},
|
|
1148
|
-
typeHeikinAshi: {
|
|
1149
|
-
/**
|
|
1150
|
-
* A predefined background symbol for the button.
|
|
1151
|
-
*
|
|
1152
|
-
* @type {string}
|
|
1153
|
-
*/
|
|
1154
|
-
symbol: 'series-heikin-ashi.svg'
|
|
1155
|
-
},
|
|
1156
|
-
typeHollowCandlestick: {
|
|
1157
|
-
/**
|
|
1158
|
-
* A predefined background symbol for the button.
|
|
1159
|
-
*
|
|
1160
|
-
* @type {string}
|
|
1161
|
-
*/
|
|
1162
|
-
symbol: 'series-hollow-candlestick.svg'
|
|
1163
|
-
}
|
|
1164
|
-
},
|
|
1165
|
-
fullScreen: {
|
|
1166
|
-
/**
|
|
1167
|
-
* A predefined background symbol for the button.
|
|
1168
|
-
*
|
|
1169
|
-
* @type {string}
|
|
1170
|
-
*/
|
|
1171
|
-
symbol: 'fullscreen.svg'
|
|
1172
|
-
},
|
|
1173
|
-
saveChart: {
|
|
1174
|
-
/**
|
|
1175
|
-
* A predefined background symbol for the button.
|
|
1176
|
-
*
|
|
1177
|
-
* @type {string}
|
|
1178
|
-
*/
|
|
1179
|
-
symbol: 'save-chart.svg'
|
|
1180
|
-
}
|
|
18
|
+
var addEvent = U.addEvent, extend = U.extend, getStyle = U.getStyle, merge = U.merge, pick = U.pick;
|
|
19
|
+
/* *
|
|
20
|
+
*
|
|
21
|
+
* Constants
|
|
22
|
+
*
|
|
23
|
+
* */
|
|
24
|
+
var composedClasses = [];
|
|
25
|
+
/* *
|
|
26
|
+
*
|
|
27
|
+
* Functions
|
|
28
|
+
*
|
|
29
|
+
* */
|
|
30
|
+
/**
|
|
31
|
+
* Verify if Toolbar should be added.
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
function chartSetStockTools(options) {
|
|
35
|
+
var chartOptions = this.options, lang = chartOptions.lang, guiOptions = merge(chartOptions.stockTools && chartOptions.stockTools.gui, options && options.gui), langOptions = lang && lang.stockTools && lang.stockTools.gui;
|
|
36
|
+
this.stockTools = new Toolbar(guiOptions, langOptions, this);
|
|
37
|
+
if (this.stockTools.guiEnabled) {
|
|
38
|
+
this.isDirtyBox = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
function compose(ChartClass, NavigationBindingsClass) {
|
|
45
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
46
|
+
composedClasses.push(ChartClass);
|
|
47
|
+
addEvent(ChartClass, 'afterGetContainer', onChartAfterGetContainer);
|
|
48
|
+
addEvent(ChartClass, 'beforeRedraw', onChartBeforeRedraw);
|
|
49
|
+
addEvent(ChartClass, 'beforeRender', onChartBeforeRedraw);
|
|
50
|
+
addEvent(ChartClass, 'destroy', onChartDestroy);
|
|
51
|
+
addEvent(ChartClass, 'getMargins', onChartGetMargins, { order: 0 });
|
|
52
|
+
addEvent(ChartClass, 'redraw', onChartRedraw);
|
|
53
|
+
addEvent(ChartClass, 'render', onChartRender);
|
|
54
|
+
ChartClass.prototype.setStockTools = chartSetStockTools;
|
|
55
|
+
}
|
|
56
|
+
if (composedClasses.indexOf(NavigationBindingsClass) === -1) {
|
|
57
|
+
composedClasses.push(NavigationBindingsClass);
|
|
58
|
+
addEvent(NavigationBindingsClass, 'deselectButton', onNavigationBindingsDeselectButton);
|
|
59
|
+
addEvent(NavigationBindingsClass, 'selectButton', onNavigationBindingsSelectButton);
|
|
60
|
+
}
|
|
61
|
+
if (composedClasses.indexOf(setOptions) === -1) {
|
|
62
|
+
composedClasses.push(setOptions);
|
|
63
|
+
setOptions(StockToolsDefaults);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Run HTML generator
|
|
68
|
+
* @private
|
|
69
|
+
*/
|
|
70
|
+
function onChartAfterGetContainer() {
|
|
71
|
+
this.setStockTools();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Handle beforeRedraw and beforeRender
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
77
|
+
function onChartBeforeRedraw() {
|
|
78
|
+
if (this.stockTools) {
|
|
79
|
+
var optionsChart = this.options.chart;
|
|
80
|
+
var listWrapper = this.stockTools.listWrapper, offsetWidth = listWrapper && ((listWrapper.startWidth +
|
|
81
|
+
getStyle(listWrapper, 'padding-left') +
|
|
82
|
+
getStyle(listWrapper, 'padding-right')) || listWrapper.offsetWidth);
|
|
83
|
+
var dirty = false;
|
|
84
|
+
if (offsetWidth && offsetWidth < this.plotWidth) {
|
|
85
|
+
var nextX = pick(optionsChart.spacingLeft, optionsChart.spacing && optionsChart.spacing[3], 0) + offsetWidth;
|
|
86
|
+
var diff = nextX - this.spacingBox.x;
|
|
87
|
+
this.spacingBox.x = nextX;
|
|
88
|
+
this.spacingBox.width -= diff;
|
|
89
|
+
dirty = true;
|
|
90
|
+
}
|
|
91
|
+
else if (offsetWidth === 0) {
|
|
92
|
+
dirty = true;
|
|
93
|
+
}
|
|
94
|
+
if (offsetWidth !== this.stockTools.prevOffsetWidth) {
|
|
95
|
+
this.stockTools.prevOffsetWidth = offsetWidth;
|
|
96
|
+
if (dirty) {
|
|
97
|
+
this.isDirtyLegend = true;
|
|
1181
98
|
}
|
|
1182
99
|
}
|
|
1183
100
|
}
|
|
1184
|
-
}
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @private
|
|
104
|
+
*/
|
|
105
|
+
function onChartDestroy() {
|
|
106
|
+
if (this.stockTools) {
|
|
107
|
+
this.stockTools.destroy();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* @private
|
|
112
|
+
*/
|
|
113
|
+
function onChartGetMargins() {
|
|
1191
114
|
var listWrapper = this.stockTools && this.stockTools.listWrapper, offsetWidth = listWrapper && ((listWrapper.startWidth +
|
|
1192
115
|
getStyle(listWrapper, 'padding-left') +
|
|
1193
116
|
getStyle(listWrapper, 'padding-right')) || listWrapper.offsetWidth);
|
|
@@ -1195,622 +118,78 @@ addEvent(Chart, 'getMargins', function () {
|
|
|
1195
118
|
this.plotLeft += offsetWidth;
|
|
1196
119
|
this.spacing[3] += offsetWidth;
|
|
1197
120
|
}
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
if (this.stockTools) {
|
|
1204
|
-
var optionsChart = this.options.chart;
|
|
1205
|
-
var listWrapper = this.stockTools.listWrapper, offsetWidth = listWrapper && ((listWrapper.startWidth +
|
|
1206
|
-
getStyle(listWrapper, 'padding-left') +
|
|
1207
|
-
getStyle(listWrapper, 'padding-right')) || listWrapper.offsetWidth);
|
|
1208
|
-
var dirty = false;
|
|
1209
|
-
if (offsetWidth && offsetWidth < this.plotWidth) {
|
|
1210
|
-
var nextX = pick(optionsChart.spacingLeft, optionsChart.spacing && optionsChart.spacing[3], 0) + offsetWidth;
|
|
1211
|
-
var diff = nextX - this.spacingBox.x;
|
|
1212
|
-
this.spacingBox.x = nextX;
|
|
1213
|
-
this.spacingBox.width -= diff;
|
|
1214
|
-
dirty = true;
|
|
1215
|
-
}
|
|
1216
|
-
else if (offsetWidth === 0) {
|
|
1217
|
-
dirty = true;
|
|
1218
|
-
}
|
|
1219
|
-
if (offsetWidth !== this.stockTools.prevOffsetWidth) {
|
|
1220
|
-
this.stockTools.prevOffsetWidth = offsetWidth;
|
|
1221
|
-
if (dirty) {
|
|
1222
|
-
this.isDirtyLegend = true;
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
}
|
|
1226
|
-
});
|
|
1227
|
-
});
|
|
1228
|
-
addEvent(Chart, 'destroy', function () {
|
|
1229
|
-
if (this.stockTools) {
|
|
1230
|
-
this.stockTools.destroy();
|
|
1231
|
-
}
|
|
1232
|
-
});
|
|
1233
|
-
addEvent(Chart, 'redraw', function () {
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
125
|
+
function onChartRedraw() {
|
|
1234
126
|
if (this.stockTools && this.stockTools.guiEnabled) {
|
|
1235
127
|
this.stockTools.redraw();
|
|
1236
128
|
}
|
|
1237
|
-
}
|
|
129
|
+
}
|
|
1238
130
|
/**
|
|
1239
|
-
*
|
|
131
|
+
* Check if the correct price indicator button is displayed, #15029.
|
|
1240
132
|
* @private
|
|
1241
|
-
* @class
|
|
1242
|
-
* @param {Object}
|
|
1243
|
-
* Options of toolbar
|
|
1244
|
-
* @param {Highcharts.Chart}
|
|
1245
|
-
* Reference to chart
|
|
1246
133
|
*/
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
this.
|
|
1254
|
-
this.
|
|
1255
|
-
|
|
1256
|
-
this.
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
// set url for icons.
|
|
1261
|
-
this.iconsURL = this.getIconsURL();
|
|
1262
|
-
this.guiEnabled = options.enabled;
|
|
1263
|
-
this.visible = pick(options.visible, true);
|
|
1264
|
-
this.placed = pick(options.placed, false);
|
|
1265
|
-
// General events collection which should be removed upon
|
|
1266
|
-
// destroy/update:
|
|
1267
|
-
this.eventsToUnbind = [];
|
|
1268
|
-
if (this.guiEnabled) {
|
|
1269
|
-
this.createHTML();
|
|
1270
|
-
this.init();
|
|
1271
|
-
this.showHideNavigatorion();
|
|
1272
|
-
}
|
|
1273
|
-
fireEvent(this, 'afterInit');
|
|
1274
|
-
}
|
|
1275
|
-
/**
|
|
1276
|
-
* Initialize the toolbar. Create buttons and submenu for each option
|
|
1277
|
-
* defined in `stockTools.gui`.
|
|
1278
|
-
* @private
|
|
1279
|
-
*/
|
|
1280
|
-
Toolbar.prototype.init = function () {
|
|
1281
|
-
var _self = this, lang = this.lang, guiOptions = this.options, toolbar = this.toolbar, addSubmenu = _self.addSubmenu, buttons = guiOptions.buttons, defs = guiOptions.definitions, allButtons = toolbar.childNodes, button;
|
|
1282
|
-
// create buttons
|
|
1283
|
-
buttons.forEach(function (btnName) {
|
|
1284
|
-
button = _self.addButton(toolbar, defs, btnName, lang);
|
|
1285
|
-
_self.eventsToUnbind.push(addEvent(button.buttonWrapper, 'click', function () {
|
|
1286
|
-
_self.eraseActiveButtons(allButtons, button.buttonWrapper);
|
|
1287
|
-
}));
|
|
1288
|
-
if (isArray(defs[btnName].items)) {
|
|
1289
|
-
// create submenu buttons
|
|
1290
|
-
addSubmenu.call(_self, button, defs[btnName]);
|
|
1291
|
-
}
|
|
1292
|
-
});
|
|
1293
|
-
};
|
|
1294
|
-
/**
|
|
1295
|
-
* Create submenu (list of buttons) for the option. In example main button
|
|
1296
|
-
* is Line, in submenu will be buttons with types of lines.
|
|
1297
|
-
*
|
|
1298
|
-
* @private
|
|
1299
|
-
*
|
|
1300
|
-
* @param {Highcharts.Dictionary<Highcharts.HTMLDOMElement>} parentBtn
|
|
1301
|
-
* Button which has submenu
|
|
1302
|
-
*
|
|
1303
|
-
* @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button
|
|
1304
|
-
* List of all buttons
|
|
1305
|
-
*/
|
|
1306
|
-
Toolbar.prototype.addSubmenu = function (parentBtn, button) {
|
|
1307
|
-
var _self = this, submenuArrow = parentBtn.submenuArrow, buttonWrapper = parentBtn.buttonWrapper, buttonWidth = getStyle(buttonWrapper, 'width'), wrapper = this.wrapper, menuWrapper = this.listWrapper, allButtons = this.toolbar.childNodes, topMargin = 0, submenuWrapper;
|
|
1308
|
-
// create submenu container
|
|
1309
|
-
this.submenu = submenuWrapper = createElement(UL, {
|
|
1310
|
-
className: PREFIX + 'submenu-wrapper'
|
|
1311
|
-
}, void 0, buttonWrapper);
|
|
1312
|
-
// create submenu buttons and select the first one
|
|
1313
|
-
this.addSubmenuItems(buttonWrapper, button);
|
|
1314
|
-
// show / hide submenu
|
|
1315
|
-
_self.eventsToUnbind.push(addEvent(submenuArrow, 'click', function (e) {
|
|
1316
|
-
e.stopPropagation();
|
|
1317
|
-
// Erase active class on all other buttons
|
|
1318
|
-
_self.eraseActiveButtons(allButtons, buttonWrapper);
|
|
1319
|
-
// hide menu
|
|
1320
|
-
if (buttonWrapper.className.indexOf(PREFIX + 'current') >= 0) {
|
|
1321
|
-
menuWrapper.style.width =
|
|
1322
|
-
menuWrapper.startWidth + 'px';
|
|
1323
|
-
buttonWrapper.classList.remove(PREFIX + 'current');
|
|
1324
|
-
submenuWrapper.style.display = 'none';
|
|
1325
|
-
}
|
|
1326
|
-
else {
|
|
1327
|
-
// show menu
|
|
1328
|
-
// to calculate height of element
|
|
1329
|
-
submenuWrapper.style.display = 'block';
|
|
1330
|
-
topMargin = submenuWrapper.offsetHeight -
|
|
1331
|
-
buttonWrapper.offsetHeight - 3;
|
|
1332
|
-
// calculate position of submenu in the box
|
|
1333
|
-
// if submenu is inside, reset top margin
|
|
1334
|
-
if (
|
|
1335
|
-
// cut on the bottom
|
|
1336
|
-
!(submenuWrapper.offsetHeight +
|
|
1337
|
-
buttonWrapper.offsetTop >
|
|
1338
|
-
wrapper.offsetHeight &&
|
|
1339
|
-
// cut on the top
|
|
1340
|
-
buttonWrapper.offsetTop > topMargin)) {
|
|
1341
|
-
topMargin = 0;
|
|
1342
|
-
}
|
|
1343
|
-
// apply calculated styles
|
|
1344
|
-
css(submenuWrapper, {
|
|
1345
|
-
top: -topMargin + 'px',
|
|
1346
|
-
left: buttonWidth + 3 + 'px'
|
|
1347
|
-
});
|
|
1348
|
-
buttonWrapper.className += ' ' + PREFIX + 'current';
|
|
1349
|
-
menuWrapper.startWidth = wrapper.offsetWidth;
|
|
1350
|
-
menuWrapper.style.width = menuWrapper.startWidth +
|
|
1351
|
-
getStyle(menuWrapper, 'padding-left') +
|
|
1352
|
-
submenuWrapper.offsetWidth + 3 + 'px';
|
|
1353
|
-
}
|
|
1354
|
-
}));
|
|
1355
|
-
};
|
|
1356
|
-
/**
|
|
1357
|
-
* Create buttons in submenu
|
|
1358
|
-
*
|
|
1359
|
-
* @private
|
|
1360
|
-
*
|
|
1361
|
-
* @param {Highcharts.HTMLDOMElement} buttonWrapper
|
|
1362
|
-
* Button where submenu is placed
|
|
1363
|
-
*
|
|
1364
|
-
* @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button
|
|
1365
|
-
* List of all buttons options
|
|
1366
|
-
*/
|
|
1367
|
-
Toolbar.prototype.addSubmenuItems = function (buttonWrapper, button) {
|
|
1368
|
-
var _self = this, submenuWrapper = this.submenu, lang = this.lang, menuWrapper = this.listWrapper, items = button.items, firstSubmenuItem, submenuBtn;
|
|
1369
|
-
// add items to submenu
|
|
1370
|
-
items.forEach(function (btnName) {
|
|
1371
|
-
// add buttons to submenu
|
|
1372
|
-
submenuBtn = _self.addButton(submenuWrapper, button, btnName, lang);
|
|
1373
|
-
_self.eventsToUnbind.push(addEvent(submenuBtn.mainButton, 'click', function () {
|
|
1374
|
-
_self.switchSymbol(this, buttonWrapper, true);
|
|
1375
|
-
menuWrapper.style.width =
|
|
1376
|
-
menuWrapper.startWidth + 'px';
|
|
1377
|
-
submenuWrapper.style.display = 'none';
|
|
1378
|
-
}));
|
|
1379
|
-
});
|
|
1380
|
-
// select first submenu item
|
|
1381
|
-
firstSubmenuItem = submenuWrapper
|
|
1382
|
-
.querySelectorAll('li > .' + PREFIX + 'menu-item-btn')[0];
|
|
1383
|
-
// replace current symbol, in main button, with submenu's button style
|
|
1384
|
-
_self.switchSymbol(firstSubmenuItem, false);
|
|
1385
|
-
};
|
|
1386
|
-
/*
|
|
1387
|
-
* Erase active class on all other buttons.
|
|
1388
|
-
*
|
|
1389
|
-
* @param {Array} - Array of HTML buttons
|
|
1390
|
-
* @param {HTMLDOMElement} - Current HTML button
|
|
1391
|
-
*
|
|
1392
|
-
*/
|
|
1393
|
-
Toolbar.prototype.eraseActiveButtons = function (buttons, currentButton, submenuItems) {
|
|
1394
|
-
[].forEach.call(buttons, function (btn) {
|
|
1395
|
-
if (btn !== currentButton) {
|
|
1396
|
-
btn.classList.remove(PREFIX + 'current');
|
|
1397
|
-
btn.classList.remove(PREFIX + 'active');
|
|
1398
|
-
submenuItems =
|
|
1399
|
-
btn.querySelectorAll('.' + PREFIX + 'submenu-wrapper');
|
|
1400
|
-
// hide submenu
|
|
1401
|
-
if (submenuItems.length > 0) {
|
|
1402
|
-
submenuItems[0].style.display = 'none';
|
|
1403
|
-
}
|
|
1404
|
-
}
|
|
1405
|
-
});
|
|
1406
|
-
};
|
|
1407
|
-
/**
|
|
1408
|
-
* Create single button. Consist of HTML elements `li`, `span`, and (if
|
|
1409
|
-
* exists) submenu container.
|
|
1410
|
-
* @private
|
|
1411
|
-
* @param {Highcharts.HTMLDOMElement} target
|
|
1412
|
-
* HTML reference, where button should be added
|
|
1413
|
-
* @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions|Highcharts.StockToolsGuiDefinitionsOptions} options
|
|
1414
|
-
* All options, by btnName refer to particular button
|
|
1415
|
-
* @param {string} btnName
|
|
1416
|
-
* of functionality mapped for specific class
|
|
1417
|
-
* @param {Highcharts.Dictionary<string>} lang
|
|
1418
|
-
* All titles, by btnName refer to particular button
|
|
1419
|
-
* @return {Object} - references to all created HTML elements
|
|
1420
|
-
*/
|
|
1421
|
-
Toolbar.prototype.addButton = function (target, options, btnName, lang) {
|
|
1422
|
-
if (lang === void 0) { lang = {}; }
|
|
1423
|
-
var btnOptions = options[btnName], items = btnOptions.items, classMapping = Toolbar.prototype.classMapping, userClassName = btnOptions.className || '', mainButton, submenuArrow, buttonWrapper;
|
|
1424
|
-
// main button wrapper
|
|
1425
|
-
buttonWrapper = createElement(LI, {
|
|
1426
|
-
className: pick(classMapping[btnName], '') + ' ' + userClassName,
|
|
1427
|
-
title: lang[btnName] || btnName
|
|
1428
|
-
}, void 0, target);
|
|
1429
|
-
// single button
|
|
1430
|
-
mainButton = createElement(SPAN, {
|
|
1431
|
-
className: PREFIX + 'menu-item-btn'
|
|
1432
|
-
}, void 0, buttonWrapper);
|
|
1433
|
-
// submenu
|
|
1434
|
-
if (items && items.length) {
|
|
1435
|
-
// arrow is a hook to show / hide submenu
|
|
1436
|
-
submenuArrow = createElement(SPAN, {
|
|
1437
|
-
className: PREFIX + 'submenu-item-arrow ' +
|
|
1438
|
-
PREFIX + 'arrow-right'
|
|
1439
|
-
}, void 0, buttonWrapper);
|
|
1440
|
-
submenuArrow.style.backgroundImage = 'url(' +
|
|
1441
|
-
this.iconsURL + 'arrow-bottom.svg)';
|
|
1442
|
-
}
|
|
1443
|
-
else {
|
|
1444
|
-
mainButton.style.backgroundImage = 'url(' +
|
|
1445
|
-
this.iconsURL + btnOptions.symbol + ')';
|
|
1446
|
-
}
|
|
1447
|
-
return {
|
|
1448
|
-
buttonWrapper: buttonWrapper,
|
|
1449
|
-
mainButton: mainButton,
|
|
1450
|
-
submenuArrow: submenuArrow
|
|
1451
|
-
};
|
|
1452
|
-
};
|
|
1453
|
-
/*
|
|
1454
|
-
* Create navigation's HTML elements: container and arrows.
|
|
1455
|
-
*
|
|
1456
|
-
*/
|
|
1457
|
-
Toolbar.prototype.addNavigation = function () {
|
|
1458
|
-
var stockToolbar = this, wrapper = stockToolbar.wrapper;
|
|
1459
|
-
// arrow wrapper
|
|
1460
|
-
stockToolbar.arrowWrapper = createElement(DIV, {
|
|
1461
|
-
className: PREFIX + 'arrow-wrapper'
|
|
1462
|
-
});
|
|
1463
|
-
stockToolbar.arrowUp = createElement(DIV, {
|
|
1464
|
-
className: PREFIX + 'arrow-up'
|
|
1465
|
-
}, void 0, stockToolbar.arrowWrapper);
|
|
1466
|
-
stockToolbar.arrowUp.style.backgroundImage =
|
|
1467
|
-
'url(' + this.iconsURL + 'arrow-right.svg)';
|
|
1468
|
-
stockToolbar.arrowDown = createElement(DIV, {
|
|
1469
|
-
className: PREFIX + 'arrow-down'
|
|
1470
|
-
}, void 0, stockToolbar.arrowWrapper);
|
|
1471
|
-
stockToolbar.arrowDown.style.backgroundImage =
|
|
1472
|
-
'url(' + this.iconsURL + 'arrow-right.svg)';
|
|
1473
|
-
wrapper.insertBefore(stockToolbar.arrowWrapper, wrapper.childNodes[0]);
|
|
1474
|
-
// attach scroll events
|
|
1475
|
-
stockToolbar.scrollButtons();
|
|
1476
|
-
};
|
|
1477
|
-
/*
|
|
1478
|
-
* Add events to navigation (two arrows) which allows user to scroll
|
|
1479
|
-
* top/down GUI buttons, if container's height is not enough.
|
|
1480
|
-
*
|
|
1481
|
-
*/
|
|
1482
|
-
Toolbar.prototype.scrollButtons = function () {
|
|
1483
|
-
var targetY = 0, _self = this, wrapper = _self.wrapper, toolbar = _self.toolbar, step = 0.1 * wrapper.offsetHeight; // 0.1 = 10%
|
|
1484
|
-
_self.eventsToUnbind.push(addEvent(_self.arrowUp, 'click', function () {
|
|
1485
|
-
if (targetY > 0) {
|
|
1486
|
-
targetY -= step;
|
|
1487
|
-
toolbar.style.marginTop = -targetY + 'px';
|
|
1488
|
-
}
|
|
1489
|
-
}));
|
|
1490
|
-
_self.eventsToUnbind.push(addEvent(_self.arrowDown, 'click', function () {
|
|
1491
|
-
if (wrapper.offsetHeight + targetY <=
|
|
1492
|
-
toolbar.offsetHeight + step) {
|
|
1493
|
-
targetY += step;
|
|
1494
|
-
toolbar.style.marginTop = -targetY + 'px';
|
|
1495
|
-
}
|
|
1496
|
-
}));
|
|
1497
|
-
};
|
|
1498
|
-
/*
|
|
1499
|
-
* Create stockTools HTML main elements.
|
|
1500
|
-
*
|
|
1501
|
-
*/
|
|
1502
|
-
Toolbar.prototype.createHTML = function () {
|
|
1503
|
-
var stockToolbar = this, chart = stockToolbar.chart, guiOptions = stockToolbar.options, container = chart.container, navigation = chart.options.navigation, bindingsClassName = navigation && navigation.bindingsClassName, listWrapper, toolbar;
|
|
1504
|
-
// create main container
|
|
1505
|
-
var wrapper = stockToolbar.wrapper = createElement(DIV, {
|
|
1506
|
-
className: PREFIX + 'stocktools-wrapper ' +
|
|
1507
|
-
guiOptions.className + ' ' + bindingsClassName
|
|
1508
|
-
});
|
|
1509
|
-
container.appendChild(wrapper);
|
|
1510
|
-
// Mimic event behaviour of being outside chart.container
|
|
1511
|
-
[
|
|
1512
|
-
'mousedown',
|
|
1513
|
-
'mousemove',
|
|
1514
|
-
'click',
|
|
1515
|
-
'touchstart'
|
|
1516
|
-
].forEach(function (eventType) {
|
|
1517
|
-
addEvent(wrapper, eventType, function (e) {
|
|
1518
|
-
return e.stopPropagation();
|
|
1519
|
-
});
|
|
1520
|
-
});
|
|
1521
|
-
addEvent(wrapper, 'mouseover', function (e) {
|
|
1522
|
-
return chart.pointer.onContainerMouseLeave(e);
|
|
1523
|
-
});
|
|
1524
|
-
// toolbar
|
|
1525
|
-
stockToolbar.toolbar = toolbar = createElement(UL, {
|
|
1526
|
-
className: PREFIX + 'stocktools-toolbar ' +
|
|
1527
|
-
guiOptions.toolbarClassName
|
|
1528
|
-
});
|
|
1529
|
-
// add container for list of buttons
|
|
1530
|
-
stockToolbar.listWrapper = listWrapper = createElement(DIV, {
|
|
1531
|
-
className: PREFIX + 'menu-wrapper'
|
|
1532
|
-
});
|
|
1533
|
-
wrapper.insertBefore(listWrapper, wrapper.childNodes[0]);
|
|
1534
|
-
listWrapper.insertBefore(toolbar, listWrapper.childNodes[0]);
|
|
1535
|
-
stockToolbar.showHideToolbar();
|
|
1536
|
-
// add navigation which allows user to scroll down / top GUI buttons
|
|
1537
|
-
stockToolbar.addNavigation();
|
|
1538
|
-
};
|
|
1539
|
-
/**
|
|
1540
|
-
* Function called in redraw verifies if the navigation should be visible.
|
|
1541
|
-
* @private
|
|
1542
|
-
*/
|
|
1543
|
-
Toolbar.prototype.showHideNavigatorion = function () {
|
|
1544
|
-
// arrows
|
|
1545
|
-
// 50px space for arrows
|
|
1546
|
-
if (this.visible &&
|
|
1547
|
-
this.toolbar.offsetHeight > (this.wrapper.offsetHeight - 50)) {
|
|
1548
|
-
this.arrowWrapper.style.display = 'block';
|
|
1549
|
-
}
|
|
1550
|
-
else {
|
|
1551
|
-
// reset margin if whole toolbar is visible
|
|
1552
|
-
this.toolbar.style.marginTop = '0px';
|
|
1553
|
-
// hide arrows
|
|
1554
|
-
this.arrowWrapper.style.display = 'none';
|
|
1555
|
-
}
|
|
1556
|
-
};
|
|
1557
|
-
/**
|
|
1558
|
-
* Create button which shows or hides GUI toolbar.
|
|
1559
|
-
* @private
|
|
1560
|
-
*/
|
|
1561
|
-
Toolbar.prototype.showHideToolbar = function () {
|
|
1562
|
-
var stockToolbar = this, chart = this.chart, wrapper = stockToolbar.wrapper, toolbar = this.listWrapper, submenu = this.submenu, visible = this.visible, showhideBtn;
|
|
1563
|
-
// Show hide toolbar
|
|
1564
|
-
this.showhideBtn = showhideBtn = createElement(DIV, {
|
|
1565
|
-
className: PREFIX + 'toggle-toolbar ' + PREFIX + 'arrow-left'
|
|
1566
|
-
}, void 0, wrapper);
|
|
1567
|
-
showhideBtn.style.backgroundImage =
|
|
1568
|
-
'url(' + this.iconsURL + 'arrow-right.svg)';
|
|
1569
|
-
if (!visible) {
|
|
1570
|
-
// hide
|
|
1571
|
-
if (submenu) {
|
|
1572
|
-
submenu.style.display = 'none';
|
|
1573
|
-
}
|
|
1574
|
-
showhideBtn.style.left = '0px';
|
|
1575
|
-
stockToolbar.visible = visible = false;
|
|
1576
|
-
toolbar.classList.add(PREFIX + 'hide');
|
|
1577
|
-
showhideBtn.classList.toggle(PREFIX + 'arrow-right');
|
|
1578
|
-
wrapper.style.height = showhideBtn.offsetHeight + 'px';
|
|
1579
|
-
}
|
|
1580
|
-
else {
|
|
1581
|
-
wrapper.style.height = '100%';
|
|
1582
|
-
showhideBtn.style.top = getStyle(toolbar, 'padding-top') + 'px';
|
|
1583
|
-
showhideBtn.style.left = (wrapper.offsetWidth +
|
|
1584
|
-
getStyle(toolbar, 'padding-left')) + 'px';
|
|
1585
|
-
}
|
|
1586
|
-
// Toggle menu
|
|
1587
|
-
stockToolbar.eventsToUnbind.push(addEvent(showhideBtn, 'click', function () {
|
|
1588
|
-
chart.update({
|
|
1589
|
-
stockTools: {
|
|
1590
|
-
gui: {
|
|
1591
|
-
visible: !visible,
|
|
1592
|
-
placed: true
|
|
1593
|
-
}
|
|
1594
|
-
}
|
|
1595
|
-
});
|
|
1596
|
-
}));
|
|
1597
|
-
};
|
|
1598
|
-
/*
|
|
1599
|
-
* In main GUI button, replace icon and class with submenu button's
|
|
1600
|
-
* class / symbol.
|
|
1601
|
-
*
|
|
1602
|
-
* @param {HTMLDOMElement} - submenu button
|
|
1603
|
-
* @param {Boolean} - true or false
|
|
1604
|
-
*
|
|
1605
|
-
*/
|
|
1606
|
-
Toolbar.prototype.switchSymbol = function (button, redraw) {
|
|
1607
|
-
var buttonWrapper = button.parentNode, buttonWrapperClass = buttonWrapper.className,
|
|
1608
|
-
// main button in first level og GUI
|
|
1609
|
-
mainNavButton = buttonWrapper.parentNode.parentNode;
|
|
1610
|
-
// if the button is disabled, don't do anything
|
|
1611
|
-
if (buttonWrapperClass.indexOf('highcharts-disabled-btn') > -1) {
|
|
1612
|
-
return;
|
|
1613
|
-
}
|
|
1614
|
-
// set class
|
|
1615
|
-
mainNavButton.className = '';
|
|
1616
|
-
if (buttonWrapperClass) {
|
|
1617
|
-
mainNavButton.classList.add(buttonWrapperClass.trim());
|
|
1618
|
-
}
|
|
1619
|
-
// set icon
|
|
1620
|
-
mainNavButton
|
|
1621
|
-
.querySelectorAll('.' + PREFIX + 'menu-item-btn')[0]
|
|
1622
|
-
.style.backgroundImage =
|
|
1623
|
-
button.style.backgroundImage;
|
|
1624
|
-
// set active class
|
|
1625
|
-
if (redraw) {
|
|
1626
|
-
this.toggleButtonAciveClass(mainNavButton);
|
|
1627
|
-
}
|
|
1628
|
-
};
|
|
1629
|
-
/*
|
|
1630
|
-
* Set select state (active class) on button.
|
|
1631
|
-
*
|
|
1632
|
-
* @param {HTMLDOMElement} - button
|
|
1633
|
-
*
|
|
1634
|
-
*/
|
|
1635
|
-
Toolbar.prototype.toggleButtonAciveClass = function (button) {
|
|
1636
|
-
if (button.className.indexOf(activeClass) >= 0) {
|
|
1637
|
-
button.classList.remove(activeClass);
|
|
134
|
+
function onChartRender() {
|
|
135
|
+
var stockTools = this.stockTools, button = stockTools &&
|
|
136
|
+
stockTools.toolbar &&
|
|
137
|
+
stockTools.toolbar.querySelector('.highcharts-current-price-indicator');
|
|
138
|
+
// Change the initial button background.
|
|
139
|
+
if (stockTools &&
|
|
140
|
+
this.navigationBindings &&
|
|
141
|
+
this.options.series &&
|
|
142
|
+
button) {
|
|
143
|
+
if (this.navigationBindings.constructor.prototype.utils
|
|
144
|
+
.isPriceIndicatorEnabled(this.series)) {
|
|
145
|
+
button.firstChild.style['background-image'] =
|
|
146
|
+
'url("' + stockTools.getIconsURL() + 'current-price-hide.svg")';
|
|
1638
147
|
}
|
|
1639
148
|
else {
|
|
1640
|
-
button.
|
|
1641
|
-
|
|
1642
|
-
};
|
|
1643
|
-
/*
|
|
1644
|
-
* Remove active class from all buttons except defined.
|
|
1645
|
-
*
|
|
1646
|
-
* @param {HTMLDOMElement} - button which should not be deactivated
|
|
1647
|
-
*
|
|
1648
|
-
*/
|
|
1649
|
-
Toolbar.prototype.unselectAllButtons = function (button) {
|
|
1650
|
-
var activeButtons = button.parentNode
|
|
1651
|
-
.querySelectorAll('.' + activeClass);
|
|
1652
|
-
[].forEach.call(activeButtons, function (activeBtn) {
|
|
1653
|
-
if (activeBtn !== button) {
|
|
1654
|
-
activeBtn.classList.remove(activeClass);
|
|
1655
|
-
}
|
|
1656
|
-
});
|
|
1657
|
-
};
|
|
1658
|
-
/*
|
|
1659
|
-
* Update GUI with given options.
|
|
1660
|
-
*
|
|
1661
|
-
* @param {Object} - general options for Stock Tools
|
|
1662
|
-
*/
|
|
1663
|
-
Toolbar.prototype.update = function (options, redraw) {
|
|
1664
|
-
merge(true, this.chart.options.stockTools, options);
|
|
1665
|
-
this.destroy();
|
|
1666
|
-
this.chart.setStockTools(options);
|
|
1667
|
-
// If Stock Tools are updated, then bindings should be updated too:
|
|
1668
|
-
if (this.chart.navigationBindings) {
|
|
1669
|
-
this.chart.navigationBindings.update();
|
|
1670
|
-
}
|
|
1671
|
-
this.chart.isDirtyBox = true;
|
|
1672
|
-
if (pick(redraw, true)) {
|
|
1673
|
-
this.chart.redraw();
|
|
1674
|
-
}
|
|
1675
|
-
};
|
|
1676
|
-
/**
|
|
1677
|
-
* Destroy all HTML GUI elements.
|
|
1678
|
-
* @private
|
|
1679
|
-
*/
|
|
1680
|
-
Toolbar.prototype.destroy = function () {
|
|
1681
|
-
var stockToolsDiv = this.wrapper, parent = stockToolsDiv && stockToolsDiv.parentNode;
|
|
1682
|
-
this.eventsToUnbind.forEach(function (unbinder) {
|
|
1683
|
-
unbinder();
|
|
1684
|
-
});
|
|
1685
|
-
// Remove the empty element
|
|
1686
|
-
if (parent) {
|
|
1687
|
-
parent.removeChild(stockToolsDiv);
|
|
149
|
+
button.firstChild.style['background-image'] =
|
|
150
|
+
'url("' + stockTools.getIconsURL() + 'current-price-show.svg")';
|
|
1688
151
|
}
|
|
1689
|
-
}
|
|
1690
|
-
|
|
1691
|
-
* Redraw, GUI requires to verify if the navigation should be visible.
|
|
1692
|
-
* @private
|
|
1693
|
-
*/
|
|
1694
|
-
Toolbar.prototype.redraw = function () {
|
|
1695
|
-
this.showHideNavigatorion();
|
|
1696
|
-
};
|
|
1697
|
-
Toolbar.prototype.getIconsURL = function () {
|
|
1698
|
-
return this.chart.options.navigation.iconsURL ||
|
|
1699
|
-
this.options.iconsURL ||
|
|
1700
|
-
'https://code.highcharts.com/10.2.0/gfx/stock-icons/';
|
|
1701
|
-
};
|
|
1702
|
-
return Toolbar;
|
|
1703
|
-
}());
|
|
152
|
+
}
|
|
153
|
+
}
|
|
1704
154
|
/**
|
|
1705
|
-
* Mapping JSON fields to CSS classes.
|
|
1706
155
|
* @private
|
|
1707
156
|
*/
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
ellipse: PREFIX + 'ellipse-annotation',
|
|
1711
|
-
rectangle: PREFIX + 'rectangle-annotation',
|
|
1712
|
-
label: PREFIX + 'label-annotation',
|
|
1713
|
-
segment: PREFIX + 'segment',
|
|
1714
|
-
arrowSegment: PREFIX + 'arrow-segment',
|
|
1715
|
-
ray: PREFIX + 'ray',
|
|
1716
|
-
arrowRay: PREFIX + 'arrow-ray',
|
|
1717
|
-
line: PREFIX + 'infinity-line',
|
|
1718
|
-
arrowInfinityLine: PREFIX + 'arrow-infinity-line',
|
|
1719
|
-
verticalLine: PREFIX + 'vertical-line',
|
|
1720
|
-
horizontalLine: PREFIX + 'horizontal-line',
|
|
1721
|
-
crooked3: PREFIX + 'crooked3',
|
|
1722
|
-
crooked5: PREFIX + 'crooked5',
|
|
1723
|
-
elliott3: PREFIX + 'elliott3',
|
|
1724
|
-
elliott5: PREFIX + 'elliott5',
|
|
1725
|
-
pitchfork: PREFIX + 'pitchfork',
|
|
1726
|
-
fibonacci: PREFIX + 'fibonacci',
|
|
1727
|
-
fibonacciTimeZones: PREFIX + 'fibonacci-time-zones',
|
|
1728
|
-
parallelChannel: PREFIX + 'parallel-channel',
|
|
1729
|
-
measureX: PREFIX + 'measure-x',
|
|
1730
|
-
measureY: PREFIX + 'measure-y',
|
|
1731
|
-
measureXY: PREFIX + 'measure-xy',
|
|
1732
|
-
timeCycles: PREFIX + 'time-cycles',
|
|
1733
|
-
verticalCounter: PREFIX + 'vertical-counter',
|
|
1734
|
-
verticalLabel: PREFIX + 'vertical-label',
|
|
1735
|
-
verticalArrow: PREFIX + 'vertical-arrow',
|
|
1736
|
-
currentPriceIndicator: PREFIX + 'current-price-indicator',
|
|
1737
|
-
indicators: PREFIX + 'indicators',
|
|
1738
|
-
flagCirclepin: PREFIX + 'flag-circlepin',
|
|
1739
|
-
flagDiamondpin: PREFIX + 'flag-diamondpin',
|
|
1740
|
-
flagSquarepin: PREFIX + 'flag-squarepin',
|
|
1741
|
-
flagSimplepin: PREFIX + 'flag-simplepin',
|
|
1742
|
-
zoomX: PREFIX + 'zoom-x',
|
|
1743
|
-
zoomY: PREFIX + 'zoom-y',
|
|
1744
|
-
zoomXY: PREFIX + 'zoom-xy',
|
|
1745
|
-
typeLine: PREFIX + 'series-type-line',
|
|
1746
|
-
typeOHLC: PREFIX + 'series-type-ohlc',
|
|
1747
|
-
typeHLC: PREFIX + 'series-type-hlc',
|
|
1748
|
-
typeCandlestick: PREFIX + 'series-type-candlestick',
|
|
1749
|
-
typeHollowCandlestick: PREFIX + 'series-type-hollowcandlestick',
|
|
1750
|
-
typeHeikinAshi: PREFIX + 'series-type-heikinashi',
|
|
1751
|
-
fullScreen: PREFIX + 'full-screen',
|
|
1752
|
-
toggleAnnotations: PREFIX + 'toggle-annotations',
|
|
1753
|
-
saveChart: PREFIX + 'save-chart',
|
|
1754
|
-
separator: PREFIX + 'separator'
|
|
1755
|
-
};
|
|
1756
|
-
extend(Chart.prototype, {
|
|
1757
|
-
/**
|
|
1758
|
-
* Verify if Toolbar should be added.
|
|
1759
|
-
* @private
|
|
1760
|
-
* @param {Highcharts.StockToolsOptions} - chart options
|
|
1761
|
-
*/
|
|
1762
|
-
setStockTools: function (options) {
|
|
1763
|
-
var chartOptions = this.options, lang = chartOptions.lang, guiOptions = merge(chartOptions.stockTools && chartOptions.stockTools.gui, options && options.gui), langOptions = lang && lang.stockTools && lang.stockTools.gui;
|
|
1764
|
-
this.stockTools = new Toolbar(guiOptions, langOptions, this);
|
|
1765
|
-
if (this.stockTools.guiEnabled) {
|
|
1766
|
-
this.isDirtyBox = true;
|
|
1767
|
-
}
|
|
1768
|
-
}
|
|
1769
|
-
});
|
|
1770
|
-
// Comunication with bindings:
|
|
1771
|
-
addEvent(NavigationBindings, 'selectButton', function (event) {
|
|
1772
|
-
var button = event.button, className = PREFIX + 'submenu-wrapper', gui = this.chart.stockTools;
|
|
157
|
+
function onNavigationBindingsDeselectButton(event) {
|
|
158
|
+
var className = 'highcharts-submenu-wrapper', gui = this.chart.stockTools;
|
|
1773
159
|
if (gui && gui.guiEnabled) {
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
// If clicked on a submenu, select state for it's parent
|
|
160
|
+
var button = event.button;
|
|
161
|
+
// If deselecting a button from a submenu, select state for it's parent
|
|
1777
162
|
if (button.parentNode.className.indexOf(className) >= 0) {
|
|
1778
163
|
button = button.parentNode.parentNode;
|
|
1779
164
|
}
|
|
1780
165
|
// Set active class on the current button
|
|
1781
|
-
gui.
|
|
166
|
+
gui.toggleButtonActiveClass(button);
|
|
1782
167
|
}
|
|
1783
|
-
}
|
|
1784
|
-
|
|
1785
|
-
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Communication with bindings
|
|
171
|
+
* @private
|
|
172
|
+
*/
|
|
173
|
+
function onNavigationBindingsSelectButton(event) {
|
|
174
|
+
var className = 'highcharts-submenu-wrapper', gui = this.chart.stockTools;
|
|
1786
175
|
if (gui && gui.guiEnabled) {
|
|
1787
|
-
|
|
176
|
+
var button = event.button;
|
|
177
|
+
// Unslect other active buttons
|
|
178
|
+
gui.unselectAllButtons(event.button);
|
|
179
|
+
// If clicked on a submenu, select state for it's parent
|
|
1788
180
|
if (button.parentNode.className.indexOf(className) >= 0) {
|
|
1789
181
|
button = button.parentNode.parentNode;
|
|
1790
182
|
}
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
});
|
|
1794
|
-
// Check if the correct price indicator button is displayed, #15029.
|
|
1795
|
-
addEvent(Chart, 'render', function () {
|
|
1796
|
-
var chart = this, stockTools = chart.stockTools, button = stockTools &&
|
|
1797
|
-
stockTools.toolbar &&
|
|
1798
|
-
stockTools.toolbar.querySelector('.highcharts-current-price-indicator');
|
|
1799
|
-
// Change the initial button background.
|
|
1800
|
-
if (stockTools &&
|
|
1801
|
-
chart.navigationBindings &&
|
|
1802
|
-
chart.options.series &&
|
|
1803
|
-
button) {
|
|
1804
|
-
if (chart.navigationBindings.constructor.prototype.utils
|
|
1805
|
-
.isPriceIndicatorEnabled(chart.series)) {
|
|
1806
|
-
button.firstChild.style['background-image'] =
|
|
1807
|
-
'url("' + stockTools.getIconsURL() + 'current-price-hide.svg")';
|
|
1808
|
-
}
|
|
1809
|
-
else {
|
|
1810
|
-
button.firstChild.style['background-image'] =
|
|
1811
|
-
'url("' + stockTools.getIconsURL() + 'current-price-show.svg")';
|
|
1812
|
-
}
|
|
183
|
+
// Set active class on the current button
|
|
184
|
+
gui.toggleButtonActiveClass(button);
|
|
1813
185
|
}
|
|
1814
|
-
}
|
|
1815
|
-
|
|
1816
|
-
|
|
186
|
+
}
|
|
187
|
+
/* *
|
|
188
|
+
*
|
|
189
|
+
* Default Export
|
|
190
|
+
*
|
|
191
|
+
* */
|
|
192
|
+
var StockToolsGui = {
|
|
193
|
+
compose: compose
|
|
194
|
+
};
|
|
195
|
+
export default StockToolsGui;
|