@amcharts/amcharts5 5.0.11 → 5.0.15

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 (234) hide show
  1. package/.internal/charts/hierarchy/ForceDirected.d.ts +1 -0
  2. package/.internal/charts/hierarchy/ForceDirected.d.ts.map +1 -1
  3. package/.internal/charts/hierarchy/ForceDirected.js +21 -6
  4. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  5. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  6. package/.internal/charts/hierarchy/Hierarchy.js +3 -1
  7. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  8. package/.internal/charts/map/MapChart.d.ts +2 -1
  9. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  10. package/.internal/charts/map/MapChart.js +46 -64
  11. package/.internal/charts/map/MapChart.js.map +1 -1
  12. package/.internal/charts/map/MapPointSeries.d.ts +2 -0
  13. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  14. package/.internal/charts/map/MapPointSeries.js +1 -1
  15. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  16. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  17. package/.internal/charts/percent/PercentSeries.js +2 -1
  18. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  19. package/.internal/charts/venn/Venn.d.ts.map +1 -1
  20. package/.internal/charts/venn/Venn.js +2 -1
  21. package/.internal/charts/venn/Venn.js.map +1 -1
  22. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  23. package/.internal/charts/xy/XYChart.js +6 -5
  24. package/.internal/charts/xy/XYChart.js.map +1 -1
  25. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  26. package/.internal/charts/xy/XYChartDefaultTheme.js +8 -4
  27. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  28. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  29. package/.internal/charts/xy/XYCursor.js +4 -1
  30. package/.internal/charts/xy/XYCursor.js.map +1 -1
  31. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  32. package/.internal/charts/xy/axes/Axis.js +11 -6
  33. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  34. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  35. package/.internal/charts/xy/axes/AxisRenderer.js +0 -4
  36. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  37. package/.internal/charts/xy/axes/AxisRendererX.d.ts.map +1 -1
  38. package/.internal/charts/xy/axes/AxisRendererX.js +9 -6
  39. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  40. package/.internal/charts/xy/axes/AxisRendererY.d.ts.map +1 -1
  41. package/.internal/charts/xy/axes/AxisRendererY.js +9 -6
  42. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  43. package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
  44. package/.internal/charts/xy/axes/CategoryAxis.js +1 -0
  45. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  46. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  47. package/.internal/charts/xy/axes/DateAxis.js +1 -1
  48. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  49. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  50. package/.internal/charts/xy/axes/ValueAxis.js +40 -35
  51. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  52. package/.internal/charts/xy/series/BaseColumnSeries.js +2 -2
  53. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  54. package/.internal/charts/xy/series/LineSeries.js +2 -2
  55. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  56. package/.internal/charts/xy/series/XYSeries.d.ts +0 -1
  57. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  58. package/.internal/charts/xy/series/XYSeries.js +17 -31
  59. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  60. package/.internal/core/Root.d.ts.map +1 -1
  61. package/.internal/core/Root.js +43 -14
  62. package/.internal/core/Root.js.map +1 -1
  63. package/.internal/core/render/Container.d.ts.map +1 -1
  64. package/.internal/core/render/Container.js +5 -1
  65. package/.internal/core/render/Container.js.map +1 -1
  66. package/.internal/core/render/Label.d.ts +8 -0
  67. package/.internal/core/render/Label.d.ts.map +1 -1
  68. package/.internal/core/render/Label.js +1 -0
  69. package/.internal/core/render/Label.js.map +1 -1
  70. package/.internal/core/render/Legend.d.ts +14 -3
  71. package/.internal/core/render/Legend.d.ts.map +1 -1
  72. package/.internal/core/render/Legend.js +60 -49
  73. package/.internal/core/render/Legend.js.map +1 -1
  74. package/.internal/core/render/Scrollbar.d.ts.map +1 -1
  75. package/.internal/core/render/Scrollbar.js +4 -0
  76. package/.internal/core/render/Scrollbar.js.map +1 -1
  77. package/.internal/core/render/Series.d.ts +2 -0
  78. package/.internal/core/render/Series.d.ts.map +1 -1
  79. package/.internal/core/render/Series.js +32 -17
  80. package/.internal/core/render/Series.js.map +1 -1
  81. package/.internal/core/render/Sprite.d.ts +12 -11
  82. package/.internal/core/render/Sprite.d.ts.map +1 -1
  83. package/.internal/core/render/Sprite.js +7 -3
  84. package/.internal/core/render/Sprite.js.map +1 -1
  85. package/.internal/core/render/Text.d.ts +1 -0
  86. package/.internal/core/render/Text.d.ts.map +1 -1
  87. package/.internal/core/render/Text.js +1 -0
  88. package/.internal/core/render/Text.js.map +1 -1
  89. package/.internal/core/render/backend/CanvasRenderer.d.ts +4 -2
  90. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  91. package/.internal/core/render/backend/CanvasRenderer.js +78 -18
  92. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  93. package/.internal/core/render/backend/Renderer.d.ts +1 -0
  94. package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
  95. package/.internal/core/render/backend/Renderer.js.map +1 -1
  96. package/.internal/core/util/Accessibility.d.ts +12 -0
  97. package/.internal/core/util/Accessibility.d.ts.map +1 -1
  98. package/.internal/core/util/Accessibility.js.map +1 -1
  99. package/.internal/core/util/Disposer.d.ts +9 -0
  100. package/.internal/core/util/Disposer.d.ts.map +1 -1
  101. package/.internal/core/util/Disposer.js +24 -0
  102. package/.internal/core/util/Disposer.js.map +1 -1
  103. package/.internal/core/util/TextFormatter.d.ts.map +1 -1
  104. package/.internal/core/util/TextFormatter.js +3 -0
  105. package/.internal/core/util/TextFormatter.js.map +1 -1
  106. package/.internal/core/util/Time.js +1 -1
  107. package/.internal/core/util/Time.js.map +1 -1
  108. package/.internal/plugins/exporting/Annotator.d.ts +3 -1
  109. package/.internal/plugins/exporting/Annotator.d.ts.map +1 -1
  110. package/.internal/plugins/exporting/Annotator.js +46 -16
  111. package/.internal/plugins/exporting/Annotator.js.map +1 -1
  112. package/.internal/plugins/exporting/ExportingMenu.d.ts +2 -0
  113. package/.internal/plugins/exporting/ExportingMenu.d.ts.map +1 -1
  114. package/.internal/plugins/exporting/ExportingMenu.js +35 -14
  115. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  116. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  117. package/.internal/themes/DefaultTheme.js +4 -3
  118. package/.internal/themes/DefaultTheme.js.map +1 -1
  119. package/CHANGELOG.md +58 -1
  120. package/examples/javascript/flow-chord/package.json +1 -1
  121. package/examples/javascript/flow-chord-directed/package.json +1 -1
  122. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  123. package/examples/javascript/flow-sankey/package.json +1 -1
  124. package/examples/javascript/gauge/package.json +1 -1
  125. package/examples/javascript/gauge-bands/package.json +1 -1
  126. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  127. package/examples/javascript/hierarchy-pack/package.json +1 -1
  128. package/examples/javascript/hierarchy-partition/package.json +1 -1
  129. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  130. package/examples/javascript/hierarchy-tree/package.json +1 -1
  131. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  132. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  133. package/examples/javascript/map-day-and-night/package.json +1 -1
  134. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  135. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  136. package/examples/javascript/map-with-bubbles/package.json +1 -1
  137. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  138. package/examples/javascript/misc-40-charts/package.json +1 -1
  139. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  140. package/examples/javascript/pie-chart/package.json +1 -1
  141. package/examples/javascript/pie-donut-chart/package.json +1 -1
  142. package/examples/javascript/pie-variable-radius/package.json +1 -1
  143. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  144. package/examples/javascript/radar-heat-map/package.json +1 -1
  145. package/examples/javascript/radar-line/package.json +1 -1
  146. package/examples/javascript/radar-time-line/package.json +1 -1
  147. package/examples/javascript/sliced-funnel/package.json +1 -1
  148. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  149. package/examples/javascript/sliced-pyramid/package.json +1 -1
  150. package/examples/javascript/venn-diagram/package.json +1 -1
  151. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  152. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  153. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  154. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  155. package/examples/javascript/xy-bubble/package.json +1 -1
  156. package/examples/javascript/xy-candlestick/package.json +1 -1
  157. package/examples/javascript/xy-clustered-column/package.json +1 -1
  158. package/examples/javascript/xy-column/package.json +1 -1
  159. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  160. package/examples/javascript/xy-data-grouping/package.json +1 -1
  161. package/examples/javascript/xy-draggable-range/package.json +1 -1
  162. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  163. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  164. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  165. package/examples/javascript/xy-line/package.json +1 -1
  166. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  167. package/examples/javascript/xy-live-data/package.json +1 -1
  168. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  169. package/examples/javascript/xy-ohlc/package.json +1 -1
  170. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  171. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  172. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  173. package/examples/javascript/xy-stacked-column/package.json +1 -1
  174. package/examples/javascript/xy-stacked-step/package.json +1 -1
  175. package/examples/javascript/xy-stock/package.json +1 -1
  176. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  177. package/examples/typescript/flow-chord/package.json +1 -1
  178. package/examples/typescript/flow-chord-directed/package.json +1 -1
  179. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  180. package/examples/typescript/flow-sankey/package.json +1 -1
  181. package/examples/typescript/gauge/package.json +1 -1
  182. package/examples/typescript/gauge-bands/package.json +1 -1
  183. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  184. package/examples/typescript/hierarchy-pack/package.json +1 -1
  185. package/examples/typescript/hierarchy-partition/package.json +1 -1
  186. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  187. package/examples/typescript/hierarchy-tree/package.json +1 -1
  188. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  189. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  190. package/examples/typescript/map-day-and-night/package.json +1 -1
  191. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  192. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  193. package/examples/typescript/map-with-bubbles/package.json +1 -1
  194. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  195. package/examples/typescript/misc-40-charts/package.json +1 -1
  196. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  197. package/examples/typescript/pie-chart/package.json +1 -1
  198. package/examples/typescript/pie-donut-chart/package.json +1 -1
  199. package/examples/typescript/pie-variable-radius/package.json +1 -1
  200. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  201. package/examples/typescript/radar-heat-map/package.json +1 -1
  202. package/examples/typescript/radar-line/package.json +1 -1
  203. package/examples/typescript/radar-time-line/package.json +1 -1
  204. package/examples/typescript/sliced-funnel/package.json +1 -1
  205. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  206. package/examples/typescript/sliced-pyramid/package.json +1 -1
  207. package/examples/typescript/venn-diagram/package.json +1 -1
  208. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  209. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  210. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  211. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  212. package/examples/typescript/xy-bubble/package.json +1 -1
  213. package/examples/typescript/xy-candlestick/package.json +1 -1
  214. package/examples/typescript/xy-clustered-column/package.json +1 -1
  215. package/examples/typescript/xy-column/package.json +1 -1
  216. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  217. package/examples/typescript/xy-data-grouping/package.json +1 -1
  218. package/examples/typescript/xy-draggable-range/package.json +1 -1
  219. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  220. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  221. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  222. package/examples/typescript/xy-line/package.json +1 -1
  223. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  224. package/examples/typescript/xy-live-data/package.json +1 -1
  225. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  226. package/examples/typescript/xy-ohlc/package.json +1 -1
  227. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  228. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  229. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  230. package/examples/typescript/xy-stacked-column/package.json +1 -1
  231. package/examples/typescript/xy-stacked-step/package.json +1 -1
  232. package/examples/typescript/xy-stock/package.json +1 -1
  233. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  234. package/package.json +2 -2
