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,1069 @@
1
+ /**
2
+ * Popup generator for Stock tools
3
+ *
4
+ * (c) 2009-2017 Sebastian Bochan
5
+ *
6
+ * License: www.highcharts.com/license
7
+ */
8
+ 'use strict';
9
+ import H from '../parts/Globals.js';
10
+
11
+ var addEvent = H.addEvent,
12
+ createElement = H.createElement,
13
+ objectEach = H.objectEach,
14
+ pick = H.pick,
15
+ wrap = H.wrap,
16
+ isString = H.isString,
17
+ isObject = H.isObject,
18
+ isArray = H.isArray,
19
+ indexFilter = /\d/g,
20
+ PREFIX = 'highcharts-',
21
+ DIV = 'div',
22
+ INPUT = 'input',
23
+ LABEL = 'label',
24
+ BUTTON = 'button',
25
+ SELECT = 'select',
26
+ OPTION = 'option',
27
+ SPAN = 'span',
28
+ UL = 'ul',
29
+ LI = 'li',
30
+ H3 = 'h3';
31
+
32
+ // onContainerMouseDown blocks internal popup events, due to e.preventDefault.
33
+ // Related issue #4606
34
+
35
+ wrap(H.Pointer.prototype, 'onContainerMouseDown', function (proceed, e) {
36
+
37
+ var popupClass = e.target && e.target.className;
38
+
39
+ // elements is not in popup
40
+ if (!(isString(popupClass) &&
41
+ popupClass.indexOf(PREFIX + 'popup-field') >= 0)
42
+ ) {
43
+ proceed.apply(this, Array.prototype.slice.call(arguments, 1));
44
+ }
45
+ });
46
+
47
+ H.Popup = function (parentDiv) {
48
+ this.init(parentDiv);
49
+ };
50
+
51
+ H.Popup.prototype = {
52
+ /*
53
+ * Initialize the popup. Create base div and add close button.
54
+ *
55
+ * @param {HTMLDOMElement} - container where popup should be placed
56
+ *
57
+ * @return {HTMLDOMElement} - return created popup's div
58
+ *
59
+ */
60
+ init: function (parentDiv) {
61
+
62
+ // create popup div
63
+ this.container = createElement(DIV, {
64
+ className: PREFIX + 'popup'
65
+ }, null, parentDiv);
66
+
67
+ this.lang = this.getLangpack();
68
+
69
+ // add close button
70
+ this.addCloseBtn();
71
+ },
72
+ /*
73
+ * Create HTML element and attach click event (close popup).
74
+ *
75
+ */
76
+ addCloseBtn: function () {
77
+ var _self = this,
78
+ closeBtn;
79
+
80
+ // create close popup btn
81
+ closeBtn = createElement(DIV, {
82
+ className: PREFIX + 'popup-close'
83
+ }, null, this.container);
84
+
85
+ ['click', 'touchstart'].forEach(function (eventName) {
86
+ addEvent(closeBtn, eventName, function () {
87
+ _self.closePopup();
88
+ });
89
+ });
90
+ },
91
+ /*
92
+ * Create two columns (divs) in HTML.
93
+ *
94
+ * @param {HTMLDOMElement} - container of columns
95
+ *
96
+ * @return {Object} - reference to two HTML columns
97
+ *
98
+ */
99
+ addColsContainer: function (container) {
100
+ var rhsCol,
101
+ lhsCol;
102
+
103
+ // left column
104
+ lhsCol = createElement(DIV, {
105
+ className: PREFIX + 'popup-lhs-col'
106
+ }, null, container);
107
+
108
+ // right column
109
+ rhsCol = createElement(DIV, {
110
+ className: PREFIX + 'popup-rhs-col'
111
+ }, null, container);
112
+
113
+ // wrapper content
114
+ createElement(DIV, {
115
+ className: PREFIX + 'popup-rhs-col-wrapper'
116
+ }, null, rhsCol);
117
+
118
+ return {
119
+ lhsCol: lhsCol,
120
+ rhsCol: rhsCol
121
+ };
122
+ },
123
+ /*
124
+ * Create input with label.
125
+ *
126
+ * @param {String} - chain of fields i.e params.styles.fontSize
127
+ * @param {String} - indicator type
128
+ * @param {HTMLDOMElement} - container where elements should be added
129
+ * @param {String} - dafault value of input i.e period value is 14,
130
+ * extracted from defaultOptions (ADD mode) or series options (EDIT mode)
131
+ *
132
+ */
133
+ addInput: function (option, type, parentDiv, value) {
134
+ var optionParamList = option.split('.'),
135
+ optionName = optionParamList[optionParamList.length - 1],
136
+ lang = this.lang,
137
+ inputName = PREFIX + type + '-' + optionName;
138
+
139
+ if (!inputName.match(indexFilter)) {
140
+ // add label
141
+ createElement(
142
+ LABEL, {
143
+ innerHTML: lang[optionName] || optionName,
144
+ htmlFor: inputName
145
+ },
146
+ null,
147
+ parentDiv
148
+ );
149
+ }
150
+
151
+ // add input
152
+ createElement(
153
+ INPUT,
154
+ {
155
+ name: inputName,
156
+ value: value[0],
157
+ type: value[1],
158
+ className: PREFIX + 'popup-field'
159
+ },
160
+ null,
161
+ parentDiv
162
+ ).setAttribute(PREFIX + 'data-name', option);
163
+ },
164
+ /*
165
+ * Create button.
166
+ *
167
+ * @param {HTMLDOMElement} - container where elements should be added
168
+ * @param {String} - text placed as button label
169
+ * @param {String} - add | edit | remove
170
+ * @param {Function} - on click callback
171
+ * @param {HTMLDOMElement} - container where inputs are generated
172
+ *
173
+ * @return {HTMLDOMElement} - html button
174
+ */
175
+ addButton: function (parentDiv, label, type, callback, fieldsDiv) {
176
+ var _self = this,
177
+ closePopup = this.closePopup,
178
+ getFields = this.getFields,
179
+ button;
180
+
181
+ button = createElement(BUTTON, {
182
+ innerHTML: label
183
+ }, null, parentDiv);
184
+
185
+ ['click', 'touchstart'].forEach(function (eventName) {
186
+ addEvent(button, eventName, function () {
187
+ closePopup.call(_self);
188
+
189
+ return callback(
190
+ getFields(fieldsDiv, type)
191
+ );
192
+ });
193
+ });
194
+
195
+ return button;
196
+ },
197
+ /*
198
+ * Get values from all inputs and create JSON.
199
+ *
200
+ * @param {HTMLDOMElement} - container where inputs are created
201
+ * @param {String} - add | edit | remove
202
+ *
203
+ * @return {Object} - fields
204
+ */
205
+ getFields: function (parentDiv, type) {
206
+
207
+ var inputList = parentDiv.querySelectorAll('input'),
208
+ optionSeries = '#' + PREFIX + 'select-series > option:checked',
209
+ optionVolume = '#' + PREFIX + 'select-volume > option:checked',
210
+ linkedTo = parentDiv.querySelectorAll(optionSeries)[0],
211
+ volumeTo = parentDiv.querySelectorAll(optionVolume)[0],
212
+ seriesId,
213
+ param,
214
+ fieldsOutput;
215
+
216
+ fieldsOutput = {
217
+ actionType: type,
218
+ linkedTo: linkedTo && linkedTo.getAttribute('value'),
219
+ fields: { }
220
+ };
221
+
222
+ inputList.forEach(function (input) {
223
+ param = input.getAttribute(PREFIX + 'data-name');
224
+ seriesId = input.getAttribute(PREFIX + 'data-series-id');
225
+
226
+ // params
227
+ if (seriesId) {
228
+ fieldsOutput.seriesId = input.value;
229
+ } else if (param) {
230
+ fieldsOutput.fields[param] = input.value;
231
+ } else {
232
+ // type like sma / ema
233
+ fieldsOutput.type = input.value;
234
+ }
235
+ });
236
+
237
+ if (volumeTo) {
238
+ fieldsOutput.fields['params.volumeSeriesID'] = volumeTo
239
+ .getAttribute('value');
240
+ }
241
+
242
+ return fieldsOutput;
243
+ },
244
+ /*
245
+ * Reset content of the current popup and show.
246
+ *
247
+ * @param {Chart} - chart
248
+ * @param {Function} - on click callback
249
+ *
250
+ * @return {Object} - fields
251
+ */
252
+ showPopup: function () {
253
+
254
+ var popupDiv = this.container,
255
+ toolbarClass = PREFIX + 'annotation-toolbar',
256
+ popupCloseBtn = popupDiv
257
+ .querySelectorAll('.' + PREFIX + 'popup-close')[0];
258
+
259
+ // reset content
260
+ popupDiv.innerHTML = '';
261
+
262
+ // reset toolbar styles if exists
263
+ if (popupDiv.className.indexOf(toolbarClass) >= 0) {
264
+ popupDiv.classList.remove(toolbarClass);
265
+
266
+ // reset toolbar inline styles
267
+ popupDiv.removeAttribute('style');
268
+ }
269
+
270
+ // add close button
271
+ popupDiv.appendChild(popupCloseBtn);
272
+ popupDiv.style.display = 'block';
273
+ },
274
+ /*
275
+ * Hide popup.
276
+ *
277
+ */
278
+ closePopup: function () {
279
+ this.popup.container.style.display = 'none';
280
+ },
281
+ /*
282
+ * Create content and show popup.
283
+ *
284
+ * @param {String} - type of popup i.e indicators
285
+ * @param {Chart} - chart
286
+ * @param {Object} - options
287
+ * @param {Function} - on click callback
288
+ *
289
+ */
290
+ showForm: function (type, chart, options, callback) {
291
+
292
+ this.popup = chart.navigationBindings.popup;
293
+
294
+ // show blank popup
295
+ this.showPopup();
296
+
297
+ // indicator form
298
+ if (type === 'indicators') {
299
+ this.indicators.addForm.call(this, chart, options, callback);
300
+ }
301
+
302
+ // annotation small toolbar
303
+ if (type === 'annotation-toolbar') {
304
+ this.annotations.addToolbar.call(this, chart, options, callback);
305
+ }
306
+
307
+ // annotation edit form
308
+ if (type === 'annotation-edit') {
309
+ this.annotations.addForm.call(this, chart, options, callback);
310
+ }
311
+
312
+ // flags form - add / edit
313
+ if (type === 'flag') {
314
+ this.annotations.addForm.call(this, chart, options, callback, true);
315
+ }
316
+ },
317
+ /*
318
+ * Return lang definitions for popup.
319
+ *
320
+ * @return {Object} - elements translations.
321
+ */
322
+ getLangpack: function () {
323
+ return H.getOptions().lang.navigation.popup;
324
+ },
325
+ annotations: {
326
+ /*
327
+ * Create annotation simple form. It contains two buttons
328
+ * (edit / remove) and text label.
329
+ *
330
+ * @param {Chart} - chart
331
+ * @param {Object} - options
332
+ * @param {Function} - on click callback
333
+ *
334
+ */
335
+ addToolbar: function (chart, options, callback) {
336
+ var _self = this,
337
+ lang = this.lang,
338
+ popupDiv = this.popup.container,
339
+ showForm = this.showForm,
340
+ toolbarClass = PREFIX + 'annotation-toolbar',
341
+ button;
342
+
343
+ // set small size
344
+ if (popupDiv.className.indexOf(toolbarClass) === -1) {
345
+ popupDiv.className += ' ' + toolbarClass;
346
+ }
347
+
348
+ // set position
349
+ popupDiv.style.top = chart.plotTop + 10 + 'px';
350
+
351
+ // create label
352
+ createElement(SPAN, {
353
+ innerHTML: pick(
354
+ // Advanced annotations:
355
+ lang[options.langKey] || options.langKey,
356
+ // Basic shapes:
357
+ options.shapes && options.shapes[0].type
358
+ )
359
+ }, null, popupDiv);
360
+
361
+ // add buttons
362
+ button = this.addButton(
363
+ popupDiv,
364
+ lang.removeButton || 'remove',
365
+ 'remove',
366
+ callback,
367
+ popupDiv
368
+ );
369
+
370
+ button.className += ' ' + PREFIX + 'annotation-remove-button';
371
+
372
+ button = this.addButton(
373
+ popupDiv,
374
+ lang.editButton || 'edit',
375
+ 'edit',
376
+ function () {
377
+ showForm.call(
378
+ _self,
379
+ 'annotation-edit',
380
+ chart,
381
+ options,
382
+ callback
383
+ );
384
+ },
385
+ popupDiv
386
+ );
387
+
388
+ button.className += ' ' + PREFIX + 'annotation-edit-button';
389
+ },
390
+ /*
391
+ * Create annotation simple form.
392
+ * It contains fields with param names.
393
+ *
394
+ * @param {Chart} - chart
395
+ * @param {Object} - options
396
+ * @param {Function} - on click callback
397
+ * @param {Boolean} - if it is a form declared for init annotation
398
+ *
399
+ */
400
+ addForm: function (chart, options, callback, isInit) {
401
+ var popupDiv = this.popup.container,
402
+ lang = this.lang,
403
+ bottomRow,
404
+ lhsCol;
405
+
406
+ // create title of annotations
407
+ lhsCol = createElement('h2', {
408
+ innerHTML: lang[options.langKey] || options.langKey,
409
+ className: PREFIX + 'popup-main-title'
410
+ }, null, popupDiv);
411
+
412
+ // left column
413
+ lhsCol = createElement(DIV, {
414
+ className: PREFIX + 'popup-lhs-col ' + PREFIX + 'popup-lhs-full'
415
+ }, null, popupDiv);
416
+
417
+ bottomRow = createElement(DIV, {
418
+ className: PREFIX + 'popup-bottom-row'
419
+ }, null, popupDiv);
420
+
421
+ this.annotations.addFormFields.call(
422
+ this,
423
+ lhsCol,
424
+ chart,
425
+ '',
426
+ options,
427
+ [],
428
+ true
429
+ );
430
+
431
+ this.addButton(
432
+ bottomRow,
433
+ isInit ?
434
+ (lang.addButton || 'add') :
435
+ (lang.saveButton || 'save'),
436
+ isInit ? 'add' : 'save',
437
+ callback,
438
+ popupDiv
439
+ );
440
+ },
441
+ /*
442
+ * Create annotation's form fields.
443
+ *
444
+ * @param {HTMLDOMElement} - div where inputs are placed
445
+ * @param {Chart} - chart
446
+ * @param {String} - name of parent to create chain of names
447
+ * @param {Object} - options
448
+ * @param {Array} - storage - array where all items are stored
449
+ * @param {Boolean} - isRoot - recursive flag for root
450
+ *
451
+ */
452
+ addFormFields: function (
453
+ parentDiv,
454
+ chart,
455
+ parentNode,
456
+ options,
457
+ storage,
458
+ isRoot
459
+ ) {
460
+ var _self = this,
461
+ addFormFields = this.annotations.addFormFields,
462
+ addInput = this.addInput,
463
+ lang = this.lang,
464
+ parentFullName,
465
+ titleName;
466
+
467
+ objectEach(options, function (value, option) {
468
+
469
+ // create name like params.styles.fontSize
470
+ parentFullName = parentNode !== '' ?
471
+ parentNode + '.' + option : option;
472
+
473
+ if (isObject(value)) {
474
+ if (
475
+ // value is object of options
476
+ !isArray(value) ||
477
+ // array of objects with params. i.e labels in Fibonacci
478
+ (isArray(value) && isObject(value[0]))
479
+ ) {
480
+ titleName = lang[option] || option;
481
+
482
+ if (!titleName.match(indexFilter)) {
483
+ storage.push([
484
+ true,
485
+ titleName,
486
+ parentDiv
487
+ ]);
488
+ }
489
+
490
+ addFormFields.call(
491
+ _self,
492
+ parentDiv,
493
+ chart,
494
+ parentFullName,
495
+ value,
496
+ storage,
497
+ false
498
+ );
499
+ } else {
500
+ storage.push([
501
+ _self,
502
+ parentFullName,
503
+ 'annotation',
504
+ parentDiv,
505
+ value
506
+ ]);
507
+ }
508
+ }
509
+ });
510
+
511
+ if (isRoot) {
512
+ storage = storage.sort(function (a) {
513
+ return a[1].match(/format/g) ? -1 : 1;
514
+ });
515
+
516
+ storage.forEach(function (genInput) {
517
+ if (genInput[0] === true) {
518
+ createElement(SPAN, {
519
+ className: PREFIX + 'annotation-title',
520
+ innerHTML: genInput[1]
521
+ }, null, genInput[2]);
522
+ } else {
523
+ addInput.apply(genInput[0], genInput.splice(1));
524
+ }
525
+ });
526
+ }
527
+ }
528
+ },
529
+ indicators: {
530
+ /*
531
+ * Create indicator's form. It contains two tabs (ADD and EDIT) with
532
+ * content.
533
+ *
534
+ * @param {Chart} - chart
535
+ * @param {Object} - options
536
+ * @param {Function} - on click callback
537
+ *
538
+ */
539
+ addForm: function (chart, options, callback) {
540
+
541
+ var tabsContainers,
542
+ indicators = this.indicators,
543
+ lang = this.lang,
544
+ buttonParentDiv;
545
+
546
+ // add tabs
547
+ this.tabs.init.call(this, chart);
548
+
549
+ // get all tabs content divs
550
+ tabsContainers = this.popup.container
551
+ .querySelectorAll('.' + PREFIX + 'tab-item-content');
552
+
553
+ // ADD tab
554
+ this.addColsContainer(tabsContainers[0]);
555
+ indicators.addIndicatorList.call(
556
+ this,
557
+ chart,
558
+ tabsContainers[0],
559
+ 'add'
560
+ );
561
+
562
+ buttonParentDiv = tabsContainers[0]
563
+ .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
564
+
565
+ this.addButton(
566
+ buttonParentDiv,
567
+ lang.addButton || 'add',
568
+ 'add',
569
+ callback,
570
+ buttonParentDiv
571
+ );
572
+
573
+ // EDIT tab
574
+ this.addColsContainer(tabsContainers[1]);
575
+ indicators.addIndicatorList.call(
576
+ this,
577
+ chart,
578
+ tabsContainers[1],
579
+ 'edit'
580
+ );
581
+
582
+ buttonParentDiv = tabsContainers[1]
583
+ .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
584
+
585
+ this.addButton(
586
+ buttonParentDiv,
587
+ lang.saveButton || 'save',
588
+ 'edit',
589
+ callback,
590
+ buttonParentDiv
591
+ );
592
+ this.addButton(
593
+ buttonParentDiv,
594
+ lang.removeButton || 'remove',
595
+ 'remove',
596
+ callback,
597
+ buttonParentDiv
598
+ );
599
+ },
600
+ /*
601
+ * Create HTML list of all indicators (ADD mode) or added indicators
602
+ * (EDIT mode).
603
+ *
604
+ * @param {Chart} - chart
605
+ * @param {HTMLDOMElement} - container where list is added
606
+ * @param {String} - 'edit' or 'add' mode
607
+ *
608
+ */
609
+ addIndicatorList: function (chart, parentDiv, listType) {
610
+ var _self = this,
611
+ lhsCol = parentDiv
612
+ .querySelectorAll('.' + PREFIX + 'popup-lhs-col')[0],
613
+ rhsCol = parentDiv
614
+ .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0],
615
+ defaultOptions = H.getOptions(),
616
+ isEdit = listType === 'edit',
617
+ series = isEdit ? chart.series : // EDIT mode
618
+ defaultOptions.plotOptions, // ADD mode
619
+ addFormFields = this.indicators.addFormFields,
620
+ rhsColWrapper,
621
+ indicatorList,
622
+ item;
623
+
624
+ // create wrapper for list
625
+ indicatorList = createElement(UL, {
626
+ className: PREFIX + 'indicator-list'
627
+ }, null, lhsCol);
628
+
629
+ rhsColWrapper = rhsCol
630
+ .querySelectorAll('.' + PREFIX + 'popup-rhs-col-wrapper')[0];
631
+
632
+ objectEach(series, function (serie, value) {
633
+ var seriesOptions = serie.options;
634
+
635
+ if (
636
+ serie.params ||
637
+ seriesOptions && seriesOptions.params
638
+ ) {
639
+
640
+ var indicatorNameType = _self.indicators
641
+ .getNameType(serie, value),
642
+ indicatorType = indicatorNameType.type;
643
+
644
+ item = createElement(LI, {
645
+ className: PREFIX + 'indicator-list',
646
+ innerHTML: indicatorNameType.name
647
+ }, null, indicatorList);
648
+
649
+ ['click', 'touchstart'].forEach(function (eventName) {
650
+ addEvent(item, eventName, function () {
651
+
652
+ addFormFields.call(
653
+ _self,
654
+ chart,
655
+ isEdit ? serie : series[indicatorType],
656
+ indicatorNameType.type,
657
+ rhsColWrapper
658
+ );
659
+
660
+ // add hidden input with series.id
661
+ if (isEdit && serie.options) {
662
+ createElement(INPUT, {
663
+ type: 'hidden',
664
+ name: PREFIX + 'id-' + indicatorType,
665
+ value: serie.options.id
666
+ }, null, rhsColWrapper)
667
+ .setAttribute(
668
+ PREFIX + 'data-series-id',
669
+ serie.options.id
670
+ );
671
+ }
672
+ });
673
+ });
674
+ }
675
+ });
676
+
677
+ // select first item from the list
678
+ if (indicatorList.childNodes.length > 0) {
679
+ indicatorList.childNodes[0].click();
680
+ }
681
+ },
682
+ /*
683
+ * Extract full name and type of requested indicator.
684
+ *
685
+ * @param {Series} - series which name is needed.
686
+ * (EDIT mode - defaultOptions.series, ADD mode - indicator series).
687
+ * @param {String} - indicator type like: sma, ema, etc.
688
+ *
689
+ * @return {Object} - series name and type like: sma, ema, etc.
690
+ *
691
+ */
692
+ getNameType: function (series, type) {
693
+ var options = series.options,
694
+ seriesTypes = H.seriesTypes,
695
+ // add mode
696
+ seriesName = seriesTypes[type] &&
697
+ seriesTypes[type].prototype.nameBase || type.toUpperCase(),
698
+ seriesType = type;
699
+
700
+ // edit
701
+ if (options && options.type) {
702
+ seriesType = series.options.type;
703
+ seriesName = series.name;
704
+ }
705
+
706
+ return {
707
+ name: seriesName,
708
+ type: seriesType
709
+ };
710
+ },
711
+ /*
712
+ * List all series with unique ID. Its mandatory for indicators to set
713
+ * correct linking.
714
+ *
715
+ * @param {String} - indicator type like: sma, ema, etc.
716
+ * @param {String} - type of select i.e series or volume.
717
+ * @param {Chart} - chart
718
+ * @param {HTMLDOMElement} - element where created HTML list is added
719
+ *
720
+ */
721
+ listAllSeries: function (type, optionName, chart, parentDiv) {
722
+ var selectName = PREFIX + optionName + '-type-' + type,
723
+ lang = this.lang,
724
+ selectBox,
725
+ seriesOptions;
726
+
727
+ createElement(
728
+ LABEL, {
729
+ innerHTML: lang[optionName] || optionName,
730
+ htmlFor: selectName
731
+ },
732
+ null,
733
+ parentDiv
734
+ );
735
+
736
+ // select type
737
+ selectBox = createElement(
738
+ SELECT,
739
+ {
740
+ name: selectName,
741
+ className: PREFIX + 'popup-field'
742
+ },
743
+ null,
744
+ parentDiv
745
+ );
746
+
747
+ selectBox.setAttribute('id', PREFIX + 'select-' + optionName);
748
+
749
+ // list all series which have id - mandatory for creating indicator
750
+ chart.series.forEach(function (serie) {
751
+
752
+ seriesOptions = serie.options;
753
+
754
+ if (
755
+ !seriesOptions.params &&
756
+ seriesOptions.id &&
757
+ seriesOptions.id !== PREFIX + 'navigator-series'
758
+ ) {
759
+ createElement(
760
+ OPTION,
761
+ {
762
+ innerHTML: seriesOptions.name || seriesOptions.id,
763
+ value: seriesOptions.id
764
+ },
765
+ null,
766
+ selectBox
767
+ );
768
+ }
769
+ });
770
+ },
771
+ /*
772
+ * Create typical inputs for chosen indicator. Fields are extracted from
773
+ * defaultOptions (ADD mode) or current indicator (ADD mode). Two extra
774
+ * fields are added:
775
+ * - hidden input - contains indicator type (required for callback)
776
+ * - select - list of series which can be linked with indicator
777
+ *
778
+ * @param {Chart} - chart
779
+ * @param {Series} - indicator
780
+ * @param {String} - indicator type like: sma, ema, etc.
781
+ * @param {HTMLDOMElement} - element where created HTML list is added
782
+ *
783
+ */
784
+ addFormFields: function (chart, series, seriesType, rhsColWrapper) {
785
+ var fields = series.params || series.options.params,
786
+ getNameType = this.indicators.getNameType;
787
+
788
+ // reset current content
789
+ rhsColWrapper.innerHTML = '';
790
+
791
+ // create title (indicator name in the right column)
792
+ createElement(
793
+ H3,
794
+ {
795
+ className: PREFIX + 'indicator-title',
796
+ innerHTML: getNameType(series, seriesType).name
797
+ },
798
+ null,
799
+ rhsColWrapper
800
+ );
801
+
802
+ // input type
803
+ createElement(
804
+ INPUT,
805
+ {
806
+ type: 'hidden',
807
+ name: PREFIX + 'type-' + seriesType,
808
+ value: seriesType
809
+ },
810
+ null,
811
+ rhsColWrapper
812
+ );
813
+
814
+ // list all series with id
815
+ this.indicators.listAllSeries.call(
816
+ this,
817
+ seriesType,
818
+ 'series',
819
+ chart,
820
+ rhsColWrapper
821
+ );
822
+
823
+ if (fields.volumeSeriesID) {
824
+ this.indicators.listAllSeries.call(
825
+ this,
826
+ seriesType,
827
+ 'volume',
828
+ chart,
829
+ rhsColWrapper
830
+ );
831
+ }
832
+
833
+ // add param fields
834
+ this.indicators.addParamInputs.call(
835
+ this,
836
+ chart,
837
+ 'params',
838
+ fields,
839
+ seriesType,
840
+ rhsColWrapper
841
+ );
842
+ },
843
+ /*
844
+ * Recurent function which lists all fields, from params object and
845
+ * create them as inputs. Each input has unique `data-name` attribute,
846
+ * which keeps chain of fields i.e params.styles.fontSize.
847
+ *
848
+ * @param {Chart} - chart
849
+ * @param {String} - name of parent to create chain of names
850
+ * @param {Series} - fields - params which are based for input create
851
+ * @param {String} - indicator type like: sma, ema, etc.
852
+ * @param {HTMLDOMElement} - element where created HTML list is added
853
+ *
854
+ */
855
+ addParamInputs: function (chart, parentNode, fields, type, parentDiv) {
856
+ var _self = this,
857
+ addParamInputs = this.indicators.addParamInputs,
858
+ addInput = this.addInput,
859
+ parentFullName;
860
+
861
+ objectEach(fields, function (value, fieldName) {
862
+ // create name like params.styles.fontSize
863
+ parentFullName = parentNode + '.' + fieldName;
864
+
865
+ if (isObject(value)) {
866
+ addParamInputs.call(
867
+ _self,
868
+ chart,
869
+ parentFullName,
870
+ value,
871
+ type,
872
+ parentDiv
873
+ );
874
+ } else if (
875
+ // skip volume field which is created by addFormFields
876
+ parentFullName !== 'params.volumeSeriesID'
877
+ ) {
878
+ addInput.call(
879
+ _self,
880
+ parentFullName,
881
+ type,
882
+ parentDiv,
883
+ [value, 'text'] // all inputs are text type
884
+ );
885
+ }
886
+ });
887
+ },
888
+ /*
889
+ * Get amount of indicators added to chart.
890
+ *
891
+ * @return {Number} - Amount of indicators
892
+ */
893
+ getAmount: function () {
894
+ var series = this.series,
895
+ counter = 0;
896
+
897
+ objectEach(series, function (serie) {
898
+ var seriesOptions = serie.options;
899
+
900
+ if (
901
+ serie.params ||
902
+ seriesOptions && seriesOptions.params
903
+ ) {
904
+ counter++;
905
+ }
906
+ });
907
+
908
+ return counter;
909
+ }
910
+ },
911
+ tabs: {
912
+ /*
913
+ * Init tabs. Create tab menu items, tabs containers
914
+ *
915
+ * @param {Chart} - reference to current chart
916
+ *
917
+ */
918
+ init: function (chart) {
919
+ var tabs = this.tabs,
920
+ indicatorsCount = this.indicators.getAmount.call(chart),
921
+ firstTab; // run by default
922
+
923
+ // create menu items
924
+ firstTab = tabs.addMenuItem.call(this, 'add');
925
+ tabs.addMenuItem.call(this, 'edit', indicatorsCount);
926
+
927
+ // create tabs containers
928
+ tabs.addContentItem.call(this, 'add');
929
+ tabs.addContentItem.call(this, 'edit');
930
+
931
+ tabs.switchTabs.call(this, indicatorsCount);
932
+
933
+ // activate first tab
934
+ tabs.selectTab.call(this, firstTab, 0);
935
+ },
936
+ /*
937
+ * Create tab menu item
938
+ *
939
+ * @param {String} - `add` or `edit`
940
+ * @param {Number} - Disable tab when 0
941
+ *
942
+ * @return {HTMLDOMElement} - created HTML tab-menu element
943
+ */
944
+ addMenuItem: function (tabName, disableTab) {
945
+ var popupDiv = this.popup.container,
946
+ className = PREFIX + 'tab-item',
947
+ lang = this.lang,
948
+ menuItem;
949
+
950
+ if (disableTab === 0) {
951
+ className += ' ' + PREFIX + 'tab-disabled';
952
+ }
953
+
954
+ // tab 1
955
+ menuItem = createElement(
956
+ SPAN,
957
+ {
958
+ innerHTML: lang[tabName + 'Button'] || tabName,
959
+ className: className
960
+ },
961
+ null,
962
+ popupDiv
963
+ );
964
+
965
+ menuItem.setAttribute(PREFIX + 'data-tab-type', tabName);
966
+
967
+ return menuItem;
968
+ },
969
+ /*
970
+ * Create tab content
971
+ *
972
+ * @return {HTMLDOMElement} - created HTML tab-content element
973
+ *
974
+ */
975
+ addContentItem: function () {
976
+ var popupDiv = this.popup.container;
977
+
978
+ return createElement(
979
+ DIV,
980
+ {
981
+ className: PREFIX + 'tab-item-content'
982
+ },
983
+ null,
984
+ popupDiv
985
+ );
986
+ },
987
+ /*
988
+ * Add click event to each tab
989
+ *
990
+ * @param {Number} - Disable tab when 0
991
+ *
992
+ */
993
+ switchTabs: function (disableTab) {
994
+ var _self = this,
995
+ popupDiv = this.popup.container,
996
+ tabs = popupDiv.querySelectorAll('.' + PREFIX + 'tab-item'),
997
+ dataParam;
998
+
999
+ tabs.forEach(function (tab, i) {
1000
+
1001
+ dataParam = tab.getAttribute(PREFIX + 'data-tab-type');
1002
+
1003
+ if (dataParam === 'edit' && disableTab === 0) {
1004
+ return;
1005
+ }
1006
+
1007
+ ['click', 'touchstart'].forEach(function (eventName) {
1008
+ addEvent(tab, eventName, function () {
1009
+
1010
+ // reset class on other elements
1011
+ _self.tabs.deselectAll.call(_self);
1012
+ _self.tabs.selectTab.call(_self, this, i);
1013
+ });
1014
+ });
1015
+ });
1016
+ },
1017
+ /*
1018
+ * Set tab as visible
1019
+ *
1020
+ * @param {HTMLDOMElement} - current tab
1021
+ * @param {Number} - Index of tab in menu
1022
+ *
1023
+ */
1024
+ selectTab: function (tab, index) {
1025
+ var allTabs = this.popup.container
1026
+ .querySelectorAll('.' + PREFIX + 'tab-item-content');
1027
+
1028
+ tab.className += ' ' + PREFIX + 'tab-item-active';
1029
+ allTabs[index].className += ' ' + PREFIX + 'tab-item-show';
1030
+ },
1031
+ /*
1032
+ * Set all tabs as invisible.
1033
+ *
1034
+ */
1035
+ deselectAll: function () {
1036
+ var popupDiv = this.popup.container,
1037
+ tabs = popupDiv
1038
+ .querySelectorAll('.' + PREFIX + 'tab-item'),
1039
+ tabsContent = popupDiv
1040
+ .querySelectorAll('.' + PREFIX + 'tab-item-content'),
1041
+ i;
1042
+
1043
+ for (i = 0; i < tabs.length; i++) {
1044
+ tabs[i].classList.remove(PREFIX + 'tab-item-active');
1045
+ tabsContent[i].classList.remove(PREFIX + 'tab-item-show');
1046
+ }
1047
+ }
1048
+ }
1049
+ };
1050
+
1051
+ addEvent(H.NavigationBindings, 'showPopup', function (config) {
1052
+ if (!this.popup) {
1053
+ // Add popup to main container
1054
+ this.popup = new H.Popup(this.chart.container);
1055
+ }
1056
+
1057
+ this.popup.showForm(
1058
+ config.formType,
1059
+ this.chart,
1060
+ config.options,
1061
+ config.onSubmit
1062
+ );
1063
+ });
1064
+
1065
+ addEvent(H.NavigationBindings, 'closePopup', function () {
1066
+ if (this.popup) {
1067
+ this.popup.closePopup();
1068
+ }
1069
+ });