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,961 @@
1
+ /* *
2
+ * (c) 2016 Highsoft AS
3
+ * Authors: Lars A. V. Cabrera
4
+ *
5
+ * License: www.highcharts.com/license
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ import H from '../parts/Globals.js';
11
+
12
+ var addEvent = H.addEvent,
13
+ argsToArray = function (args) {
14
+ return Array.prototype.slice.call(args, 1);
15
+ },
16
+ dateFormat = H.dateFormat,
17
+ defined = H.defined,
18
+ isArray = H.isArray,
19
+ isNumber = H.isNumber,
20
+ isObject = function (x) {
21
+ // Always use strict mode
22
+ return H.isObject(x, true);
23
+ },
24
+ merge = H.merge,
25
+ pick = H.pick,
26
+ wrap = H.wrap,
27
+ Axis = H.Axis,
28
+ Tick = H.Tick;
29
+
30
+ /**
31
+ * Set grid options for the axis labels. Requires Highcharts Gantt.
32
+ *
33
+ * @since 6.2.0
34
+ * @product gantt
35
+ * @apioption xAxis.grid
36
+ */
37
+
38
+ /**
39
+ * Enable grid on the axis labels. Defaults to true for Gantt charts.
40
+ *
41
+ * @type {boolean}
42
+ * @default true
43
+ * @since 6.2.0
44
+ * @product gantt
45
+ * @apioption xAxis.grid.enabled
46
+ */
47
+
48
+ /**
49
+ * Set specific options for each column (or row for horizontal axes) in the
50
+ * grid. Each extra column/row is its own axis, and the axis options can be set
51
+ * here.
52
+ *
53
+ * @sample gantt/demo/left-axis-table
54
+ * Left axis as a table
55
+ *
56
+ * @type {Array<Highcharts.XAxisOptions>}
57
+ * @apioption xAxis.grid.columns
58
+ */
59
+
60
+ /**
61
+ * Set border color for the label grid lines.
62
+ *
63
+ * @type {Highcharts.ColorString}
64
+ * @apioption xAxis.grid.borderColor
65
+ */
66
+
67
+ /**
68
+ * Set border width of the label grid lines.
69
+ *
70
+ * @type {number}
71
+ * @default 1
72
+ * @apioption xAxis.grid.borderWidth
73
+ */
74
+
75
+ /**
76
+ * Set cell height for grid axis labels. By default this is calculated from font
77
+ * size.
78
+ *
79
+ * @type {number}
80
+ * @apioption xAxis.grid.cellHeight
81
+ */
82
+
83
+
84
+ // Enum for which side the axis is on.
85
+ // Maps to axis.side
86
+ var axisSide = {
87
+ top: 0,
88
+ right: 1,
89
+ bottom: 2,
90
+ left: 3,
91
+ 0: 'top',
92
+ 1: 'right',
93
+ 2: 'bottom',
94
+ 3: 'left'
95
+ };
96
+
97
+ /**
98
+ * Checks if an axis is a navigator axis.
99
+ *
100
+ * @private
101
+ * @function Highcharts.Axis#isNavigatorAxis
102
+ *
103
+ * @return {boolean}
104
+ * true if axis is found in axis.chart.navigator
105
+ */
106
+ Axis.prototype.isNavigatorAxis = function () {
107
+ return /highcharts-navigator-[xy]axis/.test(this.options.className);
108
+ };
109
+
110
+ /**
111
+ * Checks if an axis is the outer axis in its dimension. Since
112
+ * axes are placed outwards in order, the axis with the highest
113
+ * index is the outermost axis.
114
+ *
115
+ * Example: If there are multiple x-axes at the top of the chart,
116
+ * this function returns true if the axis supplied is the last
117
+ * of the x-axes.
118
+ *
119
+ * @private
120
+ * @function Highcharts.Axis#isOuterAxis
121
+ *
122
+ * @return {boolean}
123
+ * true if the axis is the outermost axis in its dimension; false if not
124
+ */
125
+ Axis.prototype.isOuterAxis = function () {
126
+ var axis = this,
127
+ chart = axis.chart,
128
+ thisIndex = -1,
129
+ isOuter = true;
130
+
131
+ chart.axes.forEach(function (otherAxis, index) {
132
+ if (otherAxis.side === axis.side && !otherAxis.isNavigatorAxis()) {
133
+ if (otherAxis === axis) {
134
+ // Get the index of the axis in question
135
+ thisIndex = index;
136
+
137
+ // Check thisIndex >= 0 in case thisIndex has
138
+ // not been found yet
139
+ } else if (thisIndex >= 0 && index > thisIndex) {
140
+ // There was an axis on the same side with a
141
+ // higher index.
142
+ isOuter = false;
143
+ }
144
+ }
145
+ });
146
+ // There were either no other axes on the same side,
147
+ // or the other axes were not farther from the chart
148
+ return isOuter;
149
+ };
150
+
151
+ /**
152
+ * Get the largest label width and height.
153
+ *
154
+ * @private
155
+ * @function Highcharts.Axis#getMaxLabelDimensions
156
+ *
157
+ * @param {Highcharts.Dictionary<Highcharts.Tick>} ticks
158
+ * All the ticks on one axis.
159
+ *
160
+ * @param {Array<number|string>} tickPositions
161
+ * All the tick positions on one axis.
162
+ *
163
+ * @return {object}
164
+ * object containing the properties height and width.
165
+ */
166
+ Axis.prototype.getMaxLabelDimensions = function (ticks, tickPositions) {
167
+ var dimensions = {
168
+ width: 0,
169
+ height: 0
170
+ };
171
+
172
+ tickPositions.forEach(function (pos) {
173
+ var tick = ticks[pos],
174
+ tickHeight = 0,
175
+ tickWidth = 0,
176
+ label;
177
+
178
+ if (isObject(tick)) {
179
+ label = isObject(tick.label) ? tick.label : {};
180
+
181
+ // Find width and height of tick
182
+ tickHeight = label.getBBox ? label.getBBox().height : 0;
183
+ tickWidth = isNumber(label.textPxLength) ? label.textPxLength : 0;
184
+
185
+ // Update the result if width and/or height are larger
186
+ dimensions.height = Math.max(tickHeight, dimensions.height);
187
+ dimensions.width = Math.max(tickWidth, dimensions.width);
188
+ }
189
+ });
190
+
191
+ return dimensions;
192
+ };
193
+
194
+ // Add custom date formats
195
+ H.dateFormats = {
196
+ // Week number
197
+ W: function (timestamp) {
198
+ var d = new Date(timestamp),
199
+ yearStart,
200
+ weekNo;
201
+
202
+ d.setHours(0, 0, 0, 0);
203
+ d.setDate(d.getDate() - (d.getDay() || 7));
204
+ yearStart = new Date(d.getFullYear(), 0, 1);
205
+ weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
206
+ return weekNo;
207
+ },
208
+ // First letter of the day of the week, e.g. 'M' for 'Monday'.
209
+ E: function (timestamp) {
210
+ return dateFormat('%a', timestamp, true).charAt(0);
211
+ }
212
+ };
213
+
214
+ addEvent(
215
+ Tick,
216
+ 'afterGetLabelPosition',
217
+ /**
218
+ * Center tick labels in cells.
219
+ *
220
+ * @private
221
+ */
222
+ function (e) {
223
+ var tick = this,
224
+ label = tick.label,
225
+ axis = tick.axis,
226
+ reversed = axis.reversed,
227
+ chart = axis.chart,
228
+ options = axis.options,
229
+ gridOptions = (
230
+ (options && isObject(options.grid)) ? options.grid : {}
231
+ ),
232
+ labelOpts = axis.options.labels,
233
+ align = labelOpts.align,
234
+ // verticalAlign is currently not supported for axis.labels.
235
+ verticalAlign = 'middle', // labelOpts.verticalAlign,
236
+ side = axisSide[axis.side],
237
+ tickmarkOffset = e.tickmarkOffset,
238
+ tickPositions = axis.tickPositions,
239
+ tickPos = tick.pos - tickmarkOffset,
240
+ nextTickPos = (
241
+ isNumber(tickPositions[e.index + 1]) ?
242
+ tickPositions[e.index + 1] - tickmarkOffset :
243
+ axis.max + tickmarkOffset
244
+ ),
245
+ tickSize = axis.tickSize('tick', true),
246
+ tickWidth = isArray(tickSize) ? tickSize[0] : 0,
247
+ crispCorr = tickSize && tickSize[1] / 2,
248
+ labelHeight,
249
+ lblMetrics,
250
+ lines,
251
+ bottom,
252
+ top,
253
+ left,
254
+ right;
255
+
256
+ // Only center tick labels in grid axes
257
+ if (gridOptions.enabled === true) {
258
+
259
+ // Calculate top and bottom positions of the cell.
260
+ if (side === 'top') {
261
+ bottom = axis.top + axis.offset;
262
+ top = bottom - tickWidth;
263
+ } else if (side === 'bottom') {
264
+ top = chart.chartHeight - axis.bottom + axis.offset;
265
+ bottom = top + tickWidth;
266
+ } else {
267
+ bottom = axis.top + axis.len - axis.translate(
268
+ reversed ? nextTickPos : tickPos
269
+ );
270
+ top = axis.top + axis.len - axis.translate(
271
+ reversed ? tickPos : nextTickPos
272
+ );
273
+ }
274
+
275
+ // Calculate left and right positions of the cell.
276
+ if (side === 'right') {
277
+ left = chart.chartWidth - axis.right + axis.offset;
278
+ right = left + tickWidth;
279
+ } else if (side === 'left') {
280
+ right = axis.left + axis.offset;
281
+ left = right - tickWidth;
282
+ } else {
283
+ left = Math.round(axis.left + axis.translate(
284
+ reversed ? nextTickPos : tickPos
285
+ )) - crispCorr;
286
+ right = Math.round(axis.left + axis.translate(
287
+ reversed ? tickPos : nextTickPos
288
+ )) - crispCorr;
289
+ }
290
+
291
+ tick.slotWidth = right - left;
292
+
293
+ // Calculate the positioning of the label based on alignment.
294
+ e.pos.x = (
295
+ align === 'left' ?
296
+ left :
297
+ align === 'right' ?
298
+ right :
299
+ left + ((right - left) / 2) // default to center
300
+ );
301
+ e.pos.y = (
302
+ verticalAlign === 'top' ?
303
+ top :
304
+ verticalAlign === 'bottom' ?
305
+ bottom :
306
+ top + ((bottom - top) / 2) // default to middle
307
+ );
308
+
309
+ lblMetrics = chart.renderer.fontMetrics(
310
+ labelOpts.style.fontSize,
311
+ label.element
312
+ );
313
+ labelHeight = label.getBBox().height;
314
+
315
+ // Adjustment to y position to align the label correctly.
316
+ // Would be better to have a setter or similar for this.
317
+ if (!labelOpts.useHTML) {
318
+ lines = Math.round(labelHeight / lblMetrics.h);
319
+ e.pos.y += (
320
+ // Center the label
321
+ // TODO: why does this actually center the label?
322
+ ((lblMetrics.b - (lblMetrics.h - lblMetrics.f)) / 2) +
323
+ // Adjust for height of additional lines.
324
+ -(((lines - 1) * lblMetrics.h) / 2)
325
+ );
326
+ } else {
327
+ e.pos.y += (
328
+ // Readjust yCorr in htmlUpdateTransform
329
+ lblMetrics.b +
330
+ // Adjust for height of html label
331
+ -(labelHeight / 2)
332
+ );
333
+ }
334
+
335
+ e.pos.x += (axis.horiz && labelOpts.x || 0);
336
+ }
337
+ }
338
+ );
339
+
340
+ // Draw vertical axis ticks extra long to create cell floors and roofs.
341
+ // Overrides the tickLength for vertical axes.
342
+ addEvent(Axis, 'afterTickSize', function (e) {
343
+ var axis = this,
344
+ dimensions = axis.maxLabelDimensions,
345
+ options = axis.options,
346
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {},
347
+ labelPadding,
348
+ distance;
349
+
350
+ if (gridOptions.enabled === true) {
351
+ labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
352
+ distance = labelPadding +
353
+ (axis.horiz ? dimensions.height : dimensions.width);
354
+
355
+ if (isArray(e.tickSize)) {
356
+ e.tickSize[0] = distance;
357
+ } else {
358
+ e.tickSize = [distance];
359
+ }
360
+ }
361
+ });
362
+
363
+ addEvent(Axis, 'afterGetTitlePosition', function (e) {
364
+ var axis = this,
365
+ options = axis.options,
366
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {};
367
+
368
+ if (gridOptions.enabled === true) {
369
+ // compute anchor points for each of the title align options
370
+ var title = axis.axisTitle,
371
+ titleWidth = title && title.getBBox().width,
372
+ horiz = axis.horiz,
373
+ axisLeft = axis.left,
374
+ axisTop = axis.top,
375
+ axisWidth = axis.width,
376
+ axisHeight = axis.height,
377
+ axisTitleOptions = options.title,
378
+ opposite = axis.opposite,
379
+ offset = axis.offset,
380
+ tickSize = axis.tickSize() || [0],
381
+ xOption = axisTitleOptions.x || 0,
382
+ yOption = axisTitleOptions.y || 0,
383
+ titleMargin = pick(axisTitleOptions.margin, horiz ? 5 : 10),
384
+ titleFontSize = axis.chart.renderer.fontMetrics(
385
+ axisTitleOptions.style && axisTitleOptions.style.fontSize,
386
+ title
387
+ ).f,
388
+ // TODO account for alignment
389
+ // the position in the perpendicular direction of the axis
390
+ offAxis = (horiz ? axisTop + axisHeight : axisLeft) +
391
+ (horiz ? 1 : -1) * // horizontal axis reverses the margin
392
+ (opposite ? -1 : 1) * // so does opposite axes
393
+ (tickSize[0] / 2) +
394
+ (axis.side === axisSide.bottom ? titleFontSize : 0);
395
+
396
+ e.titlePosition.x = horiz ?
397
+ axisLeft - titleWidth / 2 - titleMargin + xOption :
398
+ offAxis + (opposite ? axisWidth : 0) + offset + xOption;
399
+ e.titlePosition.y = horiz ?
400
+ (
401
+ offAxis -
402
+ (opposite ? axisHeight : 0) +
403
+ (opposite ? titleFontSize : -titleFontSize) / 2 +
404
+ offset +
405
+ yOption
406
+ ) :
407
+ axisTop - titleMargin + yOption;
408
+ }
409
+ });
410
+
411
+ // Avoid altering tickInterval when reserving space.
412
+ wrap(Axis.prototype, 'unsquish', function (proceed) {
413
+ var axis = this,
414
+ options = axis.options,
415
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {};
416
+
417
+ if (gridOptions.enabled === true && this.categories) {
418
+ return this.tickInterval;
419
+ }
420
+
421
+ return proceed.apply(this, argsToArray(arguments));
422
+ });
423
+
424
+ addEvent(
425
+ Axis,
426
+ 'afterSetOptions',
427
+ /**
428
+ * Creates a left and right wall on horizontal axes:
429
+ *
430
+ * - Places leftmost tick at the start of the axis, to create a left wall
431
+ *
432
+ * - Ensures that the rightmost tick is at the end of the axis, to create a
433
+ * right wall.
434
+ *
435
+ * @private
436
+ * @function
437
+ */
438
+ function (e) {
439
+ var options = this.options,
440
+ userOptions = e.userOptions,
441
+ gridAxisOptions,
442
+ gridOptions = (
443
+ (options && isObject(options.grid)) ? options.grid : {}
444
+ );
445
+
446
+ if (gridOptions.enabled === true) {
447
+
448
+ // Merge the user options into default grid axis options so that
449
+ // when a user option is set, it takes presedence.
450
+ gridAxisOptions = merge(true, {
451
+
452
+ className: (
453
+ 'highcharts-grid-axis ' + (userOptions.className || '')
454
+ ),
455
+
456
+ dateTimeLabelFormats: {
457
+ hour: {
458
+ list: ['%H:%M', '%H']
459
+ },
460
+ day: {
461
+ list: ['%A, %e. %B', '%a, %e. %b', '%E']
462
+ },
463
+ week: {
464
+ list: ['Week %W', 'W%W']
465
+ },
466
+ month: {
467
+ list: ['%B', '%b', '%o']
468
+ }
469
+ },
470
+
471
+ grid: {
472
+ borderWidth: 1
473
+ },
474
+
475
+ labels: {
476
+ padding: 2,
477
+ style: {
478
+ fontSize: '13px'
479
+ }
480
+ },
481
+
482
+ margin: 0,
483
+
484
+ title: {
485
+ text: null,
486
+ reserveSpace: false,
487
+ rotation: 0
488
+ },
489
+
490
+ // In a grid axis, only allow one unit of certain types, for
491
+ // example we shouln't have one grid cell spanning two days.
492
+ units: [[
493
+ 'millisecond', // unit name
494
+ [1, 10, 100]
495
+ ], [
496
+ 'second',
497
+ [1, 10]
498
+ ], [
499
+ 'minute',
500
+ [1, 5, 15]
501
+ ], [
502
+ 'hour',
503
+ [1, 6]
504
+ ], [
505
+ 'day',
506
+ [1]
507
+ ], [
508
+ 'week',
509
+ [1]
510
+ ], [
511
+ 'month',
512
+ [1]
513
+ ], [
514
+ 'year',
515
+ null
516
+ ]]
517
+ }, userOptions);
518
+
519
+ // X-axis specific options
520
+ if (this.coll === 'xAxis') {
521
+
522
+ // For linked axes, tickPixelInterval is used only if the
523
+ // tickPositioner below doesn't run or returns undefined (like
524
+ // multiple years)
525
+ if (
526
+ defined(userOptions.linkedTo) &&
527
+ !defined(userOptions.tickPixelInterval)
528
+ ) {
529
+ gridAxisOptions.tickPixelInterval = 350;
530
+ }
531
+
532
+ // For the secondary grid axis, use the primary axis' tick
533
+ // intervals and return ticks one level higher.
534
+ if (
535
+ // Check for tick pixel interval in options
536
+ !defined(userOptions.tickPixelInterval) &&
537
+
538
+ // Only for linked axes
539
+ defined(userOptions.linkedTo) &&
540
+
541
+ !defined(userOptions.tickPositioner) &&
542
+ !defined(userOptions.tickInterval)
543
+ ) {
544
+ gridAxisOptions.tickPositioner = function (min, max) {
545
+
546
+ var parentInfo = (
547
+ this.linkedParent &&
548
+ this.linkedParent.tickPositions &&
549
+ this.linkedParent.tickPositions.info
550
+ );
551
+
552
+ if (parentInfo) {
553
+
554
+ var unitIdx,
555
+ count,
556
+ unitName,
557
+ i,
558
+ units = gridAxisOptions.units,
559
+ unitRange;
560
+
561
+ for (i = 0; i < units.length; i++) {
562
+ if (units[i][0] === parentInfo.unitName) {
563
+ unitIdx = i;
564
+ break;
565
+ }
566
+ }
567
+
568
+ // Spanning multiple years, go default
569
+ if (!units[unitIdx][1]) {
570
+ return;
571
+ }
572
+
573
+ // Get the first allowed count on the next unit.
574
+ if (units[unitIdx + 1]) {
575
+ unitName = units[unitIdx + 1][0];
576
+ count = (units[unitIdx + 1][1] || [1])[0];
577
+ }
578
+
579
+ unitRange = H.timeUnits[unitName];
580
+ this.tickInterval = unitRange * count;
581
+ return this.getTimeTicks(
582
+ {
583
+ unitRange: unitRange,
584
+ count: count,
585
+ unitName: unitName
586
+ },
587
+ min,
588
+ max,
589
+ this.options.startOfWeek
590
+ );
591
+ }
592
+ };
593
+ }
594
+
595
+ }
596
+
597
+ // Now merge the combined options into the axis options
598
+ merge(true, this.options, gridAxisOptions);
599
+
600
+ if (this.horiz) {
601
+ /* _________________________
602
+ Make this: ___|_____|_____|_____|__|
603
+ ^ ^
604
+ _________________________
605
+ Into this: |_____|_____|_____|_____|
606
+ ^ ^ */
607
+ options.minPadding = pick(userOptions.minPadding, 0);
608
+ options.maxPadding = pick(userOptions.maxPadding, 0);
609
+ }
610
+
611
+ // If borderWidth is set, then use its value for tick and line
612
+ // width.
613
+ if (isNumber(options.grid.borderWidth)) {
614
+ options.tickWidth = options.lineWidth = gridOptions.borderWidth;
615
+ }
616
+
617
+ }
618
+ }
619
+ );
620
+
621
+ addEvent(
622
+ Axis,
623
+ 'afterSetAxisTranslation',
624
+ function () {
625
+ var axis = this,
626
+ options = axis.options,
627
+ gridOptions = (
628
+ (options && isObject(options.grid)) ? options.grid : {}
629
+ ),
630
+ tickInfo = this.tickPositions && this.tickPositions.info,
631
+ userLabels = this.userOptions.labels || {};
632
+
633
+ if (this.horiz) {
634
+ if (gridOptions.enabled === true) {
635
+ axis.series.forEach(function (series) {
636
+ series.options.pointRange = 0;
637
+ });
638
+ }
639
+
640
+ // Lower level time ticks, like hours or minutes, represent points
641
+ // in time and not ranges. These should be aligned left in the grid
642
+ // cell by default. The same applies to years of higher order.
643
+ if (
644
+ tickInfo &&
645
+ (
646
+ options.dateTimeLabelFormats[tickInfo.unitName]
647
+ .range === false ||
648
+ tickInfo.count > 1 // years
649
+ ) &&
650
+ !defined(userLabels.align)
651
+ ) {
652
+ options.labels.align = 'left';
653
+
654
+ if (!defined(userLabels.x)) {
655
+ options.labels.x = 3;
656
+ }
657
+ }
658
+ }
659
+ }
660
+ );
661
+
662
+ // @todo Does this function do what the drawing says? Seems to affect ticks and
663
+ // not the labels directly?
664
+ addEvent(
665
+ Axis,
666
+ 'trimTicks',
667
+ /**
668
+ * Makes tick labels which are usually ignored in a linked axis displayed if
669
+ * they are within range of linkedParent.min.
670
+ * ```
671
+ * _____________________________
672
+ * | | | | |
673
+ * Make this: | | 2 | 3 | 4 |
674
+ * |___|_______|_______|_______|
675
+ * ^
676
+ * _____________________________
677
+ * | | | | |
678
+ * Into this: | 1 | 2 | 3 | 4 |
679
+ * |___|_______|_______|_______|
680
+ * ^
681
+ * ```
682
+ *
683
+ * @private
684
+ */
685
+ function () {
686
+ var axis = this,
687
+ options = axis.options,
688
+ gridOptions = (
689
+ (options && isObject(options.grid)) ? options.grid : {}
690
+ ),
691
+ categoryAxis = axis.categories,
692
+ tickPositions = axis.tickPositions,
693
+ firstPos = tickPositions[0],
694
+ lastPos = tickPositions[tickPositions.length - 1],
695
+ linkedMin = axis.linkedParent && axis.linkedParent.min,
696
+ linkedMax = axis.linkedParent && axis.linkedParent.max,
697
+ min = linkedMin || axis.min,
698
+ max = linkedMax || axis.max,
699
+ tickInterval = axis.tickInterval,
700
+ moreThanMin = firstPos > min,
701
+ lessThanMax = lastPos < max,
702
+ endMoreThanMin = firstPos < min && firstPos + tickInterval > min,
703
+ startLessThanMax = lastPos > max && lastPos - tickInterval < max;
704
+
705
+ if (
706
+ gridOptions.enabled === true &&
707
+ !categoryAxis &&
708
+ (axis.horiz || axis.isLinked)
709
+ ) {
710
+ if ((moreThanMin || endMoreThanMin) && !options.startOnTick) {
711
+ tickPositions[0] = min;
712
+ }
713
+
714
+ if ((lessThanMax || startLessThanMax) && !options.endOnTick) {
715
+ tickPositions[tickPositions.length - 1] = max;
716
+ }
717
+ }
718
+ }
719
+ );
720
+
721
+ addEvent(
722
+ Axis,
723
+ 'afterRender',
724
+ /**
725
+ * Draw an extra line on the far side of the outermost axis,
726
+ * creating floor/roof/wall of a grid. And some padding.
727
+ * ```
728
+ * Make this:
729
+ * (axis.min) __________________________ (axis.max)
730
+ * | | | | |
731
+ * Into this:
732
+ * (axis.min) __________________________ (axis.max)
733
+ * ___|____|____|____|____|__
734
+ * ```
735
+ *
736
+ * @private
737
+ * @function
738
+ *
739
+ * @param {Function} proceed
740
+ * the original function
741
+ */
742
+ function () {
743
+ var axis = this,
744
+ options = axis.options,
745
+ gridOptions = ((
746
+ options && isObject(options.grid)) ? options.grid : {}
747
+ ),
748
+ labelPadding,
749
+ distance,
750
+ lineWidth,
751
+ linePath,
752
+ yStartIndex,
753
+ yEndIndex,
754
+ xStartIndex,
755
+ xEndIndex,
756
+ renderer = axis.chart.renderer,
757
+ horiz = axis.horiz,
758
+ axisGroupBox;
759
+
760
+ if (gridOptions.enabled === true) {
761
+
762
+ // @todo acutual label padding (top, bottom, left, right)
763
+
764
+ // Label padding is needed to figure out where to draw the outer
765
+ // line.
766
+ labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
767
+ axis.maxLabelDimensions = axis.getMaxLabelDimensions(
768
+ axis.ticks,
769
+ axis.tickPositions
770
+ );
771
+ distance = axis.maxLabelDimensions.width + labelPadding;
772
+ lineWidth = options.lineWidth;
773
+
774
+ // Remove right wall before rendering if updating
775
+ if (axis.rightWall) {
776
+ axis.rightWall.destroy();
777
+ }
778
+
779
+ axisGroupBox = axis.axisGroup.getBBox();
780
+
781
+ /*
782
+ Draw an extra axis line on outer axes
783
+ >
784
+ Make this: |______|______|______|___
785
+
786
+ > _________________________
787
+ Into this: |______|______|______|__|
788
+ */
789
+ if (axis.isOuterAxis() && axis.axisLine) {
790
+ if (horiz) {
791
+ // -1 to avoid adding distance each time the chart updates
792
+ distance = axisGroupBox.height - 1;
793
+ }
794
+
795
+ if (lineWidth) {
796
+ linePath = axis.getLinePath(lineWidth);
797
+ xStartIndex = linePath.indexOf('M') + 1;
798
+ xEndIndex = linePath.indexOf('L') + 1;
799
+ yStartIndex = linePath.indexOf('M') + 2;
800
+ yEndIndex = linePath.indexOf('L') + 2;
801
+
802
+ // Negate distance if top or left axis
803
+ if (axis.side === axisSide.top ||
804
+ axis.side === axisSide.left
805
+ ) {
806
+ distance = -distance;
807
+ }
808
+
809
+ // If axis is horizontal, reposition line path vertically
810
+ if (horiz) {
811
+ linePath[yStartIndex] = (
812
+ linePath[yStartIndex] + distance
813
+ );
814
+ linePath[yEndIndex] = linePath[yEndIndex] + distance;
815
+ } else {
816
+ // If axis is vertical, reposition line path
817
+ // horizontally
818
+ linePath[xStartIndex] = (
819
+ linePath[xStartIndex] + distance
820
+ );
821
+ linePath[xEndIndex] = linePath[xEndIndex] + distance;
822
+ }
823
+
824
+ if (!axis.axisLineExtra) {
825
+ axis.axisLineExtra = renderer.path(linePath)
826
+ .attr({
827
+
828
+ stroke: options.lineColor,
829
+ 'stroke-width': lineWidth,
830
+
831
+ zIndex: 7
832
+ })
833
+ .addClass('highcharts-axis-line')
834
+ .add(axis.axisGroup);
835
+ } else {
836
+ axis.axisLineExtra.animate({
837
+ d: linePath
838
+ });
839
+ }
840
+
841
+ // show or hide the line depending on options.showEmpty
842
+ axis.axisLine[axis.showAxis ? 'show' : 'hide'](true);
843
+ }
844
+ }
845
+
846
+ }
847
+ }
848
+ );
849
+
850
+ // Wraps axis init to draw cell walls on vertical axes.
851
+ addEvent(Axis, 'init', function (e) {
852
+ var axis = this,
853
+ chart = axis.chart,
854
+ userOptions = e.userOptions,
855
+ gridOptions = (
856
+ (userOptions && isObject(userOptions.grid)) ?
857
+ userOptions.grid :
858
+ {}
859
+ ),
860
+ columnOptions,
861
+ column,
862
+ columnIndex,
863
+ i;
864
+
865
+ function applyGridOptions() {
866
+ var options = axis.options,
867
+ // TODO: Consider using cell margins defined in % of font size?
868
+ // 25 is optimal height for default fontSize (11px)
869
+ // 25 / 11 ≈ 2.28
870
+ fontSizeToCellHeightRatio = 25 / 11,
871
+ fontSize = options.labels.style.fontSize,
872
+ fontMetrics = axis.chart.renderer.fontMetrics(fontSize);
873
+
874
+ // Center-align by default
875
+ if (!options.labels) {
876
+ options.labels = {};
877
+ }
878
+ options.labels.align = pick(options.labels.align, 'center');
879
+
880
+ // @todo: Check against tickLabelPlacement between/on etc
881
+
882
+ /* Prevents adding the last tick label if the axis is not a category
883
+ axis.
884
+ Since numeric labels are normally placed at starts and ends of a
885
+ range of value, and this module makes the label point at the value,
886
+ an "extra" label would appear. */
887
+ if (!axis.categories) {
888
+ options.showLastLabel = false;
889
+ }
890
+
891
+ // Make tick marks taller, creating cell walls of a grid. Use cellHeight
892
+ // axis option if set
893
+ if (axis.horiz) {
894
+ options.tickLength = gridOptions.cellHeight ||
895
+ fontMetrics.h * fontSizeToCellHeightRatio;
896
+ }
897
+
898
+ // Prevents rotation of labels when squished, as rotating them would not
899
+ // help.
900
+ axis.labelRotation = 0;
901
+ options.labels.rotation = 0;
902
+ }
903
+
904
+ if (gridOptions.enabled) {
905
+ if (defined(gridOptions.borderColor)) {
906
+ userOptions.tickColor =
907
+ userOptions.lineColor = gridOptions.borderColor;
908
+ }
909
+
910
+ // Handle columns, each column is a grid axis
911
+ if (isArray(gridOptions.columns)) {
912
+ columnIndex = 0;
913
+ i = gridOptions.columns.length;
914
+ while (i--) {
915
+ columnOptions = merge(
916
+ userOptions,
917
+ gridOptions.columns[i],
918
+ {
919
+ // Force to behave like category axis
920
+ type: 'category'
921
+ }
922
+ );
923
+
924
+ delete columnOptions.grid.columns; // Prevent recursion
925
+
926
+ column = new Axis(axis.chart, columnOptions);
927
+ column.isColumn = true;
928
+ column.columnIndex = columnIndex;
929
+
930
+ wrap(column, 'labelFormatter', function (proceed) {
931
+ var axis = this.axis,
932
+ tickPos = axis.tickPositions,
933
+ value = this.value,
934
+ series = axis.series[0],
935
+ isFirst = value === tickPos[0],
936
+ isLast = value === tickPos[tickPos.length - 1],
937
+ point = H.find(series.options.data, function (p) {
938
+ return p[axis.isXAxis ? 'x' : 'y'] === value;
939
+ });
940
+
941
+ // Make additional properties available for the formatter
942
+ this.isFirst = isFirst;
943
+ this.isLast = isLast;
944
+ this.point = point;
945
+
946
+ // Call original labelFormatter
947
+ return proceed.call(this);
948
+ });
949
+
950
+ columnIndex++;
951
+ }
952
+ // This axis should not be shown, instead the column axes take over
953
+ addEvent(this, 'afterInit', function () {
954
+ H.erase(chart.axes, this);
955
+ H.erase(chart[axis.coll], this);
956
+ });
957
+ } else {
958
+ addEvent(this, 'afterInit', applyGridOptions);
959
+ }
960
+ }
961
+ });