aw-highstock_rails 7.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +7 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +6 -0
  6. data/Gemfile.lock +22 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +53 -0
  9. data/Rakefile +10 -0
  10. data/aw-highstock_rails.gemspec +28 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/aw/highstock_rails.rb +9 -0
  14. data/lib/aw/highstock_rails/version.rb +5 -0
  15. data/vendor/assets/javascripts/highstock/css/annotations/popup.css +229 -0
  16. data/vendor/assets/javascripts/highstock/css/annotations/popup.scss +235 -0
  17. data/vendor/assets/javascripts/highstock/css/highcharts.css +890 -0
  18. data/vendor/assets/javascripts/highstock/css/highcharts.scss +788 -0
  19. data/vendor/assets/javascripts/highstock/css/stocktools/gui.css +268 -0
  20. data/vendor/assets/javascripts/highstock/css/stocktools/gui.scss +270 -0
  21. data/vendor/assets/javascripts/highstock/css/themes/dark-unica.css +951 -0
  22. data/vendor/assets/javascripts/highstock/css/themes/dark-unica.scss +122 -0
  23. data/vendor/assets/javascripts/highstock/css/themes/grid-light.css +904 -0
  24. data/vendor/assets/javascripts/highstock/css/themes/grid-light.scss +33 -0
  25. data/vendor/assets/javascripts/highstock/css/themes/sand-signika.css +920 -0
  26. data/vendor/assets/javascripts/highstock/css/themes/sand-signika.scss +74 -0
  27. data/vendor/assets/javascripts/highstock/es-modules/annotations/ControlPoint.js +130 -0
  28. data/vendor/assets/javascripts/highstock/es-modules/annotations/MockPoint.js +415 -0
  29. data/vendor/assets/javascripts/highstock/es-modules/annotations/annotations.src.js +1231 -0
  30. data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableCircle.js +92 -0
  31. data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableImage.js +101 -0
  32. data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableLabel.js +452 -0
  33. data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllablePath.js +175 -0
  34. data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableRect.js +93 -0
  35. data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/controllableMixin.js +411 -0
  36. data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/markerMixin.js +214 -0
  37. data/vendor/assets/javascripts/highstock/es-modules/annotations/eventEmitterMixin.js +271 -0
  38. data/vendor/assets/javascripts/highstock/es-modules/annotations/navigationBindings.js +1283 -0
  39. data/vendor/assets/javascripts/highstock/es-modules/annotations/popup.js +1069 -0
  40. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/CrookedLine.js +191 -0
  41. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/ElliottWave.js +76 -0
  42. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Fibonacci.js +247 -0
  43. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/InfinityLine.js +185 -0
  44. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Measure.js +928 -0
  45. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Pitchfork.js +203 -0
  46. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Tunnel.js +242 -0
  47. data/vendor/assets/javascripts/highstock/es-modules/annotations/types/VerticalLine.js +157 -0
  48. data/vendor/assets/javascripts/highstock/es-modules/error-messages.js +128 -0
  49. data/vendor/assets/javascripts/highstock/es-modules/error.js +1 -0
  50. data/vendor/assets/javascripts/highstock/es-modules/indicators/acceleration-bands.src.js +199 -0
  51. data/vendor/assets/javascripts/highstock/es-modules/indicators/accumulation-distribution.src.js +129 -0
  52. data/vendor/assets/javascripts/highstock/es-modules/indicators/ao.src.js +206 -0
  53. data/vendor/assets/javascripts/highstock/es-modules/indicators/apo.src.js +148 -0
  54. data/vendor/assets/javascripts/highstock/es-modules/indicators/aroon-oscillator.src.js +128 -0
  55. data/vendor/assets/javascripts/highstock/es-modules/indicators/aroon.src.js +173 -0
  56. data/vendor/assets/javascripts/highstock/es-modules/indicators/atr.src.js +151 -0
  57. data/vendor/assets/javascripts/highstock/es-modules/indicators/bollinger-bands.src.js +209 -0
  58. data/vendor/assets/javascripts/highstock/es-modules/indicators/cci.src.js +131 -0
  59. data/vendor/assets/javascripts/highstock/es-modules/indicators/chaikin.src.js +167 -0
  60. data/vendor/assets/javascripts/highstock/es-modules/indicators/cmf.src.js +246 -0
  61. data/vendor/assets/javascripts/highstock/es-modules/indicators/dema.src.js +191 -0
  62. data/vendor/assets/javascripts/highstock/es-modules/indicators/dpo.src.js +138 -0
  63. data/vendor/assets/javascripts/highstock/es-modules/indicators/ema.src.js +166 -0
  64. data/vendor/assets/javascripts/highstock/es-modules/indicators/ichimoku-kinko-hyo.src.js +850 -0
  65. data/vendor/assets/javascripts/highstock/es-modules/indicators/indicators.src.js +425 -0
  66. data/vendor/assets/javascripts/highstock/es-modules/indicators/keltner-channels.src.js +193 -0
  67. data/vendor/assets/javascripts/highstock/es-modules/indicators/macd.src.js +417 -0
  68. data/vendor/assets/javascripts/highstock/es-modules/indicators/mfi.src.js +198 -0
  69. data/vendor/assets/javascripts/highstock/es-modules/indicators/momentum.src.js +119 -0
  70. data/vendor/assets/javascripts/highstock/es-modules/indicators/natr.src.js +74 -0
  71. data/vendor/assets/javascripts/highstock/es-modules/indicators/pivot-points.src.js +360 -0
  72. data/vendor/assets/javascripts/highstock/es-modules/indicators/ppo.src.js +152 -0
  73. data/vendor/assets/javascripts/highstock/es-modules/indicators/price-channel.src.js +149 -0
  74. data/vendor/assets/javascripts/highstock/es-modules/indicators/price-envelopes.src.js +251 -0
  75. data/vendor/assets/javascripts/highstock/es-modules/indicators/psar.src.js +307 -0
  76. data/vendor/assets/javascripts/highstock/es-modules/indicators/regressions.src.js +427 -0
  77. data/vendor/assets/javascripts/highstock/es-modules/indicators/roc.src.js +149 -0
  78. data/vendor/assets/javascripts/highstock/es-modules/indicators/rsi.src.js +163 -0
  79. data/vendor/assets/javascripts/highstock/es-modules/indicators/stochastic.src.js +193 -0
  80. data/vendor/assets/javascripts/highstock/es-modules/indicators/supertrend.src.js +544 -0
  81. data/vendor/assets/javascripts/highstock/es-modules/indicators/tema.src.js +247 -0
  82. data/vendor/assets/javascripts/highstock/es-modules/indicators/trix.src.js +96 -0
  83. data/vendor/assets/javascripts/highstock/es-modules/indicators/volume-by-price.src.js +671 -0
  84. data/vendor/assets/javascripts/highstock/es-modules/indicators/vwap.src.js +189 -0
  85. data/vendor/assets/javascripts/highstock/es-modules/indicators/williams-r.src.js +128 -0
  86. data/vendor/assets/javascripts/highstock/es-modules/indicators/wma.src.js +146 -0
  87. data/vendor/assets/javascripts/highstock/es-modules/indicators/zigzag.src.js +221 -0
  88. data/vendor/assets/javascripts/highstock/es-modules/masters/highcharts-3d.src.js +17 -0
  89. data/vendor/assets/javascripts/highstock/es-modules/masters/highcharts-more.src.js +22 -0
  90. data/vendor/assets/javascripts/highstock/es-modules/masters/highstock.src.js +11 -0
  91. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/acceleration-bands.src.js +11 -0
  92. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/accumulation-distribution.src.js +11 -0
  93. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ao.src.js +11 -0
  94. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/apo.src.js +11 -0
  95. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/aroon-oscillator.src.js +11 -0
  96. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/aroon.src.js +11 -0
  97. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/atr.src.js +11 -0
  98. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/bollinger-bands.src.js +11 -0
  99. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/cci.src.js +11 -0
  100. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/chaikin.src.js +11 -0
  101. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/cmf.src.js +10 -0
  102. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/dema.src.js +11 -0
  103. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/dpo.src.js +11 -0
  104. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ema.src.js +11 -0
  105. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +11 -0
  106. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/indicators-all.src.js +49 -0
  107. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/indicators.src.js +11 -0
  108. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/keltner-channels.src.js +11 -0
  109. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/macd.src.js +11 -0
  110. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/mfi.src.js +11 -0
  111. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/momentum.src.js +11 -0
  112. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/natr.src.js +11 -0
  113. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/pivot-points.src.js +11 -0
  114. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ppo.src.js +11 -0
  115. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/price-channel.src.js +11 -0
  116. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/price-envelopes.src.js +11 -0
  117. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/psar.src.js +11 -0
  118. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/regressions.src.js +11 -0
  119. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/roc.src.js +11 -0
  120. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/rsi.src.js +11 -0
  121. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/stochastic.src.js +11 -0
  122. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/supertrend.src.js +11 -0
  123. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/tema.src.js +11 -0
  124. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/trix.src.js +11 -0
  125. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/volume-by-price.src.js +11 -0
  126. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/vwap.src.js +11 -0
  127. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/williams-r.src.js +11 -0
  128. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/wma.src.js +11 -0
  129. data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/zigzag.src.js +11 -0
  130. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/accessibility.src.js +13 -0
  131. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/annotations-advanced.src.js +20 -0
  132. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/annotations.src.js +12 -0
  133. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/arrow-symbols.src.js +10 -0
  134. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/boost-canvas.src.js +11 -0
  135. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/boost.src.js +11 -0
  136. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/bullet.src.js +11 -0
  137. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/current-date-indicator.src.js +10 -0
  138. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/cylinder.src.js +10 -0
  139. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/data.src.js +10 -0
  140. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/datagrouping.src.js +12 -0
  141. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/debugger.src.js +13 -0
  142. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/dependency-wheel.src.js +10 -0
  143. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/drag-panes.src.js +11 -0
  144. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/draggable-points.src.js +9 -0
  145. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/drilldown.src.js +10 -0
  146. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/export-data.src.js +10 -0
  147. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/exporting.src.js +10 -0
  148. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/full-screen.src.js +11 -0
  149. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/funnel.src.js +10 -0
  150. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/grid-axis.src.js +10 -0
  151. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/heatmap.src.js +11 -0
  152. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/histogram-bellcurve.src.js +11 -0
  153. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/item-series.src.js +11 -0
  154. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/networkgraph.src.js +10 -0
  155. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/no-data-to-display.src.js +11 -0
  156. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/offline-exporting.src.js +10 -0
  157. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/oldie-polyfills.src.js +11 -0
  158. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/oldie.src.js +11 -0
  159. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/overlapping-datalabels.src.js +9 -0
  160. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/parallel-coordinates.src.js +11 -0
  161. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/pareto.src.js +11 -0
  162. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/pathfinder.src.js +10 -0
  163. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/pattern-fill.src.js +11 -0
  164. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/price-indicator.src.js +11 -0
  165. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/sankey.src.js +10 -0
  166. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/series-label.src.js +9 -0
  167. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/solid-gauge.src.js +10 -0
  168. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/sonification.src.js +12 -0
  169. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/static-scale.src.js +10 -0
  170. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/stock-tools.src.js +12 -0
  171. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/stock.src.js +19 -0
  172. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/streamgraph.src.js +10 -0
  173. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/sunburst.src.js +10 -0
  174. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/tilemap.src.js +10 -0
  175. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/timeline.src.js +11 -0
  176. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/treegrid.src.js +10 -0
  177. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/treemap.src.js +10 -0
  178. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/variable-pie.src.js +11 -0
  179. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/variwide.src.js +10 -0
  180. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/vector.src.js +10 -0
  181. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/venn.src.js +10 -0
  182. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/windbarb.src.js +10 -0
  183. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/wordcloud.src.js +10 -0
  184. data/vendor/assets/javascripts/highstock/es-modules/masters/modules/xrange.src.js +10 -0
  185. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/avocado.js +9 -0
  186. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/avocado.src.js +9 -0
  187. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/dark-blue.src.js +9 -0
  188. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/dark-green.src.js +9 -0
  189. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/dark-unica.src.js +9 -0
  190. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/gray.src.js +9 -0
  191. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/grid-light.src.js +9 -0
  192. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/grid.src.js +9 -0
  193. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/sand-signika.src.js +9 -0
  194. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/skies.src.js +9 -0
  195. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/sunset.js +9 -0
  196. data/vendor/assets/javascripts/highstock/es-modules/masters/themes/sunset.src.js +9 -0
  197. data/vendor/assets/javascripts/highstock/es-modules/mixins/ajax.js +123 -0
  198. data/vendor/assets/javascripts/highstock/es-modules/mixins/centered-series.js +116 -0
  199. data/vendor/assets/javascripts/highstock/es-modules/mixins/derived-series.js +150 -0
  200. data/vendor/assets/javascripts/highstock/es-modules/mixins/download-url.js +103 -0
  201. data/vendor/assets/javascripts/highstock/es-modules/mixins/draw-point.js +51 -0
  202. data/vendor/assets/javascripts/highstock/es-modules/mixins/geometry-circles.js +300 -0
  203. data/vendor/assets/javascripts/highstock/es-modules/mixins/geometry.js +50 -0
  204. data/vendor/assets/javascripts/highstock/es-modules/mixins/indicator-required.js +49 -0
  205. data/vendor/assets/javascripts/highstock/es-modules/mixins/multipe-lines.js +223 -0
  206. data/vendor/assets/javascripts/highstock/es-modules/mixins/navigation.js +59 -0
  207. data/vendor/assets/javascripts/highstock/es-modules/mixins/nodes.js +76 -0
  208. data/vendor/assets/javascripts/highstock/es-modules/mixins/on-series.js +167 -0
  209. data/vendor/assets/javascripts/highstock/es-modules/mixins/polygon.js +293 -0
  210. data/vendor/assets/javascripts/highstock/es-modules/mixins/reduce-array.js +53 -0
  211. data/vendor/assets/javascripts/highstock/es-modules/mixins/tree-series.js +256 -0
  212. data/vendor/assets/javascripts/highstock/es-modules/modules/a11y-i18n.src.js +524 -0
  213. data/vendor/assets/javascripts/highstock/es-modules/modules/annotations-legacy.src.js +1951 -0
  214. data/vendor/assets/javascripts/highstock/es-modules/modules/bellcurve.src.js +173 -0
  215. data/vendor/assets/javascripts/highstock/es-modules/modules/boost-canvas.src.js +732 -0
  216. data/vendor/assets/javascripts/highstock/es-modules/modules/boost.src.js +3730 -0
  217. data/vendor/assets/javascripts/highstock/es-modules/modules/bullet.src.js +361 -0
  218. data/vendor/assets/javascripts/highstock/es-modules/modules/cylinder.src.js +389 -0
  219. data/vendor/assets/javascripts/highstock/es-modules/modules/data.src.js +2417 -0
  220. data/vendor/assets/javascripts/highstock/es-modules/modules/debugger.src.js +109 -0
  221. data/vendor/assets/javascripts/highstock/es-modules/modules/dependency-wheel.src.js +199 -0
  222. data/vendor/assets/javascripts/highstock/es-modules/modules/drag-panes.src.js +624 -0
  223. data/vendor/assets/javascripts/highstock/es-modules/modules/draggable-points.src.js +2625 -0
  224. data/vendor/assets/javascripts/highstock/es-modules/modules/drilldown.src.js +1300 -0
  225. data/vendor/assets/javascripts/highstock/es-modules/modules/export-data.src.js +983 -0
  226. data/vendor/assets/javascripts/highstock/es-modules/modules/exporting.src.js +2149 -0
  227. data/vendor/assets/javascripts/highstock/es-modules/modules/full-screen.src.js +40 -0
  228. data/vendor/assets/javascripts/highstock/es-modules/modules/funnel.src.js +552 -0
  229. data/vendor/assets/javascripts/highstock/es-modules/modules/histogram.src.js +229 -0
  230. data/vendor/assets/javascripts/highstock/es-modules/modules/item-series.src.js +150 -0
  231. data/vendor/assets/javascripts/highstock/es-modules/modules/keyboard-navigation.src.js +1606 -0
  232. data/vendor/assets/javascripts/highstock/es-modules/modules/networkgraph/QuadTree.js +175 -0
  233. data/vendor/assets/javascripts/highstock/es-modules/modules/networkgraph/layouts.js +506 -0
  234. data/vendor/assets/javascripts/highstock/es-modules/modules/networkgraph/networkgraph.src.js +740 -0
  235. data/vendor/assets/javascripts/highstock/es-modules/modules/no-data-to-display.src.js +260 -0
  236. data/vendor/assets/javascripts/highstock/es-modules/modules/offline-exporting.src.js +710 -0
  237. data/vendor/assets/javascripts/highstock/es-modules/modules/oldie-polyfills.src.js +121 -0
  238. data/vendor/assets/javascripts/highstock/es-modules/modules/oldie.src.js +1556 -0
  239. data/vendor/assets/javascripts/highstock/es-modules/modules/overlapping-datalabels.src.js +250 -0
  240. data/vendor/assets/javascripts/highstock/es-modules/modules/parallel-coordinates.src.js +492 -0
  241. data/vendor/assets/javascripts/highstock/es-modules/modules/pareto.src.js +152 -0
  242. data/vendor/assets/javascripts/highstock/es-modules/modules/pattern-fill.src.js +607 -0
  243. data/vendor/assets/javascripts/highstock/es-modules/modules/price-indicator.src.js +149 -0
  244. data/vendor/assets/javascripts/highstock/es-modules/modules/sankey.src.js +809 -0
  245. data/vendor/assets/javascripts/highstock/es-modules/modules/screen-reader.src.js +954 -0
  246. data/vendor/assets/javascripts/highstock/es-modules/modules/series-label.src.js +1042 -0
  247. data/vendor/assets/javascripts/highstock/es-modules/modules/solid-gauge.src.js +486 -0
  248. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/Earcon.js +184 -0
  249. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/Instrument.js +582 -0
  250. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/Timeline.js +702 -0
  251. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/chartSonify.js +1026 -0
  252. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/instrumentDefinitions.js +37 -0
  253. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/musicalFrequencies.js +113 -0
  254. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/pointSonify.js +385 -0
  255. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/sonification.js +107 -0
  256. data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/utilities.js +178 -0
  257. data/vendor/assets/javascripts/highstock/es-modules/modules/static-scale.src.js +88 -0
  258. data/vendor/assets/javascripts/highstock/es-modules/modules/stock-tools-bindings.js +1950 -0
  259. data/vendor/assets/javascripts/highstock/es-modules/modules/stock-tools-gui.js +1458 -0
  260. data/vendor/assets/javascripts/highstock/es-modules/modules/streamgraph.src.js +132 -0
  261. data/vendor/assets/javascripts/highstock/es-modules/modules/sunburst.src.js +1041 -0
  262. data/vendor/assets/javascripts/highstock/es-modules/modules/tilemap.src.js +769 -0
  263. data/vendor/assets/javascripts/highstock/es-modules/modules/timeline.src.js +750 -0
  264. data/vendor/assets/javascripts/highstock/es-modules/modules/treemap.src.js +1803 -0
  265. data/vendor/assets/javascripts/highstock/es-modules/modules/variable-pie.src.js +459 -0
  266. data/vendor/assets/javascripts/highstock/es-modules/modules/variwide.src.js +350 -0
  267. data/vendor/assets/javascripts/highstock/es-modules/modules/vector.src.js +354 -0
  268. data/vendor/assets/javascripts/highstock/es-modules/modules/venn.src.js +1192 -0
  269. data/vendor/assets/javascripts/highstock/es-modules/modules/windbarb.src.js +380 -0
  270. data/vendor/assets/javascripts/highstock/es-modules/modules/wordcloud.src.js +1103 -0
  271. data/vendor/assets/javascripts/highstock/es-modules/modules/xrange.src.js +761 -0
  272. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Axis.js +669 -0
  273. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Chart.js +1753 -0
  274. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Column.js +437 -0
  275. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Math.js +206 -0
  276. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Pie.js +207 -0
  277. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/SVGRenderer.js +1002 -0
  278. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Scatter.js +154 -0
  279. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Series.js +73 -0
  280. data/vendor/assets/javascripts/highstock/es-modules/parts-3d/VMLRenderer.js +62 -0
  281. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/ArrowSymbols.js +198 -0
  282. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/CurrentDateIndicator.js +100 -0
  283. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/GanttChart.js +140 -0
  284. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/GanttSeries.js +415 -0
  285. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/GridAxis.js +961 -0
  286. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/Pathfinder.js +1298 -0
  287. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/PathfinderAlgorithms.js +816 -0
  288. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/Tree.js +158 -0
  289. data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/TreeGrid.js +1003 -0
  290. data/vendor/assets/javascripts/highstock/es-modules/parts-map/ColorAxis.js +1103 -0
  291. data/vendor/assets/javascripts/highstock/es-modules/parts-map/ColorSeriesMixin.js +138 -0
  292. data/vendor/assets/javascripts/highstock/es-modules/parts-map/GeoJSON.js +435 -0
  293. data/vendor/assets/javascripts/highstock/es-modules/parts-map/HeatmapSeries.js +474 -0
  294. data/vendor/assets/javascripts/highstock/es-modules/parts-map/Map.js +477 -0
  295. data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapAxis.js +124 -0
  296. data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapBubbleSeries.js +274 -0
  297. data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapLineSeries.js +143 -0
  298. data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapNavigation.js +357 -0
  299. data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapPointSeries.js +187 -0
  300. data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapPointer.js +132 -0
  301. data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapSeries.js +1294 -0
  302. data/vendor/assets/javascripts/highstock/es-modules/parts-more/AreaRangeSeries.js +725 -0
  303. data/vendor/assets/javascripts/highstock/es-modules/parts-more/AreaSplineRangeSeries.js +98 -0
  304. data/vendor/assets/javascripts/highstock/es-modules/parts-more/BoxPlotSeries.js +617 -0
  305. data/vendor/assets/javascripts/highstock/es-modules/parts-more/BubbleLegend.js +1167 -0
  306. data/vendor/assets/javascripts/highstock/es-modules/parts-more/BubbleSeries.js +661 -0
  307. data/vendor/assets/javascripts/highstock/es-modules/parts-more/ColumnPyramidSeries.js +288 -0
  308. data/vendor/assets/javascripts/highstock/es-modules/parts-more/ColumnRangeSeries.js +278 -0
  309. data/vendor/assets/javascripts/highstock/es-modules/parts-more/ErrorBarSeries.js +172 -0
  310. data/vendor/assets/javascripts/highstock/es-modules/parts-more/GaugeSeries.js +618 -0
  311. data/vendor/assets/javascripts/highstock/es-modules/parts-more/PackedBubbleSeries.js +567 -0
  312. data/vendor/assets/javascripts/highstock/es-modules/parts-more/Pane.js +399 -0
  313. data/vendor/assets/javascripts/highstock/es-modules/parts-more/Polar.js +634 -0
  314. data/vendor/assets/javascripts/highstock/es-modules/parts-more/PolygonSeries.js +151 -0
  315. data/vendor/assets/javascripts/highstock/es-modules/parts-more/RadialAxis.js +685 -0
  316. data/vendor/assets/javascripts/highstock/es-modules/parts-more/WaterfallSeries.js +765 -0
  317. data/vendor/assets/javascripts/highstock/es-modules/parts.js +684 -0
  318. data/vendor/assets/javascripts/highstock/es-modules/parts/AreaSeries.js +578 -0
  319. data/vendor/assets/javascripts/highstock/es-modules/parts/AreaSplineSeries.js +122 -0
  320. data/vendor/assets/javascripts/highstock/es-modules/parts/Axis.js +6453 -0
  321. data/vendor/assets/javascripts/highstock/es-modules/parts/BarSeries.js +153 -0
  322. data/vendor/assets/javascripts/highstock/es-modules/parts/CandlestickSeries.js +358 -0
  323. data/vendor/assets/javascripts/highstock/es-modules/parts/Chart.js +2307 -0
  324. data/vendor/assets/javascripts/highstock/es-modules/parts/Color.js +301 -0
  325. data/vendor/assets/javascripts/highstock/es-modules/parts/ColumnSeries.js +1125 -0
  326. data/vendor/assets/javascripts/highstock/es-modules/parts/DataGrouping.js +1115 -0
  327. data/vendor/assets/javascripts/highstock/es-modules/parts/DataLabels.js +1431 -0
  328. data/vendor/assets/javascripts/highstock/es-modules/parts/DateTimeAxis.js +134 -0
  329. data/vendor/assets/javascripts/highstock/es-modules/parts/Dynamics.js +1301 -0
  330. data/vendor/assets/javascripts/highstock/es-modules/parts/FlagsSeries.js +739 -0
  331. data/vendor/assets/javascripts/highstock/es-modules/parts/Globals.js +75 -0
  332. data/vendor/assets/javascripts/highstock/es-modules/parts/Html.js +539 -0
  333. data/vendor/assets/javascripts/highstock/es-modules/parts/Interaction.js +1299 -0
  334. data/vendor/assets/javascripts/highstock/es-modules/parts/Legend.js +1411 -0
  335. data/vendor/assets/javascripts/highstock/es-modules/parts/LogarithmicAxis.js +168 -0
  336. data/vendor/assets/javascripts/highstock/es-modules/parts/MSPointer.js +176 -0
  337. data/vendor/assets/javascripts/highstock/es-modules/parts/Navigator.js +2486 -0
  338. data/vendor/assets/javascripts/highstock/es-modules/parts/OHLCSeries.js +412 -0
  339. data/vendor/assets/javascripts/highstock/es-modules/parts/Options.js +3732 -0
  340. data/vendor/assets/javascripts/highstock/es-modules/parts/OrdinalAxis.js +962 -0
  341. data/vendor/assets/javascripts/highstock/es-modules/parts/PieSeries.js +1328 -0
  342. data/vendor/assets/javascripts/highstock/es-modules/parts/PlotBandSeries.experimental.js +74 -0
  343. data/vendor/assets/javascripts/highstock/es-modules/parts/PlotLineOrBand.js +1061 -0
  344. data/vendor/assets/javascripts/highstock/es-modules/parts/Point.js +681 -0
  345. data/vendor/assets/javascripts/highstock/es-modules/parts/Pointer.js +1332 -0
  346. data/vendor/assets/javascripts/highstock/es-modules/parts/RangeSelector.js +2063 -0
  347. data/vendor/assets/javascripts/highstock/es-modules/parts/Responsive.js +295 -0
  348. data/vendor/assets/javascripts/highstock/es-modules/parts/ScatterSeries.js +278 -0
  349. data/vendor/assets/javascripts/highstock/es-modules/parts/ScrollablePlotArea.js +266 -0
  350. data/vendor/assets/javascripts/highstock/es-modules/parts/Scrollbar.js +1134 -0
  351. data/vendor/assets/javascripts/highstock/es-modules/parts/Series.js +5864 -0
  352. data/vendor/assets/javascripts/highstock/es-modules/parts/SplineSeries.js +267 -0
  353. data/vendor/assets/javascripts/highstock/es-modules/parts/Stacking.js +604 -0
  354. data/vendor/assets/javascripts/highstock/es-modules/parts/StockChart.js +951 -0
  355. data/vendor/assets/javascripts/highstock/es-modules/parts/SvgRenderer.js +5109 -0
  356. data/vendor/assets/javascripts/highstock/es-modules/parts/Tick.js +746 -0
  357. data/vendor/assets/javascripts/highstock/es-modules/parts/Time.js +881 -0
  358. data/vendor/assets/javascripts/highstock/es-modules/parts/Tooltip.js +1318 -0
  359. data/vendor/assets/javascripts/highstock/es-modules/parts/TouchPointer.js +404 -0
  360. data/vendor/assets/javascripts/highstock/es-modules/parts/Utilities.js +2751 -0
  361. data/vendor/assets/javascripts/highstock/es-modules/themes/avocado.js +37 -0
  362. data/vendor/assets/javascripts/highstock/es-modules/themes/dark-blue.js +259 -0
  363. data/vendor/assets/javascripts/highstock/es-modules/themes/dark-green.js +261 -0
  364. data/vendor/assets/javascripts/highstock/es-modules/themes/dark-unica.js +220 -0
  365. data/vendor/assets/javascripts/highstock/es-modules/themes/gray.js +267 -0
  366. data/vendor/assets/javascripts/highstock/es-modules/themes/grid-light.js +81 -0
  367. data/vendor/assets/javascripts/highstock/es-modules/themes/grid.js +110 -0
  368. data/vendor/assets/javascripts/highstock/es-modules/themes/sand-signika.js +111 -0
  369. data/vendor/assets/javascripts/highstock/es-modules/themes/skies.js +100 -0
  370. data/vendor/assets/javascripts/highstock/es-modules/themes/sunset.js +36 -0
  371. data/vendor/assets/javascripts/highstock/highcharts-3d.js +85 -0
  372. data/vendor/assets/javascripts/highstock/highcharts-3d.js.map +1 -0
  373. data/vendor/assets/javascripts/highstock/highcharts-more.js +101 -0
  374. data/vendor/assets/javascripts/highstock/highcharts-more.js.map +1 -0
  375. data/vendor/assets/javascripts/highstock/highstock.js +583 -0
  376. data/vendor/assets/javascripts/highstock/highstock.js.map +1 -0
  377. data/vendor/assets/javascripts/highstock/indicators/acceleration-bands.js +16 -0
  378. data/vendor/assets/javascripts/highstock/indicators/acceleration-bands.js.map +1 -0
  379. data/vendor/assets/javascripts/highstock/indicators/acceleration-bands.src.js +448 -0
  380. data/vendor/assets/javascripts/highstock/indicators/accumulation-distribution.js +12 -0
  381. data/vendor/assets/javascripts/highstock/indicators/accumulation-distribution.js.map +1 -0
  382. data/vendor/assets/javascripts/highstock/indicators/accumulation-distribution.src.js +156 -0
  383. data/vendor/assets/javascripts/highstock/indicators/ao.js +13 -0
  384. data/vendor/assets/javascripts/highstock/indicators/ao.js.map +1 -0
  385. data/vendor/assets/javascripts/highstock/indicators/ao.src.js +233 -0
  386. data/vendor/assets/javascripts/highstock/indicators/apo.js +13 -0
  387. data/vendor/assets/javascripts/highstock/indicators/apo.js.map +1 -0
  388. data/vendor/assets/javascripts/highstock/indicators/apo.src.js +223 -0
  389. data/vendor/assets/javascripts/highstock/indicators/aroon-oscillator.js +15 -0
  390. data/vendor/assets/javascripts/highstock/indicators/aroon-oscillator.js.map +1 -0
  391. data/vendor/assets/javascripts/highstock/indicators/aroon-oscillator.src.js +426 -0
  392. data/vendor/assets/javascripts/highstock/indicators/aroon.js +16 -0
  393. data/vendor/assets/javascripts/highstock/indicators/aroon.js.map +1 -0
  394. data/vendor/assets/javascripts/highstock/indicators/aroon.src.js +423 -0
  395. data/vendor/assets/javascripts/highstock/indicators/atr.js +12 -0
  396. data/vendor/assets/javascripts/highstock/indicators/atr.js.map +1 -0
  397. data/vendor/assets/javascripts/highstock/indicators/atr.src.js +178 -0
  398. data/vendor/assets/javascripts/highstock/indicators/bollinger-bands.js +16 -0
  399. data/vendor/assets/javascripts/highstock/indicators/bollinger-bands.js.map +1 -0
  400. data/vendor/assets/javascripts/highstock/indicators/bollinger-bands.src.js +458 -0
  401. data/vendor/assets/javascripts/highstock/indicators/cci.js +12 -0
  402. data/vendor/assets/javascripts/highstock/indicators/cci.js.map +1 -0
  403. data/vendor/assets/javascripts/highstock/indicators/cci.src.js +158 -0
  404. data/vendor/assets/javascripts/highstock/indicators/chaikin.js +15 -0
  405. data/vendor/assets/javascripts/highstock/indicators/chaikin.js.map +1 -0
  406. data/vendor/assets/javascripts/highstock/indicators/chaikin.src.js +370 -0
  407. data/vendor/assets/javascripts/highstock/indicators/cmf.js +12 -0
  408. data/vendor/assets/javascripts/highstock/indicators/cmf.js.map +1 -0
  409. data/vendor/assets/javascripts/highstock/indicators/cmf.src.js +273 -0
  410. data/vendor/assets/javascripts/highstock/indicators/dema.js +13 -0
  411. data/vendor/assets/javascripts/highstock/indicators/dema.js.map +1 -0
  412. data/vendor/assets/javascripts/highstock/indicators/dema.src.js +266 -0
  413. data/vendor/assets/javascripts/highstock/indicators/dpo.js +12 -0
  414. data/vendor/assets/javascripts/highstock/indicators/dpo.js.map +1 -0
  415. data/vendor/assets/javascripts/highstock/indicators/dpo.src.js +166 -0
  416. data/vendor/assets/javascripts/highstock/indicators/ema.js +12 -0
  417. data/vendor/assets/javascripts/highstock/indicators/ema.js.map +1 -0
  418. data/vendor/assets/javascripts/highstock/indicators/ema.src.js +193 -0
  419. data/vendor/assets/javascripts/highstock/indicators/ichimoku-kinko-hyo.js +22 -0
  420. data/vendor/assets/javascripts/highstock/indicators/ichimoku-kinko-hyo.js.map +1 -0
  421. data/vendor/assets/javascripts/highstock/indicators/ichimoku-kinko-hyo.src.js +877 -0
  422. data/vendor/assets/javascripts/highstock/indicators/indicators-all.js +117 -0
  423. data/vendor/assets/javascripts/highstock/indicators/indicators-all.js.map +1 -0
  424. data/vendor/assets/javascripts/highstock/indicators/indicators-all.src.js +9389 -0
  425. data/vendor/assets/javascripts/highstock/indicators/indicators.js +17 -0
  426. data/vendor/assets/javascripts/highstock/indicators/indicators.js.map +1 -0
  427. data/vendor/assets/javascripts/highstock/indicators/indicators.src.js +500 -0
  428. data/vendor/assets/javascripts/highstock/indicators/keltner-channels.js +16 -0
  429. data/vendor/assets/javascripts/highstock/indicators/keltner-channels.js.map +1 -0
  430. data/vendor/assets/javascripts/highstock/indicators/keltner-channels.src.js +442 -0
  431. data/vendor/assets/javascripts/highstock/indicators/macd.js +18 -0
  432. data/vendor/assets/javascripts/highstock/indicators/macd.js.map +1 -0
  433. data/vendor/assets/javascripts/highstock/indicators/macd.src.js +444 -0
  434. data/vendor/assets/javascripts/highstock/indicators/mfi.js +13 -0
  435. data/vendor/assets/javascripts/highstock/indicators/mfi.js.map +1 -0
  436. data/vendor/assets/javascripts/highstock/indicators/mfi.src.js +225 -0
  437. data/vendor/assets/javascripts/highstock/indicators/momentum.js +12 -0
  438. data/vendor/assets/javascripts/highstock/indicators/momentum.js.map +1 -0
  439. data/vendor/assets/javascripts/highstock/indicators/momentum.src.js +146 -0
  440. data/vendor/assets/javascripts/highstock/indicators/natr.js +12 -0
  441. data/vendor/assets/javascripts/highstock/indicators/natr.js.map +1 -0
  442. data/vendor/assets/javascripts/highstock/indicators/natr.src.js +101 -0
  443. data/vendor/assets/javascripts/highstock/indicators/pivot-points.js +16 -0
  444. data/vendor/assets/javascripts/highstock/indicators/pivot-points.js.map +1 -0
  445. data/vendor/assets/javascripts/highstock/indicators/pivot-points.src.js +387 -0
  446. data/vendor/assets/javascripts/highstock/indicators/ppo.js +13 -0
  447. data/vendor/assets/javascripts/highstock/indicators/ppo.js.map +1 -0
  448. data/vendor/assets/javascripts/highstock/indicators/ppo.src.js +227 -0
  449. data/vendor/assets/javascripts/highstock/indicators/price-channel.js +16 -0
  450. data/vendor/assets/javascripts/highstock/indicators/price-channel.js.map +1 -0
  451. data/vendor/assets/javascripts/highstock/indicators/price-channel.src.js +450 -0
  452. data/vendor/assets/javascripts/highstock/indicators/price-envelopes.js +15 -0
  453. data/vendor/assets/javascripts/highstock/indicators/price-envelopes.js.map +1 -0
  454. data/vendor/assets/javascripts/highstock/indicators/price-envelopes.src.js +278 -0
  455. data/vendor/assets/javascripts/highstock/indicators/psar.js +13 -0
  456. data/vendor/assets/javascripts/highstock/indicators/psar.js.map +1 -0
  457. data/vendor/assets/javascripts/highstock/indicators/psar.src.js +334 -0
  458. data/vendor/assets/javascripts/highstock/indicators/regressions.js +14 -0
  459. data/vendor/assets/javascripts/highstock/indicators/regressions.js.map +1 -0
  460. data/vendor/assets/javascripts/highstock/indicators/regressions.src.js +454 -0
  461. data/vendor/assets/javascripts/highstock/indicators/roc.js +12 -0
  462. data/vendor/assets/javascripts/highstock/indicators/roc.js.map +1 -0
  463. data/vendor/assets/javascripts/highstock/indicators/roc.src.js +176 -0
  464. data/vendor/assets/javascripts/highstock/indicators/rsi.js +12 -0
  465. data/vendor/assets/javascripts/highstock/indicators/rsi.js.map +1 -0
  466. data/vendor/assets/javascripts/highstock/indicators/rsi.src.js +190 -0
  467. data/vendor/assets/javascripts/highstock/indicators/stochastic.js +17 -0
  468. data/vendor/assets/javascripts/highstock/indicators/stochastic.js.map +1 -0
  469. data/vendor/assets/javascripts/highstock/indicators/stochastic.src.js +494 -0
  470. data/vendor/assets/javascripts/highstock/indicators/supertrend.js +17 -0
  471. data/vendor/assets/javascripts/highstock/indicators/supertrend.js.map +1 -0
  472. data/vendor/assets/javascripts/highstock/indicators/supertrend.src.js +571 -0
  473. data/vendor/assets/javascripts/highstock/indicators/tema.js +14 -0
  474. data/vendor/assets/javascripts/highstock/indicators/tema.js.map +1 -0
  475. data/vendor/assets/javascripts/highstock/indicators/tema.src.js +322 -0
  476. data/vendor/assets/javascripts/highstock/indicators/trix.js +12 -0
  477. data/vendor/assets/javascripts/highstock/indicators/trix.js.map +1 -0
  478. data/vendor/assets/javascripts/highstock/indicators/trix.src.js +171 -0
  479. data/vendor/assets/javascripts/highstock/indicators/volume-by-price.js +21 -0
  480. data/vendor/assets/javascripts/highstock/indicators/volume-by-price.js.map +1 -0
  481. data/vendor/assets/javascripts/highstock/indicators/volume-by-price.src.js +698 -0
  482. data/vendor/assets/javascripts/highstock/indicators/vwap.js +12 -0
  483. data/vendor/assets/javascripts/highstock/indicators/vwap.js.map +1 -0
  484. data/vendor/assets/javascripts/highstock/indicators/vwap.src.js +216 -0
  485. data/vendor/assets/javascripts/highstock/indicators/williams-r.js +13 -0
  486. data/vendor/assets/javascripts/highstock/indicators/williams-r.js.map +1 -0
  487. data/vendor/assets/javascripts/highstock/indicators/williams-r.src.js +207 -0
  488. data/vendor/assets/javascripts/highstock/indicators/wma.js +12 -0
  489. data/vendor/assets/javascripts/highstock/indicators/wma.js.map +1 -0
  490. data/vendor/assets/javascripts/highstock/indicators/wma.src.js +173 -0
  491. data/vendor/assets/javascripts/highstock/indicators/zigzag.js +13 -0
  492. data/vendor/assets/javascripts/highstock/indicators/zigzag.js.map +1 -0
  493. data/vendor/assets/javascripts/highstock/indicators/zigzag.src.js +248 -0
  494. data/vendor/assets/javascripts/highstock/lib/canvg.js +130 -0
  495. data/vendor/assets/javascripts/highstock/lib/canvg.src.js +3073 -0
  496. data/vendor/assets/javascripts/highstock/lib/jspdf.js +283 -0
  497. data/vendor/assets/javascripts/highstock/lib/jspdf.src.js +21627 -0
  498. data/vendor/assets/javascripts/highstock/lib/rgbcolor.js +17 -0
  499. data/vendor/assets/javascripts/highstock/lib/rgbcolor.src.js +299 -0
  500. data/vendor/assets/javascripts/highstock/lib/svg2pdf.js +38 -0
  501. data/vendor/assets/javascripts/highstock/lib/svg2pdf.src.js +4390 -0
  502. data/vendor/assets/javascripts/highstock/modules/accessibility.js +73 -0
  503. data/vendor/assets/javascripts/highstock/modules/accessibility.js.map +1 -0
  504. data/vendor/assets/javascripts/highstock/modules/accessibility.src.js +3103 -0
  505. data/vendor/assets/javascripts/highstock/modules/annotations-advanced.js +132 -0
  506. data/vendor/assets/javascripts/highstock/modules/annotations-advanced.js.map +1 -0
  507. data/vendor/assets/javascripts/highstock/modules/annotations-advanced.src.js +8230 -0
  508. data/vendor/assets/javascripts/highstock/modules/annotations.js +94 -0
  509. data/vendor/assets/javascripts/highstock/modules/annotations.js.map +1 -0
  510. data/vendor/assets/javascripts/highstock/modules/annotations.src.js +6001 -0
  511. data/vendor/assets/javascripts/highstock/modules/arrow-symbols.js +11 -0
  512. data/vendor/assets/javascripts/highstock/modules/arrow-symbols.js.map +1 -0
  513. data/vendor/assets/javascripts/highstock/modules/arrow-symbols.src.js +225 -0
  514. data/vendor/assets/javascripts/highstock/modules/boost-canvas.js +23 -0
  515. data/vendor/assets/javascripts/highstock/modules/boost-canvas.js.map +1 -0
  516. data/vendor/assets/javascripts/highstock/modules/boost-canvas.src.js +756 -0
  517. data/vendor/assets/javascripts/highstock/modules/boost.js +65 -0
  518. data/vendor/assets/javascripts/highstock/modules/boost.js.map +1 -0
  519. data/vendor/assets/javascripts/highstock/modules/boost.src.js +3752 -0
  520. data/vendor/assets/javascripts/highstock/modules/bullet.js +14 -0
  521. data/vendor/assets/javascripts/highstock/modules/bullet.js.map +1 -0
  522. data/vendor/assets/javascripts/highstock/modules/bullet.src.js +388 -0
  523. data/vendor/assets/javascripts/highstock/modules/current-date-indicator.js +11 -0
  524. data/vendor/assets/javascripts/highstock/modules/current-date-indicator.js.map +1 -0
  525. data/vendor/assets/javascripts/highstock/modules/current-date-indicator.src.js +127 -0
  526. data/vendor/assets/javascripts/highstock/modules/cylinder.js +14 -0
  527. data/vendor/assets/javascripts/highstock/modules/cylinder.js.map +1 -0
  528. data/vendor/assets/javascripts/highstock/modules/cylinder.src.js +413 -0
  529. data/vendor/assets/javascripts/highstock/modules/data.js +37 -0
  530. data/vendor/assets/javascripts/highstock/modules/data.js.map +1 -0
  531. data/vendor/assets/javascripts/highstock/modules/data.src.js +2565 -0
  532. data/vendor/assets/javascripts/highstock/modules/datagrouping.js +25 -0
  533. data/vendor/assets/javascripts/highstock/modules/datagrouping.js.map +1 -0
  534. data/vendor/assets/javascripts/highstock/modules/datagrouping.src.js +1140 -0
  535. data/vendor/assets/javascripts/highstock/modules/debugger.js +28 -0
  536. data/vendor/assets/javascripts/highstock/modules/debugger.js.map +1 -0
  537. data/vendor/assets/javascripts/highstock/modules/debugger.src.js +267 -0
  538. data/vendor/assets/javascripts/highstock/modules/dependency-wheel.js +15 -0
  539. data/vendor/assets/javascripts/highstock/modules/dependency-wheel.js.map +1 -0
  540. data/vendor/assets/javascripts/highstock/modules/dependency-wheel.src.js +301 -0
  541. data/vendor/assets/javascripts/highstock/modules/drag-panes.js +18 -0
  542. data/vendor/assets/javascripts/highstock/modules/drag-panes.js.map +1 -0
  543. data/vendor/assets/javascripts/highstock/modules/drag-panes.src.js +649 -0
  544. data/vendor/assets/javascripts/highstock/modules/draggable-points.js +40 -0
  545. data/vendor/assets/javascripts/highstock/modules/draggable-points.js.map +1 -0
  546. data/vendor/assets/javascripts/highstock/modules/draggable-points.src.js +2650 -0
  547. data/vendor/assets/javascripts/highstock/modules/drilldown.js +29 -0
  548. data/vendor/assets/javascripts/highstock/modules/drilldown.js.map +1 -0
  549. data/vendor/assets/javascripts/highstock/modules/drilldown.src.js +1321 -0
  550. data/vendor/assets/javascripts/highstock/modules/export-data.js +27 -0
  551. data/vendor/assets/javascripts/highstock/modules/export-data.js.map +1 -0
  552. data/vendor/assets/javascripts/highstock/modules/export-data.src.js +1234 -0
  553. data/vendor/assets/javascripts/highstock/modules/exporting.js +35 -0
  554. data/vendor/assets/javascripts/highstock/modules/exporting.js.map +1 -0
  555. data/vendor/assets/javascripts/highstock/modules/exporting.src.js +2233 -0
  556. data/vendor/assets/javascripts/highstock/modules/full-screen.js +11 -0
  557. data/vendor/assets/javascripts/highstock/modules/full-screen.js.map +1 -0
  558. data/vendor/assets/javascripts/highstock/modules/full-screen.src.js +68 -0
  559. data/vendor/assets/javascripts/highstock/modules/funnel.js +14 -0
  560. data/vendor/assets/javascripts/highstock/modules/funnel.js.map +1 -0
  561. data/vendor/assets/javascripts/highstock/modules/funnel.src.js +576 -0
  562. data/vendor/assets/javascripts/highstock/modules/grid-axis.js +23 -0
  563. data/vendor/assets/javascripts/highstock/modules/grid-axis.js.map +1 -0
  564. data/vendor/assets/javascripts/highstock/modules/grid-axis.src.js +988 -0
  565. data/vendor/assets/javascripts/highstock/modules/heatmap.js +28 -0
  566. data/vendor/assets/javascripts/highstock/modules/heatmap.js.map +1 -0
  567. data/vendor/assets/javascripts/highstock/modules/heatmap.src.js +1731 -0
  568. data/vendor/assets/javascripts/highstock/modules/histogram-bellcurve.js +16 -0
  569. data/vendor/assets/javascripts/highstock/modules/histogram-bellcurve.js.map +1 -0
  570. data/vendor/assets/javascripts/highstock/modules/histogram-bellcurve.src.js +570 -0
  571. data/vendor/assets/javascripts/highstock/modules/item-series.js +13 -0
  572. data/vendor/assets/javascripts/highstock/modules/item-series.js.map +1 -0
  573. data/vendor/assets/javascripts/highstock/modules/item-series.src.js +176 -0
  574. data/vendor/assets/javascripts/highstock/modules/networkgraph.js +31 -0
  575. data/vendor/assets/javascripts/highstock/modules/networkgraph.js.map +1 -0
  576. data/vendor/assets/javascripts/highstock/modules/networkgraph.src.js +1348 -0
  577. data/vendor/assets/javascripts/highstock/modules/no-data-to-display.js +13 -0
  578. data/vendor/assets/javascripts/highstock/modules/no-data-to-display.js.map +1 -0
  579. data/vendor/assets/javascripts/highstock/modules/no-data-to-display.src.js +285 -0
  580. data/vendor/assets/javascripts/highstock/modules/offline-exporting.js +22 -0
  581. data/vendor/assets/javascripts/highstock/modules/offline-exporting.js.map +1 -0
  582. data/vendor/assets/javascripts/highstock/modules/offline-exporting.src.js +838 -0
  583. data/vendor/assets/javascripts/highstock/modules/oldie-polyfills.js +13 -0
  584. data/vendor/assets/javascripts/highstock/modules/oldie-polyfills.js.map +1 -0
  585. data/vendor/assets/javascripts/highstock/modules/oldie-polyfills.src.js +150 -0
  586. data/vendor/assets/javascripts/highstock/modules/oldie.js +35 -0
  587. data/vendor/assets/javascripts/highstock/modules/oldie.js.map +1 -0
  588. data/vendor/assets/javascripts/highstock/modules/oldie.src.js +1582 -0
  589. data/vendor/assets/javascripts/highstock/modules/overlapping-datalabels.js +9 -0
  590. data/vendor/assets/javascripts/highstock/modules/overlapping-datalabels.js.map +1 -0
  591. data/vendor/assets/javascripts/highstock/modules/overlapping-datalabels.src.js +22 -0
  592. data/vendor/assets/javascripts/highstock/modules/parallel-coordinates.js +18 -0
  593. data/vendor/assets/javascripts/highstock/modules/parallel-coordinates.js.map +1 -0
  594. data/vendor/assets/javascripts/highstock/modules/parallel-coordinates.src.js +517 -0
  595. data/vendor/assets/javascripts/highstock/modules/pareto.js +14 -0
  596. data/vendor/assets/javascripts/highstock/modules/pareto.js.map +1 -0
  597. data/vendor/assets/javascripts/highstock/modules/pareto.src.js +327 -0
  598. data/vendor/assets/javascripts/highstock/modules/pathfinder.js +34 -0
  599. data/vendor/assets/javascripts/highstock/modules/pathfinder.js.map +1 -0
  600. data/vendor/assets/javascripts/highstock/modules/pathfinder.src.js +2336 -0
  601. data/vendor/assets/javascripts/highstock/modules/pattern-fill.js +21 -0
  602. data/vendor/assets/javascripts/highstock/modules/pattern-fill.js.map +1 -0
  603. data/vendor/assets/javascripts/highstock/modules/pattern-fill.src.js +634 -0
  604. data/vendor/assets/javascripts/highstock/modules/price-indicator.js +13 -0
  605. data/vendor/assets/javascripts/highstock/modules/price-indicator.js.map +1 -0
  606. data/vendor/assets/javascripts/highstock/modules/price-indicator.src.js +176 -0
  607. data/vendor/assets/javascripts/highstock/modules/sankey.js +22 -0
  608. data/vendor/assets/javascripts/highstock/modules/sankey.js.map +1 -0
  609. data/vendor/assets/javascripts/highstock/modules/sankey.src.js +911 -0
  610. data/vendor/assets/javascripts/highstock/modules/series-label.js +23 -0
  611. data/vendor/assets/javascripts/highstock/modules/series-label.js.map +1 -0
  612. data/vendor/assets/javascripts/highstock/modules/series-label.src.js +1065 -0
  613. data/vendor/assets/javascripts/highstock/modules/solid-gauge.js +15 -0
  614. data/vendor/assets/javascripts/highstock/modules/solid-gauge.js.map +1 -0
  615. data/vendor/assets/javascripts/highstock/modules/solid-gauge.src.js +510 -0
  616. data/vendor/assets/javascripts/highstock/modules/sonification.js +53 -0
  617. data/vendor/assets/javascripts/highstock/modules/sonification.js.map +1 -0
  618. data/vendor/assets/javascripts/highstock/modules/sonification.src.js +3341 -0
  619. data/vendor/assets/javascripts/highstock/modules/static-scale.js +12 -0
  620. data/vendor/assets/javascripts/highstock/modules/static-scale.js.map +1 -0
  621. data/vendor/assets/javascripts/highstock/modules/static-scale.src.js +114 -0
  622. data/vendor/assets/javascripts/highstock/modules/stock-tools.js +65 -0
  623. data/vendor/assets/javascripts/highstock/modules/stock-tools.js.map +1 -0
  624. data/vendor/assets/javascripts/highstock/modules/stock-tools.src.js +3437 -0
  625. data/vendor/assets/javascripts/highstock/modules/stock.js +151 -0
  626. data/vendor/assets/javascripts/highstock/modules/stock.js.map +1 -0
  627. data/vendor/assets/javascripts/highstock/modules/stock.src.js +10907 -0
  628. data/vendor/assets/javascripts/highstock/modules/streamgraph.js +10 -0
  629. data/vendor/assets/javascripts/highstock/modules/streamgraph.js.map +1 -0
  630. data/vendor/assets/javascripts/highstock/modules/streamgraph.src.js +158 -0
  631. data/vendor/assets/javascripts/highstock/modules/sunburst.js +52 -0
  632. data/vendor/assets/javascripts/highstock/modules/sunburst.js.map +1 -0
  633. data/vendor/assets/javascripts/highstock/modules/sunburst.src.js +3174 -0
  634. data/vendor/assets/javascripts/highstock/modules/tilemap.js +26 -0
  635. data/vendor/assets/javascripts/highstock/modules/tilemap.js.map +1 -0
  636. data/vendor/assets/javascripts/highstock/modules/tilemap.src.js +1402 -0
  637. data/vendor/assets/javascripts/highstock/modules/timeline.js +23 -0
  638. data/vendor/assets/javascripts/highstock/modules/timeline.js.map +1 -0
  639. data/vendor/assets/javascripts/highstock/modules/timeline.src.js +778 -0
  640. data/vendor/assets/javascripts/highstock/modules/treegrid.js +50 -0
  641. data/vendor/assets/javascripts/highstock/modules/treegrid.js.map +1 -0
  642. data/vendor/assets/javascripts/highstock/modules/treegrid.src.js +2917 -0
  643. data/vendor/assets/javascripts/highstock/modules/treemap.js +39 -0
  644. data/vendor/assets/javascripts/highstock/modules/treemap.js.map +1 -0
  645. data/vendor/assets/javascripts/highstock/modules/treemap.src.js +2083 -0
  646. data/vendor/assets/javascripts/highstock/modules/variable-pie.js +16 -0
  647. data/vendor/assets/javascripts/highstock/modules/variable-pie.js.map +1 -0
  648. data/vendor/assets/javascripts/highstock/modules/variable-pie.src.js +485 -0
  649. data/vendor/assets/javascripts/highstock/modules/variwide.js +15 -0
  650. data/vendor/assets/javascripts/highstock/modules/variwide.js.map +1 -0
  651. data/vendor/assets/javascripts/highstock/modules/variwide.src.js +376 -0
  652. data/vendor/assets/javascripts/highstock/modules/vector.js +13 -0
  653. data/vendor/assets/javascripts/highstock/modules/vector.js.map +1 -0
  654. data/vendor/assets/javascripts/highstock/modules/vector.src.js +381 -0
  655. data/vendor/assets/javascripts/highstock/modules/venn.js +30 -0
  656. data/vendor/assets/javascripts/highstock/modules/venn.js.map +1 -0
  657. data/vendor/assets/javascripts/highstock/modules/venn.src.js +1624 -0
  658. data/vendor/assets/javascripts/highstock/modules/windbarb.js +17 -0
  659. data/vendor/assets/javascripts/highstock/modules/windbarb.js.map +1 -0
  660. data/vendor/assets/javascripts/highstock/modules/windbarb.src.js +574 -0
  661. data/vendor/assets/javascripts/highstock/modules/wordcloud.js +25 -0
  662. data/vendor/assets/javascripts/highstock/modules/wordcloud.js.map +1 -0
  663. data/vendor/assets/javascripts/highstock/modules/wordcloud.src.js +1475 -0
  664. data/vendor/assets/javascripts/highstock/modules/xrange.js +20 -0
  665. data/vendor/assets/javascripts/highstock/modules/xrange.js.map +1 -0
  666. data/vendor/assets/javascripts/highstock/modules/xrange.src.js +788 -0
  667. data/vendor/assets/javascripts/highstock/themes/avocado.js +9 -0
  668. data/vendor/assets/javascripts/highstock/themes/avocado.js.map +1 -0
  669. data/vendor/assets/javascripts/highstock/themes/avocado.src.js +63 -0
  670. data/vendor/assets/javascripts/highstock/themes/dark-blue.js +15 -0
  671. data/vendor/assets/javascripts/highstock/themes/dark-blue.js.map +1 -0
  672. data/vendor/assets/javascripts/highstock/themes/dark-blue.src.js +285 -0
  673. data/vendor/assets/javascripts/highstock/themes/dark-green.js +15 -0
  674. data/vendor/assets/javascripts/highstock/themes/dark-green.js.map +1 -0
  675. data/vendor/assets/javascripts/highstock/themes/dark-green.src.js +287 -0
  676. data/vendor/assets/javascripts/highstock/themes/dark-unica.js +14 -0
  677. data/vendor/assets/javascripts/highstock/themes/dark-unica.js.map +1 -0
  678. data/vendor/assets/javascripts/highstock/themes/dark-unica.src.js +246 -0
  679. data/vendor/assets/javascripts/highstock/themes/gray.js +15 -0
  680. data/vendor/assets/javascripts/highstock/themes/gray.js.map +1 -0
  681. data/vendor/assets/javascripts/highstock/themes/gray.src.js +293 -0
  682. data/vendor/assets/javascripts/highstock/themes/grid-light.js +11 -0
  683. data/vendor/assets/javascripts/highstock/themes/grid-light.js.map +1 -0
  684. data/vendor/assets/javascripts/highstock/themes/grid-light.src.js +107 -0
  685. data/vendor/assets/javascripts/highstock/themes/grid.js +11 -0
  686. data/vendor/assets/javascripts/highstock/themes/grid.js.map +1 -0
  687. data/vendor/assets/javascripts/highstock/themes/grid.src.js +136 -0
  688. data/vendor/assets/javascripts/highstock/themes/sand-signika.js +11 -0
  689. data/vendor/assets/javascripts/highstock/themes/sand-signika.js.map +1 -0
  690. data/vendor/assets/javascripts/highstock/themes/sand-signika.src.js +137 -0
  691. data/vendor/assets/javascripts/highstock/themes/skies.js +11 -0
  692. data/vendor/assets/javascripts/highstock/themes/skies.js.map +1 -0
  693. data/vendor/assets/javascripts/highstock/themes/skies.src.js +126 -0
  694. data/vendor/assets/javascripts/highstock/themes/sunset.js +9 -0
  695. data/vendor/assets/javascripts/highstock/themes/sunset.js.map +1 -0
  696. data/vendor/assets/javascripts/highstock/themes/sunset.src.js +62 -0
  697. metadata +781 -0
