@amcharts/amcharts5 5.9.3 → 5.9.5

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 (221) hide show
  1. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  2. package/.internal/charts/stock/StockChartDefaultTheme.js +5 -2
  3. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  4. package/.internal/charts/stock/drawing/CalloutSeries.d.ts.map +1 -1
  5. package/.internal/charts/stock/drawing/CalloutSeries.js +6 -2
  6. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  7. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +1 -1
  8. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  9. package/.internal/charts/stock/drawing/DrawingSeries.js +2 -2
  10. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  11. package/.internal/charts/stock/drawing/LabelSeries.d.ts +6 -5
  12. package/.internal/charts/stock/drawing/LabelSeries.d.ts.map +1 -1
  13. package/.internal/charts/stock/drawing/LabelSeries.js +50 -68
  14. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  15. package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
  16. package/.internal/charts/stock/indicators/VolumeProfile.js +4 -65
  17. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  18. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +7 -0
  19. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  20. package/.internal/charts/stock/toolbar/DrawingControl.js +2 -1
  21. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  22. package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts +7 -0
  23. package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts.map +1 -1
  24. package/.internal/charts/stock/toolbar/DrawingToolControl.js +2 -1
  25. package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
  26. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  27. package/.internal/charts/xy/XYChart.js +6 -2
  28. package/.internal/charts/xy/XYChart.js.map +1 -1
  29. package/.internal/charts/xy/XYCursor.d.ts +1 -0
  30. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  31. package/.internal/charts/xy/XYCursor.js +10 -1
  32. package/.internal/charts/xy/XYCursor.js.map +1 -1
  33. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  34. package/.internal/charts/xy/axes/Axis.js +0 -5
  35. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  36. package/.internal/charts/xy/axes/ValueAxis.d.ts +1 -0
  37. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  38. package/.internal/charts/xy/axes/ValueAxis.js +16 -4
  39. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  40. package/.internal/core/Classes.d.ts +2 -0
  41. package/.internal/core/Classes.d.ts.map +1 -1
  42. package/.internal/core/Classes.js.map +1 -1
  43. package/.internal/core/Registry.js +1 -1
  44. package/.internal/core/Registry.js.map +1 -1
  45. package/.internal/core/Root.d.ts.map +1 -1
  46. package/.internal/core/Root.js +8 -2
  47. package/.internal/core/Root.js.map +1 -1
  48. package/.internal/core/render/EditableLabel.d.ts +47 -0
  49. package/.internal/core/render/EditableLabel.d.ts.map +1 -0
  50. package/.internal/core/render/EditableLabel.js +225 -0
  51. package/.internal/core/render/EditableLabel.js.map +1 -0
  52. package/.internal/core/render/Label.d.ts +4 -1
  53. package/.internal/core/render/Label.d.ts.map +1 -1
  54. package/.internal/core/render/Label.js +17 -17
  55. package/.internal/core/render/Label.js.map +1 -1
  56. package/.internal/core/render/RadialLabel.d.ts.map +1 -1
  57. package/.internal/core/render/RadialLabel.js +2 -0
  58. package/.internal/core/render/RadialLabel.js.map +1 -1
  59. package/.internal/core/render/Sprite.d.ts +7 -0
  60. package/.internal/core/render/Sprite.d.ts.map +1 -1
  61. package/.internal/core/render/Sprite.js +10 -0
  62. package/.internal/core/render/Sprite.js.map +1 -1
  63. package/.internal/plugins/json/Classes-script.d.ts +2 -0
  64. package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
  65. package/.internal/plugins/json/Classes-script.js +1 -0
  66. package/.internal/plugins/json/Classes-script.js.map +1 -1
  67. package/.internal/plugins/json/Classes.d.ts +2 -0
  68. package/.internal/plugins/json/Classes.d.ts.map +1 -1
  69. package/.internal/plugins/json/Classes.js +1 -0
  70. package/.internal/plugins/json/Classes.js.map +1 -1
  71. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  72. package/.internal/themes/DefaultTheme.js +20 -0
  73. package/.internal/themes/DefaultTheme.js.map +1 -1
  74. package/CHANGELOG.md +27 -0
  75. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  76. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  77. package/examples/javascript/flow-chord/package.json +1 -1
  78. package/examples/javascript/flow-chord-directed/package.json +1 -1
  79. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  80. package/examples/javascript/flow-sankey/package.json +1 -1
  81. package/examples/javascript/gauge/package.json +1 -1
  82. package/examples/javascript/gauge-bands/package.json +1 -1
  83. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  84. package/examples/javascript/hierarchy-pack/package.json +1 -1
  85. package/examples/javascript/hierarchy-partition/package.json +1 -1
  86. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  87. package/examples/javascript/hierarchy-tree/package.json +1 -1
  88. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  89. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  90. package/examples/javascript/jest/package.json +1 -1
  91. package/examples/javascript/json-pie/package.json +1 -1
  92. package/examples/javascript/json-xy/package.json +1 -1
  93. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  94. package/examples/javascript/map-clustered-points/package.json +1 -1
  95. package/examples/javascript/map-day-and-night/package.json +1 -1
  96. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  97. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  98. package/examples/javascript/map-with-bubbles/package.json +1 -1
  99. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  100. package/examples/javascript/misc-40-charts/package.json +1 -1
  101. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  102. package/examples/javascript/pie-chart/package.json +1 -1
  103. package/examples/javascript/pie-donut-chart/package.json +1 -1
  104. package/examples/javascript/pie-variable-radius/package.json +1 -1
  105. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  106. package/examples/javascript/radar-heat-map/package.json +1 -1
  107. package/examples/javascript/radar-line/package.json +1 -1
  108. package/examples/javascript/radar-time-line/package.json +1 -1
  109. package/examples/javascript/sliced-funnel/package.json +1 -1
  110. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  111. package/examples/javascript/sliced-pyramid/package.json +1 -1
  112. package/examples/javascript/stock-chart/package.json +1 -1
  113. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  114. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  115. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  116. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  117. package/examples/javascript/stock-chart-live/package.json +1 -1
  118. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  119. package/examples/javascript/venn-diagram/package.json +1 -1
  120. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  121. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  122. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  123. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  124. package/examples/javascript/xy-bubble/package.json +1 -1
  125. package/examples/javascript/xy-candlestick/package.json +1 -1
  126. package/examples/javascript/xy-clustered-column/package.json +1 -1
  127. package/examples/javascript/xy-column/package.json +1 -1
  128. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  129. package/examples/javascript/xy-data-grouping/package.json +1 -1
  130. package/examples/javascript/xy-draggable-range/package.json +1 -1
  131. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  132. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  133. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  134. package/examples/javascript/xy-line/package.json +1 -1
  135. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  136. package/examples/javascript/xy-live-data/package.json +1 -1
  137. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  138. package/examples/javascript/xy-ohlc/package.json +1 -1
  139. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  140. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  141. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  142. package/examples/javascript/xy-stacked-column/package.json +1 -1
  143. package/examples/javascript/xy-stacked-step/package.json +1 -1
  144. package/examples/javascript/xy-stock/package.json +1 -1
  145. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  146. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  147. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  148. package/examples/typescript/flow-chord/package.json +1 -1
  149. package/examples/typescript/flow-chord-directed/package.json +1 -1
  150. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  151. package/examples/typescript/flow-sankey/package.json +1 -1
  152. package/examples/typescript/gauge/package.json +1 -1
  153. package/examples/typescript/gauge-bands/package.json +1 -1
  154. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  155. package/examples/typescript/hierarchy-pack/package.json +1 -1
  156. package/examples/typescript/hierarchy-partition/package.json +1 -1
  157. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  158. package/examples/typescript/hierarchy-tree/package.json +1 -1
  159. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  160. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  161. package/examples/typescript/jest/package.json +1 -1
  162. package/examples/typescript/json-pie/package.json +1 -1
  163. package/examples/typescript/json-xy/package.json +1 -1
  164. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  165. package/examples/typescript/map-clustered-points/package.json +1 -1
  166. package/examples/typescript/map-day-and-night/package.json +1 -1
  167. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  168. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  169. package/examples/typescript/map-with-bubbles/package.json +1 -1
  170. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  171. package/examples/typescript/misc-40-charts/package.json +1 -1
  172. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  173. package/examples/typescript/pie-chart/package.json +1 -1
  174. package/examples/typescript/pie-donut-chart/package.json +1 -1
  175. package/examples/typescript/pie-variable-radius/package.json +1 -1
  176. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  177. package/examples/typescript/radar-heat-map/package.json +1 -1
  178. package/examples/typescript/radar-line/package.json +1 -1
  179. package/examples/typescript/radar-time-line/package.json +1 -1
  180. package/examples/typescript/sliced-funnel/package.json +1 -1
  181. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  182. package/examples/typescript/sliced-pyramid/package.json +1 -1
  183. package/examples/typescript/stock-chart/package.json +1 -1
  184. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  185. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  186. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  187. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  188. package/examples/typescript/stock-chart-live/package.json +1 -1
  189. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  190. package/examples/typescript/venn-diagram/package.json +1 -1
  191. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  192. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  193. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  194. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  195. package/examples/typescript/xy-bubble/package.json +1 -1
  196. package/examples/typescript/xy-candlestick/package.json +1 -1
  197. package/examples/typescript/xy-clustered-column/package.json +1 -1
  198. package/examples/typescript/xy-column/package.json +1 -1
  199. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  200. package/examples/typescript/xy-data-grouping/package.json +1 -1
  201. package/examples/typescript/xy-draggable-range/package.json +1 -1
  202. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  203. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  204. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  205. package/examples/typescript/xy-line/package.json +1 -1
  206. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  207. package/examples/typescript/xy-live-data/package.json +1 -1
  208. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  209. package/examples/typescript/xy-ohlc/package.json +1 -1
  210. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  211. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  212. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  213. package/examples/typescript/xy-stacked-column/package.json +1 -1
  214. package/examples/typescript/xy-stacked-step/package.json +1 -1
  215. package/examples/typescript/xy-stock/package.json +1 -1
  216. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  217. package/index.d.ts +1 -0
  218. package/index.d.ts.map +1 -1
  219. package/index.js +1 -0
  220. package/index.js.map +1 -1
  221. package/package.json +1 -1
@@ -1,9 +1,6 @@
1
1
  import { PolylineSeries } from "./PolylineSeries";
2
- import { Label } from "../../../core/render/Label";
3
- import { RoundedRectangle } from "../../../core/render/RoundedRectangle";
4
- import { color } from "../../../core/util/Color";
2
+ import { EditableLabel } from "../../../core/render/EditableLabel";
5
3
  import { Template } from "../../../core/util/Template";
6
- import * as $utils from "../../../core/util/Utils";
7
4
  import * as $array from "../../../core/util/Array";
8
5
  import * as $object from "../../../core/util/Object";
9
6
  export class LabelSeries extends PolylineSeries {
@@ -27,6 +24,18 @@ export class LabelSeries extends PolylineSeries {
27
24
  writable: true,
28
25
  value: "label"
29
26
  });
27
+ Object.defineProperty(this, "_isEditing", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: false
32
+ });
33
+ Object.defineProperty(this, "_isSelected", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: false
38
+ });
30
39
  }
