@devexperts/dxcharts-lite 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +4 -4
  2. package/dist/chart/animation/canvas-animation.d.ts +1 -1
  3. package/dist/chart/animation/canvas-animation.js +135 -2
  4. package/dist/chart/animation/types/animation.d.ts +1 -1
  5. package/dist/chart/animation/types/animation.js +44 -2
  6. package/dist/chart/animation/types/color-alpha-animation.d.ts +2 -2
  7. package/dist/chart/animation/types/color-alpha-animation.js +61 -2
  8. package/dist/chart/animation/types/color-transition-animation.d.ts +2 -2
  9. package/dist/chart/animation/types/color-transition-animation.js +87 -2
  10. package/dist/chart/animation/types/viewport-movement-animation.d.ts +1 -1
  11. package/dist/chart/animation/types/viewport-movement-animation.js +64 -2
  12. package/dist/chart/animation/viewport-model-animation.d.ts +1 -1
  13. package/dist/chart/animation/viewport-model-animation.js +21 -2
  14. package/dist/chart/bootstrap.d.ts +52 -49
  15. package/dist/chart/bootstrap.js +450 -2
  16. package/dist/chart/canvas/canvas-bounds-container.d.ts +1 -6
  17. package/dist/chart/canvas/canvas-bounds-container.js +816 -2
  18. package/dist/chart/canvas/canvas-chart-html.d.ts +1 -1
  19. package/dist/chart/canvas/canvas-chart-html.js +17 -19
  20. package/dist/chart/canvas/chart-elements.d.ts +2 -5
  21. package/dist/chart/canvas/chart-elements.js +23 -2
  22. package/dist/chart/canvas/cursor.handler.d.ts +1 -1
  23. package/dist/chart/canvas/cursor.handler.js +123 -2
  24. package/dist/chart/canvas/layout-creator.d.ts +1 -1
  25. package/dist/chart/canvas/layout-creator.js +35 -2
  26. package/dist/chart/canvas/y-axis-bounds.container.d.ts +3 -3
  27. package/dist/chart/canvas/y-axis-bounds.container.js +68 -2
  28. package/dist/chart/chart-container.d.ts +1 -1
  29. package/dist/chart/chart-container.js +2 -2
  30. package/dist/chart/chart.config.d.ts +5 -6
  31. package/dist/chart/chart.config.js +646 -2
  32. package/dist/chart/chart.d.ts +62 -0
  33. package/dist/chart/chart.js +106 -0
  34. package/dist/chart/components/chart/basic-scale.d.ts +3 -3
  35. package/dist/chart/components/chart/basic-scale.js +32 -2
  36. package/dist/chart/components/chart/candle-transformer.functions.d.ts +1 -1
  37. package/dist/chart/components/chart/candle-transformer.functions.js +16 -2
  38. package/dist/chart/components/chart/candle-width-calculator.functions.d.ts +1 -1
  39. package/dist/chart/components/chart/candle-width-calculator.functions.js +3 -2
  40. package/dist/chart/components/chart/candle.functions.d.ts +1 -1
  41. package/dist/chart/components/chart/candle.functions.js +45 -2
  42. package/dist/chart/components/chart/chart-area-pan.handler.d.ts +4 -4
  43. package/dist/chart/components/chart/chart-area-pan.handler.js +198 -2
  44. package/dist/chart/components/chart/chart-base.model.d.ts +1 -1
  45. package/dist/chart/components/chart/chart-base.model.js +67 -2
  46. package/dist/chart/components/chart/chart.component.d.ts +8 -4
  47. package/dist/chart/components/chart/chart.component.js +409 -2
  48. package/dist/chart/components/chart/chart.model.d.ts +5 -12
  49. package/dist/chart/components/chart/chart.model.js +955 -2
  50. package/dist/chart/components/chart/data-series.high-low-provider.d.ts +1 -1
  51. package/dist/chart/components/chart/data-series.high-low-provider.js +35 -2
  52. package/dist/chart/components/chart/fake-candles.d.ts +1 -1
  53. package/dist/chart/components/chart/fake-candles.js +98 -2
  54. package/dist/chart/components/chart/price.formatter.d.ts +1 -1
  55. package/dist/chart/components/chart/price.formatter.js +36 -2
  56. package/dist/chart/components/chart/secondary-chart-colors-pool.d.ts +1 -1
  57. package/dist/chart/components/chart/secondary-chart-colors-pool.js +69 -2
  58. package/dist/chart/components/cross_tool/cross-tool.component.d.ts +1 -1
  59. package/dist/chart/components/cross_tool/cross-tool.component.js +86 -2
  60. package/dist/chart/components/cross_tool/cross-tool.drawer.d.ts +1 -1
  61. package/dist/chart/components/cross_tool/cross-tool.drawer.js +33 -2
  62. package/dist/chart/components/cross_tool/cross-tool.model.d.ts +1 -1
  63. package/dist/chart/components/cross_tool/cross-tool.model.js +108 -2
  64. package/dist/chart/components/cross_tool/types/cross-and-labels.drawer.d.ts +1 -1
  65. package/dist/chart/components/cross_tool/types/cross-and-labels.drawer.js +138 -2
  66. package/dist/chart/components/cross_tool/types/none.drawer.d.ts +1 -1
  67. package/dist/chart/components/cross_tool/types/none.drawer.js +4 -2
  68. package/dist/chart/components/dran-n-drop_helper/drag-n-drop-x.component.d.ts +1 -1
  69. package/dist/chart/components/dran-n-drop_helper/drag-n-drop-x.component.js +29 -2
  70. package/dist/chart/components/dran-n-drop_helper/drag-n-drop-y.component.d.ts +1 -1
  71. package/dist/chart/components/dran-n-drop_helper/drag-n-drop-y.component.js +25 -2
  72. package/dist/chart/components/dran-n-drop_helper/drag-n-drop.component.d.ts +1 -1
  73. package/dist/chart/components/dran-n-drop_helper/drag-n-drop.component.js +54 -2
  74. package/dist/chart/components/dynamic-objects/dynamic-objects.component.d.ts +13 -0
  75. package/dist/chart/components/dynamic-objects/dynamic-objects.component.js +20 -0
  76. package/dist/chart/components/dynamic-objects/dynamic-objects.drawer.d.ts +18 -0
  77. package/dist/chart/components/dynamic-objects/dynamic-objects.drawer.js +23 -0
  78. package/dist/chart/components/dynamic-objects/dynamic-objects.model.d.ts +63 -0
  79. package/dist/chart/components/dynamic-objects/dynamic-objects.model.js +136 -0
  80. package/dist/chart/components/events/events-hit-test.drawer.d.ts +1 -1
  81. package/dist/chart/components/events/events-hit-test.drawer.js +64 -2
  82. package/dist/chart/components/events/events.component.d.ts +1 -1
  83. package/dist/chart/components/events/events.component.js +62 -2
  84. package/dist/chart/components/events/events.drawer.d.ts +1 -1
  85. package/dist/chart/components/events/events.drawer.js +196 -2
  86. package/dist/chart/components/events/events.model.d.ts +1 -1
  87. package/dist/chart/components/events/events.model.js +70 -2
  88. package/dist/chart/components/grid/grid.component.d.ts +3 -3
  89. package/dist/chart/components/grid/grid.component.js +32 -2
  90. package/dist/chart/components/grid/grid.drawer.d.ts +5 -4
  91. package/dist/chart/components/grid/grid.drawer.js +107 -2
  92. package/dist/chart/components/high_low/high-low.component.d.ts +1 -1
  93. package/dist/chart/components/high_low/high-low.component.js +13 -2
  94. package/dist/chart/components/high_low/high-low.drawer.d.ts +1 -1
  95. package/dist/chart/components/high_low/high-low.drawer.js +127 -2
  96. package/dist/chart/components/highlights/highlights.component.d.ts +1 -1
  97. package/dist/chart/components/highlights/highlights.component.js +47 -2
  98. package/dist/chart/components/highlights/highlights.drawer.d.ts +1 -1
  99. package/dist/chart/components/highlights/highlights.drawer.js +155 -2
  100. package/dist/chart/components/highlights/highlights.model.d.ts +1 -1
  101. package/dist/chart/components/highlights/highlights.model.js +76 -2
  102. package/dist/chart/components/labels_generator/numeric-axis-labels.generator.d.ts +2 -2
  103. package/dist/chart/components/labels_generator/numeric-axis-labels.generator.js +200 -2
  104. package/dist/chart/components/navigation_map/navigation-map-move.handler.d.ts +3 -3
  105. package/dist/chart/components/navigation_map/navigation-map-move.handler.js +109 -2
  106. package/dist/chart/components/navigation_map/navigation-map.component.d.ts +1 -1
  107. package/dist/chart/components/navigation_map/navigation-map.component.js +113 -2
  108. package/dist/chart/components/navigation_map/navigation-map.drawer.d.ts +1 -1
  109. package/dist/chart/components/navigation_map/navigation-map.drawer.js +245 -2
  110. package/dist/chart/components/navigation_map/navigation-map.model.d.ts +1 -1
  111. package/dist/chart/components/navigation_map/navigation-map.model.js +34 -3
  112. package/dist/chart/components/pan/chart-pan.component.d.ts +3 -3
  113. package/dist/chart/components/pan/chart-pan.component.js +52 -2
  114. package/dist/chart/components/pane/extent/y-extent-component.d.ts +13 -19
  115. package/dist/chart/components/pane/extent/y-extent-component.js +121 -2
  116. package/dist/chart/components/pane/pane-hit-test.controller.d.ts +1 -1
  117. package/dist/chart/components/pane/pane-hit-test.controller.js +56 -2
  118. package/dist/chart/components/pane/pane-manager.component.d.ts +11 -6
  119. package/dist/chart/components/pane/pane-manager.component.js +149 -2
  120. package/dist/chart/components/pane/pane.component.d.ts +18 -34
  121. package/dist/chart/components/pane/pane.component.js +279 -2
  122. package/dist/chart/components/resizer/bar-resizer.component.d.ts +1 -1
  123. package/dist/chart/components/resizer/bar-resizer.component.js +140 -2
  124. package/dist/chart/components/resizer/bar-resizer.drawer.d.ts +1 -1
  125. package/dist/chart/components/resizer/bar-resizer.drawer.js +47 -2
  126. package/dist/chart/components/snapshot/snapshot.component.d.ts +1 -1
  127. package/dist/chart/components/snapshot/snapshot.component.js +49 -2
  128. package/dist/chart/components/volumes/separate-volumes.component.d.ts +7 -11
  129. package/dist/chart/components/volumes/separate-volumes.component.js +64 -2
  130. package/dist/chart/components/volumes/volume-color-resolvers.functions.d.ts +1 -1
  131. package/dist/chart/components/volumes/volume-color-resolvers.functions.js +19 -2
  132. package/dist/chart/components/volumes/volumes.component.d.ts +9 -9
  133. package/dist/chart/components/volumes/volumes.component.js +95 -2
  134. package/dist/chart/components/volumes/volumes.drawer.d.ts +6 -13
  135. package/dist/chart/components/volumes/volumes.drawer.js +141 -2
  136. package/dist/chart/components/volumes/volumes.formatter.d.ts +1 -1
  137. package/dist/chart/components/volumes/volumes.formatter.js +32 -2
  138. package/dist/chart/components/volumes/volumes.model.d.ts +3 -3
  139. package/dist/chart/components/volumes/volumes.model.js +44 -2
  140. package/dist/chart/components/watermark/water-mark.component.d.ts +1 -1
  141. package/dist/chart/components/watermark/water-mark.component.js +104 -2
  142. package/dist/chart/components/watermark/water-mark.drawer.d.ts +1 -1
  143. package/dist/chart/components/watermark/water-mark.drawer.js +188 -2
  144. package/dist/chart/components/x_axis/numeric-x-axis-labels.generator.d.ts +1 -1
  145. package/dist/chart/components/x_axis/numeric-x-axis-labels.generator.js +28 -2
  146. package/dist/chart/components/x_axis/time/parser/time-formats-matchers.functions.d.ts +1 -1
  147. package/dist/chart/components/x_axis/time/parser/time-formats-matchers.functions.js +188 -2
  148. package/dist/chart/components/x_axis/time/parser/time-formats-parser.functions.d.ts +1 -1
  149. package/dist/chart/components/x_axis/time/parser/time-formats-parser.functions.js +77 -2
  150. package/dist/chart/components/x_axis/time/parser/time-formats-validators.functions.d.ts +1 -1
  151. package/dist/chart/components/x_axis/time/parser/time-formats-validators.functions.js +80 -2
  152. package/dist/chart/components/x_axis/time/parser/time-formats.model.d.ts +1 -1
  153. package/dist/chart/components/x_axis/time/parser/time-formats.model.js +15 -2
  154. package/dist/chart/components/x_axis/time/x-axis-weights.functions.d.ts +2 -2
  155. package/dist/chart/components/x_axis/time/x-axis-weights.functions.js +144 -2
  156. package/dist/chart/components/x_axis/time/x-axis-weights.generator.d.ts +1 -1
  157. package/dist/chart/components/x_axis/time/x-axis-weights.generator.js +74 -2
  158. package/dist/chart/components/x_axis/x-axis-draw.functions.d.ts +1 -1
  159. package/dist/chart/components/x_axis/x-axis-draw.functions.js +50 -2
  160. package/dist/chart/components/x_axis/x-axis-labels.drawer.d.ts +1 -1
  161. package/dist/chart/components/x_axis/x-axis-labels.drawer.js +71 -2
  162. package/dist/chart/components/x_axis/x-axis-labels.generator.d.ts +3 -3
  163. package/dist/chart/components/x_axis/x-axis-labels.generator.js +333 -2
  164. package/dist/chart/components/x_axis/x-axis-labels.model.d.ts +1 -1
  165. package/dist/chart/components/x_axis/x-axis-labels.model.js +36 -2
  166. package/dist/chart/components/x_axis/x-axis-scale.handler.d.ts +3 -3
  167. package/dist/chart/components/x_axis/x-axis-scale.handler.js +61 -2
  168. package/dist/chart/components/x_axis/x-axis-time-labels.drawer.d.ts +1 -1
  169. package/dist/chart/components/x_axis/x-axis-time-labels.drawer.js +83 -2
  170. package/dist/chart/components/x_axis/x-axis.component.d.ts +3 -3
  171. package/dist/chart/components/x_axis/x-axis.component.js +120 -2
  172. package/dist/chart/components/y_axis/label-color.functions.d.ts +1 -1
  173. package/dist/chart/components/y_axis/label-color.functions.js +54 -2
  174. package/dist/chart/components/y_axis/numeric-y-axis-labels.generator.d.ts +5 -5
  175. package/dist/chart/components/y_axis/numeric-y-axis-labels.generator.js +34 -2
  176. package/dist/chart/components/y_axis/price_labels/data-series-y-axis-labels.provider.d.ts +4 -4
  177. package/dist/chart/components/y_axis/price_labels/data-series-y-axis-labels.provider.js +68 -2
  178. package/dist/chart/components/y_axis/price_labels/labels-positions-calculator.d.ts +1 -1
  179. package/dist/chart/components/y_axis/price_labels/labels-positions-calculator.js +57 -2
  180. package/dist/chart/components/y_axis/price_labels/last-candle-labels.provider.d.ts +1 -1
  181. package/dist/chart/components/y_axis/price_labels/last-candle-labels.provider.js +96 -2
  182. package/dist/chart/components/y_axis/price_labels/price-label.drawer.d.ts +3 -3
  183. package/dist/chart/components/y_axis/price_labels/price-label.drawer.js +120 -2
  184. package/dist/chart/components/y_axis/price_labels/y-axis-labels.model.d.ts +10 -9
  185. package/dist/chart/components/y_axis/price_labels/y-axis-labels.model.js +202 -2
  186. package/dist/chart/components/y_axis/price_labels/y-axis-price-labels.drawer.d.ts +7 -8
  187. package/dist/chart/components/y_axis/price_labels/y-axis-price-labels.drawer.js +59 -2
  188. package/dist/chart/components/y_axis/y-axis-base-labels.model.d.ts +7 -5
  189. package/dist/chart/components/y_axis/y-axis-base-labels.model.js +48 -2
  190. package/dist/chart/components/y_axis/y-axis-labels.drawer.d.ts +5 -5
  191. package/dist/chart/components/y_axis/y-axis-labels.drawer.js +162 -2
  192. package/dist/chart/components/y_axis/y-axis-scale.handler.d.ts +3 -3
  193. package/dist/chart/components/y_axis/y-axis-scale.handler.js +73 -2
  194. package/dist/chart/components/y_axis/y-axis.component.d.ts +33 -42
  195. package/dist/chart/components/y_axis/y-axis.component.js +221 -2
  196. package/dist/chart/components/y_axis/y-axis.drawer.d.ts +10 -13
  197. package/dist/chart/components/y_axis/y-axis.drawer.js +97 -2
  198. package/dist/chart/components/y_axis/y-axis.model.d.ts +10 -18
  199. package/dist/chart/components/y_axis/y-axis.model.js +34 -2
  200. package/dist/chart/drawers/chart-background.drawer.d.ts +1 -1
  201. package/dist/chart/drawers/chart-background.drawer.js +70 -2
  202. package/dist/chart/drawers/chart-type-drawers/area.drawer.d.ts +1 -1
  203. package/dist/chart/drawers/chart-type-drawers/area.drawer.js +70 -2
  204. package/dist/chart/drawers/chart-type-drawers/bar.drawer.d.ts +1 -1
  205. package/dist/chart/drawers/chart-type-drawers/bar.drawer.js +58 -2
  206. package/dist/chart/drawers/chart-type-drawers/baseline.drawer.d.ts +1 -1
  207. package/dist/chart/drawers/chart-type-drawers/baseline.drawer.js +85 -2
  208. package/dist/chart/drawers/chart-type-drawers/candle.drawer.d.ts +1 -1
  209. package/dist/chart/drawers/chart-type-drawers/candle.drawer.js +163 -2
  210. package/dist/chart/drawers/chart-type-drawers/histogram.drawer.d.ts +1 -1
  211. package/dist/chart/drawers/chart-type-drawers/histogram.drawer.js +58 -2
  212. package/dist/chart/drawers/chart-type-drawers/line.drawer.d.ts +1 -1
  213. package/dist/chart/drawers/chart-type-drawers/line.drawer.js +39 -2
  214. package/dist/chart/drawers/chart-type-drawers/scatter-plot.drawer.d.ts +1 -1
  215. package/dist/chart/drawers/chart-type-drawers/scatter-plot.drawer.js +20 -2
  216. package/dist/chart/drawers/clear-canvas.drawer.d.ts +1 -1
  217. package/dist/chart/drawers/clear-canvas.drawer.js +15 -2
  218. package/dist/chart/drawers/composite.drawer.d.ts +1 -1
  219. package/dist/chart/drawers/composite.drawer.js +68 -2
  220. package/dist/chart/drawers/data-series-drawers/candle-series-wrapper.d.ts +1 -1
  221. package/dist/chart/drawers/data-series-drawers/candle-series-wrapper.js +51 -2
  222. package/dist/chart/drawers/data-series-drawers/color-candle.drawer.d.ts +1 -1
  223. package/dist/chart/drawers/data-series-drawers/color-candle.drawer.js +36 -2
  224. package/dist/chart/drawers/data-series-drawers/data-series-drawers.utils.d.ts +1 -1
  225. package/dist/chart/drawers/data-series-drawers/data-series-drawers.utils.js +17 -2
  226. package/dist/chart/drawers/data-series-drawers/difference-cloud.drawer.d.ts +1 -1
  227. package/dist/chart/drawers/data-series-drawers/difference-cloud.drawer.js +107 -2
  228. package/dist/chart/drawers/data-series-drawers/histogram.drawer.d.ts +1 -1
  229. package/dist/chart/drawers/data-series-drawers/histogram.drawer.js +24 -2
  230. package/dist/chart/drawers/data-series-drawers/linear.drawer.d.ts +1 -1
  231. package/dist/chart/drawers/data-series-drawers/linear.drawer.js +20 -2
  232. package/dist/chart/drawers/data-series-drawers/points.drawer.d.ts +1 -1
  233. package/dist/chart/drawers/data-series-drawers/points.drawer.js +20 -2
  234. package/dist/chart/drawers/data-series-drawers/rectangular-tool.drawer.d.ts +1 -1
  235. package/dist/chart/drawers/data-series-drawers/rectangular-tool.drawer.js +8 -2
  236. package/dist/chart/drawers/data-series-drawers/text.drawer.d.ts +1 -1
  237. package/dist/chart/drawers/data-series-drawers/text.drawer.js +26 -2
  238. package/dist/chart/drawers/data-series-drawers/trend-histogram.drawer.d.ts +1 -1
  239. package/dist/chart/drawers/data-series-drawers/trend-histogram.drawer.js +36 -2
  240. package/dist/chart/drawers/data-series-drawers/triangle.drawer.d.ts +1 -1
  241. package/dist/chart/drawers/data-series-drawers/triangle.drawer.js +23 -2
  242. package/dist/chart/drawers/data-series.drawer.d.ts +6 -8
  243. package/dist/chart/drawers/data-series.drawer.js +57 -2
  244. package/dist/chart/drawers/drawing-manager.d.ts +2 -2
  245. package/dist/chart/drawers/drawing-manager.js +178 -2
  246. package/dist/chart/drawers/ht-data-series.drawer.d.ts +1 -1
  247. package/dist/chart/drawers/ht-data-series.drawer.js +38 -2
  248. package/dist/chart/events/event-bus.d.ts +1 -1
  249. package/dist/chart/events/event-bus.js +74 -2
  250. package/dist/chart/events/events.d.ts +1 -1
  251. package/dist/chart/events/events.js +4 -2
  252. package/dist/chart/inputhandlers/candle-tap.handler.d.ts +1 -1
  253. package/dist/chart/inputhandlers/candle-tap.handler.js +47 -2
  254. package/dist/chart/inputhandlers/chart-resize.handler.d.ts +1 -1
  255. package/dist/chart/inputhandlers/chart-resize.handler.js +99 -2
  256. package/dist/chart/inputhandlers/cross-event-producer.component.d.ts +1 -1
  257. package/dist/chart/inputhandlers/cross-event-producer.component.js +68 -2
  258. package/dist/chart/inputhandlers/hover-producer.component.d.ts +3 -3
  259. package/dist/chart/inputhandlers/hover-producer.component.js +229 -2
  260. package/dist/chart/inputhandlers/main-canvas-touch.handler.d.ts +3 -3
  261. package/dist/chart/inputhandlers/main-canvas-touch.handler.js +81 -2
  262. package/dist/chart/inputlisteners/canvas-input-listener.component.d.ts +1 -1
  263. package/dist/chart/inputlisteners/canvas-input-listener.component.js +630 -2
  264. package/dist/chart/model/baseline.model.d.ts +1 -1
  265. package/dist/chart/model/baseline.model.js +89 -2
  266. package/dist/chart/model/bounds.model.d.ts +1 -1
  267. package/dist/chart/model/bounds.model.js +2 -2
  268. package/dist/chart/model/candle-hover.d.ts +1 -1
  269. package/dist/chart/model/candle-hover.js +71 -2
  270. package/dist/chart/model/candle-series-high-low.provider.d.ts +1 -1
  271. package/dist/chart/model/candle-series-high-low.provider.js +46 -2
  272. package/dist/chart/model/candle-series.model.d.ts +4 -4
  273. package/dist/chart/model/candle-series.model.js +246 -2
  274. package/dist/chart/model/candle.model.d.ts +1 -1
  275. package/dist/chart/model/candle.model.js +70 -2
  276. package/dist/chart/model/canvas.model.d.ts +1 -1
  277. package/dist/chart/model/canvas.model.js +229 -2
  278. package/dist/chart/model/chart-base-element.d.ts +1 -1
  279. package/dist/chart/model/chart-base-element.js +130 -2
  280. package/dist/chart/model/compare-series-hover.d.ts +1 -1
  281. package/dist/chart/model/compare-series-hover.js +26 -2
  282. package/dist/chart/model/data-series-view.d.ts +6 -6
  283. package/dist/chart/model/data-series-view.js +112 -2
  284. package/dist/chart/model/data-series.config.d.ts +1 -1
  285. package/dist/chart/model/data-series.config.js +15 -2
  286. package/dist/chart/model/data-series.model.d.ts +5 -5
  287. package/dist/chart/model/data-series.model.js +282 -2
  288. package/dist/chart/model/date-time.formatter.d.ts +1 -1
  289. package/dist/chart/model/date-time.formatter.js +152 -2
  290. package/dist/chart/model/hit-test-canvas.model.d.ts +2 -2
  291. package/dist/chart/model/hit-test-canvas.model.js +257 -2
  292. package/dist/chart/model/main-candle-series.model.d.ts +2 -2
  293. package/dist/chart/model/main-candle-series.model.js +30 -2
  294. package/dist/chart/model/scale.model.d.ts +3 -2
  295. package/dist/chart/model/scale.model.js +317 -2
  296. package/dist/chart/model/scaling/auto-scale.model.d.ts +1 -1
  297. package/dist/chart/model/scaling/auto-scale.model.js +98 -2
  298. package/dist/chart/model/scaling/constrait.functions.d.ts +1 -1
  299. package/dist/chart/model/scaling/constrait.functions.js +62 -2
  300. package/dist/chart/model/scaling/lock-ratio.model.d.ts +1 -1
  301. package/dist/chart/model/scaling/lock-ratio.model.js +18 -2
  302. package/dist/chart/model/scaling/move-chart.functions.d.ts +1 -1
  303. package/dist/chart/model/scaling/move-chart.functions.js +23 -2
  304. package/dist/chart/model/scaling/viewport.model.d.ts +3 -3
  305. package/dist/chart/model/scaling/viewport.model.js +280 -2
  306. package/dist/chart/model/scaling/x-zooming.functions.d.ts +1 -1
  307. package/dist/chart/model/scaling/x-zooming.functions.js +36 -2
  308. package/dist/chart/model/time-zone.model.d.ts +1 -1
  309. package/dist/chart/model/time-zone.model.js +110 -2
  310. package/dist/chart/model/visual-candle.d.ts +1 -1
  311. package/dist/chart/model/visual-candle.js +135 -2
  312. package/dist/chart/utils/__tests__/array.utils.test.d.ts +1 -1
  313. package/dist/chart/utils/__tests__/array.utils.test.js +136 -2
  314. package/dist/chart/utils/{perfomance/debounce.utils.js → __tests__/math.utils.test.d.ts} +2 -2
  315. package/dist/chart/utils/__tests__/math.utils.test.js +19 -0
  316. package/dist/chart/utils/__tests__/object.utils.test.d.ts +1 -1
  317. package/dist/chart/utils/__tests__/object.utils.test.js +12 -2
  318. package/dist/chart/utils/__tests__/priceIncrementsUtils.test.d.ts +1 -1
  319. package/dist/chart/utils/__tests__/priceIncrementsUtils.test.js +30 -2
  320. package/dist/chart/utils/array.utils.d.ts +2 -2
  321. package/dist/chart/utils/array.utils.js +270 -2
  322. package/dist/chart/utils/auto-period-detector.utils.d.ts +1 -1
  323. package/dist/chart/utils/auto-period-detector.utils.js +40 -2
  324. package/dist/chart/utils/candles-generator-ts.utils.d.ts +1 -1
  325. package/dist/chart/utils/candles-generator-ts.utils.js +21 -2
  326. package/dist/chart/utils/candles-generator.utils.d.ts +1 -1
  327. package/dist/chart/utils/candles-generator.utils.js +162 -2
  328. package/dist/chart/utils/candles.utils.d.ts +1 -1
  329. package/dist/chart/utils/candles.utils.js +43 -2
  330. package/dist/chart/utils/canvas/canvas-drawing-functions.utils.d.ts +1 -1
  331. package/dist/chart/utils/canvas/canvas-drawing-functions.utils.js +145 -2
  332. package/dist/chart/utils/canvas/canvas-font-measure-tool.utils.d.ts +1 -1
  333. package/dist/chart/utils/canvas/canvas-font-measure-tool.utils.js +52 -2
  334. package/dist/chart/utils/canvas/canvas-text-functions.utils.d.ts +1 -1
  335. package/dist/chart/utils/canvas/canvas-text-functions.utils.js +157 -2
  336. package/dist/chart/utils/color.utils.d.ts +1 -1
  337. package/dist/chart/utils/color.utils.js +32 -2
  338. package/dist/chart/utils/device/browser.utils.d.ts +1 -1
  339. package/dist/chart/utils/device/browser.utils.js +11 -2
  340. package/dist/chart/utils/device/device-detector.utils.d.ts +1 -1
  341. package/dist/chart/utils/device/device-detector.utils.js +25 -2
  342. package/dist/chart/utils/device/device-pixel-ratio.utils.d.ts +1 -1
  343. package/dist/chart/utils/device/device-pixel-ratio.utils.js +22 -2
  344. package/dist/chart/utils/device/touchpad.utils.d.ts +1 -1
  345. package/dist/chart/utils/device/touchpad.utils.js +92 -2
  346. package/dist/chart/utils/dom.utils.d.ts +1 -1
  347. package/dist/chart/utils/dom.utils.js +16 -2
  348. package/dist/chart/utils/function.utils.d.ts +1 -1
  349. package/dist/chart/utils/function.utils.js +17 -2
  350. package/dist/chart/utils/linkedList.utils.d.ts +28 -0
  351. package/dist/chart/utils/linkedList.utils.js +138 -0
  352. package/dist/chart/utils/math.utils.d.ts +1 -1
  353. package/dist/chart/utils/math.utils.js +116 -2
  354. package/dist/chart/utils/merge.utils.d.ts +1 -1
  355. package/dist/chart/utils/merge.utils.js +57 -2
  356. package/dist/chart/utils/object.utils.d.ts +1 -1
  357. package/dist/chart/utils/object.utils.js +44 -2
  358. package/dist/chart/utils/{perfomance → performance}/animation-frame-cache.utils.d.ts +1 -1
  359. package/dist/chart/utils/performance/animation-frame-cache.utils.js +77 -0
  360. package/dist/chart/utils/{perfomance → performance}/debounce.utils.d.ts +1 -1
  361. package/dist/chart/utils/performance/debounce.utils.js +12 -0
  362. package/dist/chart/utils/{perfomance → performance}/memoize.utils.d.ts +1 -1
  363. package/dist/chart/utils/performance/memoize.utils.js +74 -0
  364. package/dist/chart/utils/{perfomance → performance}/request-animation-frame-throttle.utils.d.ts +1 -1
  365. package/dist/chart/utils/performance/request-animation-frame-throttle.utils.js +43 -0
  366. package/dist/chart/utils/{perfomance → performance}/throttle.utils.d.ts +1 -1
  367. package/dist/chart/utils/performance/throttle.utils.js +26 -0
  368. package/dist/chart/utils/price-increments.utils.d.ts +2 -1
  369. package/dist/chart/utils/price-increments.utils.js +128 -2
  370. package/dist/chart/utils/uuid.utils.d.ts +1 -1
  371. package/dist/chart/utils/uuid.utils.js +5 -2
  372. package/dist/dxchart.min.js +10 -13
  373. package/dist/index.d.ts +4 -4
  374. package/dist/index.js +21 -2
  375. package/package.json +4 -4
  376. package/dist/chart/utils/perfomance/animation-frame-cache.utils.js +0 -6
  377. package/dist/chart/utils/perfomance/memoize.utils.js +0 -6
  378. package/dist/chart/utils/perfomance/request-animation-frame-throttle.utils.js +0 -6
  379. package/dist/chart/utils/perfomance/throttle.utils.js +0 -6
