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,816 @@
1
+ /* *
2
+ * (c) 2016 Highsoft AS
3
+ * Author: Øystein Moseng
4
+ *
5
+ * License: www.highcharts.com/license
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ import H from '../parts/Globals.js';
11
+ import '../parts/Utilities.js';
12
+
13
+ var min = Math.min,
14
+ max = Math.max,
15
+ abs = Math.abs,
16
+ pick = H.pick;
17
+
18
+ /**
19
+ * Get index of last obstacle before xMin. Employs a type of binary search, and
20
+ * thus requires that obstacles are sorted by xMin value.
21
+ *
22
+ * @private
23
+ * @function findLastObstacleBefore
24
+ *
25
+ * @param {Array<object>} obstacles
26
+ * Array of obstacles to search in.
27
+ *
28
+ * @param {number} xMin
29
+ * The xMin threshold.
30
+ *
31
+ * @param {number} startIx
32
+ * Starting index to search from. Must be within array range.
33
+ *
34
+ * @return {number}
35
+ * The index of the last obstacle element before xMin.
36
+ */
37
+ function findLastObstacleBefore(obstacles, xMin, startIx) {
38
+ var left = startIx || 0, // left limit
39
+ right = obstacles.length - 1, // right limit
40
+ min = xMin - 0.0000001, // Make sure we include all obstacles at xMin
41
+ cursor,
42
+ cmp;
43
+
44
+ while (left <= right) {
45
+ cursor = (right + left) >> 1;
46
+ cmp = min - obstacles[cursor].xMin;
47
+ if (cmp > 0) {
48
+ left = cursor + 1;
49
+ } else if (cmp < 0) {
50
+ right = cursor - 1;
51
+ } else {
52
+ return cursor;
53
+ }
54
+ }
55
+ return left > 0 ? left - 1 : 0;
56
+ }
57
+
58
+ /**
59
+ * Test if a point lays within an obstacle.
60
+ *
61
+ * @private
62
+ * @function pointWithinObstacle
63
+ *
64
+ * @param {object} obstacle
65
+ * Obstacle to test.
66
+ *
67
+ * @param {Highcharts.Point} point
68
+ * Point with x/y props.
69
+ *
70
+ * @return {boolean}
71
+ * Whether point is within the obstacle or not.
72
+ */
73
+ function pointWithinObstacle(obstacle, point) {
74
+ return (
75
+ point.x <= obstacle.xMax &&
76
+ point.x >= obstacle.xMin &&
77
+ point.y <= obstacle.yMax &&
78
+ point.y >= obstacle.yMin
79
+ );
80
+ }
81
+
82
+ /**
83
+ * Find the index of an obstacle that wraps around a point.
84
+ * Returns -1 if not found.
85
+ *
86
+ * @private
87
+ * @function findObstacleFromPoint
88
+ *
89
+ * @param {Array<object>} obstacles
90
+ * Obstacles to test.
91
+ *
92
+ * @param {Highcharts.Point} point
93
+ * Point with x/y props.
94
+ *
95
+ * @return {number}
96
+ * Ix of the obstacle in the array, or -1 if not found.
97
+ */
98
+ function findObstacleFromPoint(obstacles, point) {
99
+ var i = findLastObstacleBefore(obstacles, point.x + 1) + 1;
100
+
101
+ while (i--) {
102
+ if (obstacles[i].xMax >= point.x &&
103
+ // optimization using lazy evaluation
104
+ pointWithinObstacle(obstacles[i], point)) {
105
+ return i;
106
+ }
107
+ }
108
+ return -1;
109
+ }
110
+
111
+ /**
112
+ * Get SVG path array from array of line segments.
113
+ *
114
+ * @private
115
+ * @function pathFromSegments
116
+ *
117
+ * @param {Array<object>} segments
118
+ * The segments to build the path from.
119
+ *
120
+ * @return {Highcharts.SVGPathArray}
121
+ * SVG path array as accepted by the SVG Renderer.
122
+ */
123
+ function pathFromSegments(segments) {
124
+ var path = [];
125
+
126
+ if (segments.length) {
127
+ path.push('M', segments[0].start.x, segments[0].start.y);
128
+ for (var i = 0; i < segments.length; ++i) {
129
+ path.push('L', segments[i].end.x, segments[i].end.y);
130
+ }
131
+ }
132
+ return path;
133
+ }
134
+
135
+ /**
136
+ * Limits obstacle max/mins in all directions to bounds. Modifies input
137
+ * obstacle.
138
+ *
139
+ * @private
140
+ * @function limitObstacleToBounds
141
+ *
142
+ * @param {object} obstacle
143
+ * Obstacle to limit.
144
+ *
145
+ * @param {object} bounds
146
+ * Bounds to use as limit.
147
+ */
148
+ function limitObstacleToBounds(obstacle, bounds) {
149
+ obstacle.yMin = max(obstacle.yMin, bounds.yMin);
150
+ obstacle.yMax = min(obstacle.yMax, bounds.yMax);
151
+ obstacle.xMin = max(obstacle.xMin, bounds.xMin);
152
+ obstacle.xMax = min(obstacle.xMax, bounds.xMax);
153
+ }
154
+
155
+
156
+ // Define the available pathfinding algorithms.
157
+ // Algorithms take up to 3 arguments: starting point, ending point, and an
158
+ // options object.
159
+ var algorithms = {
160
+
161
+ /**
162
+ * Get an SVG path from a starting coordinate to an ending coordinate.
163
+ * Draws a straight line.
164
+ *
165
+ * @function Highcharts.Pathfinder.algorithms.straight
166
+ *
167
+ * @param {object} start
168
+ * Starting coordinate, object with x/y props.
169
+ *
170
+ * @param {object} end
171
+ * Ending coordinate, object with x/y props.
172
+ *
173
+ * @return {object}
174
+ * An object with the SVG path in Array form as accepted by the SVG
175
+ * renderer, as well as an array of new obstacles making up this
176
+ * path.
177
+ */
178
+ straight: function (start, end) {
179
+ return {
180
+ path: ['M', start.x, start.y, 'L', end.x, end.y],
181
+ obstacles: [{ start: start, end: end }]
182
+ };
183
+ },
184
+
185
+ /**
186
+ * Find a path from a starting coordinate to an ending coordinate, using
187
+ * right angles only, and taking only starting/ending obstacle into
188
+ * consideration.
189
+ *
190
+ * @function Highcharts.Pathfinder.algorithms.simpleConnect
191
+ *
192
+ * @param {object} start
193
+ * Starting coordinate, object with x/y props.
194
+ *
195
+ * @param {object} end
196
+ * Ending coordinate, object with x/y props.
197
+ *
198
+ * @param {object} options
199
+ * Options for the algorithm:
200
+ * - chartObstacles: Array of chart obstacles to avoid
201
+ * - startDirectionX: Optional. True if starting in the X direction.
202
+ * If not provided, the algorithm starts in the direction that is
203
+ * the furthest between start/end.
204
+ *
205
+ * @return {object}
206
+ * An object with the SVG path in Array form as accepted by the SVG
207
+ * renderer, as well as an array of new obstacles making up this
208
+ * path.
209
+ */
210
+ simpleConnect: H.extend(function (start, end, options) {
211
+ var segments = [],
212
+ endSegment,
213
+ dir = pick(
214
+ options.startDirectionX,
215
+ abs(end.x - start.x) > abs(end.y - start.y)
216
+ ) ? 'x' : 'y',
217
+ chartObstacles = options.chartObstacles,
218
+ startObstacleIx = findObstacleFromPoint(chartObstacles, start),
219
+ endObstacleIx = findObstacleFromPoint(chartObstacles, end),
220
+ startObstacle,
221
+ endObstacle,
222
+ prevWaypoint,
223
+ waypoint,
224
+ waypoint2,
225
+ useMax,
226
+ endPoint;
227
+
228
+ // Return a clone of a point with a property set from a target object,
229
+ // optionally with an offset
230
+ function copyFromPoint(from, fromKey, to, toKey, offset) {
231
+ var point = {
232
+ x: from.x,
233
+ y: from.y
234
+ };
235
+
236
+ point[fromKey] = to[toKey || fromKey] + (offset || 0);
237
+ return point;
238
+ }
239
+
240
+ // Return waypoint outside obstacle
241
+ function getMeOut(obstacle, point, direction) {
242
+ var useMax = abs(point[direction] - obstacle[direction + 'Min']) >
243
+ abs(point[direction] - obstacle[direction + 'Max']);
244
+
245
+ return copyFromPoint(
246
+ point,
247
+ direction,
248
+ obstacle,
249
+ direction + (useMax ? 'Max' : 'Min'),
250
+ useMax ? 1 : -1
251
+ );
252
+ }
253
+
254
+ // Pull out end point
255
+ if (endObstacleIx > -1) {
256
+ endObstacle = chartObstacles[endObstacleIx];
257
+ waypoint = getMeOut(endObstacle, end, dir);
258
+ endSegment = {
259
+ start: waypoint,
260
+ end: end
261
+ };
262
+ endPoint = waypoint;
263
+ } else {
264
+ endPoint = end;
265
+ }
266
+
267
+ // If an obstacle envelops the start point, add a segment to get out,
268
+ // and around it.
269
+ if (startObstacleIx > -1) {
270
+ startObstacle = chartObstacles[startObstacleIx];
271
+ waypoint = getMeOut(startObstacle, start, dir);
272
+ segments.push({
273
+ start: start,
274
+ end: waypoint
275
+ });
276
+
277
+ // If we are going back again, switch direction to get around start
278
+ // obstacle.
279
+ if (
280
+ waypoint[dir] > start[dir] === // Going towards max from start
281
+ waypoint[dir] > endPoint[dir] // Going towards min to end
282
+ ) {
283
+ dir = dir === 'y' ? 'x' : 'y';
284
+ useMax = start[dir] < end[dir];
285
+ segments.push({
286
+ start: waypoint,
287
+ end: copyFromPoint(
288
+ waypoint,
289
+ dir,
290
+ startObstacle,
291
+ dir + (useMax ? 'Max' : 'Min'),
292
+ useMax ? 1 : -1
293
+ )
294
+ });
295
+
296
+ // Switch direction again
297
+ dir = dir === 'y' ? 'x' : 'y';
298
+ }
299
+ }
300
+
301
+ // We are around the start obstacle. Go towards the end in one
302
+ // direction.
303
+ prevWaypoint = segments.length ?
304
+ segments[segments.length - 1].end :
305
+ start;
306
+ waypoint = copyFromPoint(prevWaypoint, dir, endPoint);
307
+ segments.push({
308
+ start: prevWaypoint,
309
+ end: waypoint
310
+ });
311
+
312
+ // Final run to end point in the other direction
313
+ dir = dir === 'y' ? 'x' : 'y';
314
+ waypoint2 = copyFromPoint(waypoint, dir, endPoint);
315
+ segments.push({
316
+ start: waypoint,
317
+ end: waypoint2
318
+ });
319
+
320
+ // Finally add the endSegment
321
+ segments.push(endSegment);
322
+
323
+ return {
324
+ path: pathFromSegments(segments),
325
+ obstacles: segments
326
+ };
327
+ }, {
328
+ requiresObstacles: true
329
+ }),
330
+
331
+ /**
332
+ * Find a path from a starting coordinate to an ending coordinate, taking
333
+ * obstacles into consideration. Might not always find the optimal path,
334
+ * but is fast, and usually good enough.
335
+ *
336
+ * @function Highcharts.Pathfinder.algorithms.fastAvoid
337
+ *
338
+ * @param {object} start
339
+ * Starting coordinate, object with x/y props.
340
+ *
341
+ * @param {object} end
342
+ * Ending coordinate, object with x/y props.
343
+ *
344
+ * @param {object} options
345
+ * Options for the algorithm.
346
+ * - chartObstacles: Array of chart obstacles to avoid
347
+ * - lineObstacles: Array of line obstacles to jump over
348
+ * - obstacleMetrics: Object with metrics of chartObstacles cached
349
+ * - hardBounds: Hard boundaries to not cross
350
+ * - obstacleOptions: Options for the obstacles, including margin
351
+ * - startDirectionX: Optional. True if starting in the X direction.
352
+ * If not provided, the algorithm starts in the
353
+ * direction that is the furthest between
354
+ * start/end.
355
+ *
356
+ * @return {object}
357
+ * An object with the SVG path in Array form as accepted by the SVG
358
+ * renderer, as well as an array of new obstacles making up this
359
+ * path.
360
+ */
361
+ fastAvoid: H.extend(function (start, end, options) {
362
+ /*
363
+ Algorithm rules/description
364
+ - Find initial direction
365
+ - Determine soft/hard max for each direction.
366
+ - Move along initial direction until obstacle.
367
+ - Change direction.
368
+ - If hitting obstacle, first try to change length of previous line
369
+ before changing direction again.
370
+
371
+ Soft min/max x = start/destination x +/- widest obstacle + margin
372
+ Soft min/max y = start/destination y +/- tallest obstacle + margin
373
+
374
+ @todo:
375
+ - Make retrospective, try changing prev segment to reduce
376
+ corners
377
+ - Fix logic for breaking out of end-points - not always picking
378
+ the best direction currently
379
+ - When going around the end obstacle we should not always go the
380
+ shortest route, rather pick the one closer to the end point
381
+ */
382
+ var dirIsX = pick(
383
+ options.startDirectionX,
384
+ abs(end.x - start.x) > abs(end.y - start.y)
385
+ ),
386
+ dir = dirIsX ? 'x' : 'y',
387
+ segments,
388
+ useMax,
389
+ extractedEndPoint,
390
+ endSegments = [],
391
+ forceObstacleBreak = false, // Used in clearPathTo to keep track of
392
+ // when to force break through an obstacle.
393
+
394
+ // Boundaries to stay within. If beyond soft boundary, prefer to
395
+ // change direction ASAP. If at hard max, always change immediately.
396
+ metrics = options.obstacleMetrics,
397
+ softMinX = min(start.x, end.x) - metrics.maxWidth - 10,
398
+ softMaxX = max(start.x, end.x) + metrics.maxWidth + 10,
399
+ softMinY = min(start.y, end.y) - metrics.maxHeight - 10,
400
+ softMaxY = max(start.y, end.y) + metrics.maxHeight + 10,
401
+
402
+ // Obstacles
403
+ chartObstacles = options.chartObstacles,
404
+ startObstacleIx = findLastObstacleBefore(chartObstacles, softMinX),
405
+ endObstacleIx = findLastObstacleBefore(chartObstacles, softMaxX);
406
+
407
+ // How far can you go between two points before hitting an obstacle?
408
+ // Does not work for diagonal lines (because it doesn't have to).
409
+ function pivotPoint(fromPoint, toPoint, directionIsX) {
410
+ var firstPoint,
411
+ lastPoint,
412
+ highestPoint,
413
+ lowestPoint,
414
+ i,
415
+ searchDirection = fromPoint.x < toPoint.x ? 1 : -1;
416
+
417
+ if (fromPoint.x < toPoint.x) {
418
+ firstPoint = fromPoint;
419
+ lastPoint = toPoint;
420
+ } else {
421
+ firstPoint = toPoint;
422
+ lastPoint = fromPoint;
423
+ }
424
+
425
+ if (fromPoint.y < toPoint.y) {
426
+ lowestPoint = fromPoint;
427
+ highestPoint = toPoint;
428
+ } else {
429
+ lowestPoint = toPoint;
430
+ highestPoint = fromPoint;
431
+ }
432
+
433
+ // Go through obstacle range in reverse if toPoint is before
434
+ // fromPoint in the X-dimension.
435
+ i = searchDirection < 0 ?
436
+ // Searching backwards, start at last obstacle before last point
437
+ min(findLastObstacleBefore(chartObstacles, lastPoint.x),
438
+ chartObstacles.length - 1) :
439
+ // Forwards. Since we're not sorted by xMax, we have to look
440
+ // at all obstacles.
441
+ 0;
442
+
443
+ // Go through obstacles in this X range
444
+ while (chartObstacles[i] && (
445
+ searchDirection > 0 && chartObstacles[i].xMin <= lastPoint.x ||
446
+ searchDirection < 0 && chartObstacles[i].xMax >= firstPoint.x
447
+ )) {
448
+ // If this obstacle is between from and to points in a straight
449
+ // line, pivot at the intersection.
450
+ if (
451
+ chartObstacles[i].xMin <= lastPoint.x &&
452
+ chartObstacles[i].xMax >= firstPoint.x &&
453
+ chartObstacles[i].yMin <= highestPoint.y &&
454
+ chartObstacles[i].yMax >= lowestPoint.y
455
+ ) {
456
+ if (directionIsX) {
457
+ return {
458
+ y: fromPoint.y,
459
+ x: fromPoint.x < toPoint.x ?
460
+ chartObstacles[i].xMin - 1 :
461
+ chartObstacles[i].xMax + 1,
462
+ obstacle: chartObstacles[i]
463
+ };
464
+ }
465
+ // else ...
466
+ return {
467
+ x: fromPoint.x,
468
+ y: fromPoint.y < toPoint.y ?
469
+ chartObstacles[i].yMin - 1 :
470
+ chartObstacles[i].yMax + 1,
471
+ obstacle: chartObstacles[i]
472
+ };
473
+ }
474
+
475
+ i += searchDirection;
476
+ }
477
+
478
+ return toPoint;
479
+ }
480
+
481
+ /**
482
+ * Decide in which direction to dodge or get out of an obstacle.
483
+ * Considers desired direction, which way is shortest, soft and hard
484
+ * bounds.
485
+ *
486
+ * (? Returns a string, either xMin, xMax, yMin or yMax.)
487
+ *
488
+ * @private
489
+ * @function
490
+ *
491
+ * @param {object} obstacle
492
+ * Obstacle to dodge/escape.
493
+ *
494
+ * @param {object} fromPoint
495
+ * Point with x/y props that's dodging/escaping.
496
+ *
497
+ * @param {object} toPoint
498
+ * Goal point.
499
+ *
500
+ * @param {boolean} dirIsX
501
+ * Dodge in X dimension.
502
+ *
503
+ * @param {object} bounds
504
+ * Hard and soft boundaries.
505
+ *
506
+ * @return {boolean}
507
+ * Use max or not.
508
+ */
509
+ function getDodgeDirection(
510
+ obstacle,
511
+ fromPoint,
512
+ toPoint,
513
+ dirIsX,
514
+ bounds
515
+ ) {
516
+ var softBounds = bounds.soft,
517
+ hardBounds = bounds.hard,
518
+ dir = dirIsX ? 'x' : 'y',
519
+ toPointMax = { x: fromPoint.x, y: fromPoint.y },
520
+ toPointMin = { x: fromPoint.x, y: fromPoint.y },
521
+ minPivot,
522
+ maxPivot,
523
+ maxOutOfSoftBounds = obstacle[dir + 'Max'] >=
524
+ softBounds[dir + 'Max'],
525
+ minOutOfSoftBounds = obstacle[dir + 'Min'] <=
526
+ softBounds[dir + 'Min'],
527
+ maxOutOfHardBounds = obstacle[dir + 'Max'] >=
528
+ hardBounds[dir + 'Max'],
529
+ minOutOfHardBounds = obstacle[dir + 'Min'] <=
530
+ hardBounds[dir + 'Min'],
531
+ // Find out if we should prefer one direction over the other if
532
+ // we can choose freely
533
+ minDistance = abs(obstacle[dir + 'Min'] - fromPoint[dir]),
534
+ maxDistance = abs(obstacle[dir + 'Max'] - fromPoint[dir]),
535
+ // If it's a small difference, pick the one leading towards dest
536
+ // point. Otherwise pick the shortest distance
537
+ useMax = abs(minDistance - maxDistance) < 10 ?
538
+ fromPoint[dir] < toPoint[dir] :
539
+ maxDistance < minDistance;
540
+
541
+ // Check if we hit any obstacles trying to go around in either
542
+ // direction.
543
+ toPointMin[dir] = obstacle[dir + 'Min'];
544
+ toPointMax[dir] = obstacle[dir + 'Max'];
545
+ minPivot = pivotPoint(fromPoint, toPointMin, dirIsX)[dir] !==
546
+ toPointMin[dir];
547
+ maxPivot = pivotPoint(fromPoint, toPointMax, dirIsX)[dir] !==
548
+ toPointMax[dir];
549
+ useMax = minPivot ?
550
+ (maxPivot ? useMax : true) :
551
+ (maxPivot ? false : useMax);
552
+
553
+ // useMax now contains our preferred choice, bounds not taken into
554
+ // account. If both or neither direction is out of bounds we want to
555
+ // use this.
556
+
557
+ // Deal with soft bounds
558
+ useMax = minOutOfSoftBounds ?
559
+ (maxOutOfSoftBounds ? useMax : true) : // Out on min
560
+ (maxOutOfSoftBounds ? false : useMax); // Not out on min
561
+
562
+ // Deal with hard bounds
563
+ useMax = minOutOfHardBounds ?
564
+ (maxOutOfHardBounds ? useMax : true) : // Out on min
565
+ (maxOutOfHardBounds ? false : useMax); // Not out on min
566
+
567
+ return useMax;
568
+ }
569
+
570
+ // Find a clear path between point
571
+ function clearPathTo(fromPoint, toPoint, dirIsX) {
572
+ // Don't waste time if we've hit goal
573
+ if (fromPoint.x === toPoint.x && fromPoint.y === toPoint.y) {
574
+ return [];
575
+ }
576
+
577
+ var dir = dirIsX ? 'x' : 'y',
578
+ pivot,
579
+ segments,
580
+ waypoint,
581
+ waypointUseMax,
582
+ envelopingObstacle,
583
+ secondEnvelopingObstacle,
584
+ envelopWaypoint,
585
+ obstacleMargin = options.obstacleOptions.margin,
586
+ bounds = {
587
+ soft: {
588
+ xMin: softMinX,
589
+ xMax: softMaxX,
590
+ yMin: softMinY,
591
+ yMax: softMaxY
592
+ },
593
+ hard: options.hardBounds
594
+ };
595
+
596
+ // If fromPoint is inside an obstacle we have a problem. Break out
597
+ // by just going to the outside of this obstacle. We prefer to go to
598
+ // the nearest edge in the chosen direction.
599
+ envelopingObstacle =
600
+ findObstacleFromPoint(chartObstacles, fromPoint);
601
+ if (envelopingObstacle > -1) {
602
+ envelopingObstacle = chartObstacles[envelopingObstacle];
603
+ waypointUseMax = getDodgeDirection(
604
+ envelopingObstacle, fromPoint, toPoint, dirIsX, bounds
605
+ );
606
+
607
+ // Cut obstacle to hard bounds to make sure we stay within
608
+ limitObstacleToBounds(envelopingObstacle, options.hardBounds);
609
+
610
+ envelopWaypoint = dirIsX ? {
611
+ y: fromPoint.y,
612
+ x: envelopingObstacle[waypointUseMax ? 'xMax' : 'xMin'] +
613
+ (waypointUseMax ? 1 : -1)
614
+ } : {
615
+ x: fromPoint.x,
616
+ y: envelopingObstacle[waypointUseMax ? 'yMax' : 'yMin'] +
617
+ (waypointUseMax ? 1 : -1)
618
+ };
619
+
620
+ // If we crashed into another obstacle doing this, we put the
621
+ // waypoint between them instead
622
+ secondEnvelopingObstacle = findObstacleFromPoint(
623
+ chartObstacles, envelopWaypoint
624
+ );
625
+ if (secondEnvelopingObstacle > -1) {
626
+ secondEnvelopingObstacle = chartObstacles[
627
+ secondEnvelopingObstacle
628
+ ];
629
+
630
+ // Cut obstacle to hard bounds
631
+ limitObstacleToBounds(
632
+ secondEnvelopingObstacle,
633
+ options.hardBounds
634
+ );
635
+
636
+ // Modify waypoint to lay between obstacles
637
+ envelopWaypoint[dir] = waypointUseMax ? max(
638
+ envelopingObstacle[dir + 'Max'] - obstacleMargin + 1,
639
+ (
640
+ secondEnvelopingObstacle[dir + 'Min'] +
641
+ envelopingObstacle[dir + 'Max']
642
+ ) / 2
643
+ ) :
644
+ min((
645
+ envelopingObstacle[dir + 'Min'] + obstacleMargin - 1
646
+ ), (
647
+ (
648
+ secondEnvelopingObstacle[dir + 'Max'] +
649
+ envelopingObstacle[dir + 'Min']
650
+ ) / 2
651
+ ));
652
+
653
+ // We are not going anywhere. If this happens for the first
654
+ // time, do nothing. Otherwise, try to go to the extreme of
655
+ // the obstacle pair in the current direction.
656
+ if (fromPoint.x === envelopWaypoint.x &&
657
+ fromPoint.y === envelopWaypoint.y) {
658
+ if (forceObstacleBreak) {
659
+ envelopWaypoint[dir] = waypointUseMax ?
660
+ max(
661
+ envelopingObstacle[dir + 'Max'],
662
+ secondEnvelopingObstacle[dir + 'Max']
663
+ ) + 1 :
664
+ min(
665
+ envelopingObstacle[dir + 'Min'],
666
+ secondEnvelopingObstacle[dir + 'Min']
667
+ ) - 1;
668
+ }
669
+ // Toggle on if off, and the opposite
670
+ forceObstacleBreak = !forceObstacleBreak;
671
+ } else {
672
+ // This point is not identical to previous.
673
+ // Clear break trigger.
674
+ forceObstacleBreak = false;
675
+ }
676
+ }
677
+
678
+ segments = [{
679
+ start: fromPoint,
680
+ end: envelopWaypoint
681
+ }];
682
+
683
+ } else { // If not enveloping, use standard pivot calculation
684
+
685
+ pivot = pivotPoint(fromPoint, {
686
+ x: dirIsX ? toPoint.x : fromPoint.x,
687
+ y: dirIsX ? fromPoint.y : toPoint.y
688
+ }, dirIsX);
689
+
690
+ segments = [{
691
+ start: fromPoint,
692
+ end: {
693
+ x: pivot.x,
694
+ y: pivot.y
695
+ }
696
+ }];
697
+
698
+ // Pivot before goal, use a waypoint to dodge obstacle
699
+ if (pivot[dirIsX ? 'x' : 'y'] !== toPoint[dirIsX ? 'x' : 'y']) {
700
+ // Find direction of waypoint
701
+ waypointUseMax = getDodgeDirection(
702
+ pivot.obstacle, pivot, toPoint, !dirIsX, bounds
703
+ );
704
+
705
+ // Cut waypoint to hard bounds
706
+ limitObstacleToBounds(pivot.obstacle, options.hardBounds);
707
+
708
+ waypoint = {
709
+ x: dirIsX ?
710
+ pivot.x :
711
+ pivot.obstacle[waypointUseMax ? 'xMax' : 'xMin'] +
712
+ (waypointUseMax ? 1 : -1),
713
+ y: dirIsX ?
714
+ pivot.obstacle[waypointUseMax ? 'yMax' : 'yMin'] +
715
+ (waypointUseMax ? 1 : -1) :
716
+ pivot.y
717
+ };
718
+
719
+ // We're changing direction here, store that to make sure we
720
+ // also change direction when adding the last segment array
721
+ // after handling waypoint.
722
+ dirIsX = !dirIsX;
723
+
724
+ segments = segments.concat(clearPathTo({
725
+ x: pivot.x,
726
+ y: pivot.y
727
+ }, waypoint, dirIsX));
728
+ }
729
+ }
730
+
731
+ // Get segments for the other direction too
732
+ // Recursion is our friend
733
+ segments = segments.concat(clearPathTo(
734
+ segments[segments.length - 1].end, toPoint, !dirIsX
735
+ ));
736
+
737
+ return segments;
738
+ }
739
+
740
+ // Extract point to outside of obstacle in whichever direction is
741
+ // closest. Returns new point outside obstacle.
742
+ function extractFromObstacle(obstacle, point, goalPoint) {
743
+ var dirIsX = min(obstacle.xMax - point.x, point.x - obstacle.xMin) <
744
+ min(obstacle.yMax - point.y, point.y - obstacle.yMin),
745
+ bounds = {
746
+ soft: options.hardBounds,
747
+ hard: options.hardBounds
748
+ },
749
+ useMax = getDodgeDirection(
750
+ obstacle, point, goalPoint, dirIsX, bounds
751
+ );
752
+
753
+ return dirIsX ? {
754
+ y: point.y,
755
+ x: obstacle[useMax ? 'xMax' : 'xMin'] + (useMax ? 1 : -1)
756
+ } : {
757
+ x: point.x,
758
+ y: obstacle[useMax ? 'yMax' : 'yMin'] + (useMax ? 1 : -1)
759
+ };
760
+ }
761
+
762
+ // Cut the obstacle array to soft bounds for optimization in large
763
+ // datasets.
764
+ chartObstacles =
765
+ chartObstacles.slice(startObstacleIx, endObstacleIx + 1);
766
+
767
+ // If an obstacle envelops the end point, move it out of there and add
768
+ // a little segment to where it was.
769
+ if ((endObstacleIx = findObstacleFromPoint(chartObstacles, end)) > -1) {
770
+ extractedEndPoint = extractFromObstacle(
771
+ chartObstacles[endObstacleIx],
772
+ end,
773
+ start
774
+ );
775
+ endSegments.push({
776
+ end: end,
777
+ start: extractedEndPoint
778
+ });
779
+ end = extractedEndPoint;
780
+ }
781
+ // If it's still inside one or more obstacles, get out of there by
782
+ // force-moving towards the start point.
783
+ while (
784
+ (endObstacleIx = findObstacleFromPoint(chartObstacles, end)) > -1
785
+ ) {
786
+ useMax = end[dir] - start[dir] < 0;
787
+ extractedEndPoint = {
788
+ x: end.x,
789
+ y: end.y
790
+ };
791
+ extractedEndPoint[dir] = chartObstacles[endObstacleIx][
792
+ useMax ? dir + 'Max' : dir + 'Min'
793
+ ] + (useMax ? 1 : -1);
794
+ endSegments.push({
795
+ end: end,
796
+ start: extractedEndPoint
797
+ });
798
+ end = extractedEndPoint;
799
+ }
800
+
801
+ // Find the path
802
+ segments = clearPathTo(start, end, dirIsX);
803
+
804
+ // Add the end-point segments
805
+ segments = segments.concat(endSegments.reverse());
806
+
807
+ return {
808
+ path: pathFromSegments(segments),
809
+ obstacles: segments
810
+ };
811
+ }, {
812
+ requiresObstacles: true
813
+ })
814
+ };
815
+
816
+ export default algorithms;