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,207 @@
1
+ /* *
2
+ * (c) 2010-2019 Torstein Honsi
3
+ *
4
+ * 3D pie series
5
+ *
6
+ * License: www.highcharts.com/license
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ import H from '../parts/Globals.js';
12
+ import '../parts/Utilities.js';
13
+
14
+ var deg2rad = H.deg2rad,
15
+ pick = H.pick,
16
+ seriesTypes = H.seriesTypes,
17
+ svg = H.svg,
18
+ wrap = H.wrap;
19
+
20
+ /**
21
+ * The thickness of a 3D pie. Requires `highcharts-3d.js`
22
+ *
23
+ * @type {number}
24
+ * @default 0
25
+ * @since 4.0
26
+ * @product highcharts
27
+ * @apioption plotOptions.pie.depth
28
+ */
29
+
30
+ wrap(seriesTypes.pie.prototype, 'translate', function (proceed) {
31
+ proceed.apply(this, [].slice.call(arguments, 1));
32
+
33
+ // Do not do this if the chart is not 3D
34
+ if (!this.chart.is3d()) {
35
+ return;
36
+ }
37
+
38
+ var series = this,
39
+ seriesOptions = series.options,
40
+ depth = seriesOptions.depth || 0,
41
+ options3d = series.chart.options.chart.options3d,
42
+ alpha = options3d.alpha,
43
+ beta = options3d.beta,
44
+ z = seriesOptions.stacking ?
45
+ (seriesOptions.stack || 0) * depth :
46
+ series._i * depth;
47
+
48
+ z += depth / 2;
49
+
50
+ if (seriesOptions.grouping !== false) {
51
+ z = 0;
52
+ }
53
+
54
+ series.data.forEach(function (point) {
55
+
56
+ var shapeArgs = point.shapeArgs,
57
+ angle;
58
+
59
+ point.shapeType = 'arc3d';
60
+
61
+ shapeArgs.z = z;
62
+ shapeArgs.depth = depth * 0.75;
63
+ shapeArgs.alpha = alpha;
64
+ shapeArgs.beta = beta;
65
+ shapeArgs.center = series.center;
66
+
67
+ angle = (shapeArgs.end + shapeArgs.start) / 2;
68
+
69
+ point.slicedTranslation = {
70
+ translateX: Math.round(
71
+ Math.cos(angle) *
72
+ seriesOptions.slicedOffset *
73
+ Math.cos(alpha * deg2rad)
74
+ ),
75
+ translateY: Math.round(
76
+ Math.sin(angle) *
77
+ seriesOptions.slicedOffset *
78
+ Math.cos(alpha * deg2rad)
79
+ )
80
+ };
81
+ });
82
+ });
83
+
84
+ wrap(
85
+ seriesTypes.pie.prototype.pointClass.prototype,
86
+ 'haloPath',
87
+ function (proceed) {
88
+ var args = arguments;
89
+
90
+ return this.series.chart.is3d() ? [] : proceed.call(this, args[1]);
91
+ }
92
+ );
93
+
94
+ wrap(
95
+ seriesTypes.pie.prototype,
96
+ 'pointAttribs',
97
+ function (proceed, point, state) {
98
+ var attr = proceed.call(this, point, state),
99
+ options = this.options;
100
+
101
+ if (this.chart.is3d() && !this.chart.styledMode) {
102
+ attr.stroke = options.edgeColor || point.color || this.color;
103
+ attr['stroke-width'] = pick(options.edgeWidth, 1);
104
+ }
105
+
106
+ return attr;
107
+ }
108
+ );
109
+
110
+ wrap(seriesTypes.pie.prototype, 'drawDataLabels', function (proceed) {
111
+ if (this.chart.is3d()) {
112
+ var series = this,
113
+ chart = series.chart,
114
+ options3d = chart.options.chart.options3d;
115
+
116
+ series.data.forEach(function (point) {
117
+ var shapeArgs = point.shapeArgs,
118
+ r = shapeArgs.r,
119
+ // #3240 issue with datalabels for 0 and null values
120
+ a1 = (shapeArgs.alpha || options3d.alpha) * deg2rad,
121
+ b1 = (shapeArgs.beta || options3d.beta) * deg2rad,
122
+ a2 = (shapeArgs.start + shapeArgs.end) / 2,
123
+ labelPosition = point.labelPosition,
124
+ connectorPosition = labelPosition.connectorPosition,
125
+ yOffset = (-r * (1 - Math.cos(a1)) * Math.sin(a2)),
126
+ xOffset = r * (Math.cos(b1) - 1) * Math.cos(a2);
127
+
128
+ // Apply perspective on label positions
129
+ [
130
+ labelPosition.natural,
131
+ connectorPosition.breakAt,
132
+ connectorPosition.touchingSliceAt
133
+ ].forEach(function (coordinates) {
134
+ coordinates.x += xOffset;
135
+ coordinates.y += yOffset;
136
+ });
137
+ });
138
+ }
139
+
140
+ proceed.apply(this, [].slice.call(arguments, 1));
141
+ });
142
+
143
+ wrap(seriesTypes.pie.prototype, 'addPoint', function (proceed) {
144
+ proceed.apply(this, [].slice.call(arguments, 1));
145
+ if (this.chart.is3d()) {
146
+ // destroy (and rebuild) everything!!!
147
+ this.update(this.userOptions, true); // #3845 pass the old options
148
+ }
149
+ });
150
+
151
+ wrap(seriesTypes.pie.prototype, 'animate', function (proceed) {
152
+ if (!this.chart.is3d()) {
153
+ proceed.apply(this, [].slice.call(arguments, 1));
154
+ } else {
155
+ var args = arguments,
156
+ init = args[1],
157
+ animation = this.options.animation,
158
+ attribs,
159
+ center = this.center,
160
+ group = this.group,
161
+ markerGroup = this.markerGroup;
162
+
163
+ if (svg) { // VML is too slow anyway
164
+
165
+ if (animation === true) {
166
+ animation = {};
167
+ }
168
+ // Initialize the animation
169
+ if (init) {
170
+
171
+ // Scale down the group and place it in the center
172
+ group.oldtranslateX = group.translateX;
173
+ group.oldtranslateY = group.translateY;
174
+ attribs = {
175
+ translateX: center[0],
176
+ translateY: center[1],
177
+ scaleX: 0.001, // #1499
178
+ scaleY: 0.001
179
+ };
180
+
181
+ group.attr(attribs);
182
+ if (markerGroup) {
183
+ markerGroup.attrSetters = group.attrSetters;
184
+ markerGroup.attr(attribs);
185
+ }
186
+
187
+ // Run the animation
188
+ } else {
189
+ attribs = {
190
+ translateX: group.oldtranslateX,
191
+ translateY: group.oldtranslateY,
192
+ scaleX: 1,
193
+ scaleY: 1
194
+ };
195
+ group.animate(attribs, animation);
196
+
197
+ if (markerGroup) {
198
+ markerGroup.animate(attribs, animation);
199
+ }
200
+
201
+ // Delete this function to allow it only once
202
+ this.animate = null;
203
+ }
204
+
205
+ }
206
+ }
207
+ });
@@ -0,0 +1,1002 @@
1
+ /* *
2
+ * (c) 2010-2019 Torstein Honsi
3
+ *
4
+ * Extensions to the SVGRenderer class to enable 3D shapes
5
+ *
6
+ * License: www.highcharts.com/license
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ import H from '../parts/Globals.js';
12
+ import '../parts/Utilities.js';
13
+ import '../parts/Color.js';
14
+ import '../parts/SvgRenderer.js';
15
+
16
+ var cos = Math.cos,
17
+ PI = Math.PI,
18
+ sin = Math.sin;
19
+
20
+ var animObject = H.animObject,
21
+ charts = H.charts,
22
+ color = H.color,
23
+ defined = H.defined,
24
+ deg2rad = H.deg2rad,
25
+ extend = H.extend,
26
+ merge = H.merge,
27
+ perspective = H.perspective,
28
+ pick = H.pick,
29
+ SVGElement = H.SVGElement,
30
+ SVGRenderer = H.SVGRenderer,
31
+
32
+ dFactor,
33
+ element3dMethods,
34
+ cuboidMethods;
35
+
36
+ /*
37
+ EXTENSION TO THE SVG-RENDERER TO ENABLE 3D SHAPES
38
+ */
39
+ // HELPER METHODS
40
+ dFactor = (4 * (Math.sqrt(2) - 1) / 3) / (PI / 2);
41
+
42
+ // Method to construct a curved path. Can 'wrap' around more then 180 degrees
43
+ function curveTo(cx, cy, rx, ry, start, end, dx, dy) {
44
+ var result = [],
45
+ arcAngle = end - start;
46
+
47
+ if ((end > start) && (end - start > Math.PI / 2 + 0.0001)) {
48
+ result = result.concat(
49
+ curveTo(cx, cy, rx, ry, start, start + (Math.PI / 2), dx, dy)
50
+ );
51
+ result = result.concat(
52
+ curveTo(cx, cy, rx, ry, start + (Math.PI / 2), end, dx, dy)
53
+ );
54
+ return result;
55
+ }
56
+ if ((end < start) && (start - end > Math.PI / 2 + 0.0001)) {
57
+ result = result.concat(
58
+ curveTo(cx, cy, rx, ry, start, start - (Math.PI / 2), dx, dy)
59
+ );
60
+ result = result.concat(
61
+ curveTo(cx, cy, rx, ry, start - (Math.PI / 2), end, dx, dy)
62
+ );
63
+ return result;
64
+ }
65
+ return [
66
+ 'C',
67
+ cx + (rx * Math.cos(start)) -
68
+ ((rx * dFactor * arcAngle) * Math.sin(start)) + dx,
69
+ cy + (ry * Math.sin(start)) +
70
+ ((ry * dFactor * arcAngle) * Math.cos(start)) + dy,
71
+ cx + (rx * Math.cos(end)) +
72
+ ((rx * dFactor * arcAngle) * Math.sin(end)) + dx,
73
+ cy + (ry * Math.sin(end)) -
74
+ ((ry * dFactor * arcAngle) * Math.cos(end)) + dy,
75
+
76
+ cx + (rx * Math.cos(end)) + dx,
77
+ cy + (ry * Math.sin(end)) + dy
78
+ ];
79
+ }
80
+
81
+ SVGRenderer.prototype.toLinePath = function (points, closed) {
82
+ var result = [];
83
+
84
+ // Put "L x y" for each point
85
+ points.forEach(function (point) {
86
+ result.push('L', point.x, point.y);
87
+ });
88
+
89
+ if (points.length) {
90
+ // Set the first element to M
91
+ result[0] = 'M';
92
+
93
+ // If it is a closed line, add Z
94
+ if (closed) {
95
+ result.push('Z');
96
+ }
97
+ }
98
+
99
+ return result;
100
+ };
101
+
102
+ SVGRenderer.prototype.toLineSegments = function (points) {
103
+ var result = [],
104
+ m = true;
105
+
106
+ points.forEach(function (point) {
107
+ result.push(m ? 'M' : 'L', point.x, point.y);
108
+ m = !m;
109
+ });
110
+
111
+ return result;
112
+ };
113
+
114
+ // A 3-D Face is defined by it's 3D vertexes, and is only visible if it's
115
+ // vertexes are counter-clockwise (Back-face culling). It is used as a
116
+ // polyhedron Element
117
+ SVGRenderer.prototype.face3d = function (args) {
118
+ var renderer = this,
119
+ ret = this.createElement('path');
120
+
121
+ ret.vertexes = [];
122
+ ret.insidePlotArea = false;
123
+ ret.enabled = true;
124
+
125
+ ret.attr = function (hash) {
126
+ if (
127
+ typeof hash === 'object' &&
128
+ (
129
+ defined(hash.enabled) ||
130
+ defined(hash.vertexes) ||
131
+ defined(hash.insidePlotArea)
132
+ )
133
+ ) {
134
+ this.enabled = pick(hash.enabled, this.enabled);
135
+ this.vertexes = pick(hash.vertexes, this.vertexes);
136
+ this.insidePlotArea = pick(
137
+ hash.insidePlotArea,
138
+ this.insidePlotArea
139
+ );
140
+ delete hash.enabled;
141
+ delete hash.vertexes;
142
+ delete hash.insidePlotArea;
143
+
144
+ var chart = charts[renderer.chartIndex],
145
+ vertexes2d = perspective(
146
+ this.vertexes,
147
+ chart,
148
+ this.insidePlotArea
149
+ ),
150
+ path = renderer.toLinePath(vertexes2d, true),
151
+ area = H.shapeArea(vertexes2d),
152
+ visibility = (this.enabled && area > 0) ? 'visible' : 'hidden';
153
+
154
+ hash.d = path;
155
+ hash.visibility = visibility;
156
+ }
157
+ return SVGElement.prototype.attr.apply(this, arguments);
158
+ };
159
+
160
+ ret.animate = function (params) {
161
+ if (
162
+ typeof params === 'object' &&
163
+ (
164
+ defined(params.enabled) ||
165
+ defined(params.vertexes) ||
166
+ defined(params.insidePlotArea)
167
+ )
168
+ ) {
169
+ this.enabled = pick(params.enabled, this.enabled);
170
+ this.vertexes = pick(params.vertexes, this.vertexes);
171
+ this.insidePlotArea = pick(
172
+ params.insidePlotArea,
173
+ this.insidePlotArea
174
+ );
175
+ delete params.enabled;
176
+ delete params.vertexes;
177
+ delete params.insidePlotArea;
178
+
179
+ var chart = charts[renderer.chartIndex],
180
+ vertexes2d = perspective(
181
+ this.vertexes,
182
+ chart,
183
+ this.insidePlotArea
184
+ ),
185
+ path = renderer.toLinePath(vertexes2d, true),
186
+ area = H.shapeArea(vertexes2d),
187
+ visibility = (this.enabled && area > 0) ? 'visible' : 'hidden';
188
+
189
+ params.d = path;
190
+ this.attr('visibility', visibility);
191
+ }
192
+
193
+ return SVGElement.prototype.animate.apply(this, arguments);
194
+ };
195
+
196
+ return ret.attr(args);
197
+ };
198
+
199
+ // A Polyhedron is a handy way of defining a group of 3-D faces. It's only
200
+ // attribute is `faces`, an array of attributes of each one of it's Face3D
201
+ // instances.
202
+ SVGRenderer.prototype.polyhedron = function (args) {
203
+ var renderer = this,
204
+ result = this.g(),
205
+ destroy = result.destroy;
206
+
207
+ if (!this.styledMode) {
208
+ result.attr({
209
+ 'stroke-linejoin': 'round'
210
+ });
211
+ }
212
+
213
+ result.faces = [];
214
+
215
+
216
+ // destroy all children
217
+ result.destroy = function () {
218
+ for (var i = 0; i < result.faces.length; i++) {
219
+ result.faces[i].destroy();
220
+ }
221
+ return destroy.call(this);
222
+ };
223
+
224
+ result.attr = function (hash, val, complete, continueAnimation) {
225
+ if (typeof hash === 'object' && defined(hash.faces)) {
226
+ while (result.faces.length > hash.faces.length) {
227
+ result.faces.pop().destroy();
228
+ }
229
+ while (result.faces.length < hash.faces.length) {
230
+ result.faces.push(renderer.face3d().add(result));
231
+ }
232
+ for (var i = 0; i < hash.faces.length; i++) {
233
+ if (renderer.styledMode) {
234
+ delete hash.faces[i].fill;
235
+ }
236
+ result.faces[i].attr(
237
+ hash.faces[i],
238
+ null,
239
+ complete,
240
+ continueAnimation
241
+ );
242
+ }
243
+ delete hash.faces;
244
+ }
245
+ return SVGElement.prototype.attr.apply(this, arguments);
246
+ };
247
+
248
+ result.animate = function (params, duration, complete) {
249
+ if (params && params.faces) {
250
+ while (result.faces.length > params.faces.length) {
251
+ result.faces.pop().destroy();
252
+ }
253
+ while (result.faces.length < params.faces.length) {
254
+ result.faces.push(renderer.face3d().add(result));
255
+ }
256
+ for (var i = 0; i < params.faces.length; i++) {
257
+ result.faces[i].animate(params.faces[i], duration, complete);
258
+ }
259
+ delete params.faces;
260
+ }
261
+ return SVGElement.prototype.animate.apply(this, arguments);
262
+ };
263
+
264
+ return result.attr(args);
265
+ };
266
+
267
+ // Base, abstract prototype member for 3D elements
268
+ element3dMethods = {
269
+ // The init is used by base - renderer.Element
270
+ initArgs: function (args) {
271
+ var elem3d = this,
272
+ renderer = elem3d.renderer,
273
+ paths = renderer[elem3d.pathType + 'Path'](args),
274
+ zIndexes = paths.zIndexes;
275
+
276
+ // build parts
277
+ elem3d.parts.forEach(function (part) {
278
+ elem3d[part] = renderer.path(paths[part]).attr({
279
+ 'class': 'highcharts-3d-' + part,
280
+ zIndex: zIndexes[part] || 0
281
+ }).add(elem3d);
282
+ });
283
+
284
+ elem3d.attr({
285
+ 'stroke-linejoin': 'round',
286
+ zIndex: zIndexes.group
287
+ });
288
+
289
+ // store original destroy
290
+ elem3d.originalDestroy = elem3d.destroy;
291
+ elem3d.destroy = elem3d.destroyParts;
292
+ },
293
+
294
+ // Single property setter that applies options to each part
295
+ singleSetterForParts: function (
296
+ prop, val, values, verb, duration, complete
297
+ ) {
298
+ var elem3d = this,
299
+ newAttr = {},
300
+ optionsToApply = [null, null, (verb || 'attr'), duration, complete],
301
+ hasZIndexes = values && values.zIndexes;
302
+
303
+ if (!values) {
304
+ newAttr[prop] = val;
305
+ optionsToApply[0] = newAttr;
306
+ } else {
307
+ H.objectEach(values, function (partVal, part) {
308
+ newAttr[part] = {};
309
+ newAttr[part][prop] = partVal;
310
+
311
+ // include zIndexes if provided
312
+ if (hasZIndexes) {
313
+ newAttr[part].zIndex = values.zIndexes[part] || 0;
314
+ }
315
+ });
316
+ optionsToApply[1] = newAttr;
317
+ }
318
+
319
+ return elem3d.processParts.apply(elem3d, optionsToApply);
320
+ },
321
+
322
+ // Calls function for each part. Used for attr, animate and destroy.
323
+ processParts: function (props, partsProps, verb, duration, complete) {
324
+ var elem3d = this;
325
+
326
+ elem3d.parts.forEach(function (part) {
327
+ // if different props for different parts
328
+ if (partsProps) {
329
+ props = H.pick(partsProps[part], false);
330
+ }
331
+
332
+ // only if something to set, but allow undefined
333
+ if (props !== false) {
334
+ elem3d[part][verb](props, duration, complete);
335
+ }
336
+ });
337
+ return elem3d;
338
+ },
339
+
340
+ // Destroy all parts
341
+ destroyParts: function () {
342
+ this.processParts(null, null, 'destroy');
343
+ return this.originalDestroy();
344
+ }
345
+ };
346
+
347
+ // CUBOID
348
+ cuboidMethods = H.merge(element3dMethods, {
349
+ parts: ['front', 'top', 'side'],
350
+ pathType: 'cuboid',
351
+
352
+ attr: function (args, val, complete, continueAnimation) {
353
+ // Resolve setting attributes by string name
354
+ if (typeof args === 'string' && typeof val !== 'undefined') {
355
+ var key = args;
356
+
357
+ args = {};
358
+ args[key] = val;
359
+ }
360
+
361
+ if (args.shapeArgs || defined(args.x)) {
362
+ return this.singleSetterForParts(
363
+ 'd',
364
+ null,
365
+ this.renderer[this.pathType + 'Path'](args.shapeArgs || args)
366
+ );
367
+ }
368
+
369
+ return SVGElement.prototype.attr.call(
370
+ this, args, undefined, complete, continueAnimation
371
+ );
372
+ },
373
+ animate: function (args, duration, complete) {
374
+ if (defined(args.x) && defined(args.y)) {
375
+ var paths = this.renderer[this.pathType + 'Path'](args);
376
+
377
+ this.singleSetterForParts(
378
+ 'd', null, paths, 'animate', duration, complete
379
+ );
380
+
381
+ this.attr({
382
+ zIndex: paths.zIndexes.group
383
+ });
384
+ } else if (args.opacity) {
385
+ this.processParts(args, null, 'animate', duration, complete);
386
+ } else {
387
+ SVGElement.prototype.animate.call(this, args, duration, complete);
388
+ }
389
+ return this;
390
+ },
391
+ fillSetter: function (fill) {
392
+ this.singleSetterForParts('fill', null, {
393
+ front: fill,
394
+ top: color(fill).brighten(0.1).get(),
395
+ side: color(fill).brighten(-0.1).get()
396
+ });
397
+
398
+ // fill for animation getter (#6776)
399
+ this.color = this.fill = fill;
400
+
401
+ return this;
402
+ },
403
+ opacitySetter: function (opacity) {
404
+ return this.singleSetterForParts('opacity', opacity);
405
+ }
406
+ });
407
+
408
+ // set them up
409
+ SVGRenderer.prototype.elements3d = {
410
+ base: element3dMethods,
411
+ cuboid: cuboidMethods
412
+ };
413
+
414
+ // return result, generalization
415
+ SVGRenderer.prototype.element3d = function (type, shapeArgs) {
416
+ // base
417
+ var ret = this.g();
418
+
419
+ // extend
420
+ H.extend(ret, this.elements3d[type]);
421
+
422
+ // init
423
+ ret.initArgs(shapeArgs);
424
+
425
+ // return
426
+ return ret;
427
+ };
428
+
429
+ // generelized, so now use simply
430
+ SVGRenderer.prototype.cuboid = function (shapeArgs) {
431
+ return this.element3d('cuboid', shapeArgs);
432
+ };
433
+
434
+ // Generates a cuboid path and zIndexes
435
+ H.SVGRenderer.prototype.cuboidPath = function (shapeArgs) {
436
+ var x = shapeArgs.x,
437
+ y = shapeArgs.y,
438
+ z = shapeArgs.z,
439
+ h = shapeArgs.height,
440
+ w = shapeArgs.width,
441
+ d = shapeArgs.depth,
442
+ chart = charts[this.chartIndex],
443
+ front,
444
+ back,
445
+ top,
446
+ bottom,
447
+ left,
448
+ right,
449
+ shape,
450
+ path1,
451
+ path2,
452
+ path3,
453
+ isFront,
454
+ isTop,
455
+ isRight,
456
+ options3d = chart.options.chart.options3d,
457
+ alpha = options3d.alpha,
458
+ // Priority for x axis is the biggest,
459
+ // because of x direction has biggest influence on zIndex
460
+ incrementX = 10000,
461
+ // y axis has the smallest priority in case of our charts
462
+ // (needs to be set because of stacking)
463
+ incrementY = 10,
464
+ incrementZ = 100,
465
+ zIndex = 0,
466
+
467
+ // The 8 corners of the cube
468
+ pArr = [{
469
+ x: x,
470
+ y: y,
471
+ z: z
472
+ }, {
473
+ x: x + w,
474
+ y: y,
475
+ z: z
476
+ }, {
477
+ x: x + w,
478
+ y: y + h,
479
+ z: z
480
+ }, {
481
+ x: x,
482
+ y: y + h,
483
+ z: z
484
+ }, {
485
+ x: x,
486
+ y: y + h,
487
+ z: z + d
488
+ }, {
489
+ x: x + w,
490
+ y: y + h,
491
+ z: z + d
492
+ }, {
493
+ x: x + w,
494
+ y: y,
495
+ z: z + d
496
+ }, {
497
+ x: x,
498
+ y: y,
499
+ z: z + d
500
+ }],
501
+
502
+ pickShape;
503
+
504
+ // apply perspective
505
+ pArr = perspective(pArr, chart, shapeArgs.insidePlotArea);
506
+
507
+ // helper method to decide which side is visible
508
+ function mapPath(i) {
509
+ return pArr[i];
510
+ }
511
+
512
+ /* *
513
+ * First value - path with specific side
514
+ * Second value - added information about side for later calculations.
515
+ * Possible second values are 0 for path1, 1 for path2 and -1 for no path
516
+ * chosen.
517
+ */
518
+ pickShape = function (path1, path2) {
519
+ var ret = [
520
+ [], -1
521
+ ];
522
+
523
+ path1 = path1.map(mapPath);
524
+ path2 = path2.map(mapPath);
525
+ if (H.shapeArea(path1) < 0) {
526
+ ret = [path1, 0];
527
+ } else if (H.shapeArea(path2) < 0) {
528
+ ret = [path2, 1];
529
+ }
530
+ return ret;
531
+ };
532
+
533
+ // front or back
534
+ front = [3, 2, 1, 0];
535
+ back = [7, 6, 5, 4];
536
+ shape = pickShape(front, back);
537
+ path1 = shape[0];
538
+ isFront = shape[1];
539
+
540
+
541
+ // top or bottom
542
+ top = [1, 6, 7, 0];
543
+ bottom = [4, 5, 2, 3];
544
+ shape = pickShape(top, bottom);
545
+ path2 = shape[0];
546
+ isTop = shape[1];
547
+
548
+ // side
549
+ right = [1, 2, 5, 6];
550
+ left = [0, 7, 4, 3];
551
+ shape = pickShape(right, left);
552
+ path3 = shape[0];
553
+ isRight = shape[1];
554
+
555
+ /* New block used for calculating zIndex. It is basing on X, Y and Z
556
+ position of specific columns. All zIndexes (for X, Y and Z values) are
557
+ added to the final zIndex, where every value has different priority. The
558
+ biggest priority is in X and Z directions, the lowest index is for
559
+ stacked columns (Y direction and the same X and Z positions). Big
560
+ differences between priorities is made because we need to ensure that
561
+ even for big changes in Y and Z parameters all columns will be drawn
562
+ correctly. */
563
+
564
+ if (isRight === 1) {
565
+ zIndex += incrementX * (1000 - x);
566
+ } else if (!isRight) {
567
+ zIndex += incrementX * x;
568
+ }
569
+
570
+ zIndex += incrementY * (
571
+ !isTop ||
572
+ // Numbers checked empirically
573
+ (alpha >= 0 && alpha <= 180 || alpha < 360 && alpha > 357.5) ?
574
+ chart.plotHeight - y : 10 + y
575
+ );
576
+
577
+ if (isFront === 1) {
578
+ zIndex += incrementZ * (z);
579
+ } else if (!isFront) {
580
+ zIndex += incrementZ * (1000 - z);
581
+ }
582
+
583
+ return {
584
+ front: this.toLinePath(path1, true),
585
+ top: this.toLinePath(path2, true),
586
+ side: this.toLinePath(path3, true),
587
+ zIndexes: {
588
+ group: Math.round(zIndex)
589
+ },
590
+
591
+ // additional info about zIndexes
592
+ isFront: isFront,
593
+ isTop: isTop
594
+ }; // #4774
595
+ };
596
+
597
+ // SECTORS //
598
+ H.SVGRenderer.prototype.arc3d = function (attribs) {
599
+
600
+ var wrapper = this.g(),
601
+ renderer = wrapper.renderer,
602
+ customAttribs = ['x', 'y', 'r', 'innerR', 'start', 'end'];
603
+
604
+ // Get custom attributes. Don't mutate the original object and return an
605
+ // object with only custom attr.
606
+ function suckOutCustom(params) {
607
+ var hasCA = false,
608
+ ca = {},
609
+ key;
610
+
611
+ params = merge(params); // Don't mutate the original object
612
+
613
+ for (key in params) {
614
+ if (customAttribs.indexOf(key) !== -1) {
615
+ ca[key] = params[key];
616
+ delete params[key];
617
+ hasCA = true;
618
+ }
619
+ }
620
+ return hasCA ? ca : false;
621
+ }
622
+
623
+ attribs = merge(attribs);
624
+
625
+ attribs.alpha = (attribs.alpha || 0) * deg2rad;
626
+ attribs.beta = (attribs.beta || 0) * deg2rad;
627
+
628
+ // Create the different sub sections of the shape
629
+ wrapper.top = renderer.path();
630
+ wrapper.side1 = renderer.path();
631
+ wrapper.side2 = renderer.path();
632
+ wrapper.inn = renderer.path();
633
+ wrapper.out = renderer.path();
634
+
635
+ // Add all faces
636
+ wrapper.onAdd = function () {
637
+ var parent = wrapper.parentGroup,
638
+ className = wrapper.attr('class');
639
+
640
+ wrapper.top.add(wrapper);
641
+
642
+ // These faces are added outside the wrapper group because the z index
643
+ // relates to neighbour elements as well
644
+ ['out', 'inn', 'side1', 'side2'].forEach(function (face) {
645
+ wrapper[face]
646
+ .attr({
647
+ 'class': className + ' highcharts-3d-side'
648
+ })
649
+ .add(parent);
650
+ });
651
+ };
652
+
653
+ // Cascade to faces
654
+ ['addClass', 'removeClass'].forEach(function (fn) {
655
+ wrapper[fn] = function () {
656
+ var args = arguments;
657
+
658
+ ['top', 'out', 'inn', 'side1', 'side2'].forEach(function (face) {
659
+ wrapper[face][fn].apply(wrapper[face], args);
660
+ });
661
+ };
662
+ });
663
+
664
+ // Compute the transformed paths and set them to the composite shapes
665
+ wrapper.setPaths = function (attribs) {
666
+
667
+ var paths = wrapper.renderer.arc3dPath(attribs),
668
+ zIndex = paths.zTop * 100;
669
+
670
+ wrapper.attribs = attribs;
671
+
672
+ wrapper.top.attr({ d: paths.top, zIndex: paths.zTop });
673
+ wrapper.inn.attr({ d: paths.inn, zIndex: paths.zInn });
674
+ wrapper.out.attr({ d: paths.out, zIndex: paths.zOut });
675
+ wrapper.side1.attr({ d: paths.side1, zIndex: paths.zSide1 });
676
+ wrapper.side2.attr({ d: paths.side2, zIndex: paths.zSide2 });
677
+
678
+
679
+ // show all children
680
+ wrapper.zIndex = zIndex;
681
+ wrapper.attr({ zIndex: zIndex });
682
+
683
+ // Set the radial gradient center the first time
684
+ if (attribs.center) {
685
+ wrapper.top.setRadialReference(attribs.center);
686
+ delete attribs.center;
687
+ }
688
+ };
689
+ wrapper.setPaths(attribs);
690
+
691
+ // Apply the fill to the top and a darker shade to the sides
692
+ wrapper.fillSetter = function (value) {
693
+ var darker = color(value).brighten(-0.1).get();
694
+
695
+ this.fill = value;
696
+
697
+ this.side1.attr({ fill: darker });
698
+ this.side2.attr({ fill: darker });
699
+ this.inn.attr({ fill: darker });
700
+ this.out.attr({ fill: darker });
701
+ this.top.attr({ fill: value });
702
+ return this;
703
+ };
704
+
705
+ // Apply the same value to all. These properties cascade down to the
706
+ // children when set to the composite arc3d.
707
+ ['opacity', 'translateX', 'translateY', 'visibility'].forEach(
708
+ function (setter) {
709
+ wrapper[setter + 'Setter'] = function (value, key) {
710
+ wrapper[key] = value;
711
+ ['out', 'inn', 'side1', 'side2', 'top'].forEach(function (el) {
712
+ wrapper[el].attr(key, value);
713
+ });
714
+ };
715
+ }
716
+ );
717
+
718
+ // Override attr to remove shape attributes and use those to set child paths
719
+ wrapper.attr = function (params) {
720
+ var ca;
721
+
722
+ if (typeof params === 'object') {
723
+ ca = suckOutCustom(params);
724
+ if (ca) {
725
+ extend(wrapper.attribs, ca);
726
+ wrapper.setPaths(wrapper.attribs);
727
+ }
728
+ }
729
+ return SVGElement.prototype.attr.apply(wrapper, arguments);
730
+ };
731
+
732
+ // Override the animate function by sucking out custom parameters related to
733
+ // the shapes directly, and update the shapes from the animation step.
734
+ wrapper.animate = function (params, animation, complete) {
735
+ var ca,
736
+ from = this.attribs,
737
+ to,
738
+ anim,
739
+ randomProp = 'data-' + Math.random().toString(26).substring(2, 9);
740
+
741
+ // Attribute-line properties connected to 3D. These shouldn't have been
742
+ // in the attribs collection in the first place.
743
+ delete params.center;
744
+ delete params.z;
745
+ delete params.depth;
746
+ delete params.alpha;
747
+ delete params.beta;
748
+
749
+ anim = animObject(pick(animation, this.renderer.globalAnimation));
750
+
751
+ if (anim.duration) {
752
+ ca = suckOutCustom(params);
753
+ // Params need to have a property in order for the step to run
754
+ // (#5765, #7097, #7437)
755
+ wrapper[randomProp] = 0;
756
+ params[randomProp] = 1;
757
+ wrapper[randomProp + 'Setter'] = H.noop;
758
+
759
+ if (ca) {
760
+ to = ca;
761
+ anim.step = function (a, fx) {
762
+ function interpolate(key) {
763
+ return from[key] +
764
+ (pick(to[key], from[key]) - from[key]) * fx.pos;
765
+ }
766
+
767
+ if (fx.prop === randomProp) {
768
+ fx.elem.setPaths(merge(from, {
769
+ x: interpolate('x'),
770
+ y: interpolate('y'),
771
+ r: interpolate('r'),
772
+ innerR: interpolate('innerR'),
773
+ start: interpolate('start'),
774
+ end: interpolate('end')
775
+ }));
776
+ }
777
+ };
778
+ }
779
+ animation = anim; // Only when duration (#5572)
780
+ }
781
+ return SVGElement.prototype.animate.call(
782
+ this,
783
+ params,
784
+ animation,
785
+ complete
786
+ );
787
+ };
788
+
789
+ // destroy all children
790
+ wrapper.destroy = function () {
791
+ this.top.destroy();
792
+ this.out.destroy();
793
+ this.inn.destroy();
794
+ this.side1.destroy();
795
+ this.side2.destroy();
796
+
797
+ SVGElement.prototype.destroy.call(this);
798
+ };
799
+ // hide all children
800
+ wrapper.hide = function () {
801
+ this.top.hide();
802
+ this.out.hide();
803
+ this.inn.hide();
804
+ this.side1.hide();
805
+ this.side2.hide();
806
+ };
807
+ wrapper.show = function (inherit) {
808
+ this.top.show(inherit);
809
+ this.out.show(inherit);
810
+ this.inn.show(inherit);
811
+ this.side1.show(inherit);
812
+ this.side2.show(inherit);
813
+ };
814
+ return wrapper;
815
+ };
816
+
817
+ // Generate the paths required to draw a 3D arc
818
+ SVGRenderer.prototype.arc3dPath = function (shapeArgs) {
819
+ var cx = shapeArgs.x, // x coordinate of the center
820
+ cy = shapeArgs.y, // y coordinate of the center
821
+ start = shapeArgs.start, // start angle
822
+ end = shapeArgs.end - 0.00001, // end angle
823
+ r = shapeArgs.r, // radius
824
+ ir = shapeArgs.innerR || 0, // inner radius
825
+ d = shapeArgs.depth || 0, // depth
826
+ alpha = shapeArgs.alpha, // alpha rotation of the chart
827
+ beta = shapeArgs.beta; // beta rotation of the chart
828
+
829
+ // Derived Variables
830
+ var cs = Math.cos(start), // cosinus of the start angle
831
+ ss = Math.sin(start), // sinus of the start angle
832
+ ce = Math.cos(end), // cosinus of the end angle
833
+ se = Math.sin(end), // sinus of the end angle
834
+ rx = r * Math.cos(beta), // x-radius
835
+ ry = r * Math.cos(alpha), // y-radius
836
+ irx = ir * Math.cos(beta), // x-radius (inner)
837
+ iry = ir * Math.cos(alpha), // y-radius (inner)
838
+ dx = d * Math.sin(beta), // distance between top and bottom in x
839
+ dy = d * Math.sin(alpha); // distance between top and bottom in y
840
+
841
+ // TOP
842
+ var top = ['M', cx + (rx * cs), cy + (ry * ss)];
843
+
844
+ top = top.concat(curveTo(cx, cy, rx, ry, start, end, 0, 0));
845
+ top = top.concat([
846
+ 'L', cx + (irx * ce), cy + (iry * se)
847
+ ]);
848
+ top = top.concat(curveTo(cx, cy, irx, iry, end, start, 0, 0));
849
+ top = top.concat(['Z']);
850
+
851
+ // OUTSIDE
852
+ var b = (beta > 0 ? Math.PI / 2 : 0),
853
+ a = (alpha > 0 ? 0 : Math.PI / 2);
854
+
855
+ var start2 = start > -b ? start : (end > -b ? -b : start),
856
+ end2 = end < PI - a ? end : (start < PI - a ? PI - a : end),
857
+ midEnd = 2 * PI - a;
858
+
859
+ // When slice goes over bottom middle, need to add both, left and right
860
+ // outer side. Additionally, when we cross right hand edge, create sharp
861
+ // edge. Outer shape/wall:
862
+ //
863
+ // -------
864
+ // / ^ \
865
+ // 4) / / \ \ 1)
866
+ // / / \ \
867
+ // / / \ \
868
+ // (c)=> ==== ==== <=(d)
869
+ // \ \ / /
870
+ // \ \<=(a)/ /
871
+ // \ \ / / <=(b)
872
+ // 3) \ v / 2)
873
+ // -------
874
+ //
875
+ // (a) - inner side
876
+ // (b) - outer side
877
+ // (c) - left edge (sharp)
878
+ // (d) - right edge (sharp)
879
+ // 1..n - rendering order for startAngle = 0, when set to e.g 90, order
880
+ // changes clockwise (1->2, 2->3, n->1) and counterclockwise for negative
881
+ // startAngle
882
+
883
+ var out = ['M', cx + (rx * cos(start2)), cy + (ry * sin(start2))];
884
+
885
+ out = out.concat(curveTo(cx, cy, rx, ry, start2, end2, 0, 0));
886
+
887
+ // When shape is wide, it can cross both, (c) and (d) edges, when using
888
+ // startAngle
889
+ if (end > midEnd && start < midEnd) {
890
+ // Go to outer side
891
+ out = out.concat([
892
+ 'L', cx + (rx * cos(end2)) + dx, cy + (ry * sin(end2)) + dy
893
+ ]);
894
+ // Curve to the right edge of the slice (d)
895
+ out = out.concat(curveTo(cx, cy, rx, ry, end2, midEnd, dx, dy));
896
+ // Go to the inner side
897
+ out = out.concat([
898
+ 'L', cx + (rx * cos(midEnd)), cy + (ry * sin(midEnd))
899
+ ]);
900
+ // Curve to the true end of the slice
901
+ out = out.concat(curveTo(cx, cy, rx, ry, midEnd, end, 0, 0));
902
+ // Go to the outer side
903
+ out = out.concat([
904
+ 'L', cx + (rx * cos(end)) + dx, cy + (ry * sin(end)) + dy
905
+ ]);
906
+ // Go back to middle (d)
907
+ out = out.concat(curveTo(cx, cy, rx, ry, end, midEnd, dx, dy));
908
+ out = out.concat([
909
+ 'L', cx + (rx * cos(midEnd)), cy + (ry * sin(midEnd))
910
+ ]);
911
+ // Go back to the left edge
912
+ out = out.concat(curveTo(cx, cy, rx, ry, midEnd, end2, 0, 0));
913
+
914
+ // But shape can cross also only (c) edge:
915
+ } else if (end > PI - a && start < PI - a) {
916
+ // Go to outer side
917
+ out = out.concat([
918
+ 'L',
919
+ cx + (rx * Math.cos(end2)) + dx,
920
+ cy + (ry * Math.sin(end2)) + dy
921
+ ]);
922
+ // Curve to the true end of the slice
923
+ out = out.concat(curveTo(cx, cy, rx, ry, end2, end, dx, dy));
924
+ // Go to the inner side
925
+ out = out.concat([
926
+ 'L', cx + (rx * Math.cos(end)), cy + (ry * Math.sin(end))
927
+ ]);
928
+ // Go back to the artifical end2
929
+ out = out.concat(curveTo(cx, cy, rx, ry, end, end2, 0, 0));
930
+ }
931
+
932
+ out = out.concat([
933
+ 'L', cx + (rx * Math.cos(end2)) + dx, cy + (ry * Math.sin(end2)) + dy
934
+ ]);
935
+ out = out.concat(curveTo(cx, cy, rx, ry, end2, start2, dx, dy));
936
+ out = out.concat(['Z']);
937
+
938
+ // INSIDE
939
+ var inn = ['M', cx + (irx * cs), cy + (iry * ss)];
940
+
941
+ inn = inn.concat(curveTo(cx, cy, irx, iry, start, end, 0, 0));
942
+ inn = inn.concat([
943
+ 'L', cx + (irx * Math.cos(end)) + dx, cy + (iry * Math.sin(end)) + dy
944
+ ]);
945
+ inn = inn.concat(curveTo(cx, cy, irx, iry, end, start, dx, dy));
946
+ inn = inn.concat(['Z']);
947
+
948
+ // SIDES
949
+ var side1 = [
950
+ 'M', cx + (rx * cs), cy + (ry * ss),
951
+ 'L', cx + (rx * cs) + dx, cy + (ry * ss) + dy,
952
+ 'L', cx + (irx * cs) + dx, cy + (iry * ss) + dy,
953
+ 'L', cx + (irx * cs), cy + (iry * ss),
954
+ 'Z'
955
+ ];
956
+ var side2 = [
957
+ 'M', cx + (rx * ce), cy + (ry * se),
958
+ 'L', cx + (rx * ce) + dx, cy + (ry * se) + dy,
959
+ 'L', cx + (irx * ce) + dx, cy + (iry * se) + dy,
960
+ 'L', cx + (irx * ce), cy + (iry * se),
961
+ 'Z'
962
+ ];
963
+
964
+ // correction for changed position of vanishing point caused by alpha and
965
+ // beta rotations
966
+ var angleCorr = Math.atan2(dy, -dx),
967
+ angleEnd = Math.abs(end + angleCorr),
968
+ angleStart = Math.abs(start + angleCorr),
969
+ angleMid = Math.abs((start + end) / 2 + angleCorr);
970
+
971
+ // set to 0-PI range
972
+ function toZeroPIRange(angle) {
973
+ angle = angle % (2 * Math.PI);
974
+ if (angle > Math.PI) {
975
+ angle = 2 * Math.PI - angle;
976
+ }
977
+ return angle;
978
+ }
979
+ angleEnd = toZeroPIRange(angleEnd);
980
+ angleStart = toZeroPIRange(angleStart);
981
+ angleMid = toZeroPIRange(angleMid);
982
+
983
+ // *1e5 is to compensate pInt in zIndexSetter
984
+ var incPrecision = 1e5,
985
+ a1 = angleMid * incPrecision,
986
+ a2 = angleStart * incPrecision,
987
+ a3 = angleEnd * incPrecision;
988
+
989
+ return {
990
+ top: top,
991
+ // max angle is PI, so this is always higher
992
+ zTop: Math.PI * incPrecision + 1,
993
+ out: out,
994
+ zOut: Math.max(a1, a2, a3),
995
+ inn: inn,
996
+ zInn: Math.max(a1, a2, a3),
997
+ side1: side1,
998
+ zSide1: a3 * 0.99, // to keep below zOut and zInn in case of same values
999
+ side2: side2,
1000
+ zSide2: a2 * 0.99
1001
+ };
1002
+ };