@amcharts/amcharts5 5.7.0 → 5.7.2

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 (228) hide show
  1. package/.internal/charts/stock/StockChart.d.ts +10 -0
  2. package/.internal/charts/stock/StockChart.d.ts.map +1 -1
  3. package/.internal/charts/stock/StockChart.js +18 -1
  4. package/.internal/charts/stock/StockChart.js.map +1 -1
  5. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  6. package/.internal/charts/stock/StockChartDefaultTheme.js +24 -1
  7. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  8. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +1 -1
  9. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  10. package/.internal/charts/stock/drawing/DrawingSeries.js +3 -3
  11. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  12. package/.internal/charts/stock/drawing/HorizontalRaySeries.js +1 -1
  13. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  14. package/.internal/charts/stock/drawing/QuadrantLineSeries.js +2 -2
  15. package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
  16. package/.internal/charts/stock/drawing/RectangleSeries.d.ts.map +1 -1
  17. package/.internal/charts/stock/drawing/RectangleSeries.js +2 -4
  18. package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
  19. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts.map +1 -1
  20. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  21. package/.internal/charts/stock/indicators/AccelerationBands.d.ts +51 -0
  22. package/.internal/charts/stock/indicators/AccelerationBands.d.ts.map +1 -0
  23. package/.internal/charts/stock/indicators/AccelerationBands.js +205 -0
  24. package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -0
  25. package/.internal/charts/stock/indicators/BullBearPower.d.ts +33 -0
  26. package/.internal/charts/stock/indicators/BullBearPower.d.ts.map +1 -0
  27. package/.internal/charts/stock/indicators/BullBearPower.js +81 -0
  28. package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -0
  29. package/.internal/charts/stock/indicators/VWAP.d.ts.map +1 -1
  30. package/.internal/charts/stock/indicators/VWAP.js +17 -15
  31. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  32. package/.internal/charts/stock/indicators/VolumeProfile.d.ts +5 -0
  33. package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
  34. package/.internal/charts/stock/indicators/VolumeProfile.js +197 -191
  35. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  36. package/.internal/charts/stock/toolbar/DataSaveControl.d.ts +2 -0
  37. package/.internal/charts/stock/toolbar/DataSaveControl.d.ts.map +1 -1
  38. package/.internal/charts/stock/toolbar/DataSaveControl.js +39 -23
  39. package/.internal/charts/stock/toolbar/DataSaveControl.js.map +1 -1
  40. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +4 -1
  41. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  42. package/.internal/charts/stock/toolbar/DrawingControl.js +40 -10
  43. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  44. package/.internal/charts/stock/toolbar/DropdownList.d.ts.map +1 -1
  45. package/.internal/charts/stock/toolbar/DropdownList.js +4 -1
  46. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  47. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts +1 -1
  48. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts.map +1 -1
  49. package/.internal/charts/stock/toolbar/IndicatorControl.js +18 -1
  50. package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
  51. package/.internal/charts/stock/toolbar/SettingsControl.d.ts.map +1 -1
  52. package/.internal/charts/stock/toolbar/SettingsControl.js +22 -20
  53. package/.internal/charts/stock/toolbar/SettingsControl.js.map +1 -1
  54. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  55. package/.internal/charts/xy/axes/ValueAxis.js +11 -1
  56. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  57. package/.internal/core/Classes.d.ts +4 -0
  58. package/.internal/core/Classes.d.ts.map +1 -1
  59. package/.internal/core/Classes.js.map +1 -1
  60. package/.internal/core/Registry.js +1 -1
  61. package/.internal/core/Registry.js.map +1 -1
  62. package/.internal/core/render/Container.d.ts.map +1 -1
  63. package/.internal/core/render/Container.js +14 -2
  64. package/.internal/core/render/Container.js.map +1 -1
  65. package/.internal/core/render/Label.d.ts +9 -0
  66. package/.internal/core/render/Label.d.ts.map +1 -1
  67. package/.internal/core/render/Label.js +2 -1
  68. package/.internal/core/render/Label.js.map +1 -1
  69. package/.internal/core/render/Text.d.ts +1 -0
  70. package/.internal/core/render/Text.d.ts.map +1 -1
  71. package/.internal/core/render/Text.js +7 -2
  72. package/.internal/core/render/Text.js.map +1 -1
  73. package/.internal/core/util/Utils.d.ts +1 -0
  74. package/.internal/core/util/Utils.d.ts.map +1 -1
  75. package/.internal/core/util/Utils.js +19 -0
  76. package/.internal/core/util/Utils.js.map +1 -1
  77. package/.internal/plugins/json/Json.d.ts +8 -0
  78. package/.internal/plugins/json/Json.d.ts.map +1 -1
  79. package/.internal/plugins/json/Json.js +14 -0
  80. package/.internal/plugins/json/Json.js.map +1 -1
  81. package/CHANGELOG.md +30 -0
  82. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  83. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  84. package/examples/javascript/flow-chord/package.json +1 -1
  85. package/examples/javascript/flow-chord-directed/package.json +1 -1
  86. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  87. package/examples/javascript/flow-sankey/package.json +1 -1
  88. package/examples/javascript/gauge/package.json +1 -1
  89. package/examples/javascript/gauge-bands/package.json +1 -1
  90. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  91. package/examples/javascript/hierarchy-pack/package.json +1 -1
  92. package/examples/javascript/hierarchy-partition/package.json +1 -1
  93. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  94. package/examples/javascript/hierarchy-tree/package.json +1 -1
  95. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  96. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  97. package/examples/javascript/jest/package.json +1 -1
  98. package/examples/javascript/json-pie/package.json +1 -1
  99. package/examples/javascript/json-xy/package.json +1 -1
  100. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  101. package/examples/javascript/map-clustered-points/package.json +1 -1
  102. package/examples/javascript/map-day-and-night/package.json +1 -1
  103. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  104. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  105. package/examples/javascript/map-with-bubbles/package.json +1 -1
  106. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  107. package/examples/javascript/misc-40-charts/package.json +1 -1
  108. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  109. package/examples/javascript/pie-chart/package.json +1 -1
  110. package/examples/javascript/pie-donut-chart/package.json +1 -1
  111. package/examples/javascript/pie-variable-radius/package.json +1 -1
  112. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  113. package/examples/javascript/radar-heat-map/package.json +1 -1
  114. package/examples/javascript/radar-line/package.json +1 -1
  115. package/examples/javascript/radar-time-line/package.json +1 -1
  116. package/examples/javascript/sliced-funnel/package.json +1 -1
  117. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  118. package/examples/javascript/sliced-pyramid/package.json +1 -1
  119. package/examples/javascript/stock-chart/package.json +1 -1
  120. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  121. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  122. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  123. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  124. package/examples/javascript/stock-chart-live/package.json +1 -1
  125. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  126. package/examples/javascript/venn-diagram/package.json +1 -1
  127. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  128. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  129. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  130. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  131. package/examples/javascript/xy-bubble/package.json +1 -1
  132. package/examples/javascript/xy-candlestick/package.json +1 -1
  133. package/examples/javascript/xy-clustered-column/package.json +1 -1
  134. package/examples/javascript/xy-column/package.json +1 -1
  135. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  136. package/examples/javascript/xy-data-grouping/package.json +1 -1
  137. package/examples/javascript/xy-draggable-range/package.json +1 -1
  138. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  139. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  140. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  141. package/examples/javascript/xy-line/package.json +1 -1
  142. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  143. package/examples/javascript/xy-live-data/package.json +1 -1
  144. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  145. package/examples/javascript/xy-ohlc/package.json +1 -1
  146. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  147. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  148. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  149. package/examples/javascript/xy-stacked-column/package.json +1 -1
  150. package/examples/javascript/xy-stacked-step/package.json +1 -1
  151. package/examples/javascript/xy-stock/package.json +1 -1
  152. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  153. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  154. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  155. package/examples/typescript/flow-chord/package.json +1 -1
  156. package/examples/typescript/flow-chord-directed/package.json +1 -1
  157. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  158. package/examples/typescript/flow-sankey/package.json +1 -1
  159. package/examples/typescript/gauge/package.json +1 -1
  160. package/examples/typescript/gauge-bands/package.json +1 -1
  161. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  162. package/examples/typescript/hierarchy-pack/package.json +1 -1
  163. package/examples/typescript/hierarchy-partition/package.json +1 -1
  164. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  165. package/examples/typescript/hierarchy-tree/package.json +1 -1
  166. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  167. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  168. package/examples/typescript/jest/package.json +1 -1
  169. package/examples/typescript/json-pie/package.json +1 -1
  170. package/examples/typescript/json-xy/package.json +1 -1
  171. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  172. package/examples/typescript/map-clustered-points/package.json +1 -1
  173. package/examples/typescript/map-day-and-night/package.json +1 -1
  174. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  175. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  176. package/examples/typescript/map-with-bubbles/package.json +1 -1
  177. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  178. package/examples/typescript/misc-40-charts/package.json +1 -1
  179. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  180. package/examples/typescript/pie-chart/package.json +1 -1
  181. package/examples/typescript/pie-donut-chart/package.json +1 -1
  182. package/examples/typescript/pie-variable-radius/package.json +1 -1
  183. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  184. package/examples/typescript/radar-heat-map/package.json +1 -1
  185. package/examples/typescript/radar-line/package.json +1 -1
  186. package/examples/typescript/radar-time-line/package.json +1 -1
  187. package/examples/typescript/sliced-funnel/package.json +1 -1
  188. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  189. package/examples/typescript/sliced-pyramid/package.json +1 -1
  190. package/examples/typescript/stock-chart/package.json +1 -1
  191. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  192. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  193. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  194. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  195. package/examples/typescript/stock-chart-live/package.json +1 -1
  196. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  197. package/examples/typescript/venn-diagram/package.json +1 -1
  198. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  199. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  200. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  201. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  202. package/examples/typescript/xy-bubble/package.json +1 -1
  203. package/examples/typescript/xy-candlestick/package.json +1 -1
  204. package/examples/typescript/xy-clustered-column/package.json +1 -1
  205. package/examples/typescript/xy-column/package.json +1 -1
  206. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  207. package/examples/typescript/xy-data-grouping/package.json +1 -1
  208. package/examples/typescript/xy-draggable-range/package.json +1 -1
  209. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  210. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  211. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  212. package/examples/typescript/xy-line/package.json +1 -1
  213. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  214. package/examples/typescript/xy-live-data/package.json +1 -1
  215. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  216. package/examples/typescript/xy-ohlc/package.json +1 -1
  217. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  218. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  219. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  220. package/examples/typescript/xy-stacked-column/package.json +1 -1
  221. package/examples/typescript/xy-stacked-step/package.json +1 -1
  222. package/examples/typescript/xy-stock/package.json +1 -1
  223. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  224. package/package.json +1 -1
  225. package/stock.d.ts +3 -1
  226. package/stock.d.ts.map +1 -1
  227. package/stock.js +3 -1
  228. package/stock.js.map +1 -1