@@ -1,6 +1,233 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
6
- export const MIN_SUPPORTED_CANVAS_SIZE={width:20,height:20};export class CanvasModel{constructor(t,e,i,n,r,a={}){var s;this.eventBus=t,this.canvas=e,this.drawingManager=i,this.resizer=r,this.width=0,this.height=0,this.prevHeight=0,this.prevWidth=0,this.type=l,n.push(this),this.parent=p(e);const d=e.getContext("2d",a);if(d===null)throw new Error("Couldn't get 2d context????");this.context=d,this._canvasId=(s=e.getAttribute("data-element"))!==null&&s!==void 0?s:"",this.updateCanvasWidthHeight(e,this.getChartResizerElement().getBoundingClientRect())}updateDPR(t){const{width:e,height:i}=t,n=window.devicePixelRatio;this.canvas.style.height=i+"px",this.canvas.style.width=e+"px",this.canvas.width=e*n,this.canvas.height=i*n,this.width=e,this.height=i,this.ctx.scale(n,n)}get canvasId(){return this._canvasId}get ctx(){return this.context}clear(){this.context.clearRect(0,0,this.width,this.height)}isLinked(){var t,e;return(e=(t=this.type)===null||t===void 0?void 0:t.linked)!==null&&e!==void 0?e:!1}fireDraw(){this.eventBus.fireDraw([this.canvasId])}updateCanvasWidthHeight(t,e=this.getChartResizerElement().getBoundingClientRect()){t.clientWidth!==this.width&&(t.width=t.clientWidth,this.width=t.clientWidth);const i=e.height;i!==this.height&&(t.style.height=i+"px",this.height=i,t.height=i,this.prevHeight=i)}getChartResizerElement(){var t;return(t=this.resizer)!==null&&t!==void 0?t:this.parent}isReady(){return this.width>MIN_SUPPORTED_CANVAS_SIZE.width&&this.height>MIN_SUPPORTED_CANVAS_SIZE.height}}const l={name:"candle"},o={name:"candle"},c={name:"line",linked:!0},g={name:"area",linked:!0},u={candle:l,bar:o,line:c,area:g};export function createMainCanvasModel(h,t,e,i,n,r,a){var s;const d=createCanvasModel(h,t,n,r,a,e);return d.type=(s=u[i])!==null&&s!==void 0?s:l,d}export function createCanvasModel(h,t,e,i,n,r,a){const s=new CanvasModel(h,t,i,n,r,a);return initCanvasWithConfig(s,e),s}export function initCanvasWithConfig(h,t){const e=h.canvas;t.fixedSize&&(e.width=t.fixedSize.width,e.height=t.fixedSize.height,e.style.width=t.fixedSize.width+"px",e.style.height=t.fixedSize.height+"px",h.width=t.fixedSize.width,h.height=t.fixedSize.height),e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.direction="ltr"}function p(h){let t=h;for(;t;){if(t.nodeType===1&&t.hasAttribute("data-chart-container"))return t;if(t.parentElement!==null)t=t.parentElement;else break}return t}
6
+ /**
7
+ * The minimum supported canvas size in chart-core (in pixels).
8
+ * Any size of <canvas> element below these dimensions will not be rendered (is NOT INTENDED to be rendered).
9
+ * @doc-tags chart-core,canvas
10
+ */
11
+ export const MIN_SUPPORTED_CANVAS_SIZE = {
12
+ width: 20,
13
+ height: 20,
14
+ };
15
+ export class CanvasModel {
16
+ constructor(eventBus, canvas, drawingManager, canvasModels, resizer, options = {}) {
17
+ var _a;
18
+ this.eventBus = eventBus;
19
+ this.canvas = canvas;
20
+ this.drawingManager = drawingManager;
21
+ this.resizer = resizer;
22
+ this.width = 0;
23
+ this.height = 0;
24
+ this.prevHeight = 0;
25
+ this.prevWidth = 0;
26
+ this.type = CANDLE_TYPE;
27
+ canvasModels.push(this);
28
+ this.parent = findHeightParent(canvas);
29
+ const ctx = canvas.getContext('2d', options);
30
+ if (ctx === null) {
31
+ throw new Error("Couldn't get 2d context????");
32
+ }
33
+ this.context = ctx;
34
+ this._canvasId = (_a = canvas.getAttribute('data-element')) !== null && _a !== void 0 ? _a : '';
35
+ this.updateCanvasWidthHeight(canvas, this.getChartResizerElement().getBoundingClientRect());
36
+ }
37
+ /**
38
+ * About rendering for non-integer dpi
39
+ * https://stackoverflow.com/questions/17553557/draw-crisp-lines-on-html5-canvas-with-browser-zoom
40
+ * @param bcr
41
+ */
42
+ updateDPR(bcr) {
43
+ const { width, height } = bcr;
44
+ const dpi = window.devicePixelRatio;
45
+ this.canvas.style.height = height + 'px';
46
+ this.canvas.style.width = width + 'px';
47
+ this.canvas.width = width * dpi;
48
+ this.canvas.height = height * dpi;
49
+ this.width = width;
50
+ this.height = height;
51
+ this.ctx.scale(dpi, dpi);
52
+ }
53
+ get canvasId() {
54
+ return this._canvasId;
55
+ }
56
+ get ctx() {
57
+ return this.context;
58
+ }
59
+ /**
60
+ * Clears the canvas by using the clearRect method of the canvas context.
61
+ * @function
62
+ * @name clear
63
+ * @memberof Canvas
64
+ * @returns {void}
65
+ */
66
+ clear() {
67
+ this.context.clearRect(0, 0, this.width, this.height);
68
+ }
69
+ /**
70
+ * Checks if the type is linked.
71
+ *
72
+ * @returns {boolean} Returns true if the type is linked, false otherwise.
73
+ */
74
+ isLinked() {
75
+ var _a, _b;
76
+ return (_b = (_a = this.type) === null || _a === void 0 ? void 0 : _a.linked) !== null && _b !== void 0 ? _b : false;
77
+ }
78
+ /**
79
+ * Triggers the 'fireDraw' event on the event bus with the canvas ID as the parameter.
80
+ */
81
+ fireDraw() {
82
+ this.eventBus.fireDraw([this.canvasId]);
83
+ }
84
+ /**
85
+ * Updates the width and height of the canvas element based on the client width and height of the canvas element and the height of the chart resizer element.
86
+ * @param {HTMLCanvasElement} canvas - The canvas element to update.
87
+ * @param {ClientRect | DOMRect} [bcr=this.getChartResizerElement().getBoundingClientRect()] - The bounding client rectangle of the chart resizer element.
88
+ * @returns {void}
89
+ */
90
+ updateCanvasWidthHeight(canvas, bcr = this.getChartResizerElement().getBoundingClientRect()) {
91
+ if (canvas.clientWidth !== this.width) {
92
+ canvas.width = canvas.clientWidth;
93
+ this.width = canvas.clientWidth;
94
+ }
95
+ const height = bcr.height;
96
+ if (height !== this.height) {
97
+ canvas.style.height = height + 'px';
98
+ this.height = height;
99
+ canvas.height = height;
100
+ this.prevHeight = height;
101
+ }
102
+ }
103
+ /**
104
+ * Returns the chart resizer element. If the resizer is not defined, it returns the parent element.
105
+ *
106
+ * @returns {HTMLElement} The chart resizer element.
107
+ */
108
+ getChartResizerElement() {
109
+ var _a;
110
+ return (_a = this.resizer) !== null && _a !== void 0 ? _a : this.parent;
111
+ }
112
+ /**
113
+ * Checks if the canvas is ready to be used by verifying if its width and height are greater than the minimum supported canvas size.
114
+ *
115
+ * @returns {boolean} - Returns true if the canvas is ready to be used, false otherwise.
116
+ */
117
+ isReady() {
118
+ return this.width > MIN_SUPPORTED_CANVAS_SIZE.width && this.height > MIN_SUPPORTED_CANVAS_SIZE.height;
119
+ }
120
+ }
121
+ const CANDLE_TYPE = {
122
+ name: 'candle',
123
+ };
124
+ const BAR_TYPE = {
125
+ name: 'candle',
126
+ };
127
+ const LINE_TYPE = {
128
+ name: 'line',
129
+ linked: true,
130
+ };
131
+ const AREA_TYPE = {
132
+ name: 'area',
133
+ linked: true,
134
+ };
135
+ const TYPES = {
136
+ candle: CANDLE_TYPE,
137
+ bar: BAR_TYPE,
138
+ line: LINE_TYPE,
139
+ area: AREA_TYPE,
140
+ };
141
+ /**
142
+ * Creates a new canvas model for the main chart canvas.
143
+ *
144
+ * @param {EventBus} eventBus - The event bus used to communicate between components.
145
+ * @param {HTMLCanvasElement} canvas - The canvas element to create the model for.
146
+ * @param {HTMLElement} resizer - The element used to resize the canvas.
147
+ * @param {BarType} barType - The type of bar to use for the chart.
148
+ * @param {FullChartConfig} config - The configuration object for the chart.
149
+ * @param {DrawingManager} drawingManager - The drawing manager used to draw on the canvas.
150
+ * @param {CanvasModel[]} canvasModels - An array of canvas models to add the new model to.
151
+ *
152
+ * @returns {CanvasModel} The newly created canvas model.
153
+
154
+ export function createMainCanvasModel(
155
+ eventBus,
156
+ canvas,
157
+ resizer,
158
+ barType,
159
+ config,
160
+ drawingManager,
161
+ canvasModels,
162
+ ) {
163
+ const canvasModel = createCanvasModel(eventBus, canvas, config, drawingManager, canvasModels, resizer);
164
+ // @ts-ignore
165
+ canvasModel.type = TYPES[barType] ?? CANDLE_TYPE;
166
+ return canvasModel;
167
+ }*/
168
+ export function createMainCanvasModel(eventBus, canvas, resizer, barType, config, drawingManager, canvasModels) {
169
+ var _a;
170
+ const canvasModel = createCanvasModel(eventBus, canvas, config, drawingManager, canvasModels, resizer);
171
+ // @ts-ignore
172
+ canvasModel.type = (_a = TYPES[barType]) !== null && _a !== void 0 ? _a : CANDLE_TYPE;
173
+ return canvasModel;
174
+ }
175
+ /**
176
+ * Creates a new CanvasModel instance.
177
+ *
178
+ * @param {EventBus} eventBus - The event bus to use.
179
+ * @param {HTMLCanvasElement} canvas - The canvas element to use.
180
+ * @param {FullChartConfig} config - The configuration object for the chart.
181
+ * @param {DrawingManager} drawingManager - The drawing manager to use.
182
+ * @param {CanvasModel[]} canvasModels - An array of existing canvas models.
183
+ * @param {HTMLElement} [resizer] - The element to use for resizing the canvas.
184
+ *
185
+ * @returns {CanvasModel} A new instance of the CanvasModel class.
186
+ */
187
+ export function createCanvasModel(eventBus, canvas, config, drawingManager, canvasModels, resizer, options) {
188
+ const canvasModel = new CanvasModel(eventBus, canvas, drawingManager, canvasModels, resizer, options);
189
+ initCanvasWithConfig(canvasModel, config);
190
+ return canvasModel;
191
+ }
192
+ /**
193
+ * Initializes a canvas with a given configuration.
194
+ * @param {CanvasModel} canvasModel - The canvas model to be initialized.
195
+ * @param {FullChartConfig} config - The configuration object for the canvas.
196
+ * @returns {void}
197
+
198
+ */
199
+ export function initCanvasWithConfig(canvasModel, config) {
200
+ const canvas = canvasModel.canvas;
201
+ if (config.fixedSize) {
202
+ canvas.width = config.fixedSize.width;
203
+ canvas.height = config.fixedSize.height;
204
+ canvas.style.width = config.fixedSize.width + 'px';
205
+ canvas.style.height = config.fixedSize.height + 'px';
206
+ canvasModel.width = config.fixedSize.width;
207
+ canvasModel.height = config.fixedSize.height;
208
+ }
209
+ canvas.style.position = 'absolute';
210
+ canvas.style.top = '0';
211
+ canvas.style.left = '0';
212
+ canvas.style.direction = 'ltr';
213
+ }
214
+ /**
215
+ * Gets the first parent with "data-chart-container" attribute to compute height
216
+ */
217
+ function findHeightParent(initial) {
218
+ let el = initial;
219
+ while (el) {
220
+ if (el.nodeType === 1 && el.hasAttribute('data-chart-container')) {
221
+ return el;
222
+ }
223
+ else {
224
+ if (el.parentElement !== null) {
225
+ el = el.parentElement;
226
+ }
227
+ else {
228
+ break;
229
+ }
230
+ }
231
+ }
232
+ return el;
233
+ }
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
@@ -1,6 +1,134 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
6
- export class ChartBaseElement{constructor(){this.subscriptions=[],this._state="initial",this.entities=[]}doActivate(){}doDeactivate(){this.subscriptions.forEach(t=>t()),this.subscriptions=[]}enable(){this._state!=="active"&&(this._state="deactivated",this.activate())}disable(){this._state!=="disabled"&&(this.deactivate(),this._state="disabled")}activate(){this._state!=="disabled"&&(this._state!=="active"&&(this.doActivate(),this._state="active"),this.entities.forEach(t=>t.activate()))}deactivate(){this._state!=="disabled"&&(this._state!=="deactivated"&&(this.doDeactivate(),this._state="deactivated"),this.entities.forEach(t=>t.deactivate()))}getState(){return this._state}addSubscription(t){this.subscriptions.push(t)}addRxSubscription(t){t&&this.subscriptions.push(t.unsubscribe.bind(t))}addChildEntity(t){this.entities.push(t),this._state==="active"&&t.activate()}removeChildEntity(t){this.entities=this.entities.filter(i=>i!==t)}}
6
+ /**
7
+ * Base class for chart elements. Contains lifecycle support, utility methods.
8
+ *
9
+ * Chart entity state transition: INITIAL -> ACTIVE <-> DEACTIVATED -> DISPOSED
10
+ */
11
+ export class ChartBaseElement {
12
+ constructor() {
13
+ this.subscriptions = [];
14
+ this._state = 'initial';
15
+ // substitute entities which cascade activate/deactivate
16
+ this.entities = [];
17
+ }
18
+ /**
19
+ * This method is used to activate a protected feature.
20
+ * It does not take any arguments and does not return anything.
21
+ */
22
+ doActivate() { }
23
+ /**
24
+ * This method is used to unsubscribe from all events.
25
+ * It clears the subscriptions array.
26
+ * @returns {void}
27
+ */
28
+ doDeactivate() {
29
+ // Unsubscribe from all events
30
+ this.subscriptions.forEach(unsub => unsub());
31
+ this.subscriptions = [];
32
+ }
33
+ /**
34
+ * Enables the functionality of an object.
35
+ * If the object is not currently active, it sets the state to 'deactivated' and activates it.
36
+ * @returns {void}
37
+ */
38
+ enable() {
39
+ if (this._state !== 'active') {
40
+ this._state = 'deactivated';
41
+ this.activate();
42
+ }
43
+ }
44
+ /**
45
+ * Disables the current object if it is not already disabled.
46
+ * If the object is not disabled, it will be deactivated and its state will be set to 'disabled'.
47
+ * @returns {void}
48
+ */
49
+ disable() {
50
+ if (this._state !== 'disabled') {
51
+ this.deactivate();
52
+ this._state = 'disabled';
53
+ }
54
+ }
55
+ /**
56
+ * Activates the entity and all its child entities.
57
+ * If the entity is already active, it does nothing.
58
+ * If the entity is disabled, it does nothing.
59
+ * @returns {void}
60
+ */
61
+ activate() {
62
+ if (this._state === 'disabled') {
63
+ return;
64
+ }
65
+ if (this._state !== 'active') {
66
+ this.doActivate();
67
+ this._state = 'active';
68
+ }
69
+ this.entities.forEach(comp => comp.activate());
70
+ }
71
+ /**
72
+ * Deactivates the entity and all its child entities.
73
+ * If the entity is already disabled, it does nothing.
74
+ * If the entity is not yet deactivated, it calls the doDeactivate method and sets the state to 'deactivated'.
75
+ * Finally, it deactivates all child entities.
76
+ * @returns {void}
77
+ */
78
+ deactivate() {
79
+ if (this._state === 'disabled') {
80
+ return;
81
+ }
82
+ if (this._state !== 'deactivated') {
83
+ this.doDeactivate();
84
+ this._state = 'deactivated';
85
+ }
86
+ this.entities.forEach(comp => comp.deactivate());
87
+ }
88
+ /**
89
+ * Returns the current state of the ChartEnitity instance.
90
+ * @returns {ChartEntityState} The current state of the ChartEnitity instance.
91
+ */
92
+ getState() {
93
+ return this._state;
94
+ }
95
+ /**
96
+ * Adds default subscription
97
+ * @param fn - an unsubscriber function
98
+ * @protected
99
+ */
100
+ addSubscription(fn) {
101
+ this.subscriptions.push(fn);
102
+ }
103
+ /**
104
+ * Adds rxjs subscription
105
+ * @param subscription
106
+ * @protected
107
+ */
108
+ addRxSubscription(subscription) {
109
+ if (subscription) {
110
+ this.subscriptions.push(subscription.unsubscribe.bind(subscription));
111
+ }
112
+ }
113
+ /**
114
+ * Adds a new entity to the entities array and activates it if the parent entity is active.
115
+ *
116
+ * @param {Entity} entity - The entity to be added to the entities array.
117
+ * @returns {void}
118
+ */
119
+ addChildEntity(entity) {
120
+ this.entities.push(entity);
121
+ if (this._state === 'active') {
122
+ entity.activate();
123
+ }
124
+ }
125
+ /**
126
+ * Removes a entity from the entities array.
127
+ *
128
+ * @param {ChartEntity} entity - The entity to be removed.
129
+ * @returns {void}
130
+ */
131
+ removeChildEntity(entity) {
132
+ this.entities = this.entities.filter(c => c !== entity);
133
+ }
134
+ }
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
@@ -1,6 +1,30 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
6
- export class CompareSeriesHoverProducerPart{constructor(e){this.chartModel=e}getData(e){const{x:t}=e,c=this.chartModel.candleFromX(t).idx||0;return this.chartModel.candleSeries.map(r=>{const o=r.dataPoints[c],a=this.chartModel.pane.regularFormatter(o==null?void 0:o.close);return{instrument:r.instrument.symbol,price:a,id:r.id}})}}
6
+ export class CompareSeriesHoverProducerPart {
7
+ constructor(chartModel) {
8
+ this.chartModel = chartModel;
9
+ }
10
+ /**
11
+ * Returns an array of objects containing information about the series of candles at a specific x-coordinate.
12
+ * @param {BaseHover} hover - The hover object containing the x-coordinate.
13
+ * @returns {CompareSeriesHover[]} An array of objects containing the instrument symbol, price and id of each series of candles.
14
+ */
15
+ getData(hover) {
16
+ const { x } = hover;
17
+ const candle = this.chartModel.candleFromX(x);
18
+ const idx = candle.idx || 0;
19
+ const compareSeriesHover = this.chartModel.candleSeries.map(series => {
20
+ const candleSecondary = series.dataPoints[idx];
21
+ const priceToShow = this.chartModel.pane.regularFormatter(candleSecondary === null || candleSecondary === void 0 ? void 0 : candleSecondary.close);
22
+ return {
23
+ instrument: series.instrument.symbol,
24
+ price: priceToShow,
25
+ id: series.id,
26
+ };
27
+ });
28
+ return compareSeriesHover;
29
+ }
30
+ }
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
@@ -14,11 +14,11 @@ import { Index, Pixel, Price, Unit, Viewable } from './scaling/viewport.model';
14
14
  */
