ps-toolkit-ui 0.0.207 → 0.0.211
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/karma.conf.js +32 -0
- package/ng-package.json +16 -0
- package/package.json +19 -22
- package/src/assets/plugins/highcharts/code/css/annotations/popup.css +276 -0
- package/src/assets/plugins/highcharts/code/css/annotations/popup.scss +289 -0
- package/src/assets/plugins/highcharts/code/css/highcharts.css +1013 -0
- package/src/assets/plugins/highcharts/code/css/highcharts.scss +896 -0
- package/src/assets/plugins/highcharts/code/css/stocktools/gui.css +271 -0
- package/src/assets/plugins/highcharts/code/css/stocktools/gui.scss +271 -0
- package/src/assets/plugins/highcharts/code/css/themes/dark-unica.css +1074 -0
- package/src/assets/plugins/highcharts/code/css/themes/dark-unica.scss +122 -0
- package/src/assets/plugins/highcharts/code/css/themes/grid-light.css +1027 -0
- package/src/assets/plugins/highcharts/code/css/themes/grid-light.scss +33 -0
- package/src/assets/plugins/highcharts/code/css/themes/sand-signika.css +1043 -0
- package/src/assets/plugins/highcharts/code/css/themes/sand-signika.scss +74 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/A11yI18n.js +299 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Accessibility.js +401 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/AccessibilityComponent.js +153 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/AnnotationsA11y.js +160 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/ContainerComponent.js +159 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/InfoRegionsComponent.js +543 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/LegendComponent.js +478 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/MenuComponent.js +451 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/RangeSelectorComponent.js +506 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +217 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +324 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +148 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +390 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +650 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/ZoomComponent.js +375 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/FocusBorder.js +302 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/HighContrastMode.js +96 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/HighContrastTheme.js +221 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/KeyboardNavigation.js +449 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/KeyboardNavigationHandler.js +128 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Options/DeprecatedOptions.js +250 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Options/LangOptions.js +339 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Options/Options.js +831 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/ProxyElement.js +218 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/ProxyProvider.js +302 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/Announcer.js +91 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/ChartUtilities.js +294 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/DOMElementProvider.js +62 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/EventProvider.js +58 -0
- package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/HTMLUtilities.js +305 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Animation/AnimationUtilities.js +200 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Animation/Fx.js +387 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Axis.js +3225 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Axis3D.js +612 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/AxisDefaults.js +2935 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/BrokenAxis.js +601 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Color/ColorAxis.js +668 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Color/ColorAxisComposition.js +287 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Color/ColorAxisDefaults.js +434 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/DateTimeAxis.js +196 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/GridAxis.js +1046 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/LogarithmicAxis.js +202 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/NavigatorAxis.js +159 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/OrdinalAxis.js +992 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +873 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +287 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/RadialAxis.js +954 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/ScrollbarAxis.js +182 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/SolidGaugeAxis.js +127 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/StackingAxis.js +216 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Tick.js +723 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Tick3D.js +68 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/TreeGridAxis.js +720 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/TreeGridTick.js +306 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/WaterfallAxis.js +149 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/ZAxis.js +156 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/Chart.js +2909 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/Chart3D.js +1695 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/ChartDefaults.js +1053 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/GanttChart.js +177 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/MapChart.js +179 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/StockChart.js +644 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Color/Color.js +419 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Color/Palettes.js +22 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/DefaultOptions.js +2743 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/FormatUtilities.js +246 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Foundation.js +61 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Geometry/CircleUtilities.js +386 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Geometry/GeometryUtilities.js +83 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Globals.js +131 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/HttpUtilities.js +195 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Legend/Legend.js +1284 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Legend/LegendSymbol.js +109 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/MSPointer.js +170 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Navigator.js +1958 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Pointer.js +1518 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/HTML/AST.js +475 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/HTML/HTMLElement.js +261 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/HTML/HTMLRenderer.js +272 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/RendererRegistry.js +77 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/RendererUtilities.js +159 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGElement.js +2176 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGElement3D.js +160 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGLabel.js +408 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGRenderer.js +1900 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +842 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/Symbols.js +197 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/TextBuilder.js +452 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Responsive.js +334 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Scrollbar.js +658 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/ScrollbarDefaults.js +218 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Series/DataLabel.js +568 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Series/Point.js +1307 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Series/Series.js +3718 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Series/Series3D.js +126 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Series/SeriesDefaults.js +2293 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Series/SeriesRegistry.js +127 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Time.js +741 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Tooltip.js +1378 -0
- package/src/assets/plugins/highcharts/code/es-modules/Core/Utilities.js +1967 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/DataConverter.js +483 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/DataPromise.js +252 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/DataSeriesConverter.js +207 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/DataTable.js +1205 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/ChainModifier.js +299 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/DataModifier.js +303 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/GroupModifier.js +144 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/InvertModifier.js +254 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/RangeModifier.js +143 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/SortModifier.js +249 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/CSVParser.js +400 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/DataParser.js +101 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/GoogleSheetsParser.js +223 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/CSVStore.js +317 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/DataStore.js +276 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/GoogleSheetsStore.js +169 -0
- package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/HTMLTableStore.js +353 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Annotations.js +1442 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/ControlPoint.js +141 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +117 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +111 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +387 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +181 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +121 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +378 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +221 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +179 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/MockPoint.js +428 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/NavigationBindings.js +1212 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Popup.js +1123 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +237 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/CrookedLine.js +185 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/ElliottWave.js +95 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Fibonacci.js +205 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/InfinityLine.js +161 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Measure.js +791 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Pitchfork.js +194 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/TimeCycles.js +211 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Tunnel.js +211 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/VerticalLine.js +156 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/ArrowSymbols.js +166 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/Boost.js +34 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostAttach.js +150 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostInit.js +318 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostOptions.js +219 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostOverrides.js +386 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostUtils.js +255 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostableMap.js +18 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/Boostables.js +25 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/NamedColors.js +162 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/WGLRenderer.js +1188 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/WGLShader.js +470 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/WGLVBuffer.js +153 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/BoostCanvas.js +509 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/CurrentDateIndication.js +100 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Data.js +2037 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/DataGrouping.js +1134 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Debugger/Debugger.js +101 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Debugger/ErrorMessages.js +106 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/DownloadURL.js +106 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/DragPanes.js +512 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/DraggablePoints.js +2259 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Drilldown.js +1170 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/ExportData.js +997 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Exporting/Exporting.js +1260 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Exporting/ExportingDefaults.js +796 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Exporting/ExportingSymbols.js +73 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/FullScreen.js +240 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/GeoJSON.js +436 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/MarkerClusters.js +1436 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Math3D.js +245 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/NoDataToDisplay.js +189 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/OfflineExporting/OfflineExporting.js +617 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +58 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Oldie/Oldie.js +1182 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Oldie/VMLAxis3D.js +101 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Oldie/VMLRenderer3D.js +47 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/OldiePolyfills.js +167 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/OverlappingDataLabels.js +226 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Pane.js +404 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/ParallelCoordinates.js +464 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/PatternFill.js +580 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Polar.js +740 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/PriceIndication.js +292 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/RangeSelector.js +2175 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/ScrollablePlotArea.js +387 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/SeriesLabel.js +765 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/ChartSonify.js +724 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Earcon.js +197 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Instrument.js +606 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/MusicalFrequencies.js +122 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Options.js +44 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/PointSonify.js +391 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/SeriesSonify.js +474 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/SignalHandler.js +122 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Sonification.js +97 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/SonificationUtilities.js +150 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Timeline.js +308 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/TimelineEvent.js +157 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Stacking.js +516 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/StaticScale.js +76 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Avocado.js +67 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/BrandDark.js +293 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/BrandLight.js +259 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/DarkBlue.js +279 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/DarkGreen.js +279 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/DarkUnica.js +249 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Gray.js +287 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Grid.js +140 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/GridLight.js +111 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/HighContrastDark.js +239 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/HighContrastLight.js +69 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/SandSignika.js +144 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Skies.js +131 -0
- package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Sunset.js +66 -0
- package/src/assets/plugins/highcharts/code/es-modules/Gantt/Connection.js +838 -0
- package/src/assets/plugins/highcharts/code/es-modules/Gantt/Pathfinder.js +818 -0
- package/src/assets/plugins/highcharts/code/es-modules/Gantt/PathfinderAlgorithms.js +657 -0
- package/src/assets/plugins/highcharts/code/es-modules/Gantt/Tree.js +110 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/MapNavigation.js +278 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/MapNavigationOptionsDefault.js +264 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/MapPointer.js +83 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/MapSymbols.js +80 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/MapView.js +450 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/MapViewOptionsDefault.js +97 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/Projection.js +436 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/ProjectionDefinition.js +9 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/EqualEarth.js +42 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/Miller.js +16 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/Orthographic.js +26 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
- package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/WebMercator.js +24 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Area/AreaSeries.js +563 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Area3DSeries.js +70 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/AreaRange/AreaRangePoint.js +129 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/AreaRange/AreaRangeSeries.js +650 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/AreaSpline/AreaSplineSeries.js +203 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +199 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bar/BarSeries.js +171 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bellcurve/BellcurveSeries.js +241 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/BoxPlot/BoxPlotSeries.js +681 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleLegendComposition.js +279 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleLegendDefaults.js +266 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleLegendItem.js +462 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubblePoint.js +77 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleSeries.js +676 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bullet/BulletPoint.js +62 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Bullet/BulletSeries.js +365 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Candlestick/CandlestickSeries.js +333 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/CenteredUtilities.js +128 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/ColorMapMixin.js +84 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Column/ColumnDataLabel.js +109 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Column/ColumnSeries.js +1171 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Column3D/Column3DComposition.js +508 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +308 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/ColumnRange/ColumnRangePoint.js +62 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/ColumnRange/ColumnRangeSeries.js +308 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Cylinder/CylinderComposition.js +274 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Cylinder/CylinderPoint.js +60 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Cylinder/CylinderSeries.js +175 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/DataModifyComposition.js +539 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +100 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +368 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/DerivedComposition.js +137 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/DotPlot/DotPlotSeries.js +158 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/DrawPointComposition.js +111 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Dumbbell/DumbbellPoint.js +104 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Dumbbell/DumbbellSeries.js +464 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/ErrorBar/ErrorBarSeries.js +228 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Flags/FlagsPoint.js +74 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Flags/FlagsSeries.js +614 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Flags/FlagsSymbols.js +90 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel/FunnelSeries.js +517 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel3D/Funnel3DComposition.js +383 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel3D/Funnel3DPoint.js +62 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel3D/Funnel3DSeries.js +447 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Gantt/GanttPoint.js +109 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Gantt/GanttSeries.js +352 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Gauge/GaugePoint.js +66 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Gauge/GaugeSeries.js +568 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/HLC/HLCPoint.js +55 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/HLC/HLCSeries.js +378 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Heatmap/HeatmapPoint.js +144 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Heatmap/HeatmapSeries.js +946 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +60 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +278 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Histogram/HistogramSeries.js +253 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +80 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +368 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Item/ItemPoint.js +59 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Item/ItemSeries.js +505 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Line/LineSeries.js +541 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Lollipop/LollipopPoint.js +60 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Lollipop/LollipopSeries.js +209 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Map/MapPoint.js +136 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Map/MapSeries.js +1100 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/MapBubble/MapBubblePoint.js +73 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/MapBubble/MapBubbleSeries.js +283 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/MapLine/MapLineSeries.js +181 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/MapPoint/MapPointPoint.js +71 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/MapPoint/MapPointSeries.js +309 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/DraggableNodes.js +132 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/Integrations.js +348 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/Layouts.js +555 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/Networkgraph.js +1178 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/QuadTree.js +352 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/NodesComposition.js +229 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/OHLC/OHLCPoint.js +116 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/OHLC/OHLCSeries.js +254 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/OnSeriesComposition.js +168 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Organization/OrganizationPoint.js +71 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Organization/OrganizationSeries.js +594 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/PackedBubble/PackedBubbleComposition.js +172 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/PackedBubble/PackedBubblePoint.js +98 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/PackedBubble/PackedBubbleSeries.js +1284 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/ParetoSeries/ParetoSeries.js +195 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pie/PieDataLabel.js +447 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pie/PiePoint.js +270 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pie/PieSeries.js +1074 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pie3D/Pie3DComposition.js +27 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pie3D/Pie3DPoint.js +72 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pie3D/Pie3DSeries.js +200 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Polygon/PolygonSeries.js +195 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pyramid/PyramidSeries.js +161 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +172 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Sankey/SankeyPoint.js +97 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Sankey/SankeySeries.js +1195 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Scatter/ScatterSeries.js +306 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Scatter3D/Scatter3DPoint.js +66 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Scatter3D/Scatter3DSeries.js +194 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/SolidGauge/SolidGaugeComposition.js +62 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/SolidGauge/SolidGaugeSeries.js +358 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Spline/SplineSeries.js +279 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Streamgraph/StreamgraphSeries.js +213 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Sunburst/SunburstPoint.js +115 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Sunburst/SunburstSeries.js +907 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Sunburst/SunburstUtilities.js +138 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapComposition.js +61 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapPoint.js +77 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapSeries.js +368 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapShapes.js +275 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Timeline/TimelinePoint.js +168 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Timeline/TimelineSeries.js +552 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/TreeUtilities.js +192 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapAlgorithmGroup.js +93 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapComposition.js +58 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapPoint.js +107 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapSeries.js +1473 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapUtilities.js +65 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/VariablePie/VariablePieSeries.js +446 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Variwide/VariwideComposition.js +78 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Variwide/VariwidePoint.js +63 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Variwide/VariwideSeries.js +317 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Vector/VectorSeries.js +362 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Venn/VennPoint.js +76 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Venn/VennSeries.js +633 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Venn/VennUtils.js +607 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Waterfall/WaterfallPoint.js +68 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Waterfall/WaterfallSeries.js +743 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Windbarb/WindbarbPoint.js +64 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Windbarb/WindbarbSeries.js +462 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Wordcloud/WordcloudPoint.js +66 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Wordcloud/WordcloudSeries.js +503 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/Wordcloud/WordcloudUtils.js +718 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/XRange/XRangeComposition.js +49 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/XRange/XRangePoint.js +168 -0
- package/src/assets/plugins/highcharts/code/es-modules/Series/XRange/XRangeSeries.js +608 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +243 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/AD/ADIndicator.js +160 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/AO/AOIndicator.js +212 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/APO/APOIndicator.js +167 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ATR/ATRIndicator.js +162 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +197 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +141 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/BB/BBIndicator.js +241 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/CCI/CCIIndicator.js +154 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/CMF/CMFIndicator.js +243 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/CMO/CMOIndicator.js +166 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +187 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +149 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DMI/DMIIndicator.js +276 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DPO/DPOIndicator.js +163 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +179 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/EMA/EMAIndicator.js +154 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/IKH/IKHIndicator.js +682 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +217 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +270 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +282 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +119 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +104 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +104 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/MACD/MACDIndicator.js +402 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/MFI/MFIIndicator.js +198 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +121 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/MultipleLinesComposition.js +294 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/NATR/NATRIndicator.js +111 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/OBV/OBVIndicator.js +170 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PC/PCIndicator.js +197 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PPO/PPOIndicator.js +164 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +280 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +310 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +78 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +240 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ROC/ROCIndicator.js +176 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/RSI/RSIIndicator.js +171 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/SMA/SMAComposition.js +12 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/SMA/SMAIndicator.js +367 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +134 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +208 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +485 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +208 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +98 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +148 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/VBP/VBPIndicator.js +556 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/VBP/VBPPoint.js +49 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +193 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/WMA/WMAIndicator.js +153 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +135 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +228 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/StockToolsBindings.js +2009 -0
- package/src/assets/plugins/highcharts/code/es-modules/Stock/StockToolsGui.js +1816 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/highcharts-3d.src.js +28 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/highcharts-more.src.js +28 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/highcharts.src.js +147 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/accessibility.src.js +28 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/annotations-advanced.src.js +26 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/annotations.src.js +15 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/arrow-symbols.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/boost-canvas.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/boost.src.js +15 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/broken-axis.src.js +15 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/bullet.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/coloraxis.src.js +17 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/current-date-indicator.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/cylinder.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/data.src.js +23 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/datagrouping.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/debugger.src.js +16 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/dependency-wheel.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/dotplot.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/drag-panes.src.js +15 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/draggable-points.src.js +11 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/drilldown.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/dumbbell.src.js +11 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/export-data.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/exporting.src.js +22 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/full-screen.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/funnel.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/funnel3d.src.js +18 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/gantt.src.js +26 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/grid-axis.src.js +17 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/heatmap.src.js +16 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/heikinashi.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/histogram-bellcurve.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/hollowcandlestick.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/item-series.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/lollipop.src.js +11 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/marker-clusters.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/networkgraph.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/no-data-to-display.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/offline-exporting.src.js +20 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/oldie-polyfills.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/oldie.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/organization.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/overlapping-datalabels.src.js +11 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/parallel-coordinates.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pareto.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pathfinder.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pattern-fill.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/price-indicator.src.js +15 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pyramid3d.src.js +16 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/sankey.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/series-label.src.js +11 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/solid-gauge.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/sonification.src.js +44 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/static-scale.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/stock-tools.src.js +16 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/stock.src.js +33 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/streamgraph.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/sunburst.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/tilemap.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/timeline.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/treegrid.src.js +17 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/treemap.src.js +12 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/variable-pie.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/variwide.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/vector.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/venn.src.js +12 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/windbarb.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/wordcloud.src.js +12 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/modules/xrange.src.js +13 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/avocado.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/brand-dark.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/brand-light.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/dark-blue.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/dark-green.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/dark-unica.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/gray.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/grid-light.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/grid.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/high-contrast-dark.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/high-contrast-light.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/sand-signika.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/skies.src.js +14 -0
- package/src/assets/plugins/highcharts/code/es-modules/masters/themes/sunset.src.js +14 -0
- package/src/assets/plugins/highcharts/code/highcharts-3d.js +105 -0
- package/src/assets/plugins/highcharts/code/highcharts-3d.js.map +1 -0
- package/src/assets/plugins/highcharts/code/highcharts-3d.src.js +5439 -0
- package/src/assets/plugins/highcharts/code/highcharts-more.js +201 -0
- package/src/assets/plugins/highcharts/code/highcharts-more.js.map +1 -0
- package/src/assets/plugins/highcharts/code/highcharts-more.src.js +12004 -0
- package/src/assets/plugins/highcharts/code/highcharts.js +593 -0
- package/src/assets/plugins/highcharts/code/highcharts.js.map +1 -0
- package/src/assets/plugins/highcharts/code/highcharts.src.js +47519 -0
- package/src/assets/plugins/highcharts/code/lib/canvg.js +8 -0
- package/src/assets/plugins/highcharts/code/lib/jspdf.js +283 -0
- package/src/assets/plugins/highcharts/code/lib/jspdf.src.js +21627 -0
- package/src/assets/plugins/highcharts/code/lib/svg2pdf.js +38 -0
- package/src/assets/plugins/highcharts/code/lib/svg2pdf.src.js +4390 -0
- package/src/assets/plugins/highcharts/code/modules/accessibility.js +256 -0
- package/src/assets/plugins/highcharts/code/modules/accessibility.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/accessibility.src.js +11868 -0
- package/src/assets/plugins/highcharts/code/modules/annotations-advanced.js +201 -0
- package/src/assets/plugins/highcharts/code/modules/annotations-advanced.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/annotations-advanced.src.js +9616 -0
- package/src/assets/plugins/highcharts/code/modules/annotations.js +135 -0
- package/src/assets/plugins/highcharts/code/modules/annotations.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/annotations.src.js +6712 -0
- package/src/assets/plugins/highcharts/code/modules/arrow-symbols.js +12 -0
- package/src/assets/plugins/highcharts/code/modules/arrow-symbols.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/arrow-symbols.src.js +202 -0
- package/src/assets/plugins/highcharts/code/modules/boost-canvas.js +25 -0
- package/src/assets/plugins/highcharts/code/modules/boost-canvas.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/boost-canvas.src.js +593 -0
- package/src/assets/plugins/highcharts/code/modules/boost.js +90 -0
- package/src/assets/plugins/highcharts/code/modules/boost.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/boost.src.js +3834 -0
- package/src/assets/plugins/highcharts/code/modules/broken-axis.js +20 -0
- package/src/assets/plugins/highcharts/code/modules/broken-axis.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/broken-axis.src.js +682 -0
- package/src/assets/plugins/highcharts/code/modules/bullet.js +18 -0
- package/src/assets/plugins/highcharts/code/modules/bullet.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/bullet.src.js +489 -0
- package/src/assets/plugins/highcharts/code/modules/coloraxis.js +33 -0
- package/src/assets/plugins/highcharts/code/modules/coloraxis.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/coloraxis.src.js +1484 -0
- package/src/assets/plugins/highcharts/code/modules/current-date-indicator.js +13 -0
- package/src/assets/plugins/highcharts/code/modules/current-date-indicator.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/current-date-indicator.src.js +138 -0
- package/src/assets/plugins/highcharts/code/modules/cylinder.js +20 -0
- package/src/assets/plugins/highcharts/code/modules/cylinder.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/cylinder.src.js +585 -0
- package/src/assets/plugins/highcharts/code/modules/data.js +42 -0
- package/src/assets/plugins/highcharts/code/modules/data.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/data.src.js +2383 -0
- package/src/assets/plugins/highcharts/code/modules/datagrouping.js +29 -0
- package/src/assets/plugins/highcharts/code/modules/datagrouping.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/datagrouping.src.js +1275 -0
- package/src/assets/plugins/highcharts/code/modules/debugger.js +30 -0
- package/src/assets/plugins/highcharts/code/modules/debugger.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/debugger.src.js +250 -0
- package/src/assets/plugins/highcharts/code/modules/dependency-wheel.js +20 -0
- package/src/assets/plugins/highcharts/code/modules/dependency-wheel.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/dependency-wheel.src.js +533 -0
- package/src/assets/plugins/highcharts/code/modules/dotplot.js +15 -0
- package/src/assets/plugins/highcharts/code/modules/dotplot.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/dotplot.src.js +216 -0
- package/src/assets/plugins/highcharts/code/modules/drag-panes.js +20 -0
- package/src/assets/plugins/highcharts/code/modules/drag-panes.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/drag-panes.src.js +586 -0
- package/src/assets/plugins/highcharts/code/modules/draggable-points.js +41 -0
- package/src/assets/plugins/highcharts/code/modules/draggable-points.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/draggable-points.src.js +2405 -0
- package/src/assets/plugins/highcharts/code/modules/drilldown.js +34 -0
- package/src/assets/plugins/highcharts/code/modules/drilldown.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/drilldown.src.js +1266 -0
- package/src/assets/plugins/highcharts/code/modules/dumbbell.js +24 -0
- package/src/assets/plugins/highcharts/code/modules/dumbbell.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/dumbbell.src.js +798 -0
- package/src/assets/plugins/highcharts/code/modules/export-data.js +30 -0
- package/src/assets/plugins/highcharts/code/modules/export-data.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/export-data.src.js +1203 -0
- package/src/assets/plugins/highcharts/code/modules/exporting.js +48 -0
- package/src/assets/plugins/highcharts/code/modules/exporting.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/exporting.src.js +2789 -0
- package/src/assets/plugins/highcharts/code/modules/full-screen.js +17 -0
- package/src/assets/plugins/highcharts/code/modules/full-screen.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/full-screen.src.js +284 -0
- package/src/assets/plugins/highcharts/code/modules/funnel.js +21 -0
- package/src/assets/plugins/highcharts/code/modules/funnel.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/funnel.src.js +777 -0
- package/src/assets/plugins/highcharts/code/modules/funnel3d.js +30 -0
- package/src/assets/plugins/highcharts/code/modules/funnel3d.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/funnel3d.src.js +1004 -0
- package/src/assets/plugins/highcharts/code/modules/gantt.js +226 -0
- package/src/assets/plugins/highcharts/code/modules/gantt.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/gantt.src.js +13485 -0
- package/src/assets/plugins/highcharts/code/modules/grid-axis.js +32 -0
- package/src/assets/plugins/highcharts/code/modules/grid-axis.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/grid-axis.src.js +1160 -0
- package/src/assets/plugins/highcharts/code/modules/heatmap.js +46 -0
- package/src/assets/plugins/highcharts/code/modules/heatmap.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/heatmap.src.js +2726 -0
- package/src/assets/plugins/highcharts/code/modules/heikinashi.js +17 -0
- package/src/assets/plugins/highcharts/code/modules/heikinashi.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/heikinashi.src.js +396 -0
- package/src/assets/plugins/highcharts/code/modules/histogram-bellcurve.js +21 -0
- package/src/assets/plugins/highcharts/code/modules/histogram-bellcurve.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/histogram-bellcurve.src.js +699 -0
- package/src/assets/plugins/highcharts/code/modules/hollowcandlestick.js +18 -0
- package/src/assets/plugins/highcharts/code/modules/hollowcandlestick.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/hollowcandlestick.src.js +500 -0
- package/src/assets/plugins/highcharts/code/modules/item-series.js +21 -0
- package/src/assets/plugins/highcharts/code/modules/item-series.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/item-series.src.js +660 -0
- package/src/assets/plugins/highcharts/code/modules/lollipop.js +14 -0
- package/src/assets/plugins/highcharts/code/modules/lollipop.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/lollipop.src.js +318 -0
- package/src/assets/plugins/highcharts/code/modules/marker-clusters.js +45 -0
- package/src/assets/plugins/highcharts/code/modules/marker-clusters.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/marker-clusters.src.js +1713 -0
- package/src/assets/plugins/highcharts/code/modules/networkgraph.js +58 -0
- package/src/assets/plugins/highcharts/code/modules/networkgraph.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/networkgraph.src.js +2926 -0
- package/src/assets/plugins/highcharts/code/modules/no-data-to-display.js +15 -0
- package/src/assets/plugins/highcharts/code/modules/no-data-to-display.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/no-data-to-display.src.js +231 -0
- package/src/assets/plugins/highcharts/code/modules/offline-exporting.js +27 -0
- package/src/assets/plugins/highcharts/code/modules/offline-exporting.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/offline-exporting.src.js +847 -0
- package/src/assets/plugins/highcharts/code/modules/oldie-polyfills.js +17 -0
- package/src/assets/plugins/highcharts/code/modules/oldie-polyfills.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/oldie-polyfills.src.js +220 -0
- package/src/assets/plugins/highcharts/code/modules/oldie.js +40 -0
- package/src/assets/plugins/highcharts/code/modules/oldie.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/oldie.src.js +1443 -0
- package/src/assets/plugins/highcharts/code/modules/organization.js +22 -0
- package/src/assets/plugins/highcharts/code/modules/organization.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/organization.src.js +736 -0
- package/src/assets/plugins/highcharts/code/modules/overlapping-datalabels.js +9 -0
- package/src/assets/plugins/highcharts/code/modules/overlapping-datalabels.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/overlapping-datalabels.src.js +33 -0
- package/src/assets/plugins/highcharts/code/modules/parallel-coordinates.js +20 -0
- package/src/assets/plugins/highcharts/code/modules/parallel-coordinates.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/parallel-coordinates.src.js +555 -0
- package/src/assets/plugins/highcharts/code/modules/pareto.js +16 -0
- package/src/assets/plugins/highcharts/code/modules/pareto.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/pareto.src.js +382 -0
- package/src/assets/plugins/highcharts/code/modules/pathfinder.js +40 -0
- package/src/assets/plugins/highcharts/code/modules/pathfinder.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/pathfinder.src.js +2693 -0
- package/src/assets/plugins/highcharts/code/modules/pattern-fill.js +24 -0
- package/src/assets/plugins/highcharts/code/modules/pattern-fill.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/pattern-fill.src.js +640 -0
- package/src/assets/plugins/highcharts/code/modules/price-indicator.js +15 -0
- package/src/assets/plugins/highcharts/code/modules/price-indicator.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/price-indicator.src.js +346 -0
- package/src/assets/plugins/highcharts/code/modules/pyramid3d.js +13 -0
- package/src/assets/plugins/highcharts/code/modules/pyramid3d.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/pyramid3d.src.js +211 -0
- package/src/assets/plugins/highcharts/code/modules/sankey.js +38 -0
- package/src/assets/plugins/highcharts/code/modules/sankey.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/sankey.src.js +1868 -0
- package/src/assets/plugins/highcharts/code/modules/series-label.js +24 -0
- package/src/assets/plugins/highcharts/code/modules/series-label.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/series-label.src.js +852 -0
- package/src/assets/plugins/highcharts/code/modules/solid-gauge.js +19 -0
- package/src/assets/plugins/highcharts/code/modules/solid-gauge.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/solid-gauge.src.js +650 -0
- package/src/assets/plugins/highcharts/code/modules/sonification.js +68 -0
- package/src/assets/plugins/highcharts/code/modules/sonification.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/sonification.src.js +3869 -0
- package/src/assets/plugins/highcharts/code/modules/static-scale.js +13 -0
- package/src/assets/plugins/highcharts/code/modules/static-scale.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/static-scale.src.js +117 -0
- package/src/assets/plugins/highcharts/code/modules/stock-tools.js +189 -0
- package/src/assets/plugins/highcharts/code/modules/stock-tools.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/stock-tools.src.js +9592 -0
- package/src/assets/plugins/highcharts/code/modules/stock.js +213 -0
- package/src/assets/plugins/highcharts/code/modules/stock.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/stock.src.js +12237 -0
- package/src/assets/plugins/highcharts/code/modules/streamgraph.js +13 -0
- package/src/assets/plugins/highcharts/code/modules/streamgraph.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/streamgraph.src.js +253 -0
- package/src/assets/plugins/highcharts/code/modules/sunburst.js +68 -0
- package/src/assets/plugins/highcharts/code/modules/sunburst.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/sunburst.src.js +3721 -0
- package/src/assets/plugins/highcharts/code/modules/tilemap.js +26 -0
- package/src/assets/plugins/highcharts/code/modules/tilemap.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/tilemap.src.js +878 -0
- package/src/assets/plugins/highcharts/code/modules/timeline.js +28 -0
- package/src/assets/plugins/highcharts/code/modules/timeline.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/timeline.src.js +815 -0
- package/src/assets/plugins/highcharts/code/modules/treegrid.js +65 -0
- package/src/assets/plugins/highcharts/code/modules/treegrid.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/treegrid.src.js +3294 -0
- package/src/assets/plugins/highcharts/code/modules/treemap.js +49 -0
- package/src/assets/plugins/highcharts/code/modules/treemap.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/treemap.src.js +2416 -0
- package/src/assets/plugins/highcharts/code/modules/variable-pie.js +18 -0
- package/src/assets/plugins/highcharts/code/modules/variable-pie.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/variable-pie.src.js +533 -0
- package/src/assets/plugins/highcharts/code/modules/variwide.js +21 -0
- package/src/assets/plugins/highcharts/code/modules/variwide.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/variwide.src.js +529 -0
- package/src/assets/plugins/highcharts/code/modules/vector.js +16 -0
- package/src/assets/plugins/highcharts/code/modules/vector.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/vector.src.js +409 -0
- package/src/assets/plugins/highcharts/code/modules/venn.js +39 -0
- package/src/assets/plugins/highcharts/code/modules/venn.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/venn.src.js +2095 -0
- package/src/assets/plugins/highcharts/code/modules/windbarb.js +24 -0
- package/src/assets/plugins/highcharts/code/modules/windbarb.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/windbarb.src.js +772 -0
- package/src/assets/plugins/highcharts/code/modules/wordcloud.js +31 -0
- package/src/assets/plugins/highcharts/code/modules/wordcloud.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/wordcloud.src.js +1584 -0
- package/src/assets/plugins/highcharts/code/modules/xrange.js +26 -0
- package/src/assets/plugins/highcharts/code/modules/xrange.js.map +1 -0
- package/src/assets/plugins/highcharts/code/modules/xrange.src.js +940 -0
- package/src/assets/plugins/highcharts/code/themes/avocado.js +10 -0
- package/src/assets/plugins/highcharts/code/themes/avocado.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/avocado.src.js +103 -0
- package/src/assets/plugins/highcharts/code/themes/brand-dark.js +15 -0
- package/src/assets/plugins/highcharts/code/themes/brand-dark.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/brand-dark.src.js +328 -0
- package/src/assets/plugins/highcharts/code/themes/brand-light.js +15 -0
- package/src/assets/plugins/highcharts/code/themes/brand-light.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/brand-light.src.js +294 -0
- package/src/assets/plugins/highcharts/code/themes/dark-blue.js +15 -0
- package/src/assets/plugins/highcharts/code/themes/dark-blue.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/dark-blue.src.js +315 -0
- package/src/assets/plugins/highcharts/code/themes/dark-green.js +15 -0
- package/src/assets/plugins/highcharts/code/themes/dark-green.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/dark-green.src.js +315 -0
- package/src/assets/plugins/highcharts/code/themes/dark-unica.js +14 -0
- package/src/assets/plugins/highcharts/code/themes/dark-unica.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/dark-unica.src.js +284 -0
- package/src/assets/plugins/highcharts/code/themes/gray.js +15 -0
- package/src/assets/plugins/highcharts/code/themes/gray.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/gray.src.js +323 -0
- package/src/assets/plugins/highcharts/code/themes/grid-light.js +11 -0
- package/src/assets/plugins/highcharts/code/themes/grid-light.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/grid-light.src.js +146 -0
- package/src/assets/plugins/highcharts/code/themes/grid.js +12 -0
- package/src/assets/plugins/highcharts/code/themes/grid.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/grid.src.js +176 -0
- package/src/assets/plugins/highcharts/code/themes/high-contrast-dark.js +14 -0
- package/src/assets/plugins/highcharts/code/themes/high-contrast-dark.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/high-contrast-dark.src.js +275 -0
- package/src/assets/plugins/highcharts/code/themes/high-contrast-light.js +10 -0
- package/src/assets/plugins/highcharts/code/themes/high-contrast-light.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/high-contrast-light.src.js +105 -0
- package/src/assets/plugins/highcharts/code/themes/sand-signika.js +12 -0
- package/src/assets/plugins/highcharts/code/themes/sand-signika.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/sand-signika.src.js +179 -0
- package/src/assets/plugins/highcharts/code/themes/skies.js +12 -0
- package/src/assets/plugins/highcharts/code/themes/skies.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/skies.src.js +167 -0
- package/src/assets/plugins/highcharts/code/themes/sunset.js +10 -0
- package/src/assets/plugins/highcharts/code/themes/sunset.js.map +1 -0
- package/src/assets/plugins/highcharts/code/themes/sunset.src.js +102 -0
- package/src/assets/plugins/highcharts/examples/3d-area-multiple/index.html +192 -0
- package/src/assets/plugins/highcharts/examples/3d-column-interactive/index.html +111 -0
- package/src/assets/plugins/highcharts/examples/3d-column-null-values/index.html +118 -0
- package/src/assets/plugins/highcharts/examples/3d-column-stacking-grouping/index.html +144 -0
- package/src/assets/plugins/highcharts/examples/3d-pie/index.html +130 -0
- package/src/assets/plugins/highcharts/examples/3d-pie-donut/index.html +112 -0
- package/src/assets/plugins/highcharts/examples/3d-scatter-draggable/index.html +221 -0
- package/src/assets/plugins/highcharts/examples/accessible-line/index.html +198 -0
- package/src/assets/plugins/highcharts/examples/accessible-pie/index.html +213 -0
- package/src/assets/plugins/highcharts/examples/advanced-accessible/index.html +271 -0
- package/src/assets/plugins/highcharts/examples/annotations/index.html +2170 -0
- package/src/assets/plugins/highcharts/examples/area-basic/index.html +157 -0
- package/src/assets/plugins/highcharts/examples/area-inverted/index.html +135 -0
- package/src/assets/plugins/highcharts/examples/area-missing/index.html +125 -0
- package/src/assets/plugins/highcharts/examples/area-negative/index.html +101 -0
- package/src/assets/plugins/highcharts/examples/area-stacked/index.html +136 -0
- package/src/assets/plugins/highcharts/examples/area-stacked-percent/index.html +141 -0
- package/src/assets/plugins/highcharts/examples/arearange/index.html +132 -0
- package/src/assets/plugins/highcharts/examples/arearange-line/index.html +195 -0
- package/src/assets/plugins/highcharts/examples/areaspline/index.html +137 -0
- package/src/assets/plugins/highcharts/examples/bar-basic/index.html +143 -0
- package/src/assets/plugins/highcharts/examples/bar-negative-stack/index.html +173 -0
- package/src/assets/plugins/highcharts/examples/bar-stacked/index.html +112 -0
- package/src/assets/plugins/highcharts/examples/bellcurve/index.html +133 -0
- package/src/assets/plugins/highcharts/examples/box-plot/index.html +149 -0
- package/src/assets/plugins/highcharts/examples/bubble/index.html +209 -0
- package/src/assets/plugins/highcharts/examples/bubble-3d/index.html +159 -0
- package/src/assets/plugins/highcharts/examples/bullet-graph/index.html +233 -0
- package/src/assets/plugins/highcharts/examples/chart-update/index.html +137 -0
- package/src/assets/plugins/highcharts/examples/column-basic/index.html +144 -0
- package/src/assets/plugins/highcharts/examples/column-comparison/index.html +350 -0
- package/src/assets/plugins/highcharts/examples/column-drilldown/index.html +387 -0
- package/src/assets/plugins/highcharts/examples/column-negative/index.html +101 -0
- package/src/assets/plugins/highcharts/examples/column-parsed/index.html +138 -0
- package/src/assets/plugins/highcharts/examples/column-placement/index.html +160 -0
- package/src/assets/plugins/highcharts/examples/column-pyramid/index.html +117 -0
- package/src/assets/plugins/highcharts/examples/column-rotated-labels/index.html +147 -0
- package/src/assets/plugins/highcharts/examples/column-stacked/index.html +138 -0
- package/src/assets/plugins/highcharts/examples/column-stacked-and-grouped/index.html +133 -0
- package/src/assets/plugins/highcharts/examples/column-stacked-percent/index.html +113 -0
- package/src/assets/plugins/highcharts/examples/columnrange/index.html +145 -0
- package/src/assets/plugins/highcharts/examples/combo/index.html +146 -0
- package/src/assets/plugins/highcharts/examples/combo-dual-axes/index.html +153 -0
- package/src/assets/plugins/highcharts/examples/combo-meteogram/index.html +768 -0
- package/src/assets/plugins/highcharts/examples/combo-multi-axes/index.html +222 -0
- package/src/assets/plugins/highcharts/examples/combo-regression/index.html +110 -0
- package/src/assets/plugins/highcharts/examples/combo-timeline/index.html +592 -0
- package/src/assets/plugins/highcharts/examples/cylinder/index.html +104 -0
- package/src/assets/plugins/highcharts/examples/dependency-wheel/index.html +165 -0
- package/src/assets/plugins/highcharts/examples/dumbbell/index.html +230 -0
- package/src/assets/plugins/highcharts/examples/dynamic-click-to-add/index.html +147 -0
- package/src/assets/plugins/highcharts/examples/dynamic-master-detail/index.html +316 -0
- package/src/assets/plugins/highcharts/examples/dynamic-update/index.html +163 -0
- package/src/assets/plugins/highcharts/examples/error-bar/index.html +154 -0
- package/src/assets/plugins/highcharts/examples/euler-diagram/index.html +119 -0
- package/src/assets/plugins/highcharts/examples/flame/index.html +1324 -0
- package/src/assets/plugins/highcharts/examples/funnel/index.html +131 -0
- package/src/assets/plugins/highcharts/examples/funnel3d/index.html +117 -0
- package/src/assets/plugins/highcharts/examples/gauge-activity/index.html +272 -0
- package/src/assets/plugins/highcharts/examples/gauge-clock/index.html +261 -0
- package/src/assets/plugins/highcharts/examples/gauge-dual/index.html +181 -0
- package/src/assets/plugins/highcharts/examples/gauge-solid/index.html +248 -0
- package/src/assets/plugins/highcharts/examples/gauge-speedometer/index.html +189 -0
- package/src/assets/plugins/highcharts/examples/gauge-vu-meter/index.html +210 -0
- package/src/assets/plugins/highcharts/examples/heatmap/index.html +168 -0
- package/src/assets/plugins/highcharts/examples/heatmap-canvas/index.html +8928 -0
- package/src/assets/plugins/highcharts/examples/histogram/index.html +133 -0
- package/src/assets/plugins/highcharts/examples/honeycomb-usa/index.html +518 -0
- package/src/assets/plugins/highcharts/examples/line-ajax/index.html +206 -0
- package/src/assets/plugins/highcharts/examples/line-basic/index.html +147 -0
- package/src/assets/plugins/highcharts/examples/line-boost/index.html +144 -0
- package/src/assets/plugins/highcharts/examples/line-labels/index.html +108 -0
- package/src/assets/plugins/highcharts/examples/line-log-axis/index.html +106 -0
- package/src/assets/plugins/highcharts/examples/line-time-series/index.html +136 -0
- package/src/assets/plugins/highcharts/examples/live-data/index.html +155 -0
- package/src/assets/plugins/highcharts/examples/lollipop/index.html +161 -0
- package/src/assets/plugins/highcharts/examples/network-graph/index.html +277 -0
- package/src/assets/plugins/highcharts/examples/organization-chart/index.html +224 -0
- package/src/assets/plugins/highcharts/examples/packed-bubble/index.html +588 -0
- package/src/assets/plugins/highcharts/examples/packed-bubble-split/index.html +589 -0
- package/src/assets/plugins/highcharts/examples/parallel-coordinates/index.html +176 -0
- package/src/assets/plugins/highcharts/examples/pareto/index.html +133 -0
- package/src/assets/plugins/highcharts/examples/parliament-chart/index.html +138 -0
- package/src/assets/plugins/highcharts/examples/pie-basic/index.html +141 -0
- package/src/assets/plugins/highcharts/examples/pie-donut/index.html +347 -0
- package/src/assets/plugins/highcharts/examples/pie-drilldown/index.html +418 -0
- package/src/assets/plugins/highcharts/examples/pie-gradient/index.html +133 -0
- package/src/assets/plugins/highcharts/examples/pie-legend/index.html +128 -0
- package/src/assets/plugins/highcharts/examples/pie-monochrome/index.html +139 -0
- package/src/assets/plugins/highcharts/examples/pie-semi-circle/index.html +133 -0
- package/src/assets/plugins/highcharts/examples/polar/index.html +136 -0
- package/src/assets/plugins/highcharts/examples/polar-radial-bar/index.html +169 -0
- package/src/assets/plugins/highcharts/examples/polar-spider/index.html +148 -0
- package/src/assets/plugins/highcharts/examples/polar-wind-rose/index.html +351 -0
- package/src/assets/plugins/highcharts/examples/polygon/index.html +190 -0
- package/src/assets/plugins/highcharts/examples/pyramid/index.html +126 -0
- package/src/assets/plugins/highcharts/examples/pyramid3d/index.html +117 -0
- package/src/assets/plugins/highcharts/examples/renderer/index.html +334 -0
- package/src/assets/plugins/highcharts/examples/responsive/index.html +176 -0
- package/src/assets/plugins/highcharts/examples/sankey-diagram/index.html +145 -0
- package/src/assets/plugins/highcharts/examples/scatter/index.html +246 -0
- package/src/assets/plugins/highcharts/examples/scatter-boost/index.html +142 -0
- package/src/assets/plugins/highcharts/examples/sonification/index.html +331 -0
- package/src/assets/plugins/highcharts/examples/sparkline/index.html +676 -0
- package/src/assets/plugins/highcharts/examples/spline-inverted/index.html +135 -0
- package/src/assets/plugins/highcharts/examples/spline-irregular-time/index.html +255 -0
- package/src/assets/plugins/highcharts/examples/spline-plot-bands/index.html +223 -0
- package/src/assets/plugins/highcharts/examples/spline-symbols/index.html +139 -0
- package/src/assets/plugins/highcharts/examples/streamgraph/index.html +447 -0
- package/src/assets/plugins/highcharts/examples/styled-mode-column/index.html +146 -0
- package/src/assets/plugins/highcharts/examples/styled-mode-pie/index.html +119 -0
- package/src/assets/plugins/highcharts/examples/sunburst/index.html +1520 -0
- package/src/assets/plugins/highcharts/examples/synchronized-charts/index.html +238 -0
- package/src/assets/plugins/highcharts/examples/timeline/index.html +142 -0
- package/src/assets/plugins/highcharts/examples/treemap-coloraxis/index.html +119 -0
- package/src/assets/plugins/highcharts/examples/treemap-large-dataset/index.html +172 -0
- package/src/assets/plugins/highcharts/examples/treemap-with-levels/index.html +151 -0
- package/src/assets/plugins/highcharts/examples/variable-radius-pie/index.html +131 -0
- package/src/assets/plugins/highcharts/examples/variwide/index.html +146 -0
- package/src/assets/plugins/highcharts/examples/vector-plot/index.html +494 -0
- package/src/assets/plugins/highcharts/examples/venn-diagram/index.html +124 -0
- package/src/assets/plugins/highcharts/examples/waterfall/index.html +143 -0
- package/src/assets/plugins/highcharts/examples/windbarb-series/index.html +189 -0
- package/src/assets/plugins/highcharts/examples/wordcloud/index.html +110 -0
- package/src/assets/plugins/highcharts/examples/x-range/index.html +142 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/annotations-hidden.svg +19 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/annotations-visible.svg +20 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-bottom.svg +9 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-left.svg +9 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-line.svg +11 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-ray.svg +10 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-right.svg +9 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-segment.svg +11 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/arrow.svg +13 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/circle.svg +13 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/close.svg +8 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/crooked-3.svg +13 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/crooked-5.svg +11 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/current-price-hide.svg +40 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/current-price-show.svg +41 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/destroy.svg +14 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/drawing.svg +18 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/edit.svg +10 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/elliott-3.svg +59 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/elliott-5.svg +41 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/ellipse.svg +11 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/fibonacci-timezone.svg +16 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/fibonacci.svg +25 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/flag-basic.svg +10 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/flag-diamond.svg +12 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/flag-elipse.svg +13 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/flag-trapeze.svg +14 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/fullscreen.svg +15 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/horizontal-line.svg +8 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/indicators.svg +27 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/label.svg +16 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/line.svg +11 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/linear.svg +11 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/logarithmic.svg +1 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/measure-x.svg +23 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/measure-xy.svg +28 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/measure-y.svg +24 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/panning.svg +17 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/parallel-channel.svg +15 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/pitchfork.svg +13 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/ray.svg +10 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/rectangle.svg +8 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/remove-annotations.svg +15 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/save-chart.svg +12 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/segment.svg +10 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/separator.svg +10 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/series-candlestick.svg +12 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/series-heikin-ashi.svg +1 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/series-hlc.svg +1 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/series-hollow-candlestick.svg +1 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/series-line.svg +11 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/series-ohlc.svg +14 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/text.svg +13 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/time-cycles.svg +35 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-arrow.svg +7 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-counter.svg +23 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-double-arrow.svg +10 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-label.svg +14 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-line.svg +8 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/zoom-x.svg +17 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/zoom-xy.svg +13 -0
- package/src/assets/plugins/highcharts/gfx/stock-icons/zoom-y.svg +17 -0
- package/src/assets/plugins/highcharts/gfx/vml-radial-gradient.png +0 -0
- package/src/assets/plugins/highcharts/graphics/color-picker.svg +12 -0
- package/src/assets/plugins/highcharts/graphics/cursor.svg +11 -0
- package/src/assets/plugins/highcharts/graphics/earth.svg +432 -0
- package/src/assets/plugins/highcharts/graphics/feature.svg +13 -0
- package/src/assets/plugins/highcharts/graphics/flag-circle.svg +17 -0
- package/src/assets/plugins/highcharts/graphics/flag-circlepin.svg +15 -0
- package/src/assets/plugins/highcharts/graphics/flag-diamondpin.svg +15 -0
- package/src/assets/plugins/highcharts/graphics/flag-flag.svg +14 -0
- package/src/assets/plugins/highcharts/graphics/flag-rectangle.svg +18 -0
- package/src/assets/plugins/highcharts/graphics/flag-squarepin.svg +16 -0
- package/src/assets/plugins/highcharts/graphics/flag.svg +15 -0
- package/src/assets/plugins/highcharts/graphics/homepage/apple.svg +55 -0
- package/src/assets/plugins/highcharts/graphics/homepage/award.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/cloud.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/earth.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/jupiter.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/mars.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/mercury.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/moon.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/neptune.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p1.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p1.svg +9 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p2.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p2.svg +9 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p3.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p3.svg +9 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p4.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p4.svg +9 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p5.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p5.svg +9 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p6.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/p6.svg +9 -0
- package/src/assets/plugins/highcharts/graphics/homepage/product.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/saturn.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/sun.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/uranus.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/venus.png +0 -0
- package/src/assets/plugins/highcharts/graphics/homepage/version.png +0 -0
- package/src/assets/plugins/highcharts/graphics/rect.svg +12 -0
- package/src/assets/plugins/highcharts/graphics/reset.svg +16 -0
- package/src/assets/plugins/highcharts/graphics/sand.png +0 -0
- package/src/assets/plugins/highcharts/graphics/save-chart-cloud.svg +14 -0
- package/src/assets/plugins/highcharts/graphics/save.svg +14 -0
- package/src/assets/plugins/highcharts/graphics/search.png +0 -0
- package/src/assets/plugins/highcharts/graphics/skies.jpg +0 -0
- package/src/assets/plugins/highcharts/graphics/snow.png +0 -0
- package/src/assets/plugins/highcharts/graphics/sun.png +0 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/blue-flake-big.svg +32 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/blue-star-big.svg +16 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/car-tree.svg +429 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/green-flake-big.svg +119 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/green-star.svg +20 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/hill.svg +193 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/hill2.svg +164 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/horse.svg +1 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/people.svg +2336 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/pines.svg +777 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/pond-skate.svg +1 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-flake.svg +30 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-house.svg +85 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-star-big.svg +36 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-star.svg +20 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/santa-b.svg +91 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/santa.svg +91 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/snow-mound.svg +146 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/snow.svg +20788 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/sun-disk.svg +597 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/tree-cluster.svg +2735 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/white-flake-big.svg +99 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/white-flake.big.svg +96 -0
- package/src/assets/plugins/highcharts/graphics/xmas-card-2020/white-star-big.svg +36 -0
- package/src/assets/plugins/highcharts/index.html +133 -0
- package/src/lib/classes/chart.class.ts +140 -0
- package/src/lib/classes/enum.class.ts +193 -0
- package/src/lib/classes/excel.class.ts +46 -0
- package/src/lib/classes/form.class.ts +528 -0
- package/src/lib/classes/helper.class.ts +283 -0
- package/src/lib/classes/lang.class.ts +32 -0
- package/src/lib/classes/login.class.ts +27 -0
- package/src/lib/classes/modal.class.ts +59 -0
- package/src/lib/classes/permission.class.ts +55 -0
- package/src/lib/classes/request.class.ts +255 -0
- package/src/lib/classes/safestyle.class.ts +4 -0
- package/src/lib/classes/sidebar.class.ts +20 -0
- package/src/lib/classes/steps.class.ts +19 -0
- package/src/lib/classes/string.class.ts +219 -0
- package/src/lib/classes/table.class.ts +228 -0
- package/src/lib/components/accordion/accordion.component.css +116 -0
- package/src/lib/components/accordion/accordion.component.html +19 -0
- package/src/lib/components/accordion/accordion.component.ts +41 -0
- package/src/lib/components/alert/alert.component.css +112 -0
- package/src/lib/components/alert/alert.component.html +1 -0
- package/src/lib/components/alert/alert.component.ts +35 -0
- package/src/lib/components/base.component.ts +38 -0
- package/src/lib/components/calendar/calendar.component.css +206 -0
- package/src/lib/components/calendar/calendar.component.html +36 -0
- package/src/lib/components/calendar/calendar.component.ts +99 -0
- package/src/lib/components/chart/chart.component.css +24 -0
- package/src/lib/components/chart/chart.component.html +6 -0
- package/src/lib/components/chart/chart.component.ts +14 -0
- package/src/lib/components/clock/clock.component.css +141 -0
- package/src/lib/components/clock/clock.component.html +10 -0
- package/src/lib/components/clock/clock.component.ts +37 -0
- package/src/lib/components/confirm/confirm.component.css +112 -0
- package/src/lib/components/confirm/confirm.component.html +1 -0
- package/src/lib/components/confirm/confirm.component.ts +47 -0
- package/src/lib/components/footer/footer.component.css +46 -0
- package/src/lib/components/footer/footer.component.html +9 -0
- package/src/lib/components/footer/footer.component.ts +18 -0
- package/src/lib/components/form/bank-card/form.bank-card.component.css +115 -0
- package/src/lib/components/form/bank-card/form.bank-card.component.html +13 -0
- package/src/lib/components/form/bank-card/form.bank-card.component.ts +144 -0
- package/src/lib/components/form/button/form.button.component.css +222 -0
- package/src/lib/components/form/button/form.button.component.html +16 -0
- package/src/lib/components/form/button/form.button.component.ts +65 -0
- package/src/lib/components/form/car/form.car.component.css +287 -0
- package/src/lib/components/form/car/form.car.component.html +11 -0
- package/src/lib/components/form/car/form.car.component.ts +82 -0
- package/src/lib/components/form/car/search/form.car.search.component.css +287 -0
- package/src/lib/components/form/car/search/form.car.search.component.html +15 -0
- package/src/lib/components/form/car/search/form.car.search.component.ts +170 -0
- package/src/lib/components/form/checkbox/form.checkbox.component.css +128 -0
- package/src/lib/components/form/checkbox/form.checkbox.component.html +8 -0
- package/src/lib/components/form/checkbox/form.checkbox.component.ts +64 -0
- package/src/lib/components/form/date/form.date.component.css +310 -0
- package/src/lib/components/form/date/form.date.component.html +46 -0
- package/src/lib/components/form/date/form.date.component.ts +247 -0
- package/src/lib/components/form/datetime/form.datetime.component.css +157 -0
- package/src/lib/components/form/datetime/form.datetime.component.html +11 -0
- package/src/lib/components/form/datetime/form.datetime.component.ts +98 -0
- package/src/lib/components/form/file/form.file.component.css +151 -0
- package/src/lib/components/form/file/form.file.component.html +12 -0
- package/src/lib/components/form/file/form.file.component.ts +130 -0
- package/src/lib/components/form/finger/form.finger.component.css +215 -0
- package/src/lib/components/form/finger/form.finger.component.html +59 -0
- package/src/lib/components/form/finger/form.finger.component.ts +131 -0
- package/src/lib/components/form/hidden/form.hidden.component.css +0 -0
- package/src/lib/components/form/hidden/form.hidden.component.html +0 -0
- package/src/lib/components/form/hidden/form.hidden.component.ts +29 -0
- package/src/lib/components/form/icon/form.icon.component.css +108 -0
- package/src/lib/components/form/icon/form.icon.component.html +14 -0
- package/src/lib/components/form/icon/form.icon.component.ts +73 -0
- package/src/lib/components/form/index/form.component.css +89 -0
- package/src/lib/components/form/index/form.component.html +35 -0
- package/src/lib/components/form/index/form.component.ts +45 -0
- package/src/lib/components/form/label/form.label.component.css +45 -0
- package/src/lib/components/form/label/form.label.component.html +2 -0
- package/src/lib/components/form/label/form.label.component.ts +30 -0
- package/src/lib/components/form/plaque/form.plaque.component.css +76 -0
- package/src/lib/components/form/plaque/form.plaque.component.html +10 -0
- package/src/lib/components/form/plaque/form.plaque.component.ts +178 -0
- package/src/lib/components/form/plaque/select/form.plaque.select.component.css +167 -0
- package/src/lib/components/form/plaque/select/form.plaque.select.component.html +19 -0
- package/src/lib/components/form/plaque/select/form.plaque.select.component.ts +385 -0
- package/src/lib/components/form/radio/form.radio.component.css +158 -0
- package/src/lib/components/form/radio/form.radio.component.html +16 -0
- package/src/lib/components/form/radio/form.radio.component.ts +78 -0
- package/src/lib/components/form/select/form.select.component.css +326 -0
- package/src/lib/components/form/select/form.select.component.html +16 -0
- package/src/lib/components/form/select/form.select.component.ts +358 -0
- package/src/lib/components/form/select/item/form.select.item.component.css +59 -0
- package/src/lib/components/form/select/item/form.select.item.component.html +10 -0
- package/src/lib/components/form/select/item/form.select.item.component.ts +40 -0
- package/src/lib/components/form/table/form.table.component.css +50 -0
- package/src/lib/components/form/table/form.table.component.html +8 -0
- package/src/lib/components/form/table/form.table.component.ts +94 -0
- package/src/lib/components/form/textarea/form.textarea.component.css +109 -0
- package/src/lib/components/form/textarea/form.textarea.component.html +10 -0
- package/src/lib/components/form/textarea/form.textarea.component.ts +76 -0
- package/src/lib/components/form/textbox/form.textbox.component.css +296 -0
- package/src/lib/components/form/textbox/form.textbox.component.html +13 -0
- package/src/lib/components/form/textbox/form.textbox.component.ts +185 -0
- package/src/lib/components/form/time/form.time.component.css +205 -0
- package/src/lib/components/form/time/form.time.component.html +22 -0
- package/src/lib/components/form/time/form.time.component.ts +139 -0
- package/src/lib/components/form/tree/form.tree.component.css +109 -0
- package/src/lib/components/form/tree/form.tree.component.html +11 -0
- package/src/lib/components/form/tree/form.tree.component.ts +98 -0
- package/src/lib/components/form/tree/item/form.tree.item.component.css +142 -0
- package/src/lib/components/form/tree/item/form.tree.item.component.html +9 -0
- package/src/lib/components/form/tree/item/form.tree.item.component.ts +49 -0
- package/src/lib/components/header/header.component.css +57 -0
- package/src/lib/components/header/header.component.html +5 -0
- package/src/lib/components/header/header.component.ts +28 -0
- package/src/lib/components/header/sub/sub.header.component.css +62 -0
- package/src/lib/components/header/sub/sub.header.component.html +8 -0
- package/src/lib/components/header/sub/sub.header.component.ts +11 -0
- package/src/lib/components/layout/layout.component.css +300 -0
- package/src/lib/components/layout/layout.component.html +20 -0
- package/src/lib/components/layout/layout.component.ts +21 -0
- package/src/lib/components/loading/loading.component.css +39 -0
- package/src/lib/components/loading/loading.component.html +8 -0
- package/src/lib/components/loading/loading.component.ts +18 -0
- package/src/lib/components/login/login.component.css +389 -0
- package/src/lib/components/login/login.component.html +27 -0
- package/src/lib/components/login/login.component.ts +145 -0
- package/src/lib/components/modal/modal.component.css +60 -0
- package/src/lib/components/modal/modal.component.html +12 -0
- package/src/lib/components/modal/modal.component.ts +23 -0
- package/src/lib/components/notfound/notfound.component.css +134 -0
- package/src/lib/components/notfound/notfound.component.html +10 -0
- package/src/lib/components/notfound/notfound.component.ts +25 -0
- package/src/lib/components/notification/notification.component.css +45 -0
- package/src/lib/components/notification/notification.component.html +2 -0
- package/src/lib/components/notification/notification.component.ts +11 -0
- package/src/lib/components/sidebar/item/sidebar.item.component.css +236 -0
- package/src/lib/components/sidebar/item/sidebar.item.component.html +16 -0
- package/src/lib/components/sidebar/item/sidebar.item.component.ts +54 -0
- package/src/lib/components/sidebar/sidebar.component.css +42 -0
- package/src/lib/components/sidebar/sidebar.component.html +10 -0
- package/src/lib/components/sidebar/sidebar.component.ts +60 -0
- package/src/lib/components/steps/steps.component.css +320 -0
- package/src/lib/components/steps/steps.component.html +18 -0
- package/src/lib/components/steps/steps.component.ts +44 -0
- package/src/lib/components/table/loading/table.loading.component.css +29 -0
- package/src/lib/components/table/loading/table.loading.component.html +9 -0
- package/src/lib/components/table/loading/table.loading.component.ts +14 -0
- package/src/lib/components/table/pagination/table.pagination.component.css +138 -0
- package/src/lib/components/table/pagination/table.pagination.component.html +9 -0
- package/src/lib/components/table/pagination/table.pagination.component.ts +89 -0
- package/src/lib/components/table/report/table.report.component.css +125 -0
- package/src/lib/components/table/report/table.report.component.html +19 -0
- package/src/lib/components/table/report/table.report.component.ts +238 -0
- package/src/lib/components/table/row/table.row.component.css +170 -0
- package/src/lib/components/table/row/table.row.component.html +21 -0
- package/src/lib/components/table/row/table.row.component.ts +373 -0
- package/src/lib/components/table/table.component.css +116 -0
- package/src/lib/components/table/table.component.html +62 -0
- package/src/lib/components/table/table.component.ts +180 -0
- package/src/lib/components/tooltip/tooltip.component.css +159 -0
- package/src/lib/components/tooltip/tooltip.component.html +1 -0
- package/src/lib/components/tooltip/tooltip.component.ts +15 -0
- package/src/lib/ps-toolkit-ui.module.ts +94 -0
- package/src/lib/services/config.service.ts +8 -0
- package/src/public-api.ts +53 -0
- package/src/test.ts +26 -0
- package/tsconfig.lib.json +25 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/tslint.json +17 -0
- package/bundles/ps-toolkit-ui.umd.js +0 -7628
- package/bundles/ps-toolkit-ui.umd.js.map +0 -1
- package/bundles/ps-toolkit-ui.umd.min.js +0 -2
- package/bundles/ps-toolkit-ui.umd.min.js.map +0 -1
- package/esm2015/lib/classes/enum.class.js +0 -187
- package/esm2015/lib/classes/form.class.js +0 -481
- package/esm2015/lib/classes/helper.class.js +0 -284
- package/esm2015/lib/classes/lang.class.js +0 -32
- package/esm2015/lib/classes/login.class.js +0 -22
- package/esm2015/lib/classes/modal.class.js +0 -52
- package/esm2015/lib/classes/permission.class.js +0 -61
- package/esm2015/lib/classes/request.class.js +0 -256
- package/esm2015/lib/classes/safestyle.class.js +0 -15
- package/esm2015/lib/classes/sidebar.class.js +0 -14
- package/esm2015/lib/classes/steps.class.js +0 -20
- package/esm2015/lib/classes/string.class.js +0 -220
- package/esm2015/lib/classes/table.class.js +0 -215
- package/esm2015/lib/components/accordion/accordion.component.js +0 -45
- package/esm2015/lib/components/alert/alert.component.js +0 -39
- package/esm2015/lib/components/base.component.js +0 -45
- package/esm2015/lib/components/calendar/calendar.component.js +0 -97
- package/esm2015/lib/components/clock/clock.component.js +0 -33
- package/esm2015/lib/components/confirm/confirm.component.js +0 -50
- package/esm2015/lib/components/footer/footer.component.js +0 -23
- package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +0 -148
- package/esm2015/lib/components/form/button/form.button.component.js +0 -68
- package/esm2015/lib/components/form/car/form.car.component.js +0 -84
- package/esm2015/lib/components/form/car/search/form.car.search.component.js +0 -172
- package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +0 -66
- package/esm2015/lib/components/form/date/form.date.component.js +0 -254
- package/esm2015/lib/components/form/datetime/form.datetime.component.js +0 -104
- package/esm2015/lib/components/form/file/form.file.component.js +0 -133
- package/esm2015/lib/components/form/finger/form.finger.component.js +0 -138
- package/esm2015/lib/components/form/hidden/form.hidden.component.js +0 -31
- package/esm2015/lib/components/form/icon/form.icon.component.js +0 -76
- package/esm2015/lib/components/form/index/form.component.js +0 -48
- package/esm2015/lib/components/form/label/form.label.component.js +0 -32
- package/esm2015/lib/components/form/plaque/form.plaque.component.js +0 -176
- package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +0 -390
- package/esm2015/lib/components/form/radio/form.radio.component.js +0 -79
- package/esm2015/lib/components/form/select/form.select.component.js +0 -374
- package/esm2015/lib/components/form/select/item/form.select.item.component.js +0 -43
- package/esm2015/lib/components/form/table/form.table.component.js +0 -98
- package/esm2015/lib/components/form/textarea/form.textarea.component.js +0 -78
- package/esm2015/lib/components/form/textbox/form.textbox.component.js +0 -186
- package/esm2015/lib/components/form/time/form.time.component.js +0 -145
- package/esm2015/lib/components/form/tree/form.tree.component.js +0 -99
- package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +0 -48
- package/esm2015/lib/components/header/header.component.js +0 -33
- package/esm2015/lib/components/header/sub/sub.header.component.js +0 -14
- package/esm2015/lib/components/layout/layout.component.js +0 -25
- package/esm2015/lib/components/loading/loading.component.js +0 -22
- package/esm2015/lib/components/login/login.component.js +0 -148
- package/esm2015/lib/components/modal/modal.component.js +0 -25
- package/esm2015/lib/components/notfound/notfound.component.js +0 -29
- package/esm2015/lib/components/notification/notification.component.js +0 -14
- package/esm2015/lib/components/sidebar/item/sidebar.item.component.js +0 -53
- package/esm2015/lib/components/sidebar/sidebar.component.js +0 -67
- package/esm2015/lib/components/steps/steps.component.js +0 -51
- package/esm2015/lib/components/table/loading/table.loading.component.js +0 -17
- package/esm2015/lib/components/table/pagination/table.pagination.component.js +0 -84
- package/esm2015/lib/components/table/report/table.report.component.js +0 -246
- package/esm2015/lib/components/table/row/table.row.component.js +0 -379
- package/esm2015/lib/components/table/table.component.js +0 -179
- package/esm2015/lib/components/tooltip/tooltip.component.js +0 -19
- package/esm2015/lib/ps-toolkit-ui.module.js +0 -94
- package/esm2015/lib/services/config.service.js +0 -14
- package/esm2015/ps-toolkit-ui.js +0 -19
- package/esm2015/public-api.js +0 -52
- package/fesm2015/ps-toolkit-ui.js +0 -6550
- package/fesm2015/ps-toolkit-ui.js.map +0 -1
- package/lib/classes/enum.class.d.ts +0 -158
- package/lib/classes/form.class.d.ts +0 -173
- package/lib/classes/helper.class.d.ts +0 -28
- package/lib/classes/lang.class.d.ts +0 -5
- package/lib/classes/login.class.d.ts +0 -17
- package/lib/classes/modal.class.d.ts +0 -19
- package/lib/classes/permission.class.d.ts +0 -31
- package/lib/classes/request.class.d.ts +0 -12
- package/lib/classes/safestyle.class.d.ts +0 -7
- package/lib/classes/sidebar.class.d.ts +0 -11
- package/lib/classes/steps.class.d.ts +0 -17
- package/lib/classes/string.class.d.ts +0 -218
- package/lib/classes/table.class.d.ts +0 -69
- package/lib/components/accordion/accordion.component.d.ts +0 -7
- package/lib/components/alert/alert.component.d.ts +0 -10
- package/lib/components/base.component.d.ts +0 -14
- package/lib/components/calendar/calendar.component.d.ts +0 -26
- package/lib/components/clock/clock.component.d.ts +0 -11
- package/lib/components/confirm/confirm.component.d.ts +0 -14
- package/lib/components/footer/footer.component.d.ts +0 -6
- package/lib/components/form/bank-card/form.bank-card.component.d.ts +0 -22
- package/lib/components/form/button/form.button.component.d.ts +0 -15
- package/lib/components/form/car/form.car.component.d.ts +0 -16
- package/lib/components/form/car/search/form.car.search.component.d.ts +0 -17
- package/lib/components/form/checkbox/form.checkbox.component.d.ts +0 -14
- package/lib/components/form/date/form.date.component.d.ts +0 -42
- package/lib/components/form/datetime/form.datetime.component.d.ts +0 -13
- package/lib/components/form/file/form.file.component.d.ts +0 -17
- package/lib/components/form/finger/form.finger.component.d.ts +0 -15
- package/lib/components/form/hidden/form.hidden.component.d.ts +0 -7
- package/lib/components/form/icon/form.icon.component.d.ts +0 -15
- package/lib/components/form/index/form.component.d.ts +0 -10
- package/lib/components/form/label/form.label.component.d.ts +0 -8
- package/lib/components/form/plaque/form.plaque.component.d.ts +0 -22
- package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +0 -36
- package/lib/components/form/radio/form.radio.component.d.ts +0 -13
- package/lib/components/form/select/form.select.component.d.ts +0 -39
- package/lib/components/form/select/item/form.select.item.component.d.ts +0 -12
- package/lib/components/form/table/form.table.component.d.ts +0 -9
- package/lib/components/form/textarea/form.textarea.component.d.ts +0 -13
- package/lib/components/form/textbox/form.textbox.component.d.ts +0 -20
- package/lib/components/form/time/form.time.component.d.ts +0 -25
- package/lib/components/form/tree/form.tree.component.d.ts +0 -16
- package/lib/components/form/tree/item/form.tree.item.component.d.ts +0 -17
- package/lib/components/header/header.component.d.ts +0 -9
- package/lib/components/header/sub/sub.header.component.d.ts +0 -3
- package/lib/components/layout/layout.component.d.ts +0 -8
- package/lib/components/loading/loading.component.d.ts +0 -5
- package/lib/components/login/login.component.d.ts +0 -13
- package/lib/components/modal/modal.component.d.ts +0 -9
- package/lib/components/notfound/notfound.component.d.ts +0 -8
- package/lib/components/notification/notification.component.d.ts +0 -3
- package/lib/components/sidebar/item/sidebar.item.component.d.ts +0 -14
- package/lib/components/sidebar/sidebar.component.d.ts +0 -19
- package/lib/components/steps/steps.component.d.ts +0 -10
- package/lib/components/table/loading/table.loading.component.d.ts +0 -5
- package/lib/components/table/pagination/table.pagination.component.d.ts +0 -15
- package/lib/components/table/report/table.report.component.d.ts +0 -34
- package/lib/components/table/row/table.row.component.d.ts +0 -34
- package/lib/components/table/table.component.d.ts +0 -40
- package/lib/components/tooltip/tooltip.component.d.ts +0 -5
- package/lib/ps-toolkit-ui.module.d.ts +0 -4
- package/lib/services/config.service.d.ts +0 -6
- package/ps-toolkit-ui.d.ts +0 -18
- package/ps-toolkit-ui.metadata.json +0 -1
- package/public-api.d.ts +0 -48
|
@@ -0,0 +1,3718 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* (c) 2010-2021 Torstein Honsi
|
|
4
|
+
*
|
|
5
|
+
* License: www.highcharts.com/license
|
|
6
|
+
*
|
|
7
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
8
|
+
*
|
|
9
|
+
* */
|
|
10
|
+
'use strict';
|
|
11
|
+
import A from '../Animation/AnimationUtilities.js';
|
|
12
|
+
var animObject = A.animObject, setAnimation = A.setAnimation;
|
|
13
|
+
import D from '../DefaultOptions.js';
|
|
14
|
+
var defaultOptions = D.defaultOptions;
|
|
15
|
+
import F from '../Foundation.js';
|
|
16
|
+
var registerEventOptions = F.registerEventOptions;
|
|
17
|
+
import H from '../Globals.js';
|
|
18
|
+
var hasTouch = H.hasTouch, svg = H.svg, win = H.win;
|
|
19
|
+
import LegendSymbol from '../Legend/LegendSymbol.js';
|
|
20
|
+
import Point from './Point.js';
|
|
21
|
+
import SeriesDefaults from './SeriesDefaults.js';
|
|
22
|
+
import SeriesRegistry from './SeriesRegistry.js';
|
|
23
|
+
var seriesTypes = SeriesRegistry.seriesTypes;
|
|
24
|
+
import SVGElement from '../Renderer/SVG/SVGElement.js';
|
|
25
|
+
import U from '../Utilities.js';
|
|
26
|
+
var addEvent = U.addEvent, arrayMax = U.arrayMax, arrayMin = U.arrayMin, clamp = U.clamp, cleanRecursively = U.cleanRecursively, correctFloat = U.correctFloat, defined = U.defined, erase = U.erase, error = U.error, extend = U.extend, find = U.find, fireEvent = U.fireEvent, getNestedProperty = U.getNestedProperty, isArray = U.isArray, isNumber = U.isNumber, isString = U.isString, merge = U.merge, objectEach = U.objectEach, pick = U.pick, removeEvent = U.removeEvent, splat = U.splat, syncTimeout = U.syncTimeout;
|
|
27
|
+
/* *
|
|
28
|
+
*
|
|
29
|
+
* Class
|
|
30
|
+
*
|
|
31
|
+
* */
|
|
32
|
+
/**
|
|
33
|
+
* This is the base series prototype that all other series types inherit from.
|
|
34
|
+
* A new series is initialized either through the
|
|
35
|
+
* [series](https://api.highcharts.com/highcharts/series)
|
|
36
|
+
* option structure, or after the chart is initialized, through
|
|
37
|
+
* {@link Highcharts.Chart#addSeries}.
|
|
38
|
+
*
|
|
39
|
+
* The object can be accessed in a number of ways. All series and point event
|
|
40
|
+
* handlers give a reference to the `series` object. The chart object has a
|
|
41
|
+
* {@link Highcharts.Chart#series|series} property that is a collection of all
|
|
42
|
+
* the chart's series. The point objects and axis objects also have the same
|
|
43
|
+
* reference.
|
|
44
|
+
*
|
|
45
|
+
* Another way to reference the series programmatically is by `id`. Add an id
|
|
46
|
+
* in the series configuration options, and get the series object by
|
|
47
|
+
* {@link Highcharts.Chart#get}.
|
|
48
|
+
*
|
|
49
|
+
* Configuration options for the series are given in three levels. Options for
|
|
50
|
+
* all series in a chart are given in the
|
|
51
|
+
* [plotOptions.series](https://api.highcharts.com/highcharts/plotOptions.series)
|
|
52
|
+
* object. Then options for all series of a specific type
|
|
53
|
+
* are given in the plotOptions of that type, for example `plotOptions.line`.
|
|
54
|
+
* Next, options for one single series are given in the series array, or as
|
|
55
|
+
* arguments to `chart.addSeries`.
|
|
56
|
+
*
|
|
57
|
+
* The data in the series is stored in various arrays.
|
|
58
|
+
*
|
|
59
|
+
* - First, `series.options.data` contains all the original config options for
|
|
60
|
+
* each point whether added by options or methods like `series.addPoint`.
|
|
61
|
+
*
|
|
62
|
+
* - Next, `series.data` contains those values converted to points, but in case
|
|
63
|
+
* the series data length exceeds the `cropThreshold`, or if the data is
|
|
64
|
+
* grouped, `series.data` doesn't contain all the points. It only contains the
|
|
65
|
+
* points that have been created on demand.
|
|
66
|
+
*
|
|
67
|
+
* - Then there's `series.points` that contains all currently visible point
|
|
68
|
+
* objects. In case of cropping, the cropped-away points are not part of this
|
|
69
|
+
* array. The `series.points` array starts at `series.cropStart` compared to
|
|
70
|
+
* `series.data` and `series.options.data`. If however the series data is
|
|
71
|
+
* grouped, these can't be correlated one to one.
|
|
72
|
+
*
|
|
73
|
+
* - `series.xData` and `series.processedXData` contain clean x values,
|
|
74
|
+
* equivalent to `series.data` and `series.points`.
|
|
75
|
+
*
|
|
76
|
+
* - `series.yData` and `series.processedYData` contain clean y values,
|
|
77
|
+
* equivalent to `series.data` and `series.points`.
|
|
78
|
+
*
|
|
79
|
+
* @class
|
|
80
|
+
* @name Highcharts.Series
|
|
81
|
+
*
|
|
82
|
+
* @param {Highcharts.Chart} chart
|
|
83
|
+
* The chart instance.
|
|
84
|
+
*
|
|
85
|
+
* @param {Highcharts.SeriesOptionsType|object} options
|
|
86
|
+
* The series options.
|
|
87
|
+
*/
|
|
88
|
+
var Series = /** @class */ (function () {
|
|
89
|
+
function Series() {
|
|
90
|
+
/* *
|
|
91
|
+
*
|
|
92
|
+
* Static Properties
|
|
93
|
+
*
|
|
94
|
+
* */
|
|
95
|
+
this._i = void 0;
|
|
96
|
+
this.chart = void 0;
|
|
97
|
+
this.data = void 0;
|
|
98
|
+
this.eventOptions = void 0;
|
|
99
|
+
this.eventsToUnbind = void 0;
|
|
100
|
+
this.index = void 0;
|
|
101
|
+
this.linkedSeries = void 0;
|
|
102
|
+
this.options = void 0;
|
|
103
|
+
this.points = void 0;
|
|
104
|
+
this.processedXData = void 0;
|
|
105
|
+
this.processedYData = void 0;
|
|
106
|
+
this.tooltipOptions = void 0;
|
|
107
|
+
this.userOptions = void 0;
|
|
108
|
+
this.xAxis = void 0;
|
|
109
|
+
this.yAxis = void 0;
|
|
110
|
+
this.zones = void 0;
|
|
111
|
+
/** eslint-enable valid-jsdoc */
|
|
112
|
+
}
|
|
113
|
+
/* *
|
|
114
|
+
*
|
|
115
|
+
* Functions
|
|
116
|
+
*
|
|
117
|
+
* */
|
|
118
|
+
/* eslint-disable valid-jsdoc */
|
|
119
|
+
Series.prototype.init = function (chart, userOptions) {
|
|
120
|
+
fireEvent(this, 'init', { options: userOptions });
|
|
121
|
+
var series = this, chartSeries = chart.series;
|
|
122
|
+
// The 'eventsToUnbind' property moved from prototype into the
|
|
123
|
+
// Series init to avoid reference to the same array between
|
|
124
|
+
// the different series and charts. #12959, #13937
|
|
125
|
+
this.eventsToUnbind = [];
|
|
126
|
+
/**
|
|
127
|
+
* Read only. The chart that the series belongs to.
|
|
128
|
+
*
|
|
129
|
+
* @name Highcharts.Series#chart
|
|
130
|
+
* @type {Highcharts.Chart}
|
|
131
|
+
*/
|
|
132
|
+
series.chart = chart;
|
|
133
|
+
/**
|
|
134
|
+
* Read only. The series' type, like "line", "area", "column" etc.
|
|
135
|
+
* The type in the series options anc can be altered using
|
|
136
|
+
* {@link Series#update}.
|
|
137
|
+
*
|
|
138
|
+
* @name Highcharts.Series#type
|
|
139
|
+
* @type {string}
|
|
140
|
+
*/
|
|
141
|
+
/**
|
|
142
|
+
* Read only. The series' current options. To update, use
|
|
143
|
+
* {@link Series#update}.
|
|
144
|
+
*
|
|
145
|
+
* @name Highcharts.Series#options
|
|
146
|
+
* @type {Highcharts.SeriesOptionsType}
|
|
147
|
+
*/
|
|
148
|
+
series.options = series.setOptions(userOptions);
|
|
149
|
+
var options = series.options;
|
|
150
|
+
series.linkedSeries = [];
|
|
151
|
+
// bind the axes
|
|
152
|
+
series.bindAxes();
|
|
153
|
+
extend(series, {
|
|
154
|
+
/**
|
|
155
|
+
* The series name as given in the options. Defaults to
|
|
156
|
+
* "Series {n}".
|
|
157
|
+
*
|
|
158
|
+
* @name Highcharts.Series#name
|
|
159
|
+
* @type {string}
|
|
160
|
+
*/
|
|
161
|
+
name: options.name,
|
|
162
|
+
state: '',
|
|
163
|
+
/**
|
|
164
|
+
* Read only. The series' visibility state as set by {@link
|
|
165
|
+
* Series#show}, {@link Series#hide}, or in the initial
|
|
166
|
+
* configuration.
|
|
167
|
+
*
|
|
168
|
+
* @name Highcharts.Series#visible
|
|
169
|
+
* @type {boolean}
|
|
170
|
+
*/
|
|
171
|
+
visible: options.visible !== false,
|
|
172
|
+
/**
|
|
173
|
+
* Read only. The series' selected state as set by {@link
|
|
174
|
+
* Highcharts.Series#select}.
|
|
175
|
+
*
|
|
176
|
+
* @name Highcharts.Series#selected
|
|
177
|
+
* @type {boolean}
|
|
178
|
+
*/
|
|
179
|
+
selected: options.selected === true // false by default
|
|
180
|
+
});
|
|
181
|
+
registerEventOptions(this, options);
|
|
182
|
+
var events = options.events;
|
|
183
|
+
if ((events && events.click) ||
|
|
184
|
+
(options.point &&
|
|
185
|
+
options.point.events &&
|
|
186
|
+
options.point.events.click) ||
|
|
187
|
+
options.allowPointSelect) {
|
|
188
|
+
chart.runTrackerClick = true;
|
|
189
|
+
}
|
|
190
|
+
series.getColor();
|
|
191
|
+
series.getSymbol();
|
|
192
|
+
// Initialize the parallel data arrays
|
|
193
|
+
series.parallelArrays.forEach(function (key) {
|
|
194
|
+
if (!series[key + 'Data']) {
|
|
195
|
+
series[key + 'Data'] = [];
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
// Mark cartesian
|
|
199
|
+
if (series.isCartesian) {
|
|
200
|
+
chart.hasCartesianSeries = true;
|
|
201
|
+
}
|
|
202
|
+
// Get the index and register the series in the chart. The index is
|
|
203
|
+
// one more than the current latest series index (#5960).
|
|
204
|
+
var lastSeries;
|
|
205
|
+
if (chartSeries.length) {
|
|
206
|
+
lastSeries = chartSeries[chartSeries.length - 1];
|
|
207
|
+
}
|
|
208
|
+
series._i = pick(lastSeries && lastSeries._i, -1) + 1;
|
|
209
|
+
series.opacity = series.options.opacity;
|
|
210
|
+
// Insert the series and re-order all series above the insertion
|
|
211
|
+
// point.
|
|
212
|
+
chart.orderSeries(this.insert(chartSeries));
|
|
213
|
+
// Set options for series with sorting and set data later.
|
|
214
|
+
if (options.dataSorting && options.dataSorting.enabled) {
|
|
215
|
+
series.setDataSortingOptions();
|
|
216
|
+
}
|
|
217
|
+
else if (!series.points && !series.data) {
|
|
218
|
+
series.setData(options.data, false);
|
|
219
|
+
}
|
|
220
|
+
fireEvent(this, 'afterInit');
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* Check whether the series item is itself or inherits from a certain
|
|
224
|
+
* series type.
|
|
225
|
+
*
|
|
226
|
+
* @function Highcharts.Series#is
|
|
227
|
+
* @param {string} type The type of series to check for, can be either
|
|
228
|
+
* featured or custom series types. For example `column`, `pie`,
|
|
229
|
+
* `ohlc` etc.
|
|
230
|
+
*
|
|
231
|
+
* @return {boolean}
|
|
232
|
+
* True if this item is or inherits from the given type.
|
|
233
|
+
*/
|
|
234
|
+
Series.prototype.is = function (type) {
|
|
235
|
+
return seriesTypes[type] && this instanceof seriesTypes[type];
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* Insert the series in a collection with other series, either the chart
|
|
239
|
+
* series or yAxis series, in the correct order according to the index
|
|
240
|
+
* option. Used internally when adding series.
|
|
241
|
+
*
|
|
242
|
+
* @private
|
|
243
|
+
* @function Highcharts.Series#insert
|
|
244
|
+
* @param {Array<Highcharts.Series>} collection
|
|
245
|
+
* A collection of series, like `chart.series` or `xAxis.series`.
|
|
246
|
+
* @return {number}
|
|
247
|
+
* The index of the series in the collection.
|
|
248
|
+
*/
|
|
249
|
+
Series.prototype.insert = function (collection) {
|
|
250
|
+
var indexOption = this.options.index;
|
|
251
|
+
var i;
|
|
252
|
+
// Insert by index option
|
|
253
|
+
if (isNumber(indexOption)) {
|
|
254
|
+
i = collection.length;
|
|
255
|
+
while (i--) {
|
|
256
|
+
// Loop down until the interted element has higher index
|
|
257
|
+
if (indexOption >=
|
|
258
|
+
pick(collection[i].options.index, collection[i]._i)) {
|
|
259
|
+
collection.splice(i + 1, 0, this);
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (i === -1) {
|
|
264
|
+
collection.unshift(this);
|
|
265
|
+
}
|
|
266
|
+
i = i + 1;
|
|
267
|
+
// Or just push it to the end
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
collection.push(this);
|
|
271
|
+
}
|
|
272
|
+
return pick(i, collection.length - 1);
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Set the xAxis and yAxis properties of cartesian series, and register
|
|
276
|
+
* the series in the `axis.series` array.
|
|
277
|
+
*
|
|
278
|
+
* @private
|
|
279
|
+
* @function Highcharts.Series#bindAxes
|
|
280
|
+
*/
|
|
281
|
+
Series.prototype.bindAxes = function () {
|
|
282
|
+
var series = this, seriesOptions = series.options, chart = series.chart;
|
|
283
|
+
var axisOptions;
|
|
284
|
+
fireEvent(this, 'bindAxes', null, function () {
|
|
285
|
+
// repeat for xAxis and yAxis
|
|
286
|
+
(series.axisTypes || []).forEach(function (AXIS) {
|
|
287
|
+
var index = 0;
|
|
288
|
+
// loop through the chart's axis objects
|
|
289
|
+
chart[AXIS].forEach(function (axis) {
|
|
290
|
+
axisOptions = axis.options;
|
|
291
|
+
// apply if the series xAxis or yAxis option mathches
|
|
292
|
+
// the number of the axis, or if undefined, use the
|
|
293
|
+
// first axis
|
|
294
|
+
if ((seriesOptions[AXIS] === index &&
|
|
295
|
+
!axisOptions.isInternal) ||
|
|
296
|
+
(typeof seriesOptions[AXIS] !==
|
|
297
|
+
'undefined' &&
|
|
298
|
+
seriesOptions[AXIS] === axisOptions.id) ||
|
|
299
|
+
(typeof seriesOptions[AXIS] ===
|
|
300
|
+
'undefined' &&
|
|
301
|
+
axisOptions.index === 0)) {
|
|
302
|
+
// register this series in the axis.series lookup
|
|
303
|
+
series.insert(axis.series);
|
|
304
|
+
// set this series.xAxis or series.yAxis reference
|
|
305
|
+
/**
|
|
306
|
+
* Read only. The unique xAxis object associated
|
|
307
|
+
* with the series.
|
|
308
|
+
*
|
|
309
|
+
* @name Highcharts.Series#xAxis
|
|
310
|
+
* @type {Highcharts.Axis}
|
|
311
|
+
*/
|
|
312
|
+
/**
|
|
313
|
+
* Read only. The unique yAxis object associated
|
|
314
|
+
* with the series.
|
|
315
|
+
*
|
|
316
|
+
* @name Highcharts.Series#yAxis
|
|
317
|
+
* @type {Highcharts.Axis}
|
|
318
|
+
*/
|
|
319
|
+
series[AXIS] = axis;
|
|
320
|
+
// mark dirty for redraw
|
|
321
|
+
axis.isDirty = true;
|
|
322
|
+
}
|
|
323
|
+
if (!axisOptions.isInternal) {
|
|
324
|
+
index++;
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
// The series needs an X and an Y axis
|
|
328
|
+
if (!series[AXIS] &&
|
|
329
|
+
series.optionalAxis !== AXIS) {
|
|
330
|
+
error(18, true, chart);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
});
|
|
334
|
+
fireEvent(this, 'afterBindAxes');
|
|
335
|
+
};
|
|
336
|
+
/**
|
|
337
|
+
* For simple series types like line and column, the data values are
|
|
338
|
+
* held in arrays like xData and yData for quick lookup to find extremes
|
|
339
|
+
* and more. For multidimensional series like bubble and map, this can
|
|
340
|
+
* be extended with arrays like zData and valueData by adding to the
|
|
341
|
+
* `series.parallelArrays` array.
|
|
342
|
+
*
|
|
343
|
+
* @private
|
|
344
|
+
* @function Highcharts.Series#updateParallelArrays
|
|
345
|
+
*/
|
|
346
|
+
Series.prototype.updateParallelArrays = function (point, i) {
|
|
347
|
+
var series = point.series, args = arguments, fn = isNumber(i) ?
|
|
348
|
+
// Insert the value in the given position
|
|
349
|
+
function (key) {
|
|
350
|
+
var val = key === 'y' && series.toYData ?
|
|
351
|
+
series.toYData(point) :
|
|
352
|
+
point[key];
|
|
353
|
+
series[key + 'Data'][i] = val;
|
|
354
|
+
} :
|
|
355
|
+
// Apply the method specified in i with the following
|
|
356
|
+
// arguments as arguments
|
|
357
|
+
function (key) {
|
|
358
|
+
Array.prototype[i].apply(series[key + 'Data'], Array.prototype.slice.call(args, 2));
|
|
359
|
+
};
|
|
360
|
+
series.parallelArrays.forEach(fn);
|
|
361
|
+
};
|
|
362
|
+
/**
|
|
363
|
+
* Define hasData functions for series. These return true if there
|
|
364
|
+
* are data points on this series within the plot area.
|
|
365
|
+
*
|
|
366
|
+
* @private
|
|
367
|
+
* @function Highcharts.Series#hasData
|
|
368
|
+
*/
|
|
369
|
+
Series.prototype.hasData = function () {
|
|
370
|
+
return ((this.visible &&
|
|
371
|
+
typeof this.dataMax !== 'undefined' &&
|
|
372
|
+
typeof this.dataMin !== 'undefined') || ( // #3703
|
|
373
|
+
this.visible &&
|
|
374
|
+
this.yData &&
|
|
375
|
+
this.yData.length > 0) // #9758
|
|
376
|
+
);
|
|
377
|
+
};
|
|
378
|
+
/**
|
|
379
|
+
* Return an auto incremented x value based on the pointStart and
|
|
380
|
+
* pointInterval options. This is only used if an x value is not given
|
|
381
|
+
* for the point that calls autoIncrement.
|
|
382
|
+
*
|
|
383
|
+
* @private
|
|
384
|
+
* @function Highcharts.Series#autoIncrement
|
|
385
|
+
*/
|
|
386
|
+
Series.prototype.autoIncrement = function (x) {
|
|
387
|
+
var options = this.options, pointIntervalUnit = options.pointIntervalUnit, relativeXValue = options.relativeXValue, time = this.chart.time;
|
|
388
|
+
var xIncrement = this.xIncrement, date, pointInterval;
|
|
389
|
+
xIncrement = pick(xIncrement, options.pointStart, 0);
|
|
390
|
+
this.pointInterval = pointInterval = pick(this.pointInterval, options.pointInterval, 1);
|
|
391
|
+
if (relativeXValue && isNumber(x)) {
|
|
392
|
+
pointInterval *= x;
|
|
393
|
+
}
|
|
394
|
+
// Added code for pointInterval strings
|
|
395
|
+
if (pointIntervalUnit) {
|
|
396
|
+
date = new time.Date(xIncrement);
|
|
397
|
+
if (pointIntervalUnit === 'day') {
|
|
398
|
+
time.set('Date', date, time.get('Date', date) + pointInterval);
|
|
399
|
+
}
|
|
400
|
+
else if (pointIntervalUnit === 'month') {
|
|
401
|
+
time.set('Month', date, time.get('Month', date) + pointInterval);
|
|
402
|
+
}
|
|
403
|
+
else if (pointIntervalUnit === 'year') {
|
|
404
|
+
time.set('FullYear', date, time.get('FullYear', date) + pointInterval);
|
|
405
|
+
}
|
|
406
|
+
pointInterval = date.getTime() - xIncrement;
|
|
407
|
+
}
|
|
408
|
+
if (relativeXValue && isNumber(x)) {
|
|
409
|
+
return xIncrement + pointInterval;
|
|
410
|
+
}
|
|
411
|
+
this.xIncrement = xIncrement + pointInterval;
|
|
412
|
+
return xIncrement;
|
|
413
|
+
};
|
|
414
|
+
/**
|
|
415
|
+
* Internal function to set properties for series if data sorting is
|
|
416
|
+
* enabled.
|
|
417
|
+
*
|
|
418
|
+
* @private
|
|
419
|
+
* @function Highcharts.Series#setDataSortingOptions
|
|
420
|
+
*/
|
|
421
|
+
Series.prototype.setDataSortingOptions = function () {
|
|
422
|
+
var options = this.options;
|
|
423
|
+
extend(this, {
|
|
424
|
+
requireSorting: false,
|
|
425
|
+
sorted: false,
|
|
426
|
+
enabledDataSorting: true,
|
|
427
|
+
allowDG: false
|
|
428
|
+
});
|
|
429
|
+
// To allow unsorted data for column series.
|
|
430
|
+
if (!defined(options.pointRange)) {
|
|
431
|
+
options.pointRange = 1;
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
/**
|
|
435
|
+
* Set the series options by merging from the options tree. Called
|
|
436
|
+
* internally on initializing and updating series. This function will
|
|
437
|
+
* not redraw the series. For API usage, use {@link Series#update}.
|
|
438
|
+
* @private
|
|
439
|
+
* @function Highcharts.Series#setOptions
|
|
440
|
+
* @param {Highcharts.SeriesOptionsType} itemOptions
|
|
441
|
+
* The series options.
|
|
442
|
+
* @emits Highcharts.Series#event:afterSetOptions
|
|
443
|
+
*/
|
|
444
|
+
Series.prototype.setOptions = function (itemOptions) {
|
|
445
|
+
var chart = this.chart, chartOptions = chart.options, plotOptions = chartOptions.plotOptions, userOptions = chart.userOptions || {}, seriesUserOptions = merge(itemOptions), styledMode = chart.styledMode, e = {
|
|
446
|
+
plotOptions: plotOptions,
|
|
447
|
+
userOptions: seriesUserOptions
|
|
448
|
+
};
|
|
449
|
+
var zone;
|
|
450
|
+
fireEvent(this, 'setOptions', e);
|
|
451
|
+
// These may be modified by the event
|
|
452
|
+
var typeOptions = e.plotOptions[this.type], userPlotOptions = (userOptions.plotOptions || {});
|
|
453
|
+
// use copy to prevent undetected changes (#9762)
|
|
454
|
+
/**
|
|
455
|
+
* Contains series options by the user without defaults.
|
|
456
|
+
* @name Highcharts.Series#userOptions
|
|
457
|
+
* @type {Highcharts.SeriesOptionsType}
|
|
458
|
+
*/
|
|
459
|
+
this.userOptions = e.userOptions;
|
|
460
|
+
var options = merge(typeOptions, plotOptions.series,
|
|
461
|
+
// #3881, chart instance plotOptions[type] should trump
|
|
462
|
+
// plotOptions.series
|
|
463
|
+
userOptions.plotOptions &&
|
|
464
|
+
userOptions.plotOptions[this.type], seriesUserOptions);
|
|
465
|
+
// The tooltip options are merged between global and series specific
|
|
466
|
+
// options. Importance order asscendingly:
|
|
467
|
+
// globals: (1)tooltip, (2)plotOptions.series,
|
|
468
|
+
// (3)plotOptions[this.type]
|
|
469
|
+
// init userOptions with possible later updates: 4-6 like 1-3 and
|
|
470
|
+
// (7)this series options
|
|
471
|
+
this.tooltipOptions = merge(defaultOptions.tooltip, // 1
|
|
472
|
+
defaultOptions.plotOptions.series &&
|
|
473
|
+
defaultOptions.plotOptions.series.tooltip, // 2
|
|
474
|
+
defaultOptions.plotOptions[this.type].tooltip, // 3
|
|
475
|
+
chartOptions.tooltip.userOptions, // 4
|
|
476
|
+
plotOptions.series &&
|
|
477
|
+
plotOptions.series.tooltip, // 5
|
|
478
|
+
plotOptions[this.type].tooltip, // 6
|
|
479
|
+
seriesUserOptions.tooltip // 7
|
|
480
|
+
);
|
|
481
|
+
// When shared tooltip, stickyTracking is true by default,
|
|
482
|
+
// unless user says otherwise.
|
|
483
|
+
this.stickyTracking = pick(seriesUserOptions.stickyTracking, userPlotOptions[this.type] &&
|
|
484
|
+
userPlotOptions[this.type].stickyTracking, userPlotOptions.series && userPlotOptions.series.stickyTracking, (this.tooltipOptions.shared && !this.noSharedTooltip ?
|
|
485
|
+
true :
|
|
486
|
+
options.stickyTracking));
|
|
487
|
+
// Delete marker object if not allowed (#1125)
|
|
488
|
+
if (typeOptions.marker === null) {
|
|
489
|
+
delete options.marker;
|
|
490
|
+
}
|
|
491
|
+
// Handle color zones
|
|
492
|
+
this.zoneAxis = options.zoneAxis;
|
|
493
|
+
var zones = this.zones = (options.zones || []).slice();
|
|
494
|
+
if ((options.negativeColor || options.negativeFillColor) &&
|
|
495
|
+
!options.zones) {
|
|
496
|
+
zone = {
|
|
497
|
+
value: options[this.zoneAxis + 'Threshold'] ||
|
|
498
|
+
options.threshold ||
|
|
499
|
+
0,
|
|
500
|
+
className: 'highcharts-negative'
|
|
501
|
+
};
|
|
502
|
+
if (!styledMode) {
|
|
503
|
+
zone.color = options.negativeColor;
|
|
504
|
+
zone.fillColor = options.negativeFillColor;
|
|
505
|
+
}
|
|
506
|
+
zones.push(zone);
|
|
507
|
+
}
|
|
508
|
+
if (zones.length) { // Push one extra zone for the rest
|
|
509
|
+
if (defined(zones[zones.length - 1].value)) {
|
|
510
|
+
zones.push(styledMode ? {} : {
|
|
511
|
+
color: this.color,
|
|
512
|
+
fillColor: this.fillColor
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
fireEvent(this, 'afterSetOptions', { options: options });
|
|
517
|
+
return options;
|
|
518
|
+
};
|
|
519
|
+
/**
|
|
520
|
+
* Return series name in "Series {Number}" format or the one defined by
|
|
521
|
+
* a user. This method can be simply overridden as series name format
|
|
522
|
+
* can vary (e.g. technical indicators).
|
|
523
|
+
*
|
|
524
|
+
* @function Highcharts.Series#getName
|
|
525
|
+
*
|
|
526
|
+
* @return {string}
|
|
527
|
+
* The series name.
|
|
528
|
+
*/
|
|
529
|
+
Series.prototype.getName = function () {
|
|
530
|
+
// #4119
|
|
531
|
+
return pick(this.options.name, 'Series ' + (this.index + 1));
|
|
532
|
+
};
|
|
533
|
+
/**
|
|
534
|
+
* @private
|
|
535
|
+
* @function Highcharts.Series#getCyclic
|
|
536
|
+
*/
|
|
537
|
+
Series.prototype.getCyclic = function (prop, value, defaults) {
|
|
538
|
+
var chart = this.chart, userOptions = this.userOptions, indexName = prop + 'Index', counterName = prop + 'Counter', len = defaults ? defaults.length : pick(chart.options.chart[prop + 'Count'], chart[prop + 'Count']);
|
|
539
|
+
var i, setting;
|
|
540
|
+
if (!value) {
|
|
541
|
+
// Pick up either the colorIndex option, or the _colorIndex
|
|
542
|
+
// after Series.update()
|
|
543
|
+
setting = pick(userOptions[indexName], userOptions['_' + indexName]);
|
|
544
|
+
if (defined(setting)) { // after Series.update()
|
|
545
|
+
i = setting;
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
// #6138
|
|
549
|
+
if (!chart.series.length) {
|
|
550
|
+
chart[counterName] = 0;
|
|
551
|
+
}
|
|
552
|
+
userOptions['_' + indexName] = i =
|
|
553
|
+
chart[counterName] % len;
|
|
554
|
+
chart[counterName] += 1;
|
|
555
|
+
}
|
|
556
|
+
if (defaults) {
|
|
557
|
+
value = defaults[i];
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
// Set the colorIndex
|
|
561
|
+
if (typeof i !== 'undefined') {
|
|
562
|
+
this[indexName] = i;
|
|
563
|
+
}
|
|
564
|
+
this[prop] = value;
|
|
565
|
+
};
|
|
566
|
+
/**
|
|
567
|
+
* Get the series' color based on either the options or pulled from
|
|
568
|
+
* global options.
|
|
569
|
+
*
|
|
570
|
+
* @private
|
|
571
|
+
* @function Highcharts.Series#getColor
|
|
572
|
+
*/
|
|
573
|
+
Series.prototype.getColor = function () {
|
|
574
|
+
if (this.chart.styledMode) {
|
|
575
|
+
this.getCyclic('color');
|
|
576
|
+
}
|
|
577
|
+
else if (this.options.colorByPoint) {
|
|
578
|
+
this.color = "#cccccc" /* neutralColor20 */;
|
|
579
|
+
}
|
|
580
|
+
else {
|
|
581
|
+
this.getCyclic('color', this.options.color ||
|
|
582
|
+
defaultOptions.plotOptions[this.type].color, this.chart.options.colors);
|
|
583
|
+
}
|
|
584
|
+
};
|
|
585
|
+
/**
|
|
586
|
+
* Get all points' instances created for this series.
|
|
587
|
+
*
|
|
588
|
+
* @private
|
|
589
|
+
* @function Highcharts.Series#getPointsCollection
|
|
590
|
+
*/
|
|
591
|
+
Series.prototype.getPointsCollection = function () {
|
|
592
|
+
return (this.hasGroupedData ? this.points : this.data) || [];
|
|
593
|
+
};
|
|
594
|
+
/**
|
|
595
|
+
* Get the series' symbol based on either the options or pulled from
|
|
596
|
+
* global options.
|
|
597
|
+
*
|
|
598
|
+
* @private
|
|
599
|
+
* @function Highcharts.Series#getSymbol
|
|
600
|
+
*/
|
|
601
|
+
Series.prototype.getSymbol = function () {
|
|
602
|
+
var seriesMarkerOption = this.options.marker;
|
|
603
|
+
this.getCyclic('symbol', seriesMarkerOption.symbol, this.chart.options.symbols);
|
|
604
|
+
};
|
|
605
|
+
/**
|
|
606
|
+
* Finds the index of an existing point that matches the given point
|
|
607
|
+
* options.
|
|
608
|
+
*
|
|
609
|
+
* @private
|
|
610
|
+
* @function Highcharts.Series#findPointIndex
|
|
611
|
+
* @param {Highcharts.PointOptionsObject} optionsObject
|
|
612
|
+
* The options of the point.
|
|
613
|
+
* @param {number} fromIndex
|
|
614
|
+
* The index to start searching from, used for optimizing series with
|
|
615
|
+
* required sorting.
|
|
616
|
+
* @return {number|undefined}
|
|
617
|
+
* Returns the index of a matching point, or undefined if no match is found.
|
|
618
|
+
*/
|
|
619
|
+
Series.prototype.findPointIndex = function (optionsObject, fromIndex) {
|
|
620
|
+
var id = optionsObject.id, x = optionsObject.x, oldData = this.points, dataSorting = this.options.dataSorting;
|
|
621
|
+
var matchingPoint, matchedById, pointIndex;
|
|
622
|
+
if (id) {
|
|
623
|
+
var item = this.chart.get(id);
|
|
624
|
+
if (item instanceof Point) {
|
|
625
|
+
matchingPoint = item;
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
else if (this.linkedParent ||
|
|
629
|
+
this.enabledDataSorting ||
|
|
630
|
+
this.options.relativeXValue) {
|
|
631
|
+
var matcher = function (oldPoint) { return !oldPoint.touched &&
|
|
632
|
+
oldPoint.index === optionsObject.index; };
|
|
633
|
+
if (dataSorting && dataSorting.matchByName) {
|
|
634
|
+
matcher = function (oldPoint) { return !oldPoint.touched &&
|
|
635
|
+
oldPoint.name === optionsObject.name; };
|
|
636
|
+
}
|
|
637
|
+
else if (this.options.relativeXValue) {
|
|
638
|
+
matcher = function (oldPoint) { return !oldPoint.touched &&
|
|
639
|
+
oldPoint.options.x === optionsObject.x; };
|
|
640
|
+
}
|
|
641
|
+
matchingPoint = find(oldData, matcher);
|
|
642
|
+
// Add unmatched point as a new point
|
|
643
|
+
if (!matchingPoint) {
|
|
644
|
+
return void 0;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
if (matchingPoint) {
|
|
648
|
+
pointIndex = matchingPoint && matchingPoint.index;
|
|
649
|
+
if (typeof pointIndex !== 'undefined') {
|
|
650
|
+
matchedById = true;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
// Search for the same X in the existing data set
|
|
654
|
+
if (typeof pointIndex === 'undefined' && isNumber(x)) {
|
|
655
|
+
pointIndex = this.xData.indexOf(x, fromIndex);
|
|
656
|
+
}
|
|
657
|
+
// Reduce pointIndex if data is cropped
|
|
658
|
+
if (pointIndex !== -1 &&
|
|
659
|
+
typeof pointIndex !== 'undefined' &&
|
|
660
|
+
this.cropped) {
|
|
661
|
+
pointIndex = (pointIndex >= this.cropStart) ?
|
|
662
|
+
pointIndex - this.cropStart : pointIndex;
|
|
663
|
+
}
|
|
664
|
+
if (!matchedById &&
|
|
665
|
+
isNumber(pointIndex) &&
|
|
666
|
+
oldData[pointIndex] && oldData[pointIndex].touched) {
|
|
667
|
+
pointIndex = void 0;
|
|
668
|
+
}
|
|
669
|
+
return pointIndex;
|
|
670
|
+
};
|
|
671
|
+
/**
|
|
672
|
+
* Internal function called from setData. If the point count is the same
|
|
673
|
+
* as is was, or if there are overlapping X values, just run
|
|
674
|
+
* Point.update which is cheaper, allows animation, and keeps references
|
|
675
|
+
* to points. This also allows adding or removing points if the X-es
|
|
676
|
+
* don't match.
|
|
677
|
+
*
|
|
678
|
+
* @private
|
|
679
|
+
* @function Highcharts.Series#updateData
|
|
680
|
+
*/
|
|
681
|
+
Series.prototype.updateData = function (data, animation) {
|
|
682
|
+
var options = this.options, dataSorting = options.dataSorting, oldData = this.points, pointsToAdd = [], requireSorting = this.requireSorting, equalLength = data.length === oldData.length;
|
|
683
|
+
var hasUpdatedByKey, i, point, lastIndex, succeeded = true;
|
|
684
|
+
this.xIncrement = null;
|
|
685
|
+
// Iterate the new data
|
|
686
|
+
data.forEach(function (pointOptions, i) {
|
|
687
|
+
var optionsObject = (defined(pointOptions) &&
|
|
688
|
+
this.pointClass.prototype.optionsToObject.call({ series: this }, pointOptions)) || {};
|
|
689
|
+
var pointIndex;
|
|
690
|
+
// Get the x of the new data point
|
|
691
|
+
var x = optionsObject.x, id = optionsObject.id;
|
|
692
|
+
if (id || isNumber(x)) {
|
|
693
|
+
pointIndex = this.findPointIndex(optionsObject, lastIndex);
|
|
694
|
+
// Matching X not found
|
|
695
|
+
// or used already due to ununique x values (#8995),
|
|
696
|
+
// add point (but later)
|
|
697
|
+
if (pointIndex === -1 ||
|
|
698
|
+
typeof pointIndex === 'undefined') {
|
|
699
|
+
pointsToAdd.push(pointOptions);
|
|
700
|
+
// Matching X found, update
|
|
701
|
+
}
|
|
702
|
+
else if (oldData[pointIndex] &&
|
|
703
|
+
pointOptions !== options.data[pointIndex]) {
|
|
704
|
+
oldData[pointIndex].update(pointOptions, false, null, false);
|
|
705
|
+
// Mark it touched, below we will remove all points that
|
|
706
|
+
// are not touched.
|
|
707
|
+
oldData[pointIndex].touched = true;
|
|
708
|
+
// Speed optimize by only searching after last known
|
|
709
|
+
// index. Performs ~20% bettor on large data sets.
|
|
710
|
+
if (requireSorting) {
|
|
711
|
+
lastIndex = pointIndex + 1;
|
|
712
|
+
}
|
|
713
|
+
// Point exists, no changes, don't remove it
|
|
714
|
+
}
|
|
715
|
+
else if (oldData[pointIndex]) {
|
|
716
|
+
oldData[pointIndex].touched = true;
|
|
717
|
+
}
|
|
718
|
+
// If the length is equal and some of the nodes had a
|
|
719
|
+
// match in the same position, we don't want to remove
|
|
720
|
+
// non-matches.
|
|
721
|
+
if (!equalLength ||
|
|
722
|
+
i !== pointIndex ||
|
|
723
|
+
(dataSorting && dataSorting.enabled) ||
|
|
724
|
+
this.hasDerivedData) {
|
|
725
|
+
hasUpdatedByKey = true;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
// Gather all points that are not matched
|
|
730
|
+
pointsToAdd.push(pointOptions);
|
|
731
|
+
}
|
|
732
|
+
}, this);
|
|
733
|
+
// Remove points that don't exist in the updated data set
|
|
734
|
+
if (hasUpdatedByKey) {
|
|
735
|
+
i = oldData.length;
|
|
736
|
+
while (i--) {
|
|
737
|
+
point = oldData[i];
|
|
738
|
+
if (point && !point.touched && point.remove) {
|
|
739
|
+
point.remove(false, animation);
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
// If we did not find keys (ids or x-values), and the length is the
|
|
743
|
+
// same, update one-to-one
|
|
744
|
+
}
|
|
745
|
+
else if (equalLength && (!dataSorting || !dataSorting.enabled)) {
|
|
746
|
+
data.forEach(function (point, i) {
|
|
747
|
+
// .update doesn't exist on a linked, hidden series (#3709)
|
|
748
|
+
// (#10187)
|
|
749
|
+
if (point !== oldData[i].y && oldData[i].update) {
|
|
750
|
+
oldData[i].update(point, false, null, false);
|
|
751
|
+
}
|
|
752
|
+
});
|
|
753
|
+
// Don't add new points since those configs are used above
|
|
754
|
+
pointsToAdd.length = 0;
|
|
755
|
+
// Did not succeed in updating data
|
|
756
|
+
}
|
|
757
|
+
else {
|
|
758
|
+
succeeded = false;
|
|
759
|
+
}
|
|
760
|
+
oldData.forEach(function (point) {
|
|
761
|
+
if (point) {
|
|
762
|
+
point.touched = false;
|
|
763
|
+
}
|
|
764
|
+
});
|
|
765
|
+
if (!succeeded) {
|
|
766
|
+
return false;
|
|
767
|
+
}
|
|
768
|
+
// Add new points
|
|
769
|
+
pointsToAdd.forEach(function (point) {
|
|
770
|
+
this.addPoint(point, false, null, null, false);
|
|
771
|
+
}, this);
|
|
772
|
+
if (this.xIncrement === null &&
|
|
773
|
+
this.xData &&
|
|
774
|
+
this.xData.length) {
|
|
775
|
+
this.xIncrement = arrayMax(this.xData);
|
|
776
|
+
this.autoIncrement();
|
|
777
|
+
}
|
|
778
|
+
return true;
|
|
779
|
+
};
|
|
780
|
+
/**
|
|
781
|
+
* Apply a new set of data to the series and optionally redraw it. The
|
|
782
|
+
* new data array is passed by reference (except in case of
|
|
783
|
+
* `updatePoints`), and may later be mutated when updating the chart
|
|
784
|
+
* data.
|
|
785
|
+
*
|
|
786
|
+
* Note the difference in behaviour when setting the same amount of
|
|
787
|
+
* points, or a different amount of points, as handled by the
|
|
788
|
+
* `updatePoints` parameter.
|
|
789
|
+
*
|
|
790
|
+
* @sample highcharts/members/series-setdata/
|
|
791
|
+
* Set new data from a button
|
|
792
|
+
* @sample highcharts/members/series-setdata-pie/
|
|
793
|
+
* Set data in a pie
|
|
794
|
+
* @sample stock/members/series-setdata/
|
|
795
|
+
* Set new data in Highcharts Stock
|
|
796
|
+
* @sample maps/members/series-setdata/
|
|
797
|
+
* Set new data in Highmaps
|
|
798
|
+
*
|
|
799
|
+
* @function Highcharts.Series#setData
|
|
800
|
+
*
|
|
801
|
+
* @param {Array<Highcharts.PointOptionsType>} data
|
|
802
|
+
* Takes an array of data in the same format as described under
|
|
803
|
+
* `series.{type}.data` for the given series type, for example a
|
|
804
|
+
* line series would take data in the form described under
|
|
805
|
+
* [series.line.data](https://api.highcharts.com/highcharts/series.line.data).
|
|
806
|
+
*
|
|
807
|
+
* @param {boolean} [redraw=true]
|
|
808
|
+
* Whether to redraw the chart after the series is altered. If
|
|
809
|
+
* doing more operations on the chart, it is a good idea to set
|
|
810
|
+
* redraw to false and call {@link Chart#redraw} after.
|
|
811
|
+
*
|
|
812
|
+
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
813
|
+
* When the updated data is the same length as the existing data,
|
|
814
|
+
* points will be updated by default, and animation visualizes
|
|
815
|
+
* how the points are changed. Set false to disable animation, or
|
|
816
|
+
* a configuration object to set duration or easing.
|
|
817
|
+
*
|
|
818
|
+
* @param {boolean} [updatePoints=true]
|
|
819
|
+
* When this is true, points will be updated instead of replaced
|
|
820
|
+
* whenever possible. This occurs a) when the updated data is the
|
|
821
|
+
* same length as the existing data, b) when points are matched
|
|
822
|
+
* by their id's, or c) when points can be matched by X values.
|
|
823
|
+
* This allows updating with animation and performs better. In
|
|
824
|
+
* this case, the original array is not passed by reference. Set
|
|
825
|
+
* `false` to prevent.
|
|
826
|
+
*/
|
|
827
|
+
Series.prototype.setData = function (data, redraw, animation, updatePoints) {
|
|
828
|
+
var series = this, oldData = series.points, oldDataLength = (oldData && oldData.length) || 0, options = series.options, chart = series.chart, dataSorting = options.dataSorting, xAxis = series.xAxis, turboThreshold = options.turboThreshold, xData = this.xData, yData = this.yData, pointArrayMap = series.pointArrayMap, valueCount = pointArrayMap && pointArrayMap.length, keys = options.keys;
|
|
829
|
+
var i, pt, updatedData, indexOfX = 0, indexOfY = 1, firstPoint = null;
|
|
830
|
+
data = data || [];
|
|
831
|
+
var dataLength = data.length;
|
|
832
|
+
redraw = pick(redraw, true);
|
|
833
|
+
if (dataSorting && dataSorting.enabled) {
|
|
834
|
+
data = this.sortData(data);
|
|
835
|
+
}
|
|
836
|
+
// First try to run Point.update which is cheaper, allows animation,
|
|
837
|
+
// and keeps references to points.
|
|
838
|
+
if (updatePoints !== false &&
|
|
839
|
+
dataLength &&
|
|
840
|
+
oldDataLength &&
|
|
841
|
+
!series.cropped &&
|
|
842
|
+
!series.hasGroupedData &&
|
|
843
|
+
series.visible &&
|
|
844
|
+
// Soft updating has no benefit in boost, and causes JS error
|
|
845
|
+
// (#8355)
|
|
846
|
+
!series.isSeriesBoosting) {
|
|
847
|
+
updatedData = this.updateData(data, animation);
|
|
848
|
+
}
|
|
849
|
+
if (!updatedData) {
|
|
850
|
+
// Reset properties
|
|
851
|
+
series.xIncrement = null;
|
|
852
|
+
series.colorCounter = 0; // for series with colorByPoint (#1547)
|
|
853
|
+
// Update parallel arrays
|
|
854
|
+
this.parallelArrays.forEach(function (key) {
|
|
855
|
+
series[key + 'Data'].length = 0;
|
|
856
|
+
});
|
|
857
|
+
// In turbo mode, only one- or twodimensional arrays of numbers
|
|
858
|
+
// are allowed. The first value is tested, and we assume that
|
|
859
|
+
// all the rest are defined the same way. Although the 'for'
|
|
860
|
+
// loops are similar, they are repeated inside each if-else
|
|
861
|
+
// conditional for max performance.
|
|
862
|
+
if (turboThreshold && dataLength > turboThreshold) {
|
|
863
|
+
firstPoint = series.getFirstValidPoint(data);
|
|
864
|
+
if (isNumber(firstPoint)) { // assume all points are numbers
|
|
865
|
+
for (i = 0; i < dataLength; i++) {
|
|
866
|
+
xData[i] = this.autoIncrement();
|
|
867
|
+
yData[i] = data[i];
|
|
868
|
+
}
|
|
869
|
+
// Assume all points are arrays when first point is
|
|
870
|
+
}
|
|
871
|
+
else if (isArray(firstPoint)) {
|
|
872
|
+
if (valueCount) { // [x, low, high] or [x, o, h, l, c]
|
|
873
|
+
if (firstPoint.length === valueCount) {
|
|
874
|
+
for (i = 0; i < dataLength; i++) {
|
|
875
|
+
xData[i] = this.autoIncrement();
|
|
876
|
+
yData[i] = data[i];
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
else {
|
|
880
|
+
for (i = 0; i < dataLength; i++) {
|
|
881
|
+
pt = data[i];
|
|
882
|
+
xData[i] = pt[0];
|
|
883
|
+
yData[i] =
|
|
884
|
+
pt.slice(1, valueCount + 1);
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
else { // [x, y]
|
|
889
|
+
if (keys) {
|
|
890
|
+
indexOfX = keys.indexOf('x');
|
|
891
|
+
indexOfY = keys.indexOf('y');
|
|
892
|
+
indexOfX = indexOfX >= 0 ? indexOfX : 0;
|
|
893
|
+
indexOfY = indexOfY >= 0 ? indexOfY : 1;
|
|
894
|
+
}
|
|
895
|
+
if (firstPoint.length === 1) {
|
|
896
|
+
indexOfY = 0;
|
|
897
|
+
}
|
|
898
|
+
if (indexOfX === indexOfY) {
|
|
899
|
+
for (i = 0; i < dataLength; i++) {
|
|
900
|
+
xData[i] = this.autoIncrement();
|
|
901
|
+
yData[i] = data[i][indexOfY];
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
else {
|
|
905
|
+
for (i = 0; i < dataLength; i++) {
|
|
906
|
+
pt = data[i];
|
|
907
|
+
xData[i] = pt[indexOfX];
|
|
908
|
+
yData[i] = pt[indexOfY];
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
else {
|
|
914
|
+
// Highcharts expects configs to be numbers or arrays in
|
|
915
|
+
// turbo mode
|
|
916
|
+
error(12, false, chart);
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
else {
|
|
920
|
+
for (i = 0; i < dataLength; i++) {
|
|
921
|
+
// stray commas in oldIE:
|
|
922
|
+
if (typeof data[i] !== 'undefined') {
|
|
923
|
+
pt = { series: series };
|
|
924
|
+
series.pointClass.prototype.applyOptions.apply(pt, [data[i]]);
|
|
925
|
+
series.updateParallelArrays(pt, i);
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
// Forgetting to cast strings to numbers is a common caveat when
|
|
930
|
+
// handling CSV or JSON
|
|
931
|
+
if (yData && isString(yData[0])) {
|
|
932
|
+
error(14, true, chart);
|
|
933
|
+
}
|
|
934
|
+
series.data = [];
|
|
935
|
+
series.options.data = series.userOptions.data = data;
|
|
936
|
+
// destroy old points
|
|
937
|
+
i = oldDataLength;
|
|
938
|
+
while (i--) {
|
|
939
|
+
if (oldData[i] && oldData[i].destroy) {
|
|
940
|
+
oldData[i].destroy();
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
// reset minRange (#878)
|
|
944
|
+
if (xAxis) {
|
|
945
|
+
xAxis.minRange = xAxis.userMinRange;
|
|
946
|
+
}
|
|
947
|
+
// redraw
|
|
948
|
+
series.isDirty = chart.isDirtyBox = true;
|
|
949
|
+
series.isDirtyData = !!oldData;
|
|
950
|
+
animation = false;
|
|
951
|
+
}
|
|
952
|
+
// Typically for pie series, points need to be processed and
|
|
953
|
+
// generated prior to rendering the legend
|
|
954
|
+
if (options.legendType === 'point') {
|
|
955
|
+
this.processData();
|
|
956
|
+
this.generatePoints();
|
|
957
|
+
}
|
|
958
|
+
if (redraw) {
|
|
959
|
+
chart.redraw(animation);
|
|
960
|
+
}
|
|
961
|
+
};
|
|
962
|
+
/**
|
|
963
|
+
* Internal function to sort series data
|
|
964
|
+
*
|
|
965
|
+
* @private
|
|
966
|
+
* @function Highcharts.Series#sortData
|
|
967
|
+
* @param {Array<Highcharts.PointOptionsType>} data
|
|
968
|
+
* Force data grouping.
|
|
969
|
+
*/
|
|
970
|
+
Series.prototype.sortData = function (data) {
|
|
971
|
+
var series = this, options = series.options, dataSorting = options.dataSorting, sortKey = dataSorting.sortKey || 'y', getPointOptionsObject = function (series, pointOptions) {
|
|
972
|
+
return (defined(pointOptions) &&
|
|
973
|
+
series.pointClass.prototype.optionsToObject.call({
|
|
974
|
+
series: series
|
|
975
|
+
}, pointOptions)) || {};
|
|
976
|
+
};
|
|
977
|
+
data.forEach(function (pointOptions, i) {
|
|
978
|
+
data[i] = getPointOptionsObject(series, pointOptions);
|
|
979
|
+
data[i].index = i;
|
|
980
|
+
}, this);
|
|
981
|
+
// Sorting
|
|
982
|
+
var sortedData = data.concat().sort(function (a, b) {
|
|
983
|
+
var aValue = getNestedProperty(sortKey, a);
|
|
984
|
+
var bValue = getNestedProperty(sortKey, b);
|
|
985
|
+
return bValue < aValue ? -1 : bValue > aValue ? 1 : 0;
|
|
986
|
+
});
|
|
987
|
+
// Set x value depending on the position in the array
|
|
988
|
+
sortedData.forEach(function (point, i) {
|
|
989
|
+
point.x = i;
|
|
990
|
+
}, this);
|
|
991
|
+
// Set the same x for linked series points if they don't have their
|
|
992
|
+
// own sorting
|
|
993
|
+
if (series.linkedSeries) {
|
|
994
|
+
series.linkedSeries.forEach(function (linkedSeries) {
|
|
995
|
+
var options = linkedSeries.options, seriesData = options.data;
|
|
996
|
+
if ((!options.dataSorting ||
|
|
997
|
+
!options.dataSorting.enabled) &&
|
|
998
|
+
seriesData) {
|
|
999
|
+
seriesData.forEach(function (pointOptions, i) {
|
|
1000
|
+
seriesData[i] = getPointOptionsObject(linkedSeries, pointOptions);
|
|
1001
|
+
if (data[i]) {
|
|
1002
|
+
seriesData[i].x = data[i].x;
|
|
1003
|
+
seriesData[i].index = i;
|
|
1004
|
+
}
|
|
1005
|
+
});
|
|
1006
|
+
linkedSeries.setData(seriesData, false);
|
|
1007
|
+
}
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
1010
|
+
return data;
|
|
1011
|
+
};
|
|
1012
|
+
/**
|
|
1013
|
+
* Internal function to process the data by cropping away unused data
|
|
1014
|
+
* points if the series is longer than the crop threshold. This saves
|
|
1015
|
+
* computing time for large series.
|
|
1016
|
+
*
|
|
1017
|
+
* @private
|
|
1018
|
+
* @function Highcharts.Series#getProcessedData
|
|
1019
|
+
* @param {boolean} [forceExtremesFromAll]
|
|
1020
|
+
* Force getting extremes of a total series data range.
|
|
1021
|
+
*/
|
|
1022
|
+
Series.prototype.getProcessedData = function (forceExtremesFromAll) {
|
|
1023
|
+
var series = this, xAxis = series.xAxis, options = series.options, cropThreshold = options.cropThreshold, getExtremesFromAll = forceExtremesFromAll ||
|
|
1024
|
+
series.getExtremesFromAll ||
|
|
1025
|
+
options.getExtremesFromAll, // #4599
|
|
1026
|
+
isCartesian = series.isCartesian, val2lin = xAxis && xAxis.val2lin, isLog = !!(xAxis && xAxis.logarithmic);
|
|
1027
|
+
var croppedData, cropped, cropStart = 0, distance, closestPointRange, i, // loop variable
|
|
1028
|
+
xExtremes, min, max,
|
|
1029
|
+
// copied during slice operation:
|
|
1030
|
+
processedXData = series.xData, processedYData = series.yData, throwOnUnsorted = series.requireSorting, updatingNames = false;
|
|
1031
|
+
var dataLength = processedXData.length;
|
|
1032
|
+
if (xAxis) {
|
|
1033
|
+
// corrected for log axis (#3053)
|
|
1034
|
+
xExtremes = xAxis.getExtremes();
|
|
1035
|
+
min = xExtremes.min;
|
|
1036
|
+
max = xExtremes.max;
|
|
1037
|
+
updatingNames = xAxis.categories && !xAxis.names.length;
|
|
1038
|
+
}
|
|
1039
|
+
// optionally filter out points outside the plot area
|
|
1040
|
+
if (isCartesian &&
|
|
1041
|
+
series.sorted &&
|
|
1042
|
+
!getExtremesFromAll &&
|
|
1043
|
+
(!cropThreshold ||
|
|
1044
|
+
dataLength > cropThreshold ||
|
|
1045
|
+
series.forceCrop)) {
|
|
1046
|
+
// it's outside current extremes
|
|
1047
|
+
if (processedXData[dataLength - 1] < min ||
|
|
1048
|
+
processedXData[0] > max) {
|
|
1049
|
+
processedXData = [];
|
|
1050
|
+
processedYData = [];
|
|
1051
|
+
// only crop if it's actually spilling out
|
|
1052
|
+
}
|
|
1053
|
+
else if (series.yData && (processedXData[0] < min ||
|
|
1054
|
+
processedXData[dataLength - 1] > max)) {
|
|
1055
|
+
croppedData = this.cropData(series.xData, series.yData, min, max);
|
|
1056
|
+
processedXData = croppedData.xData;
|
|
1057
|
+
processedYData = croppedData.yData;
|
|
1058
|
+
cropStart = croppedData.start;
|
|
1059
|
+
cropped = true;
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
// Find the closest distance between processed points
|
|
1063
|
+
i = processedXData.length || 1;
|
|
1064
|
+
while (--i) {
|
|
1065
|
+
distance = (isLog ?
|
|
1066
|
+
(val2lin(processedXData[i]) -
|
|
1067
|
+
val2lin(processedXData[i - 1])) :
|
|
1068
|
+
(processedXData[i] -
|
|
1069
|
+
processedXData[i - 1]));
|
|
1070
|
+
if (distance > 0 &&
|
|
1071
|
+
(typeof closestPointRange === 'undefined' ||
|
|
1072
|
+
distance < closestPointRange)) {
|
|
1073
|
+
closestPointRange = distance;
|
|
1074
|
+
// Unsorted data is not supported by the line tooltip, as well
|
|
1075
|
+
// as data grouping and navigation in Stock charts (#725) and
|
|
1076
|
+
// width calculation of columns (#1900).
|
|
1077
|
+
// Avoid warning during the premature processing pass in
|
|
1078
|
+
// updateNames (#16104).
|
|
1079
|
+
}
|
|
1080
|
+
else if (distance < 0 && throwOnUnsorted && !updatingNames) {
|
|
1081
|
+
error(15, false, series.chart);
|
|
1082
|
+
throwOnUnsorted = false; // Only once
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
return {
|
|
1086
|
+
xData: processedXData,
|
|
1087
|
+
yData: processedYData,
|
|
1088
|
+
cropped: cropped,
|
|
1089
|
+
cropStart: cropStart,
|
|
1090
|
+
closestPointRange: closestPointRange
|
|
1091
|
+
};
|
|
1092
|
+
};
|
|
1093
|
+
/**
|
|
1094
|
+
* Internal function to apply processed data.
|
|
1095
|
+
* In Highcharts Stock, this function is extended to provide data grouping.
|
|
1096
|
+
*
|
|
1097
|
+
* @private
|
|
1098
|
+
* @function Highcharts.Series#processData
|
|
1099
|
+
* @param {boolean} [force]
|
|
1100
|
+
* Force data grouping.
|
|
1101
|
+
*/
|
|
1102
|
+
Series.prototype.processData = function (force) {
|
|
1103
|
+
var series = this, xAxis = series.xAxis;
|
|
1104
|
+
// If the series data or axes haven't changed, don't go through
|
|
1105
|
+
// this. Return false to pass the message on to override methods
|
|
1106
|
+
// like in data grouping.
|
|
1107
|
+
if (series.isCartesian &&
|
|
1108
|
+
!series.isDirty &&
|
|
1109
|
+
!xAxis.isDirty &&
|
|
1110
|
+
!series.yAxis.isDirty &&
|
|
1111
|
+
!force) {
|
|
1112
|
+
return false;
|
|
1113
|
+
}
|
|
1114
|
+
var processedData = series.getProcessedData();
|
|
1115
|
+
// Record the properties
|
|
1116
|
+
series.cropped = processedData.cropped; // undefined or true
|
|
1117
|
+
series.cropStart = processedData.cropStart;
|
|
1118
|
+
series.processedXData = processedData.xData;
|
|
1119
|
+
series.processedYData = processedData.yData;
|
|
1120
|
+
series.closestPointRange = (series.basePointRange = processedData.closestPointRange);
|
|
1121
|
+
fireEvent(series, 'afterProcessData');
|
|
1122
|
+
};
|
|
1123
|
+
/**
|
|
1124
|
+
* Iterate over xData and crop values between min and max. Returns
|
|
1125
|
+
* object containing crop start/end cropped xData with corresponding
|
|
1126
|
+
* part of yData, dataMin and dataMax within the cropped range.
|
|
1127
|
+
*
|
|
1128
|
+
* @private
|
|
1129
|
+
* @function Highcharts.Series#cropData
|
|
1130
|
+
*/
|
|
1131
|
+
Series.prototype.cropData = function (xData, yData, min, max, cropShoulder) {
|
|
1132
|
+
var dataLength = xData.length;
|
|
1133
|
+
var i, j, cropStart = 0, cropEnd = dataLength;
|
|
1134
|
+
// line-type series need one point outside
|
|
1135
|
+
cropShoulder = pick(cropShoulder, this.cropShoulder);
|
|
1136
|
+
// iterate up to find slice start
|
|
1137
|
+
for (i = 0; i < dataLength; i++) {
|
|
1138
|
+
if (xData[i] >= min) {
|
|
1139
|
+
cropStart = Math.max(0, i - cropShoulder);
|
|
1140
|
+
break;
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
// proceed to find slice end
|
|
1144
|
+
for (j = i; j < dataLength; j++) {
|
|
1145
|
+
if (xData[j] > max) {
|
|
1146
|
+
cropEnd = j + cropShoulder;
|
|
1147
|
+
break;
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
return {
|
|
1151
|
+
xData: xData.slice(cropStart, cropEnd),
|
|
1152
|
+
yData: yData.slice(cropStart, cropEnd),
|
|
1153
|
+
start: cropStart,
|
|
1154
|
+
end: cropEnd
|
|
1155
|
+
};
|
|
1156
|
+
};
|
|
1157
|
+
/**
|
|
1158
|
+
* Generate the data point after the data has been processed by cropping
|
|
1159
|
+
* away unused points and optionally grouped in Highcharts Stock.
|
|
1160
|
+
*
|
|
1161
|
+
* @private
|
|
1162
|
+
* @function Highcharts.Series#generatePoints
|
|
1163
|
+
*/
|
|
1164
|
+
Series.prototype.generatePoints = function () {
|
|
1165
|
+
var series = this, options = series.options, dataOptions = options.data, processedXData = series.processedXData, processedYData = series.processedYData, PointClass = series.pointClass, processedDataLength = processedXData.length, cropStart = series.cropStart || 0, hasGroupedData = series.hasGroupedData, keys = options.keys, points = [], groupCropStartIndex = (options.dataGrouping &&
|
|
1166
|
+
options.dataGrouping.groupAll ?
|
|
1167
|
+
cropStart :
|
|
1168
|
+
0);
|
|
1169
|
+
var dataLength, cursor, point, i, data = series.data;
|
|
1170
|
+
if (!data && !hasGroupedData) {
|
|
1171
|
+
var arr = [];
|
|
1172
|
+
arr.length = dataOptions.length;
|
|
1173
|
+
data = series.data = arr;
|
|
1174
|
+
}
|
|
1175
|
+
if (keys && hasGroupedData) {
|
|
1176
|
+
// grouped data has already applied keys (#6590)
|
|
1177
|
+
series.options.keys = false;
|
|
1178
|
+
}
|
|
1179
|
+
for (i = 0; i < processedDataLength; i++) {
|
|
1180
|
+
cursor = cropStart + i;
|
|
1181
|
+
if (!hasGroupedData) {
|
|
1182
|
+
point = data[cursor];
|
|
1183
|
+
// #970:
|
|
1184
|
+
if (!point &&
|
|
1185
|
+
typeof dataOptions[cursor] !== 'undefined') {
|
|
1186
|
+
data[cursor] = point = (new PointClass()).init(series, dataOptions[cursor], processedXData[i]);
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
else {
|
|
1190
|
+
// splat the y data in case of ohlc data array
|
|
1191
|
+
point = (new PointClass()).init(series, [processedXData[i]].concat(splat(processedYData[i])));
|
|
1192
|
+
/**
|
|
1193
|
+
* Highcharts Stock only. If a point object is created by data
|
|
1194
|
+
* grouping, it doesn't reflect actual points in the raw
|
|
1195
|
+
* data. In this case, the `dataGroup` property holds
|
|
1196
|
+
* information that points back to the raw data.
|
|
1197
|
+
*
|
|
1198
|
+
* - `dataGroup.start` is the index of the first raw data
|
|
1199
|
+
* point in the group.
|
|
1200
|
+
*
|
|
1201
|
+
* - `dataGroup.length` is the amount of points in the
|
|
1202
|
+
* group.
|
|
1203
|
+
*
|
|
1204
|
+
* @product highstock
|
|
1205
|
+
*
|
|
1206
|
+
* @name Highcharts.Point#dataGroup
|
|
1207
|
+
* @type {Highcharts.DataGroupingInfoObject|undefined}
|
|
1208
|
+
*
|
|
1209
|
+
* @sample stock/members/point-datagroup
|
|
1210
|
+
* Click to inspect raw data points
|
|
1211
|
+
*/
|
|
1212
|
+
point.dataGroup = series.groupMap[groupCropStartIndex + i];
|
|
1213
|
+
if (point.dataGroup.options) {
|
|
1214
|
+
point.options = point.dataGroup.options;
|
|
1215
|
+
extend(point, point.dataGroup.options);
|
|
1216
|
+
// Collision of props and options (#9770)
|
|
1217
|
+
delete point.dataLabels;
|
|
1218
|
+
}
|
|
1219
|
+
}
|
|
1220
|
+
if (point) { // #6279
|
|
1221
|
+
/**
|
|
1222
|
+
* Contains the point's index in the `Series.points` array.
|
|
1223
|
+
*
|
|
1224
|
+
* @name Highcharts.Point#index
|
|
1225
|
+
* @type {number}
|
|
1226
|
+
* @readonly
|
|
1227
|
+
*/
|
|
1228
|
+
// For faster access in Point.update
|
|
1229
|
+
point.index = hasGroupedData ?
|
|
1230
|
+
(groupCropStartIndex + i) : cursor;
|
|
1231
|
+
points[i] = point;
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1234
|
+
// restore keys options (#6590)
|
|
1235
|
+
series.options.keys = keys;
|
|
1236
|
+
// Hide cropped-away points - this only runs when the number of
|
|
1237
|
+
// points is above cropThreshold, or when swithching view from
|
|
1238
|
+
// non-grouped data to grouped data (#637)
|
|
1239
|
+
if (data &&
|
|
1240
|
+
(processedDataLength !== (dataLength = data.length) ||
|
|
1241
|
+
hasGroupedData)) {
|
|
1242
|
+
for (i = 0; i < dataLength; i++) {
|
|
1243
|
+
// when has grouped data, clear all points
|
|
1244
|
+
if (i === cropStart && !hasGroupedData) {
|
|
1245
|
+
i += processedDataLength;
|
|
1246
|
+
}
|
|
1247
|
+
if (data[i]) {
|
|
1248
|
+
data[i].destroyElements();
|
|
1249
|
+
data[i].plotX = void 0; // #1003
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
/**
|
|
1254
|
+
* Read only. An array containing those values converted to points.
|
|
1255
|
+
* In case the series data length exceeds the `cropThreshold`, or if
|
|
1256
|
+
* the data is grouped, `series.data` doesn't contain all the
|
|
1257
|
+
* points. Also, in case a series is hidden, the `data` array may be
|
|
1258
|
+
* empty. To access raw values, `series.options.data` will always be
|
|
1259
|
+
* up to date. `Series.data` only contains the points that have been
|
|
1260
|
+
* created on demand. To modify the data, use
|
|
1261
|
+
* {@link Highcharts.Series#setData} or
|
|
1262
|
+
* {@link Highcharts.Point#update}.
|
|
1263
|
+
*
|
|
1264
|
+
* @see Series.points
|
|
1265
|
+
*
|
|
1266
|
+
* @name Highcharts.Series#data
|
|
1267
|
+
* @type {Array<Highcharts.Point>}
|
|
1268
|
+
*/
|
|
1269
|
+
series.data = data;
|
|
1270
|
+
/**
|
|
1271
|
+
* An array containing all currently visible point objects. In case
|
|
1272
|
+
* of cropping, the cropped-away points are not part of this array.
|
|
1273
|
+
* The `series.points` array starts at `series.cropStart` compared
|
|
1274
|
+
* to `series.data` and `series.options.data`. If however the series
|
|
1275
|
+
* data is grouped, these can't be correlated one to one. To modify
|
|
1276
|
+
* the data, use {@link Highcharts.Series#setData} or
|
|
1277
|
+
* {@link Highcharts.Point#update}.
|
|
1278
|
+
*
|
|
1279
|
+
* @name Highcharts.Series#points
|
|
1280
|
+
* @type {Array<Highcharts.Point>}
|
|
1281
|
+
*/
|
|
1282
|
+
series.points = points;
|
|
1283
|
+
fireEvent(this, 'afterGeneratePoints');
|
|
1284
|
+
};
|
|
1285
|
+
/**
|
|
1286
|
+
* Get current X extremes for the visible data.
|
|
1287
|
+
*
|
|
1288
|
+
* @private
|
|
1289
|
+
* @function Highcharts.Series#getXExtremes
|
|
1290
|
+
* @param {Array<number>} xData
|
|
1291
|
+
* The data to inspect. Defaults to the current data within the visible
|
|
1292
|
+
* range.
|
|
1293
|
+
*/
|
|
1294
|
+
Series.prototype.getXExtremes = function (xData) {
|
|
1295
|
+
return {
|
|
1296
|
+
min: arrayMin(xData),
|
|
1297
|
+
max: arrayMax(xData)
|
|
1298
|
+
};
|
|
1299
|
+
};
|
|
1300
|
+
/**
|
|
1301
|
+
* Calculate Y extremes for the visible data. The result is returned
|
|
1302
|
+
* as an object with `dataMin` and `dataMax` properties.
|
|
1303
|
+
*
|
|
1304
|
+
* @private
|
|
1305
|
+
* @function Highcharts.Series#getExtremes
|
|
1306
|
+
* @param {Array<number>} [yData]
|
|
1307
|
+
* The data to inspect. Defaults to the current data within the visible
|
|
1308
|
+
* range.
|
|
1309
|
+
* @param {boolean} [forceExtremesFromAll]
|
|
1310
|
+
* Force getting extremes of a total series data range.
|
|
1311
|
+
*/
|
|
1312
|
+
Series.prototype.getExtremes = function (yData, forceExtremesFromAll) {
|
|
1313
|
+
var xAxis = this.xAxis, yAxis = this.yAxis, xData = this.processedXData || this.xData, activeYData = [],
|
|
1314
|
+
// Handle X outside the viewed area. This does not work with
|
|
1315
|
+
// non-sorted data like scatter (#7639).
|
|
1316
|
+
shoulder = this.requireSorting ? this.cropShoulder : 0, positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false;
|
|
1317
|
+
// #2117, need to compensate for log X axis
|
|
1318
|
+
var xExtremes, validValue, withinRange, x, y, i, j, xMin = 0, xMax = 0, activeCounter = 0;
|
|
1319
|
+
yData = yData || this.stackedYData || this.processedYData || [];
|
|
1320
|
+
var yDataLength = yData.length;
|
|
1321
|
+
if (xAxis) {
|
|
1322
|
+
xExtremes = xAxis.getExtremes();
|
|
1323
|
+
xMin = xExtremes.min;
|
|
1324
|
+
xMax = xExtremes.max;
|
|
1325
|
+
}
|
|
1326
|
+
for (i = 0; i < yDataLength; i++) {
|
|
1327
|
+
x = xData[i];
|
|
1328
|
+
y = yData[i];
|
|
1329
|
+
// For points within the visible range, including the first
|
|
1330
|
+
// point outside the visible range (#7061), consider y extremes.
|
|
1331
|
+
validValue = ((isNumber(y) || isArray(y)) &&
|
|
1332
|
+
((y.length || y > 0) || !positiveValuesOnly));
|
|
1333
|
+
withinRange = (forceExtremesFromAll ||
|
|
1334
|
+
this.getExtremesFromAll ||
|
|
1335
|
+
this.options.getExtremesFromAll ||
|
|
1336
|
+
this.cropped ||
|
|
1337
|
+
!xAxis || // for colorAxis support
|
|
1338
|
+
((xData[i + shoulder] || x) >= xMin &&
|
|
1339
|
+
(xData[i - shoulder] || x) <= xMax));
|
|
1340
|
+
if (validValue && withinRange) {
|
|
1341
|
+
j = y.length;
|
|
1342
|
+
if (j) { // array, like ohlc or range data
|
|
1343
|
+
while (j--) {
|
|
1344
|
+
if (isNumber(y[j])) { // #7380, #11513
|
|
1345
|
+
activeYData[activeCounter++] = y[j];
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
else {
|
|
1350
|
+
activeYData[activeCounter++] = y;
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
var dataExtremes = {
|
|
1355
|
+
activeYData: activeYData,
|
|
1356
|
+
dataMin: arrayMin(activeYData),
|
|
1357
|
+
dataMax: arrayMax(activeYData)
|
|
1358
|
+
};
|
|
1359
|
+
fireEvent(this, 'afterGetExtremes', { dataExtremes: dataExtremes });
|
|
1360
|
+
return dataExtremes;
|
|
1361
|
+
};
|
|
1362
|
+
/**
|
|
1363
|
+
* Set the current data extremes as `dataMin` and `dataMax` on the
|
|
1364
|
+
* Series item. Use this only when the series properties should be
|
|
1365
|
+
* updated.
|
|
1366
|
+
*
|
|
1367
|
+
* @private
|
|
1368
|
+
* @function Highcharts.Series#applyExtremes
|
|
1369
|
+
*/
|
|
1370
|
+
Series.prototype.applyExtremes = function () {
|
|
1371
|
+
var dataExtremes = this.getExtremes();
|
|
1372
|
+
/**
|
|
1373
|
+
* Contains the minimum value of the series' data point. Some series
|
|
1374
|
+
* types like `networkgraph` do not support this property as they
|
|
1375
|
+
* lack a `y`-value.
|
|
1376
|
+
* @name Highcharts.Series#dataMin
|
|
1377
|
+
* @type {number|undefined}
|
|
1378
|
+
* @readonly
|
|
1379
|
+
*/
|
|
1380
|
+
this.dataMin = dataExtremes.dataMin;
|
|
1381
|
+
/**
|
|
1382
|
+
* Contains the maximum value of the series' data point. Some series
|
|
1383
|
+
* types like `networkgraph` do not support this property as they
|
|
1384
|
+
* lack a `y`-value.
|
|
1385
|
+
* @name Highcharts.Series#dataMax
|
|
1386
|
+
* @type {number|undefined}
|
|
1387
|
+
* @readonly
|
|
1388
|
+
*/
|
|
1389
|
+
this.dataMax = dataExtremes.dataMax;
|
|
1390
|
+
return dataExtremes;
|
|
1391
|
+
};
|
|
1392
|
+
/**
|
|
1393
|
+
* Find and return the first non null point in the data
|
|
1394
|
+
*
|
|
1395
|
+
* @private
|
|
1396
|
+
* @function Highcharts.Series.getFirstValidPoint
|
|
1397
|
+
* @param {Array<Highcharts.PointOptionsType>} data
|
|
1398
|
+
* Array of options for points
|
|
1399
|
+
*/
|
|
1400
|
+
Series.prototype.getFirstValidPoint = function (data) {
|
|
1401
|
+
var dataLength = data.length;
|
|
1402
|
+
var i = 0, firstPoint = null;
|
|
1403
|
+
while (firstPoint === null && i < dataLength) {
|
|
1404
|
+
firstPoint = data[i];
|
|
1405
|
+
i++;
|
|
1406
|
+
}
|
|
1407
|
+
return firstPoint;
|
|
1408
|
+
};
|
|
1409
|
+
/**
|
|
1410
|
+
* Translate data points from raw data values to chart specific
|
|
1411
|
+
* positioning data needed later in the `drawPoints` and `drawGraph`
|
|
1412
|
+
* functions. This function can be overridden in plugins and custom
|
|
1413
|
+
* series type implementations.
|
|
1414
|
+
*
|
|
1415
|
+
* @function Highcharts.Series#translate
|
|
1416
|
+
*
|
|
1417
|
+
* @emits Highcharts.Series#events:translate
|
|
1418
|
+
*/
|
|
1419
|
+
Series.prototype.translate = function () {
|
|
1420
|
+
if (!this.processedXData) { // hidden series
|
|
1421
|
+
this.processData();
|
|
1422
|
+
}
|
|
1423
|
+
this.generatePoints();
|
|
1424
|
+
var series = this, options = series.options, stacking = options.stacking, xAxis = series.xAxis, categories = xAxis.categories, enabledDataSorting = series.enabledDataSorting, yAxis = series.yAxis, points = series.points, dataLength = points.length, pointPlacement = series.pointPlacementToXValue(), // #7860
|
|
1425
|
+
dynamicallyPlaced = Boolean(pointPlacement), threshold = options.threshold, stackThreshold = options.startFromThreshold ? threshold : 0, zoneAxis = this.zoneAxis || 'y';
|
|
1426
|
+
var i, plotX, lastPlotX, stackIndicator, closestPointRangePx = Number.MAX_VALUE;
|
|
1427
|
+
/**
|
|
1428
|
+
* Plotted coordinates need to be within a limited range. Drawing
|
|
1429
|
+
* too far outside the viewport causes various rendering issues
|
|
1430
|
+
* (#3201, #3923, #7555).
|
|
1431
|
+
* @private
|
|
1432
|
+
*/
|
|
1433
|
+
function limitedRange(val) {
|
|
1434
|
+
return clamp(val, -1e5, 1e5);
|
|
1435
|
+
}
|
|
1436
|
+
// Translate each point
|
|
1437
|
+
for (i = 0; i < dataLength; i++) {
|
|
1438
|
+
var point = points[i], xValue = point.x;
|
|
1439
|
+
var pointStack = void 0, stackValues = void 0, yValue = point.y, yBottom = point.low;
|
|
1440
|
+
var stack = stacking && yAxis.stacking && yAxis.stacking.stacks[(series.negStacks &&
|
|
1441
|
+
yValue <
|
|
1442
|
+
(stackThreshold ? 0 : threshold) ?
|
|
1443
|
+
'-' :
|
|
1444
|
+
'') + series.stackKey];
|
|
1445
|
+
if (yAxis.positiveValuesOnly &&
|
|
1446
|
+
!yAxis.validatePositiveValue(yValue) ||
|
|
1447
|
+
xAxis.positiveValuesOnly &&
|
|
1448
|
+
!xAxis.validatePositiveValue(xValue)) {
|
|
1449
|
+
point.isNull = true;
|
|
1450
|
+
}
|
|
1451
|
+
// Get the plotX translation
|
|
1452
|
+
point.plotX = plotX = correctFloat(// #5236
|
|
1453
|
+
limitedRange(xAxis.translate(// #3923
|
|
1454
|
+
xValue, 0, 0, 0, 1, pointPlacement, this.type === 'flags')) // #3923
|
|
1455
|
+
);
|
|
1456
|
+
// Calculate the bottom y value for stacked series
|
|
1457
|
+
if (stacking &&
|
|
1458
|
+
series.visible &&
|
|
1459
|
+
stack &&
|
|
1460
|
+
stack[xValue]) {
|
|
1461
|
+
stackIndicator = series.getStackIndicator(stackIndicator, xValue, series.index);
|
|
1462
|
+
if (!point.isNull) {
|
|
1463
|
+
pointStack = stack[xValue];
|
|
1464
|
+
stackValues =
|
|
1465
|
+
pointStack.points[stackIndicator.key];
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
if (isArray(stackValues)) {
|
|
1469
|
+
yBottom = stackValues[0];
|
|
1470
|
+
yValue = stackValues[1];
|
|
1471
|
+
if (yBottom === stackThreshold &&
|
|
1472
|
+
stackIndicator.key ===
|
|
1473
|
+
stack[xValue].base) {
|
|
1474
|
+
yBottom = pick((isNumber(threshold) && threshold), yAxis.min);
|
|
1475
|
+
}
|
|
1476
|
+
// #1200, #1232
|
|
1477
|
+
if (yAxis.positiveValuesOnly && yBottom <= 0) {
|
|
1478
|
+
yBottom = null;
|
|
1479
|
+
}
|
|
1480
|
+
point.total = point.stackTotal = pointStack.total;
|
|
1481
|
+
point.percentage =
|
|
1482
|
+
pointStack.total &&
|
|
1483
|
+
(point.y / pointStack.total * 100);
|
|
1484
|
+
point.stackY = yValue;
|
|
1485
|
+
// Place the stack label
|
|
1486
|
+
// in case of variwide series (where widths of points are
|
|
1487
|
+
// different in most cases), stack labels are positioned
|
|
1488
|
+
// wrongly, so the call of the setOffset is omited here and
|
|
1489
|
+
// labels are correctly positioned later, at the end of the
|
|
1490
|
+
// variwide's translate function (#10962)
|
|
1491
|
+
if (!series.irregularWidths) {
|
|
1492
|
+
pointStack.setOffset(series.pointXOffset || 0, series.barW || 0);
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
// Set translated yBottom or remove it
|
|
1496
|
+
point.yBottom = defined(yBottom) ?
|
|
1497
|
+
limitedRange(yAxis.translate(yBottom, 0, 1, 0, 1)) :
|
|
1498
|
+
null;
|
|
1499
|
+
// General hook, used for Highcharts Stock compare and cumulative
|
|
1500
|
+
if (series.dataModify) {
|
|
1501
|
+
yValue = series.dataModify.modifyValue(yValue, i);
|
|
1502
|
+
}
|
|
1503
|
+
// Set the the plotY value, reset it for redraws
|
|
1504
|
+
// #3201
|
|
1505
|
+
point.plotY = void 0;
|
|
1506
|
+
if (isNumber(yValue)) {
|
|
1507
|
+
var translated = yAxis.translate(yValue, false, true, false, true);
|
|
1508
|
+
if (typeof translated !== 'undefined') {
|
|
1509
|
+
point.plotY = limitedRange(translated);
|
|
1510
|
+
}
|
|
1511
|
+
}
|
|
1512
|
+
point.isInside = this.isPointInside(point);
|
|
1513
|
+
// Set client related positions for mouse tracking
|
|
1514
|
+
point.clientX = dynamicallyPlaced ?
|
|
1515
|
+
correctFloat(xAxis.translate(xValue, 0, 0, 0, 1, pointPlacement)) :
|
|
1516
|
+
plotX; // #1514, #5383, #5518
|
|
1517
|
+
// Negative points. For bubble charts, this means negative z
|
|
1518
|
+
// values (#9728)
|
|
1519
|
+
point.negative = point[zoneAxis] < (options[zoneAxis + 'Threshold'] ||
|
|
1520
|
+
threshold ||
|
|
1521
|
+
0);
|
|
1522
|
+
// some API data
|
|
1523
|
+
point.category = (categories &&
|
|
1524
|
+
typeof categories[point.x] !== 'undefined' ?
|
|
1525
|
+
categories[point.x] :
|
|
1526
|
+
point.x);
|
|
1527
|
+
// Determine auto enabling of markers (#3635, #5099)
|
|
1528
|
+
if (!point.isNull && point.visible !== false) {
|
|
1529
|
+
if (typeof lastPlotX !== 'undefined') {
|
|
1530
|
+
closestPointRangePx = Math.min(closestPointRangePx, Math.abs(plotX - lastPlotX));
|
|
1531
|
+
}
|
|
1532
|
+
lastPlotX = plotX;
|
|
1533
|
+
}
|
|
1534
|
+
// Find point zone
|
|
1535
|
+
point.zone = this.zones.length ? point.getZone() : void 0;
|
|
1536
|
+
// Animate new points with data sorting
|
|
1537
|
+
if (!point.graphic && series.group && enabledDataSorting) {
|
|
1538
|
+
point.isNew = true;
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1541
|
+
series.closestPointRangePx = closestPointRangePx;
|
|
1542
|
+
fireEvent(this, 'afterTranslate');
|
|
1543
|
+
};
|
|
1544
|
+
/**
|
|
1545
|
+
* Return the series points with null points filtered out.
|
|
1546
|
+
*
|
|
1547
|
+
* @function Highcharts.Series#getValidPoints
|
|
1548
|
+
*
|
|
1549
|
+
* @param {Array<Highcharts.Point>} [points]
|
|
1550
|
+
* The points to inspect, defaults to {@link Series.points}.
|
|
1551
|
+
*
|
|
1552
|
+
* @param {boolean} [insideOnly=false]
|
|
1553
|
+
* Whether to inspect only the points that are inside the visible view.
|
|
1554
|
+
*
|
|
1555
|
+
* @param {boolean} [allowNull=false]
|
|
1556
|
+
* Whether to allow null points to pass as valid points.
|
|
1557
|
+
*
|
|
1558
|
+
* @return {Array<Highcharts.Point>}
|
|
1559
|
+
* The valid points.
|
|
1560
|
+
*/
|
|
1561
|
+
Series.prototype.getValidPoints = function (points, insideOnly, allowNull) {
|
|
1562
|
+
var chart = this.chart;
|
|
1563
|
+
// #3916, #5029, #5085
|
|
1564
|
+
return (points || this.points || []).filter(function (point) {
|
|
1565
|
+
if (insideOnly && !chart.isInsidePlot(point.plotX, point.plotY, { inverted: chart.inverted })) {
|
|
1566
|
+
return false;
|
|
1567
|
+
}
|
|
1568
|
+
return point.visible !== false &&
|
|
1569
|
+
(allowNull || !point.isNull);
|
|
1570
|
+
});
|
|
1571
|
+
};
|
|
1572
|
+
/**
|
|
1573
|
+
* Get the clipping for the series. Could be called for a series to
|
|
1574
|
+
* initiate animating the clip or to set the final clip (only width
|
|
1575
|
+
* and x).
|
|
1576
|
+
*
|
|
1577
|
+
* @private
|
|
1578
|
+
* @function Highcharts.Series#getClip
|
|
1579
|
+
*/
|
|
1580
|
+
Series.prototype.getClipBox = function () {
|
|
1581
|
+
var _a = this, chart = _a.chart, xAxis = _a.xAxis, yAxis = _a.yAxis;
|
|
1582
|
+
// If no axes on the series, use global clipBox
|
|
1583
|
+
var seriesBox = merge(chart.clipBox);
|
|
1584
|
+
// Otherwise, use clipBox.width which is corrected for plotBorderWidth
|
|
1585
|
+
// and clipOffset
|
|
1586
|
+
if (xAxis && xAxis.len !== chart.plotSizeX) {
|
|
1587
|
+
seriesBox.width = xAxis.len;
|
|
1588
|
+
}
|
|
1589
|
+
if (yAxis && yAxis.len !== chart.plotSizeY) {
|
|
1590
|
+
seriesBox.height = yAxis.len;
|
|
1591
|
+
}
|
|
1592
|
+
return seriesBox;
|
|
1593
|
+
};
|
|
1594
|
+
/**
|
|
1595
|
+
* Get the shared clip key, creating it if it doesn't exist.
|
|
1596
|
+
*
|
|
1597
|
+
* @private
|
|
1598
|
+
* @function Highcharts.Series#getSharedClipKey
|
|
1599
|
+
*/
|
|
1600
|
+
Series.prototype.getSharedClipKey = function () {
|
|
1601
|
+
this.sharedClipKey = (this.options.xAxis || 0) + ',' +
|
|
1602
|
+
(this.options.yAxis || 0);
|
|
1603
|
+
return this.sharedClipKey;
|
|
1604
|
+
};
|
|
1605
|
+
/**
|
|
1606
|
+
* Set the clipping for the series. For animated series the clip is later
|
|
1607
|
+
* modified.
|
|
1608
|
+
*
|
|
1609
|
+
* @private
|
|
1610
|
+
* @function Highcharts.Series#setClip
|
|
1611
|
+
*/
|
|
1612
|
+
Series.prototype.setClip = function () {
|
|
1613
|
+
var _a = this, chart = _a.chart, group = _a.group, markerGroup = _a.markerGroup, sharedClips = chart.sharedClips, renderer = chart.renderer, clipBox = this.getClipBox(), sharedClipKey = this.getSharedClipKey(); // #4526
|
|
1614
|
+
var clipRect = sharedClips[sharedClipKey];
|
|
1615
|
+
// If a clipping rectangle for the same set of axes does not exist,
|
|
1616
|
+
// create it
|
|
1617
|
+
if (!clipRect) {
|
|
1618
|
+
sharedClips[sharedClipKey] = clipRect = renderer.clipRect(clipBox);
|
|
1619
|
+
// When setting chart size, or when the series is rendered again before
|
|
1620
|
+
// starting animating, in compliance to a responsive rule
|
|
1621
|
+
}
|
|
1622
|
+
else {
|
|
1623
|
+
clipRect.animate(clipBox);
|
|
1624
|
+
}
|
|
1625
|
+
if (group) {
|
|
1626
|
+
// When clip is false, reset to no clip after animation
|
|
1627
|
+
group.clip(this.options.clip === false ? void 0 : clipRect);
|
|
1628
|
+
}
|
|
1629
|
+
// Unclip temporary animation clip
|
|
1630
|
+
if (markerGroup) {
|
|
1631
|
+
markerGroup.clip();
|
|
1632
|
+
}
|
|
1633
|
+
};
|
|
1634
|
+
/**
|
|
1635
|
+
* Animate in the series. Called internally twice. First with the `init`
|
|
1636
|
+
* parameter set to true, which sets up the initial state of the
|
|
1637
|
+
* animation. Then when ready, it is called with the `init` parameter
|
|
1638
|
+
* undefined, in order to perform the actual animation.
|
|
1639
|
+
*
|
|
1640
|
+
* @function Highcharts.Series#animate
|
|
1641
|
+
*
|
|
1642
|
+
* @param {boolean} [init]
|
|
1643
|
+
* Initialize the animation.
|
|
1644
|
+
*/
|
|
1645
|
+
Series.prototype.animate = function (init) {
|
|
1646
|
+
var _a = this, chart = _a.chart, group = _a.group, markerGroup = _a.markerGroup, inverted = chart.inverted, animation = animObject(this.options.animation),
|
|
1647
|
+
// The key for temporary animation clips
|
|
1648
|
+
animationClipKey = [
|
|
1649
|
+
this.getSharedClipKey(),
|
|
1650
|
+
animation.duration,
|
|
1651
|
+
animation.easing,
|
|
1652
|
+
animation.defer
|
|
1653
|
+
].join(',');
|
|
1654
|
+
var animationClipRect = chart.sharedClips[animationClipKey], markerAnimationClipRect = chart.sharedClips[animationClipKey + 'm'];
|
|
1655
|
+
// Initialize the animation. Set up the clipping rectangle.
|
|
1656
|
+
if (init && group) {
|
|
1657
|
+
var clipBox = this.getClipBox();
|
|
1658
|
+
// Create temporary animation clips
|
|
1659
|
+
if (!animationClipRect) {
|
|
1660
|
+
clipBox.width = 0;
|
|
1661
|
+
if (inverted) {
|
|
1662
|
+
clipBox.x = chart.plotHeight;
|
|
1663
|
+
}
|
|
1664
|
+
animationClipRect = chart.renderer.clipRect(clipBox);
|
|
1665
|
+
chart.sharedClips[animationClipKey] = animationClipRect;
|
|
1666
|
+
var markerClipBox = {
|
|
1667
|
+
// Include the width of the first marker
|
|
1668
|
+
x: inverted ? (chart.plotSizeX || 0) + 99 : -99,
|
|
1669
|
+
y: inverted ? -chart.plotLeft : -chart.plotTop,
|
|
1670
|
+
width: 99,
|
|
1671
|
+
height: inverted ? chart.chartWidth : chart.chartHeight
|
|
1672
|
+
};
|
|
1673
|
+
markerAnimationClipRect = chart.renderer.clipRect(markerClipBox);
|
|
1674
|
+
chart.sharedClips[animationClipKey + 'm'] = markerAnimationClipRect;
|
|
1675
|
+
}
|
|
1676
|
+
else {
|
|
1677
|
+
// When height changes during animation, typically due to
|
|
1678
|
+
// responsive settings
|
|
1679
|
+
animationClipRect.attr('height', clipBox.height);
|
|
1680
|
+
}
|
|
1681
|
+
group.clip(animationClipRect);
|
|
1682
|
+
if (markerGroup) {
|
|
1683
|
+
markerGroup.clip(markerAnimationClipRect);
|
|
1684
|
+
}
|
|
1685
|
+
// Run the animation
|
|
1686
|
+
}
|
|
1687
|
+
else if (animationClipRect &&
|
|
1688
|
+
// Only first series in this pane
|
|
1689
|
+
!animationClipRect.hasClass('highcharts-animating')) {
|
|
1690
|
+
var finalBox = this.getClipBox(), step_1 = animation.step;
|
|
1691
|
+
// Only do this when there are actually markers
|
|
1692
|
+
if (markerGroup && markerGroup.element.childNodes.length) {
|
|
1693
|
+
// To provide as smooth animation as possible, update the marker
|
|
1694
|
+
// group clipping in steps of the main group animation
|
|
1695
|
+
animation.step = function (val, fx) {
|
|
1696
|
+
if (step_1) {
|
|
1697
|
+
step_1.apply(fx, arguments);
|
|
1698
|
+
}
|
|
1699
|
+
if (markerAnimationClipRect &&
|
|
1700
|
+
markerAnimationClipRect.element) {
|
|
1701
|
+
markerAnimationClipRect.attr(fx.prop, fx.prop === 'width' ? val + 99 : val);
|
|
1702
|
+
}
|
|
1703
|
+
};
|
|
1704
|
+
}
|
|
1705
|
+
animationClipRect
|
|
1706
|
+
.addClass('highcharts-animating')
|
|
1707
|
+
.animate(finalBox, animation);
|
|
1708
|
+
}
|
|
1709
|
+
};
|
|
1710
|
+
/**
|
|
1711
|
+
* This runs after animation to land on the final plot clipping.
|
|
1712
|
+
*
|
|
1713
|
+
* @private
|
|
1714
|
+
* @function Highcharts.Series#afterAnimate
|
|
1715
|
+
*
|
|
1716
|
+
* @emits Highcharts.Series#event:afterAnimate
|
|
1717
|
+
*/
|
|
1718
|
+
Series.prototype.afterAnimate = function () {
|
|
1719
|
+
var _this = this;
|
|
1720
|
+
this.setClip();
|
|
1721
|
+
// Destroy temporary clip rectangles that are no longer in use
|
|
1722
|
+
objectEach(this.chart.sharedClips, function (clip, key, sharedClips) {
|
|
1723
|
+
if (clip && !_this.chart.container.querySelector("[clip-path=\"url(#" + clip.id + ")\"]")) {
|
|
1724
|
+
clip.destroy();
|
|
1725
|
+
delete sharedClips[key];
|
|
1726
|
+
}
|
|
1727
|
+
});
|
|
1728
|
+
this.finishedAnimating = true;
|
|
1729
|
+
fireEvent(this, 'afterAnimate');
|
|
1730
|
+
};
|
|
1731
|
+
/**
|
|
1732
|
+
* Draw the markers for line-like series types, and columns or other
|
|
1733
|
+
* graphical representation for {@link Point} objects for other series
|
|
1734
|
+
* types. The resulting element is typically stored as
|
|
1735
|
+
* {@link Point.graphic}, and is created on the first call and updated
|
|
1736
|
+
* and moved on subsequent calls.
|
|
1737
|
+
*
|
|
1738
|
+
* @function Highcharts.Series#drawPoints
|
|
1739
|
+
*/
|
|
1740
|
+
Series.prototype.drawPoints = function () {
|
|
1741
|
+
var series = this, points = series.points, chart = series.chart, options = series.options, seriesMarkerOptions = options.marker, markerGroup = (series[series.specialGroup] ||
|
|
1742
|
+
series.markerGroup), xAxis = series.xAxis, globallyEnabled = pick(seriesMarkerOptions.enabled, !xAxis || xAxis.isRadial ? true : null,
|
|
1743
|
+
// Use larger or equal as radius is null in bubbles (#6321)
|
|
1744
|
+
series.closestPointRangePx >= (seriesMarkerOptions.enabledThreshold *
|
|
1745
|
+
seriesMarkerOptions.radius));
|
|
1746
|
+
var i, point, graphic, verb, pointMarkerOptions, hasPointMarker, markerAttribs;
|
|
1747
|
+
if (seriesMarkerOptions.enabled !== false ||
|
|
1748
|
+
series._hasPointMarkers) {
|
|
1749
|
+
for (i = 0; i < points.length; i++) {
|
|
1750
|
+
point = points[i];
|
|
1751
|
+
graphic = point.graphic;
|
|
1752
|
+
verb = graphic ? 'animate' : 'attr';
|
|
1753
|
+
pointMarkerOptions = point.marker || {};
|
|
1754
|
+
hasPointMarker = !!point.marker;
|
|
1755
|
+
var shouldDrawMarker = ((globallyEnabled &&
|
|
1756
|
+
typeof pointMarkerOptions.enabled === 'undefined') || pointMarkerOptions.enabled) && !point.isNull && point.visible !== false;
|
|
1757
|
+
// only draw the point if y is defined
|
|
1758
|
+
if (shouldDrawMarker) {
|
|
1759
|
+
// Shortcuts
|
|
1760
|
+
var symbol = pick(pointMarkerOptions.symbol, series.symbol, 'rect');
|
|
1761
|
+
markerAttribs = series.markerAttribs(point, (point.selected && 'select'));
|
|
1762
|
+
// Set starting position for point sliding animation.
|
|
1763
|
+
if (series.enabledDataSorting) {
|
|
1764
|
+
point.startXPos = xAxis.reversed ?
|
|
1765
|
+
-(markerAttribs.width || 0) :
|
|
1766
|
+
xAxis.width;
|
|
1767
|
+
}
|
|
1768
|
+
var isInside = point.isInside !== false;
|
|
1769
|
+
if (graphic) { // update
|
|
1770
|
+
// Since the marker group isn't clipped, each
|
|
1771
|
+
// individual marker must be toggled
|
|
1772
|
+
graphic[isInside ? 'show' : 'hide'](isInside)
|
|
1773
|
+
.animate(markerAttribs);
|
|
1774
|
+
}
|
|
1775
|
+
else if (isInside &&
|
|
1776
|
+
((markerAttribs.width || 0) > 0 || point.hasImage)) {
|
|
1777
|
+
/**
|
|
1778
|
+
* The graphic representation of the point.
|
|
1779
|
+
* Typically this is a simple shape, like a `rect`
|
|
1780
|
+
* for column charts or `path` for line markers, but
|
|
1781
|
+
* for some complex series types like boxplot or 3D
|
|
1782
|
+
* charts, the graphic may be a `g` element
|
|
1783
|
+
* containing other shapes. The graphic is generated
|
|
1784
|
+
* the first time {@link Series#drawPoints} runs,
|
|
1785
|
+
* and updated and moved on subsequent runs.
|
|
1786
|
+
*
|
|
1787
|
+
* @name Point#graphic
|
|
1788
|
+
* @type {SVGElement}
|
|
1789
|
+
*/
|
|
1790
|
+
point.graphic = graphic = chart.renderer
|
|
1791
|
+
.symbol(symbol, markerAttribs.x, markerAttribs.y, markerAttribs.width, markerAttribs.height, hasPointMarker ?
|
|
1792
|
+
pointMarkerOptions :
|
|
1793
|
+
seriesMarkerOptions)
|
|
1794
|
+
.add(markerGroup);
|
|
1795
|
+
// Sliding animation for new points
|
|
1796
|
+
if (series.enabledDataSorting &&
|
|
1797
|
+
chart.hasRendered) {
|
|
1798
|
+
graphic.attr({
|
|
1799
|
+
x: point.startXPos
|
|
1800
|
+
});
|
|
1801
|
+
verb = 'animate';
|
|
1802
|
+
}
|
|
1803
|
+
}
|
|
1804
|
+
if (graphic && verb === 'animate') { // update
|
|
1805
|
+
// Since the marker group isn't clipped, each
|
|
1806
|
+
// individual marker must be toggled
|
|
1807
|
+
graphic[isInside ? 'show' : 'hide'](isInside)
|
|
1808
|
+
.animate(markerAttribs);
|
|
1809
|
+
}
|
|
1810
|
+
// Presentational attributes
|
|
1811
|
+
if (graphic && !chart.styledMode) {
|
|
1812
|
+
graphic[verb](series.pointAttribs(point, (point.selected && 'select')));
|
|
1813
|
+
}
|
|
1814
|
+
if (graphic) {
|
|
1815
|
+
graphic.addClass(point.getClassName(), true);
|
|
1816
|
+
}
|
|
1817
|
+
}
|
|
1818
|
+
else if (graphic) {
|
|
1819
|
+
point.graphic = graphic.destroy(); // #1269
|
|
1820
|
+
}
|
|
1821
|
+
}
|
|
1822
|
+
}
|
|
1823
|
+
};
|
|
1824
|
+
/**
|
|
1825
|
+
* Get non-presentational attributes for a point. Used internally for
|
|
1826
|
+
* both styled mode and classic. Can be overridden for different series
|
|
1827
|
+
* types.
|
|
1828
|
+
*
|
|
1829
|
+
* @see Series#pointAttribs
|
|
1830
|
+
*
|
|
1831
|
+
* @function Highcharts.Series#markerAttribs
|
|
1832
|
+
*
|
|
1833
|
+
* @param {Highcharts.Point} point
|
|
1834
|
+
* The Point to inspect.
|
|
1835
|
+
*
|
|
1836
|
+
* @param {string} [state]
|
|
1837
|
+
* The state, can be either `hover`, `select` or undefined.
|
|
1838
|
+
*
|
|
1839
|
+
* @return {Highcharts.SVGAttributes}
|
|
1840
|
+
* A hash containing those attributes that are not settable from CSS.
|
|
1841
|
+
*/
|
|
1842
|
+
Series.prototype.markerAttribs = function (point, state) {
|
|
1843
|
+
var seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
|
|
1844
|
+
seriesMarkerOptions.symbol);
|
|
1845
|
+
var seriesStateOptions, pointStateOptions, radius = pick(pointMarkerOptions.radius, seriesMarkerOptions.radius);
|
|
1846
|
+
// Handle hover and select states
|
|
1847
|
+
if (state) {
|
|
1848
|
+
seriesStateOptions = seriesMarkerOptions.states[state];
|
|
1849
|
+
pointStateOptions = pointMarkerOptions.states &&
|
|
1850
|
+
pointMarkerOptions.states[state];
|
|
1851
|
+
radius = pick(pointStateOptions && pointStateOptions.radius, seriesStateOptions && seriesStateOptions.radius, radius + (seriesStateOptions && seriesStateOptions.radiusPlus ||
|
|
1852
|
+
0));
|
|
1853
|
+
}
|
|
1854
|
+
point.hasImage = symbol && symbol.indexOf('url') === 0;
|
|
1855
|
+
if (point.hasImage) {
|
|
1856
|
+
radius = 0; // and subsequently width and height is not set
|
|
1857
|
+
}
|
|
1858
|
+
var attribs = {
|
|
1859
|
+
// Math.floor for #1843:
|
|
1860
|
+
x: seriesOptions.crisp ?
|
|
1861
|
+
Math.floor(point.plotX - radius) :
|
|
1862
|
+
point.plotX - radius,
|
|
1863
|
+
y: point.plotY - radius
|
|
1864
|
+
};
|
|
1865
|
+
if (radius) {
|
|
1866
|
+
attribs.width = attribs.height = 2 * radius;
|
|
1867
|
+
}
|
|
1868
|
+
return attribs;
|
|
1869
|
+
};
|
|
1870
|
+
/**
|
|
1871
|
+
* Internal function to get presentational attributes for each point.
|
|
1872
|
+
* Unlike {@link Series#markerAttribs}, this function should return
|
|
1873
|
+
* those attributes that can also be set in CSS. In styled mode,
|
|
1874
|
+
* `pointAttribs` won't be called.
|
|
1875
|
+
*
|
|
1876
|
+
* @private
|
|
1877
|
+
* @function Highcharts.Series#pointAttribs
|
|
1878
|
+
*
|
|
1879
|
+
* @param {Highcharts.Point} [point]
|
|
1880
|
+
* The point instance to inspect.
|
|
1881
|
+
*
|
|
1882
|
+
* @param {string} [state]
|
|
1883
|
+
* The point state, can be either `hover`, `select` or 'normal'. If
|
|
1884
|
+
* undefined, normal state is assumed.
|
|
1885
|
+
*
|
|
1886
|
+
* @return {Highcharts.SVGAttributes}
|
|
1887
|
+
* The presentational attributes to be set on the point.
|
|
1888
|
+
*/
|
|
1889
|
+
Series.prototype.pointAttribs = function (point, state) {
|
|
1890
|
+
var seriesMarkerOptions = this.options.marker, pointOptions = point && point.options, pointMarkerOptions = ((pointOptions && pointOptions.marker) || {}), pointColorOption = pointOptions && pointOptions.color, pointColor = point && point.color, zoneColor = point && point.zone && point.zone.color;
|
|
1891
|
+
var seriesStateOptions, pointStateOptions, color = this.color, fill, stroke, strokeWidth = pick(pointMarkerOptions.lineWidth, seriesMarkerOptions.lineWidth), opacity = 1;
|
|
1892
|
+
color = (pointColorOption ||
|
|
1893
|
+
zoneColor ||
|
|
1894
|
+
pointColor ||
|
|
1895
|
+
color);
|
|
1896
|
+
fill = (pointMarkerOptions.fillColor ||
|
|
1897
|
+
seriesMarkerOptions.fillColor ||
|
|
1898
|
+
color);
|
|
1899
|
+
stroke = (pointMarkerOptions.lineColor ||
|
|
1900
|
+
seriesMarkerOptions.lineColor ||
|
|
1901
|
+
color);
|
|
1902
|
+
// Handle hover and select states
|
|
1903
|
+
state = state || 'normal';
|
|
1904
|
+
if (state) {
|
|
1905
|
+
seriesStateOptions = (seriesMarkerOptions.states[state] || {});
|
|
1906
|
+
pointStateOptions = (pointMarkerOptions.states &&
|
|
1907
|
+
pointMarkerOptions.states[state]) || {};
|
|
1908
|
+
strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
|
|
1909
|
+
fill = (pointStateOptions.fillColor ||
|
|
1910
|
+
seriesStateOptions.fillColor ||
|
|
1911
|
+
fill);
|
|
1912
|
+
stroke = (pointStateOptions.lineColor ||
|
|
1913
|
+
seriesStateOptions.lineColor ||
|
|
1914
|
+
stroke);
|
|
1915
|
+
opacity = pick(pointStateOptions.opacity, seriesStateOptions.opacity, opacity);
|
|
1916
|
+
}
|
|
1917
|
+
return {
|
|
1918
|
+
'stroke': stroke,
|
|
1919
|
+
'stroke-width': strokeWidth,
|
|
1920
|
+
'fill': fill,
|
|
1921
|
+
'opacity': opacity
|
|
1922
|
+
};
|
|
1923
|
+
};
|
|
1924
|
+
/**
|
|
1925
|
+
* Clear DOM objects and free up memory.
|
|
1926
|
+
*
|
|
1927
|
+
* @private
|
|
1928
|
+
* @function Highcharts.Series#destroy
|
|
1929
|
+
*
|
|
1930
|
+
* @emits Highcharts.Series#event:destroy
|
|
1931
|
+
*/
|
|
1932
|
+
Series.prototype.destroy = function (keepEventsForUpdate) {
|
|
1933
|
+
var series = this, chart = series.chart, issue134 = /AppleWebKit\/533/.test(win.navigator.userAgent), data = series.data || [];
|
|
1934
|
+
var destroy, i, point, axis;
|
|
1935
|
+
// add event hook
|
|
1936
|
+
fireEvent(series, 'destroy');
|
|
1937
|
+
// remove events
|
|
1938
|
+
this.removeEvents(keepEventsForUpdate);
|
|
1939
|
+
// erase from axes
|
|
1940
|
+
(series.axisTypes || []).forEach(function (AXIS) {
|
|
1941
|
+
axis = series[AXIS];
|
|
1942
|
+
if (axis && axis.series) {
|
|
1943
|
+
erase(axis.series, series);
|
|
1944
|
+
axis.isDirty = axis.forceRedraw = true;
|
|
1945
|
+
}
|
|
1946
|
+
});
|
|
1947
|
+
// remove legend items
|
|
1948
|
+
if (series.legendItem) {
|
|
1949
|
+
series.chart.legend.destroyItem(series);
|
|
1950
|
+
}
|
|
1951
|
+
// destroy all points with their elements
|
|
1952
|
+
i = data.length;
|
|
1953
|
+
while (i--) {
|
|
1954
|
+
point = data[i];
|
|
1955
|
+
if (point && point.destroy) {
|
|
1956
|
+
point.destroy();
|
|
1957
|
+
}
|
|
1958
|
+
}
|
|
1959
|
+
if (series.clips) {
|
|
1960
|
+
series.clips.forEach(function (clip) { return clip.destroy(); });
|
|
1961
|
+
}
|
|
1962
|
+
// Clear the animation timeout if we are destroying the series
|
|
1963
|
+
// during initial animation
|
|
1964
|
+
U.clearTimeout(series.animationTimeout);
|
|
1965
|
+
// Destroy all SVGElements associated to the series
|
|
1966
|
+
objectEach(series, function (val, prop) {
|
|
1967
|
+
// Survive provides a hook for not destroying
|
|
1968
|
+
if (val instanceof SVGElement && !val.survive) {
|
|
1969
|
+
// issue 134 workaround
|
|
1970
|
+
destroy = issue134 && prop === 'group' ?
|
|
1971
|
+
'hide' :
|
|
1972
|
+
'destroy';
|
|
1973
|
+
val[destroy]();
|
|
1974
|
+
}
|
|
1975
|
+
});
|
|
1976
|
+
// remove from hoverSeries
|
|
1977
|
+
if (chart.hoverSeries === series) {
|
|
1978
|
+
chart.hoverSeries = void 0;
|
|
1979
|
+
}
|
|
1980
|
+
erase(chart.series, series);
|
|
1981
|
+
chart.orderSeries();
|
|
1982
|
+
// clear all members
|
|
1983
|
+
objectEach(series, function (val, prop) {
|
|
1984
|
+
if (!keepEventsForUpdate || prop !== 'hcEvents') {
|
|
1985
|
+
delete series[prop];
|
|
1986
|
+
}
|
|
1987
|
+
});
|
|
1988
|
+
};
|
|
1989
|
+
/**
|
|
1990
|
+
* Clip the graphs into zones for colors and styling.
|
|
1991
|
+
*
|
|
1992
|
+
* @private
|
|
1993
|
+
* @function Highcharts.Series#applyZones
|
|
1994
|
+
*/
|
|
1995
|
+
Series.prototype.applyZones = function () {
|
|
1996
|
+
var series = this, chart = this.chart, renderer = chart.renderer, zones = this.zones, clips = (this.clips || []), graph = this.graph, area = this.area, chartSizeMax = Math.max(chart.chartWidth, chart.chartHeight), axis = this[(this.zoneAxis || 'y') + 'Axis'], inverted = chart.inverted;
|
|
1997
|
+
var translatedFrom, translatedTo, clipAttr, extremes, reversed, horiz, pxRange, pxPosMin, pxPosMax, zoneArea, zoneGraph, ignoreZones = false;
|
|
1998
|
+
if (zones.length &&
|
|
1999
|
+
(graph || area) &&
|
|
2000
|
+
axis &&
|
|
2001
|
+
typeof axis.min !== 'undefined') {
|
|
2002
|
+
reversed = axis.reversed;
|
|
2003
|
+
horiz = axis.horiz;
|
|
2004
|
+
// The use of the Color Threshold assumes there are no gaps
|
|
2005
|
+
// so it is safe to hide the original graph and area
|
|
2006
|
+
// unless it is not waterfall series, then use showLine property
|
|
2007
|
+
// to set lines between columns to be visible (#7862)
|
|
2008
|
+
if (graph && !this.showLine) {
|
|
2009
|
+
graph.hide();
|
|
2010
|
+
}
|
|
2011
|
+
if (area) {
|
|
2012
|
+
area.hide();
|
|
2013
|
+
}
|
|
2014
|
+
// Create the clips
|
|
2015
|
+
extremes = axis.getExtremes();
|
|
2016
|
+
zones.forEach(function (threshold, i) {
|
|
2017
|
+
translatedFrom = reversed ?
|
|
2018
|
+
(horiz ? chart.plotWidth : 0) :
|
|
2019
|
+
(horiz ? 0 : (axis.toPixels(extremes.min) || 0));
|
|
2020
|
+
translatedFrom = clamp(pick(translatedTo, translatedFrom), 0, chartSizeMax);
|
|
2021
|
+
translatedTo = clamp(Math.round(axis.toPixels(pick(threshold.value, extremes.max), true) || 0), 0, chartSizeMax);
|
|
2022
|
+
if (ignoreZones) {
|
|
2023
|
+
translatedFrom = translatedTo =
|
|
2024
|
+
axis.toPixels(extremes.max);
|
|
2025
|
+
}
|
|
2026
|
+
pxRange = Math.abs(translatedFrom - translatedTo);
|
|
2027
|
+
pxPosMin = Math.min(translatedFrom, translatedTo);
|
|
2028
|
+
pxPosMax = Math.max(translatedFrom, translatedTo);
|
|
2029
|
+
if (axis.isXAxis) {
|
|
2030
|
+
clipAttr = {
|
|
2031
|
+
x: inverted ? pxPosMax : pxPosMin,
|
|
2032
|
+
y: 0,
|
|
2033
|
+
width: pxRange,
|
|
2034
|
+
height: chartSizeMax
|
|
2035
|
+
};
|
|
2036
|
+
if (!horiz) {
|
|
2037
|
+
clipAttr.x = chart.plotHeight - clipAttr.x;
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
else {
|
|
2041
|
+
clipAttr = {
|
|
2042
|
+
x: 0,
|
|
2043
|
+
y: inverted ? pxPosMax : pxPosMin,
|
|
2044
|
+
width: chartSizeMax,
|
|
2045
|
+
height: pxRange
|
|
2046
|
+
};
|
|
2047
|
+
if (horiz) {
|
|
2048
|
+
clipAttr.y = chart.plotWidth - clipAttr.y;
|
|
2049
|
+
}
|
|
2050
|
+
}
|
|
2051
|
+
// VML SUPPPORT
|
|
2052
|
+
if (inverted && renderer.isVML) {
|
|
2053
|
+
if (axis.isXAxis) {
|
|
2054
|
+
clipAttr = {
|
|
2055
|
+
x: 0,
|
|
2056
|
+
y: reversed ? pxPosMin : pxPosMax,
|
|
2057
|
+
height: clipAttr.width,
|
|
2058
|
+
width: chart.chartWidth
|
|
2059
|
+
};
|
|
2060
|
+
}
|
|
2061
|
+
else {
|
|
2062
|
+
clipAttr = {
|
|
2063
|
+
x: (clipAttr.y -
|
|
2064
|
+
chart.plotLeft -
|
|
2065
|
+
chart.spacingBox.x),
|
|
2066
|
+
y: 0,
|
|
2067
|
+
width: clipAttr.height,
|
|
2068
|
+
height: chart.chartHeight
|
|
2069
|
+
};
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
// END OF VML SUPPORT
|
|
2073
|
+
if (clips[i]) {
|
|
2074
|
+
clips[i].animate(clipAttr);
|
|
2075
|
+
}
|
|
2076
|
+
else {
|
|
2077
|
+
clips[i] = renderer.clipRect(clipAttr);
|
|
2078
|
+
}
|
|
2079
|
+
// when no data, graph zone is not applied and after setData
|
|
2080
|
+
// clip was ignored. As a result, it should be applied each
|
|
2081
|
+
// time.
|
|
2082
|
+
zoneArea = series['zone-area-' + i];
|
|
2083
|
+
zoneGraph = series['zone-graph-' + i];
|
|
2084
|
+
if (graph && zoneGraph) {
|
|
2085
|
+
zoneGraph.clip(clips[i]);
|
|
2086
|
+
}
|
|
2087
|
+
if (area && zoneArea) {
|
|
2088
|
+
zoneArea.clip(clips[i]);
|
|
2089
|
+
}
|
|
2090
|
+
// if this zone extends out of the axis, ignore the others
|
|
2091
|
+
ignoreZones = threshold.value > extremes.max;
|
|
2092
|
+
// Clear translatedTo for indicators
|
|
2093
|
+
if (series.resetZones && translatedTo === 0) {
|
|
2094
|
+
translatedTo = void 0;
|
|
2095
|
+
}
|
|
2096
|
+
});
|
|
2097
|
+
this.clips = clips;
|
|
2098
|
+
}
|
|
2099
|
+
else if (series.visible) {
|
|
2100
|
+
// If zones were removed, restore graph and area
|
|
2101
|
+
if (graph) {
|
|
2102
|
+
graph.show(true);
|
|
2103
|
+
}
|
|
2104
|
+
if (area) {
|
|
2105
|
+
area.show(true);
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
};
|
|
2109
|
+
/**
|
|
2110
|
+
* Initialize and perform group inversion on series.group and
|
|
2111
|
+
* series.markerGroup.
|
|
2112
|
+
*
|
|
2113
|
+
* @private
|
|
2114
|
+
* @function Highcharts.Series#invertGroups
|
|
2115
|
+
*/
|
|
2116
|
+
Series.prototype.invertGroups = function (inverted) {
|
|
2117
|
+
var series = this, chart = series.chart;
|
|
2118
|
+
/**
|
|
2119
|
+
* @private
|
|
2120
|
+
*/
|
|
2121
|
+
function setInvert() {
|
|
2122
|
+
['group', 'markerGroup'].forEach(function (groupName) {
|
|
2123
|
+
if (series[groupName]) {
|
|
2124
|
+
// VML/HTML needs explicit attributes for flipping
|
|
2125
|
+
if (chart.renderer.isVML) {
|
|
2126
|
+
series[groupName].attr({
|
|
2127
|
+
width: series.yAxis.len,
|
|
2128
|
+
height: series.xAxis.len
|
|
2129
|
+
});
|
|
2130
|
+
}
|
|
2131
|
+
series[groupName].width = series.yAxis.len;
|
|
2132
|
+
series[groupName].height = series.xAxis.len;
|
|
2133
|
+
// If inverted polar, don't invert series group
|
|
2134
|
+
series[groupName].invert(series.isRadialSeries ? false : inverted);
|
|
2135
|
+
}
|
|
2136
|
+
});
|
|
2137
|
+
}
|
|
2138
|
+
// Pie, go away (#1736)
|
|
2139
|
+
if (!series.xAxis) {
|
|
2140
|
+
return;
|
|
2141
|
+
}
|
|
2142
|
+
// A fixed size is needed for inversion to work
|
|
2143
|
+
series.eventsToUnbind.push(addEvent(chart, 'resize', setInvert));
|
|
2144
|
+
// Do it now
|
|
2145
|
+
setInvert();
|
|
2146
|
+
// On subsequent render and redraw, just do setInvert without
|
|
2147
|
+
// setting up events again
|
|
2148
|
+
series.invertGroups = setInvert;
|
|
2149
|
+
};
|
|
2150
|
+
/**
|
|
2151
|
+
* General abstraction for creating plot groups like series.group,
|
|
2152
|
+
* series.dataLabelsGroup and series.markerGroup. On subsequent calls,
|
|
2153
|
+
* the group will only be adjusted to the updated plot size.
|
|
2154
|
+
*
|
|
2155
|
+
* @private
|
|
2156
|
+
* @function Highcharts.Series#plotGroup
|
|
2157
|
+
*/
|
|
2158
|
+
Series.prototype.plotGroup = function (prop, name, visibility, zIndex, parent) {
|
|
2159
|
+
var group = this[prop];
|
|
2160
|
+
var isNew = !group, attrs = {
|
|
2161
|
+
visibility: visibility,
|
|
2162
|
+
zIndex: zIndex || 0.1 // IE8 and pointer logic use this
|
|
2163
|
+
};
|
|
2164
|
+
// Avoid setting undefined opacity, or in styled mode
|
|
2165
|
+
if (typeof this.opacity !== 'undefined' &&
|
|
2166
|
+
!this.chart.styledMode && this.state !== 'inactive' // #13719
|
|
2167
|
+
) {
|
|
2168
|
+
attrs.opacity = this.opacity;
|
|
2169
|
+
}
|
|
2170
|
+
// Generate it on first call
|
|
2171
|
+
if (isNew) {
|
|
2172
|
+
this[prop] = group = this.chart.renderer
|
|
2173
|
+
.g()
|
|
2174
|
+
.add(parent);
|
|
2175
|
+
}
|
|
2176
|
+
// Add the class names, and replace existing ones as response to
|
|
2177
|
+
// Series.update (#6660)
|
|
2178
|
+
group.addClass(('highcharts-' + name +
|
|
2179
|
+
' highcharts-series-' + this.index +
|
|
2180
|
+
' highcharts-' + this.type + '-series ' +
|
|
2181
|
+
(defined(this.colorIndex) ?
|
|
2182
|
+
'highcharts-color-' + this.colorIndex + ' ' :
|
|
2183
|
+
'') +
|
|
2184
|
+
(this.options.className || '') +
|
|
2185
|
+
(group.hasClass('highcharts-tracker') ?
|
|
2186
|
+
' highcharts-tracker' :
|
|
2187
|
+
'')), true);
|
|
2188
|
+
// Place it on first and subsequent (redraw) calls
|
|
2189
|
+
group.attr(attrs)[isNew ? 'attr' : 'animate'](this.getPlotBox());
|
|
2190
|
+
return group;
|
|
2191
|
+
};
|
|
2192
|
+
/**
|
|
2193
|
+
* Get the translation and scale for the plot area of this series.
|
|
2194
|
+
*
|
|
2195
|
+
* @function Highcharts.Series#getPlotBox
|
|
2196
|
+
*/
|
|
2197
|
+
Series.prototype.getPlotBox = function () {
|
|
2198
|
+
var chart = this.chart;
|
|
2199
|
+
var xAxis = this.xAxis, yAxis = this.yAxis;
|
|
2200
|
+
// Swap axes for inverted (#2339)
|
|
2201
|
+
if (chart.inverted) {
|
|
2202
|
+
xAxis = yAxis;
|
|
2203
|
+
yAxis = this.xAxis;
|
|
2204
|
+
}
|
|
2205
|
+
return {
|
|
2206
|
+
translateX: xAxis ? xAxis.left : chart.plotLeft,
|
|
2207
|
+
translateY: yAxis ? yAxis.top : chart.plotTop,
|
|
2208
|
+
scaleX: 1,
|
|
2209
|
+
scaleY: 1
|
|
2210
|
+
};
|
|
2211
|
+
};
|
|
2212
|
+
/**
|
|
2213
|
+
* Removes the event handlers attached previously with addEvents.
|
|
2214
|
+
* @private
|
|
2215
|
+
* @function Highcharts.Series#removeEvents
|
|
2216
|
+
*/
|
|
2217
|
+
Series.prototype.removeEvents = function (keepEventsForUpdate) {
|
|
2218
|
+
var series = this;
|
|
2219
|
+
if (!keepEventsForUpdate) {
|
|
2220
|
+
// remove all events
|
|
2221
|
+
removeEvent(series);
|
|
2222
|
+
}
|
|
2223
|
+
if (series.eventsToUnbind.length) {
|
|
2224
|
+
// remove only internal events for proper update
|
|
2225
|
+
// #12355 - solves problem with multiple destroy events
|
|
2226
|
+
series.eventsToUnbind.forEach(function (unbind) {
|
|
2227
|
+
unbind();
|
|
2228
|
+
});
|
|
2229
|
+
series.eventsToUnbind.length = 0;
|
|
2230
|
+
}
|
|
2231
|
+
};
|
|
2232
|
+
/**
|
|
2233
|
+
* Render the graph and markers. Called internally when first rendering
|
|
2234
|
+
* and later when redrawing the chart. This function can be extended in
|
|
2235
|
+
* plugins, but normally shouldn't be called directly.
|
|
2236
|
+
*
|
|
2237
|
+
* @function Highcharts.Series#render
|
|
2238
|
+
*
|
|
2239
|
+
* @emits Highcharts.Series#event:afterRender
|
|
2240
|
+
*/
|
|
2241
|
+
Series.prototype.render = function () {
|
|
2242
|
+
var series = this, chart = series.chart, options = series.options, animOptions = animObject(options.animation), visibility = series.visible ?
|
|
2243
|
+
'inherit' : 'hidden', // #2597
|
|
2244
|
+
zIndex = options.zIndex, hasRendered = series.hasRendered, chartSeriesGroup = chart.seriesGroup, inverted = chart.inverted;
|
|
2245
|
+
// Animation doesn't work in IE8 quirks when the group div is
|
|
2246
|
+
// hidden, and looks bad in other oldIE
|
|
2247
|
+
var animDuration = (!series.finishedAnimating && chart.renderer.isSVG) ?
|
|
2248
|
+
animOptions.duration : 0;
|
|
2249
|
+
fireEvent(this, 'render');
|
|
2250
|
+
// the group
|
|
2251
|
+
var group = series.plotGroup('group', 'series', visibility, zIndex, chartSeriesGroup);
|
|
2252
|
+
series.markerGroup = series.plotGroup('markerGroup', 'markers', visibility, zIndex, chartSeriesGroup);
|
|
2253
|
+
// Initial clipping, applies to columns etc. (#3839).
|
|
2254
|
+
if (options.clip !== false) {
|
|
2255
|
+
series.setClip();
|
|
2256
|
+
}
|
|
2257
|
+
// Initialize the animation
|
|
2258
|
+
if (series.animate && animDuration) {
|
|
2259
|
+
series.animate(true);
|
|
2260
|
+
}
|
|
2261
|
+
// SVGRenderer needs to know this before drawing elements (#1089,
|
|
2262
|
+
// #1795)
|
|
2263
|
+
group.inverted = pick(series.invertible, series.isCartesian) ?
|
|
2264
|
+
inverted : false;
|
|
2265
|
+
// Draw the graph if any
|
|
2266
|
+
if (series.drawGraph) {
|
|
2267
|
+
series.drawGraph();
|
|
2268
|
+
series.applyZones();
|
|
2269
|
+
}
|
|
2270
|
+
// Draw the points
|
|
2271
|
+
if (series.visible) {
|
|
2272
|
+
series.drawPoints();
|
|
2273
|
+
}
|
|
2274
|
+
// Draw the data labels
|
|
2275
|
+
if (series.drawDataLabels) {
|
|
2276
|
+
series.drawDataLabels();
|
|
2277
|
+
}
|
|
2278
|
+
// In pie charts, slices are added to the DOM, but actual rendering
|
|
2279
|
+
// is postponed until labels reserved their space
|
|
2280
|
+
if (series.redrawPoints) {
|
|
2281
|
+
series.redrawPoints();
|
|
2282
|
+
}
|
|
2283
|
+
// draw the mouse tracking area
|
|
2284
|
+
if (series.drawTracker &&
|
|
2285
|
+
series.options.enableMouseTracking !== false) {
|
|
2286
|
+
series.drawTracker();
|
|
2287
|
+
}
|
|
2288
|
+
// Handle inverted series and tracker groups
|
|
2289
|
+
series.invertGroups(inverted);
|
|
2290
|
+
// Run the animation
|
|
2291
|
+
if (series.animate && animDuration) {
|
|
2292
|
+
series.animate();
|
|
2293
|
+
}
|
|
2294
|
+
// Call the afterAnimate function on animation complete (but don't
|
|
2295
|
+
// overwrite the animation.complete option which should be available
|
|
2296
|
+
// to the user).
|
|
2297
|
+
if (!hasRendered) {
|
|
2298
|
+
// Additional time if defer is defined before afterAnimate
|
|
2299
|
+
// will be triggered
|
|
2300
|
+
if (animDuration && animOptions.defer) {
|
|
2301
|
+
animDuration += animOptions.defer;
|
|
2302
|
+
}
|
|
2303
|
+
series.animationTimeout = syncTimeout(function () {
|
|
2304
|
+
series.afterAnimate();
|
|
2305
|
+
}, animDuration || 0);
|
|
2306
|
+
}
|
|
2307
|
+
// Means data is in accordance with what you see
|
|
2308
|
+
series.isDirty = false;
|
|
2309
|
+
// (See #322) series.isDirty = series.isDirtyData = false; // means
|
|
2310
|
+
// data is in accordance with what you see
|
|
2311
|
+
series.hasRendered = true;
|
|
2312
|
+
fireEvent(series, 'afterRender');
|
|
2313
|
+
};
|
|
2314
|
+
/**
|
|
2315
|
+
* Redraw the series. This function is called internally from
|
|
2316
|
+
* `chart.redraw` and normally shouldn't be called directly.
|
|
2317
|
+
* @private
|
|
2318
|
+
* @function Highcharts.Series#redraw
|
|
2319
|
+
*/
|
|
2320
|
+
Series.prototype.redraw = function () {
|
|
2321
|
+
var series = this, chart = series.chart,
|
|
2322
|
+
// cache it here as it is set to false in render, but used after
|
|
2323
|
+
wasDirty = series.isDirty || series.isDirtyData, group = series.group, xAxis = series.xAxis, yAxis = series.yAxis;
|
|
2324
|
+
// reposition on resize
|
|
2325
|
+
if (group) {
|
|
2326
|
+
if (chart.inverted) {
|
|
2327
|
+
group.attr({
|
|
2328
|
+
width: chart.plotWidth,
|
|
2329
|
+
height: chart.plotHeight
|
|
2330
|
+
});
|
|
2331
|
+
}
|
|
2332
|
+
group.animate({
|
|
2333
|
+
translateX: pick(xAxis && xAxis.left, chart.plotLeft),
|
|
2334
|
+
translateY: pick(yAxis && yAxis.top, chart.plotTop)
|
|
2335
|
+
});
|
|
2336
|
+
}
|
|
2337
|
+
series.translate();
|
|
2338
|
+
series.render();
|
|
2339
|
+
if (wasDirty) { // #3868, #3945
|
|
2340
|
+
delete this.kdTree;
|
|
2341
|
+
}
|
|
2342
|
+
};
|
|
2343
|
+
/**
|
|
2344
|
+
* Find the nearest point from a pointer event. This applies to series that
|
|
2345
|
+
* use k-d-trees to get the nearest point. Native pointer events must be
|
|
2346
|
+
* normalized using `Pointer.normalize`, that adds `chartX` and `chartY`
|
|
2347
|
+
* properties.
|
|
2348
|
+
*
|
|
2349
|
+
* @sample highcharts/demo/synchronized-charts
|
|
2350
|
+
* Synchronized charts with tooltips
|
|
2351
|
+
*
|
|
2352
|
+
* @function Highcharts.Series#searchPoint
|
|
2353
|
+
*
|
|
2354
|
+
* @param {Highcharts.PointerEvent} e
|
|
2355
|
+
* The normalized pointer event
|
|
2356
|
+
* @param {boolean} [compareX=false]
|
|
2357
|
+
* Search only by the X value, not Y
|
|
2358
|
+
*
|
|
2359
|
+
* @return {Point|undefined}
|
|
2360
|
+
* The closest point to the pointer event
|
|
2361
|
+
*/
|
|
2362
|
+
Series.prototype.searchPoint = function (e, compareX) {
|
|
2363
|
+
var series = this, xAxis = series.xAxis, yAxis = series.yAxis, inverted = series.chart.inverted;
|
|
2364
|
+
return this.searchKDTree({
|
|
2365
|
+
clientX: inverted ?
|
|
2366
|
+
xAxis.len - e.chartY + xAxis.pos :
|
|
2367
|
+
e.chartX - xAxis.pos,
|
|
2368
|
+
plotY: inverted ?
|
|
2369
|
+
yAxis.len - e.chartX + yAxis.pos :
|
|
2370
|
+
e.chartY - yAxis.pos
|
|
2371
|
+
}, compareX, e);
|
|
2372
|
+
};
|
|
2373
|
+
/**
|
|
2374
|
+
* Build the k-d-tree that is used by mouse and touch interaction to get
|
|
2375
|
+
* the closest point. Line-like series typically have a one-dimensional
|
|
2376
|
+
* tree where points are searched along the X axis, while scatter-like
|
|
2377
|
+
* series typically search in two dimensions, X and Y.
|
|
2378
|
+
*
|
|
2379
|
+
* @private
|
|
2380
|
+
* @function Highcharts.Series#buildKDTree
|
|
2381
|
+
*/
|
|
2382
|
+
Series.prototype.buildKDTree = function (e) {
|
|
2383
|
+
// Prevent multiple k-d-trees from being built simultaneously
|
|
2384
|
+
// (#6235)
|
|
2385
|
+
this.buildingKdTree = true;
|
|
2386
|
+
var series = this, dimensions = series.options.findNearestPointBy
|
|
2387
|
+
.indexOf('y') > -1 ? 2 : 1;
|
|
2388
|
+
/**
|
|
2389
|
+
* Internal function
|
|
2390
|
+
* @private
|
|
2391
|
+
*/
|
|
2392
|
+
function _kdtree(points, depth, dimensions) {
|
|
2393
|
+
var length = points && points.length;
|
|
2394
|
+
var axis, median;
|
|
2395
|
+
if (length) {
|
|
2396
|
+
// alternate between the axis
|
|
2397
|
+
axis = series.kdAxisArray[depth % dimensions];
|
|
2398
|
+
// sort point array
|
|
2399
|
+
points.sort(function (a, b) {
|
|
2400
|
+
return a[axis] - b[axis];
|
|
2401
|
+
});
|
|
2402
|
+
median = Math.floor(length / 2);
|
|
2403
|
+
// build and return nod
|
|
2404
|
+
return {
|
|
2405
|
+
point: points[median],
|
|
2406
|
+
left: _kdtree(points.slice(0, median), depth + 1, dimensions),
|
|
2407
|
+
right: _kdtree(points.slice(median + 1), depth + 1, dimensions)
|
|
2408
|
+
};
|
|
2409
|
+
}
|
|
2410
|
+
}
|
|
2411
|
+
/**
|
|
2412
|
+
* Start the recursive build process with a clone of the points
|
|
2413
|
+
* array and null points filtered out. (#3873)
|
|
2414
|
+
* @private
|
|
2415
|
+
*/
|
|
2416
|
+
function startRecursive() {
|
|
2417
|
+
series.kdTree = _kdtree(series.getValidPoints(null,
|
|
2418
|
+
// For line-type series restrict to plot area, but
|
|
2419
|
+
// column-type series not (#3916, #4511)
|
|
2420
|
+
!series.directTouch), dimensions, dimensions);
|
|
2421
|
+
series.buildingKdTree = false;
|
|
2422
|
+
}
|
|
2423
|
+
delete series.kdTree;
|
|
2424
|
+
// For testing tooltips, don't build async. Also if touchstart, we
|
|
2425
|
+
// may be dealing with click events on mobile, so don't delay
|
|
2426
|
+
// (#6817).
|
|
2427
|
+
syncTimeout(startRecursive, series.options.kdNow || (e && e.type === 'touchstart') ? 0 : 1);
|
|
2428
|
+
};
|
|
2429
|
+
/**
|
|
2430
|
+
* @private
|
|
2431
|
+
* @function Highcharts.Series#searchKDTree
|
|
2432
|
+
*/
|
|
2433
|
+
Series.prototype.searchKDTree = function (point, compareX, e) {
|
|
2434
|
+
var series = this, kdX = this.kdAxisArray[0], kdY = this.kdAxisArray[1], kdComparer = compareX ? 'distX' : 'dist', kdDimensions = series.options.findNearestPointBy
|
|
2435
|
+
.indexOf('y') > -1 ? 2 : 1;
|
|
2436
|
+
/**
|
|
2437
|
+
* Set the one and two dimensional distance on the point object.
|
|
2438
|
+
* @private
|
|
2439
|
+
*/
|
|
2440
|
+
function setDistance(p1, p2) {
|
|
2441
|
+
var x = (defined(p1[kdX]) &&
|
|
2442
|
+
defined(p2[kdX])) ?
|
|
2443
|
+
Math.pow(p1[kdX] - p2[kdX], 2) :
|
|
2444
|
+
null, y = (defined(p1[kdY]) &&
|
|
2445
|
+
defined(p2[kdY])) ?
|
|
2446
|
+
Math.pow(p1[kdY] - p2[kdY], 2) :
|
|
2447
|
+
null, r = (x || 0) + (y || 0);
|
|
2448
|
+
p2.dist = defined(r) ? Math.sqrt(r) : Number.MAX_VALUE;
|
|
2449
|
+
p2.distX = defined(x) ? Math.sqrt(x) : Number.MAX_VALUE;
|
|
2450
|
+
}
|
|
2451
|
+
/**
|
|
2452
|
+
* @private
|
|
2453
|
+
*/
|
|
2454
|
+
function _search(search, tree, depth, dimensions) {
|
|
2455
|
+
var point = tree.point, axis = series.kdAxisArray[depth % dimensions];
|
|
2456
|
+
var nPoint1, nPoint2, ret = point;
|
|
2457
|
+
setDistance(search, point);
|
|
2458
|
+
// Pick side based on distance to splitting point
|
|
2459
|
+
var tdist = search[axis] - point[axis], sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left';
|
|
2460
|
+
// End of tree
|
|
2461
|
+
if (tree[sideA]) {
|
|
2462
|
+
nPoint1 = _search(search, tree[sideA], depth + 1, dimensions);
|
|
2463
|
+
ret = (nPoint1[kdComparer] <
|
|
2464
|
+
ret[kdComparer] ?
|
|
2465
|
+
nPoint1 :
|
|
2466
|
+
point);
|
|
2467
|
+
}
|
|
2468
|
+
if (tree[sideB]) {
|
|
2469
|
+
// compare distance to current best to splitting point to
|
|
2470
|
+
// decide wether to check side B or not
|
|
2471
|
+
if (Math.sqrt(tdist * tdist) < ret[kdComparer]) {
|
|
2472
|
+
nPoint2 = _search(search, tree[sideB], depth + 1, dimensions);
|
|
2473
|
+
ret = (nPoint2[kdComparer] <
|
|
2474
|
+
ret[kdComparer] ?
|
|
2475
|
+
nPoint2 :
|
|
2476
|
+
ret);
|
|
2477
|
+
}
|
|
2478
|
+
}
|
|
2479
|
+
return ret;
|
|
2480
|
+
}
|
|
2481
|
+
if (!this.kdTree && !this.buildingKdTree) {
|
|
2482
|
+
this.buildKDTree(e);
|
|
2483
|
+
}
|
|
2484
|
+
if (this.kdTree) {
|
|
2485
|
+
return _search(point, this.kdTree, kdDimensions, kdDimensions);
|
|
2486
|
+
}
|
|
2487
|
+
};
|
|
2488
|
+
/**
|
|
2489
|
+
* @private
|
|
2490
|
+
* @function Highcharts.Series#pointPlacementToXValue
|
|
2491
|
+
*/
|
|
2492
|
+
Series.prototype.pointPlacementToXValue = function () {
|
|
2493
|
+
var _a = this, _b = _a.options, pointPlacement = _b.pointPlacement, pointRange = _b.pointRange, axis = _a.xAxis;
|
|
2494
|
+
var factor = pointPlacement;
|
|
2495
|
+
// Point placement is relative to each series pointRange (#5889)
|
|
2496
|
+
if (factor === 'between') {
|
|
2497
|
+
factor = axis.reversed ? -0.5 : 0.5; // #11955
|
|
2498
|
+
}
|
|
2499
|
+
return isNumber(factor) ?
|
|
2500
|
+
factor * (pointRange || axis.pointRange) :
|
|
2501
|
+
0;
|
|
2502
|
+
};
|
|
2503
|
+
/**
|
|
2504
|
+
* @private
|
|
2505
|
+
* @function Highcharts.Series#isPointInside
|
|
2506
|
+
*/
|
|
2507
|
+
Series.prototype.isPointInside = function (point) {
|
|
2508
|
+
var _a = this, chart = _a.chart, xAxis = _a.xAxis, yAxis = _a.yAxis, isInside = (typeof point.plotY !== 'undefined' &&
|
|
2509
|
+
typeof point.plotX !== 'undefined' &&
|
|
2510
|
+
point.plotY >= 0 &&
|
|
2511
|
+
point.plotY <= (yAxis ? yAxis.len : chart.plotHeight) &&
|
|
2512
|
+
point.plotX >= 0 &&
|
|
2513
|
+
point.plotX <= (xAxis ? xAxis.len : chart.plotWidth));
|
|
2514
|
+
return isInside;
|
|
2515
|
+
};
|
|
2516
|
+
/**
|
|
2517
|
+
* Draw the tracker object that sits above all data labels and markers to
|
|
2518
|
+
* track mouse events on the graph or points. For the line type charts
|
|
2519
|
+
* the tracker uses the same graphPath, but with a greater stroke width
|
|
2520
|
+
* for better control.
|
|
2521
|
+
* @private
|
|
2522
|
+
*/
|
|
2523
|
+
Series.prototype.drawTracker = function () {
|
|
2524
|
+
var series = this, options = series.options, trackByArea = options.trackByArea, trackerPath = [].concat(trackByArea ?
|
|
2525
|
+
series.areaPath :
|
|
2526
|
+
series.graphPath),
|
|
2527
|
+
// trackerPathLength = trackerPath.length,
|
|
2528
|
+
chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = chart.options.tooltip.snap, tracker = series.tracker, onMouseOver = function (e) {
|
|
2529
|
+
if (chart.hoverSeries !== series) {
|
|
2530
|
+
series.onMouseOver();
|
|
2531
|
+
}
|
|
2532
|
+
},
|
|
2533
|
+
/*
|
|
2534
|
+
* Empirical lowest possible opacities for TRACKER_FILL for an
|
|
2535
|
+
* element to stay invisible but clickable
|
|
2536
|
+
* IE6: 0.002
|
|
2537
|
+
* IE7: 0.002
|
|
2538
|
+
* IE8: 0.002
|
|
2539
|
+
* IE9: 0.00000000001 (unlimited)
|
|
2540
|
+
* IE10: 0.0001 (exporting only)
|
|
2541
|
+
* FF: 0.00000000001 (unlimited)
|
|
2542
|
+
* Chrome: 0.000001
|
|
2543
|
+
* Safari: 0.000001
|
|
2544
|
+
* Opera: 0.00000000001 (unlimited)
|
|
2545
|
+
*/
|
|
2546
|
+
TRACKER_FILL = 'rgba(192,192,192,' + (svg ? 0.0001 : 0.002) + ')';
|
|
2547
|
+
var i;
|
|
2548
|
+
// Draw the tracker
|
|
2549
|
+
if (tracker) {
|
|
2550
|
+
tracker.attr({ d: trackerPath });
|
|
2551
|
+
}
|
|
2552
|
+
else if (series.graph) { // create
|
|
2553
|
+
series.tracker = renderer.path(trackerPath)
|
|
2554
|
+
.attr({
|
|
2555
|
+
visibility: series.visible ? 'visible' : 'hidden',
|
|
2556
|
+
zIndex: 2
|
|
2557
|
+
})
|
|
2558
|
+
.addClass(trackByArea ?
|
|
2559
|
+
'highcharts-tracker-area' :
|
|
2560
|
+
'highcharts-tracker-line')
|
|
2561
|
+
.add(series.group);
|
|
2562
|
+
if (!chart.styledMode) {
|
|
2563
|
+
series.tracker.attr({
|
|
2564
|
+
'stroke-linecap': 'round',
|
|
2565
|
+
'stroke-linejoin': 'round',
|
|
2566
|
+
stroke: TRACKER_FILL,
|
|
2567
|
+
fill: trackByArea ? TRACKER_FILL : 'none',
|
|
2568
|
+
'stroke-width': series.graph.strokeWidth() +
|
|
2569
|
+
(trackByArea ? 0 : 2 * snap)
|
|
2570
|
+
});
|
|
2571
|
+
}
|
|
2572
|
+
// The tracker is added to the series group, which is clipped, but
|
|
2573
|
+
// is covered by the marker group. So the marker group also needs to
|
|
2574
|
+
// capture events.
|
|
2575
|
+
[
|
|
2576
|
+
series.tracker,
|
|
2577
|
+
series.markerGroup,
|
|
2578
|
+
series.dataLabelsGroup
|
|
2579
|
+
].forEach(function (tracker) {
|
|
2580
|
+
if (tracker) {
|
|
2581
|
+
tracker.addClass('highcharts-tracker')
|
|
2582
|
+
.on('mouseover', onMouseOver)
|
|
2583
|
+
.on('mouseout', function (e) {
|
|
2584
|
+
pointer.onTrackerMouseOut(e);
|
|
2585
|
+
});
|
|
2586
|
+
if (options.cursor && !chart.styledMode) {
|
|
2587
|
+
tracker.css({ cursor: options.cursor });
|
|
2588
|
+
}
|
|
2589
|
+
if (hasTouch) {
|
|
2590
|
+
tracker.on('touchstart', onMouseOver);
|
|
2591
|
+
}
|
|
2592
|
+
}
|
|
2593
|
+
});
|
|
2594
|
+
}
|
|
2595
|
+
fireEvent(this, 'afterDrawTracker');
|
|
2596
|
+
};
|
|
2597
|
+
/**
|
|
2598
|
+
* Add a point to the series after render time. The point can be added at
|
|
2599
|
+
* the end, or by giving it an X value, to the start or in the middle of the
|
|
2600
|
+
* series.
|
|
2601
|
+
*
|
|
2602
|
+
* @sample highcharts/members/series-addpoint-append/
|
|
2603
|
+
* Append point
|
|
2604
|
+
* @sample highcharts/members/series-addpoint-append-and-shift/
|
|
2605
|
+
* Append and shift
|
|
2606
|
+
* @sample highcharts/members/series-addpoint-x-and-y/
|
|
2607
|
+
* Both X and Y values given
|
|
2608
|
+
* @sample highcharts/members/series-addpoint-pie/
|
|
2609
|
+
* Append pie slice
|
|
2610
|
+
* @sample stock/members/series-addpoint/
|
|
2611
|
+
* Append 100 points in Highcharts Stock
|
|
2612
|
+
* @sample stock/members/series-addpoint-shift/
|
|
2613
|
+
* Append and shift in Highcharts Stock
|
|
2614
|
+
* @sample maps/members/series-addpoint/
|
|
2615
|
+
* Add a point in Highmaps
|
|
2616
|
+
*
|
|
2617
|
+
* @function Highcharts.Series#addPoint
|
|
2618
|
+
*
|
|
2619
|
+
* @param {Highcharts.PointOptionsType} options
|
|
2620
|
+
* The point options. If options is a single number, a point with
|
|
2621
|
+
* that y value is appended to the series. If it is an array, it will
|
|
2622
|
+
* be interpreted as x and y values respectively. If it is an
|
|
2623
|
+
* object, advanced options as outlined under `series.data` are
|
|
2624
|
+
* applied.
|
|
2625
|
+
*
|
|
2626
|
+
* @param {boolean} [redraw=true]
|
|
2627
|
+
* Whether to redraw the chart after the point is added. When adding
|
|
2628
|
+
* more than one point, it is highly recommended that the redraw
|
|
2629
|
+
* option be set to false, and instead {@link Chart#redraw} is
|
|
2630
|
+
* explicitly called after the adding of points is finished.
|
|
2631
|
+
* Otherwise, the chart will redraw after adding each point.
|
|
2632
|
+
*
|
|
2633
|
+
* @param {boolean} [shift=false]
|
|
2634
|
+
* If true, a point is shifted off the start of the series as one is
|
|
2635
|
+
* appended to the end.
|
|
2636
|
+
*
|
|
2637
|
+
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
2638
|
+
* Whether to apply animation, and optionally animation
|
|
2639
|
+
* configuration.
|
|
2640
|
+
*
|
|
2641
|
+
* @param {boolean} [withEvent=true]
|
|
2642
|
+
* Used internally, whether to fire the series `addPoint` event.
|
|
2643
|
+
*
|
|
2644
|
+
* @emits Highcharts.Series#event:addPoint
|
|
2645
|
+
*/
|
|
2646
|
+
Series.prototype.addPoint = function (options, redraw, shift, animation, withEvent) {
|
|
2647
|
+
var series = this, seriesOptions = series.options, data = series.data, chart = series.chart, xAxis = series.xAxis, names = xAxis && xAxis.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.xData;
|
|
2648
|
+
var isInTheMiddle, i;
|
|
2649
|
+
// Optional redraw, defaults to true
|
|
2650
|
+
redraw = pick(redraw, true);
|
|
2651
|
+
// Get options and push the point to xData, yData and series.options. In
|
|
2652
|
+
// series.generatePoints the Point instance will be created on demand
|
|
2653
|
+
// and pushed to the series.data array.
|
|
2654
|
+
var point = { series: series };
|
|
2655
|
+
series.pointClass.prototype.applyOptions.apply(point, [options]);
|
|
2656
|
+
var x = point.x;
|
|
2657
|
+
// Get the insertion point
|
|
2658
|
+
i = xData.length;
|
|
2659
|
+
if (series.requireSorting && x < xData[i - 1]) {
|
|
2660
|
+
isInTheMiddle = true;
|
|
2661
|
+
while (i && xData[i - 1] > x) {
|
|
2662
|
+
i--;
|
|
2663
|
+
}
|
|
2664
|
+
}
|
|
2665
|
+
// Insert undefined item
|
|
2666
|
+
series.updateParallelArrays(point, 'splice', i, 0, 0);
|
|
2667
|
+
// Update it
|
|
2668
|
+
series.updateParallelArrays(point, i);
|
|
2669
|
+
if (names && point.name) {
|
|
2670
|
+
names[x] = point.name;
|
|
2671
|
+
}
|
|
2672
|
+
dataOptions.splice(i, 0, options);
|
|
2673
|
+
if (isInTheMiddle) {
|
|
2674
|
+
series.data.splice(i, 0, null);
|
|
2675
|
+
series.processData();
|
|
2676
|
+
}
|
|
2677
|
+
// Generate points to be added to the legend (#1329)
|
|
2678
|
+
if (seriesOptions.legendType === 'point') {
|
|
2679
|
+
series.generatePoints();
|
|
2680
|
+
}
|
|
2681
|
+
// Shift the first point off the parallel arrays
|
|
2682
|
+
if (shift) {
|
|
2683
|
+
if (data[0] && data[0].remove) {
|
|
2684
|
+
data[0].remove(false);
|
|
2685
|
+
}
|
|
2686
|
+
else {
|
|
2687
|
+
data.shift();
|
|
2688
|
+
series.updateParallelArrays(point, 'shift');
|
|
2689
|
+
dataOptions.shift();
|
|
2690
|
+
}
|
|
2691
|
+
}
|
|
2692
|
+
// Fire event
|
|
2693
|
+
if (withEvent !== false) {
|
|
2694
|
+
fireEvent(series, 'addPoint', { point: point });
|
|
2695
|
+
}
|
|
2696
|
+
// redraw
|
|
2697
|
+
series.isDirty = true;
|
|
2698
|
+
series.isDirtyData = true;
|
|
2699
|
+
if (redraw) {
|
|
2700
|
+
chart.redraw(animation); // Animation is set anyway on redraw, #5665
|
|
2701
|
+
}
|
|
2702
|
+
};
|
|
2703
|
+
/**
|
|
2704
|
+
* Remove a point from the series. Unlike the
|
|
2705
|
+
* {@link Highcharts.Point#remove} method, this can also be done on a point
|
|
2706
|
+
* that is not instanciated because it is outside the view or subject to
|
|
2707
|
+
* Highcharts Stock data grouping.
|
|
2708
|
+
*
|
|
2709
|
+
* @sample highcharts/members/series-removepoint/
|
|
2710
|
+
* Remove cropped point
|
|
2711
|
+
*
|
|
2712
|
+
* @function Highcharts.Series#removePoint
|
|
2713
|
+
*
|
|
2714
|
+
* @param {number} i
|
|
2715
|
+
* The index of the point in the {@link Highcharts.Series.data|data}
|
|
2716
|
+
* array.
|
|
2717
|
+
*
|
|
2718
|
+
* @param {boolean} [redraw=true]
|
|
2719
|
+
* Whether to redraw the chart after the point is added. When
|
|
2720
|
+
* removing more than one point, it is highly recommended that the
|
|
2721
|
+
* `redraw` option be set to `false`, and instead {@link
|
|
2722
|
+
* Highcharts.Chart#redraw} is explicitly called after the adding of
|
|
2723
|
+
* points is finished.
|
|
2724
|
+
*
|
|
2725
|
+
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
2726
|
+
* Whether and optionally how the series should be animated.
|
|
2727
|
+
*
|
|
2728
|
+
* @emits Highcharts.Point#event:remove
|
|
2729
|
+
*/
|
|
2730
|
+
Series.prototype.removePoint = function (i, redraw, animation) {
|
|
2731
|
+
var series = this, data = series.data, point = data[i], points = series.points, chart = series.chart, remove = function () {
|
|
2732
|
+
if (points && points.length === data.length) { // #4935
|
|
2733
|
+
points.splice(i, 1);
|
|
2734
|
+
}
|
|
2735
|
+
data.splice(i, 1);
|
|
2736
|
+
series.options.data.splice(i, 1);
|
|
2737
|
+
series.updateParallelArrays(point || { series: series }, 'splice', i, 1);
|
|
2738
|
+
if (point) {
|
|
2739
|
+
point.destroy();
|
|
2740
|
+
}
|
|
2741
|
+
// redraw
|
|
2742
|
+
series.isDirty = true;
|
|
2743
|
+
series.isDirtyData = true;
|
|
2744
|
+
if (redraw) {
|
|
2745
|
+
chart.redraw();
|
|
2746
|
+
}
|
|
2747
|
+
};
|
|
2748
|
+
setAnimation(animation, chart);
|
|
2749
|
+
redraw = pick(redraw, true);
|
|
2750
|
+
// Fire the event with a default handler of removing the point
|
|
2751
|
+
if (point) {
|
|
2752
|
+
point.firePointEvent('remove', null, remove);
|
|
2753
|
+
}
|
|
2754
|
+
else {
|
|
2755
|
+
remove();
|
|
2756
|
+
}
|
|
2757
|
+
};
|
|
2758
|
+
/**
|
|
2759
|
+
* Remove a series and optionally redraw the chart.
|
|
2760
|
+
*
|
|
2761
|
+
* @sample highcharts/members/series-remove/
|
|
2762
|
+
* Remove first series from a button
|
|
2763
|
+
*
|
|
2764
|
+
* @function Highcharts.Series#remove
|
|
2765
|
+
*
|
|
2766
|
+
* @param {boolean} [redraw=true]
|
|
2767
|
+
* Whether to redraw the chart or wait for an explicit call to
|
|
2768
|
+
* {@link Highcharts.Chart#redraw}.
|
|
2769
|
+
*
|
|
2770
|
+
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
2771
|
+
* Whether to apply animation, and optionally animation
|
|
2772
|
+
* configuration.
|
|
2773
|
+
*
|
|
2774
|
+
* @param {boolean} [withEvent=true]
|
|
2775
|
+
* Used internally, whether to fire the series `remove` event.
|
|
2776
|
+
*
|
|
2777
|
+
* @emits Highcharts.Series#event:remove
|
|
2778
|
+
*/
|
|
2779
|
+
Series.prototype.remove = function (redraw, animation, withEvent, keepEvents) {
|
|
2780
|
+
var series = this, chart = series.chart;
|
|
2781
|
+
/**
|
|
2782
|
+
* @private
|
|
2783
|
+
*/
|
|
2784
|
+
function remove() {
|
|
2785
|
+
// Destroy elements
|
|
2786
|
+
series.destroy(keepEvents);
|
|
2787
|
+
// Redraw
|
|
2788
|
+
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
2789
|
+
chart.linkSeries();
|
|
2790
|
+
if (pick(redraw, true)) {
|
|
2791
|
+
chart.redraw(animation);
|
|
2792
|
+
}
|
|
2793
|
+
}
|
|
2794
|
+
// Fire the event with a default handler of removing the point
|
|
2795
|
+
if (withEvent !== false) {
|
|
2796
|
+
fireEvent(series, 'remove', null, remove);
|
|
2797
|
+
}
|
|
2798
|
+
else {
|
|
2799
|
+
remove();
|
|
2800
|
+
}
|
|
2801
|
+
};
|
|
2802
|
+
/**
|
|
2803
|
+
* Update the series with a new set of options. For a clean and precise
|
|
2804
|
+
* handling of new options, all methods and elements from the series are
|
|
2805
|
+
* removed, and it is initialized from scratch. Therefore, this method is
|
|
2806
|
+
* more performance expensive than some other utility methods like {@link
|
|
2807
|
+
* Series#setData} or {@link Series#setVisible}.
|
|
2808
|
+
*
|
|
2809
|
+
* Note that `Series.update` may mutate the passed `data` options.
|
|
2810
|
+
*
|
|
2811
|
+
* @sample highcharts/members/series-update/
|
|
2812
|
+
* Updating series options
|
|
2813
|
+
* @sample maps/members/series-update/
|
|
2814
|
+
* Update series options in Highmaps
|
|
2815
|
+
*
|
|
2816
|
+
* @function Highcharts.Series#update
|
|
2817
|
+
*
|
|
2818
|
+
* @param {Highcharts.SeriesOptionsType} options
|
|
2819
|
+
* New options that will be merged with the series' existing options.
|
|
2820
|
+
*
|
|
2821
|
+
* @param {boolean} [redraw=true]
|
|
2822
|
+
* Whether to redraw the chart after the series is altered. If doing
|
|
2823
|
+
* more operations on the chart, it is a good idea to set redraw to
|
|
2824
|
+
* false and call {@link Chart#redraw} after.
|
|
2825
|
+
*
|
|
2826
|
+
* @emits Highcharts.Series#event:update
|
|
2827
|
+
* @emits Highcharts.Series#event:afterUpdate
|
|
2828
|
+
*/
|
|
2829
|
+
Series.prototype.update = function (options, redraw) {
|
|
2830
|
+
options = cleanRecursively(options, this.userOptions);
|
|
2831
|
+
fireEvent(this, 'update', { options: options });
|
|
2832
|
+
var series = this, chart = series.chart,
|
|
2833
|
+
// must use user options when changing type because series.options
|
|
2834
|
+
// is merged in with type specific plotOptions
|
|
2835
|
+
oldOptions = series.userOptions, initialType = series.initialType || series.type, plotOptions = chart.options.plotOptions, initialSeriesProto = seriesTypes[initialType].prototype, groups = [
|
|
2836
|
+
'group',
|
|
2837
|
+
'markerGroup',
|
|
2838
|
+
'dataLabelsGroup',
|
|
2839
|
+
'transformGroup'
|
|
2840
|
+
],
|
|
2841
|
+
// Animation must be enabled when calling update before the initial
|
|
2842
|
+
// animation has first run. This happens when calling update
|
|
2843
|
+
// directly after chart initialization, or when applying responsive
|
|
2844
|
+
// rules (#6912).
|
|
2845
|
+
animation = series.finishedAnimating && { animation: false }, kinds = {};
|
|
2846
|
+
var seriesOptions, n, preserve = [
|
|
2847
|
+
'eventOptions',
|
|
2848
|
+
'navigatorSeries',
|
|
2849
|
+
'baseSeries'
|
|
2850
|
+
], newType = (options.type ||
|
|
2851
|
+
oldOptions.type ||
|
|
2852
|
+
chart.options.chart.type);
|
|
2853
|
+
var keepPoints = !(
|
|
2854
|
+
// Indicators, histograms etc recalculate the data. It should be
|
|
2855
|
+
// possible to omit this.
|
|
2856
|
+
this.hasDerivedData ||
|
|
2857
|
+
// New type requires new point classes
|
|
2858
|
+
(newType && newType !== this.type) ||
|
|
2859
|
+
// New options affecting how the data points are built
|
|
2860
|
+
typeof options.pointStart !== 'undefined' ||
|
|
2861
|
+
typeof options.pointInterval !== 'undefined' ||
|
|
2862
|
+
typeof options.relativeXValue !== 'undefined' ||
|
|
2863
|
+
// Changes to data grouping requires new points in new group
|
|
2864
|
+
series.hasOptionChanged('dataGrouping') ||
|
|
2865
|
+
series.hasOptionChanged('pointStart') ||
|
|
2866
|
+
series.hasOptionChanged('pointInterval') ||
|
|
2867
|
+
series.hasOptionChanged('pointIntervalUnit') ||
|
|
2868
|
+
series.hasOptionChanged('keys'));
|
|
2869
|
+
newType = newType || initialType;
|
|
2870
|
+
if (keepPoints) {
|
|
2871
|
+
preserve.push('data', 'isDirtyData', 'points', 'processedXData', 'processedYData', 'xIncrement', 'cropped', '_hasPointMarkers', '_hasPointLabels', 'clips', // #15420
|
|
2872
|
+
// Networkgraph (#14397)
|
|
2873
|
+
'nodes', 'layout',
|
|
2874
|
+
// Map specific, consider moving it to series-specific preserve-
|
|
2875
|
+
// properties (#10617)
|
|
2876
|
+
'mapMap', 'mapData', 'minY', 'maxY', 'minX', 'maxX');
|
|
2877
|
+
if (options.visible !== false) {
|
|
2878
|
+
preserve.push('area', 'graph');
|
|
2879
|
+
}
|
|
2880
|
+
series.parallelArrays.forEach(function (key) {
|
|
2881
|
+
preserve.push(key + 'Data');
|
|
2882
|
+
});
|
|
2883
|
+
if (options.data) {
|
|
2884
|
+
// setData uses dataSorting options so we need to update them
|
|
2885
|
+
// earlier
|
|
2886
|
+
if (options.dataSorting) {
|
|
2887
|
+
extend(series.options.dataSorting, options.dataSorting);
|
|
2888
|
+
}
|
|
2889
|
+
this.setData(options.data, false);
|
|
2890
|
+
}
|
|
2891
|
+
}
|
|
2892
|
+
// Do the merge, with some forced options
|
|
2893
|
+
options = merge(oldOptions, animation, {
|
|
2894
|
+
// When oldOptions.index is null it should't be cleared.
|
|
2895
|
+
// Otherwise navigator series will have wrong indexes (#10193).
|
|
2896
|
+
index: typeof oldOptions.index === 'undefined' ?
|
|
2897
|
+
series.index : oldOptions.index,
|
|
2898
|
+
pointStart: pick(
|
|
2899
|
+
// when updating from blank (#7933)
|
|
2900
|
+
(plotOptions &&
|
|
2901
|
+
plotOptions.series &&
|
|
2902
|
+
plotOptions.series.pointStart), oldOptions.pointStart,
|
|
2903
|
+
// when updating after addPoint
|
|
2904
|
+
series.xData[0])
|
|
2905
|
+
}, (!keepPoints && { data: series.options.data }), options);
|
|
2906
|
+
// Merge does not merge arrays, but replaces them. Since points were
|
|
2907
|
+
// updated, `series.options.data` has correct merged options, use it:
|
|
2908
|
+
if (keepPoints && options.data) {
|
|
2909
|
+
options.data = series.options.data;
|
|
2910
|
+
}
|
|
2911
|
+
// Make sure preserved properties are not destroyed (#3094)
|
|
2912
|
+
preserve = groups.concat(preserve);
|
|
2913
|
+
preserve.forEach(function (prop) {
|
|
2914
|
+
preserve[prop] = series[prop];
|
|
2915
|
+
delete series[prop];
|
|
2916
|
+
});
|
|
2917
|
+
var casting = false;
|
|
2918
|
+
if (seriesTypes[newType]) {
|
|
2919
|
+
casting = newType !== series.type;
|
|
2920
|
+
// Destroy the series and delete all properties, it will be
|
|
2921
|
+
// reinserted within the `init` call below
|
|
2922
|
+
series.remove(false, false, false, true);
|
|
2923
|
+
if (casting) {
|
|
2924
|
+
// Modern browsers including IE11
|
|
2925
|
+
// @todo slow, consider alternatives mentioned:
|
|
2926
|
+
// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
|
|
2927
|
+
if (Object.setPrototypeOf) {
|
|
2928
|
+
Object.setPrototypeOf(series, seriesTypes[newType].prototype);
|
|
2929
|
+
// Legacy (IE < 11)
|
|
2930
|
+
}
|
|
2931
|
+
else {
|
|
2932
|
+
var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') && series.hcEvents;
|
|
2933
|
+
for (n in initialSeriesProto) { // eslint-disable-line guard-for-in
|
|
2934
|
+
series[n] = void 0;
|
|
2935
|
+
}
|
|
2936
|
+
// Reinsert all methods and properties from the new type
|
|
2937
|
+
// prototype (#2270, #3719).
|
|
2938
|
+
extend(series, seriesTypes[newType].prototype);
|
|
2939
|
+
// The events are tied to the prototype chain, don't copy if
|
|
2940
|
+
// they're not the series' own
|
|
2941
|
+
if (ownEvents) {
|
|
2942
|
+
series.hcEvents = ownEvents;
|
|
2943
|
+
}
|
|
2944
|
+
else {
|
|
2945
|
+
delete series.hcEvents;
|
|
2946
|
+
}
|
|
2947
|
+
}
|
|
2948
|
+
}
|
|
2949
|
+
}
|
|
2950
|
+
else {
|
|
2951
|
+
error(17, true, chart, { missingModuleFor: newType });
|
|
2952
|
+
}
|
|
2953
|
+
// Re-register groups (#3094) and other preserved properties
|
|
2954
|
+
preserve.forEach(function (prop) {
|
|
2955
|
+
series[prop] = preserve[prop];
|
|
2956
|
+
});
|
|
2957
|
+
series.init(chart, options);
|
|
2958
|
+
// Remove particular elements of the points. Check `series.options`
|
|
2959
|
+
// because we need to consider the options being set on plotOptions as
|
|
2960
|
+
// well.
|
|
2961
|
+
if (keepPoints && this.points) {
|
|
2962
|
+
seriesOptions = series.options;
|
|
2963
|
+
// What kind of elements to destroy
|
|
2964
|
+
if (seriesOptions.visible === false) {
|
|
2965
|
+
kinds.graphic = 1;
|
|
2966
|
+
kinds.dataLabel = 1;
|
|
2967
|
+
}
|
|
2968
|
+
else if (!series._hasPointLabels) {
|
|
2969
|
+
var marker = seriesOptions.marker, dataLabels = seriesOptions.dataLabels;
|
|
2970
|
+
if (marker && (marker.enabled === false ||
|
|
2971
|
+
(oldOptions.marker && oldOptions.marker.symbol) !==
|
|
2972
|
+
marker.symbol // #10870, #15946
|
|
2973
|
+
)) {
|
|
2974
|
+
kinds.graphic = 1;
|
|
2975
|
+
}
|
|
2976
|
+
if (dataLabels &&
|
|
2977
|
+
dataLabels.enabled === false) {
|
|
2978
|
+
kinds.dataLabel = 1;
|
|
2979
|
+
}
|
|
2980
|
+
}
|
|
2981
|
+
this.points.forEach(function (point) {
|
|
2982
|
+
if (point && point.series) {
|
|
2983
|
+
point.resolveColor();
|
|
2984
|
+
// Destroy elements in order to recreate based on updated
|
|
2985
|
+
// series options.
|
|
2986
|
+
if (Object.keys(kinds).length) {
|
|
2987
|
+
point.destroyElements(kinds);
|
|
2988
|
+
}
|
|
2989
|
+
if (seriesOptions.showInLegend === false &&
|
|
2990
|
+
point.legendItem) {
|
|
2991
|
+
chart.legend.destroyItem(point);
|
|
2992
|
+
}
|
|
2993
|
+
}
|
|
2994
|
+
}, this);
|
|
2995
|
+
}
|
|
2996
|
+
series.initialType = initialType;
|
|
2997
|
+
chart.linkSeries(); // Links are lost in series.remove (#3028)
|
|
2998
|
+
// #15383: Fire updatedData if the type has changed to keep linked
|
|
2999
|
+
// series such as indicators updated
|
|
3000
|
+
if (casting && series.linkedSeries.length) {
|
|
3001
|
+
series.isDirtyData = true;
|
|
3002
|
+
}
|
|
3003
|
+
fireEvent(this, 'afterUpdate');
|
|
3004
|
+
if (pick(redraw, true)) {
|
|
3005
|
+
chart.redraw(keepPoints ? void 0 : false);
|
|
3006
|
+
}
|
|
3007
|
+
};
|
|
3008
|
+
/**
|
|
3009
|
+
* Used from within series.update
|
|
3010
|
+
* @private
|
|
3011
|
+
*/
|
|
3012
|
+
Series.prototype.setName = function (name) {
|
|
3013
|
+
this.name = this.options.name = this.userOptions.name = name;
|
|
3014
|
+
this.chart.isDirtyLegend = true;
|
|
3015
|
+
};
|
|
3016
|
+
/**
|
|
3017
|
+
* Check if the option has changed.
|
|
3018
|
+
* @private
|
|
3019
|
+
*/
|
|
3020
|
+
Series.prototype.hasOptionChanged = function (optionName) {
|
|
3021
|
+
var chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName];
|
|
3022
|
+
if (oldOption) {
|
|
3023
|
+
return option !== oldOption;
|
|
3024
|
+
}
|
|
3025
|
+
return option !==
|
|
3026
|
+
pick(plotOptions &&
|
|
3027
|
+
plotOptions[this.type] &&
|
|
3028
|
+
plotOptions[this.type][optionName], plotOptions &&
|
|
3029
|
+
plotOptions.series &&
|
|
3030
|
+
plotOptions.series[optionName], option);
|
|
3031
|
+
};
|
|
3032
|
+
/**
|
|
3033
|
+
* Runs on mouse over the series graphical items.
|
|
3034
|
+
*
|
|
3035
|
+
* @function Highcharts.Series#onMouseOver
|
|
3036
|
+
* @emits Highcharts.Series#event:mouseOver
|
|
3037
|
+
*/
|
|
3038
|
+
Series.prototype.onMouseOver = function () {
|
|
3039
|
+
var series = this, chart = series.chart, hoverSeries = chart.hoverSeries, pointer = chart.pointer;
|
|
3040
|
+
pointer.setHoverChartIndex();
|
|
3041
|
+
// set normal state to previous series
|
|
3042
|
+
if (hoverSeries && hoverSeries !== series) {
|
|
3043
|
+
hoverSeries.onMouseOut();
|
|
3044
|
+
}
|
|
3045
|
+
// trigger the event, but to save processing time,
|
|
3046
|
+
// only if defined
|
|
3047
|
+
if (series.options.events.mouseOver) {
|
|
3048
|
+
fireEvent(series, 'mouseOver');
|
|
3049
|
+
}
|
|
3050
|
+
// hover this
|
|
3051
|
+
series.setState('hover');
|
|
3052
|
+
/**
|
|
3053
|
+
* Contains the original hovered series.
|
|
3054
|
+
*
|
|
3055
|
+
* @name Highcharts.Chart#hoverSeries
|
|
3056
|
+
* @type {Highcharts.Series|null}
|
|
3057
|
+
*/
|
|
3058
|
+
chart.hoverSeries = series;
|
|
3059
|
+
};
|
|
3060
|
+
/**
|
|
3061
|
+
* Runs on mouse out of the series graphical items.
|
|
3062
|
+
*
|
|
3063
|
+
* @function Highcharts.Series#onMouseOut
|
|
3064
|
+
*
|
|
3065
|
+
* @emits Highcharts.Series#event:mouseOut
|
|
3066
|
+
*/
|
|
3067
|
+
Series.prototype.onMouseOut = function () {
|
|
3068
|
+
// trigger the event only if listeners exist
|
|
3069
|
+
var series = this, options = series.options, chart = series.chart, tooltip = chart.tooltip, hoverPoint = chart.hoverPoint;
|
|
3070
|
+
// #182, set to null before the mouseOut event fires
|
|
3071
|
+
chart.hoverSeries = null;
|
|
3072
|
+
// trigger mouse out on the point, which must be in this series
|
|
3073
|
+
if (hoverPoint) {
|
|
3074
|
+
hoverPoint.onMouseOut();
|
|
3075
|
+
}
|
|
3076
|
+
// fire the mouse out event
|
|
3077
|
+
if (series && options.events.mouseOut) {
|
|
3078
|
+
fireEvent(series, 'mouseOut');
|
|
3079
|
+
}
|
|
3080
|
+
// hide the tooltip
|
|
3081
|
+
if (tooltip &&
|
|
3082
|
+
!series.stickyTracking &&
|
|
3083
|
+
(!tooltip.shared || series.noSharedTooltip)) {
|
|
3084
|
+
tooltip.hide();
|
|
3085
|
+
}
|
|
3086
|
+
// Reset all inactive states
|
|
3087
|
+
chart.series.forEach(function (s) {
|
|
3088
|
+
s.setState('', true);
|
|
3089
|
+
});
|
|
3090
|
+
};
|
|
3091
|
+
/**
|
|
3092
|
+
* Set the state of the series. Called internally on mouse interaction
|
|
3093
|
+
* operations, but it can also be called directly to visually
|
|
3094
|
+
* highlight a series.
|
|
3095
|
+
*
|
|
3096
|
+
* @function Highcharts.Series#setState
|
|
3097
|
+
*
|
|
3098
|
+
* @param {Highcharts.SeriesStateValue|""} [state]
|
|
3099
|
+
* The new state, can be either `'hover'`, `'inactive'`, `'select'`,
|
|
3100
|
+
* or `''` (an empty string), `'normal'` or `undefined` to set to
|
|
3101
|
+
* normal state.
|
|
3102
|
+
* @param {boolean} [inherit]
|
|
3103
|
+
* Determines if state should be inherited by points too.
|
|
3104
|
+
*/
|
|
3105
|
+
Series.prototype.setState = function (state, inherit) {
|
|
3106
|
+
var series = this, options = series.options, graph = series.graph, inactiveOtherPoints = options.inactiveOtherPoints, stateOptions = options.states,
|
|
3107
|
+
// By default a quick animation to hover/inactive,
|
|
3108
|
+
// slower to un-hover
|
|
3109
|
+
stateAnimation = pick((stateOptions[state || 'normal'] &&
|
|
3110
|
+
stateOptions[state || 'normal'].animation), series.chart.options.chart.animation);
|
|
3111
|
+
var attribs, lineWidth = options.lineWidth, i = 0, opacity = options.opacity;
|
|
3112
|
+
state = state || '';
|
|
3113
|
+
if (series.state !== state) {
|
|
3114
|
+
// Toggle class names
|
|
3115
|
+
[
|
|
3116
|
+
series.group,
|
|
3117
|
+
series.markerGroup,
|
|
3118
|
+
series.dataLabelsGroup
|
|
3119
|
+
].forEach(function (group) {
|
|
3120
|
+
if (group) {
|
|
3121
|
+
// Old state
|
|
3122
|
+
if (series.state) {
|
|
3123
|
+
group.removeClass('highcharts-series-' + series.state);
|
|
3124
|
+
}
|
|
3125
|
+
// New state
|
|
3126
|
+
if (state) {
|
|
3127
|
+
group.addClass('highcharts-series-' + state);
|
|
3128
|
+
}
|
|
3129
|
+
}
|
|
3130
|
+
});
|
|
3131
|
+
series.state = state;
|
|
3132
|
+
if (!series.chart.styledMode) {
|
|
3133
|
+
if (stateOptions[state] &&
|
|
3134
|
+
stateOptions[state].enabled === false) {
|
|
3135
|
+
return;
|
|
3136
|
+
}
|
|
3137
|
+
if (state) {
|
|
3138
|
+
lineWidth = (stateOptions[state].lineWidth ||
|
|
3139
|
+
lineWidth + (stateOptions[state].lineWidthPlus || 0)); // #4035
|
|
3140
|
+
opacity = pick(stateOptions[state].opacity, opacity);
|
|
3141
|
+
}
|
|
3142
|
+
if (graph && !graph.dashstyle) {
|
|
3143
|
+
attribs = {
|
|
3144
|
+
'stroke-width': lineWidth
|
|
3145
|
+
};
|
|
3146
|
+
// Animate the graph stroke-width.
|
|
3147
|
+
graph.animate(attribs, stateAnimation);
|
|
3148
|
+
while (series['zone-graph-' + i]) {
|
|
3149
|
+
series['zone-graph-' + i].animate(attribs, stateAnimation);
|
|
3150
|
+
i = i + 1;
|
|
3151
|
+
}
|
|
3152
|
+
}
|
|
3153
|
+
// For some types (pie, networkgraph, sankey) opacity is
|
|
3154
|
+
// resolved on a point level
|
|
3155
|
+
if (!inactiveOtherPoints) {
|
|
3156
|
+
[
|
|
3157
|
+
series.group,
|
|
3158
|
+
series.markerGroup,
|
|
3159
|
+
series.dataLabelsGroup,
|
|
3160
|
+
series.labelBySeries
|
|
3161
|
+
].forEach(function (group) {
|
|
3162
|
+
if (group) {
|
|
3163
|
+
group.animate({
|
|
3164
|
+
opacity: opacity
|
|
3165
|
+
}, stateAnimation);
|
|
3166
|
+
}
|
|
3167
|
+
});
|
|
3168
|
+
}
|
|
3169
|
+
}
|
|
3170
|
+
}
|
|
3171
|
+
// Don't loop over points on a series that doesn't apply inactive state
|
|
3172
|
+
// to siblings markers (e.g. line, column)
|
|
3173
|
+
if (inherit && inactiveOtherPoints && series.points) {
|
|
3174
|
+
series.setAllPointsToState(state || void 0);
|
|
3175
|
+
}
|
|
3176
|
+
};
|
|
3177
|
+
/**
|
|
3178
|
+
* Set the state for all points in the series.
|
|
3179
|
+
*
|
|
3180
|
+
* @function Highcharts.Series#setAllPointsToState
|
|
3181
|
+
*
|
|
3182
|
+
* @private
|
|
3183
|
+
*
|
|
3184
|
+
* @param {string} [state]
|
|
3185
|
+
* Can be either `hover` or undefined to set to normal state.
|
|
3186
|
+
*/
|
|
3187
|
+
Series.prototype.setAllPointsToState = function (state) {
|
|
3188
|
+
this.points.forEach(function (point) {
|
|
3189
|
+
if (point.setState) {
|
|
3190
|
+
point.setState(state);
|
|
3191
|
+
}
|
|
3192
|
+
});
|
|
3193
|
+
};
|
|
3194
|
+
/**
|
|
3195
|
+
* Show or hide the series.
|
|
3196
|
+
*
|
|
3197
|
+
* @function Highcharts.Series#setVisible
|
|
3198
|
+
*
|
|
3199
|
+
* @param {boolean} [visible]
|
|
3200
|
+
* True to show the series, false to hide. If undefined, the visibility is
|
|
3201
|
+
* toggled.
|
|
3202
|
+
*
|
|
3203
|
+
* @param {boolean} [redraw=true]
|
|
3204
|
+
* Whether to redraw the chart after the series is altered. If doing more
|
|
3205
|
+
* operations on the chart, it is a good idea to set redraw to false and
|
|
3206
|
+
* call {@link Chart#redraw|chart.redraw()} after.
|
|
3207
|
+
*
|
|
3208
|
+
* @emits Highcharts.Series#event:hide
|
|
3209
|
+
* @emits Highcharts.Series#event:show
|
|
3210
|
+
*/
|
|
3211
|
+
Series.prototype.setVisible = function (vis, redraw) {
|
|
3212
|
+
var series = this, chart = series.chart, legendItem = series.legendItem, ignoreHiddenSeries = chart.options.chart.ignoreHiddenSeries, oldVisibility = series.visible;
|
|
3213
|
+
// if called without an argument, toggle visibility
|
|
3214
|
+
series.visible =
|
|
3215
|
+
vis =
|
|
3216
|
+
series.options.visible =
|
|
3217
|
+
series.userOptions.visible =
|
|
3218
|
+
typeof vis === 'undefined' ? !oldVisibility : vis; // #5618
|
|
3219
|
+
var showOrHide = vis ? 'show' : 'hide';
|
|
3220
|
+
// show or hide elements
|
|
3221
|
+
[
|
|
3222
|
+
'group',
|
|
3223
|
+
'dataLabelsGroup',
|
|
3224
|
+
'markerGroup',
|
|
3225
|
+
'tracker',
|
|
3226
|
+
'tt'
|
|
3227
|
+
].forEach(function (key) {
|
|
3228
|
+
if (series[key]) {
|
|
3229
|
+
series[key][showOrHide]();
|
|
3230
|
+
}
|
|
3231
|
+
});
|
|
3232
|
+
// hide tooltip (#1361)
|
|
3233
|
+
if (chart.hoverSeries === series ||
|
|
3234
|
+
(chart.hoverPoint && chart.hoverPoint.series) === series) {
|
|
3235
|
+
series.onMouseOut();
|
|
3236
|
+
}
|
|
3237
|
+
if (legendItem) {
|
|
3238
|
+
chart.legend.colorizeItem(series, vis);
|
|
3239
|
+
}
|
|
3240
|
+
// rescale or adapt to resized chart
|
|
3241
|
+
series.isDirty = true;
|
|
3242
|
+
// in a stack, all other series are affected
|
|
3243
|
+
if (series.options.stacking) {
|
|
3244
|
+
chart.series.forEach(function (otherSeries) {
|
|
3245
|
+
if (otherSeries.options.stacking && otherSeries.visible) {
|
|
3246
|
+
otherSeries.isDirty = true;
|
|
3247
|
+
}
|
|
3248
|
+
});
|
|
3249
|
+
}
|
|
3250
|
+
// show or hide linked series
|
|
3251
|
+
series.linkedSeries.forEach(function (otherSeries) {
|
|
3252
|
+
otherSeries.setVisible(vis, false);
|
|
3253
|
+
});
|
|
3254
|
+
if (ignoreHiddenSeries) {
|
|
3255
|
+
chart.isDirtyBox = true;
|
|
3256
|
+
}
|
|
3257
|
+
fireEvent(series, showOrHide);
|
|
3258
|
+
if (redraw !== false) {
|
|
3259
|
+
chart.redraw();
|
|
3260
|
+
}
|
|
3261
|
+
};
|
|
3262
|
+
/**
|
|
3263
|
+
* Show the series if hidden.
|
|
3264
|
+
*
|
|
3265
|
+
* @sample highcharts/members/series-hide/
|
|
3266
|
+
* Toggle visibility from a button
|
|
3267
|
+
*
|
|
3268
|
+
* @function Highcharts.Series#show
|
|
3269
|
+
* @emits Highcharts.Series#event:show
|
|
3270
|
+
*/
|
|
3271
|
+
Series.prototype.show = function () {
|
|
3272
|
+
this.setVisible(true);
|
|
3273
|
+
};
|
|
3274
|
+
/**
|
|
3275
|
+
* Hide the series if visible. If the
|
|
3276
|
+
* [chart.ignoreHiddenSeries](https://api.highcharts.com/highcharts/chart.ignoreHiddenSeries)
|
|
3277
|
+
* option is true, the chart is redrawn without this series.
|
|
3278
|
+
*
|
|
3279
|
+
* @sample highcharts/members/series-hide/
|
|
3280
|
+
* Toggle visibility from a button
|
|
3281
|
+
*
|
|
3282
|
+
* @function Highcharts.Series#hide
|
|
3283
|
+
* @emits Highcharts.Series#event:hide
|
|
3284
|
+
*/
|
|
3285
|
+
Series.prototype.hide = function () {
|
|
3286
|
+
this.setVisible(false);
|
|
3287
|
+
};
|
|
3288
|
+
/**
|
|
3289
|
+
* Select or unselect the series. This means its
|
|
3290
|
+
* {@link Highcharts.Series.selected|selected}
|
|
3291
|
+
* property is set, the checkbox in the legend is toggled and when selected,
|
|
3292
|
+
* the series is returned by the {@link Highcharts.Chart#getSelectedSeries}
|
|
3293
|
+
* function.
|
|
3294
|
+
*
|
|
3295
|
+
* @sample highcharts/members/series-select/
|
|
3296
|
+
* Select a series from a button
|
|
3297
|
+
*
|
|
3298
|
+
* @function Highcharts.Series#select
|
|
3299
|
+
*
|
|
3300
|
+
* @param {boolean} [selected]
|
|
3301
|
+
* True to select the series, false to unselect. If undefined, the selection
|
|
3302
|
+
* state is toggled.
|
|
3303
|
+
*
|
|
3304
|
+
* @emits Highcharts.Series#event:select
|
|
3305
|
+
* @emits Highcharts.Series#event:unselect
|
|
3306
|
+
*/
|
|
3307
|
+
Series.prototype.select = function (selected) {
|
|
3308
|
+
var series = this;
|
|
3309
|
+
series.selected =
|
|
3310
|
+
selected =
|
|
3311
|
+
this.options.selected = (typeof selected === 'undefined' ?
|
|
3312
|
+
!series.selected :
|
|
3313
|
+
selected);
|
|
3314
|
+
if (series.checkbox) {
|
|
3315
|
+
series.checkbox.checked = selected;
|
|
3316
|
+
}
|
|
3317
|
+
fireEvent(series, selected ? 'select' : 'unselect');
|
|
3318
|
+
};
|
|
3319
|
+
/**
|
|
3320
|
+
* Checks if a tooltip should be shown for a given point.
|
|
3321
|
+
*
|
|
3322
|
+
* @private
|
|
3323
|
+
*/
|
|
3324
|
+
Series.prototype.shouldShowTooltip = function (plotX, plotY, options) {
|
|
3325
|
+
if (options === void 0) { options = {}; }
|
|
3326
|
+
options.series = this;
|
|
3327
|
+
options.visiblePlotOnly = true;
|
|
3328
|
+
return this.chart.isInsidePlot(plotX, plotY, options);
|
|
3329
|
+
};
|
|
3330
|
+
Series.defaultOptions = SeriesDefaults;
|
|
3331
|
+
return Series;
|
|
3332
|
+
}());
|
|
3333
|
+
extend(Series.prototype, {
|
|
3334
|
+
axisTypes: ['xAxis', 'yAxis'],
|
|
3335
|
+
coll: 'series',
|
|
3336
|
+
colorCounter: 0,
|
|
3337
|
+
cropShoulder: 1,
|
|
3338
|
+
directTouch: false,
|
|
3339
|
+
drawLegendSymbol: LegendSymbol.drawLineMarker,
|
|
3340
|
+
isCartesian: true,
|
|
3341
|
+
kdAxisArray: ['clientX', 'plotY'],
|
|
3342
|
+
// each point's x and y values are stored in this.xData and this.yData:
|
|
3343
|
+
parallelArrays: ['x', 'y'],
|
|
3344
|
+
pointClass: Point,
|
|
3345
|
+
requireSorting: true,
|
|
3346
|
+
// requires the data to be sorted:
|
|
3347
|
+
sorted: true
|
|
3348
|
+
});
|
|
3349
|
+
/* *
|
|
3350
|
+
*
|
|
3351
|
+
* Registry
|
|
3352
|
+
*
|
|
3353
|
+
* */
|
|
3354
|
+
SeriesRegistry.series = Series;
|
|
3355
|
+
/* *
|
|
3356
|
+
*
|
|
3357
|
+
* Default Export
|
|
3358
|
+
*
|
|
3359
|
+
* */
|
|
3360
|
+
export default Series;
|
|
3361
|
+
/* *
|
|
3362
|
+
*
|
|
3363
|
+
* API Declarations
|
|
3364
|
+
*
|
|
3365
|
+
* */
|
|
3366
|
+
/**
|
|
3367
|
+
* This is a placeholder type of the possible series options for
|
|
3368
|
+
* [Highcharts](../highcharts/series), [Highcharts Stock](../highstock/series),
|
|
3369
|
+
* [Highmaps](../highmaps/series), and [Gantt](../gantt/series).
|
|
3370
|
+
*
|
|
3371
|
+
* In TypeScript is this dynamically generated to reference all possible types
|
|
3372
|
+
* of series options.
|
|
3373
|
+
*
|
|
3374
|
+
* @ignore-declaration
|
|
3375
|
+
* @typedef {Highcharts.SeriesOptions|Highcharts.Dictionary<*>} Highcharts.SeriesOptionsType
|
|
3376
|
+
*/
|
|
3377
|
+
/**
|
|
3378
|
+
* Options for `dataSorting`.
|
|
3379
|
+
*
|
|
3380
|
+
* @interface Highcharts.DataSortingOptionsObject
|
|
3381
|
+
* @since 8.0.0
|
|
3382
|
+
*/ /**
|
|
3383
|
+
* Enable or disable data sorting for the series.
|
|
3384
|
+
* @name Highcharts.DataSortingOptionsObject#enabled
|
|
3385
|
+
* @type {boolean|undefined}
|
|
3386
|
+
*/ /**
|
|
3387
|
+
* Whether to allow matching points by name in an update.
|
|
3388
|
+
* @name Highcharts.DataSortingOptionsObject#matchByName
|
|
3389
|
+
* @type {boolean|undefined}
|
|
3390
|
+
*/ /**
|
|
3391
|
+
* Determines what data value should be used to sort by.
|
|
3392
|
+
* @name Highcharts.DataSortingOptionsObject#sortKey
|
|
3393
|
+
* @type {string|undefined}
|
|
3394
|
+
*/
|
|
3395
|
+
/**
|
|
3396
|
+
* Function callback when a series has been animated.
|
|
3397
|
+
*
|
|
3398
|
+
* @callback Highcharts.SeriesAfterAnimateCallbackFunction
|
|
3399
|
+
*
|
|
3400
|
+
* @param {Highcharts.Series} this
|
|
3401
|
+
* The series where the event occured.
|
|
3402
|
+
*
|
|
3403
|
+
* @param {Highcharts.SeriesAfterAnimateEventObject} event
|
|
3404
|
+
* Event arguments.
|
|
3405
|
+
*/
|
|
3406
|
+
/**
|
|
3407
|
+
* Event information regarding completed animation of a series.
|
|
3408
|
+
*
|
|
3409
|
+
* @interface Highcharts.SeriesAfterAnimateEventObject
|
|
3410
|
+
*/ /**
|
|
3411
|
+
* Animated series.
|
|
3412
|
+
* @name Highcharts.SeriesAfterAnimateEventObject#target
|
|
3413
|
+
* @type {Highcharts.Series}
|
|
3414
|
+
*/ /**
|
|
3415
|
+
* Event type.
|
|
3416
|
+
* @name Highcharts.SeriesAfterAnimateEventObject#type
|
|
3417
|
+
* @type {"afterAnimate"}
|
|
3418
|
+
*/
|
|
3419
|
+
/**
|
|
3420
|
+
* Function callback when the checkbox next to the series' name in the legend is
|
|
3421
|
+
* clicked.
|
|
3422
|
+
*
|
|
3423
|
+
* @callback Highcharts.SeriesCheckboxClickCallbackFunction
|
|
3424
|
+
*
|
|
3425
|
+
* @param {Highcharts.Series} this
|
|
3426
|
+
* The series where the event occured.
|
|
3427
|
+
*
|
|
3428
|
+
* @param {Highcharts.SeriesCheckboxClickEventObject} event
|
|
3429
|
+
* Event arguments.
|
|
3430
|
+
*/
|
|
3431
|
+
/**
|
|
3432
|
+
* Event information regarding check of a series box.
|
|
3433
|
+
*
|
|
3434
|
+
* @interface Highcharts.SeriesCheckboxClickEventObject
|
|
3435
|
+
*/ /**
|
|
3436
|
+
* Whether the box has been checked.
|
|
3437
|
+
* @name Highcharts.SeriesCheckboxClickEventObject#checked
|
|
3438
|
+
* @type {boolean}
|
|
3439
|
+
*/ /**
|
|
3440
|
+
* Related series.
|
|
3441
|
+
* @name Highcharts.SeriesCheckboxClickEventObject#item
|
|
3442
|
+
* @type {Highcharts.Series}
|
|
3443
|
+
*/ /**
|
|
3444
|
+
* Related series.
|
|
3445
|
+
* @name Highcharts.SeriesCheckboxClickEventObject#target
|
|
3446
|
+
* @type {Highcharts.Series}
|
|
3447
|
+
*/ /**
|
|
3448
|
+
* Event type.
|
|
3449
|
+
* @name Highcharts.SeriesCheckboxClickEventObject#type
|
|
3450
|
+
* @type {"checkboxClick"}
|
|
3451
|
+
*/
|
|
3452
|
+
/**
|
|
3453
|
+
* Function callback when a series is clicked. Return false to cancel toogle
|
|
3454
|
+
* actions.
|
|
3455
|
+
*
|
|
3456
|
+
* @callback Highcharts.SeriesClickCallbackFunction
|
|
3457
|
+
*
|
|
3458
|
+
* @param {Highcharts.Series} this
|
|
3459
|
+
* The series where the event occured.
|
|
3460
|
+
*
|
|
3461
|
+
* @param {Highcharts.SeriesClickEventObject} event
|
|
3462
|
+
* Event arguments.
|
|
3463
|
+
*/
|
|
3464
|
+
/**
|
|
3465
|
+
* Common information for a click event on a series.
|
|
3466
|
+
*
|
|
3467
|
+
* @interface Highcharts.SeriesClickEventObject
|
|
3468
|
+
* @extends global.Event
|
|
3469
|
+
*/ /**
|
|
3470
|
+
* Nearest point on the graph.
|
|
3471
|
+
* @name Highcharts.SeriesClickEventObject#point
|
|
3472
|
+
* @type {Highcharts.Point}
|
|
3473
|
+
*/
|
|
3474
|
+
/**
|
|
3475
|
+
* Gets fired when the series is hidden after chart generation time, either by
|
|
3476
|
+
* clicking the legend item or by calling `.hide()`.
|
|
3477
|
+
*
|
|
3478
|
+
* @callback Highcharts.SeriesHideCallbackFunction
|
|
3479
|
+
*
|
|
3480
|
+
* @param {Highcharts.Series} this
|
|
3481
|
+
* The series where the event occured.
|
|
3482
|
+
*
|
|
3483
|
+
* @param {global.Event} event
|
|
3484
|
+
* The event that occured.
|
|
3485
|
+
*/
|
|
3486
|
+
/**
|
|
3487
|
+
* The SVG value used for the `stroke-linecap` and `stroke-linejoin` of a line
|
|
3488
|
+
* graph.
|
|
3489
|
+
*
|
|
3490
|
+
* @typedef {"butt"|"round"|"square"|string} Highcharts.SeriesLinecapValue
|
|
3491
|
+
*/
|
|
3492
|
+
/**
|
|
3493
|
+
* Gets fired when the legend item belonging to the series is clicked. The
|
|
3494
|
+
* default action is to toggle the visibility of the series. This can be
|
|
3495
|
+
* prevented by returning `false` or calling `event.preventDefault()`.
|
|
3496
|
+
*
|
|
3497
|
+
* @callback Highcharts.SeriesLegendItemClickCallbackFunction
|
|
3498
|
+
*
|
|
3499
|
+
* @param {Highcharts.Series} this
|
|
3500
|
+
* The series where the event occured.
|
|
3501
|
+
*
|
|
3502
|
+
* @param {Highcharts.SeriesLegendItemClickEventObject} event
|
|
3503
|
+
* The event that occured.
|
|
3504
|
+
*/
|
|
3505
|
+
/**
|
|
3506
|
+
* Information about the event.
|
|
3507
|
+
*
|
|
3508
|
+
* @interface Highcharts.SeriesLegendItemClickEventObject
|
|
3509
|
+
*/ /**
|
|
3510
|
+
* Related browser event.
|
|
3511
|
+
* @name Highcharts.SeriesLegendItemClickEventObject#browserEvent
|
|
3512
|
+
* @type {global.PointerEvent}
|
|
3513
|
+
*/ /**
|
|
3514
|
+
* Prevent the default action of toggle the visibility of the series.
|
|
3515
|
+
* @name Highcharts.SeriesLegendItemClickEventObject#preventDefault
|
|
3516
|
+
* @type {Function}
|
|
3517
|
+
*/ /**
|
|
3518
|
+
* Related series.
|
|
3519
|
+
* @name Highcharts.SeriesCheckboxClickEventObject#target
|
|
3520
|
+
* @type {Highcharts.Series}
|
|
3521
|
+
*/ /**
|
|
3522
|
+
* Event type.
|
|
3523
|
+
* @name Highcharts.SeriesCheckboxClickEventObject#type
|
|
3524
|
+
* @type {"checkboxClick"}
|
|
3525
|
+
*/
|
|
3526
|
+
/**
|
|
3527
|
+
* Gets fired when the mouse leaves the graph.
|
|
3528
|
+
*
|
|
3529
|
+
* @callback Highcharts.SeriesMouseOutCallbackFunction
|
|
3530
|
+
*
|
|
3531
|
+
* @param {Highcharts.Series} this
|
|
3532
|
+
* Series where the event occured.
|
|
3533
|
+
*
|
|
3534
|
+
* @param {global.PointerEvent} event
|
|
3535
|
+
* Event that occured.
|
|
3536
|
+
*/
|
|
3537
|
+
/**
|
|
3538
|
+
* Gets fired when the mouse enters the graph.
|
|
3539
|
+
*
|
|
3540
|
+
* @callback Highcharts.SeriesMouseOverCallbackFunction
|
|
3541
|
+
*
|
|
3542
|
+
* @param {Highcharts.Series} this
|
|
3543
|
+
* Series where the event occured.
|
|
3544
|
+
*
|
|
3545
|
+
* @param {global.PointerEvent} event
|
|
3546
|
+
* Event that occured.
|
|
3547
|
+
*/
|
|
3548
|
+
/**
|
|
3549
|
+
* Translation and scale for the plot area of a series.
|
|
3550
|
+
*
|
|
3551
|
+
* @interface Highcharts.SeriesPlotBoxObject
|
|
3552
|
+
*/ /**
|
|
3553
|
+
* @name Highcharts.SeriesPlotBoxObject#scaleX
|
|
3554
|
+
* @type {number}
|
|
3555
|
+
*/ /**
|
|
3556
|
+
* @name Highcharts.SeriesPlotBoxObject#scaleY
|
|
3557
|
+
* @type {number}
|
|
3558
|
+
*/ /**
|
|
3559
|
+
* @name Highcharts.SeriesPlotBoxObject#translateX
|
|
3560
|
+
* @type {number}
|
|
3561
|
+
*/ /**
|
|
3562
|
+
* @name Highcharts.SeriesPlotBoxObject#translateY
|
|
3563
|
+
* @type {number}
|
|
3564
|
+
*/
|
|
3565
|
+
/**
|
|
3566
|
+
* Gets fired when the series is shown after chart generation time, either by
|
|
3567
|
+
* clicking the legend item or by calling `.show()`.
|
|
3568
|
+
*
|
|
3569
|
+
* @callback Highcharts.SeriesShowCallbackFunction
|
|
3570
|
+
*
|
|
3571
|
+
* @param {Highcharts.Series} this
|
|
3572
|
+
* Series where the event occured.
|
|
3573
|
+
*
|
|
3574
|
+
* @param {global.Event} event
|
|
3575
|
+
* Event that occured.
|
|
3576
|
+
*/
|
|
3577
|
+
/**
|
|
3578
|
+
* Possible key values for the series state options.
|
|
3579
|
+
*
|
|
3580
|
+
* @typedef {"hover"|"inactive"|"normal"|"select"} Highcharts.SeriesStateValue
|
|
3581
|
+
*/
|
|
3582
|
+
''; // detach doclets above
|
|
3583
|
+
/* *
|
|
3584
|
+
*
|
|
3585
|
+
* API Options
|
|
3586
|
+
*
|
|
3587
|
+
* */
|
|
3588
|
+
/**
|
|
3589
|
+
* Series options for specific data and the data itself. In TypeScript you
|
|
3590
|
+
* have to cast the series options to specific series types, to get all
|
|
3591
|
+
* possible options for a series.
|
|
3592
|
+
*
|
|
3593
|
+
* @example
|
|
3594
|
+
* // TypeScript example
|
|
3595
|
+
* Highcharts.chart('container', {
|
|
3596
|
+
* series: [{
|
|
3597
|
+
* color: '#06C',
|
|
3598
|
+
* data: [[0, 1], [2, 3]]
|
|
3599
|
+
* } as Highcharts.SeriesLineOptions ]
|
|
3600
|
+
* });
|
|
3601
|
+
*
|
|
3602
|
+
* @type {Array<*>}
|
|
3603
|
+
* @apioption series
|
|
3604
|
+
*/
|
|
3605
|
+
/**
|
|
3606
|
+
* An id for the series. This can be used after render time to get a pointer
|
|
3607
|
+
* to the series object through `chart.get()`.
|
|
3608
|
+
*
|
|
3609
|
+
* @sample {highcharts} highcharts/plotoptions/series-id/
|
|
3610
|
+
* Get series by id
|
|
3611
|
+
*
|
|
3612
|
+
* @type {string}
|
|
3613
|
+
* @since 1.2.0
|
|
3614
|
+
* @apioption series.id
|
|
3615
|
+
*/
|
|
3616
|
+
/**
|
|
3617
|
+
* The index of the series in the chart, affecting the internal index in the
|
|
3618
|
+
* `chart.series` array, the visible Z index as well as the order in the
|
|
3619
|
+
* legend.
|
|
3620
|
+
*
|
|
3621
|
+
* @type {number}
|
|
3622
|
+
* @since 2.3.0
|
|
3623
|
+
* @apioption series.index
|
|
3624
|
+
*/
|
|
3625
|
+
/**
|
|
3626
|
+
* The sequential index of the series in the legend.
|
|
3627
|
+
*
|
|
3628
|
+
* @see [legend.reversed](#legend.reversed),
|
|
3629
|
+
* [yAxis.reversedStacks](#yAxis.reversedStacks)
|
|
3630
|
+
*
|
|
3631
|
+
* @sample {highcharts|highstock} highcharts/series/legendindex/
|
|
3632
|
+
* Legend in opposite order
|
|
3633
|
+
*
|
|
3634
|
+
* @type {number}
|
|
3635
|
+
* @apioption series.legendIndex
|
|
3636
|
+
*/
|
|
3637
|
+
/**
|
|
3638
|
+
* The name of the series as shown in the legend, tooltip etc.
|
|
3639
|
+
*
|
|
3640
|
+
* @sample {highcharts} highcharts/series/name/
|
|
3641
|
+
* Series name
|
|
3642
|
+
* @sample {highmaps} maps/demo/category-map/
|
|
3643
|
+
* Series name
|
|
3644
|
+
*
|
|
3645
|
+
* @type {string}
|
|
3646
|
+
* @apioption series.name
|
|
3647
|
+
*/
|
|
3648
|
+
/**
|
|
3649
|
+
* This option allows grouping series in a stacked chart. The stack option
|
|
3650
|
+
* can be a string or anything else, as long as the grouped series' stack
|
|
3651
|
+
* options match each other after conversion into a string.
|
|
3652
|
+
*
|
|
3653
|
+
* @sample {highcharts} highcharts/series/stack/
|
|
3654
|
+
* Stacked and grouped columns
|
|
3655
|
+
*
|
|
3656
|
+
* @type {number|string}
|
|
3657
|
+
* @since 2.1
|
|
3658
|
+
* @product highcharts highstock
|
|
3659
|
+
* @apioption series.stack
|
|
3660
|
+
*/
|
|
3661
|
+
/**
|
|
3662
|
+
* The type of series, for example `line` or `column`. By default, the
|
|
3663
|
+
* series type is inherited from [chart.type](#chart.type), so unless the
|
|
3664
|
+
* chart is a combination of series types, there is no need to set it on the
|
|
3665
|
+
* series level.
|
|
3666
|
+
*
|
|
3667
|
+
* @sample {highcharts} highcharts/series/type/
|
|
3668
|
+
* Line and column in the same chart
|
|
3669
|
+
* @sample highcharts/series/type-dynamic/
|
|
3670
|
+
* Dynamic types with button selector
|
|
3671
|
+
* @sample {highmaps} maps/demo/mapline-mappoint/
|
|
3672
|
+
* Multiple types in the same map
|
|
3673
|
+
*
|
|
3674
|
+
* @type {string}
|
|
3675
|
+
* @apioption series.type
|
|
3676
|
+
*/
|
|
3677
|
+
/**
|
|
3678
|
+
* When using dual or multiple x axes, this number defines which xAxis the
|
|
3679
|
+
* particular series is connected to. It refers to either the
|
|
3680
|
+
* {@link #xAxis.id|axis id}
|
|
3681
|
+
* or the index of the axis in the xAxis array, with 0 being the first.
|
|
3682
|
+
*
|
|
3683
|
+
* @type {number|string}
|
|
3684
|
+
* @default 0
|
|
3685
|
+
* @product highcharts highstock
|
|
3686
|
+
* @apioption series.xAxis
|
|
3687
|
+
*/
|
|
3688
|
+
/**
|
|
3689
|
+
* When using dual or multiple y axes, this number defines which yAxis the
|
|
3690
|
+
* particular series is connected to. It refers to either the
|
|
3691
|
+
* {@link #yAxis.id|axis id}
|
|
3692
|
+
* or the index of the axis in the yAxis array, with 0 being the first.
|
|
3693
|
+
*
|
|
3694
|
+
* @sample {highcharts} highcharts/series/yaxis/
|
|
3695
|
+
* Apply the column series to the secondary Y axis
|
|
3696
|
+
*
|
|
3697
|
+
* @type {number|string}
|
|
3698
|
+
* @default 0
|
|
3699
|
+
* @product highcharts highstock
|
|
3700
|
+
* @apioption series.yAxis
|
|
3701
|
+
*/
|
|
3702
|
+
/**
|
|
3703
|
+
* Define the visual z index of the series.
|
|
3704
|
+
*
|
|
3705
|
+
* @sample {highcharts} highcharts/plotoptions/series-zindex-default/
|
|
3706
|
+
* With no z index, the series defined last are on top
|
|
3707
|
+
* @sample {highcharts} highcharts/plotoptions/series-zindex/
|
|
3708
|
+
* With a z index, the series with the highest z index is on top
|
|
3709
|
+
* @sample {highstock} highcharts/plotoptions/series-zindex-default/
|
|
3710
|
+
* With no z index, the series defined last are on top
|
|
3711
|
+
* @sample {highstock} highcharts/plotoptions/series-zindex/
|
|
3712
|
+
* With a z index, the series with the highest z index is on top
|
|
3713
|
+
*
|
|
3714
|
+
* @type {number}
|
|
3715
|
+
* @product highcharts highstock
|
|
3716
|
+
* @apioption series.zIndex
|
|
3717
|
+
*/
|
|
3718
|
+
''; // include precedent doclets in transpilat
|