@@ -2,6 +2,7 @@ import { __awaiter, __extends, __generator } from "tslib";
2
2
  import { Entity } from "../../core/util/Entity";
3
3
  import { Container } from "../../core/render/Container";
4
4
  import { Picture } from "../../core/render/Picture";
5
+ import * as $utils from "../../core/util/Utils";
5
6
  import { p100 } from "../../core/util/Percent";
6
7
  /**
7
8
  * A plugin that can be used to annotate charts.
@@ -30,6 +31,12 @@ var Annotator = /** @class */ (function (_super) {
30
31
  writable: true,
31
32
  value: void 0
32
33
  });
34
+ Object.defineProperty(_this, "_skipRender", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: false
39
+ });
33
40
  return _this;
34
41
  }
35
42
  //public extraImages: Array<Root | IAnnotatorImageSource> = [];
@@ -42,11 +49,6 @@ var Annotator = /** @class */ (function (_super) {
42
49
  _super.prototype._afterNew.call(this);
43
50
  this._setRawDefault("layer", 1000);
44
51
  this._root.addDisposer(this);
45
- if (this.get("markerState")) {
46
- // Preload image
47
- this.open();
48
- this.close();
49
- }
50
52
  }
51
53
  });
52
54
  Object.defineProperty(Annotator.prototype, "_beforeChanged", {
@@ -55,6 +57,9 @@ var Annotator = /** @class */ (function (_super) {
55
57
  writable: true,
56
58
  value: function () {
57
59
  _super.prototype._beforeChanged.call(this);
60
+ if (this.isDirty("markerState")) {
61
+ this._renderState();
62
+ }
58
63
  }
59
64
  });
60
65
  /**
@@ -90,6 +95,28 @@ var Annotator = /** @class */ (function (_super) {
90
95
  });
91
96
  }
92
97
  });
98
+ Object.defineProperty(Annotator.prototype, "_renderState", {
99
+ enumerable: false,
100
+ configurable: true,
101
+ writable: true,
102
+ value: function () {
103
+ return __awaiter(this, void 0, void 0, function () {
104
+ var markerArea;
105
+ return __generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0: return [4 /*yield*/, this.getMarkerArea()];
108
+ case 1:
109
+ markerArea = _a.sent();
110
+ if (this.get("markerState")) {
111
+ this._skipRender = true;
112
+ markerArea.renderState(this.get("markerState"));
113
+ }
114
+ return [2 /*return*/];
115
+ }
116
+ });
117
+ });
118
+ }
119
+ });
93
120
  /**
94
121
  * Exists from annotation mode. All annotations remain visible on the chart.
95
122
  */