15
15
  export declare class DataSeriesView implements Viewable {
16
16
  private dataSeries;
17
- private scaleModel;
17
+ private scale;
18
18
  private getAxisType;
19
- private getBaseLine;
19
+ private getBaseline;
20
20
  private percentAnimationHandler;
21
- constructor(dataSeries: DataSeriesModel, scaleModel: ScaleModel, getAxisType: () => PriceAxisType, getBaseLine: (idx?: Index) => Unit);
21
+ constructor(dataSeries: DataSeriesModel, scale: ScaleModel, getAxisType: () => PriceAxisType, getBaseline: (idx?: Index) => Unit);
22
22
  /**
23
23
  * Convert the input value to its corresponding y-pixel coordinate based on the selected price type and scale model.
24
24
  * @param value - The value to be converted to y-pixel coordinate.
@@ -28,10 +28,10 @@ export declare class DataSeriesView implements Viewable {
28
28
  /**
29
29
  * Convert the input value to the corresponding unit based on the current axis type.
30
30
  * @param value - The value to be converted to unit.
31
- * @param getBaseLine - A function that returns the baseline for percent.
31
+ * @param getBaseline - A function that returns the baseline for percent.
32
32
  * @returns - The converted value in the corresponding unit.
33
33
  */
34
- toAxisUnits(value: Price, getBaseLine?: (idx?: number | undefined) => number): Unit;
34
+ toAxisUnits(value: Price, getBaseline?: (idx?: number | undefined) => number): Unit;
35
35
  /**
36
36
  * Convert the input unit to its corresponding x-pixel coordinate based on the scale model.
37
37
  * @param unit - The unit to be converted to x-pixel coordinate.
@@ -1,6 +1,116 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
6
- import{binarySearch as a}from"../utils/array.utils";import{calcLogValue as o,logValueToUnit as l,percentToUnit as c,unitToPercent as h}from"./scaling/viewport.model";class d{constructor(e,i){this.scaleModel=e,this.dataSeries=i,this.prevAnimationId=""}getBaselineForPercent(e){const i=this.scaleModel.currentAnimation;let s;if(i!=null&&i.animationInProgress){i.id!==this.prevAnimationId&&(this.initialBaseline=void 0,this.targetBaseline=void 0,this.prevAnimationId=i.id);const n=i.easingFn(i.getProgress());this.initialBaseline===void 0&&(this.initialBaseline=e(a(this.dataSeries.visualPoints,i.xStart,t=>t.centerUnit).index)),this.targetBaseline===void 0&&(this.targetBaseline=e(a(this.dataSeries.visualPoints,i.animationConfig.targetXStart,t=>t.centerUnit).index)),s=this.initialBaseline+(this.targetBaseline-this.initialBaseline)*n}else s=e();return s}}export class DataSeriesView{constructor(e,i,s,n){this.dataSeries=e,this.scaleModel=i,this.getAxisType=s,this.getBaseLine=n,this.toY=t=>this.scaleModel.toY(this.toAxisUnits(t)),this.toX=t=>this.scaleModel.toX(t),this.xPixels=t=>this.scaleModel.xPixels(t),this.yPixels=t=>this.scaleModel.yPixels(t),this.percentAnimationHandler=new d(this.scaleModel,this.dataSeries)}toAxisUnits(e,i=this.getBaseLine){switch(this.getAxisType()){case"percent":const s=this.percentAnimationHandler.getBaselineForPercent(i);return h(e,s);case"logarithmic":return o(e);case"regular":return e}}priceFromY(e){const i=this.scaleModel.fromY(e);return this.fromAxisUnits(i)}fromAxisUnits(e){switch(this.getAxisType()){case"percent":return c(e,this.getBaseLine());case"logarithmic":return l(e);case"regular":return e}}}
6
+ import { binarySearch } from '../utils/array.utils';
7
+ import { calcLogValue, logValueToUnit, percentToUnit, unitToPercent, } from './scaling/viewport.model';
8
+ class PercentScaleAnimationHandler {
9
+ constructor(scale, dataSeries) {
10
+ this.scale = scale;
11
+ this.dataSeries = dataSeries;
12
+ this.prevAnimationId = '';
13
+ }
14
+ /**
15
+ * This logic calculates correct baseline helping avoid shaking during zoom animation
16
+ * @param getBaseline
17
+ * @returns
18
+ */
19
+ getBaselineForPercent(getBaseline) {
20
+ const animation = this.scale.currentAnimation;
21
+ let baseline;
22
+ if (animation === null || animation === void 0 ? void 0 : animation.animationInProgress) {
23
+ if (animation.id !== this.prevAnimationId) {
24
+ this.initialBaseline = undefined;
25
+ this.targetBaseline = undefined;
26
+ this.prevAnimationId = animation.id;
27
+ }
28
+ const easedProgress = animation.easingFn(animation.getProgress());
29
+ if (this.initialBaseline === undefined) {
30
+ this.initialBaseline = getBaseline(binarySearch(this.dataSeries.visualPoints, animation.xStart, i => i.centerUnit).index);
31
+ }
32
+ if (this.targetBaseline === undefined) {
33
+ this.targetBaseline = getBaseline(binarySearch(this.dataSeries.visualPoints, animation.animationConfig.targetXStart, i => i.centerUnit).index);
34
+ }
35
+ baseline = this.initialBaseline + (this.targetBaseline - this.initialBaseline) * easedProgress;
36
+ }
37
+ else {
38
+ baseline = getBaseline();
39
+ }
40
+ return baseline;
41
+ }
42
+ }
43
+ /**
44
+ * A class representing a view for a data series chart.
45
+ * It contains methods to convert between price values and pixel coordinates using the selected scale model,
46
+ * as well as between price values and units based on the selected price type and axis type.
47
+ */
48
+ export class DataSeriesView {
49
+ constructor(dataSeries, scale, getAxisType, getBaseline) {
50
+ this.dataSeries = dataSeries;
51
+ this.scale = scale;
52
+ this.getAxisType = getAxisType;
53
+ this.getBaseline = getBaseline;
54
+ /**
55
+ * Convert the input value to its corresponding y-pixel coordinate based on the selected price type and scale model.
56
+ * @param value - The value to be converted to y-pixel coordinate.
57
+ * @returns - The converted value in y-pixel coordinate.
58
+ */
59
+ this.toY = (value) => {
60
+ return this.scale.toY(this.toAxisUnits(value));
61
+ };
62
+ /**
63
+ * Convert the input unit to its corresponding x-pixel coordinate based on the scale model.
64
+ * @param unit - The unit to be converted to x-pixel coordinate.
65
+ * @returns - The converted value in x-pixel coordinate.
66
+ */
67
+ this.toX = (unit) => this.scale.toX(unit);
68
+ this.xPixels = (unit) => this.scale.xPixels(unit);
69
+ /**
70
+ * Pay attention! This method doesn't convert price to pixels, it converts only current axis UNITs!
71
+ * @param unit
72
+ */
73
+ this.yPixels = (unit) => this.scale.yPixels(unit);
74
+ this.percentAnimationHandler = new PercentScaleAnimationHandler(this.scale, this.dataSeries);
75
+ }
76
+ /**
77
+ * Convert the input value to the corresponding unit based on the current axis type.
78
+ * @param value - The value to be converted to unit.
79
+ * @param getBaseline - A function that returns the baseline for percent.
80
+ * @returns - The converted value in the corresponding unit.
81
+ */
82
+ toAxisUnits(value, getBaseline = this.getBaseline) {
83
+ switch (this.getAxisType()) {
84
+ case 'percent':
85
+ const baseline = this.percentAnimationHandler.getBaselineForPercent(getBaseline);
86
+ return unitToPercent(value, baseline);
87
+ case 'logarithmic':
88
+ return calcLogValue(value);
89
+ case 'regular':
90
+ return value;
91
+ }
92
+ }
93
+ /**
94
+ * Converts "y" in pixels to price
95
+ * @param y - source value in pixels
96
+ */
97
+ priceFromY(y) {
98
+ const unit = this.scale.fromY(y);
99
+ return this.fromAxisUnits(unit);
100
+ }
101
+ /**
102
+ * Convert the input unit to its corresponding price value based on the selected axis type.
103
+ * @param {number} unit - The unit to be converted to price value.
104
+ * @returns {number} - The converted value in price.
105
+ */
106
+ fromAxisUnits(unit) {
107
+ switch (this.getAxisType()) {
108
+ case 'percent':
109
+ return percentToUnit(unit, this.getBaseline());
110
+ case 'logarithmic':
111
+ return logValueToUnit(unit);
112
+ case 'regular':
113
+ return unit;
114
+ }
115
+ }
116
+ }
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
@@ -1,6 +1,19 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
6
- export const DEFAULT_DATA_SERIES_PAINT_CONFIG={color:"#FF00FF",lineWidth:1,hoveredLineWidth:2},DEFAULT_DATA_SERIES_CONFIG={paintConfig:[DEFAULT_DATA_SERIES_PAINT_CONFIG],type:"LINEAR",highLowActive:!0,visible:!0,labelLastValue:"viewport",labelMode:"label",labelAppearanceType:"badge"};
6
+ export const DEFAULT_DATA_SERIES_PAINT_CONFIG = {
7
+ color: '#FF00FF',
8
+ lineWidth: 1,
9
+ hoveredLineWidth: 2,
10
+ };
11
+ export const DEFAULT_DATA_SERIES_CONFIG = {
12
+ paintConfig: [DEFAULT_DATA_SERIES_PAINT_CONFIG],
13
+ type: 'LINEAR',
14
+ highLowActive: true,
15
+ visible: true,
16
+ labelLastValue: 'viewport',
17
+ labelMode: 'label',
18
+ labelAppearanceType: 'badge',
19
+ };
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (C) 2002 - 2023 Devexperts LLC
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4
4
  * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