31
40
  _afterNew() {
32
41
  super._afterNew();
@@ -34,42 +43,6 @@ export class LabelSeries extends PolylineSeries {
34
43
  this.strokes.template.set("visible", false);
35
44
  this.fills.template.set("visible", false);
36
45
  this.addTag(this._tag);
37
- const div = document.createElement("div");
38
- //div.style.width = "300px";
39
- div.style.position = "absolute";
40
- div.style.display = "none";
41
- div.className = "am5stock-drawing-label-wrapper";
42
- this._root._inner.appendChild(div);
43
- this.setPrivate("inputContainer", div);
44
- const textArea = document.createElement("textarea");
45
- ;
46
- //textArea.style.textAlign = "center";
47
- //textArea.rows = 2;
48
- textArea.className = "am5stock-drawing-label-input";
49
- this._disposers.push($utils.addEventListener(textArea, "input", () => {
50
- textArea.style.height = "auto";
51
- textArea.style.height = textArea.scrollHeight + "px";
52
- }, false));
53
- div.appendChild(textArea);
54
- div.appendChild(document.createElement("br"));
55
- this.setPrivate("input", textArea);
56
- const saveButton = document.createElement("input");
57
- saveButton.type = "button";
58
- saveButton.value = this._root.language.translateAny("Save");
59
- saveButton.className = "am5-modal-button am5-modal-primary";
60
- this._disposers.push($utils.addEventListener(saveButton, "click", () => {
61
- this.saveText();
62
- }));
63
- div.appendChild(saveButton);
64
- const cancelButton = document.createElement("input");
65
- cancelButton.type = "button";
66
- cancelButton.value = this._root.language.translateAny("Cancel");
67
- cancelButton.className = "am5-modal-button am5-modal-scondary";
68
- this._disposers.push($utils.addEventListener(cancelButton, "click", () => {
69
- this.getPrivate("inputContainer").style.display = "none";
70
- this.getPrivate("input").value = "";
71
- }));
72
- div.appendChild(cancelButton);
73
46
  }
74
47
  _dispatchAdded() {
75
48
  }
@@ -79,17 +52,40 @@ export class LabelSeries extends PolylineSeries {
79
52
  const text = dataContext.text;
80
53
  const template = dataContext.settings;
81
54
  if (template) {
82
- const label = container.children.push(Label.new(this._root, {
55
+ const label = container.children.push(EditableLabel.new(this._root, {
83
56
  themeTags: ["label"],
84
- text: text
57
+ text: text,
58
+ editOn: "none",
59
+ active: true
85
60
  }, template));
86
61
  this.setPrivate("label", label);
87
- container.events.on("click", (_e) => {
62
+ label.on("active", () => {
63
+ this.setTimeout(() => {
64
+ this._isEditing = label.get("active", false);
65
+ }, 200);
66
+ if (!label.get("active")) {
67
+ this.setTimeout(() => {
68
+ if (label) {
69
+ if (label.get("text") == "") {
70
+ this._disposeIndex(dataContext.index);
71
+ }
72
+ }
73
+ }, 100);
74
+ }
75
+ });
76
+ this._isEditing = true;
77
+ container.events.on("click", (e) => {
88
78
  const spriteResizer = this.spriteResizer;
89
79
  if (spriteResizer.get("sprite") == label) {
80
+ this._isEditing = true;
81
+ label.set("active", true);
82
+ this._selectDrawing(dataContext.index, e.originalEvent.ctrlKey, true);
90
83
  spriteResizer.set("sprite", undefined);
91
84
  }
92
85
  else {
86
+ this._isEditing = false;
87
+ this._isSelected = true;
88
+ this._selectDrawing(dataContext.index, e.originalEvent.ctrlKey, true);
93
89
  spriteResizer.set("sprite", label);
94
90
  }
95
91
  });
@@ -113,11 +109,14 @@ export class LabelSeries extends PolylineSeries {
113
109
  this._tweakBullet2(label, dataItem);
114
110
  }
115
111
  }
116
- _tweakBullet2(label, _dataItem) {
117
- label.set("background", RoundedRectangle.new(this._root, { fillOpacity: 0, strokeOpacity: 0, fill: color(0xffffff) }));
112
+ _tweakBullet2(_label, _dataItem) {
118
113
  }
119
114
  _handlePointerClick(event) {
120
- if (this._selected.length > 0) {
115
+ if (this._isEditing) {
116
+ return;
117
+ }
118
+ if (this._selected.length > 0 || this._isSelected) {
119
+ this._isSelected = false;
121
120
  this._hideResizer();
122
121
  this.unselectAllDrawings();
123
122
  }
@@ -126,35 +125,18 @@ export class LabelSeries extends PolylineSeries {
126
125
  this.isDrawing(true);
127
126
  this._increaseIndex();
128
127
  this._di[this._index] = {};
129
- const input = this.getPrivate("input");
130
- input.value = "";
131
- this._clickEvent = event;
132
- const inputDiv = this.getPrivate("inputContainer");
133
- inputDiv.style.display = "block";
134
- inputDiv.style.left = (event.point.x) + "px";
135
- inputDiv.style.top = (event.point.y) + "px";
136
- input.focus();
137
- this.spriteResizer.set("sprite", undefined);
138
- this._dispatchStockEvent("drawingadded", this._drawingId, this._index);
139
- }
140
- }
141
- this.isDrawing(false);
142
- }
143
- saveText() {
144
- const clickEvent = this._clickEvent;
145
- if (clickEvent) {
146
- const text = this.getPrivate("input").value;
147
- if (text != undefined) {
148
- this._addPoint(clickEvent);
128
+ this._addPoint(event);
149
129
  const dataContext = this.data.getIndex(this.data.length - 1);
150
- dataContext.text = text;
130
+ dataContext.text = "";
151
131
  dataContext.index = this._index;
152
132
  dataContext.corner = 0;
153
133
  dataContext.settings = this._getLabelTemplate();
154
134
  this._afterTextSave(dataContext);
135
+ this.spriteResizer.set("sprite", undefined);
136
+ this._dispatchStockEvent("drawingadded", this._drawingId, this._index);
155
137
  }
156
- this.getPrivate("inputContainer").style.display = "none";
157
138
  }
139
+ this.isDrawing(false);
158
140
  }
159
141
  _afterTextSave(_dataContext) {
160
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LabelSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/LabelSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISpritePointerEvent } from \"../../../core/render/Sprite\";\r\nimport type { Container } from \"../../../core/render/Container\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { SpriteResizer } from \"../../../core/render/SpriteResizer\";\r\nimport type { Graphics } from \"../../../core/render/Graphics\";\r\nimport type { IDrawingSeriesDataItem } from \"./DrawingSeries\";\r\n\r\nimport { PolylineSeries, IPolylineSeriesSettings, IPolylineSeriesPrivate, IPolylineSeriesDataItem } from \"./PolylineSeries\";\r\nimport { Label } from \"../../../core/render/Label\";\r\nimport { RoundedRectangle } from \"../../../core/render/RoundedRectangle\";\r\nimport { color, Color } from \"../../../core/util/Color\";\r\nimport { Template } from \"../../../core/util/Template\";\r\n\r\nimport * as $utils from \"../../../core/util/Utils\";\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $object from \"../../../core/util/Object\";\r\n\r\nexport interface ILabelSeriesDataItem extends IPolylineSeriesDataItem {\r\n}\r\n\r\nexport interface ILabelSeriesSettings extends IPolylineSeriesSettings {\r\n\r\n\t/**\r\n\t * Label font size.\r\n\t */\r\n\tlabelFontSize?: number | string | undefined;\r\n\r\n\t/**\r\n\t * Label font damily.\r\n\t */\r\n\tlabelFontFamily?: string;\r\n\r\n\t/**\r\n\t * Font weight.\r\n\t */\r\n\tlabelFontWeight?: \"normal\" | \"bold\" | \"bolder\" | \"lighter\" | \"100\" | \"200\" | \"300\" | \"400\" | \"500\" | \"600\" | \"700\" | \"800\" | \"900\";\r\n\r\n\t/**\r\n\t * Font style.\r\n\t */\r\n\tlabelFontStyle?: \"normal\" | \"italic\" | \"oblique\";\r\n\r\n\t/**\r\n\t * Label color.\r\n\t */\r\n\tlabelFill?: Color;\r\n\r\n}\r\n\r\nexport interface ILabelSeriesPrivate extends IPolylineSeriesPrivate {\r\n\tinputContainer: HTMLDivElement;\r\n\tinput: HTMLTextAreaElement;\r\n\tlabel: Label;\r\n}\r\n\r\nexport class LabelSeries extends PolylineSeries {\r\n\tpublic static className: string = \"LabelSeries\";\r\n\tpublic static classNames: Array<string> = PolylineSeries.classNames.concat([LabelSeries.className]);\r\n\r\n\tdeclare public _settings: ILabelSeriesSettings;\r\n\tdeclare public _privateSettings: ILabelSeriesPrivate;\r\n\tdeclare public _dataItemSettings: ILabelSeriesDataItem;\r\n\r\n\tpublic spriteResizer!: SpriteResizer;\r\n\r\n\tprotected _clickEvent?: ISpritePointerEvent;\r\n\r\n\tprotected _tag = \"label\";\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.spriteResizer = this._getStockChart().spriteResizer;\r\n\r\n\t\tthis.strokes.template.set(\"visible\", false);\r\n\t\tthis.fills.template.set(\"visible\", false);\r\n\r\n\t\tthis.addTag(this._tag);\r\n\r\n\t\tconst div = document.createElement(\"div\");\r\n\t\t//div.style.width = \"300px\";\r\n\t\tdiv.style.position = \"absolute\";\r\n\t\tdiv.style.display = \"none\";\r\n\t\tdiv.className = \"am5stock-drawing-label-wrapper\";\r\n\t\tthis._root._inner.appendChild(div);\r\n\t\tthis.setPrivate(\"inputContainer\", div);\r\n\r\n\t\tconst textArea = document.createElement(\"textarea\");;\r\n\t\t//textArea.style.textAlign = \"center\";\r\n\t\t//textArea.rows = 2;\r\n\t\ttextArea.className = \"am5stock-drawing-label-input\";\r\n\t\tthis._disposers.push($utils.addEventListener(textArea, \"input\", () => {\r\n\t\t\ttextArea.style.height = \"auto\";\r\n\t\t\ttextArea.style.height = textArea.scrollHeight + \"px\";\r\n\t\t}, false));\r\n\r\n\r\n\t\tdiv.appendChild(textArea);\r\n\t\tdiv.appendChild(document.createElement(\"br\"));\r\n\t\tthis.setPrivate(\"input\", textArea);\r\n\r\n\t\tconst saveButton = document.createElement(\"input\");\r\n\t\tsaveButton.type = \"button\";\r\n\t\tsaveButton.value = this._root.language.translateAny(\"Save\");\r\n\t\tsaveButton.className = \"am5-modal-button am5-modal-primary\";\r\n\t\tthis._disposers.push($utils.addEventListener(saveButton, \"click\", () => {\r\n\t\t\tthis.saveText();\r\n\t\t}));\r\n\r\n\t\tdiv.appendChild(saveButton);\r\n\r\n\t\tconst cancelButton = document.createElement(\"input\");\r\n\t\tcancelButton.type = \"button\";\r\n\t\tcancelButton.value = this._root.language.translateAny(\"Cancel\");\r\n\t\tcancelButton.className = \"am5-modal-button am5-modal-scondary\";\r\n\t\tthis._disposers.push($utils.addEventListener(cancelButton, \"click\", () => {\r\n\t\t\tthis.getPrivate(\"inputContainer\").style.display = \"none\";\r\n\t\t\tthis.getPrivate(\"input\").value = \"\";\r\n\t\t}));\r\n\t\tdiv.appendChild(cancelButton);\r\n\t}\r\n\r\n\tprotected _dispatchAdded(): void {\r\n\r\n\t}\r\n\r\n\tprotected _setContextSprite(_context: any) { }\r\n\r\n\tprotected _tweakBullet(container: Container, dataItem: DataItem<ILabelSeriesDataItem>) {\r\n\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\tconst text = dataContext.text;\r\n\t\tconst template = dataContext.settings;\r\n\t\tif (template) {\r\n\t\t\tconst label = container.children.push(Label.new(this._root, {\r\n\t\t\t\tthemeTags: [\"label\"],\r\n\t\t\t\ttext: text\r\n\t\t\t}, template));\r\n\r\n\t\t\tthis.setPrivate(\"label\", label);\r\n\r\n\t\t\tcontainer.events.on(\"click\", (_e) => {\r\n\t\t\t\tconst spriteResizer = this.spriteResizer;\r\n\t\t\t\tif (spriteResizer.get(\"sprite\") == label) {\r\n\t\t\t\t\tspriteResizer.set(\"sprite\", undefined);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tspriteResizer.set(\"sprite\", label);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tcontainer.events.on(\"pointerover\", () => {\r\n\t\t\t\tthis._isHover = true;\r\n\t\t\t})\r\n\r\n\t\t\tcontainer.events.on(\"pointerout\", () => {\r\n\t\t\t\tthis._isHover = false;\r\n\t\t\t})\r\n\r\n\t\t\tlabel.on(\"scale\", (scale) => {\r\n\t\t\t\ttemplate.set(\"scale\", scale);\r\n\t\t\t})\r\n\r\n\t\t\tlabel.on(\"rotation\", (rotation) => {\r\n\t\t\t\ttemplate.set(\"rotation\", rotation)\r\n\t\t\t})\r\n\r\n\t\t\tlabel.events.on(\"boundschanged\", () => {\r\n\t\t\t\tthis.markDirty();\r\n\t\t\t})\r\n\r\n\t\t\tdataContext.sprite = container;\r\n\t\t\tdataContext.label = label;\r\n\r\n\t\t\tthis._tweakBullet2(label, dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _tweakBullet2(label: Label, _dataItem: DataItem<ILabelSeriesDataItem>) {\r\n\t\tlabel.set(\"background\", RoundedRectangle.new(this._root, { fillOpacity: 0, strokeOpacity: 0, fill: color(0xffffff) }))\r\n\t}\r\n\r\n\tprotected _handlePointerClick(event: ISpritePointerEvent) {\r\n\t\tif (this._selected.length > 0) {\r\n\t\t\tthis._hideResizer();\r\n\t\t\tthis.unselectAllDrawings();\r\n\t\t}\r\n\t\telse if (this._drawingEnabled) {\r\n\t\t\tif (!this._isHover) {\r\n\t\t\t\tthis.isDrawing(true);\r\n\t\t\t\tthis._increaseIndex();\r\n\t\t\t\tthis._di[this._index] = {};\r\n\r\n\t\t\t\tconst input = this.getPrivate(\"input\");\r\n\t\t\t\tinput.value = \"\";\r\n\r\n\t\t\t\tthis._clickEvent = event;\r\n\t\t\t\tconst inputDiv = this.getPrivate(\"inputContainer\");\r\n\t\t\t\tinputDiv.style.display = \"block\";\r\n\t\t\t\tinputDiv.style.left = (event.point.x) + \"px\";\r\n\t\t\t\tinputDiv.style.top = (event.point.y) + \"px\";\r\n\t\t\t\tinput.focus();\r\n\r\n\t\t\t\tthis.spriteResizer.set(\"sprite\", undefined);\t\t\t\t\r\n\r\n\t\t\t\tthis._dispatchStockEvent(\"drawingadded\", this._drawingId, this._index);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.isDrawing(false);\r\n\t}\r\n\r\n\tpublic saveText() {\r\n\t\tconst clickEvent = this._clickEvent;\r\n\t\tif (clickEvent) {\r\n\t\t\tconst text = this.getPrivate(\"input\").value;\r\n\t\t\tif (text != undefined) {\r\n\t\t\t\tthis._addPoint(clickEvent);\r\n\t\t\t\tconst dataContext = this.data.getIndex(this.data.length - 1) as any;\r\n\t\t\t\tdataContext.text = text;\r\n\t\t\t\tdataContext.index = this._index;\r\n\t\t\t\tdataContext.corner = 0;\r\n\t\t\t\tdataContext.settings = this._getLabelTemplate();\r\n\t\t\t\tthis._afterTextSave(dataContext);\r\n\t\t\t}\r\n\t\t\tthis.getPrivate(\"inputContainer\").style.display = \"none\";\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _afterTextSave(_dataContext: any) {\r\n\r\n\t}\r\n\r\n\tprotected _getLabelTemplate(): Template<any> {\r\n\t\tconst template: any = {};\r\n\r\n\t\tconst labelFontSize = this.get(\"labelFontSize\");\r\n\t\tif (labelFontSize != null) {\r\n\t\t\ttemplate.fontSize = labelFontSize;\r\n\t\t}\r\n\r\n\t\tconst labelFontFamily = this.get(\"labelFontFamily\");\r\n\t\tif (labelFontFamily != null) {\r\n\t\t\ttemplate.fontFamily = labelFontFamily;\r\n\t\t}\r\n\r\n\t\tconst labelFontWeight = this.get(\"labelFontWeight\");\r\n\t\tif (labelFontWeight != null) {\r\n\t\t\ttemplate.fontWeight = labelFontWeight;\r\n\t\t}\r\n\r\n\t\tconst labelFontStyle = this.get(\"labelFontStyle\");\r\n\t\tif (labelFontStyle != null) {\r\n\t\t\ttemplate.fontStyle = labelFontStyle;\r\n\t\t}\r\n\r\n\t\tconst labelFill = this.get(\"labelFill\");\r\n\t\tif (labelFill != null) {\r\n\t\t\ttemplate.fill = labelFill;\r\n\t\t}\r\n\r\n\t\treturn Template.new(template);\r\n\t}\r\n\r\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper.disposeDataItem(dataItem);\r\n\t\tthis.spriteResizer.set(\"sprite\", undefined);\r\n\t\tthis._isHover = false;\r\n\t}\r\n\r\n\tprotected _hideAllBullets() {\r\n\r\n\t}\r\n\r\n\tprotected _updateSelector(selector: Graphics, index: number) {\r\n\t\tconst context = this._getContext(index);\r\n\t\tif (context) {\r\n\t\t\tconst sprite = context.sprite;\r\n\r\n\t\t\tif (sprite) {\r\n\t\t\t\tif (sprite.dataItem == this.spriteResizer.get(\"sprite\")?.dataItem) {\r\n\t\t\t\t\tselector.hide(0);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this._selected.indexOf(index) != -1) {\r\n\t\t\t\t\t\tselector.show(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst selectorPadding = this.get(\"selectorPadding\", 5);\r\n\r\n\t\t\t\tlet bounds = sprite.bounds();\r\n\r\n\t\t\t\tlet w = (bounds.right - bounds.left) + selectorPadding * 2;\r\n\t\t\t\tlet h = (bounds.bottom - bounds.top) + selectorPadding * 2;\r\n\r\n\t\t\t\tselector.setAll({\r\n\t\t\t\t\twidth: w,\r\n\t\t\t\t\theight: h,\r\n\t\t\t\t\tx: bounds.left - selectorPadding,\r\n\t\t\t\t\ty: bounds.top - selectorPadding\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\t\tif (this.isDirty(\"labelFontSize\") || this.isDirty(\"labelFontFamily\") || this.isDirty(\"labelFontWeight\") || this.isDirty(\"labelFontStyle\") || this.isDirty(\"labelFill\")) {\r\n\t\t\t$array.each(this._selected, (i) => {\r\n\t\t\t\tthis._applySettings(i);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _applySettings(index: number, _settings?: { [index: string]: any }) {\r\n\t\tlet context = this._getContext(index);\r\n\r\n\t\tif (context) {\r\n\t\t\tlet label = context.label;\r\n\r\n\t\t\tif (label) {\r\n\t\t\t\tlet template = context.settings;\r\n\r\n\t\t\t\tconst labelSettings = {\r\n\t\t\t\t\tfontSize: this.get(\"labelFontSize\"),\r\n\t\t\t\t\tfontFamily: this.get(\"labelFontFamily\"),\r\n\t\t\t\t\tfontWeight: this.get(\"labelFontWeight\"),\r\n\t\t\t\t\tfontStyle: this.get(\"labelFontStyle\"),\r\n\t\t\t\t\tfill: this.get(\"labelFill\"),\r\n\t\t\t\t\tfillColor: this.get(\"fillColor\")\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst defaultState = label.states.lookup(\"default\")!;\r\n\t\t\t\tif (labelSettings) {\r\n\t\t\t\t\t$object.each(labelSettings, (key, value) => {\r\n\t\t\t\t\t\tlabel.set(key as any, value);\r\n\t\t\t\t\t\tdefaultState.set(key as any, value);\r\n\t\t\t\t\t\tif (template) {\r\n\t\t\t\t\t\t\ttemplate.set(key, value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handleBulletDragStart(event: ISpritePointerEvent) {\r\n\t\t// don't call super\t\t\r\n\t\tconst stockChart = this._getStockChart();\r\n\t\tif (stockChart) {\r\n\t\t\tstockChart._dragStartDrawing(event);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handleBulletDragStop(event: ISpritePointerEvent) {\r\n\t\tconst stockChart = this._getStockChart();\r\n\t\tif (stockChart) {\r\n\t\t\tstockChart._dragStopDrawing(event);\r\n\t\t}\r\n\r\n\t\tthis._root.events.once(\"frameended\", () => {\r\n\t\t\tthis._positionBullets(event.target.dataItem as DataItem<IDrawingSeriesDataItem>);\r\n\t\t})\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"LabelSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/LabelSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISpritePointerEvent } from \"../../../core/render/Sprite\";\r\nimport type { Container } from \"../../../core/render/Container\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { SpriteResizer } from \"../../../core/render/SpriteResizer\";\r\nimport type { Graphics } from \"../../../core/render/Graphics\";\r\nimport type { IDrawingSeriesDataItem } from \"./DrawingSeries\";\r\n\r\nimport { PolylineSeries, IPolylineSeriesSettings, IPolylineSeriesPrivate, IPolylineSeriesDataItem } from \"./PolylineSeries\";\r\nimport { EditableLabel } from \"../../../core/render/EditableLabel\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\nimport { Template } from \"../../../core/util/Template\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $object from \"../../../core/util/Object\";\r\n\r\nexport interface ILabelSeriesDataItem extends IPolylineSeriesDataItem {\r\n}\r\n\r\nexport interface ILabelSeriesSettings extends IPolylineSeriesSettings {\r\n\r\n\t/**\r\n\t * Label font size.\r\n\t */\r\n\tlabelFontSize?: number | string | undefined;\r\n\r\n\t/**\r\n\t * Label font damily.\r\n\t */\r\n\tlabelFontFamily?: string;\r\n\r\n\t/**\r\n\t * Font weight.\r\n\t */\r\n\tlabelFontWeight?: \"normal\" | \"bold\" | \"bolder\" | \"lighter\" | \"100\" | \"200\" | \"300\" | \"400\" | \"500\" | \"600\" | \"700\" | \"800\" | \"900\";\r\n\r\n\t/**\r\n\t * Font style.\r\n\t */\r\n\tlabelFontStyle?: \"normal\" | \"italic\" | \"oblique\";\r\n\r\n\t/**\r\n\t * Label color.\r\n\t */\r\n\tlabelFill?: Color;\r\n\r\n}\r\n\r\nexport interface ILabelSeriesPrivate extends IPolylineSeriesPrivate {\r\n\tinputContainer: HTMLDivElement;\r\n\tinput: HTMLTextAreaElement;\r\n\tlabel: EditableLabel;\r\n}\r\n\r\nexport class LabelSeries extends PolylineSeries {\r\n\tpublic static className: string = \"LabelSeries\";\r\n\tpublic static classNames: Array<string> = PolylineSeries.classNames.concat([LabelSeries.className]);\r\n\r\n\tdeclare public _settings: ILabelSeriesSettings;\r\n\tdeclare public _privateSettings: ILabelSeriesPrivate;\r\n\tdeclare public _dataItemSettings: ILabelSeriesDataItem;\r\n\r\n\tpublic spriteResizer!: SpriteResizer;\r\n\r\n\tprotected _clickEvent?: ISpritePointerEvent;\r\n\r\n\tprotected _tag = \"label\";\r\n\r\n\tprotected _isEditing: boolean = false;\r\n\r\n\tprotected _isSelected: boolean = false;\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.spriteResizer = this._getStockChart().spriteResizer;\r\n\r\n\t\tthis.strokes.template.set(\"visible\", false);\r\n\t\tthis.fills.template.set(\"visible\", false);\r\n\r\n\t\tthis.addTag(this._tag);\r\n\t}\r\n\r\n\tprotected _dispatchAdded(): void {\r\n\r\n\t}\r\n\r\n\tprotected _setContextSprite(_context: any) { }\r\n\r\n\tprotected _tweakBullet(container: Container, dataItem: DataItem<ILabelSeriesDataItem>) {\r\n\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\tconst text = dataContext.text;\r\n\t\tconst template = dataContext.settings;\r\n\r\n\t\tif (template) {\r\n\t\t\tconst label = container.children.push(EditableLabel.new(this._root, {\r\n\t\t\t\tthemeTags: [\"label\"],\r\n\t\t\t\ttext: text,\r\n\t\t\t\teditOn: \"none\",\r\n\t\t\t\tactive: true\r\n\t\t\t}, template));\r\n\r\n\t\t\tthis.setPrivate(\"label\", label);\r\n\r\n\t\t\tlabel.on(\"active\", () => {\r\n\t\t\t\tthis.setTimeout(() => {\r\n\t\t\t\t\tthis._isEditing = label.get(\"active\", false);\r\n\t\t\t\t}, 200)\r\n\r\n\t\t\t\tif (!label.get(\"active\")) {\r\n\t\t\t\t\tthis.setTimeout(() => {\r\n\t\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\t\tif (label.get(\"text\") == \"\") {\r\n\t\t\t\t\t\t\t\tthis._disposeIndex(dataContext.index);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 100)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis._isEditing = true;\r\n\r\n\t\t\tcontainer.events.on(\"click\", (e) => {\r\n\t\t\t\tconst spriteResizer = this.spriteResizer;\r\n\t\t\t\tif (spriteResizer.get(\"sprite\") == label) {\r\n\t\t\t\t\tthis._isEditing = true;\r\n\t\t\t\t\tlabel.set(\"active\", true);\r\n\t\t\t\t\tthis._selectDrawing(dataContext.index, (e.originalEvent as any).ctrlKey, true);\r\n\t\t\t\t\tspriteResizer.set(\"sprite\", undefined);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._isEditing = false;\r\n\t\t\t\t\tthis._isSelected = true;\r\n\t\t\t\t\tthis._selectDrawing(dataContext.index, (e.originalEvent as any).ctrlKey, true);\r\n\t\t\t\t\tspriteResizer.set(\"sprite\", label);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tcontainer.events.on(\"pointerover\", () => {\r\n\t\t\t\tthis._isHover = true;\r\n\t\t\t})\r\n\r\n\t\t\tcontainer.events.on(\"pointerout\", () => {\r\n\t\t\t\tthis._isHover = false;\r\n\t\t\t})\r\n\r\n\t\t\tlabel.on(\"scale\", (scale) => {\r\n\t\t\t\ttemplate.set(\"scale\", scale);\r\n\t\t\t})\r\n\r\n\t\t\tlabel.on(\"rotation\", (rotation) => {\r\n\t\t\t\ttemplate.set(\"rotation\", rotation)\r\n\t\t\t})\r\n\r\n\t\t\tlabel.events.on(\"boundschanged\", () => {\r\n\t\t\t\tthis.markDirty();\r\n\t\t\t})\r\n\r\n\t\t\tdataContext.sprite = container;\r\n\t\t\tdataContext.label = label;\r\n\r\n\t\t\tthis._tweakBullet2(label, dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _tweakBullet2(_label: EditableLabel, _dataItem: DataItem<ILabelSeriesDataItem>) {\r\n\r\n\t}\r\n\r\n\tprotected _handlePointerClick(event: ISpritePointerEvent) {\r\n\t\tif (this._isEditing) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this._selected.length > 0 || this._isSelected) {\r\n\t\t\tthis._isSelected = false;\r\n\t\t\tthis._hideResizer();\r\n\t\t\tthis.unselectAllDrawings();\r\n\t\t}\r\n\t\telse if (this._drawingEnabled) {\r\n\t\t\tif (!this._isHover) {\r\n\t\t\t\tthis.isDrawing(true);\r\n\t\t\t\tthis._increaseIndex();\r\n\t\t\t\tthis._di[this._index] = {};\r\n\r\n\t\t\t\tthis._addPoint(event);\r\n\t\t\t\tconst dataContext = this.data.getIndex(this.data.length - 1) as any;\r\n\t\t\t\tdataContext.text = \"\";\r\n\t\t\t\tdataContext.index = this._index;\r\n\t\t\t\tdataContext.corner = 0;\r\n\t\t\t\tdataContext.settings = this._getLabelTemplate();\r\n\t\t\t\tthis._afterTextSave(dataContext);\r\n\r\n\t\t\t\tthis.spriteResizer.set(\"sprite\", undefined);\r\n\r\n\t\t\t\tthis._dispatchStockEvent(\"drawingadded\", this._drawingId, this._index);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.isDrawing(false);\r\n\t}\r\n\r\n\tprotected _afterTextSave(_dataContext: any) {\r\n\r\n\t}\r\n\r\n\tprotected _getLabelTemplate(): Template<any> {\r\n\t\tconst template: any = {};\r\n\r\n\t\tconst labelFontSize = this.get(\"labelFontSize\");\r\n\t\tif (labelFontSize != null) {\r\n\t\t\ttemplate.fontSize = labelFontSize;\r\n\t\t}\r\n\r\n\t\tconst labelFontFamily = this.get(\"labelFontFamily\");\r\n\t\tif (labelFontFamily != null) {\r\n\t\t\ttemplate.fontFamily = labelFontFamily;\r\n\t\t}\r\n\r\n\t\tconst labelFontWeight = this.get(\"labelFontWeight\");\r\n\t\tif (labelFontWeight != null) {\r\n\t\t\ttemplate.fontWeight = labelFontWeight;\r\n\t\t}\r\n\r\n\t\tconst labelFontStyle = this.get(\"labelFontStyle\");\r\n\t\tif (labelFontStyle != null) {\r\n\t\t\ttemplate.fontStyle = labelFontStyle;\r\n\t\t}\r\n\r\n\t\tconst labelFill = this.get(\"labelFill\");\r\n\t\tif (labelFill != null) {\r\n\t\t\ttemplate.fill = labelFill;\r\n\t\t}\r\n\r\n\t\treturn Template.new(template);\r\n\t}\r\n\r\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper.disposeDataItem(dataItem);\r\n\t\tthis.spriteResizer.set(\"sprite\", undefined);\r\n\t\tthis._isHover = false;\r\n\t}\r\n\r\n\tprotected _hideAllBullets() {\r\n\r\n\t}\r\n\r\n\tprotected _updateSelector(selector: Graphics, index: number) {\r\n\t\tconst context = this._getContext(index);\r\n\t\tif (context) {\r\n\t\t\tconst sprite = context.sprite;\r\n\r\n\t\t\tif (sprite) {\r\n\t\t\t\tif (sprite.dataItem == this.spriteResizer.get(\"sprite\")?.dataItem) {\r\n\t\t\t\t\tselector.hide(0);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this._selected.indexOf(index) != -1) {\r\n\t\t\t\t\t\tselector.show(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst selectorPadding = this.get(\"selectorPadding\", 5);\r\n\r\n\t\t\t\tlet bounds = sprite.bounds();\r\n\r\n\t\t\t\tlet w = (bounds.right - bounds.left) + selectorPadding * 2;\r\n\t\t\t\tlet h = (bounds.bottom - bounds.top) + selectorPadding * 2;\r\n\r\n\t\t\t\tselector.setAll({\r\n\t\t\t\t\twidth: w,\r\n\t\t\t\t\theight: h,\r\n\t\t\t\t\tx: bounds.left - selectorPadding,\r\n\t\t\t\t\ty: bounds.top - selectorPadding\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\t\tif (this.isDirty(\"labelFontSize\") || this.isDirty(\"labelFontFamily\") || this.isDirty(\"labelFontWeight\") || this.isDirty(\"labelFontStyle\") || this.isDirty(\"labelFill\")) {\r\n\t\t\t$array.each(this._selected, (i) => {\r\n\t\t\t\tthis._applySettings(i);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _applySettings(index: number, _settings?: { [index: string]: any }) {\r\n\t\tlet context = this._getContext(index);\r\n\r\n\t\tif (context) {\r\n\t\t\tlet label = context.label;\r\n\r\n\t\t\tif (label) {\r\n\t\t\t\tlet template = context.settings;\r\n\r\n\t\t\t\tconst labelSettings = {\r\n\t\t\t\t\tfontSize: this.get(\"labelFontSize\"),\r\n\t\t\t\t\tfontFamily: this.get(\"labelFontFamily\"),\r\n\t\t\t\t\tfontWeight: this.get(\"labelFontWeight\"),\r\n\t\t\t\t\tfontStyle: this.get(\"labelFontStyle\"),\r\n\t\t\t\t\tfill: this.get(\"labelFill\"),\r\n\t\t\t\t\tfillColor: this.get(\"fillColor\")\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst defaultState = label.states.lookup(\"default\")!;\r\n\t\t\t\tif (labelSettings) {\r\n\t\t\t\t\t$object.each(labelSettings, (key, value) => {\r\n\t\t\t\t\t\tlabel.set(key as any, value);\r\n\t\t\t\t\t\tdefaultState.set(key as any, value);\r\n\t\t\t\t\t\tif (template) {\r\n\t\t\t\t\t\t\ttemplate.set(key, value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handleBulletDragStart(event: ISpritePointerEvent) {\r\n\t\t// don't call super\t\t\r\n\t\tconst stockChart = this._getStockChart();\r\n\t\tif (stockChart) {\r\n\t\t\tstockChart._dragStartDrawing(event);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handleBulletDragStop(event: ISpritePointerEvent) {\r\n\t\tconst stockChart = this._getStockChart();\r\n\t\tif (stockChart) {\r\n\t\t\tstockChart._dragStopDrawing(event);\r\n\t\t}\r\n\r\n\t\tthis._root.events.once(\"frameended\", () => {\r\n\t\t\tthis._positionBullets(event.target.dataItem as DataItem<IDrawingSeriesDataItem>);\r\n\t\t})\r\n\t}\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"VolumeProfile.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/VolumeProfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAK5D,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IACjE;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,YAAY,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;CAC/D;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;CAC7D;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAElF,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C;;OAEG;IACY,MAAM,EAAE,YAAY,CAAC;IAE7B,iBAAiB,EAAE,yBAAyB,EAAE,CA6BlD;IAEI,KAAK,EAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAEjC,QAAQ,EAAG,YAAY,CAAC;IAE/B,SAAS,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC;IAErC,SAAS,CAAC,SAAS;IA4FnB,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY;IAmDzC,eAAe,IAAI,IAAI;IAqD9B;;OAEG;IACI,WAAW;IAgRlB,SAAS,CAAC,QAAQ;CAUlB"}
1
+ {"version":3,"file":"VolumeProfile.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/VolumeProfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAK5D,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IACjE;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,YAAY,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;CAC/D;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;CAC7D;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAElF,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C;;OAEG;IACY,MAAM,EAAE,YAAY,CAAC;IAE7B,iBAAiB,EAAE,yBAAyB,EAAE,CA6BlD;IAEI,KAAK,EAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAEjC,QAAQ,EAAG,YAAY,CAAC;IAE/B,SAAS,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC;IAErC,SAAS,CAAC,SAAS;IA4FnB,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY;IAmDzC,eAAe,IAAI,IAAI;IAqD9B;;OAEG;IACI,WAAW;IAkNlB,SAAS,CAAC,QAAQ;CAUlB"}
@@ -350,71 +350,6 @@ export class VolumeProfile extends Indicator {
350
350
  let dlen = dataUp.length;
351
351
  dataUp[hi].area = true;
352
352
  dataDown[hi].area = true;
353
- /*
354
- // with two rows
355
- while (area < valueArea) {
356
- let rowAbove1 = hi + cu;
357
- let rowAbove2 = hi + cu + 1;
358
-
359
- let sumAbove = 0
360
- if (rowAbove1 < dlen) {
361
- sumAbove += dataUp[rowAbove1].total;
362
- }
363
- if (rowAbove2 < dlen) {
364
- sumAbove += dataUp[rowAbove2].total;
365
- }
366
-
367
- let rowBelow1 = hi - cd;
368
- let rowBelow2 = hi - cd - 1;
369
-
370
- let sumBelow = 0
371
- if (rowBelow1 >= 0) {
372
- sumBelow += dataUp[rowBelow1].total;
373
- }
374
- if (rowBelow2 >= 0) {
375
- sumBelow += dataUp[rowBelow2].total;
376
- }
377
-
378
- if (sumBelow <= sumAbove) {
379
- area += sumAbove;
380
- if (rowAbove1 < dlen) {
381
- dataDown[rowAbove1].area = true;
382
- dataUp[rowAbove1].area = true;
383
- cu++;
384
- }
385
- if (rowAbove2 < dlen) {
386
- dataDown[rowAbove2].area = true;
387
- dataUp[rowAbove2].area = true;
388
- cu++;
389
- }
390
- }
391
- else {
392
- area += sumBelow;
393
- if (rowBelow1 >= 0) {
394
- dataDown[rowBelow1].area = true;
395
- dataUp[rowBelow1].area = true;
396
- cd++;
397
- }
398
- if (rowBelow2 >= 0) {
399
- dataDown[rowBelow2].area = true;
400
- dataUp[rowBelow2].area = true;
401
- cd++;
402
- }
403
- }
404
-
405
- if (sumBelow == 0) {
406
- cd++;
407
- }
408
- if (sumAbove == 0) {
409
- cu++;
410
- }
411
-
412
- if ((cd > dlen && cu > dlen)) {
413
- break;
414
- }
415
-
416
- }
417
- */
418
353
  // single row
419
354
  while (area < valueArea) {
420
355
  let rowAbove1 = hi + cu;
@@ -464,6 +399,10 @@ export class VolumeProfile extends Indicator {
464
399
  this.upSeries.data.setAll(dataUp);
465
400
  }
466
401
  }
402
+ else {
403
+ this.upSeries.data.clear();
404
+ this.series.data.clear();
405
+ }
467
406
  }
468
407
  this.series.columns.each((column) => {
469
408
  column._markDirtyKey("fillOpacity");
@@ -1 +1 @@
1
- {"version":3,"file":"VolumeProfile.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/VolumeProfile.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DateAxis } from \"../../xy/axes/DateAxis\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\nimport type { Graphics } from \"../../../core/render/Graphics\";\r\nimport type { XYSeries } from \"../../xy/series/XYSeries\";\r\n\r\nimport { AxisRendererX } from \"../../xy/axes/AxisRendererX\";\r\nimport { ValueAxis } from \"../../xy/axes/ValueAxis\";\r\nimport { Indicator, IIndicatorSettings, IIndicatorPrivate, IIndicatorEvents, IIndicatorEditableSetting } from \"./Indicator\";\r\nimport { ColumnSeries } from \"../../xy/series/ColumnSeries\";\r\nimport { percent } from \"../../../core/util/Percent\";\r\n\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IVolumeProfileSettings extends IIndicatorSettings {\r\n\t/**\r\n\t * Volume up color.\r\n\t */\r\n\tupColor?: Color;\r\n\r\n\t/**\r\n\t * Volume down color.\r\n\t */\r\n\tdownColor?: Color;\r\n\r\n\t/**\r\n\t * Type of count.\r\n\t */\r\n\tcountType?: \"rows\" | \"ticks\";\r\n\r\n\t/**\r\n\t * Number of rows or number of ticks, depending on the countType.\r\n\t *\r\n\t * @default 24\r\n\t */\r\n\tcount?: number;\r\n\r\n\t/**\r\n\t * Max width of columns in percent (%).\r\n\t * \r\n\t * @default 40\r\n\t */\r\n\taxisWidth?: number;\r\n\r\n\t/**\r\n\t * Specifies what percentage of all volume for the trading session should\r\n\t * be highlighted by Value Area.\r\n\t * \r\n\t * @default 70\r\n\t */\r\n\tvalueArea?: number;\r\n\r\n\t/**\r\n\t * Opacity of columns which fall withing value area.\r\n\t * \r\n\t * @default .7\r\n\t */\r\n\tvalueAreaOpacity?: number;\r\n\r\n\t/**\r\n\t * Chart's main volume series.\r\n\t */\r\n\tvolumeSeries: XYSeries;\r\n}\r\n\r\nexport interface IVolumeProfilePrivate extends IIndicatorPrivate {\r\n}\r\n\r\nexport interface IVolumeProfileEvents extends IIndicatorEvents {\r\n}\r\n\r\n/**\r\n * An implementation of a Volume Profile indicator for a [[StockChart]].\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n * @since 5.7.0\r\n */\r\nexport class VolumeProfile extends Indicator {\r\n\tpublic static className: string = \"VolumeProfile\";\r\n\tpublic static classNames: Array<string> = Indicator.classNames.concat([VolumeProfile.className]);\r\n\r\n\tdeclare public _settings: IVolumeProfileSettings;\r\n\tdeclare public _privateSettings: IVolumeProfilePrivate;\r\n\tdeclare public _events: IVolumeProfileEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: ColumnSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"countType\",\r\n\t\tname: this.root.language.translateAny(\"Count\"),\r\n\t\ttype: \"dropdown\",\r\n\t\toptions: [\r\n\t\t\t{ value: \"rows\", text: this.root.language.translateAny(\"number of rows\"), extTarget: \"count\", extTargetValue: 24 , extTargetMinValue: 1 },\r\n\t\t\t{ value: \"ticks\", text: this.root.language.translateAny(\"ticks per row\"), extTarget: \"count\", extTargetValue: 1000, extTargetMinValue: 200 }\r\n\t\t]\r\n\t}, {\r\n\t\tkey: \"count\",\r\n\t\tname: this.root.language.translateAny(\"Count\"),\r\n\t\ttype: \"number\",\r\n\t\tminValue: 1\r\n\t}, {\r\n\t\tkey: \"valueArea\",\r\n\t\tname: this.root.language.translateAny(\"Value Area\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"upColor\",\r\n\t\tname: this.root.language.translateAny(\"Up volume\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"downColor\",\r\n\t\tname: this.root.language.translateAny(\"Down volume\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"axisWidth\",\r\n\t\tname: this.root.language.translateAny(\"Width %\"),\r\n\t\ttype: \"number\"\r\n\t}];\r\n\r\n\tpublic xAxis!: ValueAxis<AxisRendererX>;\r\n\r\n\tpublic upSeries!: ColumnSeries;\r\n\r\n\tprotected _previousColumn?: Graphics;\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst volumeSeries = this.get(\"volumeSeries\");\r\n\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\tif (volumeSeries) {\r\n\t\t\tconst chart = stockSeries.chart;\r\n\t\t\tconst root = this._root;\r\n\r\n\t\t\tif (chart) {\r\n\t\t\t\tconst yAxis = stockSeries.get(\"yAxis\") as any;\r\n\r\n\t\t\t\tconst step = yAxis.getPrivate(\"step\");\r\n\t\t\t\tif (step !== undefined) {\r\n\t\t\t\t\tconst val = yAxis.getPrivate(\"step\") * 50;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetValue = val;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetMinValue = val * 0.2;\r\n\t\t\t\t}\r\n\t\t\t\tyAxis.onPrivate(\"step\", (step: number) => {\r\n\t\t\t\t\tconst val = step * 50;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetValue = val;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetMinValue = val * 0.2;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst panelXAxis = stockSeries.get(\"xAxis\") as DateAxis<AxisRendererX>;\r\n\r\n\t\t\t\tpanelXAxis.on(\"start\", () => {\r\n\t\t\t\t\tthis.markDataDirty();\r\n\t\t\t\t})\r\n\t\t\t\tpanelXAxis.on(\"end\", () => {\r\n\t\t\t\t\tthis.markDataDirty();\r\n\t\t\t\t})\r\n\r\n\t\t\t\tconst xRenderer = AxisRendererX.new(root, {});\r\n\t\t\t\txRenderer.grid.template.set(\"forceHidden\", true);\r\n\t\t\t\txRenderer.labels.template.set(\"forceHidden\", true);\r\n\r\n\t\t\t\tthis.xAxis = chart.xAxes.push(ValueAxis.new(root, {\r\n\t\t\t\t\tzoomable: false,\r\n\t\t\t\t\tstrictMinMax: true,\r\n\t\t\t\t\tpanX: false,\r\n\t\t\t\t\tpanY: false,\r\n\t\t\t\t\trenderer: xRenderer\r\n\t\t\t\t}));\r\n\r\n\t\t\t\tif (yAxis.get(\"renderer\").get(\"opposite\")) {\r\n\t\t\t\t\txRenderer.set(\"inversed\", true);\r\n\t\t\t\t\tthis.xAxis.setAll({\r\n\t\t\t\t\t\tx: percent(100),\r\n\t\t\t\t\t\tcenterX: percent(100)\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.series = chart.series.unshift(ColumnSeries.new(root, {\r\n\t\t\t\t\txAxis: this.xAxis,\r\n\t\t\t\t\tyAxis: yAxis,\r\n\t\t\t\t\tsnapTooltip:false,\r\n\t\t\t\t\tvalueXField: \"down\",\r\n\t\t\t\t\topenValueXField: \"xOpen\",\r\n\t\t\t\t\topenValueYField: \"yOpen\",\r\n\t\t\t\t\tvalueYField: \"y\",\r\n\t\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\t\tthemeTags: [\"indicator\", \"volumeprofile\", \"down\"]\r\n\t\t\t\t}))\r\n\r\n\r\n\t\t\t\tthis.upSeries = chart.series.unshift(ColumnSeries.new(root, {\r\n\t\t\t\t\txAxis: this.xAxis,\r\n\t\t\t\t\tyAxis: yAxis,\r\n\t\t\t\t\tsnapTooltip:false,\r\n\t\t\t\t\tvalueXField: \"total\",\r\n\t\t\t\t\topenValueXField: \"down\",\r\n\t\t\t\t\topenValueYField: \"yOpen\",\r\n\t\t\t\t\tvalueYField: \"y\",\r\n\t\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\t\tthemeTags: [\"indicator\", \"volumeprofile\", \"up\"]\r\n\t\t\t\t}))\r\n\r\n\t\t\t\tthis.upSeries.setPrivate(\"doNotUpdateLegend\", true);\r\n\t\t\t\tthis.series.setPrivate(\"doNotUpdateLegend\", true);\r\n\r\n\t\t\t\tthis.upSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\t\t\t\tthis.series.setPrivate(\"baseValueSeries\", stockSeries);\r\n\r\n\t\t\t\tthis._handleLegend(this.series);\r\n\r\n\t\t\t\tthis._addInteractivity(this.series);\r\n\t\t\t\tthis._addInteractivity(this.upSeries);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _addInteractivity(series: ColumnSeries) {\r\n\t\tseries.columns.template.events.on(\"pointerover\", (e) => {\r\n\t\t\tlet dataItem = e.target.dataItem;\r\n\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tif (dataItem.component == this.upSeries) {\r\n\t\t\t\t\tdataItem = this.series.dataItems[this.upSeries.dataItems.indexOf(dataItem)];\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tconst column = dataItem.get(\"graphics\" as any);\r\n\t\t\t\t\t\tif (column) {\r\n\t\t\t\t\t\t\tcolumn.hover();\r\n\t\t\t\t\t\t\tthis._previousColumn = column;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdataItem = this.upSeries.dataItems[this.series.dataItems.indexOf(dataItem)];\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tconst column = dataItem.get(\"graphics\" as any);\r\n\t\t\t\t\t\tif (column) {\r\n\t\t\t\t\t\t\tcolumn.hover();\r\n\t\t\t\t\t\t\tthis._previousColumn = column;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.series.updateLegendValue(dataItem);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tseries.columns.template.events.on(\"pointerout\", () => {\r\n\t\t\tthis.series.updateLegendValue(undefined);\r\n\t\t\tif (this._previousColumn) {\r\n\t\t\t\tthis._previousColumn.unhover();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tseries.columns.template.adapters.add(\"fillOpacity\", (fillOpacity, target) => {\r\n\t\t\tconst dataItem = target.dataItem;\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\t\tif (dataContext) {\r\n\t\t\t\t\tif (dataContext.area) {\r\n\t\t\t\t\t\treturn this.get(\"valueAreaOpacity\", .7);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn fillOpacity;\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _updateChildren(): void {\r\n\t\tif (this.series) {\r\n\t\t\tsuper._updateChildren();\r\n\r\n\t\t\tif (this.isDirty(\"count\") || this.isDirty(\"countType\") || this.isDirty(\"valueArea\")) {\r\n\t\t\t\tthis.markDataDirty();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"countType\")) {\r\n\t\t\t\tconst countType = this.get(\"countType\");\r\n\t\t\t\tif (countType == \"ticks\") {\r\n\t\t\t\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\t\t\t\tconst yAxis = stockSeries.get(\"yAxis\") as any;\r\n\t\t\t\t\tthis._editableSettings[1].minValue = yAxis.getPrivate(\"step\") * 50 * 0.2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._editableSettings[1].minValue = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"upColor\")) {\r\n\t\t\t\tconst upColor = this.get(\"upColor\");\r\n\t\t\t\tthis.upSeries.set(\"fill\", upColor);\r\n\t\t\t\tthis.upSeries.set(\"stroke\", upColor);\r\n\r\n\t\t\t\tthis.upSeries.columns.template.setAll({\r\n\t\t\t\t\tfill: upColor,\r\n\t\t\t\t\tstroke: upColor\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.setCustomData(\"upColor\", upColor);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"downColor\")) {\r\n\t\t\t\tconst downColor = this.get(\"downColor\");\r\n\t\t\t\tthis.series.set(\"fill\", downColor);\r\n\t\t\t\tthis.series.set(\"stroke\", downColor);\r\n\r\n\t\t\t\tthis.series.columns.template.setAll({\r\n\t\t\t\t\tfill: downColor,\r\n\t\t\t\t\tstroke: downColor\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.setCustomData(\"downColor\", downColor);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"axisWidth\")) {\r\n\t\t\t\tthis.xAxis.set(\"width\", percent(this.get(\"axisWidth\", 40)));\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tconst volumeSeries = this.get(\"volumeSeries\");\r\n\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\r\n\t\tif (volumeSeries && this.series) {\r\n\t\t\tlet startIndex = volumeSeries.getPrivate(\"adjustedStartIndex\", volumeSeries.startIndex());\r\n\t\t\tlet endIndex = volumeSeries.endIndex();\r\n\r\n\t\t\tconst count = this.get(\"count\", 20);\r\n\t\t\tconst type = this.get(\"countType\");\r\n\t\t\tlet step = 1;\r\n\r\n\t\t\tlet min = Infinity;\r\n\t\t\tlet max = -Infinity;\r\n\r\n\t\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\t\tconst dataItem = stockSeries.dataItems[i];\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tconst close = dataItem.get(\"valueY\");\r\n\t\t\t\t\tif ($type.isNumber(close)) {\r\n\t\t\t\t\t\tif (close < min) {\r\n\t\t\t\t\t\t\tmin = close;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (close > max) {\r\n\t\t\t\t\t\t\tmax = close;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (min != Infinity) {\r\n\r\n\t\t\t\tlet rows: number;\r\n\t\t\t\tif (type == \"ticks\") {\r\n\t\t\t\t\tstep = count / 100;\r\n\t\t\t\t\tmin = Math.floor(min / step) * step;\r\n\t\t\t\t\tmax = Math.ceil(max / step) * step;\r\n\t\t\t\t\trows = (max - min) / step;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tstep = (max - min) / count;\r\n\t\t\t\t\trows = count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst rowDataDown: Array<number> = [];\r\n\t\t\t\tconst rowDataUp: Array<number> = [];\r\n\r\n\t\t\t\tfor (let i = 0; i < rows; i++) {\r\n\t\t\t\t\trowDataDown[i] = 0;\r\n\t\t\t\t\trowDataUp[i] = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet previousDataItem;\r\n\t\t\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\t\t\tconst dataItem = stockSeries.dataItems[i];\r\n\t\t\t\t\tconst volumeDataItem = volumeSeries.dataItems[i];\r\n\t\t\t\t\tif (dataItem && volumeDataItem) {\r\n\t\t\t\t\t\tconst close = dataItem.get(\"valueY\");\r\n\t\t\t\t\t\tconst volume = volumeDataItem.get(\"valueY\");\r\n\r\n\t\t\t\t\t\tif ($type.isNumber(close) && $type.isNumber(volume)) {\r\n\t\t\t\t\t\t\tlet index = Math.floor((close - min) / step);\r\n\t\t\t\t\t\t\tif (index == count) {\r\n\t\t\t\t\t\t\t\tindex = count - 1;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($type.isNumber(index)) {\r\n\t\t\t\t\t\t\t\tif (previousDataItem && previousDataItem.get(\"valueY\", close) < close) {\r\n\t\t\t\t\t\t\t\t\trowDataDown[index] += volume;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\trowDataUp[index] += volume;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpreviousDataItem = dataItem;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst dataDown = [];\r\n\t\t\t\tlet sum = 0;\r\n\t\t\t\tfor (let i = 0; i < rows; i++) {\r\n\t\t\t\t\tlet total = rowDataUp[i] + rowDataDown[i];\r\n\t\t\t\t\tsum += total;\r\n\r\n\t\t\t\t\tdataDown.push({\r\n\t\t\t\t\t\tyOpen: min + i * step,\r\n\t\t\t\t\t\ty: min + (i + 1) * step,\r\n\t\t\t\t\t\tup: rowDataUp[i],\r\n\t\t\t\t\t\tdown: rowDataDown[i],\r\n\t\t\t\t\t\ttotal: total,\r\n\t\t\t\t\t\txOpen: 0,\r\n\t\t\t\t\t\tarea: false\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet len = this.series.data.length;\r\n\t\t\t\tif (len && len == dataDown.length) {\r\n\t\t\t\t\tfor (let i = 0; i < len; i++) {\r\n\t\t\t\t\t\tthis.series.data.setIndex(i, dataDown[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.series.data.setAll(dataDown);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst dataUp = [];\r\n\r\n\t\t\t\tlet highest = 0;\r\n\t\t\t\tlet hi = 0;\r\n\r\n\t\t\t\tfor (let i = 0; i < rows; i++) {\r\n\t\t\t\t\tlet total = rowDataUp[i] + rowDataDown[i];\r\n\t\t\t\t\tdataUp.push({\r\n\t\t\t\t\t\tyOpen: min + i * step,\r\n\t\t\t\t\t\ty: min + (i + 1) * step,\r\n\t\t\t\t\t\tup: rowDataUp[i],\r\n\t\t\t\t\t\tdown: rowDataDown[i],\r\n\t\t\t\t\t\ttotal: total,\r\n\t\t\t\t\t\tarea: false\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tif (total > highest) {\r\n\t\t\t\t\t\thighest = total;\r\n\t\t\t\t\t\thi = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet valueArea = sum * this.get(\"valueArea\", 70) / 100;\r\n\t\t\t\tlet area = highest;\r\n\r\n\t\t\t\tlet cd = 1;\r\n\t\t\t\tlet cu = 1;\r\n\t\t\t\tlet dlen = dataUp.length;\r\n\r\n\t\t\t\tdataUp[hi].area = true;\r\n\t\t\t\tdataDown[hi].area = true;\r\n\r\n\t\t\t\t/* \r\n\t\t\t\t// with two rows\r\n\t\t\t\twhile (area < valueArea) {\r\n\t\t\t\t\tlet rowAbove1 = hi + cu;\r\n\t\t\t\t\tlet rowAbove2 = hi + cu + 1;\r\n\r\n\t\t\t\t\tlet sumAbove = 0\r\n\t\t\t\t\tif (rowAbove1 < dlen) {\r\n\t\t\t\t\t\tsumAbove += dataUp[rowAbove1].total;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (rowAbove2 < dlen) {\r\n\t\t\t\t\t\tsumAbove += dataUp[rowAbove2].total;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet rowBelow1 = hi - cd;\r\n\t\t\t\t\tlet rowBelow2 = hi - cd - 1;\r\n\r\n\t\t\t\t\tlet sumBelow = 0\r\n\t\t\t\t\tif (rowBelow1 >= 0) {\r\n\t\t\t\t\t\tsumBelow += dataUp[rowBelow1].total;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (rowBelow2 >= 0) {\r\n\t\t\t\t\t\tsumBelow += dataUp[rowBelow2].total;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (sumBelow <= sumAbove) {\r\n\t\t\t\t\t\tarea += sumAbove;\r\n\t\t\t\t\t\tif (rowAbove1 < dlen) {\r\n\t\t\t\t\t\t\tdataDown[rowAbove1].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowAbove1].area = true;\r\n\t\t\t\t\t\t\tcu++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (rowAbove2 < dlen) {\r\n\t\t\t\t\t\t\tdataDown[rowAbove2].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowAbove2].area = true;\r\n\t\t\t\t\t\t\tcu++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tarea += sumBelow;\r\n\t\t\t\t\t\tif (rowBelow1 >= 0) {\r\n\t\t\t\t\t\t\tdataDown[rowBelow1].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowBelow1].area = true;\r\n\t\t\t\t\t\t\tcd++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (rowBelow2 >= 0) {\r\n\t\t\t\t\t\t\tdataDown[rowBelow2].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowBelow2].area = true;\r\n\t\t\t\t\t\t\tcd++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (sumBelow == 0) {\r\n\t\t\t\t\t\tcd++;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (sumAbove == 0) {\r\n\t\t\t\t\t\tcu++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ((cd > dlen && cu > dlen)) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\r\n\t\t\t\t// single row\r\n\t\t\t\twhile (area < valueArea) {\r\n\t\t\t\t\tlet rowAbove1 = hi + cu;\r\n\t\t\t\t\tlet sumAbove = 0\r\n\t\t\t\t\tif (rowAbove1 < dlen) {\r\n\t\t\t\t\t\tsumAbove += dataUp[rowAbove1].total;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet rowBelow1 = hi - cd;\r\n\r\n\t\t\t\t\tlet sumBelow = 0\r\n\t\t\t\t\tif (rowBelow1 >= 0) {\r\n\t\t\t\t\t\tsumBelow += dataUp[rowBelow1].total;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (sumBelow <= sumAbove) {\r\n\t\t\t\t\t\tarea += sumAbove;\r\n\t\t\t\t\t\tif (rowAbove1 < dlen) {\r\n\t\t\t\t\t\t\tdataDown[rowAbove1].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowAbove1].area = true;\r\n\t\t\t\t\t\t\tcu++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tarea += sumBelow;\r\n\t\t\t\t\t\tif (rowBelow1 >= 0) {\r\n\t\t\t\t\t\t\tdataDown[rowBelow1].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowBelow1].area = true;\r\n\t\t\t\t\t\t\tcd++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (sumBelow == 0) {\r\n\t\t\t\t\t\tcd++;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (sumAbove == 0) {\r\n\t\t\t\t\t\tcu++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ((cd > dlen && cu > dlen)) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarea = Math.ceil(area);\r\n\r\n\t\t\t\tlen = this.upSeries.data.length;\r\n\t\t\t\tif (len > 0 && len == dataUp.length) {\r\n\t\t\t\t\tfor (let i = 0; i < len; i++) {\r\n\t\t\t\t\t\tthis.upSeries.data.setIndex(i, dataUp[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.upSeries.data.setAll(dataUp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.series.columns.each((column) => {\r\n\t\t\tcolumn._markDirtyKey(\"fillOpacity\")\r\n\t\t})\r\n\r\n\t\tthis.upSeries.columns.each((column) => {\r\n\t\t\tcolumn._markDirtyKey(\"fillOpacity\")\r\n\t\t})\r\n\t}\r\n\r\n\tprotected _dispose() {\r\n\t\tsuper._dispose();\r\n\t\tif (this.upSeries) {\r\n\t\t\tthis.upSeries.dispose();\r\n\t\t}\r\n\r\n\t\tif (this.xAxis) {\r\n\t\t\tthis.xAxis.dispose();\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"VolumeProfile.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/VolumeProfile.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DateAxis } from \"../../xy/axes/DateAxis\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\nimport type { Graphics } from \"../../../core/render/Graphics\";\r\nimport type { XYSeries } from \"../../xy/series/XYSeries\";\r\n\r\nimport { AxisRendererX } from \"../../xy/axes/AxisRendererX\";\r\nimport { ValueAxis } from \"../../xy/axes/ValueAxis\";\r\nimport { Indicator, IIndicatorSettings, IIndicatorPrivate, IIndicatorEvents, IIndicatorEditableSetting } from \"./Indicator\";\r\nimport { ColumnSeries } from \"../../xy/series/ColumnSeries\";\r\nimport { percent } from \"../../../core/util/Percent\";\r\n\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IVolumeProfileSettings extends IIndicatorSettings {\r\n\t/**\r\n\t * Volume up color.\r\n\t */\r\n\tupColor?: Color;\r\n\r\n\t/**\r\n\t * Volume down color.\r\n\t */\r\n\tdownColor?: Color;\r\n\r\n\t/**\r\n\t * Type of count.\r\n\t */\r\n\tcountType?: \"rows\" | \"ticks\";\r\n\r\n\t/**\r\n\t * Number of rows or number of ticks, depending on the countType.\r\n\t *\r\n\t * @default 24\r\n\t */\r\n\tcount?: number;\r\n\r\n\t/**\r\n\t * Max width of columns in percent (%).\r\n\t * \r\n\t * @default 40\r\n\t */\r\n\taxisWidth?: number;\r\n\r\n\t/**\r\n\t * Specifies what percentage of all volume for the trading session should\r\n\t * be highlighted by Value Area.\r\n\t * \r\n\t * @default 70\r\n\t */\r\n\tvalueArea?: number;\r\n\r\n\t/**\r\n\t * Opacity of columns which fall withing value area.\r\n\t * \r\n\t * @default .7\r\n\t */\r\n\tvalueAreaOpacity?: number;\r\n\r\n\t/**\r\n\t * Chart's main volume series.\r\n\t */\r\n\tvolumeSeries: XYSeries;\r\n}\r\n\r\nexport interface IVolumeProfilePrivate extends IIndicatorPrivate {\r\n}\r\n\r\nexport interface IVolumeProfileEvents extends IIndicatorEvents {\r\n}\r\n\r\n/**\r\n * An implementation of a Volume Profile indicator for a [[StockChart]].\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n * @since 5.7.0\r\n */\r\nexport class VolumeProfile extends Indicator {\r\n\tpublic static className: string = \"VolumeProfile\";\r\n\tpublic static classNames: Array<string> = Indicator.classNames.concat([VolumeProfile.className]);\r\n\r\n\tdeclare public _settings: IVolumeProfileSettings;\r\n\tdeclare public _privateSettings: IVolumeProfilePrivate;\r\n\tdeclare public _events: IVolumeProfileEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: ColumnSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"countType\",\r\n\t\tname: this.root.language.translateAny(\"Count\"),\r\n\t\ttype: \"dropdown\",\r\n\t\toptions: [\r\n\t\t\t{ value: \"rows\", text: this.root.language.translateAny(\"number of rows\"), extTarget: \"count\", extTargetValue: 24 , extTargetMinValue: 1 },\r\n\t\t\t{ value: \"ticks\", text: this.root.language.translateAny(\"ticks per row\"), extTarget: \"count\", extTargetValue: 1000, extTargetMinValue: 200 }\r\n\t\t]\r\n\t}, {\r\n\t\tkey: \"count\",\r\n\t\tname: this.root.language.translateAny(\"Count\"),\r\n\t\ttype: \"number\",\r\n\t\tminValue: 1\r\n\t}, {\r\n\t\tkey: \"valueArea\",\r\n\t\tname: this.root.language.translateAny(\"Value Area\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"upColor\",\r\n\t\tname: this.root.language.translateAny(\"Up volume\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"downColor\",\r\n\t\tname: this.root.language.translateAny(\"Down volume\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"axisWidth\",\r\n\t\tname: this.root.language.translateAny(\"Width %\"),\r\n\t\ttype: \"number\"\r\n\t}];\r\n\r\n\tpublic xAxis!: ValueAxis<AxisRendererX>;\r\n\r\n\tpublic upSeries!: ColumnSeries;\r\n\r\n\tprotected _previousColumn?: Graphics;\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst volumeSeries = this.get(\"volumeSeries\");\r\n\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\tif (volumeSeries) {\r\n\t\t\tconst chart = stockSeries.chart;\r\n\t\t\tconst root = this._root;\r\n\r\n\t\t\tif (chart) {\r\n\t\t\t\tconst yAxis = stockSeries.get(\"yAxis\") as any;\r\n\r\n\t\t\t\tconst step = yAxis.getPrivate(\"step\");\r\n\t\t\t\tif (step !== undefined) {\r\n\t\t\t\t\tconst val = yAxis.getPrivate(\"step\") * 50;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetValue = val;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetMinValue = val * 0.2;\r\n\t\t\t\t}\r\n\t\t\t\tyAxis.onPrivate(\"step\", (step: number) => {\r\n\t\t\t\t\tconst val = step * 50;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetValue = val;\r\n\t\t\t\t\t(this._editableSettings as any)[0].options[1].extTargetMinValue = val * 0.2;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst panelXAxis = stockSeries.get(\"xAxis\") as DateAxis<AxisRendererX>;\r\n\r\n\t\t\t\tpanelXAxis.on(\"start\", () => {\r\n\t\t\t\t\tthis.markDataDirty();\r\n\t\t\t\t})\r\n\t\t\t\tpanelXAxis.on(\"end\", () => {\r\n\t\t\t\t\tthis.markDataDirty();\r\n\t\t\t\t})\r\n\r\n\t\t\t\tconst xRenderer = AxisRendererX.new(root, {});\r\n\t\t\t\txRenderer.grid.template.set(\"forceHidden\", true);\r\n\t\t\t\txRenderer.labels.template.set(\"forceHidden\", true);\r\n\r\n\t\t\t\tthis.xAxis = chart.xAxes.push(ValueAxis.new(root, {\r\n\t\t\t\t\tzoomable: false,\r\n\t\t\t\t\tstrictMinMax: true,\r\n\t\t\t\t\tpanX: false,\r\n\t\t\t\t\tpanY: false,\r\n\t\t\t\t\trenderer: xRenderer\r\n\t\t\t\t}));\r\n\r\n\t\t\t\tif (yAxis.get(\"renderer\").get(\"opposite\")) {\r\n\t\t\t\t\txRenderer.set(\"inversed\", true);\r\n\t\t\t\t\tthis.xAxis.setAll({\r\n\t\t\t\t\t\tx: percent(100),\r\n\t\t\t\t\t\tcenterX: percent(100)\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.series = chart.series.unshift(ColumnSeries.new(root, {\r\n\t\t\t\t\txAxis: this.xAxis,\r\n\t\t\t\t\tyAxis: yAxis,\r\n\t\t\t\t\tsnapTooltip:false,\r\n\t\t\t\t\tvalueXField: \"down\",\r\n\t\t\t\t\topenValueXField: \"xOpen\",\r\n\t\t\t\t\topenValueYField: \"yOpen\",\r\n\t\t\t\t\tvalueYField: \"y\",\r\n\t\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\t\tthemeTags: [\"indicator\", \"volumeprofile\", \"down\"]\r\n\t\t\t\t}))\r\n\r\n\r\n\t\t\t\tthis.upSeries = chart.series.unshift(ColumnSeries.new(root, {\r\n\t\t\t\t\txAxis: this.xAxis,\r\n\t\t\t\t\tyAxis: yAxis,\r\n\t\t\t\t\tsnapTooltip:false,\r\n\t\t\t\t\tvalueXField: \"total\",\r\n\t\t\t\t\topenValueXField: \"down\",\r\n\t\t\t\t\topenValueYField: \"yOpen\",\r\n\t\t\t\t\tvalueYField: \"y\",\r\n\t\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\t\tthemeTags: [\"indicator\", \"volumeprofile\", \"up\"]\r\n\t\t\t\t}))\r\n\r\n\t\t\t\tthis.upSeries.setPrivate(\"doNotUpdateLegend\", true);\r\n\t\t\t\tthis.series.setPrivate(\"doNotUpdateLegend\", true);\r\n\r\n\t\t\t\tthis.upSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\t\t\t\tthis.series.setPrivate(\"baseValueSeries\", stockSeries);\r\n\r\n\t\t\t\tthis._handleLegend(this.series);\r\n\r\n\t\t\t\tthis._addInteractivity(this.series);\r\n\t\t\t\tthis._addInteractivity(this.upSeries);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _addInteractivity(series: ColumnSeries) {\r\n\t\tseries.columns.template.events.on(\"pointerover\", (e) => {\r\n\t\t\tlet dataItem = e.target.dataItem;\r\n\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tif (dataItem.component == this.upSeries) {\r\n\t\t\t\t\tdataItem = this.series.dataItems[this.upSeries.dataItems.indexOf(dataItem)];\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tconst column = dataItem.get(\"graphics\" as any);\r\n\t\t\t\t\t\tif (column) {\r\n\t\t\t\t\t\t\tcolumn.hover();\r\n\t\t\t\t\t\t\tthis._previousColumn = column;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdataItem = this.upSeries.dataItems[this.series.dataItems.indexOf(dataItem)];\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tconst column = dataItem.get(\"graphics\" as any);\r\n\t\t\t\t\t\tif (column) {\r\n\t\t\t\t\t\t\tcolumn.hover();\r\n\t\t\t\t\t\t\tthis._previousColumn = column;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.series.updateLegendValue(dataItem);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tseries.columns.template.events.on(\"pointerout\", () => {\r\n\t\t\tthis.series.updateLegendValue(undefined);\r\n\t\t\tif (this._previousColumn) {\r\n\t\t\t\tthis._previousColumn.unhover();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tseries.columns.template.adapters.add(\"fillOpacity\", (fillOpacity, target) => {\r\n\t\t\tconst dataItem = target.dataItem;\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\t\tif (dataContext) {\r\n\t\t\t\t\tif (dataContext.area) {\r\n\t\t\t\t\t\treturn this.get(\"valueAreaOpacity\", .7);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn fillOpacity;\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _updateChildren(): void {\r\n\t\tif (this.series) {\r\n\t\t\tsuper._updateChildren();\r\n\r\n\t\t\tif (this.isDirty(\"count\") || this.isDirty(\"countType\") || this.isDirty(\"valueArea\")) {\r\n\t\t\t\tthis.markDataDirty();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"countType\")) {\r\n\t\t\t\tconst countType = this.get(\"countType\");\r\n\t\t\t\tif (countType == \"ticks\") {\r\n\t\t\t\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\t\t\t\tconst yAxis = stockSeries.get(\"yAxis\") as any;\r\n\t\t\t\t\tthis._editableSettings[1].minValue = yAxis.getPrivate(\"step\") * 50 * 0.2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._editableSettings[1].minValue = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"upColor\")) {\r\n\t\t\t\tconst upColor = this.get(\"upColor\");\r\n\t\t\t\tthis.upSeries.set(\"fill\", upColor);\r\n\t\t\t\tthis.upSeries.set(\"stroke\", upColor);\r\n\r\n\t\t\t\tthis.upSeries.columns.template.setAll({\r\n\t\t\t\t\tfill: upColor,\r\n\t\t\t\t\tstroke: upColor\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.setCustomData(\"upColor\", upColor);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"downColor\")) {\r\n\t\t\t\tconst downColor = this.get(\"downColor\");\r\n\t\t\t\tthis.series.set(\"fill\", downColor);\r\n\t\t\t\tthis.series.set(\"stroke\", downColor);\r\n\r\n\t\t\t\tthis.series.columns.template.setAll({\r\n\t\t\t\t\tfill: downColor,\r\n\t\t\t\t\tstroke: downColor\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.setCustomData(\"downColor\", downColor);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDirty(\"axisWidth\")) {\r\n\t\t\t\tthis.xAxis.set(\"width\", percent(this.get(\"axisWidth\", 40)));\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tconst volumeSeries = this.get(\"volumeSeries\");\r\n\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\r\n\t\tif (volumeSeries && this.series) {\r\n\t\t\tlet startIndex = volumeSeries.getPrivate(\"adjustedStartIndex\", volumeSeries.startIndex());\r\n\t\t\tlet endIndex = volumeSeries.endIndex();\r\n\r\n\t\t\tconst count = this.get(\"count\", 20);\r\n\t\t\tconst type = this.get(\"countType\");\r\n\t\t\tlet step = 1;\r\n\r\n\t\t\tlet min = Infinity;\r\n\t\t\tlet max = -Infinity;\r\n\r\n\t\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\t\tconst dataItem = stockSeries.dataItems[i];\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tconst close = dataItem.get(\"valueY\");\r\n\t\t\t\t\tif ($type.isNumber(close)) {\r\n\t\t\t\t\t\tif (close < min) {\r\n\t\t\t\t\t\t\tmin = close;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (close > max) {\r\n\t\t\t\t\t\t\tmax = close;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (min != Infinity) {\r\n\r\n\t\t\t\tlet rows: number;\r\n\t\t\t\tif (type == \"ticks\") {\r\n\t\t\t\t\tstep = count / 100;\r\n\t\t\t\t\tmin = Math.floor(min / step) * step;\r\n\t\t\t\t\tmax = Math.ceil(max / step) * step;\r\n\t\t\t\t\trows = (max - min) / step;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tstep = (max - min) / count;\r\n\t\t\t\t\trows = count;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst rowDataDown: Array<number> = [];\r\n\t\t\t\tconst rowDataUp: Array<number> = [];\r\n\r\n\t\t\t\tfor (let i = 0; i < rows; i++) {\r\n\t\t\t\t\trowDataDown[i] = 0;\r\n\t\t\t\t\trowDataUp[i] = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet previousDataItem;\r\n\t\t\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\t\t\tconst dataItem = stockSeries.dataItems[i];\r\n\t\t\t\t\tconst volumeDataItem = volumeSeries.dataItems[i];\r\n\t\t\t\t\tif (dataItem && volumeDataItem) {\r\n\t\t\t\t\t\tconst close = dataItem.get(\"valueY\");\r\n\t\t\t\t\t\tconst volume = volumeDataItem.get(\"valueY\");\r\n\r\n\t\t\t\t\t\tif ($type.isNumber(close) && $type.isNumber(volume)) {\r\n\t\t\t\t\t\t\tlet index = Math.floor((close - min) / step);\r\n\t\t\t\t\t\t\tif (index == count) {\r\n\t\t\t\t\t\t\t\tindex = count - 1;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($type.isNumber(index)) {\r\n\t\t\t\t\t\t\t\tif (previousDataItem && previousDataItem.get(\"valueY\", close) < close) {\r\n\t\t\t\t\t\t\t\t\trowDataDown[index] += volume;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\trowDataUp[index] += volume;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpreviousDataItem = dataItem;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst dataDown = [];\r\n\t\t\t\tlet sum = 0;\r\n\t\t\t\tfor (let i = 0; i < rows; i++) {\r\n\t\t\t\t\tlet total = rowDataUp[i] + rowDataDown[i];\r\n\t\t\t\t\tsum += total;\r\n\r\n\t\t\t\t\tdataDown.push({\r\n\t\t\t\t\t\tyOpen: min + i * step,\r\n\t\t\t\t\t\ty: min + (i + 1) * step,\r\n\t\t\t\t\t\tup: rowDataUp[i],\r\n\t\t\t\t\t\tdown: rowDataDown[i],\r\n\t\t\t\t\t\ttotal: total,\r\n\t\t\t\t\t\txOpen: 0,\r\n\t\t\t\t\t\tarea: false\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet len = this.series.data.length;\r\n\t\t\t\tif (len && len == dataDown.length) {\r\n\t\t\t\t\tfor (let i = 0; i < len; i++) {\r\n\t\t\t\t\t\tthis.series.data.setIndex(i, dataDown[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.series.data.setAll(dataDown);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst dataUp = [];\r\n\r\n\t\t\t\tlet highest = 0;\r\n\t\t\t\tlet hi = 0;\r\n\r\n\t\t\t\tfor (let i = 0; i < rows; i++) {\r\n\t\t\t\t\tlet total = rowDataUp[i] + rowDataDown[i];\r\n\t\t\t\t\tdataUp.push({\r\n\t\t\t\t\t\tyOpen: min + i * step,\r\n\t\t\t\t\t\ty: min + (i + 1) * step,\r\n\t\t\t\t\t\tup: rowDataUp[i],\r\n\t\t\t\t\t\tdown: rowDataDown[i],\r\n\t\t\t\t\t\ttotal: total,\r\n\t\t\t\t\t\tarea: false\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tif (total > highest) {\r\n\t\t\t\t\t\thighest = total;\r\n\t\t\t\t\t\thi = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet valueArea = sum * this.get(\"valueArea\", 70) / 100;\r\n\t\t\t\tlet area = highest;\r\n\r\n\t\t\t\tlet cd = 1;\r\n\t\t\t\tlet cu = 1;\r\n\t\t\t\tlet dlen = dataUp.length;\r\n\r\n\t\t\t\tdataUp[hi].area = true;\r\n\t\t\t\tdataDown[hi].area = true;\r\n\r\n\t\t\t\t// single row\r\n\t\t\t\twhile (area < valueArea) {\r\n\t\t\t\t\tlet rowAbove1 = hi + cu;\r\n\t\t\t\t\tlet sumAbove = 0\r\n\t\t\t\t\tif (rowAbove1 < dlen) {\r\n\t\t\t\t\t\tsumAbove += dataUp[rowAbove1].total;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet rowBelow1 = hi - cd;\r\n\r\n\t\t\t\t\tlet sumBelow = 0\r\n\t\t\t\t\tif (rowBelow1 >= 0) {\r\n\t\t\t\t\t\tsumBelow += dataUp[rowBelow1].total;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (sumBelow <= sumAbove) {\r\n\t\t\t\t\t\tarea += sumAbove;\r\n\t\t\t\t\t\tif (rowAbove1 < dlen) {\r\n\t\t\t\t\t\t\tdataDown[rowAbove1].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowAbove1].area = true;\r\n\t\t\t\t\t\t\tcu++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tarea += sumBelow;\r\n\t\t\t\t\t\tif (rowBelow1 >= 0) {\r\n\t\t\t\t\t\t\tdataDown[rowBelow1].area = true;\r\n\t\t\t\t\t\t\tdataUp[rowBelow1].area = true;\r\n\t\t\t\t\t\t\tcd++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (sumBelow == 0) {\r\n\t\t\t\t\t\tcd++;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (sumAbove == 0) {\r\n\t\t\t\t\t\tcu++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ((cd > dlen && cu > dlen)) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarea = Math.ceil(area);\r\n\r\n\t\t\t\tlen = this.upSeries.data.length;\r\n\t\t\t\tif (len > 0 && len == dataUp.length) {\r\n\t\t\t\t\tfor (let i = 0; i < len; i++) {\r\n\t\t\t\t\t\tthis.upSeries.data.setIndex(i, dataUp[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.upSeries.data.setAll(dataUp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.upSeries.data.clear();\r\n\t\t\t\tthis.series.data.clear();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.series.columns.each((column) => {\r\n\t\t\tcolumn._markDirtyKey(\"fillOpacity\")\r\n\t\t})\r\n\r\n\t\tthis.upSeries.columns.each((column) => {\r\n\t\t\tcolumn._markDirtyKey(\"fillOpacity\")\r\n\t\t})\r\n\t}\r\n\r\n\tprotected _dispose() {\r\n\t\tsuper._dispose();\r\n\t\tif (this.upSeries) {\r\n\t\t\tthis.upSeries.dispose();\r\n\t\t}\r\n\r\n\t\tif (this.xAxis) {\r\n\t\t\tthis.xAxis.dispose();\r\n\t\t}\r\n\t}\r\n}"]}
@@ -20,6 +20,13 @@ export interface IDrawingControlSettings extends IStockControlSettings {
20
20
  * Default tool.
21
21
  */
22
22
  tool?: DrawingTools;
23
+ /**
24
+ * If set to `true`, the dropdown will fix the height to fit within chart's
25
+ * area, with scroll if the contents do not fit.
26
+ *
27
+ * @since 5.9.5
28
+ */
29
+ scrollable?: boolean;
23
30
  /**
24
31
  * Default settings for drawing tools.
25
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingControl.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DrawingControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawingControl.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DrawingControl.ts"],"names":[],"mappings":"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"}
@@ -151,7 +151,8 @@ export class DrawingControl extends StockControl {
151
151
  const toolControl = DrawingToolControl.new(this._root, {
152
152
  stockChart: stockChart,
153
153
  description: l.translateAny("Drawing tool"),
154
- tools: this.get("tools")
154
+ tools: this.get("tools"),
155
+ scrollable: this.get("scrollable", false)
155
156
  });
156
157
  toolControl.setPrivate("toolbar", toolbar);
157
158
  toolsContainer.appendChild(toolControl.getPrivate("button"));