@@ -0,0 +1,1332 @@
1
+ /**
2
+ * (c) 2010-2019 Torstein Honsi
3
+ *
4
+ * License: www.highcharts.com/license
5
+ */
6
+
7
+ /**
8
+ * One position in relation to an axis.
9
+ *
10
+ * @interface Highcharts.PointerAxisCoordinateObject
11
+ *//**
12
+ * Related axis.
13
+ *
14
+ * @name Highcharts.PointerAxisCoordinateObject#axis
15
+ * @type {Highcharts.Axis}
16
+ *//**
17
+ * Axis value.
18
+ *
19
+ * @name Highcharts.PointerAxisCoordinateObject#value
20
+ * @type {number}
21
+ */
22
+
23
+ /**
24
+ * Positions in terms of axis values.
25
+ *
26
+ * @interface Highcharts.PointerAxisCoordinatesObject
27
+ *//**
28
+ * Positions on the x-axis.
29
+ * @name Highcharts.PointerAxisCoordinatesObject#xAxis
30
+ * @type {Array<Highcharts.PointerAxisCoordinateObject>}
31
+ *//**
32
+ * Positions on the y-axis.
33
+ * @name Highcharts.PointerAxisCoordinatesObject#yAxis
34
+ * @type {Array<Highcharts.PointerAxisCoordinateObject>}
35
+ */
36
+
37
+ /**
38
+ * Pointer coordinates.
39
+ *
40
+ * @interface Highcharts.PointerCoordinatesObject
41
+ *//**
42
+ * @name Highcharts.PointerCoordinatesObject#chartX
43
+ * @type {number}
44
+ *//**
45
+ * @name Highcharts.PointerCoordinatesObject#chartY
46
+ * @type {number}
47
+ */
48
+
49
+ /**
50
+ * A native browser mouse or touch event, extended with position information
51
+ * relative to the {@link Chart.container}.
52
+ *
53
+ * @interface Highcharts.PointerEventObject
54
+ * @extends global.PointerEvent
55
+ *//**
56
+ * The X coordinate of the pointer interaction relative to the chart.
57
+ *
58
+ * @name Highcharts.PointerEventObject#chartX
59
+ * @type {number}
60
+ *//**
61
+ * The Y coordinate of the pointer interaction relative to the chart.
62
+ *
63
+ * @name Highcharts.PointerEventObject#chartY
64
+ * @type {number}
65
+ */
66
+
67
+ /**
68
+ * Axis-specific data of a selection.
69
+ *
70
+ * @interface Highcharts.SelectDataObject
71
+ *//**
72
+ * @name Highcharts.SelectDataObject#axis
73
+ * @type {Highcharts.Axis}
74
+ *//**
75
+ * @name Highcharts.SelectDataObject#min
76
+ * @type {number}
77
+ *//**
78
+ * @name Highcharts.SelectDataObject#max
79
+ * @type {number}
80
+ */
81
+
82
+ /**
83
+ * Object for select events.
84
+ *
85
+ * @interface Highcharts.SelectEventObject
86
+ *//**
87
+ * @name Highcharts.SelectEventObject#originalEvent
88
+ * @type {global.Event}
89
+ *//**
90
+ * @name Highcharts.SelectEventObject#xAxis
91
+ * @type {Array<Highcharts.SelectDataObject>}
92
+ *//**
93
+ * @name Highcharts.SelectEventObject#yAxis
94
+ * @type {Array<Highcharts.SelectDataObject>}
95
+ */
96
+
97
+ 'use strict';
98
+
99
+ import Highcharts from './Globals.js';
100
+ import './Utilities.js';
101
+ import './Tooltip.js';
102
+ import './Color.js';
103
+
104
+ var H = Highcharts,
105
+ addEvent = H.addEvent,
106
+ attr = H.attr,
107
+ charts = H.charts,
108
+ color = H.color,
109
+ css = H.css,
110
+ defined = H.defined,
111
+ extend = H.extend,
112
+ find = H.find,
113
+ fireEvent = H.fireEvent,
114
+ isNumber = H.isNumber,
115
+ isObject = H.isObject,
116
+ offset = H.offset,
117
+ pick = H.pick,
118
+ splat = H.splat,
119
+ Tooltip = H.Tooltip;
120
+
121
+ /**
122
+ * The mouse and touch tracker object. Each {@link Chart} item has one
123
+ * assosiated Pointer item that can be accessed from the {@link Chart.pointer}
124
+ * property.
125
+ *
126
+ * @class
127
+ * @name Highcharts.Pointer
128
+ *
129
+ * @param {Highcharts.Chart} chart
130
+ * The Chart instance.
131
+ *
132
+ * @param {Highcharts.Options} options
133
+ * The root options object. The pointer uses options from the chart and
134
+ * tooltip structures.
135
+ */
136
+ Highcharts.Pointer = function (chart, options) {
137
+ this.init(chart, options);
138
+ };
139
+
140
+ Highcharts.Pointer.prototype = {
141
+ /**
142
+ * Initialize the Pointer.
143
+ *
144
+ * @private
145
+ * @function Highcharts.Pointer#init
146
+ *
147
+ * @param {Highcharts.Chart} chart
148
+ * The Chart instance.
149
+ *
150
+ * @param {Highcharts.Options} options
151
+ * The root options object. The pointer uses options from the chart
152
+ * and tooltip structures.
153
+ */
154
+ init: function (chart, options) {
155
+
156
+ // Store references
157
+ this.options = options;
158
+ this.chart = chart;
159
+
160
+ // Do we need to handle click on a touch device?
161
+ this.runChartClick =
162
+ options.chart.events && !!options.chart.events.click;
163
+
164
+ this.pinchDown = [];
165
+ this.lastValidTouch = {};
166
+
167
+ if (Tooltip) {
168
+ /**
169
+ * Tooltip object for points of series.
170
+ *
171
+ * @name Highcharts.Chart#tooltip
172
+ * @type {Highcharts.Tooltip}
173
+ */
174
+ chart.tooltip = new Tooltip(chart, options.tooltip);
175
+ this.followTouchMove = pick(options.tooltip.followTouchMove, true);
176
+ }
177
+
178
+ this.setDOMEvents();
179
+ },
180
+
181
+ /**
182
+ * Resolve the zoomType option, this is reset on all touch start and mouse
183
+ * down events.
184
+ *
185
+ * @private
186
+ * @function Highcharts.Pointer#zoomOption
187
+ *
188
+ * @param {global.Event} e
189
+ * Event object.
190
+ */
191
+ zoomOption: function (e) {
192
+ var chart = this.chart,
193
+ options = chart.options.chart,
194
+ zoomType = options.zoomType || '',
195
+ inverted = chart.inverted,
196
+ zoomX,
197
+ zoomY;
198
+
199
+ // Look for the pinchType option
200
+ if (/touch/.test(e.type)) {
201
+ zoomType = pick(options.pinchType, zoomType);
202
+ }
203
+
204
+ this.zoomX = zoomX = /x/.test(zoomType);
205
+ this.zoomY = zoomY = /y/.test(zoomType);
206
+ this.zoomHor = (zoomX && !inverted) || (zoomY && inverted);
207
+ this.zoomVert = (zoomY && !inverted) || (zoomX && inverted);
208
+ this.hasZoom = zoomX || zoomY;
209
+ },
210
+
211
+ /**
212
+ * Takes a browser event object and extends it with custom Highcharts
213
+ * properties `chartX` and `chartY` in order to work on the internal
214
+ * coordinate system.
215
+ *
216
+ * @function Highcharts.Pointer#normalize
217
+ *
218
+ * @param {global.Event} e
219
+ * Event object in standard browsers.
220
+ *
221
+ * @return {Highcharts.PointerEventObject}
222
+ * A browser event with extended properties `chartX` and `chartY`.
223
+ */
224
+ normalize: function (e, chartPosition) {
225
+ var ePos;
226
+
227
+ // iOS (#2757)
228
+ ePos = e.touches ?
229
+ (e.touches.length ? e.touches.item(0) : e.changedTouches[0]) :
230
+ e;
231
+
232
+ // Get mouse position
233
+ if (!chartPosition) {
234
+ this.chartPosition = chartPosition = offset(this.chart.container);
235
+ }
236
+
237
+ return extend(e, {
238
+ chartX: Math.round(ePos.pageX - chartPosition.left),
239
+ chartY: Math.round(ePos.pageY - chartPosition.top)
240
+ });
241
+ },
242
+
243
+ /**
244
+ * Get the click position in terms of axis values.
245
+ *
246
+ * @function Highcharts.Pointer#getCoordinates
247
+ *
248
+ * @param {Highcharts.PointerEventObject} e
249
+ * Pointer event, extended with `chartX` and `chartY` properties.
250
+ *
251
+ * @return {Highcharts.PointerAxisCoordinatesObject}
252
+ */
253
+ getCoordinates: function (e) {
254
+
255
+ var coordinates = {
256
+ xAxis: [],
257
+ yAxis: []
258
+ };
259
+
260
+ this.chart.axes.forEach(function (axis) {
261
+ coordinates[axis.isXAxis ? 'xAxis' : 'yAxis'].push({
262
+ axis: axis,
263
+ value: axis.toValue(e[axis.horiz ? 'chartX' : 'chartY'])
264
+ });
265
+ });
266
+
267
+ return coordinates;
268
+ },
269
+
270
+ /**
271
+ * Finds the closest point to a set of coordinates, using the k-d-tree
272
+ * algorithm.
273
+ *
274
+ * @function Highcharts.Pointer#findNearestKDPoints
275
+ *
276
+ * @param {Array<Highcharts.Series>} series
277
+ * All the series to search in.
278
+ *
279
+ * @param {boolean} shared
280
+ * Whether it is a shared tooltip or not.
281
+ *
282
+ * @param {Highcharts.PointerEventObject} e
283
+ * The pointer event object, containing chart coordinates of the
284
+ * pointer.
285
+ *
286
+ * @return {Point|undefined}
287
+ * The point closest to given coordinates.
288
+ */
289
+ findNearestKDPoint: function (series, shared, e) {
290
+ var closest,
291
+ sort = function (p1, p2) {
292
+ var isCloserX = p1.distX - p2.distX,
293
+ isCloser = p1.dist - p2.dist,
294
+ isAbove =
295
+ (p2.series.group && p2.series.group.zIndex) -
296
+ (p1.series.group && p1.series.group.zIndex),
297
+ result;
298
+
299
+ // We have two points which are not in the same place on xAxis
300
+ // and shared tooltip:
301
+ if (isCloserX !== 0 && shared) { // #5721
302
+ result = isCloserX;
303
+ // Points are not exactly in the same place on x/yAxis:
304
+ } else if (isCloser !== 0) {
305
+ result = isCloser;
306
+ // The same xAxis and yAxis position, sort by z-index:
307
+ } else if (isAbove !== 0) {
308
+ result = isAbove;
309
+ // The same zIndex, sort by array index:
310
+ } else {
311
+ result = p1.series.index > p2.series.index ? -1 : 1;
312
+ }
313
+ return result;
314
+ };
315
+
316
+ series.forEach(function (s) {
317
+ var noSharedTooltip = s.noSharedTooltip && shared,
318
+ compareX = (
319
+ !noSharedTooltip &&
320
+ s.options.findNearestPointBy.indexOf('y') < 0
321
+ ),
322
+ point = s.searchPoint(
323
+ e,
324
+ compareX
325
+ );
326
+
327
+ if (
328
+ // Check that we actually found a point on the series.
329
+ isObject(point, true) &&
330
+ // Use the new point if it is closer.
331
+ (!isObject(closest, true) || (sort(closest, point) > 0))
332
+ ) {
333
+ closest = point;
334
+ }
335
+ });
336
+ return closest;
337
+ },
338
+
339
+ /**
340
+ * @private
341
+ * @function Highcharts.Pointer#getPointFromEvent
342
+ *
343
+ * @param {global.Event} e
344
+ *
345
+ * @return {Highcharts.Point|undefined}
346
+ */
347
+ getPointFromEvent: function (e) {
348
+ var target = e.target,
349
+ point;
350
+
351
+ while (target && !point) {
352
+ point = target.point;
353
+ target = target.parentNode;
354
+ }
355
+ return point;
356
+ },
357
+
358
+ /**
359
+ * @private
360
+ * @function Highcharts.Pointer#getChartCoordinatesFromPoint
361
+ *
362
+ * @param {Highcharts.Point} point
363
+ *
364
+ * @param {boolean} inverted
365
+ *
366
+ * @return {Highcharts.PointerCoordinatesObject}
367
+ */
368
+ getChartCoordinatesFromPoint: function (point, inverted) {
369
+ var series = point.series,
370
+ xAxis = series.xAxis,
371
+ yAxis = series.yAxis,
372
+ plotX = pick(point.clientX, point.plotX),
373
+ shapeArgs = point.shapeArgs;
374
+
375
+ if (xAxis && yAxis) {
376
+ return inverted ? {
377
+ chartX: xAxis.len + xAxis.pos - plotX,
378
+ chartY: yAxis.len + yAxis.pos - point.plotY
379
+ } : {
380
+ chartX: plotX + xAxis.pos,
381
+ chartY: point.plotY + yAxis.pos
382
+ };
383
+ }
384
+
385
+ if (shapeArgs && shapeArgs.x && shapeArgs.y) {
386
+ // E.g. pies do not have axes
387
+ return {
388
+ chartX: shapeArgs.x,
389
+ chartY: shapeArgs.y
390
+ };
391
+ }
392
+ },
393
+
394
+ /**
395
+ * Calculates what is the current hovered point/points and series.
396
+ *
397
+ * @private
398
+ * @function Highcharts.Pointer#getHoverData
399
+ *
400
+ * @param {Highcharts.Point|undefined} existingHoverPoint
401
+ * The point currrently beeing hovered.
402
+ *
403
+ * @param {Highcharts.Series|undefined} existingHoverSeries
404
+ * The series currently beeing hovered.
405
+ *
406
+ * @param {Array<Highcharts.Series>} series
407
+ * All the series in the chart.
408
+ *
409
+ * @param {boolean} isDirectTouch
410
+ * Is the pointer directly hovering the point.
411
+ *
412
+ * @param {boolean} shared
413
+ * Whether it is a shared tooltip or not.
414
+ *
415
+ * @param {Highcharts.PointerEventObject} e
416
+ * The triggering event, containing chart coordinates of the pointer.
417
+ *
418
+ * @return {*}
419
+ * Object containing resulting hover data: hoverPoint, hoverSeries,
420
+ * and hoverPoints.
421
+ */
422
+ getHoverData: function (
423
+ existingHoverPoint,
424
+ existingHoverSeries,
425
+ series,
426
+ isDirectTouch,
427
+ shared,
428
+ e
429
+ ) {
430
+ var hoverPoint,
431
+ hoverPoints = [],
432
+ hoverSeries = existingHoverSeries,
433
+ useExisting = !!(isDirectTouch && existingHoverPoint),
434
+ notSticky = hoverSeries && !hoverSeries.stickyTracking,
435
+ filter = function (s) {
436
+ return (
437
+ s.visible &&
438
+ !(!shared && s.directTouch) && // #3821
439
+ pick(s.options.enableMouseTracking, true)
440
+ );
441
+ },
442
+ // Which series to look in for the hover point
443
+ searchSeries = notSticky ?
444
+ // Only search on hovered series if it has stickyTracking false
445
+ [hoverSeries] :
446
+ // Filter what series to look in.
447
+ series.filter(function (s) {
448
+ return filter(s) && s.stickyTracking;
449
+ });
450
+
451
+ // Use existing hovered point or find the one closest to coordinates.
452
+ hoverPoint = useExisting ?
453
+ existingHoverPoint :
454
+ this.findNearestKDPoint(searchSeries, shared, e);
455
+
456
+ // Assign hover series
457
+ hoverSeries = hoverPoint && hoverPoint.series;
458
+
459
+ // If we have a hoverPoint, assign hoverPoints.
460
+ if (hoverPoint) {
461
+ // When tooltip is shared, it displays more than one point
462
+ if (shared && !hoverSeries.noSharedTooltip) {
463
+ searchSeries = series.filter(function (s) {
464
+ return filter(s) && !s.noSharedTooltip;
465
+ });
466
+
467
+ // Get all points with the same x value as the hoverPoint
468
+ searchSeries.forEach(function (s) {
469
+ var point = find(s.points, function (p) {
470
+ return p.x === hoverPoint.x && !p.isNull;
471
+ });
472
+
473
+ if (isObject(point)) {
474
+ /*
475
+ * Boost returns a minimal point. Convert it to a usable
476
+ * point for tooltip and states.
477
+ */
478
+ if (s.chart.isBoosting) {
479
+ point = s.getPoint(point);
480
+ }
481
+ hoverPoints.push(point);
482
+ }
483
+ });
484
+ } else {
485
+ hoverPoints.push(hoverPoint);
486
+ }
487
+ }
488
+ return {
489
+ hoverPoint: hoverPoint,
490
+ hoverSeries: hoverSeries,
491
+ hoverPoints: hoverPoints
492
+ };
493
+ },
494
+
495
+ /**
496
+ * With line type charts with a single tracker, get the point closest to the
497
+ * mouse. Run Point.onMouseOver and display tooltip for the point or points.
498
+ *
499
+ * @private
500
+ * @function Highcharts.Pointer#runPointActions
501
+ *
502
+ * @param {global.Event} e
503
+ *
504
+ * @param {Highcharts.Point} p
505
+ *
506
+ * @fires Highcharts.Point#event:mouseOut
507
+ * @fires Highcharts.Point#event:mouseOver
508
+ */
509
+ runPointActions: function (e, p) {
510
+ var pointer = this,
511
+ chart = pointer.chart,
512
+ series = chart.series,
513
+ tooltip = chart.tooltip && chart.tooltip.options.enabled ?
514
+ chart.tooltip :
515
+ undefined,
516
+ shared = tooltip ? tooltip.shared : false,
517
+ hoverPoint = p || chart.hoverPoint,
518
+ hoverSeries = hoverPoint && hoverPoint.series || chart.hoverSeries,
519
+ // onMouseOver or already hovering a series with directTouch
520
+ isDirectTouch = e.type !== 'touchmove' && (
521
+ !!p || (
522
+ (hoverSeries && hoverSeries.directTouch) &&
523
+ pointer.isDirectTouch
524
+ )
525
+ ),
526
+ hoverData = this.getHoverData(
527
+ hoverPoint,
528
+ hoverSeries,
529
+ series,
530
+ isDirectTouch,
531
+ shared,
532
+ e
533
+ ),
534
+ useSharedTooltip,
535
+ followPointer,
536
+ anchor,
537
+ points;
538
+
539
+ // Update variables from hoverData.
540
+ hoverPoint = hoverData.hoverPoint;
541
+ points = hoverData.hoverPoints;
542
+ hoverSeries = hoverData.hoverSeries;
543
+ followPointer = hoverSeries && hoverSeries.tooltipOptions.followPointer;
544
+ useSharedTooltip = (
545
+ shared &&
546
+ hoverSeries &&
547
+ !hoverSeries.noSharedTooltip
548
+ );
549
+
550
+ // Refresh tooltip for kdpoint if new hover point or tooltip was hidden
551
+ // #3926, #4200
552
+ if (
553
+ hoverPoint &&
554
+ // !(hoverSeries && hoverSeries.directTouch) &&
555
+ (hoverPoint !== chart.hoverPoint || (tooltip && tooltip.isHidden))
556
+ ) {
557
+ (chart.hoverPoints || []).forEach(function (p) {
558
+ if (points.indexOf(p) === -1) {
559
+ p.setState();
560
+ }
561
+ });
562
+ // Do mouseover on all points (#3919, #3985, #4410, #5622)
563
+ (points || []).forEach(function (p) {
564
+ p.setState('hover');
565
+ });
566
+ // set normal state to previous series
567
+ if (chart.hoverSeries !== hoverSeries) {
568
+ hoverSeries.onMouseOver();
569
+ }
570
+
571
+ // If tracking is on series in stead of on each point,
572
+ // fire mouseOver on hover point. // #4448
573
+ if (chart.hoverPoint) {
574
+ chart.hoverPoint.firePointEvent('mouseOut');
575
+ }
576
+
577
+ // Hover point may have been destroyed in the event handlers (#7127)
578
+ if (!hoverPoint.series) {
579
+ return;
580
+ }
581
+
582
+ hoverPoint.firePointEvent('mouseOver');
583
+ chart.hoverPoints = points;
584
+ chart.hoverPoint = hoverPoint;
585
+ // Draw tooltip if necessary
586
+ if (tooltip) {
587
+ tooltip.refresh(useSharedTooltip ? points : hoverPoint, e);
588
+ }
589
+ // Update positions (regardless of kdpoint or hoverPoint)
590
+ } else if (followPointer && tooltip && !tooltip.isHidden) {
591
+ anchor = tooltip.getAnchor([{}], e);
592
+ tooltip.updatePosition({ plotX: anchor[0], plotY: anchor[1] });
593
+ }
594
+
595
+ // Start the event listener to pick up the tooltip and crosshairs
596
+ if (!pointer.unDocMouseMove) {
597
+ pointer.unDocMouseMove = addEvent(
598
+ chart.container.ownerDocument,
599
+ 'mousemove',
600
+ function (e) {
601
+ var chart = charts[H.hoverChartIndex];
602
+
603
+ if (chart) {
604
+ chart.pointer.onDocumentMouseMove(e);
605
+ }
606
+ }
607
+ );
608
+ }
609
+
610
+ // Issues related to crosshair #4927, #5269 #5066, #5658
611
+ chart.axes.forEach(function drawAxisCrosshair(axis) {
612
+ var snap = pick(axis.crosshair.snap, true),
613
+ point = !snap ?
614
+ undefined :
615
+ H.find(points, function (p) {
616
+ return p.series[axis.coll] === axis;
617
+ });
618
+
619
+ // Axis has snapping crosshairs, and one of the hover points belongs
620
+ // to axis. Always call drawCrosshair when it is not snap.
621
+ if (point || !snap) {
622
+ axis.drawCrosshair(e, point);
623
+ // Axis has snapping crosshairs, but no hover point belongs to axis
624
+ } else {
625
+ axis.hideCrosshair();
626
+ }
627
+ });
628
+ },
629
+
630
+ /**
631
+ * Reset the tracking by hiding the tooltip, the hover series state and the
632
+ * hover point
633
+ *
634
+ * @function Highcharts.Pointer#reset
635
+ *
636
+ * @param {boolean} allowMove
637
+ * Instead of destroying the tooltip altogether, allow moving it if
638
+ * possible.
639
+ *
640
+ * @param {number} delay
641
+ */
642
+ reset: function (allowMove, delay) {
643
+ var pointer = this,
644
+ chart = pointer.chart,
645
+ hoverSeries = chart.hoverSeries,
646
+ hoverPoint = chart.hoverPoint,
647
+ hoverPoints = chart.hoverPoints,
648
+ tooltip = chart.tooltip,
649
+ tooltipPoints = tooltip && tooltip.shared ?
650
+ hoverPoints :
651
+ hoverPoint;
652
+
653
+ // Check if the points have moved outside the plot area (#1003, #4736,
654
+ // #5101)
655
+ if (allowMove && tooltipPoints) {
656
+ splat(tooltipPoints).forEach(function (point) {
657
+ if (point.series.isCartesian && point.plotX === undefined) {
658
+ allowMove = false;
659
+ }
660
+ });
661
+ }
662
+
663
+ // Just move the tooltip, #349
664
+ if (allowMove) {
665
+ if (tooltip && tooltipPoints && splat(tooltipPoints).length) {
666
+ tooltip.refresh(tooltipPoints);
667
+ if (tooltip.shared && hoverPoints) { // #8284
668
+ hoverPoints.forEach(function (point) {
669
+ point.setState(point.state, true);
670
+ if (point.series.isCartesian) {
671
+ if (point.series.xAxis.crosshair) {
672
+ point.series.xAxis.drawCrosshair(null, point);
673
+ }
674
+ if (point.series.yAxis.crosshair) {
675
+ point.series.yAxis.drawCrosshair(null, point);
676
+ }
677
+ }
678
+ });
679
+ } else if (hoverPoint) { // #2500
680
+ hoverPoint.setState(hoverPoint.state, true);
681
+ chart.axes.forEach(function (axis) {
682
+ if (axis.crosshair) {
683
+ axis.drawCrosshair(null, hoverPoint);
684
+ }
685
+ });
686
+ }
687
+ }
688
+
689
+ // Full reset
690
+ } else {
691
+
692
+ if (hoverPoint) {
693
+ hoverPoint.onMouseOut();
694
+ }
695
+
696
+ if (hoverPoints) {
697
+ hoverPoints.forEach(function (point) {
698
+ point.setState();
699
+ });
700
+ }
701
+
702
+ if (hoverSeries) {
703
+ hoverSeries.onMouseOut();
704
+ }
705
+
706
+ if (tooltip) {
707
+ tooltip.hide(delay);
708
+ }
709
+
710
+ if (pointer.unDocMouseMove) {
711
+ pointer.unDocMouseMove = pointer.unDocMouseMove();
712
+ }
713
+
714
+ // Remove crosshairs
715
+ chart.axes.forEach(function (axis) {
716
+ axis.hideCrosshair();
717
+ });
718
+
719
+ pointer.hoverX = chart.hoverPoints = chart.hoverPoint = null;
720
+ }
721
+ },
722
+
723
+ /**
724
+ * Scale series groups to a certain scale and translation.
725
+ *
726
+ * @private
727
+ * @function Highcharts.Pointer#scaleGroups
728
+ *
729
+ * @param {Highcharts.SeriesPlotBoxObject} attribs
730
+ *
731
+ * @param {boolean} clip
732
+ */
733
+ scaleGroups: function (attribs, clip) {
734
+
735
+ var chart = this.chart,
736
+ seriesAttribs;
737
+
738
+ // Scale each series
739
+ chart.series.forEach(function (series) {
740
+ seriesAttribs = attribs || series.getPlotBox(); // #1701
741
+ if (series.xAxis && series.xAxis.zoomEnabled && series.group) {
742
+ series.group.attr(seriesAttribs);
743
+ if (series.markerGroup) {
744
+ series.markerGroup.attr(seriesAttribs);
745
+ series.markerGroup.clip(clip ? chart.clipRect : null);
746
+ }
747
+ if (series.dataLabelsGroup) {
748
+ series.dataLabelsGroup.attr(seriesAttribs);
749
+ }
750
+ }
751
+ });
752
+
753
+ // Clip
754
+ chart.clipRect.attr(clip || chart.clipBox);
755
+ },
756
+
757
+ /**
758
+ * Start a drag operation.
759
+ *
760
+ * @private
761
+ * @function Highcharts.Pointer#dragStart
762
+ *
763
+ * @param {Highcharts.PointerEventObject} e
764
+ */
765
+ dragStart: function (e) {
766
+ var chart = this.chart;
767
+
768
+ // Record the start position
769
+ chart.mouseIsDown = e.type;
770
+ chart.cancelClick = false;
771
+ chart.mouseDownX = this.mouseDownX = e.chartX;
772
+ chart.mouseDownY = this.mouseDownY = e.chartY;
773
+ },
774
+
775
+ /**
776
+ * Perform a drag operation in response to a mousemove event while the mouse
777
+ * is down.
778
+ *
779
+ * @private
780
+ * @function Highcharts.Pointer#drag
781
+ *
782
+ * @param {Highcharts.PointerEventObject} e
783
+ */
784
+ drag: function (e) {
785
+
786
+ var chart = this.chart,
787
+ chartOptions = chart.options.chart,
788
+ chartX = e.chartX,
789
+ chartY = e.chartY,
790
+ zoomHor = this.zoomHor,
791
+ zoomVert = this.zoomVert,
792
+ plotLeft = chart.plotLeft,
793
+ plotTop = chart.plotTop,
794
+ plotWidth = chart.plotWidth,
795
+ plotHeight = chart.plotHeight,
796
+ clickedInside,
797
+ size,
798
+ selectionMarker = this.selectionMarker,
799
+ mouseDownX = this.mouseDownX,
800
+ mouseDownY = this.mouseDownY,
801
+ panKey = chartOptions.panKey && e[chartOptions.panKey + 'Key'];
802
+
803
+ // If the device supports both touch and mouse (like IE11), and we are
804
+ // touch-dragging inside the plot area, don't handle the mouse event.
805
+ // #4339.
806
+ if (selectionMarker && selectionMarker.touch) {
807
+ return;
808
+ }
809
+
810
+ // If the mouse is outside the plot area, adjust to cooordinates
811
+ // inside to prevent the selection marker from going outside
812
+ if (chartX < plotLeft) {
813
+ chartX = plotLeft;
814
+ } else if (chartX > plotLeft + plotWidth) {
815
+ chartX = plotLeft + plotWidth;
816
+ }
817
+
818
+ if (chartY < plotTop) {
819
+ chartY = plotTop;
820
+ } else if (chartY > plotTop + plotHeight) {
821
+ chartY = plotTop + plotHeight;
822
+ }
823
+
824
+ // determine if the mouse has moved more than 10px
825
+ this.hasDragged = Math.sqrt(
826
+ Math.pow(mouseDownX - chartX, 2) +
827
+ Math.pow(mouseDownY - chartY, 2)
828
+ );
829
+
830
+ if (this.hasDragged > 10) {
831
+ clickedInside = chart.isInsidePlot(
832
+ mouseDownX - plotLeft,
833
+ mouseDownY - plotTop
834
+ );
835
+
836
+ // make a selection
837
+ if (
838
+ chart.hasCartesianSeries &&
839
+ (this.zoomX || this.zoomY) &&
840
+ clickedInside &&
841
+ !panKey
842
+ ) {
843
+ if (!selectionMarker) {
844
+ this.selectionMarker = selectionMarker =
845
+ chart.renderer.rect(
846
+ plotLeft,
847
+ plotTop,
848
+ zoomHor ? 1 : plotWidth,
849
+ zoomVert ? 1 : plotHeight,
850
+ 0
851
+ )
852
+ .attr({
853
+ 'class': 'highcharts-selection-marker',
854
+ 'zIndex': 7
855
+ })
856
+ .add();
857
+
858
+ if (!chart.styledMode) {
859
+ selectionMarker.attr({
860
+ fill: (
861
+ chartOptions.selectionMarkerFill ||
862
+ color('#335cad')
863
+ .setOpacity(0.25).get()
864
+ )
865
+ });
866
+ }
867
+ }
868
+ }
869
+
870
+ // adjust the width of the selection marker
871
+ if (selectionMarker && zoomHor) {
872
+ size = chartX - mouseDownX;
873
+ selectionMarker.attr({
874
+ width: Math.abs(size),
875
+ x: (size > 0 ? 0 : size) + mouseDownX
876
+ });
877
+ }
878
+ // adjust the height of the selection marker
879
+ if (selectionMarker && zoomVert) {
880
+ size = chartY - mouseDownY;
881
+ selectionMarker.attr({
882
+ height: Math.abs(size),
883
+ y: (size > 0 ? 0 : size) + mouseDownY
884
+ });
885
+ }
886
+
887
+ // panning
888
+ if (clickedInside && !selectionMarker && chartOptions.panning) {
889
+ chart.pan(e, chartOptions.panning);
890
+ }
891
+ }
892
+ },
893
+
894
+ /**
895
+ * On mouse up or touch end across the entire document, drop the selection.
896
+ *
897
+ * @private
898
+ * @function Highcharts.Pointer#drop
899
+ *
900
+ * @param {global.Event} e
901
+ */
902
+ drop: function (e) {
903
+ var pointer = this,
904
+ chart = this.chart,
905
+ hasPinched = this.hasPinched;
906
+
907
+ if (this.selectionMarker) {
908
+ var selectionData = {
909
+ originalEvent: e, // #4890
910
+ xAxis: [],
911
+ yAxis: []
912
+ },
913
+ selectionBox = this.selectionMarker,
914
+ selectionLeft = selectionBox.attr ?
915
+ selectionBox.attr('x') :
916
+ selectionBox.x,
917
+ selectionTop = selectionBox.attr ?
918
+ selectionBox.attr('y') :
919
+ selectionBox.y,
920
+ selectionWidth = selectionBox.attr ?
921
+ selectionBox.attr('width') :
922
+ selectionBox.width,
923
+ selectionHeight = selectionBox.attr ?
924
+ selectionBox.attr('height') :
925
+ selectionBox.height,
926
+ runZoom;
927
+
928
+ // a selection has been made
929
+ if (this.hasDragged || hasPinched) {
930
+
931
+ // record each axis' min and max
932
+ chart.axes.forEach(function (axis) {
933
+ if (
934
+ axis.zoomEnabled &&
935
+ defined(axis.min) &&
936
+ (
937
+ hasPinched ||
938
+ pointer[{
939
+ xAxis: 'zoomX',
940
+ yAxis: 'zoomY'
941
+ }[axis.coll]]
942
+ )
943
+ ) { // #859, #3569
944
+ var horiz = axis.horiz,
945
+ minPixelPadding = e.type === 'touchend' ?
946
+ axis.minPixelPadding :
947
+ 0, // #1207, #3075
948
+ selectionMin = axis.toValue(
949
+ (horiz ? selectionLeft : selectionTop) +
950
+ minPixelPadding
951
+ ),
952
+ selectionMax = axis.toValue(
953
+ (
954
+ horiz ?
955
+ selectionLeft + selectionWidth :
956
+ selectionTop + selectionHeight
957
+ ) - minPixelPadding
958
+ );
959
+
960
+ selectionData[axis.coll].push({
961
+ axis: axis,
962
+ // Min/max for reversed axes
963
+ min: Math.min(selectionMin, selectionMax),
964
+ max: Math.max(selectionMin, selectionMax)
965
+ });
966
+ runZoom = true;
967
+ }
968
+ });
969
+ if (runZoom) {
970
+ fireEvent(
971
+ chart,
972
+ 'selection',
973
+ selectionData,
974
+ function (args) {
975
+ chart.zoom(
976
+ extend(
977
+ args,
978
+ hasPinched ? { animation: false } : null
979
+ )
980
+ );
981
+ }
982
+ );
983
+ }
984
+
985
+ }
986
+
987
+ if (isNumber(chart.index)) {
988
+ this.selectionMarker = this.selectionMarker.destroy();
989
+ }
990
+
991
+ // Reset scaling preview
992
+ if (hasPinched) {
993
+ this.scaleGroups();
994
+ }
995
+ }
996
+
997
+ // Reset all. Check isNumber because it may be destroyed on mouse up
998
+ // (#877)
999
+ if (chart && isNumber(chart.index)) {
1000
+ css(chart.container, { cursor: chart._cursor });
1001
+ chart.cancelClick = this.hasDragged > 10; // #370
1002
+ chart.mouseIsDown = this.hasDragged = this.hasPinched = false;
1003
+ this.pinchDown = [];
1004
+ }
1005
+ },
1006
+
1007
+ /**
1008
+ * @private
1009
+ * @function Highcharts.Pointer#onContainerMouseDown
1010
+ *
1011
+ * @param {global.Event} e
1012
+ */
1013
+ onContainerMouseDown: function (e) {
1014
+ // Normalize before the 'if' for the legacy IE (#7850)
1015
+ e = this.normalize(e);
1016
+
1017
+ if (e.button !== 2) {
1018
+
1019
+ this.zoomOption(e);
1020
+
1021
+ // issue #295, dragging not always working in Firefox
1022
+ if (e.preventDefault) {
1023
+ e.preventDefault();
1024
+ }
1025
+
1026
+ this.dragStart(e);
1027
+ }
1028
+ },
1029
+
1030
+ /**
1031
+ * @private
1032
+ * @function Highcharts.Pointer#onDocumentMouseUp
1033
+ *
1034
+ * @param {global.Event} e
1035
+ */
1036
+ onDocumentMouseUp: function (e) {
1037
+ if (charts[H.hoverChartIndex]) {
1038
+ charts[H.hoverChartIndex].pointer.drop(e);
1039
+ }
1040
+ },
1041
+
1042
+ /**
1043
+ * Special handler for mouse move that will hide the tooltip when the mouse
1044
+ * leaves the plotarea. Issue #149 workaround. The mouseleave event does not
1045
+ * always fire.
1046
+ *
1047
+ * @private
1048
+ * @function Highcharts.Pointer#onDocumentMouseMove
1049
+ *
1050
+ * @param {Highcharts.PointerEventObject} e
1051
+ */
1052
+ onDocumentMouseMove: function (e) {
1053
+ var chart = this.chart,
1054
+ chartPosition = this.chartPosition;
1055
+
1056
+ e = this.normalize(e, chartPosition);
1057
+
1058
+ // If we're outside, hide the tooltip
1059
+ if (
1060
+ chartPosition &&
1061
+ !this.inClass(e.target, 'highcharts-tracker') &&
1062
+ !chart.isInsidePlot(
1063
+ e.chartX - chart.plotLeft,
1064
+ e.chartY - chart.plotTop
1065
+ )
1066
+ ) {
1067
+ this.reset();
1068
+ }
1069
+ },
1070
+
1071
+ /**
1072
+ * When mouse leaves the container, hide the tooltip.
1073
+ *
1074
+ * @private
1075
+ * @function Highcharts.Pointer#onContainerMouseLeave
1076
+ *
1077
+ * @param {global.Event} e
1078
+ */
1079
+ onContainerMouseLeave: function (e) {
1080
+ var chart = charts[H.hoverChartIndex];
1081
+
1082
+ // #4886, MS Touch end fires mouseleave but with no related target
1083
+ if (chart && (e.relatedTarget || e.toElement)) {
1084
+ chart.pointer.reset();
1085
+ // Also reset the chart position, used in #149 fix
1086
+ chart.pointer.chartPosition = null;
1087
+ }
1088
+ },
1089
+
1090
+ /**
1091
+ * The mousemove, touchmove and touchstart event handler
1092
+ *
1093
+ * @private
1094
+ * @function Highcharts.Pointer#onContainerMouseMove
1095
+ *
1096
+ * @param {Highcharts.PointerEventObject} e
1097
+ */
1098
+ onContainerMouseMove: function (e) {
1099
+
1100
+ var chart = this.chart;
1101
+
1102
+ if (
1103
+ !defined(H.hoverChartIndex) ||
1104
+ !charts[H.hoverChartIndex] ||
1105
+ !charts[H.hoverChartIndex].mouseIsDown
1106
+ ) {
1107
+ H.hoverChartIndex = chart.index;
1108
+ }
1109
+
1110
+ e = this.normalize(e);
1111
+
1112
+ // In IE8 we apparently need this returnValue set to false in order to
1113
+ // avoid text being selected. But in Chrome, e.returnValue is prevented,
1114
+ // plus we don't need to run e.preventDefault to prevent selected text
1115
+ // in modern browsers. So we set it conditionally. Remove it when IE8 is
1116
+ // no longer needed. #2251, #3224.
1117
+ if (!e.preventDefault) {
1118
+ e.returnValue = false;
1119
+ }
1120
+
1121
+ if (chart.mouseIsDown === 'mousedown') {
1122
+ this.drag(e);
1123
+ }
1124
+
1125
+ // Show the tooltip and run mouse over events (#977)
1126
+ if (
1127
+ (
1128
+ this.inClass(e.target, 'highcharts-tracker') ||
1129
+ chart.isInsidePlot(
1130
+ e.chartX - chart.plotLeft,
1131
+ e.chartY - chart.plotTop
1132
+ )
1133
+ ) &&
1134
+ !chart.openMenu
1135
+ ) {
1136
+ this.runPointActions(e);
1137
+ }
1138
+ },
1139
+
1140
+ /**
1141
+ * Utility to detect whether an element has, or has a parent with, a
1142
+ * specificclass name. Used on detection of tracker objects and on deciding
1143
+ * whether hovering the tooltip should cause the active series to mouse out.
1144
+ *
1145
+ * @function Highcharts.Pointer#inClass
1146
+ *
1147
+ * @param {Highcharts.SVGDOMElement|Highcharts.HTMLDOMElement} element
1148
+ * The element to investigate.
1149
+ *
1150
+ * @param {string} className
1151
+ * The class name to look for.
1152
+ *
1153
+ * @return {boolean}
1154
+ * True if either the element or one of its parents has the given
1155
+ * class name.
1156
+ */
1157
+ inClass: function (element, className) {
1158
+ var elemClassName;
1159
+
1160
+ while (element) {
1161
+ elemClassName = attr(element, 'class');
1162
+ if (elemClassName) {
1163
+ if (elemClassName.indexOf(className) !== -1) {
1164
+ return true;
1165
+ }
1166
+ if (elemClassName.indexOf('highcharts-container') !== -1) {
1167
+ return false;
1168
+ }
1169
+ }
1170
+ element = element.parentNode;
1171
+ }
1172
+ },
1173
+
1174
+ /**
1175
+ * @private
1176
+ * @function Highcharts.Pointer#onTrackerMouseOut
1177
+ *
1178
+ * @param {global.Event} e
1179
+ */
1180
+ onTrackerMouseOut: function (e) {
1181
+ var series = this.chart.hoverSeries,
1182
+ relatedTarget = e.relatedTarget || e.toElement;
1183
+
1184
+ this.isDirectTouch = false;
1185
+
1186
+ if (
1187
+ series &&
1188
+ relatedTarget &&
1189
+ !series.stickyTracking &&
1190
+ !this.inClass(relatedTarget, 'highcharts-tooltip') &&
1191
+ (
1192
+ !this.inClass(
1193
+ relatedTarget,
1194
+ 'highcharts-series-' + series.index
1195
+ ) || // #2499, #4465
1196
+ !this.inClass(relatedTarget, 'highcharts-tracker') // #5553
1197
+ )
1198
+ ) {
1199
+ series.onMouseOut();
1200
+ }
1201
+ },
1202
+
1203
+ /**
1204
+ * @private
1205
+ * @function Highcharts.Pointer#onContainerClick
1206
+ *
1207
+ * @param {Highcharts.PointerEventObject} e
1208
+ */
1209
+ onContainerClick: function (e) {
1210
+ var chart = this.chart,
1211
+ hoverPoint = chart.hoverPoint,
1212
+ plotLeft = chart.plotLeft,
1213
+ plotTop = chart.plotTop;
1214
+
1215
+ e = this.normalize(e);
1216
+
1217
+ if (!chart.cancelClick) {
1218
+
1219
+ // On tracker click, fire the series and point events. #783, #1583
1220
+ if (hoverPoint && this.inClass(e.target, 'highcharts-tracker')) {
1221
+
1222
+ // the series click event
1223
+ fireEvent(hoverPoint.series, 'click', extend(e, {
1224
+ point: hoverPoint
1225
+ }));
1226
+
1227
+ // the point click event
1228
+ if (chart.hoverPoint) { // it may be destroyed (#1844)
1229
+ hoverPoint.firePointEvent('click', e);
1230
+ }
1231
+
1232
+ // When clicking outside a tracker, fire a chart event
1233
+ } else {
1234
+ extend(e, this.getCoordinates(e));
1235
+
1236
+ // fire a click event in the chart
1237
+ if (
1238
+ chart.isInsidePlot(e.chartX - plotLeft, e.chartY - plotTop)
1239
+ ) {
1240
+ fireEvent(chart, 'click', e);
1241
+ }
1242
+ }
1243
+
1244
+
1245
+ }
1246
+ },
1247
+
1248
+ /**
1249
+ * Set the JS DOM events on the container and document. This method should
1250
+ * contain a one-to-one assignment between methods and their handlers. Any
1251
+ * advanced logic should be moved to the handler reflecting the event's
1252
+ * name.
1253
+ *
1254
+ * @private
1255
+ * @function Highcharts.Pointer#setDOMEvents
1256
+ */
1257
+ setDOMEvents: function () {
1258
+
1259
+ var pointer = this,
1260
+ container = pointer.chart.container,
1261
+ ownerDoc = container.ownerDocument;
1262
+
1263
+ container.onmousedown = function (e) {
1264
+ pointer.onContainerMouseDown(e);
1265
+ };
1266
+ container.onmousemove = function (e) {
1267
+ pointer.onContainerMouseMove(e);
1268
+ };
1269
+ container.onclick = function (e) {
1270
+ pointer.onContainerClick(e);
1271
+ };
1272
+ this.unbindContainerMouseLeave = addEvent(
1273
+ container,
1274
+ 'mouseleave',
1275
+ pointer.onContainerMouseLeave
1276
+ );
1277
+ if (!H.unbindDocumentMouseUp) {
1278
+ H.unbindDocumentMouseUp = addEvent(
1279
+ ownerDoc,
1280
+ 'mouseup',
1281
+ pointer.onDocumentMouseUp
1282
+ );
1283
+ }
1284
+ if (H.hasTouch) {
1285
+ container.ontouchstart = function (e) {
1286
+ pointer.onContainerTouchStart(e);
1287
+ };
1288
+ container.ontouchmove = function (e) {
1289
+ pointer.onContainerTouchMove(e);
1290
+ };
1291
+ if (!H.unbindDocumentTouchEnd) {
1292
+ H.unbindDocumentTouchEnd = addEvent(
1293
+ ownerDoc,
1294
+ 'touchend',
1295
+ pointer.onDocumentTouchEnd
1296
+ );
1297
+ }
1298
+ }
1299
+
1300
+ },
1301
+
1302
+ /**
1303
+ * Destroys the Pointer object and disconnects DOM events.
1304
+ *
1305
+ * @function Highcharts.Pointer#destroy
1306
+ */
1307
+ destroy: function () {
1308
+ var pointer = this;
1309
+
1310
+ if (pointer.unDocMouseMove) {
1311
+ pointer.unDocMouseMove();
1312
+ }
1313
+
1314
+ this.unbindContainerMouseLeave();
1315
+
1316
+ if (!H.chartCount) {
1317
+ if (H.unbindDocumentMouseUp) {
1318
+ H.unbindDocumentMouseUp = H.unbindDocumentMouseUp();
1319
+ }
1320
+ if (H.unbindDocumentTouchEnd) {
1321
+ H.unbindDocumentTouchEnd = H.unbindDocumentTouchEnd();
1322
+ }
1323
+ }
1324
+
1325
+ // memory and CPU leak
1326
+ clearInterval(pointer.tooltipTimeout);
1327
+
1328
+ H.objectEach(pointer, function (val, prop) {
1329
+ pointer[prop] = null;
1330
+ });
1331
+ }
1332
+ };