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,1803 @@
1
+ /* *
2
+ * (c) 2014-2019 Highsoft AS
3
+ *
4
+ * Authors: Jon Arild Nygard / Oystein Moseng
5
+ *
6
+ * License: www.highcharts.com/license
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ import H from '../parts/Globals.js';
12
+ import mixinTreeSeries from '../mixins/tree-series.js';
13
+ import '../parts/Utilities.js';
14
+ import '../parts/Options.js';
15
+ import '../parts/Series.js';
16
+ import '../parts/Color.js';
17
+
18
+ var seriesType = H.seriesType,
19
+ seriesTypes = H.seriesTypes,
20
+ addEvent = H.addEvent,
21
+ merge = H.merge,
22
+ extend = H.extend,
23
+ error = H.error,
24
+ defined = H.defined,
25
+ noop = H.noop,
26
+ fireEvent = H.fireEvent,
27
+ getColor = mixinTreeSeries.getColor,
28
+ getLevelOptions = mixinTreeSeries.getLevelOptions,
29
+ isArray = H.isArray,
30
+ isBoolean = function (x) {
31
+ return typeof x === 'boolean';
32
+ },
33
+ isNumber = H.isNumber,
34
+ isObject = H.isObject,
35
+ isString = H.isString,
36
+ pick = H.pick,
37
+ Series = H.Series,
38
+ stableSort = H.stableSort,
39
+ color = H.Color,
40
+ eachObject = function (list, func, context) {
41
+ context = context || this;
42
+ H.objectEach(list, function (val, key) {
43
+ func.call(context, val, key, list);
44
+ });
45
+ },
46
+ // @todo find correct name for this function.
47
+ // @todo Similar to reduce, this function is likely redundant
48
+ recursive = function (item, func, context) {
49
+ var next;
50
+
51
+ context = context || this;
52
+ next = func.call(context, item);
53
+ if (next !== false) {
54
+ recursive(next, func, context);
55
+ }
56
+ },
57
+ updateRootId = mixinTreeSeries.updateRootId;
58
+
59
+ /**
60
+ * @private
61
+ * @class
62
+ * @name Highcharts.seriesTypes.treemap
63
+ *
64
+ * @augments Highcharts.Series
65
+ */
66
+ seriesType(
67
+ 'treemap',
68
+ 'scatter'
69
+
70
+ /**
71
+ * A treemap displays hierarchical data using nested rectangles. The data
72
+ * can be laid out in varying ways depending on options.
73
+ *
74
+ * @sample highcharts/demo/treemap-large-dataset/
75
+ * Treemap
76
+ *
77
+ * @extends plotOptions.scatter
78
+ * @excluding marker, jitter
79
+ * @product highcharts
80
+ * @optionparent plotOptions.treemap
81
+ */
82
+ , {
83
+
84
+ /**
85
+ * When enabled the user can click on a point which is a parent and
86
+ * zoom in on its children. Deprecated and replaced by
87
+ * [allowTraversingTree](#plotOptions.treemap.allowTraversingTree).
88
+ *
89
+ * @sample {highcharts} highcharts/plotoptions/treemap-allowdrilltonode/
90
+ * Enabled
91
+ *
92
+ * @deprecated
93
+ * @type {boolean}
94
+ * @default false
95
+ * @since 4.1.0
96
+ * @product highcharts
97
+ * @apioption plotOptions.treemap.allowDrillToNode
98
+ */
99
+
100
+ /**
101
+ * When enabled the user can click on a point which is a parent and
102
+ * zoom in on its children.
103
+ *
104
+ * @sample {highcharts} highcharts/plotoptions/treemap-allowtraversingtree/
105
+ * Enabled
106
+ *
107
+ * @since 7.0.3
108
+ * @product highcharts
109
+ */
110
+ allowTraversingTree: false,
111
+
112
+ /**
113
+ * When the series contains less points than the crop threshold, all
114
+ * points are drawn, event if the points fall outside the visible plot
115
+ * area at the current zoom. The advantage of drawing all points
116
+ * (including markers and columns), is that animation is performed on
117
+ * updates. On the other hand, when the series contains more points than
118
+ * the crop threshold, the series data is cropped to only contain points
119
+ * that fall within the plot area. The advantage of cropping away
120
+ * invisible points is to increase performance on large series.
121
+ *
122
+ * @type {number}
123
+ * @default 300
124
+ * @since 4.1.0
125
+ * @product highcharts
126
+ * @apioption plotOptions.treemap.cropThreshold
127
+ */
128
+
129
+ /**
130
+ * Fires on a request for change of root node for the tree, before the
131
+ * update is made. An event object is passed to the function, containing
132
+ * additional properties `newRootId`, `previousRootId`, `redraw` and
133
+ * `trigger`.
134
+ *
135
+ * @type {function}
136
+ * @default undefined
137
+ * @sample {highcharts} highcharts/plotoptions/treemap-events-setrootnode/
138
+ * Alert update information on setRootNode event.
139
+ * @since 7.0.3
140
+ * @product highcharts
141
+ * @apioption plotOptions.treemap.events.setRootNode
142
+ */
143
+
144
+ /**
145
+ * This option decides if the user can interact with the parent nodes
146
+ * or just the leaf nodes. When this option is undefined, it will be
147
+ * true by default. However when allowTraversingTree is true, then it
148
+ * will be false by default.
149
+ *
150
+ * @sample {highcharts} highcharts/plotoptions/treemap-interactbyleaf-false/
151
+ * False
152
+ * @sample {highcharts} highcharts/plotoptions/treemap-interactbyleaf-true-and-allowtraversingtree/
153
+ * InteractByLeaf and allowTraversingTree is true
154
+ *
155
+ * @type {boolean}
156
+ * @since 4.1.2
157
+ * @product highcharts
158
+ * @apioption plotOptions.treemap.interactByLeaf
159
+ */
160
+
161
+ /**
162
+ * The sort index of the point inside the treemap level.
163
+ *
164
+ * @sample {highcharts} highcharts/plotoptions/treemap-sortindex/
165
+ * Sort by years
166
+ *
167
+ * @type {number}
168
+ * @since 4.1.10
169
+ * @product highcharts
170
+ * @apioption plotOptions.treemap.sortIndex
171
+ */
172
+
173
+ /**
174
+ * When using automatic point colors pulled from the `options.colors`
175
+ * collection, this option determines whether the chart should receive
176
+ * one color per series or one color per point.
177
+ *
178
+ * @see [series colors](#plotOptions.treemap.colors)
179
+ *
180
+ * @type {boolean}
181
+ * @default false
182
+ * @since 2.0
183
+ * @product highcharts
184
+ * @apioption plotOptions.treemap.colorByPoint
185
+ */
186
+
187
+ /**
188
+ * A series specific or series type specific color set to apply instead
189
+ * of the global [colors](#colors) when
190
+ * [colorByPoint](#plotOptions.treemap.colorByPoint) is true.
191
+ *
192
+ * @type {Array<Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject>}
193
+ * @since 3.0
194
+ * @product highcharts
195
+ * @apioption plotOptions.treemap.colors
196
+ */
197
+
198
+ /**
199
+ * Whether to display this series type or specific series item in the
200
+ * legend.
201
+ */
202
+ showInLegend: false,
203
+
204
+ /**
205
+ * @ignore
206
+ */
207
+ marker: false,
208
+
209
+ colorByPoint: false,
210
+
211
+ /**
212
+ * @extends plotOptions.heatmap.dataLabels
213
+ * @since 4.1.0
214
+ */
215
+ dataLabels: {
216
+ enabled: true,
217
+ defer: false,
218
+ verticalAlign: 'middle',
219
+ formatter: function () {
220
+ var point = this && this.point ? this.point : {},
221
+ name = isString(point.name) ? point.name : '';
222
+
223
+ return name;
224
+ },
225
+ inside: true
226
+ },
227
+
228
+ tooltip: {
229
+ headerFormat: '',
230
+ pointFormat: '<b>{point.name}</b>: {point.value}<br/>'
231
+ },
232
+
233
+ /**
234
+ * Whether to ignore hidden points when the layout algorithm runs.
235
+ * If `false`, hidden points will leave open spaces.
236
+ *
237
+ * @since 5.0.8
238
+ */
239
+ ignoreHiddenPoint: true,
240
+
241
+ /**
242
+ * This option decides which algorithm is used for setting position
243
+ * and dimensions of the points.
244
+ *
245
+ * @see [How to write your own algorithm](https://www.highcharts.com/docs/chart-and-series-types/treemap)
246
+ *
247
+ * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-sliceanddice/
248
+ * SliceAndDice by default
249
+ * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-stripes/
250
+ * Stripes
251
+ * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-squarified/
252
+ * Squarified
253
+ * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-strip/
254
+ * Strip
255
+ *
256
+ * @since 4.1.0
257
+ * @validvalue ["sliceAndDice", "stripes", "squarified", "strip"]
258
+ */
259
+ layoutAlgorithm: 'sliceAndDice',
260
+
261
+ /**
262
+ * Defines which direction the layout algorithm will start drawing.
263
+ *
264
+ * @since 4.1.0
265
+ * @validvalue ["vertical", "horizontal"]
266
+ */
267
+ layoutStartingDirection: 'vertical',
268
+
269
+ /**
270
+ * Enabling this option will make the treemap alternate the drawing
271
+ * direction between vertical and horizontal. The next levels starting
272
+ * direction will always be the opposite of the previous.
273
+ *
274
+ * @sample {highcharts} highcharts/plotoptions/treemap-alternatestartingdirection-true/
275
+ * Enabled
276
+ *
277
+ * @since 4.1.0
278
+ */
279
+ alternateStartingDirection: false,
280
+
281
+ /**
282
+ * Used together with the levels and allowTraversingTree options. When
283
+ * set to false the first level visible to be level one, which is
284
+ * dynamic when traversing the tree. Otherwise the level will be the
285
+ * same as the tree structure.
286
+ *
287
+ * @since 4.1.0
288
+ */
289
+ levelIsConstant: true,
290
+ /**
291
+ * Options for the button appearing when drilling down in a treemap.
292
+ * Deprecated and replaced by [traverseUpButton](#plotOptions.treemap.traverseUpButton).
293
+ *
294
+ * @deprecated
295
+ */
296
+ drillUpButton: {
297
+
298
+ /**
299
+ * The position of the button.
300
+ *
301
+ * @deprecated
302
+ */
303
+ position: {
304
+
305
+ /**
306
+ * Vertical alignment of the button.
307
+ *
308
+ * @deprecated
309
+ * @default top
310
+ * @validvalue ["top", "middle", "bottom"]
311
+ * @product highcharts
312
+ * @apioption plotOptions.treemap.drillUpButton.position.verticalAlign
313
+ */
314
+
315
+ /**
316
+ * Horizontal alignment of the button.
317
+ *
318
+ * @deprecated
319
+ * @validvalue ["left", "center", "right"]
320
+ */
321
+ align: 'right',
322
+
323
+ /**
324
+ * Horizontal offset of the button.
325
+ *
326
+ * @deprecated
327
+ */
328
+ x: -10,
329
+
330
+ /**
331
+ * Vertical offset of the button.
332
+ *
333
+ * @deprecated
334
+ */
335
+ y: 10
336
+ }
337
+ },
338
+
339
+ /**
340
+ * Options for the button appearing when traversing down in a treemap.
341
+ */
342
+ traverseUpButton: {
343
+
344
+ /**
345
+ * The position of the button.
346
+ */
347
+ position: {
348
+
349
+ /**
350
+ * Vertical alignment of the button.
351
+ *
352
+ * @default top
353
+ * @validvalue ["top", "middle", "bottom"]
354
+ * @product highcharts
355
+ * @apioption plotOptions.treemap.traverseUpButton.position.verticalAlign
356
+ */
357
+
358
+ /**
359
+ * Horizontal alignment of the button.
360
+ *
361
+ * @validvalue ["left", "center", "right"]
362
+ */
363
+ align: 'right',
364
+
365
+ /**
366
+ * Horizontal offset of the button.
367
+ */
368
+ x: -10,
369
+
370
+ /**
371
+ * Vertical offset of the button.
372
+ */
373
+ y: 10
374
+ }
375
+ },
376
+
377
+
378
+ /**
379
+ * Set options on specific levels. Takes precedence over series options,
380
+ * but not point options.
381
+ *
382
+ * @sample {highcharts} highcharts/plotoptions/treemap-levels/
383
+ * Styling dataLabels and borders
384
+ * @sample {highcharts} highcharts/demo/treemap-with-levels/
385
+ * Different layoutAlgorithm
386
+ *
387
+ * @type {Array<*>}
388
+ * @since 4.1.0
389
+ * @product highcharts
390
+ * @apioption plotOptions.treemap.levels
391
+ */
392
+
393
+ /**
394
+ * Can set a `borderColor` on all points which lies on the same level.
395
+ *
396
+ * @type {Highcharts.ColorString}
397
+ * @since 4.1.0
398
+ * @product highcharts
399
+ * @apioption plotOptions.treemap.levels.borderColor
400
+ */
401
+
402
+ /**
403
+ * Set the dash style of the border of all the point which lies on the
404
+ * level. See <a href"#plotoptions.scatter.dashstyle">
405
+ * plotOptions.scatter.dashStyle</a> for possible options.
406
+ *
407
+ * @type {string}
408
+ * @since 4.1.0
409
+ * @product highcharts
410
+ * @apioption plotOptions.treemap.levels.borderDashStyle
411
+ */
412
+
413
+ /**
414
+ * Can set the borderWidth on all points which lies on the same level.
415
+ *
416
+ * @type {number}
417
+ * @since 4.1.0
418
+ * @product highcharts
419
+ * @apioption plotOptions.treemap.levels.borderWidth
420
+ */
421
+
422
+ /**
423
+ * Can set a color on all points which lies on the same level.
424
+ *
425
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
426
+ * @since 4.1.0
427
+ * @product highcharts
428
+ * @apioption plotOptions.treemap.levels.color
429
+ */
430
+
431
+ /**
432
+ * A configuration object to define how the color of a child varies from
433
+ * the parent's color. The variation is distributed among the children
434
+ * of node. For example when setting brightness, the brightness change
435
+ * will range from the parent's original brightness on the first child,
436
+ * to the amount set in the `to` setting on the last node. This allows a
437
+ * gradient-like color scheme that sets children out from each other
438
+ * while highlighting the grouping on treemaps and sectors on sunburst
439
+ * charts.
440
+ *
441
+ * @sample highcharts/demo/sunburst/
442
+ * Sunburst with color variation
443
+ *
444
+ * @since 6.0.0
445
+ * @product highcharts
446
+ * @apioption plotOptions.treemap.levels.colorVariation
447
+ */
448
+
449
+ /**
450
+ * The key of a color variation. Currently supports `brightness` only.
451
+ *
452
+ * @type {string}
453
+ * @since 6.0.0
454
+ * @product highcharts
455
+ * @validvalue ["brightness"]
456
+ * @apioption plotOptions.treemap.levels.colorVariation.key
457
+ */
458
+
459
+ /**
460
+ * The ending value of a color variation. The last sibling will receive
461
+ * this value.
462
+ *
463
+ * @type {number}
464
+ * @since 6.0.0
465
+ * @product highcharts
466
+ * @apioption plotOptions.treemap.levels.colorVariation.to
467
+ */
468
+
469
+ /**
470
+ * Can set the options of dataLabels on each point which lies on the
471
+ * level.
472
+ * [plotOptions.treemap.dataLabels](#plotOptions.treemap.dataLabels) for
473
+ * possible values.
474
+ *
475
+ * @type {object}
476
+ * @since 4.1.0
477
+ * @product highcharts
478
+ * @apioption plotOptions.treemap.levels.dataLabels
479
+ */
480
+
481
+ /**
482
+ * Can set the layoutAlgorithm option on a specific level.
483
+ *
484
+ * @type {string}
485
+ * @since 4.1.0
486
+ * @product highcharts
487
+ * @validvalue ["sliceAndDice", "stripes", "squarified", "strip"]
488
+ * @apioption plotOptions.treemap.levels.layoutAlgorithm
489
+ */
490
+
491
+ /**
492
+ * Can set the layoutStartingDirection option on a specific level.
493
+ *
494
+ * @type {string}
495
+ * @since 4.1.0
496
+ * @product highcharts
497
+ * @validvalue ["vertical", "horizontal"]
498
+ * @apioption plotOptions.treemap.levels.layoutStartingDirection
499
+ */
500
+
501
+ /**
502
+ * Decides which level takes effect from the options set in the levels
503
+ * object.
504
+ *
505
+ * @sample {highcharts} highcharts/plotoptions/treemap-levels/
506
+ * Styling of both levels
507
+ *
508
+ * @type {number}
509
+ * @since 4.1.0
510
+ * @product highcharts
511
+ * @apioption plotOptions.treemap.levels.level
512
+ */
513
+
514
+
515
+ // Presentational options
516
+
517
+ /**
518
+ * The color of the border surrounding each tree map item.
519
+ *
520
+ * @type {Highcharts.ColorString}
521
+ */
522
+ borderColor: '#e6e6e6',
523
+
524
+ /**
525
+ * The width of the border surrounding each tree map item.
526
+ */
527
+ borderWidth: 1,
528
+
529
+ /**
530
+ * The opacity of a point in treemap. When a point has children, the
531
+ * visibility of the children is determined by the opacity.
532
+ *
533
+ * @since 4.2.4
534
+ */
535
+ opacity: 0.15,
536
+
537
+ /**
538
+ * A wrapper object for all the series options in specific states.
539
+ *
540
+ * @extends plotOptions.heatmap.states
541
+ */
542
+ states: {
543
+
544
+ /**
545
+ * Options for the hovered series
546
+ *
547
+ * @extends plotOptions.heatmap.states.hover
548
+ * @excluding halo
549
+ */
550
+ hover: {
551
+
552
+ /**
553
+ * The border color for the hovered state.
554
+ */
555
+ borderColor: '#999999',
556
+
557
+ /**
558
+ * Brightness for the hovered point. Defaults to 0 if the
559
+ * heatmap series is loaded first, otherwise 0.1.
560
+ *
561
+ * @type {number}
562
+ * @default undefined
563
+ */
564
+ brightness: seriesTypes.heatmap ? 0 : 0.1,
565
+
566
+ /**
567
+ * @extends plotOptions.heatmap.states.hover.halo
568
+ */
569
+ halo: false,
570
+
571
+ /**
572
+ * The opacity of a point in treemap. When a point has children,
573
+ * the visibility of the children is determined by the opacity.
574
+ *
575
+ * @since 4.2.4
576
+ */
577
+ opacity: 0.75,
578
+
579
+ /**
580
+ * The shadow option for hovered state.
581
+ */
582
+ shadow: false
583
+ }
584
+ }
585
+
586
+
587
+ // Prototype members
588
+ }, {
589
+ pointArrayMap: ['value'],
590
+ directTouch: true,
591
+ optionalAxis: 'colorAxis',
592
+ getSymbol: noop,
593
+ parallelArrays: ['x', 'y', 'value', 'colorValue'],
594
+ colorKey: 'colorValue', // Point color option key
595
+ trackerGroups: ['group', 'dataLabelsGroup'],
596
+ /**
597
+ * Creates an object map from parent id to childrens index.
598
+ *
599
+ * @private
600
+ * @function Highcharts.Series#getListOfParents
601
+ *
602
+ * @param {Highcharts.SeriesTreemapDataOptions} data
603
+ * List of points set in options.
604
+ *
605
+ * @param {Array<string>} existingIds
606
+ * List of all point ids.
607
+ *
608
+ * @return {object}
609
+ * Map from parent id to children index in data.
610
+ */
611
+ getListOfParents: function (data, existingIds) {
612
+ var arr = isArray(data) ? data : [],
613
+ ids = isArray(existingIds) ? existingIds : [],
614
+ listOfParents = arr.reduce(function (prev, curr, i) {
615
+ var parent = pick(curr.parent, '');
616
+
617
+ if (prev[parent] === undefined) {
618
+ prev[parent] = [];
619
+ }
620
+ prev[parent].push(i);
621
+ return prev;
622
+ }, {
623
+ '': [] // Root of tree
624
+ });
625
+
626
+ // If parent does not exist, hoist parent to root of tree.
627
+ eachObject(listOfParents, function (children, parent, list) {
628
+ if ((parent !== '') && (ids.indexOf(parent) === -1)) {
629
+ children.forEach(function (child) {
630
+ list[''].push(child);
631
+ });
632
+ delete list[parent];
633
+ }
634
+ });
635
+ return listOfParents;
636
+ },
637
+ // Creates a tree structured object from the series points
638
+ getTree: function () {
639
+ var series = this,
640
+ allIds = this.data.map(function (d) {
641
+ return d.id;
642
+ }),
643
+ parentList = series.getListOfParents(this.data, allIds);
644
+
645
+ series.nodeMap = [];
646
+ return series.buildNode('', -1, 0, parentList, null);
647
+ },
648
+ init: function (chart, options) {
649
+ var series = this,
650
+ colorSeriesMixin = H.colorSeriesMixin;
651
+
652
+ // If color series logic is loaded, add some properties
653
+ if (H.colorSeriesMixin) {
654
+ this.translateColors = colorSeriesMixin.translateColors;
655
+ this.colorAttribs = colorSeriesMixin.colorAttribs;
656
+ this.axisTypes = colorSeriesMixin.axisTypes;
657
+ }
658
+
659
+ // Handle deprecated options.
660
+ addEvent(series, 'setOptions', function (event) {
661
+ var options = event.userOptions;
662
+
663
+ if (
664
+ defined(options.allowDrillToNode) &&
665
+ !defined(options.allowTraversingTree)
666
+ ) {
667
+ options.allowTraversingTree = options.allowDrillToNode;
668
+ delete options.allowDrillToNode;
669
+ }
670
+
671
+ if (
672
+ defined(options.drillUpButton) &&
673
+ !defined(options.traverseUpButton)
674
+ ) {
675
+ options.traverseUpButton = options.drillUpButton;
676
+ delete options.drillUpButton;
677
+ }
678
+ });
679
+
680
+ Series.prototype.init.call(series, chart, options);
681
+
682
+ if (series.options.allowTraversingTree) {
683
+ addEvent(series, 'click', series.onClickDrillToNode);
684
+ }
685
+ },
686
+ buildNode: function (id, i, level, list, parent) {
687
+ var series = this,
688
+ children = [],
689
+ point = series.points[i],
690
+ height = 0,
691
+ node,
692
+ child;
693
+
694
+ // Actions
695
+ ((list[id] || [])).forEach(function (i) {
696
+ child = series.buildNode(
697
+ series.points[i].id,
698
+ i,
699
+ (level + 1),
700
+ list,
701
+ id
702
+ );
703
+ height = Math.max(child.height + 1, height);
704
+ children.push(child);
705
+ });
706
+ node = {
707
+ id: id,
708
+ i: i,
709
+ children: children,
710
+ height: height,
711
+ level: level,
712
+ parent: parent,
713
+ visible: false // @todo move this to better location
714
+ };
715
+ series.nodeMap[node.id] = node;
716
+ if (point) {
717
+ point.node = node;
718
+ }
719
+ return node;
720
+ },
721
+ setTreeValues: function (tree) {
722
+ var series = this,
723
+ options = series.options,
724
+ idRoot = series.rootNode,
725
+ mapIdToNode = series.nodeMap,
726
+ nodeRoot = mapIdToNode[idRoot],
727
+ levelIsConstant = (
728
+ isBoolean(options.levelIsConstant) ?
729
+ options.levelIsConstant :
730
+ true
731
+ ),
732
+ childrenTotal = 0,
733
+ children = [],
734
+ val,
735
+ point = series.points[tree.i];
736
+
737
+ // First give the children some values
738
+ tree.children.forEach(function (child) {
739
+ child = series.setTreeValues(child);
740
+ children.push(child);
741
+ if (!child.ignore) {
742
+ childrenTotal += child.val;
743
+ }
744
+ });
745
+ // Sort the children
746
+ stableSort(children, function (a, b) {
747
+ return a.sortIndex - b.sortIndex;
748
+ });
749
+ // Set the values
750
+ val = pick(point && point.options.value, childrenTotal);
751
+ if (point) {
752
+ point.value = val;
753
+ }
754
+ extend(tree, {
755
+ children: children,
756
+ childrenTotal: childrenTotal,
757
+ // Ignore this node if point is not visible
758
+ ignore: !(pick(point && point.visible, true) && (val > 0)),
759
+ isLeaf: tree.visible && !childrenTotal,
760
+ levelDynamic: (
761
+ tree.level - (levelIsConstant ? 0 : nodeRoot.level)
762
+ ),
763
+ name: pick(point && point.name, ''),
764
+ sortIndex: pick(point && point.sortIndex, -val),
765
+ val: val
766
+ });
767
+ return tree;
768
+ },
769
+ /**
770
+ * Recursive function which calculates the area for all children of a
771
+ * node.
772
+ *
773
+ * @private
774
+ * @function Highcharts.Series#calculateChildrenAreas
775
+ *
776
+ * @param {object} node
777
+ * The node which is parent to the children.
778
+ *
779
+ * @param {object} area
780
+ * The rectangular area of the parent.
781
+ */
782
+ calculateChildrenAreas: function (parent, area) {
783
+ var series = this,
784
+ options = series.options,
785
+ mapOptionsToLevel = series.mapOptionsToLevel,
786
+ level = mapOptionsToLevel[parent.level + 1],
787
+ algorithm = pick(
788
+ (
789
+ series[level &&
790
+ level.layoutAlgorithm] &&
791
+ level.layoutAlgorithm
792
+ ),
793
+ options.layoutAlgorithm
794
+ ),
795
+ alternate = options.alternateStartingDirection,
796
+ childrenValues = [],
797
+ children;
798
+
799
+ // Collect all children which should be included
800
+ children = parent.children.filter(function (n) {
801
+ return !n.ignore;
802
+ });
803
+
804
+ if (level && level.layoutStartingDirection) {
805
+ area.direction = level.layoutStartingDirection === 'vertical' ?
806
+ 0 :
807
+ 1;
808
+ }
809
+ childrenValues = series[algorithm](area, children);
810
+ children.forEach(function (child, index) {
811
+ var values = childrenValues[index];
812
+
813
+ child.values = merge(values, {
814
+ val: child.childrenTotal,
815
+ direction: (alternate ? 1 - area.direction : area.direction)
816
+ });
817
+ child.pointValues = merge(values, {
818
+ x: (values.x / series.axisRatio),
819
+ width: (values.width / series.axisRatio)
820
+ });
821
+ // If node has children, then call method recursively
822
+ if (child.children.length) {
823
+ series.calculateChildrenAreas(child, child.values);
824
+ }
825
+ });
826
+ },
827
+ setPointValues: function () {
828
+ var series = this,
829
+ xAxis = series.xAxis,
830
+ yAxis = series.yAxis;
831
+
832
+ series.points.forEach(function (point) {
833
+ var node = point.node,
834
+ values = node.pointValues,
835
+ x1,
836
+ x2,
837
+ y1,
838
+ y2,
839
+ crispCorr = 0;
840
+
841
+ // Get the crisp correction in classic mode. For this to work in
842
+ // styled mode, we would need to first add the shape (without x,
843
+ // y, width and height), then read the rendered stroke width
844
+ // using point.graphic.strokeWidth(), then modify and apply the
845
+ // shapeArgs. This applies also to column series, but the
846
+ // downside is performance and code complexity.
847
+ if (!series.chart.styledMode) {
848
+ crispCorr = (
849
+ (series.pointAttribs(point)['stroke-width'] || 0) % 2
850
+ ) / 2;
851
+ }
852
+
853
+ // Points which is ignored, have no values.
854
+ if (values && node.visible) {
855
+ x1 = Math.round(
856
+ xAxis.translate(values.x, 0, 0, 0, 1)
857
+ ) - crispCorr;
858
+ x2 = Math.round(
859
+ xAxis.translate(values.x + values.width, 0, 0, 0, 1)
860
+ ) - crispCorr;
861
+ y1 = Math.round(
862
+ yAxis.translate(values.y, 0, 0, 0, 1)
863
+ ) - crispCorr;
864
+ y2 = Math.round(
865
+ yAxis.translate(values.y + values.height, 0, 0, 0, 1)
866
+ ) - crispCorr;
867
+ // Set point values
868
+ point.shapeType = 'rect';
869
+ point.shapeArgs = {
870
+ x: Math.min(x1, x2),
871
+ y: Math.min(y1, y2),
872
+ width: Math.abs(x2 - x1),
873
+ height: Math.abs(y2 - y1)
874
+ };
875
+ point.plotX =
876
+ point.shapeArgs.x + (point.shapeArgs.width / 2);
877
+ point.plotY =
878
+ point.shapeArgs.y + (point.shapeArgs.height / 2);
879
+ } else {
880
+ // Reset visibility
881
+ delete point.plotX;
882
+ delete point.plotY;
883
+ }
884
+ });
885
+ },
886
+
887
+ // Set the node's color recursively, from the parent down.
888
+ setColorRecursive: function (
889
+ node,
890
+ parentColor,
891
+ colorIndex,
892
+ index,
893
+ siblings
894
+ ) {
895
+ var series = this,
896
+ chart = series && series.chart,
897
+ colors = chart && chart.options && chart.options.colors,
898
+ colorInfo,
899
+ point;
900
+
901
+ if (node) {
902
+ colorInfo = getColor(node, {
903
+ colors: colors,
904
+ index: index,
905
+ mapOptionsToLevel: series.mapOptionsToLevel,
906
+ parentColor: parentColor,
907
+ parentColorIndex: colorIndex,
908
+ series: series,
909
+ siblings: siblings
910
+ });
911
+
912
+ point = series.points[node.i];
913
+ if (point) {
914
+ point.color = colorInfo.color;
915
+ point.colorIndex = colorInfo.colorIndex;
916
+ }
917
+
918
+ // Do it all again with the children
919
+ (node.children || []).forEach(function (child, i) {
920
+ series.setColorRecursive(
921
+ child,
922
+ colorInfo.color,
923
+ colorInfo.colorIndex,
924
+ i,
925
+ node.children.length
926
+ );
927
+ });
928
+ }
929
+ },
930
+ algorithmGroup: function (h, w, d, p) {
931
+ this.height = h;
932
+ this.width = w;
933
+ this.plot = p;
934
+ this.direction = d;
935
+ this.startDirection = d;
936
+ this.total = 0;
937
+ this.nW = 0;
938
+ this.lW = 0;
939
+ this.nH = 0;
940
+ this.lH = 0;
941
+ this.elArr = [];
942
+ this.lP = {
943
+ total: 0,
944
+ lH: 0,
945
+ nH: 0,
946
+ lW: 0,
947
+ nW: 0,
948
+ nR: 0,
949
+ lR: 0,
950
+ aspectRatio: function (w, h) {
951
+ return Math.max((w / h), (h / w));
952
+ }
953
+ };
954
+ this.addElement = function (el) {
955
+ this.lP.total = this.elArr[this.elArr.length - 1];
956
+ this.total = this.total + el;
957
+ if (this.direction === 0) {
958
+ // Calculate last point old aspect ratio
959
+ this.lW = this.nW;
960
+ this.lP.lH = this.lP.total / this.lW;
961
+ this.lP.lR = this.lP.aspectRatio(this.lW, this.lP.lH);
962
+ // Calculate last point new aspect ratio
963
+ this.nW = this.total / this.height;
964
+ this.lP.nH = this.lP.total / this.nW;
965
+ this.lP.nR = this.lP.aspectRatio(this.nW, this.lP.nH);
966
+ } else {
967
+ // Calculate last point old aspect ratio
968
+ this.lH = this.nH;
969
+ this.lP.lW = this.lP.total / this.lH;
970
+ this.lP.lR = this.lP.aspectRatio(this.lP.lW, this.lH);
971
+ // Calculate last point new aspect ratio
972
+ this.nH = this.total / this.width;
973
+ this.lP.nW = this.lP.total / this.nH;
974
+ this.lP.nR = this.lP.aspectRatio(this.lP.nW, this.nH);
975
+ }
976
+ this.elArr.push(el);
977
+ };
978
+ this.reset = function () {
979
+ this.nW = 0;
980
+ this.lW = 0;
981
+ this.elArr = [];
982
+ this.total = 0;
983
+ };
984
+ },
985
+ algorithmCalcPoints: function (
986
+ directionChange, last, group, childrenArea
987
+ ) {
988
+ var pX,
989
+ pY,
990
+ pW,
991
+ pH,
992
+ gW = group.lW,
993
+ gH = group.lH,
994
+ plot = group.plot,
995
+ keep,
996
+ i = 0,
997
+ end = group.elArr.length - 1;
998
+
999
+ if (last) {
1000
+ gW = group.nW;
1001
+ gH = group.nH;
1002
+ } else {
1003
+ keep = group.elArr[group.elArr.length - 1];
1004
+ }
1005
+ group.elArr.forEach(function (p) {
1006
+ if (last || (i < end)) {
1007
+ if (group.direction === 0) {
1008
+ pX = plot.x;
1009
+ pY = plot.y;
1010
+ pW = gW;
1011
+ pH = p / pW;
1012
+ } else {
1013
+ pX = plot.x;
1014
+ pY = plot.y;
1015
+ pH = gH;
1016
+ pW = p / pH;
1017
+ }
1018
+ childrenArea.push({
1019
+ x: pX,
1020
+ y: pY,
1021
+ width: pW,
1022
+ height: H.correctFloat(pH)
1023
+ });
1024
+ if (group.direction === 0) {
1025
+ plot.y = plot.y + pH;
1026
+ } else {
1027
+ plot.x = plot.x + pW;
1028
+ }
1029
+ }
1030
+ i = i + 1;
1031
+ });
1032
+ // Reset variables
1033
+ group.reset();
1034
+ if (group.direction === 0) {
1035
+ group.width = group.width - gW;
1036
+ } else {
1037
+ group.height = group.height - gH;
1038
+ }
1039
+ plot.y = plot.parent.y + (plot.parent.height - group.height);
1040
+ plot.x = plot.parent.x + (plot.parent.width - group.width);
1041
+ if (directionChange) {
1042
+ group.direction = 1 - group.direction;
1043
+ }
1044
+ // If not last, then add uncalculated element
1045
+ if (!last) {
1046
+ group.addElement(keep);
1047
+ }
1048
+ },
1049
+ algorithmLowAspectRatio: function (directionChange, parent, children) {
1050
+ var childrenArea = [],
1051
+ series = this,
1052
+ pTot,
1053
+ plot = {
1054
+ x: parent.x,
1055
+ y: parent.y,
1056
+ parent: parent
1057
+ },
1058
+ direction = parent.direction,
1059
+ i = 0,
1060
+ end = children.length - 1,
1061
+ group = new this.algorithmGroup( // eslint-disable-line new-cap
1062
+ parent.height,
1063
+ parent.width,
1064
+ direction,
1065
+ plot
1066
+ );
1067
+
1068
+ // Loop through and calculate all areas
1069
+ children.forEach(function (child) {
1070
+ pTot =
1071
+ (parent.width * parent.height) * (child.val / parent.val);
1072
+ group.addElement(pTot);
1073
+ if (group.lP.nR > group.lP.lR) {
1074
+ series.algorithmCalcPoints(
1075
+ directionChange,
1076
+ false,
1077
+ group,
1078
+ childrenArea,
1079
+ plot
1080
+ );
1081
+ }
1082
+ // If last child, then calculate all remaining areas
1083
+ if (i === end) {
1084
+ series.algorithmCalcPoints(
1085
+ directionChange,
1086
+ true,
1087
+ group,
1088
+ childrenArea,
1089
+ plot
1090
+ );
1091
+ }
1092
+ i = i + 1;
1093
+ });
1094
+ return childrenArea;
1095
+ },
1096
+ algorithmFill: function (directionChange, parent, children) {
1097
+ var childrenArea = [],
1098
+ pTot,
1099
+ direction = parent.direction,
1100
+ x = parent.x,
1101
+ y = parent.y,
1102
+ width = parent.width,
1103
+ height = parent.height,
1104
+ pX,
1105
+ pY,
1106
+ pW,
1107
+ pH;
1108
+
1109
+ children.forEach(function (child) {
1110
+ pTot =
1111
+ (parent.width * parent.height) * (child.val / parent.val);
1112
+ pX = x;
1113
+ pY = y;
1114
+ if (direction === 0) {
1115
+ pH = height;
1116
+ pW = pTot / pH;
1117
+ width = width - pW;
1118
+ x = x + pW;
1119
+ } else {
1120
+ pW = width;
1121
+ pH = pTot / pW;
1122
+ height = height - pH;
1123
+ y = y + pH;
1124
+ }
1125
+ childrenArea.push({
1126
+ x: pX,
1127
+ y: pY,
1128
+ width: pW,
1129
+ height: pH
1130
+ });
1131
+ if (directionChange) {
1132
+ direction = 1 - direction;
1133
+ }
1134
+ });
1135
+ return childrenArea;
1136
+ },
1137
+ strip: function (parent, children) {
1138
+ return this.algorithmLowAspectRatio(false, parent, children);
1139
+ },
1140
+ squarified: function (parent, children) {
1141
+ return this.algorithmLowAspectRatio(true, parent, children);
1142
+ },
1143
+ sliceAndDice: function (parent, children) {
1144
+ return this.algorithmFill(true, parent, children);
1145
+ },
1146
+ stripes: function (parent, children) {
1147
+ return this.algorithmFill(false, parent, children);
1148
+ },
1149
+ translate: function () {
1150
+ var series = this,
1151
+ options = series.options,
1152
+ // NOTE: updateRootId modifies series.
1153
+ rootId = updateRootId(series),
1154
+ rootNode,
1155
+ pointValues,
1156
+ seriesArea,
1157
+ tree,
1158
+ val;
1159
+
1160
+ // Call prototype function
1161
+ Series.prototype.translate.call(series);
1162
+
1163
+ // @todo Only if series.isDirtyData is true
1164
+ tree = series.tree = series.getTree();
1165
+ rootNode = series.nodeMap[rootId];
1166
+ series.renderTraverseUpButton(rootId);
1167
+ series.mapOptionsToLevel = getLevelOptions({
1168
+ from: rootNode.level + 1,
1169
+ levels: options.levels,
1170
+ to: tree.height,
1171
+ defaults: {
1172
+ levelIsConstant: series.options.levelIsConstant,
1173
+ colorByPoint: options.colorByPoint
1174
+ }
1175
+ });
1176
+ if (
1177
+ rootId !== '' &&
1178
+ (!rootNode || !rootNode.children.length)
1179
+ ) {
1180
+ series.setRootNode('', false);
1181
+ rootId = series.rootNode;
1182
+ rootNode = series.nodeMap[rootId];
1183
+ }
1184
+ // Parents of the root node is by default visible
1185
+ recursive(series.nodeMap[series.rootNode], function (node) {
1186
+ var next = false,
1187
+ p = node.parent;
1188
+
1189
+ node.visible = true;
1190
+ if (p || p === '') {
1191
+ next = series.nodeMap[p];
1192
+ }
1193
+ return next;
1194
+ });
1195
+ // Children of the root node is by default visible
1196
+ recursive(
1197
+ series.nodeMap[series.rootNode].children,
1198
+ function (children) {
1199
+ var next = false;
1200
+
1201
+ children.forEach(function (child) {
1202
+ child.visible = true;
1203
+ if (child.children.length) {
1204
+ next = (next || []).concat(child.children);
1205
+ }
1206
+ });
1207
+ return next;
1208
+ }
1209
+ );
1210
+ series.setTreeValues(tree);
1211
+
1212
+ // Calculate plotting values.
1213
+ series.axisRatio = (series.xAxis.len / series.yAxis.len);
1214
+ series.nodeMap[''].pointValues = pointValues =
1215
+ { x: 0, y: 0, width: 100, height: 100 };
1216
+ series.nodeMap[''].values = seriesArea = merge(pointValues, {
1217
+ width: (pointValues.width * series.axisRatio),
1218
+ direction: (
1219
+ options.layoutStartingDirection === 'vertical' ? 0 : 1
1220
+ ),
1221
+ val: tree.val
1222
+ });
1223
+ series.calculateChildrenAreas(tree, seriesArea);
1224
+
1225
+ // Logic for point colors
1226
+ if (series.colorAxis) {
1227
+ series.translateColors();
1228
+ } else if (!options.colorByPoint) {
1229
+ series.setColorRecursive(series.tree);
1230
+ }
1231
+
1232
+ // Update axis extremes according to the root node.
1233
+ if (options.allowTraversingTree) {
1234
+ val = rootNode.pointValues;
1235
+ series.xAxis.setExtremes(val.x, val.x + val.width, false);
1236
+ series.yAxis.setExtremes(val.y, val.y + val.height, false);
1237
+ series.xAxis.setScale();
1238
+ series.yAxis.setScale();
1239
+ }
1240
+
1241
+ // Assign values to points.
1242
+ series.setPointValues();
1243
+ },
1244
+ /**
1245
+ * Extend drawDataLabels with logic to handle custom options related to
1246
+ * the treemap series:
1247
+ *
1248
+ * - Points which is not a leaf node, has dataLabels disabled by
1249
+ * default.
1250
+ *
1251
+ * - Options set on series.levels is merged in.
1252
+ *
1253
+ * - Width of the dataLabel is set to match the width of the point
1254
+ * shape.
1255
+ *
1256
+ * @private
1257
+ * @function Highcharts.Series#drawDataLabels
1258
+ */
1259
+ drawDataLabels: function () {
1260
+ var series = this,
1261
+ mapOptionsToLevel = series.mapOptionsToLevel,
1262
+ points = series.points.filter(function (n) {
1263
+ return n.node.visible;
1264
+ }),
1265
+ options,
1266
+ level;
1267
+
1268
+ points.forEach(function (point) {
1269
+ level = mapOptionsToLevel[point.node.level];
1270
+ // Set options to new object to avoid problems with scope
1271
+ options = { style: {} };
1272
+
1273
+ // If not a leaf, then label should be disabled as default
1274
+ if (!point.node.isLeaf) {
1275
+ options.enabled = false;
1276
+ }
1277
+
1278
+ // If options for level exists, include them as well
1279
+ if (level && level.dataLabels) {
1280
+ options = merge(options, level.dataLabels);
1281
+ series._hasPointLabels = true;
1282
+ }
1283
+
1284
+ // Set dataLabel width to the width of the point shape.
1285
+ if (point.shapeArgs) {
1286
+ options.style.width = point.shapeArgs.width;
1287
+ if (point.dataLabel) {
1288
+ point.dataLabel.css({
1289
+ width: point.shapeArgs.width + 'px'
1290
+ });
1291
+ }
1292
+ }
1293
+
1294
+ // Merge custom options with point options
1295
+ point.dlOptions = merge(options, point.options.dataLabels);
1296
+ });
1297
+ Series.prototype.drawDataLabels.call(this);
1298
+ },
1299
+
1300
+ // Over the alignment method by setting z index
1301
+ alignDataLabel: function (point, dataLabel, labelOptions) {
1302
+ var style = labelOptions.style;
1303
+
1304
+ // #8160: Prevent the label from exceeding the point's
1305
+ // boundaries in treemaps by applying ellipsis overflow.
1306
+ // The issue was happening when datalabel's text contained a
1307
+ // long sequence of characters without a whitespace.
1308
+ if (
1309
+ !H.defined(style.textOverflow) &&
1310
+ dataLabel.text &&
1311
+ dataLabel.getBBox().width > dataLabel.text.textWidth
1312
+ ) {
1313
+ dataLabel.css({
1314
+ textOverflow: 'ellipsis',
1315
+ // unit (px) is required when useHTML is true
1316
+ width: style.width += 'px'
1317
+ });
1318
+ }
1319
+
1320
+ seriesTypes.column.prototype.alignDataLabel.apply(this, arguments);
1321
+ if (point.dataLabel) {
1322
+ // point.node.zIndex could be undefined (#6956)
1323
+ point.dataLabel.attr({ zIndex: (point.node.zIndex || 0) + 1 });
1324
+ }
1325
+ },
1326
+
1327
+ // Get presentational attributes
1328
+ pointAttribs: function (point, state) {
1329
+ var series = this,
1330
+ mapOptionsToLevel = (
1331
+ isObject(series.mapOptionsToLevel) ?
1332
+ series.mapOptionsToLevel :
1333
+ {}
1334
+ ),
1335
+ level = point && mapOptionsToLevel[point.node.level] || {},
1336
+ options = this.options,
1337
+ attr,
1338
+ stateOptions = (state && options.states[state]) || {},
1339
+ className = (point && point.getClassName()) || '',
1340
+ opacity;
1341
+
1342
+ // Set attributes by precedence. Point trumps level trumps series.
1343
+ // Stroke width uses pick because it can be 0.
1344
+ attr = {
1345
+ 'stroke':
1346
+ (point && point.borderColor) ||
1347
+ level.borderColor ||
1348
+ stateOptions.borderColor ||
1349
+ options.borderColor,
1350
+ 'stroke-width': pick(
1351
+ point && point.borderWidth,
1352
+ level.borderWidth,
1353
+ stateOptions.borderWidth,
1354
+ options.borderWidth
1355
+ ),
1356
+ 'dashstyle':
1357
+ (point && point.borderDashStyle) ||
1358
+ level.borderDashStyle ||
1359
+ stateOptions.borderDashStyle ||
1360
+ options.borderDashStyle,
1361
+ 'fill': (point && point.color) || this.color
1362
+ };
1363
+
1364
+ // Hide levels above the current view
1365
+ if (className.indexOf('highcharts-above-level') !== -1) {
1366
+ attr.fill = 'none';
1367
+ attr['stroke-width'] = 0;
1368
+
1369
+ // Nodes with children that accept interaction
1370
+ } else if (
1371
+ className.indexOf('highcharts-internal-node-interactive') !== -1
1372
+ ) {
1373
+ opacity = pick(stateOptions.opacity, options.opacity);
1374
+ attr.fill = color(attr.fill).setOpacity(opacity).get();
1375
+ attr.cursor = 'pointer';
1376
+ // Hide nodes that have children
1377
+ } else if (className.indexOf('highcharts-internal-node') !== -1) {
1378
+ attr.fill = 'none';
1379
+
1380
+ } else if (state) {
1381
+ // Brighten and hoist the hover nodes
1382
+ attr.fill = color(attr.fill)
1383
+ .brighten(stateOptions.brightness)
1384
+ .get();
1385
+ }
1386
+ return attr;
1387
+ },
1388
+
1389
+ // Extending ColumnSeries drawPoints
1390
+ drawPoints: function () {
1391
+ var series = this,
1392
+ points = series.points.filter(function (n) {
1393
+ return n.node.visible;
1394
+ });
1395
+
1396
+ points.forEach(function (point) {
1397
+ var groupKey = 'level-group-' + point.node.levelDynamic;
1398
+
1399
+ if (!series[groupKey]) {
1400
+ series[groupKey] = series.chart.renderer.g(groupKey)
1401
+ .attr({
1402
+ // @todo Set the zIndex based upon the number of levels,
1403
+ // instead of using 1000
1404
+ zIndex: 1000 - point.node.levelDynamic
1405
+ })
1406
+ .add(series.group);
1407
+ }
1408
+ point.group = series[groupKey];
1409
+
1410
+ });
1411
+ // Call standard drawPoints
1412
+ seriesTypes.column.prototype.drawPoints.call(this);
1413
+
1414
+ // In styled mode apply point.color. Use CSS, otherwise the fill
1415
+ // used in the style sheet will take precedence over the fill
1416
+ // attribute.
1417
+ if (this.colorAttribs && series.chart.styledMode) {
1418
+ // Heatmap is loaded
1419
+ this.points.forEach(function (point) {
1420
+ if (point.graphic) {
1421
+ point.graphic.css(this.colorAttribs(point));
1422
+ }
1423
+ }, this);
1424
+ }
1425
+
1426
+ // If setRootNode is allowed, set a point cursor on clickables & add
1427
+ // drillId to point
1428
+ if (series.options.allowTraversingTree) {
1429
+ points.forEach(function (point) {
1430
+ if (point.graphic) {
1431
+ point.drillId = series.options.interactByLeaf ?
1432
+ series.drillToByLeaf(point) :
1433
+ series.drillToByGroup(point);
1434
+ }
1435
+ });
1436
+ }
1437
+ },
1438
+ // Add drilling on the suitable points
1439
+ onClickDrillToNode: function (event) {
1440
+ var series = this,
1441
+ point = event.point,
1442
+ drillId = point && point.drillId;
1443
+
1444
+ // If a drill id is returned, add click event and cursor.
1445
+ if (isString(drillId)) {
1446
+ point.setState(''); // Remove hover
1447
+ series.setRootNode(drillId, true, { trigger: 'click' });
1448
+ }
1449
+ },
1450
+ /**
1451
+ * Finds the drill id for a parent node. Returns false if point should
1452
+ * not have a click event.
1453
+ *
1454
+ * @private
1455
+ * @function Highcharts.Series#drillToByGroup
1456
+ *
1457
+ * @param {object} point
1458
+ *
1459
+ * @return {boolean|string}
1460
+ * Drill to id or false when point should not have a click
1461
+ * event.
1462
+ */
1463
+ drillToByGroup: function (point) {
1464
+ var series = this,
1465
+ drillId = false;
1466
+
1467
+ if ((point.node.level - series.nodeMap[series.rootNode].level) ===
1468
+ 1 &&
1469
+ !point.node.isLeaf
1470
+ ) {
1471
+ drillId = point.id;
1472
+ }
1473
+ return drillId;
1474
+ },
1475
+ /**
1476
+ * Finds the drill id for a leaf node. Returns false if point should not
1477
+ * have a click event
1478
+ *
1479
+ * @private
1480
+ * @function Highcharts.Series#drillToByLeaf
1481
+ *
1482
+ * @param {object} point
1483
+ *
1484
+ * @return {boolean|string}
1485
+ * Drill to id or false when point should not have a click
1486
+ * event.
1487
+ */
1488
+ drillToByLeaf: function (point) {
1489
+ var series = this,
1490
+ drillId = false,
1491
+ nodeParent;
1492
+
1493
+ if ((point.node.parent !== series.rootNode) &&
1494
+ point.node.isLeaf
1495
+ ) {
1496
+ nodeParent = point.node;
1497
+ while (!drillId) {
1498
+ nodeParent = series.nodeMap[nodeParent.parent];
1499
+ if (nodeParent.parent === series.rootNode) {
1500
+ drillId = nodeParent.id;
1501
+ }
1502
+ }
1503
+ }
1504
+ return drillId;
1505
+ },
1506
+ drillUp: function () {
1507
+ var series = this,
1508
+ node = series.nodeMap[series.rootNode];
1509
+
1510
+ if (node && isString(node.parent)) {
1511
+ series.setRootNode(
1512
+ node.parent,
1513
+ true,
1514
+ { trigger: 'traverseUpButton' }
1515
+ );
1516
+ }
1517
+ },
1518
+ // TODO remove this function at a suitable version.
1519
+ drillToNode: function (id, redraw) {
1520
+ error(
1521
+ 'WARNING: treemap.drillToNode has been renamed to treemap.' +
1522
+ 'setRootNode, and will be removed in the next major version.'
1523
+ );
1524
+ this.setRootNode(id, redraw);
1525
+ },
1526
+ /**
1527
+ * Sets a new root node for the series.
1528
+ *
1529
+ * @private
1530
+ * @function Highcharts.Series#setRootNode
1531
+ *
1532
+ * @param {string} id The id of the new root node.
1533
+ * @param {boolean} [redraw=true] Wether to redraw the chart or not.
1534
+ * @param {object} [eventArguments] Arguments to be accessed in
1535
+ * event handler.
1536
+ * @param {string} [eventArguments.newRootId] Id of the new root.
1537
+ * @param {string} [eventArguments.previousRootId] Id of the previous
1538
+ * root.
1539
+ * @param {boolean} [eventArguments.redraw] Wether to redraw the
1540
+ * chart after.
1541
+ * @param {object} [eventArguments.series] The series to update the root
1542
+ * of.
1543
+ * @param {string} [eventArguments.trigger] The action which
1544
+ * triggered the event. Undefined if the setRootNode is called
1545
+ * directly.
1546
+ */
1547
+ setRootNode: function (id, redraw, eventArguments) {
1548
+ var series = this,
1549
+ eventArgs = extend({
1550
+ newRootId: id,
1551
+ previousRootId: series.rootNode,
1552
+ redraw: pick(redraw, true),
1553
+ series: series
1554
+ }, eventArguments);
1555
+
1556
+ /**
1557
+ * The default functionality of the setRootNode event.
1558
+ *
1559
+ * @private
1560
+ * @param {object} args The event arguments.
1561
+ * @param {string} args.newRootId Id of the new root.
1562
+ * @param {string} args.previousRootId Id of the previous root.
1563
+ * @param {boolean} args.redraw Wether to redraw the chart after.
1564
+ * @param {object} args.series The series to update the root of.
1565
+ * @param {string} [args.trigger=undefined] The action which
1566
+ * triggered the event. Undefined if the setRootNode is called
1567
+ * directly.
1568
+ */
1569
+ var defaultFn = function (args) {
1570
+ var series = args.series;
1571
+
1572
+ // Store previous and new root ids on the series.
1573
+ series.idPreviousRoot = args.previousRootId;
1574
+ series.rootNode = args.newRootId;
1575
+
1576
+ // Redraw the chart
1577
+ series.isDirty = true; // Force redraw
1578
+ if (args.redraw) {
1579
+ series.chart.redraw();
1580
+ }
1581
+ };
1582
+
1583
+ // Fire setRootNode event.
1584
+ fireEvent(series, 'setRootNode', eventArgs, defaultFn);
1585
+ },
1586
+ renderTraverseUpButton: function (rootId) {
1587
+ var series = this,
1588
+ nodeMap = series.nodeMap,
1589
+ node = nodeMap[rootId],
1590
+ name = node.name,
1591
+ buttonOptions = series.options.traverseUpButton,
1592
+ backText = pick(buttonOptions.text, name, '< Back'),
1593
+ attr,
1594
+ states;
1595
+
1596
+ if (rootId === '') {
1597
+ if (series.drillUpButton) {
1598
+ series.drillUpButton = series.drillUpButton.destroy();
1599
+ }
1600
+ } else if (!this.drillUpButton) {
1601
+ attr = buttonOptions.theme;
1602
+ states = attr && attr.states;
1603
+
1604
+ this.drillUpButton = this.chart.renderer.button(
1605
+ backText,
1606
+ null,
1607
+ null,
1608
+ function () {
1609
+ series.drillUp();
1610
+ },
1611
+ attr,
1612
+ states && states.hover,
1613
+ states && states.select
1614
+ )
1615
+ .addClass('highcharts-drillup-button')
1616
+ .attr({
1617
+ align: buttonOptions.position.align,
1618
+ zIndex: 7
1619
+ })
1620
+ .add()
1621
+ .align(
1622
+ buttonOptions.position,
1623
+ false,
1624
+ buttonOptions.relativeTo || 'plotBox'
1625
+ );
1626
+ } else {
1627
+ this.drillUpButton.placed = false;
1628
+ this.drillUpButton.attr({
1629
+ text: backText
1630
+ })
1631
+ .align();
1632
+ }
1633
+ },
1634
+ buildKDTree: noop,
1635
+ drawLegendSymbol: H.LegendSymbolMixin.drawRectangle,
1636
+ getExtremes: function () {
1637
+ // Get the extremes from the value data
1638
+ Series.prototype.getExtremes.call(this, this.colorValueData);
1639
+ this.valueMin = this.dataMin;
1640
+ this.valueMax = this.dataMax;
1641
+
1642
+ // Get the extremes from the y data
1643
+ Series.prototype.getExtremes.call(this);
1644
+ },
1645
+ getExtremesFromAll: true,
1646
+ bindAxes: function () {
1647
+ var treeAxis = {
1648
+ endOnTick: false,
1649
+ gridLineWidth: 0,
1650
+ lineWidth: 0,
1651
+ min: 0,
1652
+ dataMin: 0,
1653
+ minPadding: 0,
1654
+ max: 100,
1655
+ dataMax: 100,
1656
+ maxPadding: 0,
1657
+ startOnTick: false,
1658
+ title: null,
1659
+ tickPositions: []
1660
+ };
1661
+
1662
+ Series.prototype.bindAxes.call(this);
1663
+ H.extend(this.yAxis.options, treeAxis);
1664
+ H.extend(this.xAxis.options, treeAxis);
1665
+ },
1666
+ utils: {
1667
+ recursive: recursive
1668
+ }
1669
+
1670
+ // Point class
1671
+ }, {
1672
+ getClassName: function () {
1673
+ var className = H.Point.prototype.getClassName.call(this),
1674
+ series = this.series,
1675
+ options = series.options;
1676
+
1677
+ // Above the current level
1678
+ if (this.node.level <= series.nodeMap[series.rootNode].level) {
1679
+ className += ' highcharts-above-level';
1680
+
1681
+ } else if (
1682
+ !this.node.isLeaf &&
1683
+ !pick(options.interactByLeaf, !options.allowTraversingTree)
1684
+ ) {
1685
+ className += ' highcharts-internal-node-interactive';
1686
+
1687
+ } else if (!this.node.isLeaf) {
1688
+ className += ' highcharts-internal-node';
1689
+ }
1690
+ return className;
1691
+ },
1692
+
1693
+ /**
1694
+ * A tree point is valid if it has han id too, assume it may be a parent
1695
+ * item.
1696
+ *
1697
+ * @private
1698
+ * @function Highcharts.Point#isValid
1699
+ */
1700
+ isValid: function () {
1701
+ return this.id || isNumber(this.value);
1702
+ },
1703
+ setState: function (state) {
1704
+ H.Point.prototype.setState.call(this, state);
1705
+
1706
+ // Graphic does not exist when point is not visible.
1707
+ if (this.graphic) {
1708
+ this.graphic.attr({
1709
+ zIndex: state === 'hover' ? 1 : 0
1710
+ });
1711
+ }
1712
+ },
1713
+ setVisible: seriesTypes.pie.prototype.pointClass.prototype.setVisible
1714
+ }
1715
+ );
1716
+
1717
+
1718
+ /**
1719
+ * A `treemap` series. If the [type](#series.treemap.type) option is
1720
+ * not specified, it is inherited from [chart.type](#chart.type).
1721
+ *
1722
+ * @extends series,plotOptions.treemap
1723
+ * @excluding dataParser, dataURL, stack
1724
+ * @product highcharts
1725
+ * @apioption series.treemap
1726
+ */
1727
+
1728
+ /**
1729
+ * An array of data points for the series. For the `treemap` series
1730
+ * type, points can be given in the following ways:
1731
+ *
1732
+ * 1. An array of numerical values. In this case, the numerical values
1733
+ * will be interpreted as `value` options. Example:
1734
+ *
1735
+ * ```js
1736
+ * data: [0, 5, 3, 5]
1737
+ * ```
1738
+ *
1739
+ * 2. An array of objects with named values. The following snippet shows only a
1740
+ * few settings, see the complete options set below. If the total number of data
1741
+ * points exceeds the series' [turboThreshold](#series.treemap.turboThreshold),
1742
+ * this option is not available.
1743
+ *
1744
+ * ```js
1745
+ * data: [{
1746
+ * value: 9,
1747
+ * name: "Point2",
1748
+ * color: "#00FF00"
1749
+ * }, {
1750
+ * value: 6,
1751
+ * name: "Point1",
1752
+ * color: "#FF00FF"
1753
+ * }]
1754
+ * ```
1755
+ *
1756
+ * @sample {highcharts} highcharts/chart/reflow-true/
1757
+ * Numerical values
1758
+ * @sample {highcharts} highcharts/series/data-array-of-objects/
1759
+ * Config objects
1760
+ *
1761
+ * @type {Array<number|*>}
1762
+ * @extends series.heatmap.data
1763
+ * @excluding x, y
1764
+ * @product highcharts
1765
+ * @apioption series.treemap.data
1766
+ */
1767
+
1768
+ /**
1769
+ * The value of the point, resulting in a relative area of the point
1770
+ * in the treemap.
1771
+ *
1772
+ * @type {number}
1773
+ * @product highcharts
1774
+ * @apioption series.treemap.data.value
1775
+ */
1776
+
1777
+ /**
1778
+ * Serves a purpose only if a `colorAxis` object is defined in the chart
1779
+ * options. This value will decide which color the point gets from the
1780
+ * scale of the colorAxis.
1781
+ *
1782
+ * @type {number}
1783
+ * @since 4.1.0
1784
+ * @product highcharts
1785
+ * @apioption series.treemap.data.colorValue
1786
+ */
1787
+
1788
+ /**
1789
+ * Only for treemap. Use this option to build a tree structure. The
1790
+ * value should be the id of the point which is the parent. If no points
1791
+ * has a matching id, or this option is undefined, then the parent will
1792
+ * be set to the root.
1793
+ *
1794
+ * @sample {highcharts} highcharts/point/parent/
1795
+ * Point parent
1796
+ * @sample {highcharts} highcharts/demo/treemap-with-levels/
1797
+ * Example where parent id is not matching
1798
+ *
1799
+ * @type {string}
1800
+ * @since 4.1.0
1801
+ * @product highcharts
1802
+ * @apioption series.treemap.data.parent
1803
+ */