@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,142 @@
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{CanvasElement as v}from"../../../canvas/canvas-bounds-container";import{avoidAntialiasing as w,drawRoundedRect as B}from"../../../utils/canvas/canvas-drawing-functions.utils";import{priceLabelDrawersMap as S}from"../../y_axis/price_labels/price-label.drawer";export class CrossAndLabelsDrawerType{constructor(o,s,t,e=()=>!0,i){this.config=o,this.canvasBoundsContainer=s,this.paneManager=t,this.crossDrawPredicate=e,this.noLines=i}draw(o,s){this.crossDrawPredicate()&&w(o,()=>this.drawCrossTool(o,s))}drawCrossTool(o,s){var t,e,i,a,l;const n=this.canvasBoundsContainer.getBounds(v.ALL_PANES),d=this.canvasBoundsContainer.getBoundsHitTest(v.ALL_PANES,{extensionY:1e-4}),g=(t=this.config.components.xAxis.padding.top)!==null&&t!==void 0?t:0,r=(i=this.config.components.yAxis.typeConfig[(e=this.config.components.crossTool.yLabel.type)!==null&&e!==void 0?e:"badge"])===null||i===void 0?void 0:i.paddings,p=(a=r==null?void 0:r.start)!==null&&a!==void 0?a:0,c=(l=this.paneManager.paneComponents[s.paneId])===null||l===void 0?void 0:l.ht;if(d(s.x,n.y)){const x={start:[n.x,s.y],end:[n.x+n.width+p,s.y]},f={start:[s.x,n.y],end:[s.x,n.y+n.height+g]},u=c==null?void 0:c(s.x,s.y);this.noLines||(o.strokeStyle=this.config.colors.crossTool.lineColor,o.setLineDash(this.config.components.crossTool.lineDash),o.beginPath(),u&&(o.moveTo(...x.start),o.lineTo(...x.end)),o.moveTo(...f.start),o.lineTo(...f.end),o.stroke()),u&&this.drawYLabel(o,s),this.drawXLabel(o,s)}}drawXLabel(o,s){var t,e,i,a,l;const n=this.config.components.crossTool.xLabel.padding,d=this.config.components.crossTool.xLabel.margin,g=this.config.colors.crossTool;if(this.config.components.xAxis.visible){o.font=this.config.components.xAxis.fontSize+"px "+this.config.components.xAxis.fontFamily;const r=s.x,p=s.time,c=o.measureText(p).width,x=this.config.components.xAxis.fontSize,f=this.canvasBoundsContainer.getBounds(v.X_AXIS);o.save(),o.fillStyle=g.labelBoxColor;const u=(t=n==null?void 0:n.left)!==null&&t!==void 0?t:0,T=(e=n==null?void 0:n.right)!==null&&e!==void 0?e:0,h=(i=n==null?void 0:n.top)!==null&&i!==void 0?i:0,y=(a=n==null?void 0:n.bottom)!==null&&a!==void 0?a:0,b=(l=d==null?void 0:d.top)!==null&&l!==void 0?l:0,m=c+u+T,L=x+h+y,C=Math.max(r-m/2,0),A=f.y+b;B(o,C,A,m,L),o.fillStyle=g.labelTextColor;const P=Math.max(r-c/2,u),_=f.y+b+x+h-1;o.fillText(p,P,_),o.restore()}}drawYLabel(o,s){var t,e;const i=this.config.components.crossTool.yLabel.padding,a=this.config.colors.crossTool;if(this.config.components.yAxis.visible){const l=this.paneManager.paneComponents[s.paneId],n=s.y;if(!l)return;for(const d of l.yExtentComponents){const g=d.regularValueFromY(n),r=d.valueFormatter(g),p=this.canvasBoundsContainer.getBounds(v.PANE_UUID_Y_AXIS(l.uuid,d.idx)),c=S[this.config.components.crossTool.yLabel.type];c(o,p,r,n,{textColor:a.labelTextColor,bgColor:a.labelBoxColor,paddingBottom:i==null?void 0:i.bottom,paddingEnd:i==null?void 0:i.end,paddingTop:i==null?void 0:i.top},(e=(t=d.yAxisComponent)===null||t===void 0?void 0:t.state)!==null&&e!==void 0?e:this.config.components.yAxis,this.config.colors.yAxis,!0)}}}}
6
+ import { CanvasElement } from '../../../canvas/canvas-bounds-container';
7
+ import { avoidAntialiasing, drawRoundedRect } from '../../../utils/canvas/canvas-drawing-functions.utils';
8
+ import { priceLabelDrawersMap } from '../../y_axis/price_labels/price-label.drawer';
9
+ export class CrossAndLabelsDrawerType {
10
+ constructor(config, canvasBoundsContainer, paneManager, crossDrawPredicate = () => true, noLines) {
11
+ this.config = config;
12
+ this.canvasBoundsContainer = canvasBoundsContainer;
13
+ this.paneManager = paneManager;
14
+ this.crossDrawPredicate = crossDrawPredicate;
15
+ this.noLines = noLines;
16
+ }
17
+ /**
18
+ * Draws a cross tool on a canvas context and its labels if the crossDrawPredicate is true.
19
+ * @param {CanvasRenderingContext2D} ctx - The canvas context to draw on.
20
+ * @param {CrossToolHover} hover - The hover object containing information about the cross tool's position.
21
+ */
22
+ draw(ctx, hover) {
23
+ if (this.crossDrawPredicate()) {
24
+ avoidAntialiasing(ctx, () => this.drawCrossTool(ctx, hover));
25
+ }
26
+ }
27
+ /**
28
+ * This is a protected method called `drawCrossTool` that takes two parameters: `ctx` of type `CanvasRenderingContext2D` and `hover` of type `CrossToolHover`.
29
+ * The method draws a cross tool on the canvas using the provided context. It first gets the bounds of all panes and the hit test bounds of all panes. It then gets the top padding of the x-axis from the configuration and the left padding of the y-axis from the configuration based on the type of y-label.
30
+ * If the hit test bounds of all panes contain the hover coordinates, it draws a horizontal line and a vertical line using the provided coordinates and the bounds of all panes. It sets the stroke style to the line color from the configuration and sets the line dash to the line dash from the configuration. It then begins a new path, moves to the start of the horizontal line, draws a line to the end of the horizontal line, moves to the start of the vertical line, and draws a line to the end of the vertical line. Finally, it strokes the path.
31
+ */
32
+ drawCrossTool(ctx, hover) {
33
+ var _a, _b, _c, _d, _e;
34
+ const allPanes = this.canvasBoundsContainer.getBounds(CanvasElement.ALL_PANES);
35
+ // extension is need for allPanes.y to fit into hit test
36
+ const allPanesHT = this.canvasBoundsContainer.getBoundsHitTest(CanvasElement.ALL_PANES, { extensionY: 0.0001 });
37
+ const xAxisTopPadding = (_a = this.config.components.xAxis.padding.top) !== null && _a !== void 0 ? _a : 0;
38
+ const padding = (_c = this.config.components.yAxis.typeConfig[(_b = this.config.components.crossTool.yLabel.type) !== null && _b !== void 0 ? _b : 'badge']) === null || _c === void 0 ? void 0 : _c.paddings;
39
+ const yAxisLeftPadding = (_d = padding === null || padding === void 0 ? void 0 : padding.start) !== null && _d !== void 0 ? _d : 0;
40
+ // we want to draw hover even if y coordinate is beyond chart
41
+ // Example: snap option is turned on, and chart is scrolled down, so it's not visible
42
+ const paneHT = (_e = this.paneManager.panes[hover.paneId]) === null || _e === void 0 ? void 0 : _e.ht;
43
+ if (allPanesHT(hover.x, allPanes.y)) {
44
+ const horizontalLineCoords = {
45
+ start: [allPanes.x, hover.y],
46
+ end: [allPanes.x + allPanes.width + yAxisLeftPadding, hover.y],
47
+ };
48
+ const verticalLineCoords = {
49
+ start: [hover.x, allPanes.y],
50
+ end: [hover.x, allPanes.y + allPanes.height + xAxisTopPadding],
51
+ };
52
+ const allowHorizontal = paneHT === null || paneHT === void 0 ? void 0 : paneHT(hover.x, hover.y);
53
+ if (!this.noLines) {
54
+ ctx.strokeStyle = this.config.colors.crossTool.lineColor;
55
+ ctx.setLineDash(this.config.components.crossTool.lineDash);
56
+ ctx.beginPath();
57
+ // don't draw horizontal line if it's not in hit test
58
+ if (allowHorizontal) {
59
+ ctx.moveTo(...horizontalLineCoords.start);
60
+ ctx.lineTo(...horizontalLineCoords.end);
61
+ }
62
+ ctx.moveTo(...verticalLineCoords.start);
63
+ ctx.lineTo(...verticalLineCoords.end);
64
+ ctx.stroke();
65
+ }
66
+ allowHorizontal && this.drawYLabel(ctx, hover);
67
+ this.drawXLabel(ctx, hover);
68
+ }
69
+ }
70
+ /**
71
+ * Draws the X axis label for the cross tool on the canvas.
72
+ * @param {CanvasRenderingContext2D} ctx - The 2D rendering context for the canvas.
73
+ * @param {CrossToolHover} hover - The hover object containing the x and y coordinates of the cross tool.
74
+ * @returns {void}
75
+ */
76
+ drawXLabel(ctx, hover) {
77
+ var _a, _b, _c, _d, _e;
78
+ const xLabelPadding = this.config.components.crossTool.xLabel.padding;
79
+ const xLabelMargin = this.config.components.crossTool.xLabel.margin;
80
+ const crossToolColors = this.config.colors.crossTool;
81
+ // X axis label same for all
82
+ if (this.config.components.xAxis.visible) {
83
+ ctx.font = this.config.components.xAxis.fontSize + 'px ' + this.config.components.xAxis.fontFamily;
84
+ // X hover
85
+ const x = hover.x;
86
+ const labelText = hover.time;
87
+ const width = ctx.measureText(labelText).width;
88
+ const fontHeight = this.config.components.xAxis.fontSize;
89
+ // box
90
+ const xAxis = this.canvasBoundsContainer.getBounds(CanvasElement.X_AXIS);
91
+ ctx.save();
92
+ ctx.fillStyle = crossToolColors.labelBoxColor;
93
+ const xLabelPaddingLeft = (_a = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.left) !== null && _a !== void 0 ? _a : 0;
94
+ const xLabelPaddingRight = (_b = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.right) !== null && _b !== void 0 ? _b : 0;
95
+ const xLabelPaddingTop = (_c = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.top) !== null && _c !== void 0 ? _c : 0;
96
+ const xLabelPaddingBottom = (_d = xLabelPadding === null || xLabelPadding === void 0 ? void 0 : xLabelPadding.bottom) !== null && _d !== void 0 ? _d : 0;
97
+ const xLabelMarginTop = (_e = xLabelMargin === null || xLabelMargin === void 0 ? void 0 : xLabelMargin.top) !== null && _e !== void 0 ? _e : 0;
98
+ const boxWidth = width + xLabelPaddingLeft + xLabelPaddingRight;
99
+ const boxHeight = fontHeight + xLabelPaddingTop + xLabelPaddingBottom;
100
+ const xBoxPos = Math.max(x - boxWidth / 2, 0);
101
+ const yBoxPos = xAxis.y + xLabelMarginTop;
102
+ drawRoundedRect(ctx, xBoxPos, yBoxPos, boxWidth, boxHeight);
103
+ // label
104
+ ctx.fillStyle = crossToolColors.labelTextColor;
105
+ const xTextPos = Math.max(x - width / 2, xLabelPaddingLeft);
106
+ const yTextPos = xAxis.y + xLabelMarginTop + fontHeight + xLabelPaddingTop - 1; // -1 for vertical adjustment
107
+ ctx.fillText(labelText, xTextPos, yTextPos);
108
+ ctx.restore();
109
+ }
110
+ }
111
+ /**
112
+ * Draws the Y-axis label on the canvas context at the given point.
113
+ * @param {CanvasRenderingContext2D} ctx - The canvas context to draw on.
114
+ * @param {Point} point - The point where the label should be drawn.
115
+ * @returns {void}
116
+ */
117
+ drawYLabel(ctx, point) {
118
+ const yLabelPadding = this.config.components.crossTool.yLabel.padding;
119
+ const crossToolColors = this.config.colors.crossTool;
120
+ // Y axis label different for main chart pane and the rest panes
121
+ if (this.config.components.yAxis.visible) {
122
+ const pane = this.paneManager.panes[point.paneId];
123
+ const y = point.y;
124
+ if (!pane) {
125
+ return;
126
+ }
127
+ for (const extent of pane.yExtentComponents) {
128
+ const price = extent.regularValueFromY(y);
129
+ const label = extent.valueFormatter(price);
130
+ const bounds = this.canvasBoundsContainer.getBounds(CanvasElement.PANE_UUID_Y_AXIS(pane.uuid, extent.idx));
131
+ const drawYLabel = priceLabelDrawersMap[this.config.components.crossTool.yLabel.type];
132
+ drawYLabel(ctx, bounds, label, y, {
133
+ textColor: crossToolColors.labelTextColor,
134
+ bgColor: crossToolColors.labelBoxColor,
135
+ paddingBottom: yLabelPadding === null || yLabelPadding === void 0 ? void 0 : yLabelPadding.bottom,
136
+ paddingEnd: yLabelPadding === null || yLabelPadding === void 0 ? void 0 : yLabelPadding.end,
137
+ paddingTop: yLabelPadding === null || yLabelPadding === void 0 ? void 0 : yLabelPadding.top,
138
+ }, extent.yAxis.state, this.config.colors.yAxis, true);
139
+ }
140
+ }
141
+ }
142
+ }
@@ -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,8 @@
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 NoneDrawerType{draw(){}}
6
+ export class NoneDrawerType {
7
+ draw() { }
8
+ }
@@ -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,33 @@
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{defaultDragComponentOptions as a,DragNDropComponent as o}from"./drag-n-drop.component";export class DragNDropXComponent extends o{constructor(t,s,r,e,i=a){super(t,s,r,e,i)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeXDragStart(this.hitTest).subscribe(this.onDragStart)),this.addRxSubscription(this.canvasInputListener.observeXDrag().subscribe(this.onDragTick)),this.addRxSubscription(this.canvasInputListener.observeXDragEnd().subscribe(this.onDragEnd))}doDeactivate(){super.doDeactivate()}}
6
+ import { defaultDragComponentOptions, DragNDropComponent, } from './drag-n-drop.component';
7
+ export class DragNDropXComponent extends DragNDropComponent {
8
+ constructor(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions = defaultDragComponentOptions) {
9
+ super(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions);
10
+ }
11
+ /**
12
+ * This method is used to activate the component and add the necessary subscriptions to the canvasInputListener.
13
+ * It calls the super method doActivate() and then adds the following subscriptions:
14
+ * - observeXDragStart() subscription with hitTest() as parameter and onDragStart() as callback function
15
+ * - observeXDrag() subscription with onDragTick() as callback function
16
+ * - observeXDragEnd() subscription with onDragEnd() as callback function
17
+ * @returns {void}
18
+ */
19
+ doActivate() {
20
+ super.doActivate();
21
+ this.addRxSubscription(this.canvasInputListener.observeXDragStart(this.hitTest).subscribe(this.onDragStart));
22
+ this.addRxSubscription(this.canvasInputListener.observeXDrag().subscribe(this.onDragTick));
23
+ this.addRxSubscription(this.canvasInputListener.observeXDragEnd().subscribe(this.onDragEnd));
24
+ }
25
+ /**
26
+ * This method overrides the doDeactivate method of the parent class and calls it using the super keyword.
27
+ * It is used to deactivate the current object and perform any necessary cleanup operations.
28
+ * @protected
29
+ */
30
+ doDeactivate() {
31
+ super.doDeactivate();
32
+ }
33
+ }
@@ -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,29 @@
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{defaultDragComponentOptions as a,DragNDropComponent as o}from"./drag-n-drop.component";export class DragNDropYComponent extends o{constructor(t,s,r,e,i=a){super(t,s,r,e,i)}doActivate(){super.doActivate(),this.addRxSubscription(this.canvasInputListener.observeYDragStart(this.hitTest).subscribe(this.onDragStart)),this.addRxSubscription(this.canvasInputListener.observeYDrag().subscribe(this.onDragTick)),this.addRxSubscription(this.canvasInputListener.observeYDragEnd().subscribe(this.onDragEnd))}doDeactivate(){super.doDeactivate()}}
6
+ import { defaultDragComponentOptions, DragNDropComponent, } from './drag-n-drop.component';
7
+ export class DragNDropYComponent extends DragNDropComponent {
8
+ constructor(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions = defaultDragComponentOptions) {
9
+ super(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions);
10
+ }
11
+ /**
12
+ * This method activates the component and adds subscriptions to the canvasInputListener.
13
+ * @protected
14
+ * @returns {void}
15
+ */
16
+ doActivate() {
17
+ super.doActivate();
18
+ this.addRxSubscription(this.canvasInputListener.observeYDragStart(this.hitTest).subscribe(this.onDragStart));
19
+ this.addRxSubscription(this.canvasInputListener.observeYDrag().subscribe(this.onDragTick));
20
+ this.addRxSubscription(this.canvasInputListener.observeYDragEnd().subscribe(this.onDragEnd));
21
+ }
22
+ /**
23
+ * This method overrides the doDeactivate method of the parent class and calls the parent method before executing its own code.
24
+ * It is a protected method, which means it can only be accessed within the class and its subclasses.
25
+ */
26
+ doDeactivate() {
27
+ super.doDeactivate();
28
+ }
29
+ }
@@ -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,58 @@
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{ChartBaseElement as e}from"../../model/chart-base-element";export const defaultDragComponentOptions={disableChartPanning:!0};export class DragNDropComponent extends e{constructor(t,s,i,n,r){super(),this.hitTest=t,this.dragCallbacks=s,this.canvasInputListener=i,this.chartPanComponent=n,this.dragComponentOptions=r,this.dragging=!1,this.draggedPixels=0,this.onDragStart=a=>{this.dragging=!0,this.draggedPixels=0,this.dragCallbacks.onDragStart&&this.dragCallbacks.onDragStart(a),this.dragComponentOptions.disableChartPanning&&this.chartPanComponent.deactivatePanHandlers()},this.onDragTick=a=>{this.dragging&&(this.draggedPixels+=a,this.dragCallbacks.onDragTick({delta:a,draggedPixels:this.draggedPixels}))},this.onDragEnd=()=>{this.dragging&&(this.dragging=!1,this.dragCallbacks.onDragEnd&&this.dragCallbacks.onDragEnd(this.draggedPixels),this.dragComponentOptions.disableChartPanning&&this.chartPanComponent.activateChartPanHandlers())}}doActivate(){super.doActivate()}doDeactivate(){super.doDeactivate()}}
6
+ import { ChartBaseElement } from '../../model/chart-base-element';
7
+ export const defaultDragComponentOptions = {
8
+ disableChartPanning: true,
9
+ };
10
+ export class DragNDropComponent extends ChartBaseElement {
11
+ constructor(hitTest, dragCallbacks, canvasInputListener, chartPanComponent, dragComponentOptions) {
12
+ super();
13
+ this.hitTest = hitTest;
14
+ this.dragCallbacks = dragCallbacks;
15
+ this.canvasInputListener = canvasInputListener;
16
+ this.chartPanComponent = chartPanComponent;
17
+ this.dragComponentOptions = dragComponentOptions;
18
+ this.dragging = false;
19
+ this.draggedPixels = 0;
20
+ this.onDragStart = (point) => {
21
+ this.dragging = true;
22
+ this.draggedPixels = 0;
23
+ this.dragCallbacks.onDragStart && this.dragCallbacks.onDragStart(point);
24
+ this.dragComponentOptions.disableChartPanning && this.chartPanComponent.deactivatePanHandlers();
25
+ };
26
+ this.onDragTick = (yDelta) => {
27
+ if (this.dragging) {
28
+ this.draggedPixels += yDelta;
29
+ this.dragCallbacks.onDragTick({
30
+ delta: yDelta,
31
+ draggedPixels: this.draggedPixels,
32
+ });
33
+ }
34
+ };
35
+ this.onDragEnd = () => {
36
+ if (this.dragging) {
37
+ this.dragging = false;
38
+ this.dragCallbacks.onDragEnd && this.dragCallbacks.onDragEnd(this.draggedPixels);
39
+ this.dragComponentOptions.disableChartPanning && this.chartPanComponent.activateChartPanHandlers();
40
+ }
41
+ };
42
+ }
43
+ /**
44
+ * Calls the parent class's doActivate method and performs any additional activation logic.
45
+ * This method is protected and can only be accessed by the class itself and its subclasses.
46
+ */
47
+ doActivate() {
48
+ super.doActivate();
49
+ }
50
+ /**
51
+ * This method overrides the doDeactivate method of the parent class and calls it using the super keyword.
52
+ * It is a protected method that can only be accessed within the class and its subclasses.
53
+ * This method is responsible for deactivating the current object.
54
+ */
55
+ doDeactivate() {
56
+ super.doDeactivate();
57
+ }
58
+ }
@@ -0,0 +1,13 @@
1
+ /*
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
+ * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
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
+ */
6
+ import { DrawingManager } from '../../drawers/drawing-manager';
7
+ import { CanvasModel } from '../../model/canvas.model';
8
+ import { ChartBaseElement } from '../../model/chart-base-element';
9
+ import { DynamicObjectsModel } from './dynamic-objects.model';
10
+ export declare class DynamicObjectsComponent extends ChartBaseElement {
11
+ model: DynamicObjectsModel;
12
+ constructor(canvasModel: CanvasModel, drawingManager: DrawingManager);
13
+ }
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
+ * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
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
+ */
6
+ import { ChartBaseElement } from '../../model/chart-base-element';
7
+ import { DynamicObjectsDrawer } from './dynamic-objects.drawer';
8
+ import { DynamicObjectsModel } from './dynamic-objects.model';
9
+ export class DynamicObjectsComponent extends ChartBaseElement {
10
+ constructor(canvasModel, drawingManager) {
11
+ super();
12
+ // model
13
+ const dynamicObjectsModel = new DynamicObjectsModel();
14
+ this.model = dynamicObjectsModel;
15
+ this.addChildEntity(dynamicObjectsModel);
16
+ // drawer
17
+ const dynamicObjectsDrawer = new DynamicObjectsDrawer(dynamicObjectsModel, canvasModel);
18
+ drawingManager.addDrawer(dynamicObjectsDrawer, 'DYNAMIC_OBJECTS');
19
+ }
20
+ }
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
+ * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
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
+ */
6
+ import { Drawer } from '../../drawers/drawing-manager';
7
+ import { CanvasModel } from '../../model/canvas.model';
8
+ import { DynamicObjectsModel } from './dynamic-objects.model';
9
+ export interface DynamicModelDrawer<T> {
10
+ draw(canvasModel: CanvasModel, model: T, paneUUID?: string): void;
11
+ }
12
+ export declare class DynamicObjectsDrawer implements Drawer {
13
+ private dynamicObjectsModel;
14
+ private canvasModel;
15
+ constructor(dynamicObjectsModel: DynamicObjectsModel, canvasModel: CanvasModel);
16
+ draw(): void;
17
+ getCanvasIds(): string[];
18
+ }
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
+ * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
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
+ */
6
+ export class DynamicObjectsDrawer {
7
+ constructor(dynamicObjectsModel, canvasModel) {
8
+ this.dynamicObjectsModel = dynamicObjectsModel;
9
+ this.canvasModel = canvasModel;
10
+ }
11
+ draw() {
12
+ const objects = this.dynamicObjectsModel.objects;
13
+ Object.entries(objects).forEach(([paneUUID, list]) => {
14
+ for (const obj of list) {
15
+ const { model, drawer } = obj;
16
+ drawer.draw(this.canvasModel, model, paneUUID);
17
+ }
18
+ });
19
+ }
20
+ getCanvasIds() {
21
+ return [this.canvasModel.canvasId];
22
+ }
23
+ }
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
+ * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
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
+ */
6
+ import { ChartBaseElement } from '../../model/chart-base-element';
7
+ import { LinkedList, ListNode } from '../../utils/linkedList.utils';
8
+ import { DynamicModelDrawer } from './dynamic-objects.drawer';
9
+ export type PaneId = string;
10
+ export interface DynamicObject<T = unknown> {
11
+ readonly drawer: DynamicModelDrawer<T>;
12
+ readonly model: T;
13
+ }
14
+ export declare class DynamicObjectsModel extends ChartBaseElement {
15
+ private _objects;
16
+ private modelToObjectMap;
17
+ constructor();
18
+ /**
19
+ * Adds an object from outside chart-core into model
20
+ * @param obj
21
+ * @param paneId
22
+ */
23
+ addObject(obj: DynamicObject, paneId: PaneId): void;
24
+ /**
25
+ * Removes an object from model
26
+ * @param model
27
+ * @param paneId
28
+ */
29
+ removeObject(model: unknown, paneId: PaneId): void;
30
+ /**
31
+ * Moves the object inside the drawing order so it's being drawn before the other elements
32
+ * @param paneId
33
+ * @param listNode
34
+ */
35
+ bringToFront(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
36
+ /**
37
+ * Moves the object inside the drawing order so it's being drawn after the other elements
38
+ * @param paneId
39
+ * @param listNode
40
+ */
41
+ bringToBack(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
42
+ /**
43
+ * Moves the object inside the drawing order so it's being drawn one layer ahead
44
+ * @param obj
45
+ * @param paneId
46
+ */
47
+ moveForward(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
48
+ /**
49
+ * Moves the object inside the drawing order so it's being drawn one layer closer to the back
50
+ * @param obj
51
+ * @param paneId
52
+ */
53
+ moveBackwards(paneId: PaneId, listNode: ListNode<DynamicObject>): void;
54
+ /**
55
+ * Getter for the objects
56
+ */
57
+ get objects(): Record<string, LinkedList<DynamicObject<unknown>>>;
58
+ /**
59
+ * Sets the objects
60
+ * @param objects
61
+ */
62
+ setDynamicObjects(objects: Record<PaneId, LinkedList<DynamicObject>>): void;
63
+ }
@@ -0,0 +1,136 @@
1
+ /*
2
+ * Copyright (C) 2019 - 2023 Devexperts Solutions IE Limited
3
+ * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
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
+ */
6
+ import { BehaviorSubject } from 'rxjs';
7
+ import { ChartBaseElement } from '../../model/chart-base-element';
8
+ import { LinkedList, ListNode } from '../../utils/linkedList.utils';
9
+ export class DynamicObjectsModel extends ChartBaseElement {
10
+ constructor() {
11
+ super();
12
+ this.modelToObjectMap = new Map();
13
+ this._objects = new BehaviorSubject({});
14
+ }
15
+ /**
16
+ * Adds an object from outside chart-core into model
17
+ * @param obj
18
+ * @param paneId
19
+ */
20
+ addObject(obj, paneId) {
21
+ var _a;
22
+ const objects = this.objects;
23
+ const paneList = (_a = objects[paneId]) !== null && _a !== void 0 ? _a : new LinkedList();
24
+ if (!Object.keys(objects).find(pane => pane === paneId)) {
25
+ objects[paneId] = paneList;
26
+ }
27
+ paneList.insertAtEnd(obj);
28
+ this.modelToObjectMap.set(obj.model, obj);
29
+ this.setDynamicObjects(objects);
30
+ }
31
+ /**
32
+ * Removes an object from model
33
+ * @param model
34
+ * @param paneId
35
+ */
36
+ removeObject(model, paneId) {
37
+ const objects = this.objects;
38
+ const paneList = objects[paneId];
39
+ const obj = this.modelToObjectMap.get(model);
40
+ if (paneList && obj) {
41
+ const targetNode = new ListNode(obj);
42
+ const targetPos = paneList.getNodePosition(targetNode);
43
+ paneList.removeAt(targetPos);
44
+ this.modelToObjectMap.delete(model);
45
+ if (paneList.size() === 0) {
46
+ delete objects[paneId];
47
+ }
48
+ this.setDynamicObjects(objects);
49
+ }
50
+ }
51
+ /**
52
+ * Moves the object inside the drawing order so it's being drawn before the other elements
53
+ * @param paneId
54
+ * @param listNode
55
+ */
56
+ bringToFront(paneId, listNode) {
57
+ const list = this.objects[paneId];
58
+ if (list) {
59
+ const targetPos = list.getNodePosition(listNode);
60
+ if (targetPos >= 0 && targetPos < list.size()) {
61
+ const nodeToReplace = list.removeAt(targetPos);
62
+ if (nodeToReplace) {
63
+ list.insertAtEnd(nodeToReplace.data);
64
+ }
65
+ }
66
+ this.setDynamicObjects(this.objects);
67
+ }
68
+ }
69
+ /**
70
+ * Moves the object inside the drawing order so it's being drawn after the other elements
71
+ * @param paneId
72
+ * @param listNode
73
+ */
74
+ bringToBack(paneId, listNode) {
75
+ const list = this.objects[paneId];
76
+ if (list) {
77
+ const targetPos = list.getNodePosition(listNode);
78
+ if (targetPos > 0 && targetPos <= list.size()) {
79
+ const nodeToReplace = list.removeAt(targetPos);
80
+ if (nodeToReplace) {
81
+ list.insertAt(0, nodeToReplace === null || nodeToReplace === void 0 ? void 0 : nodeToReplace.data);
82
+ }
83
+ }
84
+ this.setDynamicObjects(this.objects);
85
+ }
86
+ }
87
+ /**
88
+ * Moves the object inside the drawing order so it's being drawn one layer ahead
89
+ * @param obj
90
+ * @param paneId
91
+ */
92
+ moveForward(paneId, listNode) {
93
+ const list = this.objects[paneId];
94
+ if (list) {
95
+ const targetPos = list.getNodePosition(listNode);
96
+ if (targetPos >= 0 && targetPos < list.size()) {
97
+ const nodeToReplace = list.removeAt(targetPos);
98
+ if (nodeToReplace) {
99
+ list.insertAt(targetPos + 1, nodeToReplace.data);
100
+ }
101
+ }
102
+ this.setDynamicObjects(this.objects);
103
+ }
104
+ }
105
+ /**
106
+ * Moves the object inside the drawing order so it's being drawn one layer closer to the back
107
+ * @param obj
108
+ * @param paneId
109
+ */
110
+ moveBackwards(paneId, listNode) {
111
+ const list = this.objects[paneId];
112
+ if (list) {
113
+ const targetPos = list.getNodePosition(listNode);
114
+ if (targetPos > 0 && targetPos <= list.size()) {
115
+ const nodeToReplace = list.removeAt(targetPos);
116
+ if (nodeToReplace) {
117
+ list.insertAt(targetPos - 1, nodeToReplace === null || nodeToReplace === void 0 ? void 0 : nodeToReplace.data);
118
+ }
119
+ }
120
+ this.setDynamicObjects(this.objects);
121
+ }
122
+ }
123
+ /**
124
+ * Getter for the objects
125
+ */
126
+ get objects() {
127
+ return this._objects.getValue();
128
+ }
129
+ /**
130
+ * Sets the objects
131
+ * @param objects
132
+ */
133
+ setDynamicObjects(objects) {
134
+ this._objects.next(objects);
135
+ }
136
+ }
@@ -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
  */