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,158 @@
1
+ /* *
2
+ *
3
+ * (c) 2016-2019 Highsoft AS
4
+ *
5
+ * Authors: Jon Arild Nygard
6
+ *
7
+ * License: www.highcharts.com/license
8
+ *
9
+ * */
10
+
11
+ /* eslint no-console: 0 */
12
+
13
+ 'use strict';
14
+
15
+ import H from '../parts/Globals.js';
16
+ import '../parts/Utilities.js';
17
+
18
+ var extend = H.extend,
19
+ isNumber = H.isNumber,
20
+ pick = H.pick,
21
+ isFunction = function (x) {
22
+ return typeof x === 'function';
23
+ };
24
+
25
+ /**
26
+ * Creates an object map from parent id to childrens index.
27
+ *
28
+ * @private
29
+ * @function Highcharts.Tree#getListOfParents
30
+ *
31
+ * @param {Array<*>} data
32
+ * List of points set in options. `Array<*>.parent`is parent id of point.
33
+ *
34
+ * @param {Array<string>} ids
35
+ * List of all point ids.
36
+ *
37
+ * @return {object}
38
+ * Map from parent id to children index in data
39
+ */
40
+ var getListOfParents = function (data, ids) {
41
+ var listOfParents = data.reduce(function (prev, curr) {
42
+ var parent = pick(curr.parent, '');
43
+
44
+ if (prev[parent] === undefined) {
45
+ prev[parent] = [];
46
+ }
47
+ prev[parent].push(curr);
48
+ return prev;
49
+ }, {}),
50
+ parents = Object.keys(listOfParents);
51
+
52
+ // If parent does not exist, hoist parent to root of tree.
53
+ parents.forEach(function (parent, list) {
54
+ var children = listOfParents[parent];
55
+
56
+ if ((parent !== '') && (ids.indexOf(parent) === -1)) {
57
+ children.forEach(function (child) {
58
+ list[''].push(child);
59
+ });
60
+ delete list[parent];
61
+ }
62
+ });
63
+ return listOfParents;
64
+ };
65
+ var getNode = function (id, parent, level, data, mapOfIdToChildren, options) {
66
+ var descendants = 0,
67
+ height = 0,
68
+ after = options && options.after,
69
+ before = options && options.before,
70
+ node = {
71
+ data: data,
72
+ depth: level - 1,
73
+ id: id,
74
+ level: level,
75
+ parent: parent
76
+ },
77
+ start,
78
+ end,
79
+ children;
80
+
81
+ // Allow custom logic before the children has been created.
82
+ if (isFunction(before)) {
83
+ before(node, options);
84
+ }
85
+
86
+ // Call getNode recursively on the children. Calulate the height of the
87
+ // node, and the number of descendants.
88
+ children = ((mapOfIdToChildren[id] || [])).map(function (child) {
89
+ var node = getNode(
90
+ child.id,
91
+ id,
92
+ (level + 1),
93
+ child,
94
+ mapOfIdToChildren,
95
+ options
96
+ ),
97
+ childStart = child.start,
98
+ childEnd = (
99
+ child.milestone === true ?
100
+ childStart :
101
+ child.end
102
+ );
103
+
104
+ // Start should be the lowest child.start.
105
+ start = (
106
+ (!isNumber(start) || childStart < start) ?
107
+ childStart :
108
+ start
109
+ );
110
+
111
+ // End should be the largest child.end.
112
+ // If child is milestone, then use start as end.
113
+ end = (
114
+ (!isNumber(end) || childEnd > end) ?
115
+ childEnd :
116
+ end
117
+ );
118
+
119
+ descendants = descendants + 1 + node.descendants;
120
+ height = Math.max(node.height + 1, height);
121
+ return node;
122
+ });
123
+
124
+ // Calculate start and end for point if it is not already explicitly set.
125
+ if (data) {
126
+ data.start = pick(data.start, start);
127
+ data.end = pick(data.end, end);
128
+ }
129
+
130
+ extend(node, {
131
+ children: children,
132
+ descendants: descendants,
133
+ height: height
134
+ });
135
+
136
+ // Allow custom logic after the children has been created.
137
+ if (isFunction(after)) {
138
+ after(node, options);
139
+ }
140
+
141
+ return node;
142
+ };
143
+ var getTree = function (data, options) {
144
+ var ids = data.map(function (d) {
145
+ return d.id;
146
+ }),
147
+ mapOfIdToChildren = getListOfParents(data, ids);
148
+
149
+ return getNode('', null, 1, null, mapOfIdToChildren, options);
150
+ };
151
+
152
+ var Tree = {
153
+ getListOfParents: getListOfParents,
154
+ getNode: getNode,
155
+ getTree: getTree
156
+ };
157
+
158
+ export default Tree;
@@ -0,0 +1,1003 @@
1
+ /* *
2
+ * (c) 2016 Highsoft AS
3
+ * Authors: Jon Arild Nygard
4
+ *
5
+ * License: www.highcharts.com/license
6
+ */
7
+
8
+ /* eslint no-console: 0 */
9
+
10
+ 'use strict';
11
+
12
+ import H from '../parts/Globals.js';
13
+ import '../parts/Utilities.js';
14
+ import './GridAxis.js';
15
+ import Tree from './Tree.js';
16
+ import mixinTreeSeries from '../mixins/tree-series.js';
17
+ import '../modules/broken-axis.src.js';
18
+
19
+ var addEvent = H.addEvent,
20
+ argsToArray = function (args) {
21
+ return Array.prototype.slice.call(args, 1);
22
+ },
23
+ defined = H.defined,
24
+ extend = H.extend,
25
+ find = H.find,
26
+ fireEvent = H.fireEvent,
27
+ getLevelOptions = mixinTreeSeries.getLevelOptions,
28
+ merge = H.merge,
29
+ isBoolean = function (x) {
30
+ return typeof x === 'boolean';
31
+ },
32
+ isNumber = H.isNumber,
33
+ isObject = function (x) {
34
+ // Always use strict mode.
35
+ return H.isObject(x, true);
36
+ },
37
+ isString = H.isString,
38
+ pick = H.pick,
39
+ wrap = H.wrap,
40
+ GridAxis = H.Axis,
41
+ GridAxisTick = H.Tick;
42
+
43
+ var override = function (obj, methods) {
44
+ var method,
45
+ func;
46
+
47
+ for (method in methods) {
48
+ if (methods.hasOwnProperty(method)) {
49
+ func = methods[method];
50
+ wrap(obj, method, func);
51
+ }
52
+ }
53
+ };
54
+
55
+ var getBreakFromNode = function (node, max) {
56
+ var from = node.collapseStart,
57
+ to = node.collapseEnd;
58
+
59
+ // In broken-axis, the axis.max is minimized until it is not within a break.
60
+ // Therefore, if break.to is larger than axis.max, the axis.to should not
61
+ // add the 0.5 axis.tickMarkOffset, to avoid adding a break larger than
62
+ // axis.max
63
+ // TODO consider simplifying broken-axis and this might solve itself
64
+ if (to >= max) {
65
+ from -= 0.5;
66
+ }
67
+
68
+ return {
69
+ from: from,
70
+ to: to,
71
+ showPoints: false
72
+ };
73
+ };
74
+
75
+ /**
76
+ * Creates a list of positions for the ticks on the axis. Filters out positions
77
+ * that are outside min and max, or is inside an axis break.
78
+ *
79
+ * @private
80
+ * @function getTickPositions
81
+ *
82
+ * @param {Highcharts.Axis} axis
83
+ * The Axis to get the tick positions from.
84
+ *
85
+ * @return {Array<number>}
86
+ * List of positions.
87
+ */
88
+ var getTickPositions = function (axis) {
89
+ return Object.keys(axis.mapOfPosToGridNode).reduce(
90
+ function (arr, key) {
91
+ var pos = +key;
92
+ if (
93
+ axis.min <= pos &&
94
+ axis.max >= pos &&
95
+ !axis.isInAnyBreak(pos)
96
+ ) {
97
+ arr.push(pos);
98
+ }
99
+ return arr;
100
+ },
101
+ []
102
+ );
103
+ };
104
+
105
+ /**
106
+ * Check if a node is collapsed.
107
+ *
108
+ * @private
109
+ * @function isCollapsed
110
+ *
111
+ * @param {Highcharts.Axis} axis
112
+ * The axis to check against.
113
+ *
114
+ * @param {object} node
115
+ * The node to check if is collapsed.
116
+ *
117
+ * @param {number} pos
118
+ * The tick position to collapse.
119
+ *
120
+ * @return {boolean}
121
+ * Returns true if collapsed, false if expanded.
122
+ */
123
+ var isCollapsed = function (axis, node) {
124
+ var breaks = (axis.options.breaks || []),
125
+ obj = getBreakFromNode(node, axis.max);
126
+
127
+ return breaks.some(function (b) {
128
+ return b.from === obj.from && b.to === obj.to;
129
+ });
130
+ };
131
+
132
+ /**
133
+ * Calculates the new axis breaks to collapse a node.
134
+ *
135
+ * @private
136
+ * @function collapse
137
+ *
138
+ * @param {Highcharts.Axis} axis
139
+ * The axis to check against.
140
+ *
141
+ * @param {object} node
142
+ * The node to collapse.
143
+ *
144
+ * @param {number} pos
145
+ * The tick position to collapse.
146
+ *
147
+ * @return {Array<object>}
148
+ * Returns an array of the new breaks for the axis.
149
+ */
150
+ var collapse = function (axis, node) {
151
+ var breaks = (axis.options.breaks || []),
152
+ obj = getBreakFromNode(node, axis.max);
153
+
154
+ breaks.push(obj);
155
+ return breaks;
156
+ };
157
+
158
+ /**
159
+ * Calculates the new axis breaks to expand a node.
160
+ *
161
+ * @private
162
+ * @function expand
163
+ *
164
+ * @param {Highcharts.Axis} axis
165
+ * The axis to check against.
166
+ *
167
+ * @param {object} node
168
+ * The node to expand.
169
+ *
170
+ * @param {number} pos
171
+ * The tick position to expand.
172
+ *
173
+ * @returns {Array<object>} Returns an array of the new breaks for the axis.
174
+ */
175
+ var expand = function (axis, node) {
176
+ var breaks = (axis.options.breaks || []),
177
+ obj = getBreakFromNode(node, axis.max);
178
+
179
+ // Remove the break from the axis breaks array.
180
+ return breaks.reduce(function (arr, b) {
181
+ if (b.to !== obj.to || b.from !== obj.from) {
182
+ arr.push(b);
183
+ }
184
+ return arr;
185
+ }, []);
186
+ };
187
+
188
+ /**
189
+ * Calculates the new axis breaks after toggling the collapse/expand state of a
190
+ * node. If it is collapsed it will be expanded, and if it is exapended it will
191
+ * be collapsed.
192
+ *
193
+ * @private
194
+ * @function toggleCollapse
195
+ *
196
+ * @param {Highcharts.Axis} axis
197
+ * The axis to check against.
198
+ *
199
+ * @param {object} node
200
+ * The node to toggle.
201
+ *
202
+ * @param {number} pos
203
+ * The tick position to toggle.
204
+ *
205
+ * @return {Array<object>}
206
+ * Returns an array of the new breaks for the axis.
207
+ */
208
+ var toggleCollapse = function (axis, node) {
209
+ return (
210
+ isCollapsed(axis, node) ?
211
+ expand(axis, node) :
212
+ collapse(axis, node)
213
+ );
214
+ };
215
+ var renderLabelIcon = function (tick, params) {
216
+ var icon = tick.labelIcon,
217
+ isNew = !icon,
218
+ renderer = params.renderer,
219
+ labelBox = params.xy,
220
+ options = params.options,
221
+ width = options.width,
222
+ height = options.height,
223
+ iconCenter = {
224
+ x: labelBox.x - (width / 2) - options.padding,
225
+ y: labelBox.y - (height / 2)
226
+ },
227
+ rotation = params.collapsed ? 90 : 180,
228
+ shouldRender = params.show && H.isNumber(iconCenter.y);
229
+
230
+ if (isNew) {
231
+ tick.labelIcon = icon = renderer.path(renderer.symbols[options.type](
232
+ options.x,
233
+ options.y,
234
+ width,
235
+ height
236
+ ))
237
+ .addClass('highcharts-label-icon')
238
+ .add(params.group);
239
+ }
240
+
241
+ // Set the new position, and show or hide
242
+ if (!shouldRender) {
243
+ icon.attr({ y: -9999 }); // #1338
244
+ }
245
+
246
+ // Presentational attributes
247
+ if (!renderer.styledMode) {
248
+ icon
249
+ .attr({
250
+ 'stroke-width': 1,
251
+ 'fill': pick(params.color, '#666666')
252
+ })
253
+ .css({
254
+ cursor: 'pointer',
255
+ stroke: options.lineColor,
256
+ strokeWidth: options.lineWidth
257
+ });
258
+ }
259
+
260
+ // Update the icon positions
261
+ icon[isNew ? 'attr' : 'animate']({
262
+ translateX: iconCenter.x,
263
+ translateY: iconCenter.y,
264
+ rotation: rotation
265
+ });
266
+
267
+ };
268
+ var onTickHover = function (label) {
269
+ label.addClass('highcharts-treegrid-node-active');
270
+
271
+ if (!label.renderer.styledMode) {
272
+ label.css({
273
+ textDecoration: 'underline'
274
+ });
275
+ }
276
+ };
277
+ var onTickHoverExit = function (label, options) {
278
+ var css = defined(options.style) ? options.style : {};
279
+
280
+ label.removeClass('highcharts-treegrid-node-active');
281
+
282
+ if (!label.renderer.styledMode) {
283
+ label.css({
284
+ textDecoration: css.textDecoration
285
+ });
286
+ }
287
+ };
288
+
289
+ /**
290
+ * Builds the tree of categories and calculates its positions.
291
+ *
292
+ * @param {object} e Event object
293
+ * @param {object} e.target The chart instance which the event was fired on.
294
+ * @param {object[]} e.target.axes The axes of the chart.
295
+ */
296
+ var onBeforeRender = function (e) {
297
+ var chart = e.target,
298
+ axes = chart.axes;
299
+
300
+ axes
301
+ .filter(function (axis) {
302
+ return axis.options.type === 'treegrid';
303
+ })
304
+ .forEach(function (axis) {
305
+ var labelOptions = axis.options && axis.options.labels,
306
+ removeFoundExtremesEvent;
307
+
308
+ // setScale is fired after all the series is initialized,
309
+ // which is an ideal time to update the axis.categories.
310
+ axis.updateYNames();
311
+
312
+ // Update yData now that we have calculated the y values
313
+ // TODO: it would be better to be able to calculate y values
314
+ // before Series.setData
315
+ axis.series.forEach(function (series) {
316
+ series.yData = series.options.data.map(function (data) {
317
+ return data.y;
318
+ });
319
+ });
320
+
321
+ // Calculate the label options for each level in the tree.
322
+ axis.mapOptionsToLevel = getLevelOptions({
323
+ defaults: labelOptions,
324
+ from: 1,
325
+ levels: labelOptions.levels,
326
+ to: axis.tree.height
327
+ });
328
+
329
+ // Collapse all the nodes belonging to a point where collapsed
330
+ // equals true.
331
+ // Can be called from beforeRender, if getBreakFromNode removes
332
+ // its dependency on axis.max.
333
+ removeFoundExtremesEvent =
334
+ H.addEvent(axis, 'foundExtremes', function () {
335
+ axis.collapsedNodes.forEach(function (node) {
336
+ var breaks = collapse(axis, node);
337
+
338
+ axis.setBreaks(breaks, false);
339
+ });
340
+ removeFoundExtremesEvent();
341
+ });
342
+ });
343
+ };
344
+
345
+ /**
346
+ * Creates a tree structure of the data, and the treegrid. Calculates
347
+ * categories, and y-values of points based on the tree.
348
+ *
349
+ * @private
350
+ * @function getTreeGridFromData
351
+ *
352
+ * @param {Array<*>} data
353
+ * All the data points to display in the axis.
354
+ *
355
+ * @param {boolean} uniqueNames
356
+ * Wether or not the data node with the same name should share grid cell.
357
+ * If true they do share cell. False by default.
358
+ *
359
+ * @return {object}
360
+ * Returns an object containing categories, mapOfIdToNode,
361
+ * mapOfPosToGridNode, and tree.
362
+ *
363
+ * @todo There should be only one point per line.
364
+ * @todo It should be optional to have one category per point, or merge cells
365
+ * @todo Add unit-tests.
366
+ */
367
+ var getTreeGridFromData = function (data, uniqueNames, numberOfSeries) {
368
+ var categories = [],
369
+ collapsedNodes = [],
370
+ mapOfIdToNode = {},
371
+ mapOfPosToGridNode = {},
372
+ posIterator = -1,
373
+ uniqueNamesEnabled = isBoolean(uniqueNames) ? uniqueNames : false,
374
+ tree,
375
+ treeParams,
376
+ updateYValuesAndTickPos;
377
+
378
+ // Build the tree from the series data.
379
+ treeParams = {
380
+ // After the children has been created.
381
+ after: function (node) {
382
+ var gridNode = mapOfPosToGridNode[node.pos],
383
+ height = 0,
384
+ descendants = 0;
385
+
386
+ gridNode.children.forEach(function (child) {
387
+ descendants += child.descendants + 1;
388
+ height = Math.max(child.height + 1, height);
389
+ });
390
+ gridNode.descendants = descendants;
391
+ gridNode.height = height;
392
+ if (gridNode.collapsed) {
393
+ collapsedNodes.push(gridNode);
394
+ }
395
+ },
396
+ // Before the children has been created.
397
+ before: function (node) {
398
+ var data = isObject(node.data) ? node.data : {},
399
+ name = isString(data.name) ? data.name : '',
400
+ parentNode = mapOfIdToNode[node.parent],
401
+ parentGridNode = (
402
+ isObject(parentNode) ?
403
+ mapOfPosToGridNode[parentNode.pos] :
404
+ null
405
+ ),
406
+ hasSameName = function (x) {
407
+ return x.name === name;
408
+ },
409
+ gridNode,
410
+ pos;
411
+
412
+ // If not unique names, look for a sibling node with the same name.
413
+ if (
414
+ uniqueNamesEnabled &&
415
+ isObject(parentGridNode) &&
416
+ !!(gridNode = find(parentGridNode.children, hasSameName))
417
+ ) {
418
+ // If if there is a gridNode with the same name, reuse position.
419
+ pos = gridNode.pos;
420
+ // Add data node to list of nodes in the grid node.
421
+ gridNode.nodes.push(node);
422
+ } else {
423
+ // If it is a new grid node, increment position.
424
+ pos = posIterator++;
425
+ }
426
+
427
+ // Add new grid node to map.
428
+ if (!mapOfPosToGridNode[pos]) {
429
+ mapOfPosToGridNode[pos] = gridNode = {
430
+ depth: parentGridNode ? parentGridNode.depth + 1 : 0,
431
+ name: name,
432
+ nodes: [node],
433
+ children: [],
434
+ pos: pos
435
+ };
436
+
437
+ // If not root, then add name to categories.
438
+ if (pos !== -1) {
439
+ categories.push(name);
440
+ }
441
+
442
+ // Add name to list of children.
443
+ if (isObject(parentGridNode)) {
444
+ parentGridNode.children.push(gridNode);
445
+ }
446
+ }
447
+
448
+ // Add data node to map
449
+ if (isString(node.id)) {
450
+ mapOfIdToNode[node.id] = node;
451
+ }
452
+
453
+ // If one of the points are collapsed, then start the grid node in
454
+ // collapsed state.
455
+ if (data.collapsed === true) {
456
+ gridNode.collapsed = true;
457
+ }
458
+
459
+ // Assign pos to data node
460
+ node.pos = pos;
461
+ }
462
+ };
463
+
464
+ updateYValuesAndTickPos = function (map, numberOfSeries) {
465
+ var setValues = function (gridNode, start, result) {
466
+ var nodes = gridNode.nodes,
467
+ end = start + (start === -1 ? 0 : numberOfSeries - 1),
468
+ diff = (end - start) / 2,
469
+ padding = 0.5,
470
+ pos = start + diff;
471
+
472
+ nodes.forEach(function (node) {
473
+ var data = node.data;
474
+
475
+ if (isObject(data)) {
476
+ // Update point
477
+ data.y = start + data.seriesIndex;
478
+ // Remove the property once used
479
+ delete data.seriesIndex;
480
+ }
481
+ node.pos = pos;
482
+ });
483
+
484
+ result[pos] = gridNode;
485
+
486
+ gridNode.pos = pos;
487
+ gridNode.tickmarkOffset = diff + padding;
488
+ gridNode.collapseStart = end + padding;
489
+
490
+
491
+ gridNode.children.forEach(function (child) {
492
+ setValues(child, end + 1, result);
493
+ end = child.collapseEnd - padding;
494
+ });
495
+ // Set collapseEnd to the end of the last child node.
496
+ gridNode.collapseEnd = end + padding;
497
+
498
+ return result;
499
+ };
500
+
501
+ return setValues(map['-1'], -1, {});
502
+ };
503
+
504
+ // Create tree from data
505
+ tree = Tree.getTree(data, treeParams);
506
+
507
+ // Update y values of data, and set calculate tick positions.
508
+ mapOfPosToGridNode = updateYValuesAndTickPos(
509
+ mapOfPosToGridNode,
510
+ numberOfSeries
511
+ );
512
+
513
+ // Return the resulting data.
514
+ return {
515
+ categories: categories,
516
+ mapOfIdToNode: mapOfIdToNode,
517
+ mapOfPosToGridNode: mapOfPosToGridNode,
518
+ collapsedNodes: collapsedNodes,
519
+ tree: tree
520
+ };
521
+ };
522
+
523
+ override(GridAxis.prototype, {
524
+ init: function (proceed, chart, userOptions) {
525
+ var axis = this,
526
+ isTreeGrid = userOptions.type === 'treegrid';
527
+
528
+ // Set default and forced options for TreeGrid
529
+ if (isTreeGrid) {
530
+
531
+ // Add event for updating the categories of a treegrid.
532
+ // NOTE Preferably these events should be set on the axis.
533
+ addEvent(chart, 'beforeRender', onBeforeRender);
534
+ addEvent(chart, 'beforeRedraw', onBeforeRender);
535
+
536
+ userOptions = merge({
537
+ // Default options
538
+ grid: {
539
+ enabled: true
540
+ },
541
+ // TODO: add support for align in treegrid.
542
+ labels: {
543
+ align: 'left',
544
+
545
+ /**
546
+ * Set options on specific levels in a tree grid axis. Takes
547
+ * precedence over labels options.
548
+ *
549
+ * @sample {gantt} gantt/treegrid-axis/labels-levels
550
+ * Levels on TreeGrid Labels
551
+ *
552
+ * @type {Array<*>}
553
+ * @product gantt
554
+ * @apioption yAxis.labels.levels
555
+ */
556
+ levels: [{
557
+ /**
558
+ * Specify the level which the options within this object
559
+ * applies to.
560
+ *
561
+ * @sample {gantt} gantt/treegrid-axis/labels-levels
562
+ *
563
+ * @type {number}
564
+ * @product gantt
565
+ * @apioption yAxis.labels.levels.level
566
+ */
567
+ level: undefined
568
+ }, {
569
+ level: 1,
570
+ /**
571
+ * @type {Highcharts.CSSObject}
572
+ * @product gantt
573
+ * @apioption yAxis.labels.levels.style
574
+ */
575
+ style: {
576
+ /** @ignore-option */
577
+ fontWeight: 'bold'
578
+ }
579
+ }],
580
+
581
+ /**
582
+ * The symbol for the collapse and expand icon in a
583
+ * treegrid.
584
+ *
585
+ * @product gantt
586
+ * @optionparent yAxis.labels.symbol
587
+ */
588
+ symbol: {
589
+ /**
590
+ * The symbol type. Points to a definition function in
591
+ * the `Highcharts.Renderer.symbols` collection.
592
+ *
593
+ * @validvalue ["arc", "circle", "diamond", "square", "triangle", "triangle-down"]
594
+ */
595
+ type: 'triangle',
596
+ x: -5,
597
+ y: -5,
598
+ height: 10,
599
+ width: 10,
600
+ padding: 5
601
+ }
602
+ },
603
+ uniqueNames: false
604
+
605
+ }, userOptions, { // User options
606
+ // Forced options
607
+ reversed: true,
608
+ // grid.columns is not supported in treegrid
609
+ grid: {
610
+ columns: undefined
611
+ }
612
+ });
613
+ }
614
+
615
+ // Now apply the original function with the original arguments,
616
+ // which are sliced off this function's arguments
617
+ proceed.apply(axis, [chart, userOptions]);
618
+ if (isTreeGrid) {
619
+ axis.hasNames = true;
620
+ axis.options.showLastLabel = true;
621
+ }
622
+ },
623
+ /**
624
+ * Override to add indentation to axis.maxLabelDimensions.
625
+ *
626
+ * @private
627
+ * @function Highcharts.GridAxis#getMaxLabelDimensions
628
+ *
629
+ * @param {Function} proceed
630
+ * The original function
631
+ */
632
+ getMaxLabelDimensions: function (proceed) {
633
+ var axis = this,
634
+ options = axis.options,
635
+ labelOptions = options && options.labels,
636
+ indentation = (
637
+ labelOptions && isNumber(labelOptions.indentation) ?
638
+ options.labels.indentation :
639
+ 0
640
+ ),
641
+ retVal = proceed.apply(axis, argsToArray(arguments)),
642
+ isTreeGrid = axis.options.type === 'treegrid',
643
+ treeDepth;
644
+
645
+ if (isTreeGrid && this.mapOfPosToGridNode) {
646
+ treeDepth = axis.mapOfPosToGridNode[-1].height;
647
+ retVal.width += indentation * (treeDepth - 1);
648
+ }
649
+
650
+ return retVal;
651
+ },
652
+ /**
653
+ * Generates a tick for initial positioning.
654
+ *
655
+ * @private
656
+ * @function Highcharts.GridAxis#generateTick
657
+ *
658
+ * @param {Function} proceed
659
+ * The original generateTick function.
660
+ *
661
+ * @param {number} pos
662
+ * The tick position in axis values.
663
+ */
664
+ generateTick: function (proceed, pos) {
665
+ var axis = this,
666
+ mapOptionsToLevel = (
667
+ isObject(axis.mapOptionsToLevel) ? axis.mapOptionsToLevel : {}
668
+ ),
669
+ isTreeGrid = axis.options.type === 'treegrid',
670
+ ticks = axis.ticks,
671
+ tick = ticks[pos],
672
+ levelOptions,
673
+ options,
674
+ gridNode;
675
+
676
+ if (isTreeGrid) {
677
+ gridNode = axis.mapOfPosToGridNode[pos];
678
+ levelOptions = mapOptionsToLevel[gridNode.depth];
679
+
680
+ if (levelOptions) {
681
+ options = {
682
+ labels: levelOptions
683
+ };
684
+ }
685
+
686
+ if (!tick) {
687
+ ticks[pos] = tick =
688
+ new GridAxisTick(axis, pos, null, undefined, {
689
+ category: gridNode.name,
690
+ tickmarkOffset: gridNode.tickmarkOffset,
691
+ options: options
692
+ });
693
+ } else {
694
+ // update labels depending on tick interval
695
+ tick.parameters.category = gridNode.name;
696
+ tick.options = options;
697
+ tick.addLabel();
698
+ }
699
+ } else {
700
+ proceed.apply(axis, argsToArray(arguments));
701
+ }
702
+ },
703
+ /**
704
+ * Set the tick positions, tickInterval, axis min and max.
705
+ *
706
+ * @private
707
+ * @function Highcharts.GridAxis#setTickInterval
708
+ *
709
+ * @param {Function} proceed
710
+ * The original setTickInterval function.
711
+ */
712
+ setTickInterval: function (proceed) {
713
+ var axis = this,
714
+ options = axis.options,
715
+ isTreeGrid = options.type === 'treegrid';
716
+
717
+ if (isTreeGrid) {
718
+ axis.min = pick(axis.userMin, options.min, axis.dataMin);
719
+ axis.max = pick(axis.userMax, options.max, axis.dataMax);
720
+
721
+ fireEvent(axis, 'foundExtremes');
722
+
723
+ // setAxisTranslation modifies the min and max according to
724
+ // axis breaks.
725
+ axis.setAxisTranslation(true);
726
+
727
+ axis.tickmarkOffset = 0.5;
728
+ axis.tickInterval = 1;
729
+ axis.tickPositions = this.mapOfPosToGridNode ?
730
+ getTickPositions(axis) :
731
+ [];
732
+ } else {
733
+ proceed.apply(axis, argsToArray(arguments));
734
+ }
735
+ }
736
+ });
737
+ override(GridAxisTick.prototype, {
738
+ getLabelPosition: function (
739
+ proceed,
740
+ x,
741
+ y,
742
+ label,
743
+ horiz,
744
+ labelOptions,
745
+ tickmarkOffset,
746
+ index,
747
+ step
748
+ ) {
749
+ var tick = this,
750
+ lbOptions = pick(
751
+ tick.options && tick.options.labels,
752
+ labelOptions
753
+ ),
754
+ pos = tick.pos,
755
+ axis = tick.axis,
756
+ options = axis.options,
757
+ isTreeGrid = options.type === 'treegrid',
758
+ result = proceed.apply(
759
+ tick,
760
+ [x, y, label, horiz, lbOptions, tickmarkOffset, index, step]
761
+ ),
762
+ symbolOptions,
763
+ indentation,
764
+ mapOfPosToGridNode,
765
+ node,
766
+ level;
767
+
768
+ if (isTreeGrid) {
769
+ symbolOptions = (
770
+ lbOptions && isObject(lbOptions.symbol) ?
771
+ lbOptions.symbol :
772
+ {}
773
+ );
774
+ indentation = (
775
+ lbOptions && isNumber(lbOptions.indentation) ?
776
+ lbOptions.indentation :
777
+ 0
778
+ );
779
+ mapOfPosToGridNode = axis.mapOfPosToGridNode;
780
+ node = mapOfPosToGridNode && mapOfPosToGridNode[pos];
781
+ level = (node && node.depth) || 1;
782
+ result.x += (
783
+ // Add space for symbols
784
+ ((symbolOptions.width) + (symbolOptions.padding * 2)) +
785
+ // Apply indentation
786
+ ((level - 1) * indentation)
787
+ );
788
+ }
789
+
790
+ return result;
791
+ },
792
+ renderLabel: function (proceed) {
793
+ var tick = this,
794
+ pos = tick.pos,
795
+ axis = tick.axis,
796
+ label = tick.label,
797
+ mapOfPosToGridNode = axis.mapOfPosToGridNode,
798
+ options = axis.options,
799
+ labelOptions = pick(
800
+ tick.options && tick.options.labels,
801
+ options && options.labels
802
+ ),
803
+ symbolOptions = (
804
+ labelOptions && isObject(labelOptions.symbol) ?
805
+ labelOptions.symbol :
806
+ {}
807
+ ),
808
+ node = mapOfPosToGridNode && mapOfPosToGridNode[pos],
809
+ level = node && node.depth,
810
+ isTreeGrid = options.type === 'treegrid',
811
+ hasLabel = !!(label && label.element),
812
+ shouldRender = axis.tickPositions.indexOf(pos) > -1,
813
+ prefixClassName = 'highcharts-treegrid-node-',
814
+ collapsed,
815
+ addClassName,
816
+ removeClassName,
817
+ styledMode = axis.chart.styledMode;
818
+
819
+ if (isTreeGrid && node) {
820
+ // Add class name for hierarchical styling.
821
+ if (hasLabel) {
822
+ label.addClass(prefixClassName + 'level-' + level);
823
+ }
824
+ }
825
+
826
+ proceed.apply(tick, argsToArray(arguments));
827
+
828
+ if (isTreeGrid && node && hasLabel && node.descendants > 0) {
829
+ collapsed = isCollapsed(axis, node);
830
+
831
+ renderLabelIcon(
832
+ tick,
833
+ {
834
+ color: !styledMode && label.styles.color,
835
+ collapsed: collapsed,
836
+ group: label.parentGroup,
837
+ options: symbolOptions,
838
+ renderer: label.renderer,
839
+ show: shouldRender,
840
+ xy: label.xy
841
+ }
842
+ );
843
+
844
+ // Add class name for the node.
845
+ addClassName = prefixClassName +
846
+ (collapsed ? 'collapsed' : 'expanded');
847
+ removeClassName = prefixClassName +
848
+ (collapsed ? 'expanded' : 'collapsed');
849
+
850
+ label
851
+ .addClass(addClassName)
852
+ .removeClass(removeClassName);
853
+
854
+ if (!styledMode) {
855
+ label.css({
856
+ cursor: 'pointer'
857
+ });
858
+ }
859
+
860
+ // Add events to both label text and icon
861
+ [label, tick.labelIcon].forEach(function (object) {
862
+ if (!object.attachedTreeGridEvents) {
863
+ // On hover
864
+ H.addEvent(object.element, 'mouseover', function () {
865
+ onTickHover(label);
866
+ });
867
+
868
+ // On hover out
869
+ H.addEvent(object.element, 'mouseout', function () {
870
+ onTickHoverExit(label, labelOptions);
871
+ });
872
+
873
+ H.addEvent(object.element, 'click', function () {
874
+ tick.toggleCollapse();
875
+ });
876
+ object.attachedTreeGridEvents = true;
877
+ }
878
+ });
879
+ }
880
+ }
881
+ });
882
+
883
+ extend(GridAxisTick.prototype, /** @lends Highcharts.Tick.prototype */{
884
+
885
+ /**
886
+ * Collapse the grid cell. Used when axis is of type treegrid.
887
+ *
888
+ * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
889
+ *
890
+ * @private
891
+ * @function Highcharts.GridAxisTick#collapse
892
+ *
893
+ * @param {boolean} [redraw=true]
894
+ * Whether to redraw the chart or wait for an explicit call to
895
+ * {@link Highcharts.Chart#redraw}
896
+ */
897
+ collapse: function (redraw) {
898
+ var tick = this,
899
+ axis = tick.axis,
900
+ pos = tick.pos,
901
+ node = axis.mapOfPosToGridNode[pos],
902
+ breaks = collapse(axis, node);
903
+
904
+ axis.setBreaks(breaks, pick(redraw, true));
905
+ },
906
+ /**
907
+ * Expand the grid cell. Used when axis is of type treegrid.
908
+ *
909
+ * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
910
+ *
911
+ * @private
912
+ * @function Highcharts.GridAxisTick#expand
913
+ *
914
+ * @param {boolean} [redraw=true]
915
+ * Whether to redraw the chart or wait for an explicit call to
916
+ * {@link Highcharts.Chart#redraw}
917
+ */
918
+ expand: function (redraw) {
919
+ var tick = this,
920
+ axis = tick.axis,
921
+ pos = tick.pos,
922
+ node = axis.mapOfPosToGridNode[pos],
923
+ breaks = expand(axis, node);
924
+
925
+ axis.setBreaks(breaks, pick(redraw, true));
926
+ },
927
+ /**
928
+ * Toggle the collapse/expand state of the grid cell. Used when axis is of
929
+ * type treegrid.
930
+ *
931
+ * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
932
+ *
933
+ * @private
934
+ * @function Highcharts.GridAxisTick#toggleCollapse
935
+ *
936
+ * @param {boolean} [redraw=true]
937
+ * Whether to redraw the chart or wait for an explicit call to
938
+ * {@link Highcharts.Chart#redraw}
939
+ */
940
+ toggleCollapse: function (redraw) {
941
+ var tick = this,
942
+ axis = tick.axis,
943
+ pos = tick.pos,
944
+ node = axis.mapOfPosToGridNode[pos],
945
+ breaks = toggleCollapse(axis, node);
946
+
947
+ axis.setBreaks(breaks, pick(redraw, true));
948
+ }
949
+ });
950
+
951
+ GridAxis.prototype.updateYNames = function () {
952
+ var axis = this,
953
+ options = axis.options,
954
+ isTreeGrid = options.type === 'treegrid',
955
+ uniqueNames = options.uniqueNames,
956
+ isYAxis = !axis.isXAxis,
957
+ series = axis.series,
958
+ numberOfSeries = 0,
959
+ treeGrid,
960
+ data;
961
+
962
+ if (isTreeGrid && isYAxis) {
963
+ // Concatenate data from all series assigned to this axis.
964
+ data = series.reduce(function (arr, s) {
965
+ if (s.visible) {
966
+ // Push all data to array
967
+ s.options.data.forEach(function (data) {
968
+ if (isObject(data)) {
969
+ // Set series index on data. Removed again after use.
970
+ data.seriesIndex = numberOfSeries;
971
+ arr.push(data);
972
+ }
973
+ });
974
+
975
+ // Increment series index
976
+ if (uniqueNames === true) {
977
+ numberOfSeries++;
978
+ }
979
+ }
980
+ return arr;
981
+ }, []);
982
+
983
+ // Calculate categories and the hierarchy for the grid.
984
+ treeGrid = getTreeGridFromData(
985
+ data,
986
+ uniqueNames,
987
+ (uniqueNames === true) ? numberOfSeries : 1
988
+ );
989
+
990
+ // Assign values to the axis.
991
+ axis.categories = treeGrid.categories;
992
+ axis.mapOfPosToGridNode = treeGrid.mapOfPosToGridNode;
993
+ // Used on init to start a node as collapsed
994
+ axis.collapsedNodes = treeGrid.collapsedNodes;
995
+ axis.hasNames = true;
996
+ axis.tree = treeGrid.tree;
997
+ }
998
+ };
999
+
1000
+ // Make utility functions available for testing.
1001
+ GridAxis.prototype.utils = {
1002
+ getNode: Tree.getNode
1003
+ };