@@ -16,26 +16,12 @@ export class DataSaveControl extends DropdownListControl {
16
16
  this.setPrivate("storageId", window.location.href + "-" + this.root.dom.id);
17
17
  const stockChart = this.get("stockChart");
18
18
  const dropdown = this.getPrivate("dropdown");
19
- // Drawing control
20
- let drawingControl = stockChart.getControl("DrawingControl");
21
- if (!drawingControl) {
22
- drawingControl = DrawingControl.new(this.root, {
23
- stockChart: stockChart
24
- });
25
- }
26
- this.setPrivate("drawingControl", drawingControl);
27
- // Indicator control
28
- let indicatorControl = stockChart.getControl("IndicatorControl");
29
- if (!indicatorControl) {
30
- indicatorControl = IndicatorControl.new(this.root, {
31
- stockChart: stockChart
32
- });
33
- }
34
- this.setPrivate("indicatorControl", indicatorControl);
35
19
  // Load local storage
36
20
  if (localStorage && localStorage.getItem(this._getStorageId("autosave")) == "1") {
37
- this.set("autoSave", true);
38
- this.restoreData();
21
+ this.root.events.once("frameended", () => {
22
+ this.restoreData();
23
+ this.set("autoSave", true);
24
+ });
39
25
  }
40
26
  dropdown.events.on("changed", (ev) => {
41
27
  if (ev.item.id == "autosave") {
@@ -78,15 +64,15 @@ export class DataSaveControl extends DropdownListControl {
78
64
  }
79
65
  else {
80
66
  localStorage.removeItem(this._getStorageId("autosave"));
81
- this.clearData();
67
+ //this.clearData();
82
68
  }
83
69
  this._populateInputs();
84
70
  }
85
71
  }
86
72
  saveData() {
87
73
  if (localStorage) {
88
- const drawingControl = this.getPrivate("drawingControl");
89
- const indicatorControl = this.getPrivate("indicatorControl");
74
+ const drawingControl = this._getDrawingControl();
75
+ const indicatorControl = this._getIndicatorControl();
90
76
  const drawings = drawingControl.serializeDrawings("string", " ");
91
77
  const indicators = indicatorControl.serializeIndicators("string", " ");
92
78
  if (drawings == "[]") {
@@ -118,8 +104,8 @@ export class DataSaveControl extends DropdownListControl {
118
104
  });
119
105
  });
120
106
  stockChart.indicators.clear();
121
- const drawingControl = this.getPrivate("drawingControl");
122
- const indicatorControl = this.getPrivate("indicatorControl");
107
+ const drawingControl = this._getDrawingControl();
108
+ const indicatorControl = this._getIndicatorControl();
123
109
  const drawings = localStorage.getItem(this._getStorageId("drawings")) || "[]";
124
110
  const indicators = localStorage.getItem(this._getStorageId("indicators")) || "[]";
125
111
  drawingControl.unserializeDrawings(drawings);
@@ -172,6 +158,36 @@ export class DataSaveControl extends DropdownListControl {
172
158
  _getStorageId(bucket) {
173
159
  return "am5-stock-" + this.get("storageId", this.getPrivate("storageId", "")) + "-" + bucket;
174
160
  }
161
+ _getDrawingControl() {
162
+ let drawingControl = this.getPrivate("drawingControl");
163
+ if (drawingControl) {
164
+ return drawingControl;
165
+ }
166
+ const stockChart = this.get("stockChart");
167
+ drawingControl = stockChart.getControl("DrawingControl");
168
+ if (!drawingControl) {
169
+ drawingControl = DrawingControl.new(this.root, {
170
+ stockChart: stockChart
171
+ });
172
+ this.setPrivate("drawingControl", drawingControl);
173
+ }
174
+ return drawingControl;
175
+ }
176
+ _getIndicatorControl() {
177
+ let indicatorControl = this.getPrivate("indicatorControl");
178
+ if (indicatorControl) {
179
+ return indicatorControl;
180
+ }
181
+ const stockChart = this.get("stockChart");
182
+ indicatorControl = stockChart.getControl("IndicatorControl");
183
+ if (!indicatorControl) {
184
+ indicatorControl = IndicatorControl.new(this.root, {
185
+ stockChart: stockChart
186
+ });
187
+ this.setPrivate("indicatorControl", indicatorControl);
188
+ }
189
+ return indicatorControl;
190
+ }
175
191
  }
176
192
  Object.defineProperty(DataSaveControl, "className", {
177
193
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"DataSaveControl.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DataSaveControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IDropdownListItem } from \"./DropdownList\";\r\n\r\nimport { DropdownListControl, IDropdownListControlSettings, IDropdownListControlPrivate, IDropdownListControlEvents } from \"./DropdownListControl\";\r\nimport { DrawingControl } from \"./DrawingControl\";\r\nimport { IndicatorControl } from \"./IndicatorControl\";\r\nimport { StockIcons } from \"./StockIcons\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IDataSaveControlItem extends IDropdownListItem {\r\n}\r\n\r\nexport interface IDataSaveControlSettings extends IDropdownListControlSettings {\r\n\t/**\r\n\t * If set to `true`, all changes to chart's drawings and indicators will be\r\n\t * automatically saved to browser local storage and restored on next load.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tautoSave?: boolean;\r\n\r\n\t/**\r\n\t * A unique indentifier for local storage.\r\n\t *\r\n\t * Will try to use chart's container ID if not set.\r\n\t *\r\n\t * Consider setting it if you have multipl [[StockChart]] on the same page.\r\n\t */\r\n\tstorageId?: string;\r\n}\r\n\r\nexport interface IDataSaveControlPrivate extends IDropdownListControlPrivate {\r\n\tdrawingControl?: DrawingControl;\r\n\tindicatorControl?: IndicatorControl;\r\n\tstorageId?: string;\r\n}\r\n\r\nexport interface IDataSaveControlEvents extends IDropdownListControlEvents {\r\n\r\n\t/**\r\n\t * Invoked when drawing/indicator data is serialized and saved to local\r\n\t * storage.\r\n\t */\r\n\tsaved: {\r\n\t\tdrawings: string;\r\n\t\tindicators: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when drawing/indicator data is loaded from local storage and\r\n\t * restored on chart.\r\n\t */\r\n\trestored: {\r\n\t\tdrawings: string;\r\n\t\tindicators: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when local storage is cleared.\r\n\t */\r\n\tcleared: {};\r\n\r\n}\r\n\r\n/**\r\n * A control that can be used to serialize indicators and drawings, save them\r\n * to local storage, and restore as needed.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/toolbar/data-save-control/} for more info\r\n * @since 5.7.0\r\n */\r\nexport class DataSaveControl extends DropdownListControl {\r\n\tpublic static className: string = \"DataSaveControl\";\r\n\tpublic static classNames: Array<string> = DropdownListControl.classNames.concat([DataSaveControl.className]);\r\n\r\n\tdeclare public _settings: IDataSaveControlSettings;\r\n\tdeclare public _privateSettings: IDataSaveControlPrivate;\r\n\tdeclare public _events: IDataSaveControlEvents;\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.setPrivate(\"storageId\", window.location.href + \"-\" + this.root.dom.id);\r\n\r\n\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\tconst dropdown = this.getPrivate(\"dropdown\")!;\r\n\r\n\t\t// Drawing control\r\n\t\tlet drawingControl = stockChart.getControl(\"DrawingControl\");\r\n\t\tif (!drawingControl) {\r\n\t\t\tdrawingControl = DrawingControl.new(this.root, {\r\n\t\t\t\tstockChart: stockChart\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.setPrivate(\"drawingControl\", drawingControl as DrawingControl);\r\n\r\n\t\t// Indicator control\r\n\t\tlet indicatorControl = stockChart.getControl(\"IndicatorControl\");\r\n\t\tif (!indicatorControl) {\r\n\t\t\tindicatorControl = IndicatorControl.new(this.root, {\r\n\t\t\t\tstockChart: stockChart\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.setPrivate(\"indicatorControl\", indicatorControl as IndicatorControl);\r\n\r\n\t\t// Load local storage\r\n\t\tif (localStorage && localStorage.getItem(this._getStorageId(\"autosave\")) == \"1\") {\r\n\t\t\tthis.set(\"autoSave\", true);\r\n\t\t\tthis.restoreData();\r\n\t\t}\r\n\r\n\t\tdropdown.events.on(\"changed\", (ev) => {\r\n\t\t\tif (ev.item.id == \"autosave\") {\r\n\t\t\t\tconst autoSave = !ev.item.checked;\r\n\t\t\t\tthis.set(\"autoSave\", autoSave);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdropdown.events.on(\"invoked\", (ev) => {\r\n\t\t\tif (ev.item.id == \"save\") {\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t\telse if (ev.item.id == \"restore\") {\r\n\t\t\t\tthis.restoreData();\r\n\t\t\t}\r\n\t\t\telse if (ev.item.id == \"clear\") {\r\n\t\t\t\tthis.clearData();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tthis.on(\"active\", () => {\r\n\t\t\tthis._populateInputs();\r\n\t\t});\r\n\r\n\t\tstockChart.events.on(\"drawingsupdated\", (_ev) => {\r\n\t\t\tif (this.get(\"autoSave\")) {\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tstockChart.events.on(\"indicatorsupdated\", (_ev) => {\r\n\t\t\tif (this.get(\"autoSave\")) {\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\r\n\t\tif (this.isDirty(\"autoSave\") && localStorage) {\r\n\t\t\tconst autoSave = this.get(\"autoSave\", false);\r\n\t\t\tif (autoSave) {\r\n\t\t\t\tlocalStorage.setItem(this._getStorageId(\"autosave\"), \"1\");\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlocalStorage.removeItem(this._getStorageId(\"autosave\"));\r\n\t\t\t\tthis.clearData();\r\n\t\t\t}\r\n\t\t\tthis._populateInputs();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic saveData(): void {\r\n\t\tif (localStorage) {\r\n\t\t\tconst drawingControl = this.getPrivate(\"drawingControl\")!;\r\n\t\t\tconst indicatorControl = this.getPrivate(\"indicatorControl\")!;\r\n\t\t\tconst drawings = drawingControl.serializeDrawings(\"string\", \" \") as string;\r\n\t\t\tconst indicators = indicatorControl.serializeIndicators(\"string\", \" \") as string;\r\n\t\t\tif (drawings == \"[]\") {\r\n\t\t\t\tlocalStorage.removeItem(this._getStorageId(\"drawings\"));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlocalStorage.setItem(this._getStorageId(\"drawings\"), drawings);\r\n\t\t\t}\r\n\t\t\tif (indicators == \"[]\") {\r\n\t\t\t\tlocalStorage.removeItem(this._getStorageId(\"indicators\"));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlocalStorage.setItem(this._getStorageId(\"indicators\"), indicators);\r\n\t\t\t}\r\n\t\t\tthis.events.dispatch(\"saved\", {\r\n\t\t\t\ttarget: this,\r\n\t\t\t\ttype: \"saved\",\r\n\t\t\t\tdrawings: drawings,\r\n\t\t\t\tindicators: indicators\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic restoreData(): void {\r\n\t\tif (localStorage) {\r\n\t\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\t\tstockChart.panels.each((panel) => {\r\n\t\t\t\tpanel.drawings.each((drawing) => {\r\n\t\t\t\t\tdrawing.data.clear();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tstockChart.indicators.clear();\r\n\r\n\t\t\tconst drawingControl = this.getPrivate(\"drawingControl\")!;\r\n\t\t\tconst indicatorControl = this.getPrivate(\"indicatorControl\")!;\r\n\t\t\tconst drawings = localStorage.getItem(this._getStorageId(\"drawings\")) || \"[]\";\r\n\t\t\tconst indicators = localStorage.getItem(this._getStorageId(\"indicators\")) || \"[]\";\r\n\t\t\tdrawingControl.unserializeDrawings(drawings);\r\n\t\t\tindicatorControl.unserializeIndicators(indicators);\r\n\t\t\tthis.events.dispatch(\"restored\", {\r\n\t\t\t\ttarget: this,\r\n\t\t\t\ttype: \"restored\",\r\n\t\t\t\tdrawings: drawings,\r\n\t\t\t\tindicators: indicators\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic clearData(): void {\r\n\t\tif (localStorage) {\r\n\t\t\tlocalStorage.removeItem(this._getStorageId(\"drawings\"));\r\n\t\t\tlocalStorage.removeItem(this._getStorageId(\"indicators\"));\r\n\t\t\tthis.events.dispatch(\"cleared\", {\r\n\t\t\t\ttarget: this,\r\n\t\t\t\ttype: \"cleared\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _getDefaultIcon(): SVGElement {\r\n\t\treturn StockIcons.getIcon(\"Save\");\r\n\t}\r\n\r\n\tprotected _populateInputs(): void {\r\n\t\tconst dropdown = this.getPrivate(\"dropdown\")!;\r\n\t\tconst items = dropdown.get(\"items\", []);\r\n\t\tconst autoSave = this.get(\"autoSave\", false);\r\n\t\tconst isSavedData = localStorage && (localStorage.getItem(this._getStorageId(\"drawings\")) !== null || localStorage.getItem(this._getStorageId(\"indicators\")) !== null);\r\n\t\t$array.each(items, (item) => {\r\n\t\t\tif (!localStorage) {\r\n\t\t\t\titem.disabled = true;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"restore\") {\r\n\t\t\t\titem.disabled = autoSave || !isSavedData;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"clear\") {\r\n\t\t\t\titem.disabled = !isSavedData;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"save\") {\r\n\t\t\t\titem.disabled = autoSave;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"autosave\") {\r\n\t\t\t\titem.checked = autoSave;\r\n\t\t\t}\r\n\t\t})\r\n\t\tdropdown.rebuildList();\r\n\t}\r\n\r\n\tprotected _getStorageId(bucket: string): string {\r\n\t\treturn \"am5-stock-\" + this.get(\"storageId\", this.getPrivate(\"storageId\", \"\")) + \"-\" + bucket;\r\n\t}\r\n\r\n}"]}
1
+ {"version":3,"file":"DataSaveControl.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DataSaveControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IDropdownListItem } from \"./DropdownList\";\r\n\r\nimport { DropdownListControl, IDropdownListControlSettings, IDropdownListControlPrivate, IDropdownListControlEvents } from \"./DropdownListControl\";\r\nimport { DrawingControl } from \"./DrawingControl\";\r\nimport { IndicatorControl } from \"./IndicatorControl\";\r\nimport { StockIcons } from \"./StockIcons\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IDataSaveControlItem extends IDropdownListItem {\r\n}\r\n\r\nexport interface IDataSaveControlSettings extends IDropdownListControlSettings {\r\n\t/**\r\n\t * If set to `true`, all changes to chart's drawings and indicators will be\r\n\t * automatically saved to browser local storage and restored on next load.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tautoSave?: boolean;\r\n\r\n\t/**\r\n\t * A unique indentifier for local storage.\r\n\t *\r\n\t * Will try to use chart's container ID if not set.\r\n\t *\r\n\t * Consider setting it if you have multipl [[StockChart]] on the same page.\r\n\t */\r\n\tstorageId?: string;\r\n}\r\n\r\nexport interface IDataSaveControlPrivate extends IDropdownListControlPrivate {\r\n\tdrawingControl?: DrawingControl;\r\n\tindicatorControl?: IndicatorControl;\r\n\tstorageId?: string;\r\n}\r\n\r\nexport interface IDataSaveControlEvents extends IDropdownListControlEvents {\r\n\r\n\t/**\r\n\t * Invoked when drawing/indicator data is serialized and saved to local\r\n\t * storage.\r\n\t */\r\n\tsaved: {\r\n\t\tdrawings: string;\r\n\t\tindicators: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when drawing/indicator data is loaded from local storage and\r\n\t * restored on chart.\r\n\t */\r\n\trestored: {\r\n\t\tdrawings: string;\r\n\t\tindicators: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when local storage is cleared.\r\n\t */\r\n\tcleared: {};\r\n\r\n}\r\n\r\n/**\r\n * A control that can be used to serialize indicators and drawings, save them\r\n * to local storage, and restore as needed.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/toolbar/data-save-control/} for more info\r\n * @since 5.7.0\r\n */\r\nexport class DataSaveControl extends DropdownListControl {\r\n\tpublic static className: string = \"DataSaveControl\";\r\n\tpublic static classNames: Array<string> = DropdownListControl.classNames.concat([DataSaveControl.className]);\r\n\r\n\tdeclare public _settings: IDataSaveControlSettings;\r\n\tdeclare public _privateSettings: IDataSaveControlPrivate;\r\n\tdeclare public _events: IDataSaveControlEvents;\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.setPrivate(\"storageId\", window.location.href + \"-\" + this.root.dom.id);\r\n\r\n\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\tconst dropdown = this.getPrivate(\"dropdown\")!;\r\n\r\n\t\t// Load local storage\r\n\t\tif (localStorage && localStorage.getItem(this._getStorageId(\"autosave\")) == \"1\") {\r\n\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\tthis.restoreData();\r\n\t\t\t\tthis.set(\"autoSave\", true);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tdropdown.events.on(\"changed\", (ev) => {\r\n\t\t\tif (ev.item.id == \"autosave\") {\r\n\t\t\t\tconst autoSave = !ev.item.checked;\r\n\t\t\t\tthis.set(\"autoSave\", autoSave);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdropdown.events.on(\"invoked\", (ev) => {\r\n\t\t\tif (ev.item.id == \"save\") {\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t\telse if (ev.item.id == \"restore\") {\r\n\t\t\t\tthis.restoreData();\r\n\t\t\t}\r\n\t\t\telse if (ev.item.id == \"clear\") {\r\n\t\t\t\tthis.clearData();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tthis.on(\"active\", () => {\r\n\t\t\tthis._populateInputs();\r\n\t\t});\r\n\r\n\t\tstockChart.events.on(\"drawingsupdated\", (_ev) => {\r\n\t\t\tif (this.get(\"autoSave\")) {\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tstockChart.events.on(\"indicatorsupdated\", (_ev) => {\r\n\t\t\tif (this.get(\"autoSave\")) {\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\r\n\t\tif (this.isDirty(\"autoSave\") && localStorage) {\r\n\t\t\tconst autoSave = this.get(\"autoSave\", false);\r\n\t\t\tif (autoSave) {\r\n\t\t\t\tlocalStorage.setItem(this._getStorageId(\"autosave\"), \"1\");\r\n\t\t\t\tthis.saveData();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlocalStorage.removeItem(this._getStorageId(\"autosave\"));\r\n\t\t\t\t//this.clearData();\r\n\t\t\t}\r\n\t\t\tthis._populateInputs();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic saveData(): void {\r\n\t\tif (localStorage) {\r\n\t\t\tconst drawingControl = this._getDrawingControl();\r\n\t\t\tconst indicatorControl = this._getIndicatorControl();\r\n\t\t\tconst drawings = drawingControl.serializeDrawings(\"string\", \" \") as string;\r\n\t\t\tconst indicators = indicatorControl.serializeIndicators(\"string\", \" \") as string;\r\n\t\t\tif (drawings == \"[]\") {\r\n\t\t\t\tlocalStorage.removeItem(this._getStorageId(\"drawings\"));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlocalStorage.setItem(this._getStorageId(\"drawings\"), drawings);\r\n\t\t\t}\r\n\t\t\tif (indicators == \"[]\") {\r\n\t\t\t\tlocalStorage.removeItem(this._getStorageId(\"indicators\"));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlocalStorage.setItem(this._getStorageId(\"indicators\"), indicators);\r\n\t\t\t}\r\n\t\t\tthis.events.dispatch(\"saved\", {\r\n\t\t\t\ttarget: this,\r\n\t\t\t\ttype: \"saved\",\r\n\t\t\t\tdrawings: drawings,\r\n\t\t\t\tindicators: indicators\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic restoreData(): void {\r\n\t\tif (localStorage) {\r\n\t\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\t\tstockChart.panels.each((panel) => {\r\n\t\t\t\tpanel.drawings.each((drawing) => {\r\n\t\t\t\t\tdrawing.data.clear();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tstockChart.indicators.clear();\r\n\r\n\t\t\tconst drawingControl = this._getDrawingControl();\r\n\t\t\tconst indicatorControl = this._getIndicatorControl();\r\n\t\t\tconst drawings = localStorage.getItem(this._getStorageId(\"drawings\")) || \"[]\";\r\n\t\t\tconst indicators = localStorage.getItem(this._getStorageId(\"indicators\")) || \"[]\";\r\n\r\n\t\t\tdrawingControl.unserializeDrawings(drawings);\r\n\t\t\tindicatorControl.unserializeIndicators(indicators);\r\n\t\t\tthis.events.dispatch(\"restored\", {\r\n\t\t\t\ttarget: this,\r\n\t\t\t\ttype: \"restored\",\r\n\t\t\t\tdrawings: drawings,\r\n\t\t\t\tindicators: indicators\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic clearData(): void {\r\n\t\tif (localStorage) {\r\n\t\t\tlocalStorage.removeItem(this._getStorageId(\"drawings\"));\r\n\t\t\tlocalStorage.removeItem(this._getStorageId(\"indicators\"));\r\n\t\t\tthis.events.dispatch(\"cleared\", {\r\n\t\t\t\ttarget: this,\r\n\t\t\t\ttype: \"cleared\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _getDefaultIcon(): SVGElement {\r\n\t\treturn StockIcons.getIcon(\"Save\");\r\n\t}\r\n\r\n\tprotected _populateInputs(): void {\r\n\t\tconst dropdown = this.getPrivate(\"dropdown\")!;\r\n\t\tconst items = dropdown.get(\"items\", []);\r\n\t\tconst autoSave = this.get(\"autoSave\", false);\r\n\t\tconst isSavedData = localStorage && (localStorage.getItem(this._getStorageId(\"drawings\")) !== null || localStorage.getItem(this._getStorageId(\"indicators\")) !== null);\r\n\t\t$array.each(items, (item) => {\r\n\t\t\tif (!localStorage) {\r\n\t\t\t\titem.disabled = true;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"restore\") {\r\n\t\t\t\titem.disabled = autoSave || !isSavedData;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"clear\") {\r\n\t\t\t\titem.disabled = !isSavedData;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"save\") {\r\n\t\t\t\titem.disabled = autoSave;\r\n\t\t\t}\r\n\t\t\telse if (item.id == \"autosave\") {\r\n\t\t\t\titem.checked = autoSave;\r\n\t\t\t}\r\n\t\t})\r\n\t\tdropdown.rebuildList();\r\n\t}\r\n\r\n\tprotected _getStorageId(bucket: string): string {\r\n\t\treturn \"am5-stock-\" + this.get(\"storageId\", this.getPrivate(\"storageId\", \"\")) + \"-\" + bucket;\r\n\t}\r\n\r\n\tprotected _getDrawingControl(): DrawingControl {\r\n\r\n\t\tlet drawingControl: DrawingControl | undefined = this.getPrivate(\"drawingControl\");\r\n\t\tif (drawingControl) {\r\n\t\t\treturn drawingControl;\r\n\t\t}\r\n\r\n\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\tdrawingControl = stockChart.getControl(\"DrawingControl\") as DrawingControl;\r\n\t\tif (!drawingControl) {\r\n\t\t\tdrawingControl = DrawingControl.new(this.root, {\r\n\t\t\t\tstockChart: stockChart\r\n\t\t\t});\r\n\t\t\tthis.setPrivate(\"drawingControl\", drawingControl);\r\n\t\t}\r\n\t\treturn drawingControl;\r\n\t}\r\n\r\n\tprotected _getIndicatorControl(): IndicatorControl {\r\n\r\n\t\tlet indicatorControl: IndicatorControl | undefined = this.getPrivate(\"indicatorControl\");\r\n\t\tif (indicatorControl) {\r\n\t\t\treturn indicatorControl;\r\n\t\t}\r\n\r\n\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\tindicatorControl = stockChart.getControl(\"IndicatorControl\") as IndicatorControl;\r\n\t\tif (!indicatorControl) {\r\n\t\t\tindicatorControl = IndicatorControl.new(this.root, {\r\n\t\t\t\tstockChart: stockChart\r\n\t\t\t});\r\n\t\t\tthis.setPrivate(\"indicatorControl\", indicatorControl);\r\n\t\t}\r\n\t\treturn indicatorControl;\r\n\t}\r\n\r\n}"]}
@@ -8,6 +8,7 @@ import { ColorControl } from "./ColorControl";
8
8
  import { DropdownListControl } from "./DropdownListControl";
9
9
  import { IconControl, IIcon } from "./IconControl";
10
10
  import { DrawingSeries } from "../drawing/DrawingSeries";
11
+ import type { StockPanel } from "../StockPanel";
11
12
  export interface IDrawingControlSettings extends IStockControlSettings {
12
13
  /**
13
14
  * List of tools available in drawing mode.
@@ -148,7 +149,6 @@ export declare class DrawingControl extends StockControl {
148
149
  _events: IDrawingControlEvents;
149
150
  private _drawingSeries;
150
151
  private _currentEnabledSeries;
151
- private _initedPanels;
152
152
  protected _afterNew(): void;
153
153
  protected _initElements(): void;
154
154
  protected _isInited(): boolean;
@@ -170,6 +170,9 @@ export declare class DrawingControl extends StockControl {
170
170
  _beforeChanged(): void;
171
171
  protected _setTool(tool?: DrawingTools): void;
172
172
  protected _maybeInitToolSeries(tool: DrawingTools): void;
173
+ protected _updateSeriesBindings(panel: StockPanel): void;
174
+ protected _getPanelMainSeries(panel: StockPanel): XYSeries | undefined;
175
+ protected _updatePanelBindings(): void;
173
176
  protected _setStroke(): void;
174
177
  protected _setFill(): void;
175
178
  protected _setLabel(): void;
@@ -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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"}
@@ -52,12 +52,6 @@ export class DrawingControl extends StockControl {
52
52
  writable: true,
53
53
  value: []
54
54
  });
55
- Object.defineProperty(this, "_initedPanels", {
56
- enumerable: true,
57
- configurable: true,
58
- writable: true,
59
- value: []
60
- });
61
55
  }
62
56
  _afterNew() {
63
57
  super._afterNew();
@@ -65,6 +59,8 @@ export class DrawingControl extends StockControl {
65
59
  if (this.getPrivate("toolbar")) {
66
60
  this._initToolbar();
67
61
  }
62
+ const stockChart = this.get("stockChart");
63
+ stockChart.panels.events.onAll(() => this._updatePanelBindings());
68
64
  }
69
65
  _initElements() {
70
66
  super._initElements();
@@ -529,9 +525,9 @@ export class DrawingControl extends StockControl {
529
525
  if (chartSeries.length == 0) {
530
526
  // No target series set, take first series out of each chart
531
527
  stockChart.panels.each((panel) => {
532
- if ((seriesList.length === 0 || this._initedPanels.indexOf(panel) === -1) && (panel.series.length > 0)) {
533
- chartSeries.push(panel.series.getIndex(0));
534
- this._initedPanels.push(panel);
528
+ const targetSeries = this._getPanelMainSeries(panel);
529
+ if (targetSeries) {
530
+ chartSeries.push(targetSeries);
535
531
  }
536
532
  });
537
533
  }
@@ -700,8 +696,11 @@ export class DrawingControl extends StockControl {
700
696
  seriesList.push(series);
701
697
  panel.drawings.push(series);
702
698
  series.setPrivate("baseValueSeries", chartSeries);
703
- series.set("valueYShow", chartSeries.get("valueYShow"));
699
+ series.set("valueYShow", stockChart.getSeriesDefault(chartSeries, "valueYShow"));
704
700
  series.set("calculateAggregates", true);
701
+ if (stockChart.getPrivate("comparing")) {
702
+ stockChart.setPercentScale();
703
+ }
705
704
  }
706
705
  });
707
706
  this._drawingSeries[tool] = seriesList;
@@ -713,6 +712,37 @@ export class DrawingControl extends StockControl {
713
712
  this._setExtension();
714
713
  }
715
714
  }
715
+ _updateSeriesBindings(panel) {
716
+ const targetSeries = this._getPanelMainSeries(panel);
717
+ if (targetSeries) {
718
+ $object.each(this._drawingSeries, (_tool, seriesList) => {
719
+ $array.each(seriesList, (series) => {
720
+ if (series.chart == panel) {
721
+ series.set("series", targetSeries);
722
+ series.setPrivate("baseValueSeries", targetSeries);
723
+ }
724
+ });
725
+ });
726
+ }
727
+ }
728
+ _getPanelMainSeries(panel) {
729
+ const stockChart = this.get("stockChart");
730
+ const stockSeries = stockChart.get("stockSeries");
731
+ let targetSeries;
732
+ if (stockSeries && stockSeries.chart == panel) {
733
+ targetSeries = stockSeries;
734
+ }
735
+ else {
736
+ targetSeries = panel.series.getIndex(0);
737
+ }
738
+ return targetSeries;
739
+ }
740
+ _updatePanelBindings() {
741
+ const stockChart = this.get("stockChart");
742
+ stockChart.panels.each((panel) => {
743
+ panel.series.events.onAll(() => this._updateSeriesBindings(panel));
744
+ });
745
+ }
716
746
  _setStroke() {
717
747
  $object.each(this._drawingSeries, (_tool, seriesList) => {
718
748
  $array.each(seriesList, (series) => {