5
  */
@@ -50,7 +50,7 @@ export declare class DataSeriesModel<D extends DataSeriesPoint = DataSeriesPoint
50
50
  hovered: boolean;
51
51
  yAxisLabelProvider: DataSeriesYAxisLabelsProvider;
52
52
  readonly config: DataSeriesConfig;
53
- scaleModel: ScaleModel;
53
+ scale: ScaleModel;
54
54
  view: DataSeriesView;
55
55
  protected _dataPoints: D[][];
56
56
  pricePrecisions: number[];
@@ -112,8 +112,8 @@ export declare class DataSeriesModel<D extends DataSeriesPoint = DataSeriesPoint
112
112
  * Recalculates the indexes of the start and end points of the data viewport,
113
113
  * based on the current xStart and xEnd values of the scale model, or on the given xStart and xEnd parameters.
114
114
  *
115
- * @param {number} [xStart=this.scaleModel.xStart] - The start value of the viewport on the x-axis. Defaults to the current xStart value of the scale model.
116
- * @param {number} [xEnd=this.scaleModel.xEnd] - The end value of the viewport on the x-axis. Defaults to the current xEnd value of the scale model.
115
+ * @param {number} [xStart=this.scale.xStart] - The start value of the viewport on the x-axis. Defaults to the current xStart value of the scale model.
116
+ * @param {number} [xEnd=this.scale.xEnd] - The end value of the viewport on the x-axis. Defaults to the current xEnd value of the scale model.
117
117
  */
118
118
  recalculateDataViewportIndexes(xStart?: number, xEnd?: number): void;
119
119
  /**
@@ -139,7 +139,7 @@ export declare class DataSeriesModel<D extends DataSeriesPoint = DataSeriesPoint
139
139
  * @param {number} [idx=this.dataIdxStart] - The index of the visual point to retrieve the close value for.
140
140
  * @returns {Unit} The close value of the visual point at the given index, or 1 if the visual point is not defined.
141
141
  */
142
- getBaseLine: (idx?: number) => Unit;
142
+ getBaseline: (idx?: number) => Unit;
143
143
  /**
144
144
  * Returns the string representation of the close value of the given visual point.
145
145
  *