@@ -102,12 +129,9 @@ var Annotator = /** @class */ (function (_super) {
102
129
  var markerArea;
103
130
  return __generator(this, function (_a) {
104
131
  switch (_a.label) {
105
- case 0:
106
- this._root._renderer.interactionsEnabled = true;
107
- return [4 /*yield*/, this.getMarkerArea()];
132
+ case 0: return [4 /*yield*/, this.getMarkerArea()];
108
133
  case 1:
109
134
  markerArea = _a.sent();
110
- this._picture.show(0);
111
135
  markerArea.close();
112
136
  return [2 /*return*/];
113
137
  }
@@ -215,7 +239,7 @@ var Annotator = /** @class */ (function (_super) {
215
239
  }));
216
240
  }
217
241
  if (!!this._markerArea) return [3 /*break*/, 2];
218
- return [4 /*yield*/, this._getMarkerArea()];
242
+ return [4 /*yield*/, this._getMarkerJS()];
219
243
  case 1:
220
244
  markerjs2 = _a.sent();
221
245
  canvas = this._container._display.getCanvas();
@@ -224,12 +248,18 @@ var Annotator = /** @class */ (function (_super) {
224
248
  markerArea.uiStyleSettings.logoPosition = "right";
225
249
  markerArea.uiStyleSettings.zIndex = 20;
226
250
  markerArea.targetRoot = canvas.parentElement;
227
- markerArea.addRenderEventListener(function (img, state) {
251
+ this._disposers.push($utils.addEventListener(markerArea, "close", function () {
252
+ _this._root._renderer.interactionsEnabled = true;
253
+ _this._picture.show(0);
254
+ }));
255
+ this._disposers.push($utils.addEventListener(markerArea, "render", function (event) {
228
256
  var picture = _this._picture;
229
- picture.set("src", img);
230
- picture.show(0);
231
- _this.set("markerState", state);
232
- });
257
+ picture.set("src", event.dataUrl);
258
+ if (!_this._skipRender) {
259
+ _this.set("markerState", event.state);
260
+ }
261
+ _this._skipRender = false;
262
+ }));
233
263
  this._markerArea = markerArea;
234
264
  _a.label = 2;
235
265
  case 2: return [2 /*return*/];
@@ -241,7 +271,7 @@ var Annotator = /** @class */ (function (_super) {
241
271
  /**
242
272
  * @ignore
243
273
  */
244
- Object.defineProperty(Annotator.prototype, "_getMarkerArea", {
274
+ Object.defineProperty(Annotator.prototype, "_getMarkerJS", {
245
275
  enumerable: false,
246
276
  configurable: true,
247
277
  writable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"Annotator.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/Annotator.ts"],"names":[],"mappings":"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","sourcesContent":["import { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"../../core/util/Entity\"\nimport { Container } from \"../../core/render/Container\";\nimport { Picture } from \"../../core/render/Picture\";\n\nimport { p100 } from \"../../core/util/Percent\";\n\nexport interface IAnnotatorSettings extends IEntitySettings {\n\n\t/**\n\t * Layer number to use for annotations.\n\t * \n\t * @default 1000\n\t */\n\tlayer?: number;\n\n\t/**\n\t * Raw annotation info saved by MarkerJS.\n\t */\n\tmarkerState?: any;\n\n}\n\nexport interface IAnnotatorPrivate extends IEntityPrivate {\n}\n\nexport interface IAnnotatorEvents extends IEntityEvents {\n}\n\n\n\n/**\n * A plugin that can be used to annotate charts.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/annotator/} for more info\n */\nexport class Annotator extends Entity {\n\tpublic static className: string = \"Annotator\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([Annotator.className]);\n\n\tdeclare public _settings: IAnnotatorSettings;\n\tdeclare public _privateSettings: IAnnotatorPrivate;\n\tdeclare public _events: IAnnotatorEvents;\n\n\tprivate _container?: Container;\n\tprivate _picture?: Picture;\n\tprivate _markerArea?: any;\n\n\t//public extraImages: Array<Root | IAnnotatorImageSource> = [];\n\t//public dataSources: any[] = [];\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\t\tthis._setRawDefault(\"layer\", 1000);\n\t\tthis._root.addDisposer(this);\n\n\t\tif (this.get(\"markerState\")) {\n\t\t\t// Preload image\n\t\t\tthis.open();\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\t}\n\n\t/**\n\t * Triggers annotation mode on the chart. This will display UI toolbars and\n\t * disable all interactions on the chart itself.\n\t */\n\tpublic async open() {\n\n\t\t// Delay this so that it's not knocked off by closing of the ExportingMenu\n\t\tthis.setTimeout(() => {\n\t\t\tthis._root._renderer.interactionsEnabled = false;\n\t\t}, 100)\n\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tmarkerArea.show();\n\t\tthis._picture!.hide(0);\n\t\tif (this.get(\"markerState\")) {\n\t\t\tmarkerArea.restoreState(this.get(\"markerState\"));\n\t\t}\n\t}\n\n\t/**\n\t * Exists from annotation mode. All annotations remain visible on the chart.\n\t */\n\tpublic async close() {\n\t\tthis._root._renderer.interactionsEnabled = true;\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tthis._picture!.show(0);\n\t\tmarkerArea!.close();\n\t}\n\n\t/**\n\t * Exits from annotation mode. Any changes made during last session of the\n\t * annotation editing are cancelled.\n\t */\n\tpublic async cancel() {\n\t\tthis._root._renderer.interactionsEnabled = true;\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tthis._picture!.show(0);\n\t\tmarkerArea!.cancel();\n\t}\n\n\t/**\n\t * All annotations are removed.\n\t */\n\tpublic clear() {\n\t\tthis.set(\"markerState\", undefined);\n\t\tif (this._picture) {\n\t\t\tthis._picture.set(\"src\", \"\");\n\t\t}\n\t}\n\n\tpublic async toggle() {\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tif (markerArea.isOpen) {\n\t\t\tthis.close();\n\t\t}\n\t\telse {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\tpublic dispose(): void {\n\t\tsuper.dispose();\n\t\tif (this._markerArea && this._markerArea.isOpen) {\n\t\t\tthis._markerArea.close();\n\t\t}\n\t}\n\n\tprivate async _maybeInit() {\n\n\t\t// Create layer canvas\n\t\tif (!this._container) {\n\t\t\tthis._container = this._root.container.children.push(Container.new(this._root, {\n\t\t\t\twidth: p100,\n\t\t\t\theight: p100,\n\t\t\t\tlayer: this.get(\"layer\"),\n\t\t\t\tinteractiveChildren: false\n\t\t\t}));\n\n\t\t\tthis._picture = this._container.children.push(Picture.new(this._root, {\n\t\t\t\twidth: p100,\n\t\t\t\theight: p100\n\t\t\t}));\n\t\t}\n\n\t\t// Create MarkerArea\n\t\tif (!this._markerArea) {\n\t\t\tconst markerjs2 = await this._getMarkerArea();\n\t\t\tconst canvas = this._container._display.getCanvas();\n\t\t\tconst markerArea = new markerjs2.MarkerArea(canvas);\n\t\t\t//markerArea.renderTarget = canvas;\n\t\t\tmarkerArea.uiStyleSettings.logoPosition = \"right\";\n\t\t\tmarkerArea.uiStyleSettings.zIndex = 20;\n\t\t\tmarkerArea.targetRoot = canvas.parentElement!;\n\n\t\t\tmarkerArea.addRenderEventListener((img: any, state: any) => {\n\t\t\t\tconst picture = this._picture!;\n\t\t\t\tpicture.set(\"src\", img);\n\t\t\t\tpicture.show(0);\n\t\t\t\tthis.set(\"markerState\", state);\n\t\t\t});\n\n\t\t\tthis._markerArea = markerArea;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate async _getMarkerArea(): Promise<any> {\n\t\treturn await import(/* webpackChunkName: \"markerjs2\" */ \"markerjs2\");\n\t}\n\n\t/**\n\t * An instance of MarkerJS's [[MarkerArea]].\n\t *\n\t * @see {@link https://markerjs.com/docs/getting-started} for more info\n\t * @return MarkerArea\n\t */\n\tpublic async getMarkerArea(): Promise<any> {\n\t\tawait this._maybeInit();\n\t\treturn this._markerArea;\n\t}\n\n}"]}
1
+ {"version":3,"file":"Annotator.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/Annotator.ts"],"names":[],"mappings":"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","sourcesContent":["import { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"../../core/util/Entity\"\nimport { Container } from \"../../core/render/Container\";\nimport { Picture } from \"../../core/render/Picture\";\nimport * as $utils from \"../../core/util/Utils\";\n\nimport { p100 } from \"../../core/util/Percent\";\n\nexport interface IAnnotatorSettings extends IEntitySettings {\n\n\t/**\n\t * Layer number to use for annotations.\n\t *\n\t * @default 1000\n\t */\n\tlayer?: number;\n\n\t/**\n\t * Raw annotation info saved by MarkerJS.\n\t */\n\tmarkerState?: any;\n\n}\n\nexport interface IAnnotatorPrivate extends IEntityPrivate {\n}\n\nexport interface IAnnotatorEvents extends IEntityEvents {\n}\n\n\n\n/**\n * A plugin that can be used to annotate charts.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/annotator/} for more info\n */\nexport class Annotator extends Entity {\n\tpublic static className: string = \"Annotator\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([Annotator.className]);\n\n\tdeclare public _settings: IAnnotatorSettings;\n\tdeclare public _privateSettings: IAnnotatorPrivate;\n\tdeclare public _events: IAnnotatorEvents;\n\n\tprivate _container?: Container;\n\tprivate _picture?: Picture;\n\tprivate _markerArea?: any;\n\tprivate _skipRender?: boolean = false;\n\n\t//public extraImages: Array<Root | IAnnotatorImageSource> = [];\n\t//public dataSources: any[] = [];\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\t\tthis._setRawDefault(\"layer\", 1000);\n\t\tthis._root.addDisposer(this);\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"markerState\")) {\n\t\t\tthis._renderState();\n\t\t}\n\t}\n\n\t/**\n\t * Triggers annotation mode on the chart. This will display UI toolbars and\n\t * disable all interactions on the chart itself.\n\t */\n\tpublic async open() {\n\n\t\t// Delay this so that it's not knocked off by closing of the ExportingMenu\n\t\tthis.setTimeout(() => {\n\t\t\tthis._root._renderer.interactionsEnabled = false;\n\t\t}, 100)\n\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tmarkerArea.show();\n\t\tthis._picture!.hide(0);\n\t\tif (this.get(\"markerState\")) {\n\t\t\tmarkerArea.restoreState(this.get(\"markerState\"));\n\t\t}\n\t}\n\n\tpublic async _renderState() {\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tif (this.get(\"markerState\")) {\n\t\t\tthis._skipRender = true;\n\t\t\tmarkerArea.renderState(this.get(\"markerState\"));\n\t\t}\n\t}\n\n\t/**\n\t * Exists from annotation mode. All annotations remain visible on the chart.\n\t */\n\tpublic async close() {\n\t\t//this._root._renderer.interactionsEnabled = true;\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tmarkerArea!.close();\n\t}\n\n\t/**\n\t * Exits from annotation mode. Any changes made during last session of the\n\t * annotation editing are cancelled.\n\t */\n\tpublic async cancel() {\n\t\tthis._root._renderer.interactionsEnabled = true;\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tthis._picture!.show(0);\n\t\tmarkerArea!.cancel();\n\t}\n\n\t/**\n\t * All annotations are removed.\n\t */\n\tpublic clear() {\n\t\tthis.set(\"markerState\", undefined);\n\t\tif (this._picture) {\n\t\t\tthis._picture.set(\"src\", \"\");\n\t\t}\n\t}\n\n\tpublic async toggle() {\n\t\tconst markerArea = await this.getMarkerArea();\n\t\tif (markerArea.isOpen) {\n\t\t\tthis.close();\n\t\t}\n\t\telse {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\tpublic dispose(): void {\n\t\tsuper.dispose();\n\t\tif (this._markerArea && this._markerArea.isOpen) {\n\t\t\tthis._markerArea.close();\n\t\t}\n\t}\n\n\tprivate async _maybeInit() {\n\n\t\t// Create layer canvas\n\t\tif (!this._container) {\n\t\t\tthis._container = this._root.container.children.push(Container.new(this._root, {\n\t\t\t\twidth: p100,\n\t\t\t\theight: p100,\n\t\t\t\tlayer: this.get(\"layer\"),\n\t\t\t\tinteractiveChildren: false\n\t\t\t}));\n\n\t\t\tthis._picture = this._container.children.push(Picture.new(this._root, {\n\t\t\t\twidth: p100,\n\t\t\t\theight: p100\n\t\t\t}));\n\t\t}\n\n\t\t// Create MarkerArea\n\t\tif (!this._markerArea) {\n\t\t\tconst markerjs2 = await this._getMarkerJS();\n\t\t\tconst canvas = this._container._display.getCanvas();\n\t\t\tconst markerArea = new markerjs2.MarkerArea(canvas);\n\t\t\t//markerArea.renderTarget = canvas;\n\t\t\tmarkerArea.uiStyleSettings.logoPosition = \"right\";\n\t\t\tmarkerArea.uiStyleSettings.zIndex = 20;\n\t\t\tmarkerArea.targetRoot = canvas.parentElement!;\n\n\t\t\tthis._disposers.push($utils.addEventListener(markerArea, \"close\", () => {\n\t\t\t\tthis._root._renderer.interactionsEnabled = true;\n\t\t\t\tthis._picture!.show(0);\n\t\t\t}));\n\n\t\t\tthis._disposers.push($utils.addEventListener(markerArea, \"render\", (event: any) => {\n\t\t\t\tconst picture = this._picture!;\n\t\t\t\tpicture.set(\"src\", event.dataUrl);\n\t\t\t\tif (!this._skipRender) {\n\t\t\t\t\tthis.set(\"markerState\", event.state);\n\t\t\t\t}\n\t\t\t\tthis._skipRender = false;\n\t\t\t}));\n\n\t\t\tthis._markerArea = markerArea;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate async _getMarkerJS(): Promise<any> {\n\t\treturn await import(/* webpackChunkName: \"markerjs2\" */ \"markerjs2\");\n\t}\n\n\t/**\n\t * An instance of MarkerJS's [[MarkerArea]].\n\t *\n\t * @see {@link https://markerjs.com/docs/getting-started} for more info\n\t * @return MarkerArea\n\t */\n\tpublic async getMarkerArea(): Promise<any> {\n\t\tawait this._maybeInit();\n\t\treturn this._markerArea;\n\t}\n\n}\n"]}
@@ -110,12 +110,14 @@ export declare class ExportingMenu extends Entity {
110
110
  private _iconElement?;
111
111
  private _listElement?;
112
112
  private _itemElements?;
113
+ private _itemDisposers;
113
114
  private _cssDisposer?;
114
115
  private _activeItem?;
115
116
  isOpen: boolean;
116
117
  private _isOver;
117
118
  protected _afterNew(): void;
118
119
  _afterChanged(): void;
120
+ protected _dispose(): void;
119
121
  private _applyClassNames;
120
122
  /**
121
123
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"ExportingMenu.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/ExportingMenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAO/F,MAAM,WAAW,kBAAkB;IAElC;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAExC;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAE5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAE9D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAEzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;CAC5D;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAC1D,aAAa,EAAE,EAAE,CAAA;IACjB,YAAY,EAAE,EAAE,CAAA;IAChB,YAAY,EAAE,EAAE,CAAA;CAChB;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IACxC,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuD;IAE/E,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,aAAa,CAAC,CAAuB;IAE7C,OAAO,CAAC,YAAY,CAAC,CAAY;IACjC,OAAO,CAAC,WAAW,CAAC,CAAqB;IAElC,MAAM,EAAE,OAAO,CAAS;IAE/B,OAAO,CAAC,OAAO,CAAkB;IAEjC,SAAS,CAAC,SAAS;IAqLZ,aAAa;IAmCpB,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACI,WAAW,IAAI,IAAI;IAqE1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;IAavB;;;;OAIG;IACI,cAAc,IAAI,IAAI;IAU7B;;OAEG;IACI,IAAI,IAAI,IAAI;IASnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;OAEG;IACI,MAAM,IAAI,IAAI;CAUrB"}
1
+ {"version":3,"file":"ExportingMenu.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/ExportingMenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAO/F,MAAM,WAAW,kBAAkB;IAElC;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAExC;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAE5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAE9D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAEzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;CAC5D;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAC1D,aAAa,EAAE,EAAE,CAAA;IACjB,YAAY,EAAE,EAAE,CAAA;IAChB,YAAY,EAAE,EAAE,CAAA;CAChB;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IACxC,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuD;IAE/E,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,aAAa,CAAC,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO,CAAC,YAAY,CAAC,CAAY;IACjC,OAAO,CAAC,WAAW,CAAC,CAAqB;IAElC,MAAM,EAAE,OAAO,CAAS;IAE/B,OAAO,CAAC,OAAO,CAAkB;IAEjC,SAAS,CAAC,SAAS;IAqLZ,aAAa;IAmCpB,SAAS,CAAC,QAAQ,IAAI,IAAI;IAQ1B,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACI,WAAW,IAAI,IAAI;IA2E1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;IAavB;;;;OAIG;IACI,cAAc,IAAI,IAAI;IAU7B;;OAEG;IACI,IAAI,IAAI,IAAI;IASnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;OAEG;IACI,MAAM,IAAI,IAAI;CAUrB"}
@@ -37,6 +37,12 @@ var ExportingMenu = /** @class */ (function (_super) {
37
37
  writable: true,
38
38
  value: []
39
39
  });
40
+ Object.defineProperty(_this, "_itemDisposers", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: []
45
+ });
40
46
  Object.defineProperty(_this, "_cssDisposer", {
41
47
  enumerable: true,
42
48
  configurable: true,
@@ -196,25 +202,25 @@ var ExportingMenu = /** @class */ (function (_super) {
196
202
  }
197
203
  }));
198
204
  }
199
- iconElement.addEventListener("click", function (ev) {
205
+ this._disposers.push($utils.addEventListener(iconElement, "click", function (ev) {
200
206
  ev.stopImmediatePropagation();
201
207
  _this.toggle();
202
- });
208
+ }));
203
209
  menuElement.appendChild(this._iconElement);
204
210
  menuElement.appendChild(this._listElement);
205
211
  this._root._inner.appendChild(this._menuElement);
206
- menuElement.addEventListener($utils.getRendererEvent("pointerover"), function (_ev) {
212
+ this._disposers.push($utils.addEventListener(menuElement, $utils.getRendererEvent("pointerover"), function (_ev) {
207
213
  _this._isOver = true;
208
214
  if (_this.get("deactivateRoot")) {
209
215
  _this._root._renderer.interactionsEnabled = false;
210
216
  }
211
- });
212
- menuElement.addEventListener($utils.getRendererEvent("pointerout"), function (_ev) {
217
+ }));
218
+ this._disposers.push($utils.addEventListener(menuElement, $utils.getRendererEvent("pointerout"), function (_ev) {
213
219
  _this._isOver = false;
214
220
  if (_this.get("deactivateRoot")) {
215
221
  _this._root._renderer.interactionsEnabled = true;
216
222
  }
217
- });
223
+ }));
218
224
  this._disposers.push(new Disposer(function () {
219
225
  if (_this._menuElement) {
220
226
  _this._root._inner.removeChild(_this._menuElement);
@@ -267,6 +273,17 @@ var ExportingMenu = /** @class */ (function (_super) {
267
273
  }
268
274
  }
269
275
  });
276
+ Object.defineProperty(ExportingMenu.prototype, "_dispose", {
277
+ enumerable: false,
278
+ configurable: true,
279
+ writable: true,
280
+ value: function () {
281
+ _super.prototype._dispose.call(this);
282
+ $array.each(this._itemDisposers, function (x) {
283
+ x.dispose();
284
+ });
285
+ }
286
+ });
270
287
  Object.defineProperty(ExportingMenu.prototype, "_applyClassNames", {
271
288
  enumerable: false,
272
289
  configurable: true,
@@ -298,6 +315,10 @@ var ExportingMenu = /** @class */ (function (_super) {
298
315
  var items = this.get("items", []);
299
316
  var supportedFormats = exporting.supportedFormats();
300
317
  var supportedExportTypes = exporting.supportedExportTypes();
318
+ $array.each(this._itemDisposers, function (x) {
319
+ x.dispose();
320
+ });
321
+ this._itemDisposers.length = 0;
301
322
  $array.each(items, function (item) {
302
323
  if (item.format && supportedFormats.indexOf(item.format) == -1) {
303
324
  return;
@@ -322,21 +343,21 @@ var ExportingMenu = /** @class */ (function (_super) {
322
343
  ariaLabel += " (" + item.sublabel + ")";
323
344
  }
324
345
  if (item.callback) {
325
- a.addEventListener("click", function (_ev) {
346
+ _this._itemDisposers.push($utils.addEventListener(a, "click", function (_ev) {
326
347
  item.callback.call(item.callbackTarget || _this);
327
- });
348
+ }));
328
349
  a.setAttribute("tabindex", _this._root.tabindex.toString());
329
350
  }
330
351
  else if (item.format && exporting) {
331
- a.addEventListener("click", function (_ev) {
352
+ _this._itemDisposers.push($utils.addEventListener(a, "click", function (_ev) {
332
353
  _this._handleClick(item);
333
- });
334
- a.addEventListener("focus", function (_ev) {
354
+ }));
355
+ _this._itemDisposers.push($utils.addEventListener(a, "focus", function (_ev) {
335
356
  _this._handleItemFocus(item);
336
- });
337
- a.addEventListener("blur", function (_ev) {
357
+ }));
358
+ _this._itemDisposers.push($utils.addEventListener(a, "blur", function (_ev) {
338
359
  _this._handleItemBlur(item);
339
- });
360
+ }));
340
361
  a.setAttribute("tabindex", _this._root.tabindex.toString());
341
362
  a.setAttribute("aria-label", ariaLabel);
342
363
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExportingMenu.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/ExportingMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Exporting, ExportingFormats, ExportingTypes } from \"./Exporting\"\n\nimport { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"../../core/util/Entity\"\nimport { IDisposer, Disposer } from \"../../core/util/Disposer\";\nimport exportingCSS from \"./ExportingCSS\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IExportingMenuItem {\n\n\t/**\n\t * Indicates type of the menu item:\n\t * * `\"format\"` - indicates export action\n\t * * `\"separator\"` - will show horizontal divider.\n\t * * `\"custom\"` - will invoke custom function when clicked.\n\t */\n\ttype: \"format\" | \"separator\" | \"custom\";\n\n\t/**\n\t * If `type` is set to `\"format\"`, clicking item will initiate export in\n\t * that format.\n\t */\n\tformat?: ExportingFormats;\n\n\t/**\n\t * Indicates export type: `\"image\"`, `\"data\"`, or `\"print\"`.\n\t */\n\texportType?: ExportingTypes;\n\n\t/**\n\t * Menu label.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * Additional information.\n\t */\n\tsublabel?: string;\n\n\t/**\n\t * If `type` is set to `\"custom\"`, this needs to be set to a function.\n\t */\n\tcallback?: (menuItem?: any) => any;\n\n\t/**\n\t * A target for callback function.\n\t */\n\tcallbackTarget?: any;\n\n\t/**\n\t * A DOM element for the menu item.\n\t *\n\t * @readonly\n\t */\n\telement?: HTMLAnchorElement;\n\n}\n\nexport interface IExportingMenuSettings extends IEntitySettings {\n\n\t/**\n\t * Horizontal alignment of the menu.\n\t *\n\t * @default \"right\"\n\t */\n\talign?: \"left\" | \"right\";\n\n\t/**\n\t * Vertical alignment of the menu.\n\t *\n\t * @default \"top\"\n\t */\n\tvalign?: \"top\" | \"bottom\";\n\n\t/**\n\t * A reference to an element in the document to place export menu in.\n\t *\n\t * If not set, will use root element's container.\n\t */\n\tcontainer?: HTMLElement;\n\n\t/**\n\t * A list of menu items.\n\t */\n\titems?: IExportingMenuItem[];\n\n\t/**\n\t * A reference to related [[Exporting]] object.\n\t */\n\texporting?: Exporting;\n\n\t/**\n\t * If set to `false` the legend will not load default CSS.\n\t *\n\t * @default true\n\t */\n\tuseDefaultCSS?: boolean;\n\n\t/**\n\t * If set to `true` the menu will close automatically when export operation\n\t * is initiated.\n\t *\n\t * @default true\n\t */\n\tautoClose?: boolean;\n\n\t/**\n\t * Menu will disable all interactions for the underlying chart when browsing\n\t * the menu.\n\t *\n\t * @default true\n\t */\n\tdeactivateRoot?: boolean;\n\n}\n\nexport interface IExportingMenuPrivate extends IEntityPrivate {\n}\n\nexport interface IExportingMenuEvents extends IEntityEvents {\n\t\"menucreated\": {}\n\t\"menuopened\": {}\n\t\"menuclosed\": {}\n}\n\n/**\n * Displays a menu for [[Exporting]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/} for more info\n */\nexport class ExportingMenu extends Entity {\n\tpublic static className: string = \"ExportingMenu\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([ExportingMenu.className]);\n\n\tdeclare public _settings: IExportingMenuSettings;\n\tdeclare public _privateSettings: IExportingMenuPrivate;\n\tdeclare public _events: IExportingMenuEvents;\n\n\tprivate _menuElement?: HTMLDivElement;\n\tprivate _iconElement?: HTMLElement;\n\tprivate _listElement?: HTMLUListElement;\n\tprivate _itemElements?: HTMLLIElement[] = [];\n\n\tprivate _cssDisposer?: IDisposer;\n\tprivate _activeItem?: IExportingMenuItem;\n\n\tpublic isOpen: boolean = false;\n\n\tprivate _isOver: boolean = false;\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\t\tthis._setRawDefault(\"container\", this._root._inner);\n\t\tthis._setRawDefault(\"align\", \"right\");\n\t\tthis._setRawDefault(\"valign\", \"top\");\n\t\tthis._setRawDefault(\"useDefaultCSS\", true);\n\t\tthis._setRawDefault(\"autoClose\", true);\n\t\tthis._setRawDefault(\"deactivateRoot\", true);\n\t\tthis._setRawDefault(\"items\", [{\n\t\t\ttype: \"separator\",\n\t\t\tlabel: this._t(\"Export\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"png\",\n\t\t\texportType: \"image\",\n\t\t\tlabel: this._t(\"PNG\"),\n\t\t\tsublabel: this._t(\"Image\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"jpg\",\n\t\t\texportType: \"image\",\n\t\t\tlabel: this._t(\"JPG\"),\n\t\t\tsublabel: this._t(\"Image\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"pdf\",\n\t\t\texportType: \"image\",\n\t\t\tlabel: this._t(\"PDF\"),\n\t\t\tsublabel: this._t(\"Image\")\n\t\t}, {\n\t\t\ttype: \"separator\",\n\t\t\texportType: \"data\",\n\t\t\t//label: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"json\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"JSON\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"csv\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"CSV\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"xlsx\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"XLSX\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"pdfdata\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"PDF\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"html\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"HTML\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"separator\"\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"print\",\n\t\t\texportType: \"print\",\n\t\t\tlabel: this._t(\"Print\")\n\t\t}]);\n\n\t\tconst menuElement = document.createElement(\"div\");\n\t\tthis._menuElement = menuElement;\n\n\t\tconst iconElement = document.createElement(\"a\");\n\t\tthis._iconElement = iconElement;\n\n\t\tthis._listElement = document.createElement(\"ul\");\n\t\tthis._listElement.setAttribute(\"role\", \"menu\");\n\t\tthis._applyClassNames();\n\n\t\ticonElement.innerHTML = '<svg fill=\"none\" height=\"20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z\"/></svg>';\n\t\ticonElement.setAttribute(\"tabindex\", this._root.tabindex.toString());\n\t\ticonElement.setAttribute(\"aria-label\", this._t(\"Export\"));\n\t\ticonElement.setAttribute(\"aria-description\", this._t(\"Press ENTER to open\"));\n\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tif (document.activeElement == this._iconElement || this.isOpen) {\n\t\t\t\t\tif (ev.keyCode == 27) {\n\t\t\t\t\t\t// ESC\n\t\t\t\t\t\tthis.close();\n\t\t\t\t\t}\n\t\t\t\t\telse if (ev.keyCode == 13) {\n\t\t\t\t\t\t// ENTER\n\t\t\t\t\t\tif (this._activeItem) {\n\t\t\t\t\t\t\tthis._handleClick(this._activeItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.toggle();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (ev.keyCode == 38 || ev.keyCode == 40) {\n\t\t\t\t\t\tconst items = this.get(\"items\", []);\n\t\t\t\t\t\tlet currentIndex = (<any>items).indexOf(this._activeItem);\n\t\t\t\t\t\tif (this.get(\"valign\") == \"top\" && currentIndex == -1) {\n\t\t\t\t\t\t\tcurrentIndex = items.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst dir = ev.keyCode == 38 ? -1 : 1;\n\t\t\t\t\t\tlet newIndex = currentIndex + dir;\n\t\t\t\t\t\tlet newItem;\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif (newIndex < 0) {\n\t\t\t\t\t\t\t\tnewIndex = items.length - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (newIndex > (items.length - 1)) {\n\t\t\t\t\t\t\t\tnewIndex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (items[newIndex].type == \"separator\") {\n\t\t\t\t\t\t\t\tnewIndex += dir;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tnewItem = items[newIndex];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while(!newItem);\n\n\t\t\t\t\t\tif (newItem) {\n\t\t\t\t\t\t\tthis._handleItemFocus(newItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\n\t\ticonElement.addEventListener(\"click\", (ev: MouseEvent) => {\n\t\t\tev.stopImmediatePropagation();\n\t\t\tthis.toggle();\n\t\t});\n\n\t\tmenuElement.appendChild(this._iconElement);\n\t\tmenuElement.appendChild(this._listElement);\n\n\t\tthis._root._inner.appendChild(this._menuElement);\n\n\t\tmenuElement.addEventListener($utils.getRendererEvent(\"pointerover\"), (_ev) => {\n\t\t\tthis._isOver = true;\n\t\t\tif (this.get(\"deactivateRoot\")) {\n\t\t\t\tthis._root._renderer.interactionsEnabled = false;\n\t\t\t}\n\t\t});\n\n\t\tmenuElement.addEventListener($utils.getRendererEvent(\"pointerout\"), (_ev) => {\n\t\t\tthis._isOver = false;\n\t\t\tif (this.get(\"deactivateRoot\")) {\n\t\t\t\tthis._root._renderer.interactionsEnabled = true;\n\t\t\t}\n\t\t});\n\n\t\tthis._disposers.push(new Disposer(() => {\n\t\t\tif (this._menuElement) {\n\t\t\t\tthis._root._inner.removeChild(this._menuElement);\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push($utils.addEventListener(document, \"click\", (_ev) => {\n\t\t\tif (this.isOpen && !this._isOver) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}));\n\n\t\tthis.loadDefaultCSS();\n\n\t\tthis._root.addDisposer(this);\n\n\t\tthis.events.dispatch(\"menucreated\", {\n\t\t\ttype: \"menucreated\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\n\t\tif (this._itemElements!.length == 0) {\n\t\t\tthis.createItems();\n\t\t}\n\n\t\tif (this.isDirty(\"useDefaultCSS\")) {\n\t\t\tif (this.get(\"useDefaultCSS\")) {\n\t\t\t\tthis.loadDefaultCSS();\n\t\t\t}\n\t\t\telse if (this._cssDisposer) {\n\t\t\t\tthis._cssDisposer.dispose();\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"exporting\")) {\n\t\t\tconst exporting = this.get(\"exporting\");\n\t\t\tif (exporting) {\n\t\t\t\tthis.createItems();\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"align\") || this.isDirty(\"valign\")) {\n\t\t\tthis._applyClassNames();\n\t\t}\n\n\t\tif (this.isDirty(\"container\")) {\n\t\t\tconst container = this.get(\"container\");\n\t\t\tif (container) {\n\t\t\t\tcontainer.appendChild(this._menuElement!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _applyClassNames(): void {\n\t\tconst align = this.get(\"align\", \"right\");\n\t\tconst valign = this.get(\"valign\", \"top\");\n\t\tconst status = this.isOpen ? \"am5exporting-menu-open\" : \"am5exporting-menu-closed\";\n\n\t\tthis._menuElement!.className = \"am5exporting am5exporting-menu am5exporting-align-\" + align + \" am5exporting-valign-\" + valign + \" \" + status;\n\t\tthis._iconElement!.className = \"am5exporting am5exporting-icon am5exporting-align-\" + align + \" am5exporting-valign-\" + valign;\n\t\tthis._listElement!.className = \"am5exporting am5exporting-list am5exporting-align-\" + align + \" am5exporting-valign-\" + valign;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic createItems(): void {\n\t\tconst exporting = this.get(\"exporting\");\n\t\tif (!exporting) {\n\t\t\treturn;\n\t\t}\n\t\tthis._listElement!.innerHTML = \"\";\n\t\tthis._itemElements = [];\n\t\tconst items = this.get(\"items\", []);\n\t\tconst supportedFormats = exporting.supportedFormats();\n\t\tconst supportedExportTypes = exporting.supportedExportTypes();\n\n\t\t$array.each(items, (item) => {\n\n\t\t\tif (item.format && supportedFormats.indexOf(item.format) == -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (item.exportType && supportedExportTypes.indexOf(item.exportType) == -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst li = document.createElement(\"li\");\n\t\t\tli.setAttribute(\"role\", \"menuitem\");\n\n\t\t\tli.className = \"am5exporting am5exporting-item am5exporting-type-\" + item.type;\n\t\t\tif (item.format) {\n\t\t\t\tli.className += \" am5exporting-format-\" + item.format;\n\t\t\t}\n\n\t\t\tconst a = document.createElement(\"a\");\n\n\t\t\tlet ariaLabel = this._t(\"Export\");\n\t\t\tif (item.label) {\n\t\t\t\ta.innerHTML = item.label;\n\t\t\t\tariaLabel += \" \" + item.label;\n\t\t\t}\n\n\t\t\tif (item.sublabel) {\n\t\t\t\ta.innerHTML += \" <span class=\\\"am5exporting-label-alt\\\">\" + item.sublabel + \"</span>\";\n\t\t\t\tariaLabel += \" (\" + item.sublabel + \")\";\n\t\t\t}\n\n\t\t\tif (item.callback) {\n\t\t\t\ta.addEventListener(\"click\", (_ev) => {\n\t\t\t\t\titem.callback!.call(item.callbackTarget || this)\n\t\t\t\t});\n\t\t\t\ta.setAttribute(\"tabindex\", this._root.tabindex.toString());\n\t\t\t}\n\t\t\telse if (item.format && exporting) {\n\t\t\t\ta.addEventListener(\"click\", (_ev) => {\n\t\t\t\t\tthis._handleClick(item);\n\t\t\t\t});\n\t\t\t\ta.addEventListener(\"focus\", (_ev) => {\n\t\t\t\t\tthis._handleItemFocus(item);\n\t\t\t\t});\n\t\t\t\ta.addEventListener(\"blur\", (_ev) => {\n\t\t\t\t\tthis._handleItemBlur(item);\n\t\t\t\t});\n\t\t\t\ta.setAttribute(\"tabindex\", this._root.tabindex.toString());\n\t\t\t\ta.setAttribute(\"aria-label\", ariaLabel);\n\t\t\t}\n\n\t\t\titem.element = a;\n\t\t\tli.appendChild(a);\n\t\t\tthis._listElement!.appendChild(li);\n\t\t\tthis._itemElements!.push(li);\n\t\t});\n\t}\n\n\tprivate _handleClick(item: IExportingMenuItem): void {\n\t\tconst exporting = this.get(\"exporting\")!;\n\t\tif (this.get(\"autoClose\")) {\n\t\t\tthis.close();\n\t\t}\n\t\tif (item.format == \"print\") {\n\t\t\texporting.print();\n\t\t}\n\t\telse {\n\t\t\texporting.download(item.format!);\n\t\t}\n\t}\n\n\tprivate _handleItemFocus(item: IExportingMenuItem): void {\n\t\tif (item != this._activeItem) {\n\t\t\tif (this._activeItem) {\n\t\t\t\tthis._activeItem.element!.className = \"\";\n\t\t\t}\n\t\t\tthis._activeItem = item;\n\t\t\titem.element!.className = \"am5exporting-item-active\";\n\t\t\titem.element!.focus();\n\t\t}\n\t}\n\n\tprivate _handleItemBlur(item: IExportingMenuItem): void {\n\t\titem.element!.className = \"\";\n\t\tif (item == this._activeItem) {\n\t\t\tthis._activeItem = undefined\n\t\t}\n\t\tthis.setTimeout(() => {\n\t\t\tif (!document.activeElement || !$utils.contains(this.get(\"container\")!, document.activeElement!)) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}, 10);\n\n\t}\n\n\t/**\n\t * Loads the default CSS.\n\t *\n\t * @ignore Exclude from docs\n\t */\n\tpublic loadDefaultCSS(): void {\n\t\tconst disposer = exportingCSS($utils.getShadowRoot(this._root.dom), this._root);\n\t\tthis._disposers.push(disposer);\n\t\tthis._cssDisposer = disposer;\n\n\t\t// if (this._element) {\n\t\t// \tthis._element.style.display = \"\";\n\t\t// }\n\t}\n\n\t/**\n\t * Opens menu.\n\t */\n\tpublic open(): void {\n\t\tthis.isOpen = true;\n\t\tthis._applyClassNames();\n\t\tthis.events.dispatch(\"menuopened\", {\n\t\t\ttype: \"menuopened\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Closes menu.\n\t */\n\tpublic close(): void {\n\t\tthis.isOpen = false;\n\t\t$utils.blur();\n\t\tthis._applyClassNames();\n\t\tthis.events.dispatch(\"menuclosed\", {\n\t\t\ttype: \"menuclosed\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Toggles menu open and close.\n\t */\n\tpublic toggle(): void {\n\t\tif (this.isOpen) {\n\t\t\tthis.close();\n\t\t}\n\t\telse {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\n}\n"]}
1
+ {"version":3,"file":"ExportingMenu.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/ExportingMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Exporting, ExportingFormats, ExportingTypes } from \"./Exporting\"\n\nimport { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"../../core/util/Entity\"\nimport { IDisposer, Disposer } from \"../../core/util/Disposer\";\nimport exportingCSS from \"./ExportingCSS\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IExportingMenuItem {\n\n\t/**\n\t * Indicates type of the menu item:\n\t * * `\"format\"` - indicates export action\n\t * * `\"separator\"` - will show horizontal divider.\n\t * * `\"custom\"` - will invoke custom function when clicked.\n\t */\n\ttype: \"format\" | \"separator\" | \"custom\";\n\n\t/**\n\t * If `type` is set to `\"format\"`, clicking item will initiate export in\n\t * that format.\n\t */\n\tformat?: ExportingFormats;\n\n\t/**\n\t * Indicates export type: `\"image\"`, `\"data\"`, or `\"print\"`.\n\t */\n\texportType?: ExportingTypes;\n\n\t/**\n\t * Menu label.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * Additional information.\n\t */\n\tsublabel?: string;\n\n\t/**\n\t * If `type` is set to `\"custom\"`, this needs to be set to a function.\n\t */\n\tcallback?: (menuItem?: any) => any;\n\n\t/**\n\t * A target for callback function.\n\t */\n\tcallbackTarget?: any;\n\n\t/**\n\t * A DOM element for the menu item.\n\t *\n\t * @readonly\n\t */\n\telement?: HTMLAnchorElement;\n\n}\n\nexport interface IExportingMenuSettings extends IEntitySettings {\n\n\t/**\n\t * Horizontal alignment of the menu.\n\t *\n\t * @default \"right\"\n\t */\n\talign?: \"left\" | \"right\";\n\n\t/**\n\t * Vertical alignment of the menu.\n\t *\n\t * @default \"top\"\n\t */\n\tvalign?: \"top\" | \"bottom\";\n\n\t/**\n\t * A reference to an element in the document to place export menu in.\n\t *\n\t * If not set, will use root element's container.\n\t */\n\tcontainer?: HTMLElement;\n\n\t/**\n\t * A list of menu items.\n\t */\n\titems?: IExportingMenuItem[];\n\n\t/**\n\t * A reference to related [[Exporting]] object.\n\t */\n\texporting?: Exporting;\n\n\t/**\n\t * If set to `false` the legend will not load default CSS.\n\t *\n\t * @default true\n\t */\n\tuseDefaultCSS?: boolean;\n\n\t/**\n\t * If set to `true` the menu will close automatically when export operation\n\t * is initiated.\n\t *\n\t * @default true\n\t */\n\tautoClose?: boolean;\n\n\t/**\n\t * Menu will disable all interactions for the underlying chart when browsing\n\t * the menu.\n\t *\n\t * @default true\n\t */\n\tdeactivateRoot?: boolean;\n\n}\n\nexport interface IExportingMenuPrivate extends IEntityPrivate {\n}\n\nexport interface IExportingMenuEvents extends IEntityEvents {\n\t\"menucreated\": {}\n\t\"menuopened\": {}\n\t\"menuclosed\": {}\n}\n\n/**\n * Displays a menu for [[Exporting]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/} for more info\n */\nexport class ExportingMenu extends Entity {\n\tpublic static className: string = \"ExportingMenu\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([ExportingMenu.className]);\n\n\tdeclare public _settings: IExportingMenuSettings;\n\tdeclare public _privateSettings: IExportingMenuPrivate;\n\tdeclare public _events: IExportingMenuEvents;\n\n\tprivate _menuElement?: HTMLDivElement;\n\tprivate _iconElement?: HTMLElement;\n\tprivate _listElement?: HTMLUListElement;\n\tprivate _itemElements?: HTMLLIElement[] = [];\n\tprivate _itemDisposers: Array<IDisposer> = [];\n\n\tprivate _cssDisposer?: IDisposer;\n\tprivate _activeItem?: IExportingMenuItem;\n\n\tpublic isOpen: boolean = false;\n\n\tprivate _isOver: boolean = false;\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\t\tthis._setRawDefault(\"container\", this._root._inner);\n\t\tthis._setRawDefault(\"align\", \"right\");\n\t\tthis._setRawDefault(\"valign\", \"top\");\n\t\tthis._setRawDefault(\"useDefaultCSS\", true);\n\t\tthis._setRawDefault(\"autoClose\", true);\n\t\tthis._setRawDefault(\"deactivateRoot\", true);\n\t\tthis._setRawDefault(\"items\", [{\n\t\t\ttype: \"separator\",\n\t\t\tlabel: this._t(\"Export\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"png\",\n\t\t\texportType: \"image\",\n\t\t\tlabel: this._t(\"PNG\"),\n\t\t\tsublabel: this._t(\"Image\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"jpg\",\n\t\t\texportType: \"image\",\n\t\t\tlabel: this._t(\"JPG\"),\n\t\t\tsublabel: this._t(\"Image\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"pdf\",\n\t\t\texportType: \"image\",\n\t\t\tlabel: this._t(\"PDF\"),\n\t\t\tsublabel: this._t(\"Image\")\n\t\t}, {\n\t\t\ttype: \"separator\",\n\t\t\texportType: \"data\",\n\t\t\t//label: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"json\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"JSON\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"csv\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"CSV\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"xlsx\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"XLSX\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"pdfdata\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"PDF\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"html\",\n\t\t\texportType: \"data\",\n\t\t\tlabel: this._t(\"HTML\"),\n\t\t\tsublabel: this._t(\"Data\")\n\t\t}, {\n\t\t\ttype: \"separator\"\n\t\t}, {\n\t\t\ttype: \"format\",\n\t\t\tformat: \"print\",\n\t\t\texportType: \"print\",\n\t\t\tlabel: this._t(\"Print\")\n\t\t}]);\n\n\t\tconst menuElement = document.createElement(\"div\");\n\t\tthis._menuElement = menuElement;\n\n\t\tconst iconElement = document.createElement(\"a\");\n\t\tthis._iconElement = iconElement;\n\n\t\tthis._listElement = document.createElement(\"ul\");\n\t\tthis._listElement.setAttribute(\"role\", \"menu\");\n\t\tthis._applyClassNames();\n\n\t\ticonElement.innerHTML = '<svg fill=\"none\" height=\"20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z\"/></svg>';\n\t\ticonElement.setAttribute(\"tabindex\", this._root.tabindex.toString());\n\t\ticonElement.setAttribute(\"aria-label\", this._t(\"Export\"));\n\t\ticonElement.setAttribute(\"aria-description\", this._t(\"Press ENTER to open\"));\n\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tif (document.activeElement == this._iconElement || this.isOpen) {\n\t\t\t\t\tif (ev.keyCode == 27) {\n\t\t\t\t\t\t// ESC\n\t\t\t\t\t\tthis.close();\n\t\t\t\t\t}\n\t\t\t\t\telse if (ev.keyCode == 13) {\n\t\t\t\t\t\t// ENTER\n\t\t\t\t\t\tif (this._activeItem) {\n\t\t\t\t\t\t\tthis._handleClick(this._activeItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.toggle();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (ev.keyCode == 38 || ev.keyCode == 40) {\n\t\t\t\t\t\tconst items = this.get(\"items\", []);\n\t\t\t\t\t\tlet currentIndex = (<any>items).indexOf(this._activeItem);\n\t\t\t\t\t\tif (this.get(\"valign\") == \"top\" && currentIndex == -1) {\n\t\t\t\t\t\t\tcurrentIndex = items.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst dir = ev.keyCode == 38 ? -1 : 1;\n\t\t\t\t\t\tlet newIndex = currentIndex + dir;\n\t\t\t\t\t\tlet newItem;\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif (newIndex < 0) {\n\t\t\t\t\t\t\t\tnewIndex = items.length - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (newIndex > (items.length - 1)) {\n\t\t\t\t\t\t\t\tnewIndex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (items[newIndex].type == \"separator\") {\n\t\t\t\t\t\t\t\tnewIndex += dir;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tnewItem = items[newIndex];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while(!newItem);\n\n\t\t\t\t\t\tif (newItem) {\n\t\t\t\t\t\t\tthis._handleItemFocus(newItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\n\t\tthis._disposers.push($utils.addEventListener(iconElement, \"click\", (ev: MouseEvent) => {\n\t\t\tev.stopImmediatePropagation();\n\t\t\tthis.toggle();\n\t\t}));\n\n\t\tmenuElement.appendChild(this._iconElement);\n\t\tmenuElement.appendChild(this._listElement);\n\n\t\tthis._root._inner.appendChild(this._menuElement);\n\n\t\tthis._disposers.push($utils.addEventListener(menuElement, $utils.getRendererEvent(\"pointerover\"), (_ev) => {\n\t\t\tthis._isOver = true;\n\t\t\tif (this.get(\"deactivateRoot\")) {\n\t\t\t\tthis._root._renderer.interactionsEnabled = false;\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push($utils.addEventListener(menuElement, $utils.getRendererEvent(\"pointerout\"), (_ev) => {\n\t\t\tthis._isOver = false;\n\t\t\tif (this.get(\"deactivateRoot\")) {\n\t\t\t\tthis._root._renderer.interactionsEnabled = true;\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push(new Disposer(() => {\n\t\t\tif (this._menuElement) {\n\t\t\t\tthis._root._inner.removeChild(this._menuElement);\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push($utils.addEventListener(document, \"click\", (_ev) => {\n\t\t\tif (this.isOpen && !this._isOver) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}));\n\n\t\tthis.loadDefaultCSS();\n\n\t\tthis._root.addDisposer(this);\n\n\t\tthis.events.dispatch(\"menucreated\", {\n\t\t\ttype: \"menucreated\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\n\t\tif (this._itemElements!.length == 0) {\n\t\t\tthis.createItems();\n\t\t}\n\n\t\tif (this.isDirty(\"useDefaultCSS\")) {\n\t\t\tif (this.get(\"useDefaultCSS\")) {\n\t\t\t\tthis.loadDefaultCSS();\n\t\t\t}\n\t\t\telse if (this._cssDisposer) {\n\t\t\t\tthis._cssDisposer.dispose();\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"exporting\")) {\n\t\t\tconst exporting = this.get(\"exporting\");\n\t\t\tif (exporting) {\n\t\t\t\tthis.createItems();\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"align\") || this.isDirty(\"valign\")) {\n\t\t\tthis._applyClassNames();\n\t\t}\n\n\t\tif (this.isDirty(\"container\")) {\n\t\t\tconst container = this.get(\"container\");\n\t\t\tif (container) {\n\t\t\t\tcontainer.appendChild(this._menuElement!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _dispose(): void {\n\t\tsuper._dispose();\n\n\t\t$array.each(this._itemDisposers, (x) => {\n\t\t\tx.dispose();\n\t\t});\n\t}\n\n\tprivate _applyClassNames(): void {\n\t\tconst align = this.get(\"align\", \"right\");\n\t\tconst valign = this.get(\"valign\", \"top\");\n\t\tconst status = this.isOpen ? \"am5exporting-menu-open\" : \"am5exporting-menu-closed\";\n\n\t\tthis._menuElement!.className = \"am5exporting am5exporting-menu am5exporting-align-\" + align + \" am5exporting-valign-\" + valign + \" \" + status;\n\t\tthis._iconElement!.className = \"am5exporting am5exporting-icon am5exporting-align-\" + align + \" am5exporting-valign-\" + valign;\n\t\tthis._listElement!.className = \"am5exporting am5exporting-list am5exporting-align-\" + align + \" am5exporting-valign-\" + valign;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic createItems(): void {\n\t\tconst exporting = this.get(\"exporting\");\n\t\tif (!exporting) {\n\t\t\treturn;\n\t\t}\n\t\tthis._listElement!.innerHTML = \"\";\n\t\tthis._itemElements = [];\n\t\tconst items = this.get(\"items\", []);\n\t\tconst supportedFormats = exporting.supportedFormats();\n\t\tconst supportedExportTypes = exporting.supportedExportTypes();\n\n\t\t$array.each(this._itemDisposers, (x) => {\n\t\t\tx.dispose();\n\t\t});\n\n\t\tthis._itemDisposers.length = 0;\n\n\t\t$array.each(items, (item) => {\n\n\t\t\tif (item.format && supportedFormats.indexOf(item.format) == -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (item.exportType && supportedExportTypes.indexOf(item.exportType) == -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst li = document.createElement(\"li\");\n\t\t\tli.setAttribute(\"role\", \"menuitem\");\n\n\t\t\tli.className = \"am5exporting am5exporting-item am5exporting-type-\" + item.type;\n\t\t\tif (item.format) {\n\t\t\t\tli.className += \" am5exporting-format-\" + item.format;\n\t\t\t}\n\n\t\t\tconst a = document.createElement(\"a\");\n\n\t\t\tlet ariaLabel = this._t(\"Export\");\n\t\t\tif (item.label) {\n\t\t\t\ta.innerHTML = item.label;\n\t\t\t\tariaLabel += \" \" + item.label;\n\t\t\t}\n\n\t\t\tif (item.sublabel) {\n\t\t\t\ta.innerHTML += \" <span class=\\\"am5exporting-label-alt\\\">\" + item.sublabel + \"</span>\";\n\t\t\t\tariaLabel += \" (\" + item.sublabel + \")\";\n\t\t\t}\n\n\t\t\tif (item.callback) {\n\t\t\t\tthis._itemDisposers.push($utils.addEventListener(a, \"click\", (_ev) => {\n\t\t\t\t\titem.callback!.call(item.callbackTarget || this)\n\t\t\t\t}));\n\t\t\t\ta.setAttribute(\"tabindex\", this._root.tabindex.toString());\n\t\t\t}\n\t\t\telse if (item.format && exporting) {\n\t\t\t\tthis._itemDisposers.push($utils.addEventListener(a, \"click\", (_ev) => {\n\t\t\t\t\tthis._handleClick(item);\n\t\t\t\t}));\n\t\t\t\tthis._itemDisposers.push($utils.addEventListener(a, \"focus\", (_ev) => {\n\t\t\t\t\tthis._handleItemFocus(item);\n\t\t\t\t}));\n\t\t\t\tthis._itemDisposers.push($utils.addEventListener(a, \"blur\", (_ev) => {\n\t\t\t\t\tthis._handleItemBlur(item);\n\t\t\t\t}));\n\t\t\t\ta.setAttribute(\"tabindex\", this._root.tabindex.toString());\n\t\t\t\ta.setAttribute(\"aria-label\", ariaLabel);\n\t\t\t}\n\n\t\t\titem.element = a;\n\t\t\tli.appendChild(a);\n\t\t\tthis._listElement!.appendChild(li);\n\t\t\tthis._itemElements!.push(li);\n\t\t});\n\t}\n\n\tprivate _handleClick(item: IExportingMenuItem): void {\n\t\tconst exporting = this.get(\"exporting\")!;\n\t\tif (this.get(\"autoClose\")) {\n\t\t\tthis.close();\n\t\t}\n\t\tif (item.format == \"print\") {\n\t\t\texporting.print();\n\t\t}\n\t\telse {\n\t\t\texporting.download(item.format!);\n\t\t}\n\t}\n\n\tprivate _handleItemFocus(item: IExportingMenuItem): void {\n\t\tif (item != this._activeItem) {\n\t\t\tif (this._activeItem) {\n\t\t\t\tthis._activeItem.element!.className = \"\";\n\t\t\t}\n\t\t\tthis._activeItem = item;\n\t\t\titem.element!.className = \"am5exporting-item-active\";\n\t\t\titem.element!.focus();\n\t\t}\n\t}\n\n\tprivate _handleItemBlur(item: IExportingMenuItem): void {\n\t\titem.element!.className = \"\";\n\t\tif (item == this._activeItem) {\n\t\t\tthis._activeItem = undefined\n\t\t}\n\t\tthis.setTimeout(() => {\n\t\t\tif (!document.activeElement || !$utils.contains(this.get(\"container\")!, document.activeElement!)) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}, 10);\n\n\t}\n\n\t/**\n\t * Loads the default CSS.\n\t *\n\t * @ignore Exclude from docs\n\t */\n\tpublic loadDefaultCSS(): void {\n\t\tconst disposer = exportingCSS($utils.getShadowRoot(this._root.dom), this._root);\n\t\tthis._disposers.push(disposer);\n\t\tthis._cssDisposer = disposer;\n\n\t\t// if (this._element) {\n\t\t// \tthis._element.style.display = \"\";\n\t\t// }\n\t}\n\n\t/**\n\t * Opens menu.\n\t */\n\tpublic open(): void {\n\t\tthis.isOpen = true;\n\t\tthis._applyClassNames();\n\t\tthis.events.dispatch(\"menuopened\", {\n\t\t\ttype: \"menuopened\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Closes menu.\n\t */\n\tpublic close(): void {\n\t\tthis.isOpen = false;\n\t\t$utils.blur();\n\t\tthis._applyClassNames();\n\t\tthis.events.dispatch(\"menuclosed\", {\n\t\t\ttype: \"menuclosed\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Toggles menu open and close.\n\t */\n\tpublic toggle(): void {\n\t\tif (this.isOpen) {\n\t\t\tthis.close();\n\t\t}\n\t\telse {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultTheme.d.ts","sourceRoot":"","sources":["../../../../src/.internal/themes/DefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE9F,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAQtC,UAAU,QAAQ,CAAC,CAAC;IACnB,SAAS,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,wBAAwB,QAOlI;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACtC,SAAS,CAAC,iBAAiB;CAy4B3B"}
1
+ {"version":3,"file":"DefaultTheme.d.ts","sourceRoot":"","sources":["../../../../src/.internal/themes/DefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE9F,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAQtC,UAAU,QAAQ,CAAC,CAAC;IACnB,SAAS,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,wBAAwB,QAOlI;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACtC,SAAS,CAAC,iBAAiB;CA04B3B"}
@@ -187,11 +187,11 @@ var DefaultTheme = /** @class */ (function (_super) {
187
187
  strokeField: "stroke",
188
188
  nameField: "name",
189
189
  layout: GridLayout.new(this._root, {}),
190
- layer: 30
190
+ layer: 30,
191
+ clickTarget: "itemContainer"
191
192
  });
192
193
  // Class: Container
193
194
  r("Container", ["legend", "item", "itemcontainer"]).setAll({
194
- toggleKey: "disabled",
195
195
  paddingLeft: 5,
196
196
  paddingRight: 5,
197
197
  paddingBottom: 5,
@@ -201,7 +201,6 @@ var DefaultTheme = /** @class */ (function (_super) {
201
201
  interactiveChildren: false,
202
202
  ariaChecked: true,
203
203
  focusable: true,
204
- cursorOverStyle: "pointer",
205
204
  ariaLabel: language.translate("Press ENTER to toggle")
206
205
  });
207
206
  {
@@ -516,6 +515,8 @@ var DefaultTheme = /** @class */ (function (_super) {
516
515
  centerY: p50,
517
516
  position: "absolute",
518
517
  role: "slider",
518
+ ariaValueMin: "0",
519
+ ariaValueMax: "100",
519
520
  ariaLabel: language.translate("Use up and down arrows to move selection")
520
521
  });
521
522
  {